From e30f36be4548635fe2b2e568a03376c0ff3c413c Mon Sep 17 00:00:00 2001 From: manzt Date: Fri, 13 Oct 2023 16:51:50 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20=20@=207d5de?= =?UTF-8?q?72ac461f495168ef070fca7b82748d3279c=20=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...eflate.2ed660a4.js => deflate.148275c2.js} | 2 +- .../{index.66be1e2e.js => index.ed0b1304.js} | 410 +++++++++--------- assets/{jpeg.6dba04cc.js => jpeg.b48bde09.js} | 2 +- assets/{lerc.596660d9.js => lerc.b5f6acc6.js} | 2 +- assets/{lzw.dead4eb4.js => lzw.0d287a28.js} | 2 +- ...kbits.ba6d8eef.js => packbits.14d99599.js} | 2 +- assets/raw.48044029.js | 1 - assets/raw.db67f73b.js | 1 + ...image.f97817fa.js => webimage.dbd54e7c.js} | 2 +- index.html | 2 +- 10 files changed, 213 insertions(+), 213 deletions(-) rename assets/{deflate.2ed660a4.js => deflate.148275c2.js} (63%) rename assets/{index.66be1e2e.js => index.ed0b1304.js} (73%) rename assets/{jpeg.6dba04cc.js => jpeg.b48bde09.js} (99%) rename assets/{lerc.596660d9.js => lerc.b5f6acc6.js} (99%) rename assets/{lzw.dead4eb4.js => lzw.0d287a28.js} (95%) rename assets/{packbits.ba6d8eef.js => packbits.14d99599.js} (81%) delete mode 100644 assets/raw.48044029.js create mode 100644 assets/raw.db67f73b.js rename assets/{webimage.f97817fa.js => webimage.dbd54e7c.js} (91%) diff --git a/assets/deflate.2ed660a4.js b/assets/deflate.148275c2.js similarity index 63% rename from assets/deflate.2ed660a4.js rename to assets/deflate.148275c2.js index de7dc6fa3..fb387e6c8 100644 --- a/assets/deflate.2ed660a4.js +++ b/assets/deflate.148275c2.js @@ -1 +1 @@ -import{i as r}from"./pako.esm.343ed2eb.js";import{B as a}from"./index.66be1e2e.js";class s extends a{decodeBlock(e){return r(new Uint8Array(e)).buffer}}export{s as default}; +import{i as r}from"./pako.esm.343ed2eb.js";import{B as a}from"./index.ed0b1304.js";class s extends a{decodeBlock(e){return r(new Uint8Array(e)).buffer}}export{s as default}; diff --git a/assets/index.66be1e2e.js b/assets/index.ed0b1304.js similarity index 73% rename from assets/index.66be1e2e.js rename to assets/index.ed0b1304.js index 61a3e8be6..c564d588f 100644 --- a/assets/index.66be1e2e.js +++ b/assets/index.ed0b1304.js @@ -1,51 +1,51 @@ -function Sk(e,A){return A.forEach(function(t){t&&typeof t!="string"&&!Array.isArray(t)&&Object.keys(t).forEach(function(i){if(i!=="default"&&!(i in e)){var n=Object.getOwnPropertyDescriptor(t,i);Object.defineProperty(e,i,n.get?n:{enumerable:!0,get:function(){return t[i]}})}})}),Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}const Dk=function(){const A=document.createElement("link").relList;if(A&&A.supports&&A.supports("modulepreload"))return;for(const n of document.querySelectorAll('link[rel="modulepreload"]'))i(n);new MutationObserver(n=>{for(const r of n)if(r.type==="childList")for(const o of r.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&i(o)}).observe(document,{childList:!0,subtree:!0});function t(n){const r={};return n.integrity&&(r.integrity=n.integrity),n.referrerpolicy&&(r.referrerPolicy=n.referrerpolicy),n.crossorigin==="use-credentials"?r.credentials="include":n.crossorigin==="anonymous"?r.credentials="omit":r.credentials="same-origin",r}function i(n){if(n.ep)return;n.ep=!0;const r=t(n);fetch(n.href,r)}};Dk();var gc=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:{};function Rk(e){if(e.__esModule)return e;var A=Object.defineProperty({},"__esModule",{value:!0});return Object.keys(e).forEach(function(t){var i=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(A,t,i.get?i:{enumerable:!0,get:function(){return e[t]}})}),A}var p={exports:{}},le={};/* +function xk(e,A){return A.forEach(function(t){t&&typeof t!="string"&&!Array.isArray(t)&&Object.keys(t).forEach(function(i){if(i!=="default"&&!(i in e)){var n=Object.getOwnPropertyDescriptor(t,i);Object.defineProperty(e,i,n.get?n:{enumerable:!0,get:function(){return t[i]}})}})}),Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}const Fk=function(){const A=document.createElement("link").relList;if(A&&A.supports&&A.supports("modulepreload"))return;for(const n of document.querySelectorAll('link[rel="modulepreload"]'))i(n);new MutationObserver(n=>{for(const r of n)if(r.type==="childList")for(const o of r.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&i(o)}).observe(document,{childList:!0,subtree:!0});function t(n){const r={};return n.integrity&&(r.integrity=n.integrity),n.referrerpolicy&&(r.referrerPolicy=n.referrerpolicy),n.crossorigin==="use-credentials"?r.credentials="include":n.crossorigin==="anonymous"?r.credentials="omit":r.credentials="same-origin",r}function i(n){if(n.ep)return;n.ep=!0;const r=t(n);fetch(n.href,r)}};Fk();var gc=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:{};function Nk(e){if(e.__esModule)return e;var A=Object.defineProperty({},"__esModule",{value:!0});return Object.keys(e).forEach(function(t){var i=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(A,t,i.get?i:{enumerable:!0,get:function(){return e[t]}})}),A}var p={exports:{}},le={};/* object-assign (c) Sindre Sorhus @license MIT -*/var Wm=Object.getOwnPropertySymbols,xk=Object.prototype.hasOwnProperty,Fk=Object.prototype.propertyIsEnumerable;function Nk(e){if(e==null)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}function Lk(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de",Object.getOwnPropertyNames(e)[0]==="5")return!1;for(var A={},t=0;t<10;t++)A["_"+String.fromCharCode(t)]=t;var i=Object.getOwnPropertyNames(A).map(function(r){return A[r]});if(i.join("")!=="0123456789")return!1;var n={};return"abcdefghijklmnopqrst".split("").forEach(function(r){n[r]=r}),Object.keys(Object.assign({},n)).join("")==="abcdefghijklmnopqrst"}catch{return!1}}var oF=Lk()?Object.assign:function(e,A){for(var t,i=Nk(e),n,r=1;r=f},n=function(){},e.unstable_forceFrameRate=function(k){0>k||125>>1,iA=k[AA];if(iA!==void 0&&0x(sA,j))IA!==void 0&&0>x(IA,sA)?(k[AA]=IA,k[BA]=j,AA=BA):(k[AA]=sA,k[gA]=j,AA=gA);else if(IA!==void 0&&0>x(IA,j))k[AA]=IA,k[BA]=j,AA=BA;else break A}}return q}return null}function x(k,q){var j=k.sortIndex-q.sortIndex;return j!==0?j:k.id-q.id}var D=[],F=[],N=1,M=null,U=3,P=!1,W=!1,J=!1;function Z(k){for(var q=m(F);q!==null;){if(q.callback===null)v(F);else if(q.startTime<=k)v(F),q.sortIndex=q.expirationTime,w(D,q);else break;q=m(F)}}function z(k){if(J=!1,Z(k),!W)if(m(D)!==null)W=!0,A(O);else{var q=m(F);q!==null&&t(z,q.startTime-k)}}function O(k,q){W=!1,J&&(J=!1,i()),P=!0;var j=U;try{for(Z(q),M=m(D);M!==null&&(!(M.expirationTime>q)||k&&!e.unstable_shouldYield());){var AA=M.callback;if(typeof AA=="function"){M.callback=null,U=M.priorityLevel;var iA=AA(M.expirationTime<=q);q=e.unstable_now(),typeof iA=="function"?M.callback=iA:M===m(D)&&v(D),Z(q)}else v(D);M=m(D)}if(M!==null)var gA=!0;else{var sA=m(F);sA!==null&&t(z,sA.startTime-q),gA=!1}return gA}finally{M=null,U=j,P=!1}}var Y=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(k){k.callback=null},e.unstable_continueExecution=function(){W||P||(W=!0,A(O))},e.unstable_getCurrentPriorityLevel=function(){return U},e.unstable_getFirstCallbackNode=function(){return m(D)},e.unstable_next=function(k){switch(U){case 1:case 2:case 3:var q=3;break;default:q=U}var j=U;U=q;try{return k()}finally{U=j}},e.unstable_pauseExecution=function(){},e.unstable_requestPaint=Y,e.unstable_runWithPriority=function(k,q){switch(k){case 1:case 2:case 3:case 4:case 5:break;default:k=3}var j=U;U=k;try{return q()}finally{U=j}},e.unstable_scheduleCallback=function(k,q,j){var AA=e.unstable_now();switch(typeof j=="object"&&j!==null?(j=j.delay,j=typeof j=="number"&&0AA?(k.sortIndex=j,w(F,k),m(D)===null&&k===m(F)&&(J?i():J=!0,t(z,j-AA))):(k.sortIndex=iA,w(D,k),W||P||(W=!0,A(O))),k},e.unstable_wrapCallback=function(k){var q=U;return function(){var j=U;U=q;try{return k.apply(this,arguments)}finally{U=j}}}})(pF);dF.exports=pF;/** @license React v17.0.2 + */(function(e){var A,t,i,n;if(typeof performance=="object"&&typeof performance.now=="function"){var r=performance;e.unstable_now=function(){return r.now()}}else{var o=Date,s=o.now();e.unstable_now=function(){return o.now()-s}}if(typeof window=="undefined"||typeof MessageChannel!="function"){var a=null,g=null,I=function(){if(a!==null)try{var k=e.unstable_now();a(!0,k),a=null}catch(q){throw setTimeout(I,0),q}};A=function(k){a!==null?setTimeout(A,0,k):(a=k,setTimeout(I,0))},t=function(k,q){g=setTimeout(k,q)},i=function(){clearTimeout(g)},e.unstable_shouldYield=function(){return!1},n=e.unstable_forceFrameRate=function(){}}else{var l=window.setTimeout,c=window.clearTimeout;if(typeof console!="undefined"){var C=window.cancelAnimationFrame;typeof window.requestAnimationFrame!="function"&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills"),typeof C!="function"&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills")}var B=!1,u=null,E=-1,h=5,f=0;e.unstable_shouldYield=function(){return e.unstable_now()>=f},n=function(){},e.unstable_forceFrameRate=function(k){0>k||125>>1,iA=k[AA];if(iA!==void 0&&0x(sA,j))IA!==void 0&&0>x(IA,sA)?(k[AA]=IA,k[BA]=j,AA=BA):(k[AA]=sA,k[gA]=j,AA=gA);else if(IA!==void 0&&0>x(IA,j))k[AA]=IA,k[BA]=j,AA=BA;else break A}}return q}return null}function x(k,q){var j=k.sortIndex-q.sortIndex;return j!==0?j:k.id-q.id}var D=[],F=[],N=1,M=null,U=3,P=!1,W=!1,J=!1;function Z(k){for(var q=m(F);q!==null;){if(q.callback===null)v(F);else if(q.startTime<=k)v(F),q.sortIndex=q.expirationTime,w(D,q);else break;q=m(F)}}function z(k){if(J=!1,Z(k),!W)if(m(D)!==null)W=!0,A(O);else{var q=m(F);q!==null&&t(z,q.startTime-k)}}function O(k,q){W=!1,J&&(J=!1,i()),P=!0;var j=U;try{for(Z(q),M=m(D);M!==null&&(!(M.expirationTime>q)||k&&!e.unstable_shouldYield());){var AA=M.callback;if(typeof AA=="function"){M.callback=null,U=M.priorityLevel;var iA=AA(M.expirationTime<=q);q=e.unstable_now(),typeof iA=="function"?M.callback=iA:M===m(D)&&v(D),Z(q)}else v(D);M=m(D)}if(M!==null)var gA=!0;else{var sA=m(F);sA!==null&&t(z,sA.startTime-q),gA=!1}return gA}finally{M=null,U=j,P=!1}}var Y=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(k){k.callback=null},e.unstable_continueExecution=function(){W||P||(W=!0,A(O))},e.unstable_getCurrentPriorityLevel=function(){return U},e.unstable_getFirstCallbackNode=function(){return m(D)},e.unstable_next=function(k){switch(U){case 1:case 2:case 3:var q=3;break;default:q=U}var j=U;U=q;try{return k()}finally{U=j}},e.unstable_pauseExecution=function(){},e.unstable_requestPaint=Y,e.unstable_runWithPriority=function(k,q){switch(k){case 1:case 2:case 3:case 4:case 5:break;default:k=3}var j=U;U=k;try{return q()}finally{U=j}},e.unstable_scheduleCallback=function(k,q,j){var AA=e.unstable_now();switch(typeof j=="object"&&j!==null?(j=j.delay,j=typeof j=="number"&&0AA?(k.sortIndex=j,w(F,k),m(D)===null&&k===m(F)&&(J?i():J=!0,t(z,j-AA))):(k.sortIndex=iA,w(D,k),W||P||(W=!0,A(O))),k},e.unstable_wrapCallback=function(k){var q=U;return function(){var j=U;U=q;try{return k.apply(this,arguments)}finally{U=j}}}})(wF);mF.exports=wF;/** @license React v17.0.2 * react-dom.production.min.js * * Copyright (c) Facebook, Inc. and its affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var CE=p.exports,qe=oF,gt=dF.exports;function oA(e){for(var A="https://reactjs.org/docs/error-decoder.html?invariant="+e,t=1;tA}return!1}function Ht(e,A,t,i,n,r,o){this.acceptsBooleans=A===2||A===3||A===4,this.attributeName=i,this.attributeNamespace=n,this.mustUseProperty=t,this.propertyName=e,this.type=A,this.sanitizeURL=r,this.removeEmptyString=o}var yt={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){yt[e]=new Ht(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var A=e[0];yt[A]=new Ht(A,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){yt[e]=new Ht(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){yt[e]=new Ht(e,2,!1,e,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){yt[e]=new Ht(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){yt[e]=new Ht(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){yt[e]=new Ht(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){yt[e]=new Ht(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){yt[e]=new Ht(e,5,!1,e.toLowerCase(),null,!1,!1)});var u0=/[\-:]([a-z])/g;function h0(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var A=e.replace(u0,h0);yt[A]=new Ht(A,1,!1,e,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var A=e.replace(u0,h0);yt[A]=new Ht(A,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var A=e.replace(u0,h0);yt[A]=new Ht(A,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){yt[e]=new Ht(e,1,!1,e.toLowerCase(),null,!1,!1)});yt.xlinkHref=new Ht("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){yt[e]=new Ht(e,1,!1,e.toLowerCase(),null,!0,!0)});function f0(e,A,t,i){var n=yt.hasOwnProperty(A)?yt[A]:null,r=n!==null?n.type===0:i?!1:!(!(2A}return!1}function Ht(e,A,t,i,n,r,o){this.acceptsBooleans=A===2||A===3||A===4,this.attributeName=i,this.attributeNamespace=n,this.mustUseProperty=t,this.propertyName=e,this.type=A,this.sanitizeURL=r,this.removeEmptyString=o}var yt={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){yt[e]=new Ht(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var A=e[0];yt[A]=new Ht(A,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){yt[e]=new Ht(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){yt[e]=new Ht(e,2,!1,e,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){yt[e]=new Ht(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){yt[e]=new Ht(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){yt[e]=new Ht(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){yt[e]=new Ht(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){yt[e]=new Ht(e,5,!1,e.toLowerCase(),null,!1,!1)});var h0=/[\-:]([a-z])/g;function f0(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var A=e.replace(h0,f0);yt[A]=new Ht(A,1,!1,e,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var A=e.replace(h0,f0);yt[A]=new Ht(A,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var A=e.replace(h0,f0);yt[A]=new Ht(A,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){yt[e]=new Ht(e,1,!1,e.toLowerCase(),null,!1,!1)});yt.xlinkHref=new Ht("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){yt[e]=new Ht(e,1,!1,e.toLowerCase(),null,!0,!0)});function Q0(e,A,t,i){var n=yt.hasOwnProperty(A)?yt[A]:null,r=n!==null?n.type===0:i?!1:!(!(2s||n[o]!==r[s])return` -`+n[o].replace(" at new "," at ");while(1<=o&&0<=s);break}}}finally{Tu=!1,Error.prepareStackTrace=t}return(e=e?e.displayName||e.name:"")?kg(e):""}function qk(e){switch(e.tag){case 5:return kg(e.type);case 16:return kg("Lazy");case 13:return kg("Suspense");case 19:return kg("SuspenseList");case 0:case 2:case 15:return e=lc(e.type,!1),e;case 11:return e=lc(e.type.render,!1),e;case 22:return e=lc(e.type._render,!1),e;case 1:return e=lc(e.type,!0),e;default:return""}}function Ws(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case Br:return"Fragment";case uo:return"Portal";case Xg:return"Profiler";case Q0:return"StrictMode";case Zg:return"Suspense";case AB:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case p0:return(e.displayName||"Context")+".Consumer";case d0:return(e._context.displayName||"Context")+".Provider";case BE:var A=e.render;return A=A.displayName||A.name||"",e.displayName||(A!==""?"ForwardRef("+A+")":"ForwardRef");case EE:return Ws(e.type);case m0:return Ws(e._render);case y0:A=e._payload,e=e._init;try{return Ws(e(A))}catch{}}return null}function kr(e){switch(typeof e){case"boolean":case"number":case"object":case"string":case"undefined":return e;default:return""}}function wF(e){var A=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(A==="checkbox"||A==="radio")}function Jk(e){var A=wF(e)?"checked":"value",t=Object.getOwnPropertyDescriptor(e.constructor.prototype,A),i=""+e[A];if(!e.hasOwnProperty(A)&&typeof t!="undefined"&&typeof t.get=="function"&&typeof t.set=="function"){var n=t.get,r=t.set;return Object.defineProperty(e,A,{configurable:!0,get:function(){return n.call(this)},set:function(o){i=""+o,r.call(this,o)}}),Object.defineProperty(e,A,{enumerable:t.enumerable}),{getValue:function(){return i},setValue:function(o){i=""+o},stopTracking:function(){e._valueTracker=null,delete e[A]}}}}function cc(e){e._valueTracker||(e._valueTracker=Jk(e))}function vF(e){if(!e)return!1;var A=e._valueTracker;if(!A)return!0;var t=A.getValue(),i="";return e&&(i=wF(e)?e.checked?"true":"false":e.value),e=i,e!==t?(A.setValue(e),!0):!1}function eB(e){if(e=e||(typeof document!="undefined"?document:void 0),typeof e=="undefined")return null;try{return e.activeElement||e.body}catch{return e.body}}function Wf(e,A){var t=A.checked;return qe({},A,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:t!=null?t:e._wrapperState.initialChecked})}function ew(e,A){var t=A.defaultValue==null?"":A.defaultValue,i=A.checked!=null?A.checked:A.defaultChecked;t=kr(A.value!=null?A.value:t),e._wrapperState={initialChecked:i,initialValue:t,controlled:A.type==="checkbox"||A.type==="radio"?A.checked!=null:A.value!=null}}function SF(e,A){A=A.checked,A!=null&&f0(e,"checked",A,!1)}function zf(e,A){SF(e,A);var t=kr(A.value),i=A.type;if(t!=null)i==="number"?(t===0&&e.value===""||e.value!=t)&&(e.value=""+t):e.value!==""+t&&(e.value=""+t);else if(i==="submit"||i==="reset"){e.removeAttribute("value");return}A.hasOwnProperty("value")?jf(e,A.type,t):A.hasOwnProperty("defaultValue")&&jf(e,A.type,kr(A.defaultValue)),A.checked==null&&A.defaultChecked!=null&&(e.defaultChecked=!!A.defaultChecked)}function tw(e,A,t){if(A.hasOwnProperty("value")||A.hasOwnProperty("defaultValue")){var i=A.type;if(!(i!=="submit"&&i!=="reset"||A.value!==void 0&&A.value!==null))return;A=""+e._wrapperState.initialValue,t||A===e.value||(e.value=A),e.defaultValue=A}t=e.name,t!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,t!==""&&(e.name=t)}function jf(e,A,t){(A!=="number"||eB(e.ownerDocument)!==e)&&(t==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+t&&(e.defaultValue=""+t))}function Ok(e){var A="";return CE.Children.forEach(e,function(t){t!=null&&(A+=t)}),A}function Xf(e,A){return e=qe({children:void 0},A),(A=Ok(A.children))&&(e.children=A),e}function zs(e,A,t,i){if(e=e.options,A){A={};for(var n=0;n=t.length))throw Error(oA(93));t=t[0]}A=t}A==null&&(A=""),t=A}e._wrapperState={initialValue:kr(t)}}function DF(e,A){var t=kr(A.value),i=kr(A.defaultValue);t!=null&&(t=""+t,t!==e.value&&(e.value=t),A.defaultValue==null&&e.defaultValue!==t&&(e.defaultValue=t)),i!=null&&(e.defaultValue=""+i)}function nw(e){var A=e.textContent;A===e._wrapperState.initialValue&&A!==""&&A!==null&&(e.value=A)}var $f={html:"http://www.w3.org/1999/xhtml",mathml:"http://www.w3.org/1998/Math/MathML",svg:"http://www.w3.org/2000/svg"};function RF(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function AQ(e,A){return e==null||e==="http://www.w3.org/1999/xhtml"?RF(A):e==="http://www.w3.org/2000/svg"&&A==="foreignObject"?"http://www.w3.org/1999/xhtml":e}var Cc,xF=function(e){return typeof MSApp!="undefined"&&MSApp.execUnsafeLocalFunction?function(A,t,i,n){MSApp.execUnsafeLocalFunction(function(){return e(A,t,i,n)})}:e}(function(e,A){if(e.namespaceURI!==$f.svg||"innerHTML"in e)e.innerHTML=A;else{for(Cc=Cc||document.createElement("div"),Cc.innerHTML=""+A.valueOf().toString()+"",A=Cc.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;A.firstChild;)e.appendChild(A.firstChild)}});function xI(e,A){if(A){var t=e.firstChild;if(t&&t===e.lastChild&&t.nodeType===3){t.nodeValue=A;return}}e.textContent=A}var $g={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},Yk=["Webkit","ms","Moz","O"];Object.keys($g).forEach(function(e){Yk.forEach(function(A){A=A+e.charAt(0).toUpperCase()+e.substring(1),$g[A]=$g[e]})});function FF(e,A,t){return A==null||typeof A=="boolean"||A===""?"":t||typeof A!="number"||A===0||$g.hasOwnProperty(e)&&$g[e]?(""+A).trim():A+"px"}function NF(e,A){e=e.style;for(var t in A)if(A.hasOwnProperty(t)){var i=t.indexOf("--")===0,n=FF(t,A[t],i);t==="float"&&(t="cssFloat"),i?e.setProperty(t,n):e[t]=n}}var Kk=qe({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function eQ(e,A){if(A){if(Kk[e]&&(A.children!=null||A.dangerouslySetInnerHTML!=null))throw Error(oA(137,e));if(A.dangerouslySetInnerHTML!=null){if(A.children!=null)throw Error(oA(60));if(!(typeof A.dangerouslySetInnerHTML=="object"&&"__html"in A.dangerouslySetInnerHTML))throw Error(oA(61))}if(A.style!=null&&typeof A.style!="object")throw Error(oA(62))}}function tQ(e,A){if(e.indexOf("-")===-1)return typeof A.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}function S0(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var iQ=null,js=null,Xs=null;function rw(e){if(e=El(e)){if(typeof iQ!="function")throw Error(oA(280));var A=e.stateNode;A&&(A=pE(A),iQ(e.stateNode,e.type,A))}}function LF(e){js?Xs?Xs.push(e):Xs=[e]:js=e}function bF(){if(js){var e=js,A=Xs;if(Xs=js=null,rw(e),A)for(e=0;ei?0:1<t;t++)A.push(e);return A}function hE(e,A,t){e.pendingLanes|=A;var i=A-1;e.suspendedLanes&=i,e.pingedLanes&=i,e=e.eventTimes,A=31-Tr(A),e[A]=t}var Tr=Math.clz32?Math.clz32:aT,oT=Math.log,sT=Math.LN2;function aT(e){return e===0?32:31-(oT(e)/sT|0)|0}var gT=gt.unstable_UserBlockingPriority,IT=gt.unstable_runWithPriority,pC=!0;function lT(e,A,t,i){ho||R0();var n=b0,r=ho;ho=!0;try{GF(n,e,A,t,i)}finally{(ho=r)||x0()}}function cT(e,A,t,i){IT(gT,b0.bind(null,e,A,t,i))}function b0(e,A,t,i){if(pC){var n;if((n=(A&4)===0)&&0=eI),Ew=String.fromCharCode(32),uw=!1;function XF(e,A){switch(e){case"keyup":return _T.indexOf(A.keyCode)!==-1;case"keydown":return A.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function ZF(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var _s=!1;function kT(e,A){switch(e){case"compositionend":return ZF(A);case"keypress":return A.which!==32?null:(uw=!0,Ew);case"textInput":return e=A.data,e===Ew&&uw?null:e;default:return null}}function TT(e,A){if(_s)return e==="compositionend"||!T0&&XF(e,A)?(e=zF(),yC=_0=ur=null,_s=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(A.ctrlKey||A.altKey||A.metaKey)||A.ctrlKey&&A.altKey){if(A.char&&1=A)return{node:t,offset:A-e};e=i}A:{for(;t;){if(t.nextSibling){t=t.nextSibling;break A}t=t.parentNode}t=void 0}t=dw(t)}}function tN(e,A){return e&&A?e===A?!0:e&&e.nodeType===3?!1:A&&A.nodeType===3?tN(e,A.parentNode):"contains"in e?e.contains(A):e.compareDocumentPosition?!!(e.compareDocumentPosition(A)&16):!1:!1}function yw(){for(var e=window,A=eB();A instanceof e.HTMLIFrameElement;){try{var t=typeof A.contentWindow.location.href=="string"}catch{t=!1}if(t)e=A.contentWindow;else break;A=eB(e.document)}return A}function aQ(e){var A=e&&e.nodeName&&e.nodeName.toLowerCase();return A&&(A==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||A==="textarea"||e.contentEditable==="true")}var WT=Tn&&"documentMode"in document&&11>=document.documentMode,Ms=null,gQ=null,iI=null,IQ=!1;function mw(e,A,t){var i=t.window===t?t.document:t.nodeType===9?t:t.ownerDocument;IQ||Ms==null||Ms!==eB(i)||(i=Ms,"selectionStart"in i&&aQ(i)?i={start:i.selectionStart,end:i.selectionEnd}:(i=(i.ownerDocument&&i.ownerDocument.defaultView||window).getSelection(),i={anchorNode:i.anchorNode,anchorOffset:i.anchorOffset,focusNode:i.focusNode,focusOffset:i.focusOffset}),iI&&_I(iI,i)||(iI=i,i=rB(gQ,"onSelect"),0Ts||(e.current=cQ[Ts],cQ[Ts]=null,Ts--)}function We(e,A){Ts++,cQ[Ts]=e.current,e.current=A}var Ur={},Gt=Zr(Ur),Wt=Zr(!1),No=Ur;function ca(e,A){var t=e.type.contextTypes;if(!t)return Ur;var i=e.stateNode;if(i&&i.__reactInternalMemoizedUnmaskedChildContext===A)return i.__reactInternalMemoizedMaskedChildContext;var n={},r;for(r in t)n[r]=A[r];return i&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=A,e.__reactInternalMemoizedMaskedChildContext=n),n}function zt(e){return e=e.childContextTypes,e!=null}function aB(){Te(Wt),Te(Gt)}function Lw(e,A,t){if(Gt.current!==Ur)throw Error(oA(168));We(Gt,A),We(Wt,t)}function IN(e,A,t){var i=e.stateNode;if(e=A.childContextTypes,typeof i.getChildContext!="function")return t;i=i.getChildContext();for(var n in i)if(!(n in e))throw Error(oA(108,Ws(A)||"Unknown",n));return qe({},t,i)}function wC(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Ur,No=Gt.current,We(Gt,e),We(Wt,Wt.current),!0}function bw(e,A,t){var i=e.stateNode;if(!i)throw Error(oA(169));t?(e=IN(e,A,No),i.__reactInternalMemoizedMergedChildContext=e,Te(Wt),Te(Gt),We(Gt,e)):Te(Wt),We(Wt,t)}var P0=null,Do=null,XT=gt.unstable_runWithPriority,H0=gt.unstable_scheduleCallback,CQ=gt.unstable_cancelCallback,ZT=gt.unstable_shouldYield,Gw=gt.unstable_requestPaint,BQ=gt.unstable_now,$T=gt.unstable_getCurrentPriorityLevel,yE=gt.unstable_ImmediatePriority,lN=gt.unstable_UserBlockingPriority,cN=gt.unstable_NormalPriority,CN=gt.unstable_LowPriority,BN=gt.unstable_IdlePriority,Xu={},AU=Gw!==void 0?Gw:function(){},Sn=null,vC=null,Zu=!1,_w=BQ(),Nt=1e4>_w?BQ:function(){return BQ()-_w};function Ca(){switch($T()){case yE:return 99;case lN:return 98;case cN:return 97;case CN:return 96;case BN:return 95;default:throw Error(oA(332))}}function EN(e){switch(e){case 99:return yE;case 98:return lN;case 97:return cN;case 96:return CN;case 95:return BN;default:throw Error(oA(332))}}function Lo(e,A){return e=EN(e),XT(e,A)}function kI(e,A,t){return e=EN(e),H0(e,A,t)}function Bn(){if(vC!==null){var e=vC;vC=null,CQ(e)}uN()}function uN(){if(!Zu&&Sn!==null){Zu=!0;var e=0;try{var A=Sn;Lo(99,function(){for(;ev?(x=m,m=null):x=m.sibling;var D=c(E,m,f[v],Q);if(D===null){m===null&&(m=x);break}e&&m&&D.alternate===null&&A(E,m),h=r(D,h,v),w===null?d=D:w.sibling=D,w=D,m=x}if(v===f.length)return t(E,m),d;if(m===null){for(;vv?(x=m,m=null):x=m.sibling;var F=c(E,m,D.value,Q);if(F===null){m===null&&(m=x);break}e&&m&&F.alternate===null&&A(E,m),h=r(F,h,v),w===null?d=F:w.sibling=F,w=F,m=x}if(D.done)return t(E,m),d;if(m===null){for(;!D.done;v++,D=f.next())D=l(E,D.value,Q),D!==null&&(h=r(D,h,v),w===null?d=D:w.sibling=D,w=D);return d}for(m=i(E,m);!D.done;v++,D=f.next())D=C(m,E,v,D.value,Q),D!==null&&(e&&D.alternate!==null&&m.delete(D.key===null?v:D.key),h=r(D,h,v),w===null?d=D:w.sibling=D,w=D);return e&&m.forEach(function(N){return A(E,N)}),d}return function(E,h,f,Q){var d=typeof f=="object"&&f!==null&&f.type===Br&&f.key===null;d&&(f=f.props.children);var w=typeof f=="object"&&f!==null;if(w)switch(f.$$typeof){case Mg:A:{for(w=f.key,d=h;d!==null;){if(d.key===w){switch(d.tag){case 7:if(f.type===Br){t(E,d.sibling),h=n(d,f.props.children),h.return=E,E=h;break A}break;default:if(d.elementType===f.type){t(E,d.sibling),h=n(d,f.props),h.ref=Cg(E,d,f),h.return=E,E=h;break A}}t(E,d);break}else A(E,d);d=d.sibling}f.type===Br?(h=ia(f.props.children,E.mode,Q,f.key),h.return=E,E=h):(Q=xC(f.type,f.key,f.props,null,E.mode,Q),Q.ref=Cg(E,h,f),Q.return=E,E=Q)}return o(E);case uo:A:{for(d=f.key;h!==null;){if(h.key===d)if(h.tag===4&&h.stateNode.containerInfo===f.containerInfo&&h.stateNode.implementation===f.implementation){t(E,h.sibling),h=n(h,f.children||[]),h.return=E,E=h;break A}else{t(E,h);break}else A(E,h);h=h.sibling}h=nh(f,E.mode,Q),h.return=E,E=h}return o(E)}if(typeof f=="string"||typeof f=="number")return f=""+f,h!==null&&h.tag===6?(t(E,h.sibling),h=n(h,f),h.return=E,E=h):(t(E,h),h=ih(f,E.mode,Q),h.return=E,E=h),o(E);if(uc(f))return B(E,h,f,Q);if(sg(f))return u(E,h,f,Q);if(w&&hc(E,f),typeof f=="undefined"&&!d)switch(E.tag){case 1:case 22:case 0:case 11:case 15:throw Error(oA(152,Ws(E.type)||"Component"))}return t(E,h)}}var CB=pN(!0),yN=pN(!1),ul={},gn=Zr(ul),UI=Zr(ul),PI=Zr(ul);function Qo(e){if(e===ul)throw Error(oA(174));return e}function uQ(e,A){switch(We(PI,A),We(UI,e),We(gn,ul),e=A.nodeType,e){case 9:case 11:A=(A=A.documentElement)?A.namespaceURI:AQ(null,"");break;default:e=e===8?A.parentNode:A,A=e.namespaceURI||null,e=e.tagName,A=AQ(A,e)}Te(gn),We(gn,A)}function Ba(){Te(gn),Te(UI),Te(PI)}function Pw(e){Qo(PI.current);var A=Qo(gn.current),t=AQ(A,e.type);A!==t&&(We(UI,e),We(gn,t))}function Y0(e){UI.current===e&&(Te(gn),Te(UI))}var Ve=Zr(0);function BB(e){for(var A=e;A!==null;){if(A.tag===13){var t=A.memoizedState;if(t!==null&&(t=t.dehydrated,t===null||t.data==="$?"||t.data==="$!"))return A}else if(A.tag===19&&A.memoizedProps.revealOrder!==void 0){if((A.flags&64)!==0)return A}else if(A.child!==null){A.child.return=A,A=A.child;continue}if(A===e)break;for(;A.sibling===null;){if(A.return===null||A.return===e)return null;A=A.return}A.sibling.return=A.return,A=A.sibling}return null}var Ln=null,fr=null,In=!1;function mN(e,A){var t=Ci(5,null,null,0);t.elementType="DELETED",t.type="DELETED",t.stateNode=A,t.return=e,t.flags=8,e.lastEffect!==null?(e.lastEffect.nextEffect=t,e.lastEffect=t):e.firstEffect=e.lastEffect=t}function Hw(e,A){switch(e.tag){case 5:var t=e.type;return A=A.nodeType!==1||t.toLowerCase()!==A.nodeName.toLowerCase()?null:A,A!==null?(e.stateNode=A,!0):!1;case 6:return A=e.pendingProps===""||A.nodeType!==3?null:A,A!==null?(e.stateNode=A,!0):!1;case 13:return!1;default:return!1}}function hQ(e){if(In){var A=fr;if(A){var t=A;if(!Hw(e,A)){if(A=Zs(t.nextSibling),!A||!Hw(e,A)){e.flags=e.flags&-1025|2,In=!1,Ln=e;return}mN(Ln,t)}Ln=e,fr=Zs(A.firstChild)}else e.flags=e.flags&-1025|2,In=!1,Ln=e}}function qw(e){for(e=e.return;e!==null&&e.tag!==5&&e.tag!==3&&e.tag!==13;)e=e.return;Ln=e}function fc(e){if(e!==Ln)return!1;if(!In)return qw(e),In=!0,!1;var A=e.type;if(e.tag!==5||A!=="head"&&A!=="body"&&!lQ(A,e.memoizedProps))for(A=fr;A;)mN(e,A),A=Zs(A.nextSibling);if(qw(e),e.tag===13){if(e=e.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(oA(317));A:{for(e=e.nextSibling,A=0;e;){if(e.nodeType===8){var t=e.data;if(t==="/$"){if(A===0){fr=Zs(e.nextSibling);break A}A--}else t!=="$"&&t!=="$!"&&t!=="$?"||A++}e=e.nextSibling}fr=null}}else fr=Ln?Zs(e.stateNode.nextSibling):null;return!0}function $u(){fr=Ln=null,In=!1}var Aa=[];function K0(){for(var e=0;er))throw Error(oA(301));r+=1,Et=Dt=null,A.updateQueue=null,nI.current=rU,e=t(i,n)}while(rI)}if(nI.current=QB,A=Dt!==null&&Dt.next!==null,HI=0,Et=Dt=je=null,EB=!1,A)throw Error(oA(300));return e}function po(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return Et===null?je.memoizedState=Et=e:Et=Et.next=e,Et}function ts(){if(Dt===null){var e=je.alternate;e=e!==null?e.memoizedState:null}else e=Dt.next;var A=Et===null?je.memoizedState:Et.next;if(A!==null)Et=A,Dt=e;else{if(e===null)throw Error(oA(310));Dt=e,e={memoizedState:Dt.memoizedState,baseState:Dt.baseState,baseQueue:Dt.baseQueue,queue:Dt.queue,next:null},Et===null?je.memoizedState=Et=e:Et=Et.next=e}return Et}function on(e,A){return typeof A=="function"?A(e):A}function Bg(e){var A=ts(),t=A.queue;if(t===null)throw Error(oA(311));t.lastRenderedReducer=e;var i=Dt,n=i.baseQueue,r=t.pending;if(r!==null){if(n!==null){var o=n.next;n.next=r.next,r.next=o}i.baseQueue=n=r,t.pending=null}if(n!==null){n=n.next,i=i.baseState;var s=o=r=null,a=n;do{var g=a.lane;if((HI&g)===g)s!==null&&(s=s.next={lane:0,action:a.action,eagerReducer:a.eagerReducer,eagerState:a.eagerState,next:null}),i=a.eagerReducer===e?a.eagerState:e(i,a.action);else{var I={lane:g,action:a.action,eagerReducer:a.eagerReducer,eagerState:a.eagerState,next:null};s===null?(o=s=I,r=i):s=s.next=I,je.lanes|=g,hl|=g}a=a.next}while(a!==null&&a!==n);s===null?r=i:s.next=o,ci(i,A.memoizedState)||(Fi=!0),A.memoizedState=i,A.baseState=r,A.baseQueue=s,t.lastRenderedState=i}return[A.memoizedState,t.dispatch]}function Eg(e){var A=ts(),t=A.queue;if(t===null)throw Error(oA(311));t.lastRenderedReducer=e;var i=t.dispatch,n=t.pending,r=A.memoizedState;if(n!==null){t.pending=null;var o=n=n.next;do r=e(r,o.action),o=o.next;while(o!==n);ci(r,A.memoizedState)||(Fi=!0),A.memoizedState=r,A.baseQueue===null&&(A.baseState=r),t.lastRenderedState=r}return[r,i]}function Jw(e,A,t){var i=A._getVersion;i=i(A._source);var n=A._workInProgressVersionPrimary;if(n!==null?e=n===i:(e=e.mutableReadLanes,(e=(HI&e)===e)&&(A._workInProgressVersionPrimary=i,Aa.push(A))),e)return t(A._source);throw Aa.push(A),Error(oA(350))}function wN(e,A,t,i){var n=Ut;if(n===null)throw Error(oA(349));var r=A._getVersion,o=r(A._source),s=nI.current,a=s.useState(function(){return Jw(n,A,t)}),g=a[1],I=a[0];a=Et;var l=e.memoizedState,c=l.refs,C=c.getSnapshot,B=l.source;l=l.subscribe;var u=je;return e.memoizedState={refs:c,source:A,subscribe:i},s.useEffect(function(){c.getSnapshot=t,c.setSnapshot=g;var E=r(A._source);if(!ci(o,E)){E=t(A._source),ci(I,E)||(g(E),E=Rr(u),n.mutableReadLanes|=E&n.pendingLanes),E=n.mutableReadLanes,n.entangledLanes|=E;for(var h=n.entanglements,f=E;0t?98:t,function(){e(!0)}),Lo(97<\/script>",e=e.removeChild(e.firstChild)):typeof i.is=="string"?e=o.createElement(t,{is:i.is}):(e=o.createElement(t),t==="select"&&(o=e,i.multiple?o.multiple=!0:i.size&&(o.size=i.size))):e=o.createElementNS(e,t),e[hr]=A,e[sB]=i,bN(e,A,!1,!1),A.stateNode=e,o=tQ(t,i),t){case"dialog":ke("cancel",e),ke("close",e),n=i;break;case"iframe":case"object":case"embed":ke("load",e),n=i;break;case"video":case"audio":for(n=0;nDQ&&(A.flags|=64,r=!0,hg(i,!1),A.lanes=33554432)}else{if(!r)if(e=BB(o),e!==null){if(A.flags|=64,r=!0,t=e.updateQueue,t!==null&&(A.updateQueue=t,A.flags|=4),hg(i,!0),i.tail===null&&i.tailMode==="hidden"&&!o.alternate&&!In)return A=A.lastEffect=i.lastEffect,A!==null&&(A.nextEffect=null),null}else 2*Nt()-i.renderingStartTime>DQ&&t!==1073741824&&(A.flags|=64,r=!0,hg(i,!1),A.lanes=33554432);i.isBackwards?(o.sibling=A.child,A.child=o):(t=i.last,t!==null?t.sibling=o:A.child=o,i.last=o)}return i.tail!==null?(t=i.tail,i.rendering=t,i.tail=t.sibling,i.lastEffect=A.lastEffect,i.renderingStartTime=Nt(),t.sibling=null,A=Ve.current,We(Ve,r?A&1|2:A&1),t):null;case 23:case 24:return tp(),e!==null&&e.memoizedState!==null!=(A.memoizedState!==null)&&i.mode!=="unstable-defer-without-hiding"&&(A.flags|=4),null}throw Error(oA(156,A.tag))}function aU(e){switch(e.tag){case 1:zt(e.type)&&aB();var A=e.flags;return A&4096?(e.flags=A&-4097|64,e):null;case 3:if(Ba(),Te(Wt),Te(Gt),K0(),A=e.flags,(A&64)!==0)throw Error(oA(285));return e.flags=A&-4097|64,e;case 5:return Y0(e),null;case 13:return Te(Ve),A=e.flags,A&4096?(e.flags=A&-4097|64,e):null;case 19:return Te(Ve),null;case 4:return Ba(),null;case 10:return J0(e),null;case 23:case 24:return tp(),null;default:return null}}function Z0(e,A){try{var t="",i=A;do t+=qk(i),i=i.return;while(i);var n=t}catch(r){n=` +`+n[o].replace(" at new "," at ");while(1<=o&&0<=s);break}}}finally{Tu=!1,Error.prepareStackTrace=t}return(e=e?e.displayName||e.name:"")?Mg(e):""}function Yk(e){switch(e.tag){case 5:return Mg(e.type);case 16:return Mg("Lazy");case 13:return Mg("Suspense");case 19:return Mg("SuspenseList");case 0:case 2:case 15:return e=lc(e.type,!1),e;case 11:return e=lc(e.type.render,!1),e;case 22:return e=lc(e.type._render,!1),e;case 1:return e=lc(e.type,!0),e;default:return""}}function Vs(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case Cr:return"Fragment";case Eo:return"Portal";case jg:return"Profiler";case d0:return"StrictMode";case Xg:return"Suspense";case AB:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case y0:return(e.displayName||"Context")+".Consumer";case p0:return(e._context.displayName||"Context")+".Provider";case BE:var A=e.render;return A=A.displayName||A.name||"",e.displayName||(A!==""?"ForwardRef("+A+")":"ForwardRef");case EE:return Vs(e.type);case w0:return Vs(e._render);case m0:A=e._payload,e=e._init;try{return Vs(e(A))}catch{}}return null}function Mr(e){switch(typeof e){case"boolean":case"number":case"object":case"string":case"undefined":return e;default:return""}}function DF(e){var A=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(A==="checkbox"||A==="radio")}function Kk(e){var A=DF(e)?"checked":"value",t=Object.getOwnPropertyDescriptor(e.constructor.prototype,A),i=""+e[A];if(!e.hasOwnProperty(A)&&typeof t!="undefined"&&typeof t.get=="function"&&typeof t.set=="function"){var n=t.get,r=t.set;return Object.defineProperty(e,A,{configurable:!0,get:function(){return n.call(this)},set:function(o){i=""+o,r.call(this,o)}}),Object.defineProperty(e,A,{enumerable:t.enumerable}),{getValue:function(){return i},setValue:function(o){i=""+o},stopTracking:function(){e._valueTracker=null,delete e[A]}}}}function cc(e){e._valueTracker||(e._valueTracker=Kk(e))}function RF(e){if(!e)return!1;var A=e._valueTracker;if(!A)return!0;var t=A.getValue(),i="";return e&&(i=DF(e)?e.checked?"true":"false":e.value),e=i,e!==t?(A.setValue(e),!0):!1}function eB(e){if(e=e||(typeof document!="undefined"?document:void 0),typeof e=="undefined")return null;try{return e.activeElement||e.body}catch{return e.body}}function zf(e,A){var t=A.checked;return qe({},A,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:t!=null?t:e._wrapperState.initialChecked})}function tw(e,A){var t=A.defaultValue==null?"":A.defaultValue,i=A.checked!=null?A.checked:A.defaultChecked;t=Mr(A.value!=null?A.value:t),e._wrapperState={initialChecked:i,initialValue:t,controlled:A.type==="checkbox"||A.type==="radio"?A.checked!=null:A.value!=null}}function xF(e,A){A=A.checked,A!=null&&Q0(e,"checked",A,!1)}function jf(e,A){xF(e,A);var t=Mr(A.value),i=A.type;if(t!=null)i==="number"?(t===0&&e.value===""||e.value!=t)&&(e.value=""+t):e.value!==""+t&&(e.value=""+t);else if(i==="submit"||i==="reset"){e.removeAttribute("value");return}A.hasOwnProperty("value")?Xf(e,A.type,t):A.hasOwnProperty("defaultValue")&&Xf(e,A.type,Mr(A.defaultValue)),A.checked==null&&A.defaultChecked!=null&&(e.defaultChecked=!!A.defaultChecked)}function iw(e,A,t){if(A.hasOwnProperty("value")||A.hasOwnProperty("defaultValue")){var i=A.type;if(!(i!=="submit"&&i!=="reset"||A.value!==void 0&&A.value!==null))return;A=""+e._wrapperState.initialValue,t||A===e.value||(e.value=A),e.defaultValue=A}t=e.name,t!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,t!==""&&(e.name=t)}function Xf(e,A,t){(A!=="number"||eB(e.ownerDocument)!==e)&&(t==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+t&&(e.defaultValue=""+t))}function Vk(e){var A="";return CE.Children.forEach(e,function(t){t!=null&&(A+=t)}),A}function Zf(e,A){return e=qe({children:void 0},A),(A=Vk(A.children))&&(e.children=A),e}function Ws(e,A,t,i){if(e=e.options,A){A={};for(var n=0;n=t.length))throw Error(oA(93));t=t[0]}A=t}A==null&&(A=""),t=A}e._wrapperState={initialValue:Mr(t)}}function FF(e,A){var t=Mr(A.value),i=Mr(A.defaultValue);t!=null&&(t=""+t,t!==e.value&&(e.value=t),A.defaultValue==null&&e.defaultValue!==t&&(e.defaultValue=t)),i!=null&&(e.defaultValue=""+i)}function rw(e){var A=e.textContent;A===e._wrapperState.initialValue&&A!==""&&A!==null&&(e.value=A)}var AQ={html:"http://www.w3.org/1999/xhtml",mathml:"http://www.w3.org/1998/Math/MathML",svg:"http://www.w3.org/2000/svg"};function NF(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function eQ(e,A){return e==null||e==="http://www.w3.org/1999/xhtml"?NF(A):e==="http://www.w3.org/2000/svg"&&A==="foreignObject"?"http://www.w3.org/1999/xhtml":e}var Cc,LF=function(e){return typeof MSApp!="undefined"&&MSApp.execUnsafeLocalFunction?function(A,t,i,n){MSApp.execUnsafeLocalFunction(function(){return e(A,t,i,n)})}:e}(function(e,A){if(e.namespaceURI!==AQ.svg||"innerHTML"in e)e.innerHTML=A;else{for(Cc=Cc||document.createElement("div"),Cc.innerHTML=""+A.valueOf().toString()+"",A=Cc.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;A.firstChild;)e.appendChild(A.firstChild)}});function RI(e,A){if(A){var t=e.firstChild;if(t&&t===e.lastChild&&t.nodeType===3){t.nodeValue=A;return}}e.textContent=A}var Zg={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},Wk=["Webkit","ms","Moz","O"];Object.keys(Zg).forEach(function(e){Wk.forEach(function(A){A=A+e.charAt(0).toUpperCase()+e.substring(1),Zg[A]=Zg[e]})});function bF(e,A,t){return A==null||typeof A=="boolean"||A===""?"":t||typeof A!="number"||A===0||Zg.hasOwnProperty(e)&&Zg[e]?(""+A).trim():A+"px"}function GF(e,A){e=e.style;for(var t in A)if(A.hasOwnProperty(t)){var i=t.indexOf("--")===0,n=bF(t,A[t],i);t==="float"&&(t="cssFloat"),i?e.setProperty(t,n):e[t]=n}}var zk=qe({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function tQ(e,A){if(A){if(zk[e]&&(A.children!=null||A.dangerouslySetInnerHTML!=null))throw Error(oA(137,e));if(A.dangerouslySetInnerHTML!=null){if(A.children!=null)throw Error(oA(60));if(!(typeof A.dangerouslySetInnerHTML=="object"&&"__html"in A.dangerouslySetInnerHTML))throw Error(oA(61))}if(A.style!=null&&typeof A.style!="object")throw Error(oA(62))}}function iQ(e,A){if(e.indexOf("-")===-1)return typeof A.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}function D0(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var nQ=null,zs=null,js=null;function ow(e){if(e=El(e)){if(typeof nQ!="function")throw Error(oA(280));var A=e.stateNode;A&&(A=pE(A),nQ(e.stateNode,e.type,A))}}function _F(e){zs?js?js.push(e):js=[e]:zs=e}function MF(){if(zs){var e=zs,A=js;if(js=zs=null,ow(e),A)for(e=0;ei?0:1<t;t++)A.push(e);return A}function hE(e,A,t){e.pendingLanes|=A;var i=A-1;e.suspendedLanes&=i,e.pingedLanes&=i,e=e.eventTimes,A=31-kr(A),e[A]=t}var kr=Math.clz32?Math.clz32:lT,gT=Math.log,IT=Math.LN2;function lT(e){return e===0?32:31-(gT(e)/IT|0)|0}var cT=gt.unstable_UserBlockingPriority,CT=gt.unstable_runWithPriority,pC=!0;function BT(e,A,t,i){uo||x0();var n=G0,r=uo;uo=!0;try{kF(n,e,A,t,i)}finally{(uo=r)||F0()}}function ET(e,A,t,i){CT(cT,G0.bind(null,e,A,t,i))}function G0(e,A,t,i){if(pC){var n;if((n=(A&4)===0)&&0=AI),uw=String.fromCharCode(32),hw=!1;function AN(e,A){switch(e){case"keyup":return TT.indexOf(A.keyCode)!==-1;case"keydown":return A.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function eN(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Gs=!1;function PT(e,A){switch(e){case"compositionend":return eN(A);case"keypress":return A.which!==32?null:(hw=!0,uw);case"textInput":return e=A.data,e===uw&&hw?null:e;default:return null}}function HT(e,A){if(Gs)return e==="compositionend"||!U0&&AN(e,A)?(e=ZF(),yC=M0=Er=null,Gs=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(A.ctrlKey||A.altKey||A.metaKey)||A.ctrlKey&&A.altKey){if(A.char&&1=A)return{node:t,offset:A-e};e=i}A:{for(;t;){if(t.nextSibling){t=t.nextSibling;break A}t=t.parentNode}t=void 0}t=pw(t)}}function rN(e,A){return e&&A?e===A?!0:e&&e.nodeType===3?!1:A&&A.nodeType===3?rN(e,A.parentNode):"contains"in e?e.contains(A):e.compareDocumentPosition?!!(e.compareDocumentPosition(A)&16):!1:!1}function mw(){for(var e=window,A=eB();A instanceof e.HTMLIFrameElement;){try{var t=typeof A.contentWindow.location.href=="string"}catch{t=!1}if(t)e=A.contentWindow;else break;A=eB(e.document)}return A}function gQ(e){var A=e&&e.nodeName&&e.nodeName.toLowerCase();return A&&(A==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||A==="textarea"||e.contentEditable==="true")}var XT=Tn&&"documentMode"in document&&11>=document.documentMode,_s=null,IQ=null,tI=null,lQ=!1;function ww(e,A,t){var i=t.window===t?t.document:t.nodeType===9?t:t.ownerDocument;lQ||_s==null||_s!==eB(i)||(i=_s,"selectionStart"in i&&gQ(i)?i={start:i.selectionStart,end:i.selectionEnd}:(i=(i.ownerDocument&&i.ownerDocument.defaultView||window).getSelection(),i={anchorNode:i.anchorNode,anchorOffset:i.anchorOffset,focusNode:i.focusNode,focusOffset:i.focusOffset}),tI&&GI(tI,i)||(tI=i,i=rB(IQ,"onSelect"),0ks||(e.current=CQ[ks],CQ[ks]=null,ks--)}function We(e,A){ks++,CQ[ks]=e.current,e.current=A}var Tr={},Gt=Xr(Tr),Wt=Xr(!1),Fo=Tr;function la(e,A){var t=e.type.contextTypes;if(!t)return Tr;var i=e.stateNode;if(i&&i.__reactInternalMemoizedUnmaskedChildContext===A)return i.__reactInternalMemoizedMaskedChildContext;var n={},r;for(r in t)n[r]=A[r];return i&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=A,e.__reactInternalMemoizedMaskedChildContext=n),n}function zt(e){return e=e.childContextTypes,e!=null}function aB(){Te(Wt),Te(Gt)}function bw(e,A,t){if(Gt.current!==Tr)throw Error(oA(168));We(Gt,A),We(Wt,t)}function CN(e,A,t){var i=e.stateNode;if(e=A.childContextTypes,typeof i.getChildContext!="function")return t;i=i.getChildContext();for(var n in i)if(!(n in e))throw Error(oA(108,Vs(A)||"Unknown",n));return qe({},t,i)}function wC(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Tr,Fo=Gt.current,We(Gt,e),We(Wt,Wt.current),!0}function Gw(e,A,t){var i=e.stateNode;if(!i)throw Error(oA(169));t?(e=CN(e,A,Fo),i.__reactInternalMemoizedMergedChildContext=e,Te(Wt),Te(Gt),We(Gt,e)):Te(Wt),We(Wt,t)}var H0=null,So=null,AU=gt.unstable_runWithPriority,q0=gt.unstable_scheduleCallback,BQ=gt.unstable_cancelCallback,eU=gt.unstable_shouldYield,_w=gt.unstable_requestPaint,EQ=gt.unstable_now,tU=gt.unstable_getCurrentPriorityLevel,yE=gt.unstable_ImmediatePriority,BN=gt.unstable_UserBlockingPriority,EN=gt.unstable_NormalPriority,uN=gt.unstable_LowPriority,hN=gt.unstable_IdlePriority,Xu={},iU=_w!==void 0?_w:function(){},Sn=null,vC=null,Zu=!1,Mw=EQ(),Nt=1e4>Mw?EQ:function(){return EQ()-Mw};function ca(){switch(tU()){case yE:return 99;case BN:return 98;case EN:return 97;case uN:return 96;case hN:return 95;default:throw Error(oA(332))}}function fN(e){switch(e){case 99:return yE;case 98:return BN;case 97:return EN;case 96:return uN;case 95:return hN;default:throw Error(oA(332))}}function No(e,A){return e=fN(e),AU(e,A)}function MI(e,A,t){return e=fN(e),q0(e,A,t)}function Bn(){if(vC!==null){var e=vC;vC=null,BQ(e)}QN()}function QN(){if(!Zu&&Sn!==null){Zu=!0;var e=0;try{var A=Sn;No(99,function(){for(;ev?(x=m,m=null):x=m.sibling;var D=c(E,m,f[v],Q);if(D===null){m===null&&(m=x);break}e&&m&&D.alternate===null&&A(E,m),h=r(D,h,v),w===null?d=D:w.sibling=D,w=D,m=x}if(v===f.length)return t(E,m),d;if(m===null){for(;vv?(x=m,m=null):x=m.sibling;var F=c(E,m,D.value,Q);if(F===null){m===null&&(m=x);break}e&&m&&F.alternate===null&&A(E,m),h=r(F,h,v),w===null?d=F:w.sibling=F,w=F,m=x}if(D.done)return t(E,m),d;if(m===null){for(;!D.done;v++,D=f.next())D=l(E,D.value,Q),D!==null&&(h=r(D,h,v),w===null?d=D:w.sibling=D,w=D);return d}for(m=i(E,m);!D.done;v++,D=f.next())D=C(m,E,v,D.value,Q),D!==null&&(e&&D.alternate!==null&&m.delete(D.key===null?v:D.key),h=r(D,h,v),w===null?d=D:w.sibling=D,w=D);return e&&m.forEach(function(N){return A(E,N)}),d}return function(E,h,f,Q){var d=typeof f=="object"&&f!==null&&f.type===Cr&&f.key===null;d&&(f=f.props.children);var w=typeof f=="object"&&f!==null;if(w)switch(f.$$typeof){case _g:A:{for(w=f.key,d=h;d!==null;){if(d.key===w){switch(d.tag){case 7:if(f.type===Cr){t(E,d.sibling),h=n(d,f.props.children),h.return=E,E=h;break A}break;default:if(d.elementType===f.type){t(E,d.sibling),h=n(d,f.props),h.ref=cg(E,d,f),h.return=E,E=h;break A}}t(E,d);break}else A(E,d);d=d.sibling}f.type===Cr?(h=ta(f.props.children,E.mode,Q,f.key),h.return=E,E=h):(Q=xC(f.type,f.key,f.props,null,E.mode,Q),Q.ref=cg(E,h,f),Q.return=E,E=Q)}return o(E);case Eo:A:{for(d=f.key;h!==null;){if(h.key===d)if(h.tag===4&&h.stateNode.containerInfo===f.containerInfo&&h.stateNode.implementation===f.implementation){t(E,h.sibling),h=n(h,f.children||[]),h.return=E,E=h;break A}else{t(E,h);break}else A(E,h);h=h.sibling}h=nh(f,E.mode,Q),h.return=E,E=h}return o(E)}if(typeof f=="string"||typeof f=="number")return f=""+f,h!==null&&h.tag===6?(t(E,h.sibling),h=n(h,f),h.return=E,E=h):(t(E,h),h=ih(f,E.mode,Q),h.return=E,E=h),o(E);if(uc(f))return B(E,h,f,Q);if(og(f))return u(E,h,f,Q);if(w&&hc(E,f),typeof f=="undefined"&&!d)switch(E.tag){case 1:case 22:case 0:case 11:case 15:throw Error(oA(152,Vs(E.type)||"Component"))}return t(E,h)}}var CB=wN(!0),vN=wN(!1),ul={},gn=Xr(ul),TI=Xr(ul),UI=Xr(ul);function fo(e){if(e===ul)throw Error(oA(174));return e}function hQ(e,A){switch(We(UI,A),We(TI,e),We(gn,ul),e=A.nodeType,e){case 9:case 11:A=(A=A.documentElement)?A.namespaceURI:eQ(null,"");break;default:e=e===8?A.parentNode:A,A=e.namespaceURI||null,e=e.tagName,A=eQ(A,e)}Te(gn),We(gn,A)}function Ca(){Te(gn),Te(TI),Te(UI)}function Hw(e){fo(UI.current);var A=fo(gn.current),t=eQ(A,e.type);A!==t&&(We(TI,e),We(gn,t))}function K0(e){TI.current===e&&(Te(gn),Te(TI))}var Ve=Xr(0);function BB(e){for(var A=e;A!==null;){if(A.tag===13){var t=A.memoizedState;if(t!==null&&(t=t.dehydrated,t===null||t.data==="$?"||t.data==="$!"))return A}else if(A.tag===19&&A.memoizedProps.revealOrder!==void 0){if((A.flags&64)!==0)return A}else if(A.child!==null){A.child.return=A,A=A.child;continue}if(A===e)break;for(;A.sibling===null;){if(A.return===null||A.return===e)return null;A=A.return}A.sibling.return=A.return,A=A.sibling}return null}var Ln=null,hr=null,In=!1;function SN(e,A){var t=Ci(5,null,null,0);t.elementType="DELETED",t.type="DELETED",t.stateNode=A,t.return=e,t.flags=8,e.lastEffect!==null?(e.lastEffect.nextEffect=t,e.lastEffect=t):e.firstEffect=e.lastEffect=t}function qw(e,A){switch(e.tag){case 5:var t=e.type;return A=A.nodeType!==1||t.toLowerCase()!==A.nodeName.toLowerCase()?null:A,A!==null?(e.stateNode=A,!0):!1;case 6:return A=e.pendingProps===""||A.nodeType!==3?null:A,A!==null?(e.stateNode=A,!0):!1;case 13:return!1;default:return!1}}function fQ(e){if(In){var A=hr;if(A){var t=A;if(!qw(e,A)){if(A=Xs(t.nextSibling),!A||!qw(e,A)){e.flags=e.flags&-1025|2,In=!1,Ln=e;return}SN(Ln,t)}Ln=e,hr=Xs(A.firstChild)}else e.flags=e.flags&-1025|2,In=!1,Ln=e}}function Jw(e){for(e=e.return;e!==null&&e.tag!==5&&e.tag!==3&&e.tag!==13;)e=e.return;Ln=e}function fc(e){if(e!==Ln)return!1;if(!In)return Jw(e),In=!0,!1;var A=e.type;if(e.tag!==5||A!=="head"&&A!=="body"&&!cQ(A,e.memoizedProps))for(A=hr;A;)SN(e,A),A=Xs(A.nextSibling);if(Jw(e),e.tag===13){if(e=e.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(oA(317));A:{for(e=e.nextSibling,A=0;e;){if(e.nodeType===8){var t=e.data;if(t==="/$"){if(A===0){hr=Xs(e.nextSibling);break A}A--}else t!=="$"&&t!=="$!"&&t!=="$?"||A++}e=e.nextSibling}hr=null}}else hr=Ln?Xs(e.stateNode.nextSibling):null;return!0}function $u(){hr=Ln=null,In=!1}var $s=[];function V0(){for(var e=0;e<$s.length;e++)$s[e]._workInProgressVersionPrimary=null;$s.length=0}var iI=$o.ReactCurrentDispatcher,Ei=$o.ReactCurrentBatchConfig,PI=0,je=null,Dt=null,Et=null,EB=!1,nI=!1;function Ot(){throw Error(oA(321))}function W0(e,A){if(A===null)return!1;for(var t=0;tr))throw Error(oA(301));r+=1,Et=Dt=null,A.updateQueue=null,iI.current=aU,e=t(i,n)}while(nI)}if(iI.current=QB,A=Dt!==null&&Dt.next!==null,PI=0,Et=Dt=je=null,EB=!1,A)throw Error(oA(300));return e}function Qo(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return Et===null?je.memoizedState=Et=e:Et=Et.next=e,Et}function es(){if(Dt===null){var e=je.alternate;e=e!==null?e.memoizedState:null}else e=Dt.next;var A=Et===null?je.memoizedState:Et.next;if(A!==null)Et=A,Dt=e;else{if(e===null)throw Error(oA(310));Dt=e,e={memoizedState:Dt.memoizedState,baseState:Dt.baseState,baseQueue:Dt.baseQueue,queue:Dt.queue,next:null},Et===null?je.memoizedState=Et=e:Et=Et.next=e}return Et}function on(e,A){return typeof A=="function"?A(e):A}function Cg(e){var A=es(),t=A.queue;if(t===null)throw Error(oA(311));t.lastRenderedReducer=e;var i=Dt,n=i.baseQueue,r=t.pending;if(r!==null){if(n!==null){var o=n.next;n.next=r.next,r.next=o}i.baseQueue=n=r,t.pending=null}if(n!==null){n=n.next,i=i.baseState;var s=o=r=null,a=n;do{var g=a.lane;if((PI&g)===g)s!==null&&(s=s.next={lane:0,action:a.action,eagerReducer:a.eagerReducer,eagerState:a.eagerState,next:null}),i=a.eagerReducer===e?a.eagerState:e(i,a.action);else{var I={lane:g,action:a.action,eagerReducer:a.eagerReducer,eagerState:a.eagerState,next:null};s===null?(o=s=I,r=i):s=s.next=I,je.lanes|=g,hl|=g}a=a.next}while(a!==null&&a!==n);s===null?r=i:s.next=o,ci(i,A.memoizedState)||(Fi=!0),A.memoizedState=i,A.baseState=r,A.baseQueue=s,t.lastRenderedState=i}return[A.memoizedState,t.dispatch]}function Bg(e){var A=es(),t=A.queue;if(t===null)throw Error(oA(311));t.lastRenderedReducer=e;var i=t.dispatch,n=t.pending,r=A.memoizedState;if(n!==null){t.pending=null;var o=n=n.next;do r=e(r,o.action),o=o.next;while(o!==n);ci(r,A.memoizedState)||(Fi=!0),A.memoizedState=r,A.baseQueue===null&&(A.baseState=r),t.lastRenderedState=r}return[r,i]}function Ow(e,A,t){var i=A._getVersion;i=i(A._source);var n=A._workInProgressVersionPrimary;if(n!==null?e=n===i:(e=e.mutableReadLanes,(e=(PI&e)===e)&&(A._workInProgressVersionPrimary=i,$s.push(A))),e)return t(A._source);throw $s.push(A),Error(oA(350))}function DN(e,A,t,i){var n=Ut;if(n===null)throw Error(oA(349));var r=A._getVersion,o=r(A._source),s=iI.current,a=s.useState(function(){return Ow(n,A,t)}),g=a[1],I=a[0];a=Et;var l=e.memoizedState,c=l.refs,C=c.getSnapshot,B=l.source;l=l.subscribe;var u=je;return e.memoizedState={refs:c,source:A,subscribe:i},s.useEffect(function(){c.getSnapshot=t,c.setSnapshot=g;var E=r(A._source);if(!ci(o,E)){E=t(A._source),ci(I,E)||(g(E),E=Dr(u),n.mutableReadLanes|=E&n.pendingLanes),E=n.mutableReadLanes,n.entangledLanes|=E;for(var h=n.entanglements,f=E;0t?98:t,function(){e(!0)}),No(97<\/script>",e=e.removeChild(e.firstChild)):typeof i.is=="string"?e=o.createElement(t,{is:i.is}):(e=o.createElement(t),t==="select"&&(o=e,i.multiple?o.multiple=!0:i.size&&(o.size=i.size))):e=o.createElementNS(e,t),e[ur]=A,e[sB]=i,MN(e,A,!1,!1),A.stateNode=e,o=iQ(t,i),t){case"dialog":ke("cancel",e),ke("close",e),n=i;break;case"iframe":case"object":case"embed":ke("load",e),n=i;break;case"video":case"audio":for(n=0;nRQ&&(A.flags|=64,r=!0,ug(i,!1),A.lanes=33554432)}else{if(!r)if(e=BB(o),e!==null){if(A.flags|=64,r=!0,t=e.updateQueue,t!==null&&(A.updateQueue=t,A.flags|=4),ug(i,!0),i.tail===null&&i.tailMode==="hidden"&&!o.alternate&&!In)return A=A.lastEffect=i.lastEffect,A!==null&&(A.nextEffect=null),null}else 2*Nt()-i.renderingStartTime>RQ&&t!==1073741824&&(A.flags|=64,r=!0,ug(i,!1),A.lanes=33554432);i.isBackwards?(o.sibling=A.child,A.child=o):(t=i.last,t!==null?t.sibling=o:A.child=o,i.last=o)}return i.tail!==null?(t=i.tail,i.rendering=t,i.tail=t.sibling,i.lastEffect=A.lastEffect,i.renderingStartTime=Nt(),t.sibling=null,A=Ve.current,We(Ve,r?A&1|2:A&1),t):null;case 23:case 24:return ip(),e!==null&&e.memoizedState!==null!=(A.memoizedState!==null)&&i.mode!=="unstable-defer-without-hiding"&&(A.flags|=4),null}throw Error(oA(156,A.tag))}function lU(e){switch(e.tag){case 1:zt(e.type)&&aB();var A=e.flags;return A&4096?(e.flags=A&-4097|64,e):null;case 3:if(Ca(),Te(Wt),Te(Gt),V0(),A=e.flags,(A&64)!==0)throw Error(oA(285));return e.flags=A&-4097|64,e;case 5:return K0(e),null;case 13:return Te(Ve),A=e.flags,A&4096?(e.flags=A&-4097|64,e):null;case 19:return Te(Ve),null;case 4:return Ca(),null;case 10:return O0(e),null;case 23:case 24:return ip(),null;default:return null}}function $0(e,A){try{var t="",i=A;do t+=Yk(i),i=i.return;while(i);var n=t}catch(r){n=` Error generating stack: `+r.message+` -`+r.stack}return{value:e,source:A,stack:n}}function yQ(e,A){try{console.error(A.value)}catch(t){setTimeout(function(){throw t})}}var gU=typeof WeakMap=="function"?WeakMap:Map;function MN(e,A,t){t=Sr(-1,t),t.tag=3,t.payload={element:null};var i=A.value;return t.callback=function(){pB||(pB=!0,RQ=i),yQ(e,A)},t}function kN(e,A,t){t=Sr(-1,t),t.tag=3;var i=e.type.getDerivedStateFromError;if(typeof i=="function"){var n=A.value;t.payload=function(){return yQ(e,A),i(n)}}var r=e.stateNode;return r!==null&&typeof r.componentDidCatch=="function"&&(t.callback=function(){typeof i!="function"&&(sn===null?sn=new Set([this]):sn.add(this),yQ(e,A));var o=A.stack;this.componentDidCatch(A.value,{componentStack:o!==null?o:""})}),t}var IU=typeof WeakSet=="function"?WeakSet:Set;function tv(e){var A=e.ref;if(A!==null)if(typeof A=="function")try{A(null)}catch(t){Fr(e,t)}else A.current=null}function lU(e,A){switch(A.tag){case 0:case 11:case 15:case 22:return;case 1:if(A.flags&256&&e!==null){var t=e.memoizedProps,i=e.memoizedState;e=A.stateNode,A=e.getSnapshotBeforeUpdate(A.elementType===A.type?t:Ri(A.type,t),i),e.__reactInternalSnapshotBeforeUpdate=A}return;case 3:A.flags&256&&U0(A.stateNode.containerInfo);return;case 5:case 6:case 4:case 17:return}throw Error(oA(163))}function cU(e,A,t){switch(t.tag){case 0:case 11:case 15:case 22:if(A=t.updateQueue,A=A!==null?A.lastEffect:null,A!==null){e=A=A.next;do{if((e.tag&3)===3){var i=e.create;e.destroy=i()}e=e.next}while(e!==A)}if(A=t.updateQueue,A=A!==null?A.lastEffect:null,A!==null){e=A=A.next;do{var n=e;i=n.next,n=n.tag,(n&4)!==0&&(n&1)!==0&&(KN(t,e),dU(t,e)),e=i}while(e!==A)}return;case 1:e=t.stateNode,t.flags&4&&(A===null?e.componentDidMount():(i=t.elementType===t.type?A.memoizedProps:Ri(t.type,A.memoizedProps),e.componentDidUpdate(i,A.memoizedState,e.__reactInternalSnapshotBeforeUpdate))),A=t.updateQueue,A!==null&&kw(t,A,e);return;case 3:if(A=t.updateQueue,A!==null){if(e=null,t.child!==null)switch(t.child.tag){case 5:e=t.child.stateNode;break;case 1:e=t.child.stateNode}kw(t,A,e)}return;case 5:e=t.stateNode,A===null&&t.flags&4&&aN(t.type,t.memoizedProps)&&e.focus();return;case 6:return;case 4:return;case 12:return;case 13:t.memoizedState===null&&(t=t.alternate,t!==null&&(t=t.memoizedState,t!==null&&(t=t.dehydrated,t!==null&&HF(t))));return;case 19:case 17:case 20:case 21:case 23:case 24:return}throw Error(oA(163))}function iv(e,A){for(var t=e;;){if(t.tag===5){var i=t.stateNode;if(A)i=i.style,typeof i.setProperty=="function"?i.setProperty("display","none","important"):i.display="none";else{i=t.stateNode;var n=t.memoizedProps.style;n=n!=null&&n.hasOwnProperty("display")?n.display:null,i.style.display=FF("display",n)}}else if(t.tag===6)t.stateNode.nodeValue=A?"":t.memoizedProps;else if((t.tag!==23&&t.tag!==24||t.memoizedState===null||t===e)&&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;t=t.return}t.sibling.return=t.return,t=t.sibling}}function nv(e,A){if(Do&&typeof Do.onCommitFiberUnmount=="function")try{Do.onCommitFiberUnmount(P0,A)}catch{}switch(A.tag){case 0:case 11:case 14:case 15:case 22:if(e=A.updateQueue,e!==null&&(e=e.lastEffect,e!==null)){var t=e=e.next;do{var i=t,n=i.destroy;if(i=i.tag,n!==void 0)if((i&4)!==0)KN(A,t);else{i=A;try{n()}catch(r){Fr(i,r)}}t=t.next}while(t!==e)}break;case 1:if(tv(A),e=A.stateNode,typeof e.componentWillUnmount=="function")try{e.props=A.memoizedProps,e.state=A.memoizedState,e.componentWillUnmount()}catch(r){Fr(A,r)}break;case 5:tv(A);break;case 4:TN(e,A)}}function rv(e){e.alternate=null,e.child=null,e.dependencies=null,e.firstEffect=null,e.lastEffect=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.return=null,e.updateQueue=null}function ov(e){return e.tag===5||e.tag===3||e.tag===4}function sv(e){A:{for(var A=e.return;A!==null;){if(ov(A))break A;A=A.return}throw Error(oA(160))}var t=A;switch(A=t.stateNode,t.tag){case 5:var i=!1;break;case 3:A=A.containerInfo,i=!0;break;case 4:A=A.containerInfo,i=!0;break;default:throw Error(oA(161))}t.flags&16&&(xI(A,""),t.flags&=-17);A:e:for(t=e;;){for(;t.sibling===null;){if(t.return===null||ov(t.return)){t=null;break A}t=t.return}for(t.sibling.return=t.return,t=t.sibling;t.tag!==5&&t.tag!==6&&t.tag!==18;){if(t.flags&2||t.child===null||t.tag===4)continue e;t.child.return=t,t=t.child}if(!(t.flags&2)){t=t.stateNode;break A}}i?mQ(e,t,A):wQ(e,t,A)}function mQ(e,A,t){var i=e.tag,n=i===5||i===6;if(n)e=n?e.stateNode:e.stateNode.instance,A?t.nodeType===8?t.parentNode.insertBefore(e,A):t.insertBefore(e,A):(t.nodeType===8?(A=t.parentNode,A.insertBefore(e,t)):(A=t,A.appendChild(e)),t=t._reactRootContainer,t!=null||A.onclick!==null||(A.onclick=oB));else if(i!==4&&(e=e.child,e!==null))for(mQ(e,A,t),e=e.sibling;e!==null;)mQ(e,A,t),e=e.sibling}function wQ(e,A,t){var i=e.tag,n=i===5||i===6;if(n)e=n?e.stateNode:e.stateNode.instance,A?t.insertBefore(e,A):t.appendChild(e);else if(i!==4&&(e=e.child,e!==null))for(wQ(e,A,t),e=e.sibling;e!==null;)wQ(e,A,t),e=e.sibling}function TN(e,A){for(var t=A,i=!1,n,r;;){if(!i){i=t.return;A:for(;;){if(i===null)throw Error(oA(160));switch(n=i.stateNode,i.tag){case 5:r=!1;break A;case 3:n=n.containerInfo,r=!0;break A;case 4:n=n.containerInfo,r=!0;break A}i=i.return}i=!0}if(t.tag===5||t.tag===6){A:for(var o=e,s=t,a=s;;)if(nv(o,a),a.child!==null&&a.tag!==4)a.child.return=a,a=a.child;else{if(a===s)break A;for(;a.sibling===null;){if(a.return===null||a.return===s)break A;a=a.return}a.sibling.return=a.return,a=a.sibling}r?(o=n,s=t.stateNode,o.nodeType===8?o.parentNode.removeChild(s):o.removeChild(s)):n.removeChild(t.stateNode)}else if(t.tag===4){if(t.child!==null){n=t.stateNode.containerInfo,r=!0,t.child.return=t,t=t.child;continue}}else if(nv(e,t),t.child!==null){t.child.return=t,t=t.child;continue}if(t===A)break;for(;t.sibling===null;){if(t.return===null||t.return===A)return;t=t.return,t.tag===4&&(i=!1)}t.sibling.return=t.return,t=t.sibling}}function th(e,A){switch(A.tag){case 0:case 11:case 14:case 15:case 22:var t=A.updateQueue;if(t=t!==null?t.lastEffect:null,t!==null){var i=t=t.next;do(i.tag&3)===3&&(e=i.destroy,i.destroy=void 0,e!==void 0&&e()),i=i.next;while(i!==t)}return;case 1:return;case 5:if(t=A.stateNode,t!=null){i=A.memoizedProps;var n=e!==null?e.memoizedProps:i;e=A.type;var r=A.updateQueue;if(A.updateQueue=null,r!==null){for(t[sB]=i,e==="input"&&i.type==="radio"&&i.name!=null&&SF(t,i),tQ(e,n),A=tQ(e,i),n=0;nn&&(n=o),t&=~r}if(t=n,t=Nt()-t,t=(120>t?120:480>t?480:1080>t?1080:1920>t?1920:3e3>t?3e3:4320>t?4320:1960*BU(t/1960))-t,10n&&(n=o),t&=~r}if(t=n,t=Nt()-t,t=(120>t?120:480>t?480:1080>t?1080:1920>t?1920:3e3>t?3e3:4320>t?4320:1960*hU(t/1960))-t,10 component higher in the tree to provide a loading indicator or placeholder to display.`)}ht!==5&&(ht=2),a=Z0(a,s),c=o;do{switch(c.tag){case 3:r=a,c.flags|=4096,A&=-A,c.lanes|=A;var w=MN(c,r,A);Mw(c,w);break A;case 1:r=a;var m=c.type,v=c.stateNode;if((c.flags&64)===0&&(typeof m.getDerivedStateFromError=="function"||v!==null&&typeof v.componentDidCatch=="function"&&(sn===null||!sn.has(v)))){c.flags|=4096,A&=-A,c.lanes|=A;var x=kN(c,r,A);Mw(c,x);break A}}c=c.return}while(c!==null)}YN(t)}catch(D){A=D,tt===t&&t!==null&&(tt=t=t.return);continue}break}while(1)}function JN(){var e=dB.current;return dB.current=QB,e===null?QB:e}function Pg(e,A){var t=YA;YA|=16;var i=JN();Ut===e&&Lt===A||ta(e,A);do try{uU();break}catch(n){qN(e,n)}while(1);if(q0(),YA=t,dB.current=i,tt!==null)throw Error(oA(261));return Ut=null,Lt=0,ht}function uU(){for(;tt!==null;)ON(tt)}function hU(){for(;tt!==null&&!ZT();)ON(tt)}function ON(e){var A=VN(e.alternate,e,bo);e.memoizedProps=e.pendingProps,A===null?YN(e):tt=A,$0.current=null}function YN(e){var A=e;do{var t=A.alternate;if(e=A.return,(A.flags&2048)===0){if(t=sU(t,A,bo),t!==null){tt=t;return}if(t=A,t.tag!==24&&t.tag!==23||t.memoizedState===null||(bo&1073741824)!==0||(t.mode&4)===0){for(var i=0,n=t.child;n!==null;)i|=n.lanes|n.childLanes,n=n.sibling;t.childLanes=i}e!==null&&(e.flags&2048)===0&&(e.firstEffect===null&&(e.firstEffect=A.firstEffect),A.lastEffect!==null&&(e.lastEffect!==null&&(e.lastEffect.nextEffect=A.firstEffect),e.lastEffect=A.lastEffect),1o&&(s=o,o=w,w=s),s=pw(f,w),r=pw(f,o),s&&r&&(d.rangeCount!==1||d.anchorNode!==s.node||d.anchorOffset!==s.offset||d.focusNode!==r.node||d.focusOffset!==r.offset)&&(Q=Q.createRange(),Q.setStart(s.node,s.offset),d.removeAllRanges(),w>o?(d.addRange(Q),d.extend(r.node,r.offset)):(Q.setEnd(r.node,r.offset),d.addRange(Q)))))),Q=[],d=f;d=d.parentNode;)d.nodeType===1&&Q.push({element:d,left:d.scrollLeft,top:d.scrollTop});for(typeof f.focus=="function"&&f.focus(),f=0;fNt()-ep?ta(e,0):Ap|=t),Qi(e,A)}function mU(e,A){var t=e.stateNode;t!==null&&t.delete(A),A=0,A===0&&(A=e.mode,(A&2)===0?A=1:(A&4)===0?A=Ca()===99?1:2:(xn===0&&(xn=Na),A=Fs(62914560&~xn),A===0&&(A=4194304))),t=ni(),e=vE(e,A),e!==null&&(hE(e,A,t),Qi(e,t))}var VN;VN=function(e,A,t){var i=A.lanes;if(e!==null)if(e.memoizedProps!==A.pendingProps||Wt.current)Fi=!0;else if((t&i)!==0)Fi=(e.flags&16384)!==0;else{switch(Fi=!1,A.tag){case 3:zw(A),$u();break;case 5:Pw(A);break;case 1:zt(A.type)&&wC(A);break;case 4:uQ(A,A.stateNode.containerInfo);break;case 10:i=A.memoizedProps.value;var n=A.type._context;We(gB,n._currentValue),n._currentValue=i;break;case 13:if(A.memoizedState!==null)return(t&A.child.childLanes)!==0?jw(e,A,t):(We(Ve,Ve.current&1),A=bn(e,A,t),A!==null?A.sibling:null);We(Ve,Ve.current&1);break;case 19:if(i=(t&A.childLanes)!==0,(e.flags&64)!==0){if(i)return ev(e,A,t);A.flags|=64}if(n=A.memoizedState,n!==null&&(n.rendering=null,n.tail=null,n.lastEffect=null),We(Ve,Ve.current),i)break;return null;case 23:case 24:return A.lanes=0,Ah(e,A,t)}return bn(e,A,t)}else Fi=!1;switch(A.lanes=0,A.tag){case 2:if(i=A.type,e!==null&&(e.alternate=null,A.alternate=null,A.flags|=2),e=A.pendingProps,n=ca(A,Gt.current),$s(A,t),n=W0(null,A,i,e,n,t),A.flags|=1,typeof n=="object"&&n!==null&&typeof n.render=="function"&&n.$$typeof===void 0){if(A.tag=1,A.memoizedState=null,A.updateQueue=null,zt(i)){var r=!0;wC(A)}else r=!1;A.memoizedState=n.state!==null&&n.state!==void 0?n.state:null,O0(A);var o=i.getDerivedStateFromProps;typeof o=="function"&&cB(A,i,o,e),n.updater=mE,A.stateNode=n,n._reactInternals=A,EQ(A,i,e,t),A=dQ(null,A,i,!0,r,t)}else A.tag=0,Yt(null,A,n,t),A=A.child;return A;case 16:n=A.elementType;A:{switch(e!==null&&(e.alternate=null,A.alternate=null,A.flags|=2),e=A.pendingProps,r=n._init,n=r(n._payload),A.type=n,r=A.tag=vU(n),e=Ri(n,e),r){case 0:A=QQ(null,A,n,e,t);break A;case 1:A=Ww(null,A,n,e,t);break A;case 11:A=Kw(null,A,n,e,t);break A;case 14:A=Vw(null,A,n,Ri(n.type,e),i,t);break A}throw Error(oA(306,n,""))}return A;case 0:return i=A.type,n=A.pendingProps,n=A.elementType===i?n:Ri(i,n),QQ(e,A,i,n,t);case 1:return i=A.type,n=A.pendingProps,n=A.elementType===i?n:Ri(i,n),Ww(e,A,i,n,t);case 3:if(zw(A),i=A.updateQueue,e===null||i===null)throw Error(oA(282));if(i=A.pendingProps,n=A.memoizedState,n=n!==null?n.element:null,fN(e,A),TI(A,i,null,t),i=A.memoizedState.element,i===n)$u(),A=bn(e,A,t);else{if(n=A.stateNode,(r=n.hydrate)&&(fr=Zs(A.stateNode.containerInfo.firstChild),Ln=A,r=In=!0),r){if(e=n.mutableSourceEagerHydrationData,e!=null)for(n=0;n=0;I--){var l=i[I];l==="."?oh(i,I):l===".."?(oh(i,I),g++):g&&(oh(i,I),g--)}if(!o)for(;g--;g)i.unshift("..");o&&i[0]!==""&&(!i[0]||!yc(i[0]))&&i.unshift("");var c=i.join("/");return s&&c.substr(-1)!=="/"&&(c+="/"),c}var kU=!0,sh="Invariant failed";function is(e,A){if(!e){if(kU)throw new Error(sh);var t=typeof A=="function"?A():A,i=t?sh+": "+t:sh;throw new Error(i)}}function gI(e){return e.charAt(0)==="/"?e:"/"+e}function lv(e){return e.charAt(0)==="/"?e.substr(1):e}function TU(e,A){return e.toLowerCase().indexOf(A.toLowerCase())===0&&"/?#".indexOf(e.charAt(A.length))!==-1}function $N(e,A){return TU(e,A)?e.substr(A.length):e}function A2(e){return e.charAt(e.length-1)==="/"?e.slice(0,-1):e}function UU(e){var A=e||"/",t="",i="",n=A.indexOf("#");n!==-1&&(i=A.substr(n),A=A.substr(0,n));var r=A.indexOf("?");return r!==-1&&(t=A.substr(r),A=A.substr(0,r)),{pathname:A,search:t==="?"?"":t,hash:i==="#"?"":i}}function Kt(e){var A=e.pathname,t=e.search,i=e.hash,n=A||"/";return t&&t!=="?"&&(n+=t.charAt(0)==="?"?t:"?"+t),i&&i!=="#"&&(n+=i.charAt(0)==="#"?i:"#"+i),n}function ii(e,A,t,i){var n;typeof e=="string"?(n=UU(e),n.state=A):(n=_({},e),n.pathname===void 0&&(n.pathname=""),n.search?n.search.charAt(0)!=="?"&&(n.search="?"+n.search):n.search="",n.hash?n.hash.charAt(0)!=="#"&&(n.hash="#"+n.hash):n.hash="",A!==void 0&&n.state===void 0&&(n.state=A));try{n.pathname=decodeURI(n.pathname)}catch(r){throw r instanceof URIError?new URIError('Pathname "'+n.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):r}return t&&(n.key=t),i?n.pathname?n.pathname.charAt(0)!=="/"&&(n.pathname=MU(n.pathname,i.pathname)):n.pathname=i.pathname:n.pathname||(n.pathname="/"),n}function sp(){var e=null;function A(o){return e=o,function(){e===o&&(e=null)}}function t(o,s,a,g){if(e!=null){var I=typeof e=="function"?e(o,s):e;typeof I=="string"?typeof a=="function"?a(I,g):g(!0):g(I!==!1)}else g(!0)}var i=[];function n(o){var s=!0;function a(){s&&o.apply(void 0,arguments)}return i.push(a),function(){s=!1,i=i.filter(function(g){return g!==a})}}function r(){for(var o=arguments.length,s=new Array(o),a=0;aP?W.splice(P,W.length-P,N):W.push(N),I({action:F,location:N,index:P,entries:W})}})}function E(x,D){var F="REPLACE",N=ii(x,D,l(),v.location);g.confirmTransitionTo(N,F,t,function(M){!M||(v.entries[v.index]=N,I({action:F,location:N}))})}function h(x){var D=uv(v.index+x,0,v.entries.length-1),F="POP",N=v.entries[D];g.confirmTransitionTo(N,F,t,function(M){M?I({action:F,location:N,index:D}):I()})}function f(){h(-1)}function Q(){h(1)}function d(x){var D=v.index+x;return D>=0&&D component higher in the tree to provide a loading indicator or placeholder to display.`)}ht!==5&&(ht=2),a=$0(a,s),c=o;do{switch(c.tag){case 3:r=a,c.flags|=4096,A&=-A,c.lanes|=A;var w=UN(c,r,A);kw(c,w);break A;case 1:r=a;var m=c.type,v=c.stateNode;if((c.flags&64)===0&&(typeof m.getDerivedStateFromError=="function"||v!==null&&typeof v.componentDidCatch=="function"&&(sn===null||!sn.has(v)))){c.flags|=4096,A&=-A,c.lanes|=A;var x=PN(c,r,A);kw(c,x);break A}}c=c.return}while(c!==null)}WN(t)}catch(D){A=D,tt===t&&t!==null&&(tt=t=t.return);continue}break}while(1)}function KN(){var e=dB.current;return dB.current=QB,e===null?QB:e}function Ug(e,A){var t=YA;YA|=16;var i=KN();Ut===e&&Lt===A||ea(e,A);do try{QU();break}catch(n){YN(e,n)}while(1);if(J0(),YA=t,dB.current=i,tt!==null)throw Error(oA(261));return Ut=null,Lt=0,ht}function QU(){for(;tt!==null;)VN(tt)}function dU(){for(;tt!==null&&!eU();)VN(tt)}function VN(e){var A=jN(e.alternate,e,Lo);e.memoizedProps=e.pendingProps,A===null?WN(e):tt=A,Ap.current=null}function WN(e){var A=e;do{var t=A.alternate;if(e=A.return,(A.flags&2048)===0){if(t=IU(t,A,Lo),t!==null){tt=t;return}if(t=A,t.tag!==24&&t.tag!==23||t.memoizedState===null||(Lo&1073741824)!==0||(t.mode&4)===0){for(var i=0,n=t.child;n!==null;)i|=n.lanes|n.childLanes,n=n.sibling;t.childLanes=i}e!==null&&(e.flags&2048)===0&&(e.firstEffect===null&&(e.firstEffect=A.firstEffect),A.lastEffect!==null&&(e.lastEffect!==null&&(e.lastEffect.nextEffect=A.firstEffect),e.lastEffect=A.lastEffect),1o&&(s=o,o=w,w=s),s=yw(f,w),r=yw(f,o),s&&r&&(d.rangeCount!==1||d.anchorNode!==s.node||d.anchorOffset!==s.offset||d.focusNode!==r.node||d.focusOffset!==r.offset)&&(Q=Q.createRange(),Q.setStart(s.node,s.offset),d.removeAllRanges(),w>o?(d.addRange(Q),d.extend(r.node,r.offset)):(Q.setEnd(r.node,r.offset),d.addRange(Q)))))),Q=[],d=f;d=d.parentNode;)d.nodeType===1&&Q.push({element:d,left:d.scrollLeft,top:d.scrollTop});for(typeof f.focus=="function"&&f.focus(),f=0;fNt()-tp?ea(e,0):ep|=t),Qi(e,A)}function SU(e,A){var t=e.stateNode;t!==null&&t.delete(A),A=0,A===0&&(A=e.mode,(A&2)===0?A=1:(A&4)===0?A=ca()===99?1:2:(xn===0&&(xn=Fa),A=xs(62914560&~xn),A===0&&(A=4194304))),t=ni(),e=vE(e,A),e!==null&&(hE(e,A,t),Qi(e,t))}var jN;jN=function(e,A,t){var i=A.lanes;if(e!==null)if(e.memoizedProps!==A.pendingProps||Wt.current)Fi=!0;else if((t&i)!==0)Fi=(e.flags&16384)!==0;else{switch(Fi=!1,A.tag){case 3:jw(A),$u();break;case 5:Hw(A);break;case 1:zt(A.type)&&wC(A);break;case 4:hQ(A,A.stateNode.containerInfo);break;case 10:i=A.memoizedProps.value;var n=A.type._context;We(gB,n._currentValue),n._currentValue=i;break;case 13:if(A.memoizedState!==null)return(t&A.child.childLanes)!==0?Xw(e,A,t):(We(Ve,Ve.current&1),A=bn(e,A,t),A!==null?A.sibling:null);We(Ve,Ve.current&1);break;case 19:if(i=(t&A.childLanes)!==0,(e.flags&64)!==0){if(i)return tv(e,A,t);A.flags|=64}if(n=A.memoizedState,n!==null&&(n.rendering=null,n.tail=null,n.lastEffect=null),We(Ve,Ve.current),i)break;return null;case 23:case 24:return A.lanes=0,Ah(e,A,t)}return bn(e,A,t)}else Fi=!1;switch(A.lanes=0,A.tag){case 2:if(i=A.type,e!==null&&(e.alternate=null,A.alternate=null,A.flags|=2),e=A.pendingProps,n=la(A,Gt.current),Zs(A,t),n=z0(null,A,i,e,n,t),A.flags|=1,typeof n=="object"&&n!==null&&typeof n.render=="function"&&n.$$typeof===void 0){if(A.tag=1,A.memoizedState=null,A.updateQueue=null,zt(i)){var r=!0;wC(A)}else r=!1;A.memoizedState=n.state!==null&&n.state!==void 0?n.state:null,Y0(A);var o=i.getDerivedStateFromProps;typeof o=="function"&&cB(A,i,o,e),n.updater=mE,A.stateNode=n,n._reactInternals=A,uQ(A,i,e,t),A=pQ(null,A,i,!0,r,t)}else A.tag=0,Yt(null,A,n,t),A=A.child;return A;case 16:n=A.elementType;A:{switch(e!==null&&(e.alternate=null,A.alternate=null,A.flags|=2),e=A.pendingProps,r=n._init,n=r(n._payload),A.type=n,r=A.tag=RU(n),e=Ri(n,e),r){case 0:A=dQ(null,A,n,e,t);break A;case 1:A=zw(null,A,n,e,t);break A;case 11:A=Vw(null,A,n,e,t);break A;case 14:A=Ww(null,A,n,Ri(n.type,e),i,t);break A}throw Error(oA(306,n,""))}return A;case 0:return i=A.type,n=A.pendingProps,n=A.elementType===i?n:Ri(i,n),dQ(e,A,i,n,t);case 1:return i=A.type,n=A.pendingProps,n=A.elementType===i?n:Ri(i,n),zw(e,A,i,n,t);case 3:if(jw(A),i=A.updateQueue,e===null||i===null)throw Error(oA(282));if(i=A.pendingProps,n=A.memoizedState,n=n!==null?n.element:null,pN(e,A),kI(A,i,null,t),i=A.memoizedState.element,i===n)$u(),A=bn(e,A,t);else{if(n=A.stateNode,(r=n.hydrate)&&(hr=Xs(A.stateNode.containerInfo.firstChild),Ln=A,r=In=!0),r){if(e=n.mutableSourceEagerHydrationData,e!=null)for(n=0;n=0;I--){var l=i[I];l==="."?oh(i,I):l===".."?(oh(i,I),g++):g&&(oh(i,I),g--)}if(!o)for(;g--;g)i.unshift("..");o&&i[0]!==""&&(!i[0]||!yc(i[0]))&&i.unshift("");var c=i.join("/");return s&&c.substr(-1)!=="/"&&(c+="/"),c}var PU=!0,sh="Invariant failed";function ts(e,A){if(!e){if(PU)throw new Error(sh);var t=typeof A=="function"?A():A,i=t?sh+": "+t:sh;throw new Error(i)}}function aI(e){return e.charAt(0)==="/"?e:"/"+e}function cv(e){return e.charAt(0)==="/"?e.substr(1):e}function HU(e,A){return e.toLowerCase().indexOf(A.toLowerCase())===0&&"/?#".indexOf(e.charAt(A.length))!==-1}function t2(e,A){return HU(e,A)?e.substr(A.length):e}function i2(e){return e.charAt(e.length-1)==="/"?e.slice(0,-1):e}function qU(e){var A=e||"/",t="",i="",n=A.indexOf("#");n!==-1&&(i=A.substr(n),A=A.substr(0,n));var r=A.indexOf("?");return r!==-1&&(t=A.substr(r),A=A.substr(0,r)),{pathname:A,search:t==="?"?"":t,hash:i==="#"?"":i}}function Kt(e){var A=e.pathname,t=e.search,i=e.hash,n=A||"/";return t&&t!=="?"&&(n+=t.charAt(0)==="?"?t:"?"+t),i&&i!=="#"&&(n+=i.charAt(0)==="#"?i:"#"+i),n}function ii(e,A,t,i){var n;typeof e=="string"?(n=qU(e),n.state=A):(n=_({},e),n.pathname===void 0&&(n.pathname=""),n.search?n.search.charAt(0)!=="?"&&(n.search="?"+n.search):n.search="",n.hash?n.hash.charAt(0)!=="#"&&(n.hash="#"+n.hash):n.hash="",A!==void 0&&n.state===void 0&&(n.state=A));try{n.pathname=decodeURI(n.pathname)}catch(r){throw r instanceof URIError?new URIError('Pathname "'+n.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):r}return t&&(n.key=t),i?n.pathname?n.pathname.charAt(0)!=="/"&&(n.pathname=UU(n.pathname,i.pathname)):n.pathname=i.pathname:n.pathname||(n.pathname="/"),n}function ap(){var e=null;function A(o){return e=o,function(){e===o&&(e=null)}}function t(o,s,a,g){if(e!=null){var I=typeof e=="function"?e(o,s):e;typeof I=="string"?typeof a=="function"?a(I,g):g(!0):g(I!==!1)}else g(!0)}var i=[];function n(o){var s=!0;function a(){s&&o.apply(void 0,arguments)}return i.push(a),function(){s=!1,i=i.filter(function(g){return g!==a})}}function r(){for(var o=arguments.length,s=new Array(o),a=0;aP?W.splice(P,W.length-P,N):W.push(N),I({action:F,location:N,index:P,entries:W})}})}function E(x,D){var F="REPLACE",N=ii(x,D,l(),v.location);g.confirmTransitionTo(N,F,t,function(M){!M||(v.entries[v.index]=N,I({action:F,location:N}))})}function h(x){var D=hv(v.index+x,0,v.entries.length-1),F="POP",N=v.entries[D];g.confirmTransitionTo(N,F,t,function(M){M?I({action:F,location:N,index:D}):I()})}function f(){h(-1)}function Q(){h(1)}function d(x){var D=v.index+x;return D>=0&&D=0)&&(t[n]=e[n]);return t}var Bp=s2.exports,u3={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},h3={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},f3={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},g2={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},Ep={};Ep[Bp.ForwardRef]=f3;Ep[Bp.Memo]=g2;function fv(e){return Bp.isMemo(e)?g2:Ep[e.$$typeof]||u3}var Q3=Object.defineProperty,d3=Object.getOwnPropertyNames,Qv=Object.getOwnPropertySymbols,p3=Object.getOwnPropertyDescriptor,y3=Object.getPrototypeOf,dv=Object.prototype;function I2(e,A,t){if(typeof A!="string"){if(dv){var i=y3(A);i&&i!==dv&&I2(e,i,t)}var n=d3(A);Qv&&(n=n.concat(Qv(A)));for(var r=fv(e),o=fv(A),s=0;s2&&arguments[2]!==void 0?arguments[2]:{clone:!0},i=t.clone?_({},e):e;return lh(e)&&lh(A)&&Object.keys(A).forEach(function(n){n!=="__proto__"&&(lh(A[n])&&n in e?i[n]=_o(e[n],A[n],t):i[n]=A[n])}),i}function y(e,A,t){return A in e?Object.defineProperty(e,A,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[A]=t,e}function ua(e){for(var A="https://mui.com/production-error/?code="+e,t=1;t=0)&&(t[n]=e[n]);return t}var Ep=I2.exports,Q3={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},d3={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},p3={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},c2={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},up={};up[Ep.ForwardRef]=p3;up[Ep.Memo]=c2;function Qv(e){return Ep.isMemo(e)?c2:up[e.$$typeof]||Q3}var y3=Object.defineProperty,m3=Object.getOwnPropertyNames,dv=Object.getOwnPropertySymbols,w3=Object.getOwnPropertyDescriptor,v3=Object.getPrototypeOf,pv=Object.prototype;function C2(e,A,t){if(typeof A!="string"){if(pv){var i=v3(A);i&&i!==pv&&C2(e,i,t)}var n=m3(A);dv&&(n=n.concat(dv(A)));for(var r=Qv(e),o=Qv(A),s=0;s2&&arguments[2]!==void 0?arguments[2]:{clone:!0},i=t.clone?_({},e):e;return lh(e)&&lh(A)&&Object.keys(A).forEach(function(n){n!=="__proto__"&&(lh(A[n])&&n in e?i[n]=Go(e[n],A[n],t):i[n]=A[n])}),i}function y(e,A,t){return A in e?Object.defineProperty(e,A,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[A]=t,e}function Ea(e){for(var A="https://mui.com/production-error/?code="+e,t=1;t1&&arguments[1]!==void 0?arguments[1]:0,t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1;return Math.min(Math.max(A,e),t)}function W3(e){e=e.substr(1);var A=new RegExp(".{1,".concat(e.length>=6?2:1,"}"),"g"),t=e.match(A);return t&&t[0].length===1&&(t=t.map(function(i){return i+i})),t?"rgb".concat(t.length===4?"a":"","(").concat(t.map(function(i,n){return n<3?parseInt(i,16):Math.round(parseInt(i,16)/255*1e3)/1e3}).join(", "),")"):""}function z3(e){e=Mo(e);var A=e,t=A.values,i=t[0],n=t[1]/100,r=t[2]/100,o=n*Math.min(r,1-r),s=function(l){var c=arguments.length>1&&arguments[1]!==void 0?arguments[1]:(l+i/30)%12;return r-o*Math.max(Math.min(c-3,9-c,1),-1)},a="rgb",g=[Math.round(s(0)*255),Math.round(s(8)*255),Math.round(s(4)*255)];return e.type==="hsla"&&(a+="a",g.push(t[3])),PE({type:a,values:g})}function Mo(e){if(e.type)return e;if(e.charAt(0)==="#")return Mo(W3(e));var A=e.indexOf("("),t=e.substring(0,A);if(["rgb","rgba","hsl","hsla"].indexOf(t)===-1)throw new Error(ua(3,e));var i=e.substring(A+1,e.length-1).split(",");return i=i.map(function(n){return parseFloat(n)}),{type:t,values:i}}function PE(e){var A=e.type,t=e.values;return A.indexOf("rgb")!==-1?t=t.map(function(i,n){return n<3?parseInt(i,10):i}):A.indexOf("hsl")!==-1&&(t[1]="".concat(t[1],"%"),t[2]="".concat(t[2],"%")),"".concat(A,"(").concat(t.join(", "),")")}function j3(e,A){var t=MQ(e),i=MQ(A);return(Math.max(t,i)+.05)/(Math.min(t,i)+.05)}function MQ(e){e=Mo(e);var A=e.type==="hsl"?Mo(z3(e)).values:e.values;return A=A.map(function(t){return t/=255,t<=.03928?t/12.92:Math.pow((t+.055)/1.055,2.4)}),Number((.2126*A[0]+.7152*A[1]+.0722*A[2]).toFixed(3))}function X3(e){var A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:.15;return MQ(e)>.5?JI(e,A):OI(e,A)}function ut(e,A){return e=Mo(e),A=dp(A),(e.type==="rgb"||e.type==="hsl")&&(e.type+="a"),e.values[3]=A,PE(e)}function JI(e,A){if(e=Mo(e),A=dp(A),e.type.indexOf("hsl")!==-1)e.values[2]*=1-A;else if(e.type.indexOf("rgb")!==-1)for(var t=0;t<3;t+=1)e.values[t]*=1-A;return PE(e)}function OI(e,A){if(e=Mo(e),A=dp(A),e.type.indexOf("hsl")!==-1)e.values[2]+=(100-e.values[2])*A;else if(e.type.indexOf("rgb")!==-1)for(var t=0;t<3;t+=1)e.values[t]+=(255-e.values[t])*A;return PE(e)}function SA(e,A){if(e==null)return{};var t=Ao(e,A),i,n;if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n=0)&&(!Object.prototype.propertyIsEnumerable.call(e,i)||(t[i]=e[i]))}return t}var ir=["xs","sm","md","lg","xl"];function Z3(e){var A=e.values,t=A===void 0?{xs:0,sm:600,md:960,lg:1280,xl:1920}:A,i=e.unit,n=i===void 0?"px":i,r=e.step,o=r===void 0?5:r,s=SA(e,["values","unit","step"]);function a(C){var B=typeof t[C]=="number"?t[C]:C;return"@media (min-width:".concat(B).concat(n,")")}function g(C){var B=ir.indexOf(C)+1,u=t[ir[B]];if(B===ir.length)return a("xs");var E=typeof u=="number"&&B>0?u:C;return"@media (max-width:".concat(E-o/100).concat(n,")")}function I(C,B){var u=ir.indexOf(B);return u===ir.length-1?a(C):"@media (min-width:".concat(typeof t[C]=="number"?t[C]:C).concat(n,") and ")+"(max-width:".concat((u!==-1&&typeof t[ir[u+1]]=="number"?t[ir[u+1]]:B)-o/100).concat(n,")")}function l(C){return I(C,C)}function c(C){return t[C]}return _({keys:ir,values:t,up:a,down:g,between:I,only:l,width:c},s)}function $3(e,A,t){var i;return _({gutters:function(){var r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return console.warn(["Material-UI: theme.mixins.gutters() is deprecated.","You can use the source of the mixin directly:",` + */var TE=60103,UE=60106,Ql=60107,dl=60108,pl=60114,yl=60109,ml=60110,wl=60112,vl=60113,dp=60120,Sl=60115,Dl=60116,h2=60121,f2=60122,Q2=60117,d2=60129,p2=60131;if(typeof Symbol=="function"&&Symbol.for){var Ct=Symbol.for;TE=Ct("react.element"),UE=Ct("react.portal"),Ql=Ct("react.fragment"),dl=Ct("react.strict_mode"),pl=Ct("react.profiler"),yl=Ct("react.provider"),ml=Ct("react.context"),wl=Ct("react.forward_ref"),vl=Ct("react.suspense"),dp=Ct("react.suspense_list"),Sl=Ct("react.memo"),Dl=Ct("react.lazy"),h2=Ct("react.block"),f2=Ct("react.server.block"),Q2=Ct("react.fundamental"),d2=Ct("react.debug_trace_mode"),p2=Ct("react.legacy_hidden")}function Ti(e){if(typeof e=="object"&&e!==null){var A=e.$$typeof;switch(A){case TE:switch(e=e.type,e){case Ql:case pl:case dl:case vl:case dp:return e;default:switch(e=e&&e.$$typeof,e){case ml:case wl:case Dl:case Sl:case yl:return e;default:return A}}case UE:return A}}}var H3=yl,q3=TE,J3=wl,O3=Ql,Y3=Dl,K3=Sl,V3=UE,W3=pl,z3=dl,j3=vl;Ge.ContextConsumer=ml;Ge.ContextProvider=H3;Ge.Element=q3;Ge.ForwardRef=J3;Ge.Fragment=O3;Ge.Lazy=Y3;Ge.Memo=K3;Ge.Portal=V3;Ge.Profiler=W3;Ge.StrictMode=z3;Ge.Suspense=j3;Ge.isAsyncMode=function(){return!1};Ge.isConcurrentMode=function(){return!1};Ge.isContextConsumer=function(e){return Ti(e)===ml};Ge.isContextProvider=function(e){return Ti(e)===yl};Ge.isElement=function(e){return typeof e=="object"&&e!==null&&e.$$typeof===TE};Ge.isForwardRef=function(e){return Ti(e)===wl};Ge.isFragment=function(e){return Ti(e)===Ql};Ge.isLazy=function(e){return Ti(e)===Dl};Ge.isMemo=function(e){return Ti(e)===Sl};Ge.isPortal=function(e){return Ti(e)===UE};Ge.isProfiler=function(e){return Ti(e)===pl};Ge.isStrictMode=function(e){return Ti(e)===dl};Ge.isSuspense=function(e){return Ti(e)===vl};Ge.isValidElementType=function(e){return typeof e=="string"||typeof e=="function"||e===Ql||e===pl||e===d2||e===dl||e===vl||e===dp||e===p2||typeof e=="object"&&e!==null&&(e.$$typeof===Dl||e.$$typeof===Sl||e.$$typeof===yl||e.$$typeof===ml||e.$$typeof===wl||e.$$typeof===Q2||e.$$typeof===h2||e[0]===f2)};Ge.typeOf=Ti;function pp(e){var A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1;return Math.min(Math.max(A,e),t)}function X3(e){e=e.substr(1);var A=new RegExp(".{1,".concat(e.length>=6?2:1,"}"),"g"),t=e.match(A);return t&&t[0].length===1&&(t=t.map(function(i){return i+i})),t?"rgb".concat(t.length===4?"a":"","(").concat(t.map(function(i,n){return n<3?parseInt(i,16):Math.round(parseInt(i,16)/255*1e3)/1e3}).join(", "),")"):""}function Z3(e){e=_o(e);var A=e,t=A.values,i=t[0],n=t[1]/100,r=t[2]/100,o=n*Math.min(r,1-r),s=function(l){var c=arguments.length>1&&arguments[1]!==void 0?arguments[1]:(l+i/30)%12;return r-o*Math.max(Math.min(c-3,9-c,1),-1)},a="rgb",g=[Math.round(s(0)*255),Math.round(s(8)*255),Math.round(s(4)*255)];return e.type==="hsla"&&(a+="a",g.push(t[3])),PE({type:a,values:g})}function _o(e){if(e.type)return e;if(e.charAt(0)==="#")return _o(X3(e));var A=e.indexOf("("),t=e.substring(0,A);if(["rgb","rgba","hsl","hsla"].indexOf(t)===-1)throw new Error(Ea(3,e));var i=e.substring(A+1,e.length-1).split(",");return i=i.map(function(n){return parseFloat(n)}),{type:t,values:i}}function PE(e){var A=e.type,t=e.values;return A.indexOf("rgb")!==-1?t=t.map(function(i,n){return n<3?parseInt(i,10):i}):A.indexOf("hsl")!==-1&&(t[1]="".concat(t[1],"%"),t[2]="".concat(t[2],"%")),"".concat(A,"(").concat(t.join(", "),")")}function $3(e,A){var t=kQ(e),i=kQ(A);return(Math.max(t,i)+.05)/(Math.min(t,i)+.05)}function kQ(e){e=_o(e);var A=e.type==="hsl"?_o(Z3(e)).values:e.values;return A=A.map(function(t){return t/=255,t<=.03928?t/12.92:Math.pow((t+.055)/1.055,2.4)}),Number((.2126*A[0]+.7152*A[1]+.0722*A[2]).toFixed(3))}function AP(e){var A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:.15;return kQ(e)>.5?qI(e,A):JI(e,A)}function ut(e,A){return e=_o(e),A=pp(A),(e.type==="rgb"||e.type==="hsl")&&(e.type+="a"),e.values[3]=A,PE(e)}function qI(e,A){if(e=_o(e),A=pp(A),e.type.indexOf("hsl")!==-1)e.values[2]*=1-A;else if(e.type.indexOf("rgb")!==-1)for(var t=0;t<3;t+=1)e.values[t]*=1-A;return PE(e)}function JI(e,A){if(e=_o(e),A=pp(A),e.type.indexOf("hsl")!==-1)e.values[2]+=(100-e.values[2])*A;else if(e.type.indexOf("rgb")!==-1)for(var t=0;t<3;t+=1)e.values[t]+=(255-e.values[t])*A;return PE(e)}function SA(e,A){if(e==null)return{};var t=$r(e,A),i,n;if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n=0)&&(!Object.prototype.propertyIsEnumerable.call(e,i)||(t[i]=e[i]))}return t}var tr=["xs","sm","md","lg","xl"];function eP(e){var A=e.values,t=A===void 0?{xs:0,sm:600,md:960,lg:1280,xl:1920}:A,i=e.unit,n=i===void 0?"px":i,r=e.step,o=r===void 0?5:r,s=SA(e,["values","unit","step"]);function a(C){var B=typeof t[C]=="number"?t[C]:C;return"@media (min-width:".concat(B).concat(n,")")}function g(C){var B=tr.indexOf(C)+1,u=t[tr[B]];if(B===tr.length)return a("xs");var E=typeof u=="number"&&B>0?u:C;return"@media (max-width:".concat(E-o/100).concat(n,")")}function I(C,B){var u=tr.indexOf(B);return u===tr.length-1?a(C):"@media (min-width:".concat(typeof t[C]=="number"?t[C]:C).concat(n,") and ")+"(max-width:".concat((u!==-1&&typeof t[tr[u+1]]=="number"?t[tr[u+1]]:B)-o/100).concat(n,")")}function l(C){return I(C,C)}function c(C){return t[C]}return _({keys:tr,values:t,up:a,down:g,between:I,only:l,width:c},s)}function tP(e,A,t){var i;return _({gutters:function(){var r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return console.warn(["Material-UI: theme.mixins.gutters() is deprecated.","You can use the source of the mixin directly:",` paddingLeft: theme.spacing(2), paddingRight: theme.spacing(2), [theme.breakpoints.up('sm')]: { @@ -53,37 +53,37 @@ Add a component higher in the tree to provide a loading paddingRight: theme.spacing(3), }, `].join(` -`)),_({paddingLeft:A(2),paddingRight:A(2)},r,y({},e.up("sm"),_({paddingLeft:A(3),paddingRight:A(3)},r[e.up("sm")])))},toolbar:(i={minHeight:56},y(i,"".concat(e.up("xs")," and (orientation: landscape)"),{minHeight:48}),y(i,e.up("sm"),{minHeight:64}),i)},t)}var AP={black:"#000",white:"#fff"},vB=AP,eP={50:"#fafafa",100:"#f5f5f5",200:"#eeeeee",300:"#e0e0e0",400:"#bdbdbd",500:"#9e9e9e",600:"#757575",700:"#616161",800:"#424242",900:"#212121",A100:"#d5d5d5",A200:"#aaaaaa",A400:"#303030",A700:"#616161"},YI=eP,tP={50:"#e8eaf6",100:"#c5cae9",200:"#9fa8da",300:"#7986cb",400:"#5c6bc0",500:"#3f51b5",600:"#3949ab",700:"#303f9f",800:"#283593",900:"#1a237e",A100:"#8c9eff",A200:"#536dfe",A400:"#3d5afe",A700:"#304ffe"},ch=tP,iP={50:"#fce4ec",100:"#f8bbd0",200:"#f48fb1",300:"#f06292",400:"#ec407a",500:"#e91e63",600:"#d81b60",700:"#c2185b",800:"#ad1457",900:"#880e4f",A100:"#ff80ab",A200:"#ff4081",A400:"#f50057",A700:"#c51162"},Ch=iP,nP={50:"#ffebee",100:"#ffcdd2",200:"#ef9a9a",300:"#e57373",400:"#ef5350",500:"#f44336",600:"#e53935",700:"#d32f2f",800:"#c62828",900:"#b71c1c",A100:"#ff8a80",A200:"#ff5252",A400:"#ff1744",A700:"#d50000"},Bh=nP,rP={50:"#fff3e0",100:"#ffe0b2",200:"#ffcc80",300:"#ffb74d",400:"#ffa726",500:"#ff9800",600:"#fb8c00",700:"#f57c00",800:"#ef6c00",900:"#e65100",A100:"#ffd180",A200:"#ffab40",A400:"#ff9100",A700:"#ff6d00"},Eh=rP,oP={50:"#e3f2fd",100:"#bbdefb",200:"#90caf9",300:"#64b5f6",400:"#42a5f5",500:"#2196f3",600:"#1e88e5",700:"#1976d2",800:"#1565c0",900:"#0d47a1",A100:"#82b1ff",A200:"#448aff",A400:"#2979ff",A700:"#2962ff"},uh=oP,sP={50:"#e8f5e9",100:"#c8e6c9",200:"#a5d6a7",300:"#81c784",400:"#66bb6a",500:"#4caf50",600:"#43a047",700:"#388e3c",800:"#2e7d32",900:"#1b5e20",A100:"#b9f6ca",A200:"#69f0ae",A400:"#00e676",A700:"#00c853"},hh=sP,vv={text:{primary:"rgba(0, 0, 0, 0.87)",secondary:"rgba(0, 0, 0, 0.54)",disabled:"rgba(0, 0, 0, 0.38)",hint:"rgba(0, 0, 0, 0.38)"},divider:"rgba(0, 0, 0, 0.12)",background:{paper:vB.white,default:YI[50]},action:{active:"rgba(0, 0, 0, 0.54)",hover:"rgba(0, 0, 0, 0.04)",hoverOpacity:.04,selected:"rgba(0, 0, 0, 0.08)",selectedOpacity:.08,disabled:"rgba(0, 0, 0, 0.26)",disabledBackground:"rgba(0, 0, 0, 0.12)",disabledOpacity:.38,focus:"rgba(0, 0, 0, 0.12)",focusOpacity:.12,activatedOpacity:.12}},fh={text:{primary:vB.white,secondary:"rgba(255, 255, 255, 0.7)",disabled:"rgba(255, 255, 255, 0.5)",hint:"rgba(255, 255, 255, 0.5)",icon:"rgba(255, 255, 255, 0.5)"},divider:"rgba(255, 255, 255, 0.12)",background:{paper:YI[800],default:"#303030"},action:{active:vB.white,hover:"rgba(255, 255, 255, 0.08)",hoverOpacity:.08,selected:"rgba(255, 255, 255, 0.16)",selectedOpacity:.16,disabled:"rgba(255, 255, 255, 0.3)",disabledBackground:"rgba(255, 255, 255, 0.12)",disabledOpacity:.38,focus:"rgba(255, 255, 255, 0.12)",focusOpacity:.12,activatedOpacity:.24}};function Sv(e,A,t,i){var n=i.light||i,r=i.dark||i*1.5;e[A]||(e.hasOwnProperty(t)?e[A]=e[t]:A==="light"?e.light=OI(e.main,n):A==="dark"&&(e.dark=JI(e.main,r)))}function aP(e){var A=e.primary,t=A===void 0?{light:ch[300],main:ch[500],dark:ch[700]}:A,i=e.secondary,n=i===void 0?{light:Ch.A200,main:Ch.A400,dark:Ch.A700}:i,r=e.error,o=r===void 0?{light:Bh[300],main:Bh[500],dark:Bh[700]}:r,s=e.warning,a=s===void 0?{light:Eh[300],main:Eh[500],dark:Eh[700]}:s,g=e.info,I=g===void 0?{light:uh[300],main:uh[500],dark:uh[700]}:g,l=e.success,c=l===void 0?{light:hh[300],main:hh[500],dark:hh[700]}:l,C=e.type,B=C===void 0?"light":C,u=e.contrastThreshold,E=u===void 0?3:u,h=e.tonalOffset,f=h===void 0?.2:h,Q=SA(e,["primary","secondary","error","warning","info","success","type","contrastThreshold","tonalOffset"]);function d(x){var D=j3(x,fh.text.primary)>=E?fh.text.primary:vv.text.primary;return D}var w=function(D){var F=arguments.length>1&&arguments[1]!==void 0?arguments[1]:500,N=arguments.length>2&&arguments[2]!==void 0?arguments[2]:300,M=arguments.length>3&&arguments[3]!==void 0?arguments[3]:700;if(D=_({},D),!D.main&&D[F]&&(D.main=D[F]),!D.main)throw new Error(ua(4,F));if(typeof D.main!="string")throw new Error(ua(5,JSON.stringify(D.main)));return Sv(D,"light",N,f),Sv(D,"dark",M,f),D.contrastText||(D.contrastText=d(D.main)),D},m={dark:fh,light:vv},v=_o(_({common:vB,type:B,primary:w(t),secondary:w(n,"A400","A200","A700"),error:w(o),warning:w(a),info:w(I),success:w(c),grey:YI,contrastThreshold:E,getContrastText:d,augmentColor:w,tonalOffset:f},m[B]),Q);return v}function Q2(e){return Math.round(e*1e5)/1e5}function gP(e){return Q2(e)}var Dv={textTransform:"uppercase"},Rv='"Roboto", "Helvetica", "Arial", sans-serif';function IP(e,A){var t=typeof A=="function"?A(e):A,i=t.fontFamily,n=i===void 0?Rv:i,r=t.fontSize,o=r===void 0?14:r,s=t.fontWeightLight,a=s===void 0?300:s,g=t.fontWeightRegular,I=g===void 0?400:g,l=t.fontWeightMedium,c=l===void 0?500:l,C=t.fontWeightBold,B=C===void 0?700:C,u=t.htmlFontSize,E=u===void 0?16:u,h=t.allVariants,f=t.pxToRem,Q=SA(t,["fontFamily","fontSize","fontWeightLight","fontWeightRegular","fontWeightMedium","fontWeightBold","htmlFontSize","allVariants","pxToRem"]),d=o/14,w=f||function(x){return"".concat(x/E*d,"rem")},m=function(D,F,N,M,U){return _({fontFamily:n,fontWeight:D,fontSize:w(F),lineHeight:N},n===Rv?{letterSpacing:"".concat(Q2(M/F),"em")}:{},U,h)},v={h1:m(a,96,1.167,-1.5),h2:m(a,60,1.2,-.5),h3:m(I,48,1.167,0),h4:m(I,34,1.235,.25),h5:m(I,24,1.334,0),h6:m(c,20,1.6,.15),subtitle1:m(I,16,1.75,.15),subtitle2:m(c,14,1.57,.1),body1:m(I,16,1.5,.15),body2:m(I,14,1.43,.15),button:m(c,14,1.75,.4,Dv),caption:m(I,12,1.66,.4),overline:m(I,12,2.66,1,Dv)};return _o(_({htmlFontSize:E,pxToRem:w,round:gP,fontFamily:n,fontSize:o,fontWeightLight:a,fontWeightRegular:I,fontWeightMedium:c,fontWeightBold:B},v),Q,{clone:!1})}var lP=.2,cP=.14,CP=.12;function Pe(){return["".concat(arguments.length<=0?void 0:arguments[0],"px ").concat(arguments.length<=1?void 0:arguments[1],"px ").concat(arguments.length<=2?void 0:arguments[2],"px ").concat(arguments.length<=3?void 0:arguments[3],"px rgba(0,0,0,").concat(lP,")"),"".concat(arguments.length<=4?void 0:arguments[4],"px ").concat(arguments.length<=5?void 0:arguments[5],"px ").concat(arguments.length<=6?void 0:arguments[6],"px ").concat(arguments.length<=7?void 0:arguments[7],"px rgba(0,0,0,").concat(cP,")"),"".concat(arguments.length<=8?void 0:arguments[8],"px ").concat(arguments.length<=9?void 0:arguments[9],"px ").concat(arguments.length<=10?void 0:arguments[10],"px ").concat(arguments.length<=11?void 0:arguments[11],"px rgba(0,0,0,").concat(CP,")")].join(",")}var BP=["none",Pe(0,2,1,-1,0,1,1,0,0,1,3,0),Pe(0,3,1,-2,0,2,2,0,0,1,5,0),Pe(0,3,3,-2,0,3,4,0,0,1,8,0),Pe(0,2,4,-1,0,4,5,0,0,1,10,0),Pe(0,3,5,-1,0,5,8,0,0,1,14,0),Pe(0,3,5,-1,0,6,10,0,0,1,18,0),Pe(0,4,5,-2,0,7,10,1,0,2,16,1),Pe(0,5,5,-3,0,8,10,1,0,3,14,2),Pe(0,5,6,-3,0,9,12,1,0,3,16,2),Pe(0,6,6,-3,0,10,14,1,0,4,18,3),Pe(0,6,7,-4,0,11,15,1,0,4,20,3),Pe(0,7,8,-4,0,12,17,2,0,5,22,4),Pe(0,7,8,-4,0,13,19,2,0,5,24,4),Pe(0,7,9,-4,0,14,21,2,0,5,26,4),Pe(0,8,9,-5,0,15,22,2,0,6,28,5),Pe(0,8,10,-5,0,16,24,2,0,6,30,5),Pe(0,8,11,-5,0,17,26,2,0,6,32,5),Pe(0,9,11,-5,0,18,28,2,0,7,34,6),Pe(0,9,12,-6,0,19,29,2,0,7,36,6),Pe(0,10,13,-6,0,20,31,3,0,8,38,7),Pe(0,10,13,-6,0,21,33,3,0,8,40,7),Pe(0,10,14,-6,0,22,35,3,0,8,42,7),Pe(0,11,14,-7,0,23,36,3,0,9,44,8),Pe(0,11,15,-7,0,24,38,3,0,9,46,8)],EP=BP,uP={borderRadius:4},hP=uP;function kQ(e,A){(A==null||A>e.length)&&(A=e.length);for(var t=0,i=new Array(A);t2)if(Lv[e])e=Lv[e];else return[e];var A=e.split(""),t=Fl(A,2),i=t[0],n=t[1],r=P4[i],o=H4[n]||"";return Array.isArray(o)?o.map(function(s){return r+s}):[r+o]}),y2=["m","mt","mr","mb","ml","mx","my","p","pt","pr","pb","pl","px","py","margin","marginTop","marginRight","marginBottom","marginLeft","marginX","marginY","padding","paddingTop","paddingRight","paddingBottom","paddingLeft","paddingX","paddingY"];function m2(e){var A=e.spacing||8;return typeof A=="number"?function(t){return A*t}:Array.isArray(A)?function(t){return A[t]}:typeof A=="function"?A:function(){}}function J4(e,A){if(typeof A=="string"||A==null)return A;var t=Math.abs(A),i=e(t);return A>=0?i:typeof i=="number"?-i:"-".concat(i)}function O4(e,A){return function(t){return e.reduce(function(i,n){return i[n]=J4(A,t),i},{})}}function pp(e){var A=e.theme,t=m2(A);return Object.keys(e).map(function(i){if(y2.indexOf(i)===-1)return null;var n=q4(i),r=O4(n,t),o=e[i];return p2(e,o,r)}).reduce(SB,{})}pp.propTypes={};pp.filterProps=y2;var Y4=mA({prop:"fontFamily",themeKey:"typography"}),K4=mA({prop:"fontSize",themeKey:"typography"}),V4=mA({prop:"fontStyle",themeKey:"typography"}),W4=mA({prop:"fontWeight",themeKey:"typography"}),z4=mA({prop:"letterSpacing"}),j4=mA({prop:"lineHeight"}),X4=mA({prop:"textAlign"}),Z4=Yn(Y4,K4,V4,W4,z4,j4,X4),$4=Z4;function A8(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:8;if(e.mui)return e;var A=m2({spacing:e}),t=function(){for(var n=arguments.length,r=new Array(n),o=0;o0&&arguments[0]!==void 0?arguments[0]:["all"],t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=t.duration,n=i===void 0?DB.standard:i,r=t.easing,o=r===void 0?bv.easeInOut:r,s=t.delay,a=s===void 0?0:s;return SA(t,["duration","easing","delay"]),(Array.isArray(A)?A:[A]).map(function(g){return"".concat(g," ").concat(typeof n=="string"?n:Gv(n)," ").concat(o," ").concat(typeof a=="string"?a:Gv(a))}).join(",")},getAutoHeightDuration:function(A){if(!A)return 0;var t=A/36;return Math.round((4+15*Math.pow(t,.25)+t/5)*10)}},t8={mobileStepper:1e3,speedDial:1050,appBar:1100,drawer:1200,modal:1300,snackbar:1400,tooltip:1500},w2=t8;function v2(){for(var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},A=e.breakpoints,t=A===void 0?{}:A,i=e.mixins,n=i===void 0?{}:i,r=e.palette,o=r===void 0?{}:r,s=e.spacing,a=e.typography,g=a===void 0?{}:a,I=SA(e,["breakpoints","mixins","palette","spacing","typography"]),l=aP(o),c=Z3(t),C=A8(s),B=_o({breakpoints:c,direction:"ltr",mixins:$3(c,C,n),overrides:{},palette:l,props:{},shadows:EP,typography:IP(l,g),spacing:C,shape:hP,transitions:e8,zIndex:w2},I),u=arguments.length,E=new Array(u>1?u-1:0),h=1;h0&&arguments[0]!==void 0?arguments[0]:{},A=e.disableGlobal,t=A===void 0?!1:A,i=e.productionPrefix,n=i===void 0?"jss":i,r=e.seed,o=r===void 0?"":r,s=o===""?"":"".concat(o,"-"),a=0,g=function(){return a+=1,a};return function(I,l){var c=l.options.name;if(c&&c.indexOf("Mui")===0&&!l.options.link&&!t){if(n8.indexOf(I.key)!==-1)return"Mui-".concat(I.key);var C="".concat(s).concat(c,"-").concat(I.key);return!l.options.theme[S2]||o!==""?C:"".concat(C,"-").concat(g())}return"".concat(s).concat(n).concat(g())}}function D2(e){var A=e.theme,t=e.name,i=e.props;if(!A||!A.props||!A.props[t])return i;var n=A.props[t],r;for(r in n)i[r]===void 0&&(i[r]=n[r]);return i}var _v=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Nl=(typeof window=="undefined"?"undefined":_v(window))==="object"&&(typeof document=="undefined"?"undefined":_v(document))==="object"&&document.nodeType===9;function Mv(e,A){for(var t=0;t<+~=|^:(),"'`\s])/g,Tv=typeof CSS!="undefined"&&CSS.escape,wp=function(e){return Tv?Tv(e):e.replace(s8,"\\$1")},R2=function(){function e(t,i,n){this.type="style",this.isProcessed=!1;var r=n.sheet,o=n.Renderer;this.key=t,this.options=n,this.style=i,r?this.renderer=r.renderer:o&&(this.renderer=new o)}var A=e.prototype;return A.prop=function(i,n,r){if(n===void 0)return this.style[i];var o=r?r.force:!1;if(!o&&this.style[i]===n)return this;var s=n;(!r||r.process!==!1)&&(s=this.options.jss.plugins.onChangeValue(n,i,this));var a=s==null||s===!1,g=i in this.style;if(a&&!g&&!o)return this;var I=a&&g;if(I?delete this.style[i]:this.style[i]=s,this.renderable&&this.renderer)return I?this.renderer.removeProperty(this.renderable,i):this.renderer.setProperty(this.renderable,i,s),this;var l=this.options.sheet;return l&&l.attached,this},e}(),PQ=function(e){jt(A,e);function A(i,n,r){var o;o=e.call(this,i,n,r)||this;var s=r.selector,a=r.scoped,g=r.sheet,I=r.generateId;return s?o.selectorText=s:a!==!1&&(o.id=I(TQ(TQ(o)),g),o.selectorText="."+wp(o.id)),o}var t=A.prototype;return t.applyTo=function(n){var r=this.renderer;if(r){var o=this.toJSON();for(var s in o)r.setProperty(n,s,o[s])}return this},t.toJSON=function(){var n={};for(var r in this.style){var o=this.style[r];typeof o!="object"?n[r]=o:Array.isArray(o)&&(n[r]=Ro(o))}return n},t.toString=function(n){var r=this.options.sheet,o=r?r.options.link:!1,s=o?_({},n,{allowEmpty:!0}):n;return KI(this.selectorText,this.style,s)},yp(A,[{key:"selector",set:function(n){if(n!==this.selectorText){this.selectorText=n;var r=this.renderer,o=this.renderable;if(!(!o||!r)){var s=r.setSelector(o,n);s||r.replaceRule(o,this)}}},get:function(){return this.selectorText}}]),A}(R2),a8={onCreateRule:function(A,t,i){return A[0]==="@"||i.parent&&i.parent.type==="keyframes"?null:new PQ(A,t,i)}},Qh={indent:1,children:!0},g8=/@([\w-]+)/,I8=function(){function e(t,i,n){this.type="conditional",this.isProcessed=!1,this.key=t;var r=t.match(g8);this.at=r?r[1]:"unknown",this.query=n.name||"@"+this.at,this.options=n,this.rules=new HE(_({},n,{parent:this}));for(var o in i)this.rules.add(o,i[o]);this.rules.process()}var A=e.prototype;return A.getRule=function(i){return this.rules.get(i)},A.indexOf=function(i){return this.rules.indexOf(i)},A.addRule=function(i,n,r){var o=this.rules.add(i,n,r);return o?(this.options.jss.plugins.onProcessRule(o),o):null},A.replaceRule=function(i,n,r){var o=this.rules.replace(i,n,r);return o&&this.options.jss.plugins.onProcessRule(o),o},A.toString=function(i){i===void 0&&(i=Qh);var n=_a(i),r=n.linebreak;if(i.indent==null&&(i.indent=Qh.indent),i.children==null&&(i.children=Qh.children),i.children===!1)return this.query+" {}";var o=this.rules.toString(i);return o?this.query+" {"+r+o+r+"}":""},e}(),l8=/@media|@supports\s+/,c8={onCreateRule:function(A,t,i){return l8.test(A)?new I8(A,t,i):null}},dh={indent:1,children:!0},C8=/@keyframes\s+([\w-]+)/,HQ=function(){function e(t,i,n){this.type="keyframes",this.at="@keyframes",this.isProcessed=!1;var r=t.match(C8);r&&r[1]?this.name=r[1]:this.name="noname",this.key=this.type+"-"+this.name,this.options=n;var o=n.scoped,s=n.sheet,a=n.generateId;this.id=o===!1?this.name:wp(a(this,s)),this.rules=new HE(_({},n,{parent:this}));for(var g in i)this.rules.add(g,i[g],_({},n,{parent:this}));this.rules.process()}var A=e.prototype;return A.toString=function(i){i===void 0&&(i=dh);var n=_a(i),r=n.linebreak;if(i.indent==null&&(i.indent=dh.indent),i.children==null&&(i.children=dh.children),i.children===!1)return this.at+" "+this.id+" {}";var o=this.rules.toString(i);return o&&(o=""+r+o+r),this.at+" "+this.id+" {"+o+"}"},e}(),B8=/@keyframes\s+/,E8=/\$([\w-]+)/g,qQ=function(A,t){return typeof A=="string"?A.replace(E8,function(i,n){return n in t?t[n]:i}):A},Uv=function(A,t,i){var n=A[t],r=qQ(n,i);r!==n&&(A[t]=r)},u8={onCreateRule:function(A,t,i){return typeof A=="string"&&B8.test(A)?new HQ(A,t,i):null},onProcessStyle:function(A,t,i){return t.type!=="style"||!i||("animation-name"in A&&Uv(A,"animation-name",i.keyframes),"animation"in A&&Uv(A,"animation",i.keyframes)),A},onChangeValue:function(A,t,i){var n=i.options.sheet;if(!n)return A;switch(t){case"animation":return qQ(A,n.keyframes);case"animation-name":return qQ(A,n.keyframes);default:return A}}},h8=function(e){jt(A,e);function A(){return e.apply(this,arguments)||this}var t=A.prototype;return t.toString=function(n){var r=this.options.sheet,o=r?r.options.link:!1,s=o?_({},n,{allowEmpty:!0}):n;return KI(this.key,this.style,s)},A}(R2),f8={onCreateRule:function(A,t,i){return i.parent&&i.parent.type==="keyframes"?new h8(A,t,i):null}},Q8=function(){function e(t,i,n){this.type="font-face",this.at="@font-face",this.isProcessed=!1,this.key=t,this.style=i,this.options=n}var A=e.prototype;return A.toString=function(i){var n=_a(i),r=n.linebreak;if(Array.isArray(this.style)){for(var o="",s=0;s=this.index){n.push(i);return}for(var o=0;or){n.splice(o,0,i);return}}},A.reset=function(){this.registry=[]},A.remove=function(i){var n=this.registry.indexOf(i);this.registry.splice(n,1)},A.toString=function(i){for(var n=i===void 0?{}:i,r=n.attached,o=Ao(n,["attached"]),s=_a(o),a=s.linebreak,g="",I=0;I-1?n.substr(0,r-1):n;A.style.setProperty(t,o,r>-1?"important":"")}}catch{return!1}return!0},L8=function(A,t){try{A.attributeStyleMap?A.attributeStyleMap.delete(t):A.style.removeProperty(t)}catch{}},b8=function(A,t){return A.selectorText=t,A.selectorText===t},N2=F2(function(){return document.querySelector("head")});function G8(e,A){for(var t=0;tA.index&&i.options.insertionPoint===A.insertionPoint)return i}return null}function _8(e,A){for(var t=e.length-1;t>=0;t--){var i=e[t];if(i.attached&&i.options.insertionPoint===A.insertionPoint)return i}return null}function M8(e){for(var A=N2(),t=0;t0){var t=G8(A,e);if(t&&t.renderer)return{parent:t.renderer.element.parentNode,node:t.renderer.element};if(t=_8(A,e),t&&t.renderer)return{parent:t.renderer.element.parentNode,node:t.renderer.element.nextSibling}}var i=e.insertionPoint;if(i&&typeof i=="string"){var n=M8(i);if(n)return{parent:n.parentNode,node:n.nextSibling}}return!1}function T8(e,A){var t=A.insertionPoint,i=k8(A);if(i!==!1&&i.parent){i.parent.insertBefore(e,i.node);return}if(t&&typeof t.nodeType=="number"){var n=t,r=n.parentNode;r&&r.insertBefore(e,n.nextSibling);return}N2().appendChild(e)}var U8=F2(function(){var e=document.querySelector('meta[property="csp-nonce"]');return e?e.getAttribute("content"):null}),Ov=function(A,t,i){try{"insertRule"in A?A.insertRule(t,i):"appendRule"in A&&A.appendRule(t)}catch{return!1}return A.cssRules[i]},Yv=function(A,t){var i=A.cssRules.length;return t===void 0||t>i?i:t},P8=function(){var A=document.createElement("style");return A.textContent=` -`,A},H8=function(){function e(t){this.getPropertyValue=F8,this.setProperty=N8,this.removeProperty=L8,this.setSelector=b8,this.hasInsertedRules=!1,this.cssRules=[],t&&II.add(t),this.sheet=t;var i=this.sheet?this.sheet.options:{},n=i.media,r=i.meta,o=i.element;this.element=o||P8(),this.element.setAttribute("data-jss",""),n&&this.element.setAttribute("media",n),r&&this.element.setAttribute("data-meta",r);var s=U8();s&&this.element.setAttribute("nonce",s)}var A=e.prototype;return A.attach=function(){if(!(this.element.parentNode||!this.sheet)){T8(this.element,this.sheet.options);var i=Boolean(this.sheet&&this.sheet.deployed);this.hasInsertedRules&&i&&(this.hasInsertedRules=!1,this.deploy())}},A.detach=function(){if(!!this.sheet){var i=this.element.parentNode;i&&i.removeChild(this.element),this.sheet.options.link&&(this.cssRules=[],this.element.textContent=` +`)),_({paddingLeft:A(2),paddingRight:A(2)},r,y({},e.up("sm"),_({paddingLeft:A(3),paddingRight:A(3)},r[e.up("sm")])))},toolbar:(i={minHeight:56},y(i,"".concat(e.up("xs")," and (orientation: landscape)"),{minHeight:48}),y(i,e.up("sm"),{minHeight:64}),i)},t)}var iP={black:"#000",white:"#fff"},vB=iP,nP={50:"#fafafa",100:"#f5f5f5",200:"#eeeeee",300:"#e0e0e0",400:"#bdbdbd",500:"#9e9e9e",600:"#757575",700:"#616161",800:"#424242",900:"#212121",A100:"#d5d5d5",A200:"#aaaaaa",A400:"#303030",A700:"#616161"},OI=nP,rP={50:"#e8eaf6",100:"#c5cae9",200:"#9fa8da",300:"#7986cb",400:"#5c6bc0",500:"#3f51b5",600:"#3949ab",700:"#303f9f",800:"#283593",900:"#1a237e",A100:"#8c9eff",A200:"#536dfe",A400:"#3d5afe",A700:"#304ffe"},ch=rP,oP={50:"#fce4ec",100:"#f8bbd0",200:"#f48fb1",300:"#f06292",400:"#ec407a",500:"#e91e63",600:"#d81b60",700:"#c2185b",800:"#ad1457",900:"#880e4f",A100:"#ff80ab",A200:"#ff4081",A400:"#f50057",A700:"#c51162"},Ch=oP,sP={50:"#ffebee",100:"#ffcdd2",200:"#ef9a9a",300:"#e57373",400:"#ef5350",500:"#f44336",600:"#e53935",700:"#d32f2f",800:"#c62828",900:"#b71c1c",A100:"#ff8a80",A200:"#ff5252",A400:"#ff1744",A700:"#d50000"},Bh=sP,aP={50:"#fff3e0",100:"#ffe0b2",200:"#ffcc80",300:"#ffb74d",400:"#ffa726",500:"#ff9800",600:"#fb8c00",700:"#f57c00",800:"#ef6c00",900:"#e65100",A100:"#ffd180",A200:"#ffab40",A400:"#ff9100",A700:"#ff6d00"},Eh=aP,gP={50:"#e3f2fd",100:"#bbdefb",200:"#90caf9",300:"#64b5f6",400:"#42a5f5",500:"#2196f3",600:"#1e88e5",700:"#1976d2",800:"#1565c0",900:"#0d47a1",A100:"#82b1ff",A200:"#448aff",A400:"#2979ff",A700:"#2962ff"},uh=gP,IP={50:"#e8f5e9",100:"#c8e6c9",200:"#a5d6a7",300:"#81c784",400:"#66bb6a",500:"#4caf50",600:"#43a047",700:"#388e3c",800:"#2e7d32",900:"#1b5e20",A100:"#b9f6ca",A200:"#69f0ae",A400:"#00e676",A700:"#00c853"},hh=IP,Sv={text:{primary:"rgba(0, 0, 0, 0.87)",secondary:"rgba(0, 0, 0, 0.54)",disabled:"rgba(0, 0, 0, 0.38)",hint:"rgba(0, 0, 0, 0.38)"},divider:"rgba(0, 0, 0, 0.12)",background:{paper:vB.white,default:OI[50]},action:{active:"rgba(0, 0, 0, 0.54)",hover:"rgba(0, 0, 0, 0.04)",hoverOpacity:.04,selected:"rgba(0, 0, 0, 0.08)",selectedOpacity:.08,disabled:"rgba(0, 0, 0, 0.26)",disabledBackground:"rgba(0, 0, 0, 0.12)",disabledOpacity:.38,focus:"rgba(0, 0, 0, 0.12)",focusOpacity:.12,activatedOpacity:.12}},fh={text:{primary:vB.white,secondary:"rgba(255, 255, 255, 0.7)",disabled:"rgba(255, 255, 255, 0.5)",hint:"rgba(255, 255, 255, 0.5)",icon:"rgba(255, 255, 255, 0.5)"},divider:"rgba(255, 255, 255, 0.12)",background:{paper:OI[800],default:"#303030"},action:{active:vB.white,hover:"rgba(255, 255, 255, 0.08)",hoverOpacity:.08,selected:"rgba(255, 255, 255, 0.16)",selectedOpacity:.16,disabled:"rgba(255, 255, 255, 0.3)",disabledBackground:"rgba(255, 255, 255, 0.12)",disabledOpacity:.38,focus:"rgba(255, 255, 255, 0.12)",focusOpacity:.12,activatedOpacity:.24}};function Dv(e,A,t,i){var n=i.light||i,r=i.dark||i*1.5;e[A]||(e.hasOwnProperty(t)?e[A]=e[t]:A==="light"?e.light=JI(e.main,n):A==="dark"&&(e.dark=qI(e.main,r)))}function lP(e){var A=e.primary,t=A===void 0?{light:ch[300],main:ch[500],dark:ch[700]}:A,i=e.secondary,n=i===void 0?{light:Ch.A200,main:Ch.A400,dark:Ch.A700}:i,r=e.error,o=r===void 0?{light:Bh[300],main:Bh[500],dark:Bh[700]}:r,s=e.warning,a=s===void 0?{light:Eh[300],main:Eh[500],dark:Eh[700]}:s,g=e.info,I=g===void 0?{light:uh[300],main:uh[500],dark:uh[700]}:g,l=e.success,c=l===void 0?{light:hh[300],main:hh[500],dark:hh[700]}:l,C=e.type,B=C===void 0?"light":C,u=e.contrastThreshold,E=u===void 0?3:u,h=e.tonalOffset,f=h===void 0?.2:h,Q=SA(e,["primary","secondary","error","warning","info","success","type","contrastThreshold","tonalOffset"]);function d(x){var D=$3(x,fh.text.primary)>=E?fh.text.primary:Sv.text.primary;return D}var w=function(D){var F=arguments.length>1&&arguments[1]!==void 0?arguments[1]:500,N=arguments.length>2&&arguments[2]!==void 0?arguments[2]:300,M=arguments.length>3&&arguments[3]!==void 0?arguments[3]:700;if(D=_({},D),!D.main&&D[F]&&(D.main=D[F]),!D.main)throw new Error(Ea(4,F));if(typeof D.main!="string")throw new Error(Ea(5,JSON.stringify(D.main)));return Dv(D,"light",N,f),Dv(D,"dark",M,f),D.contrastText||(D.contrastText=d(D.main)),D},m={dark:fh,light:Sv},v=Go(_({common:vB,type:B,primary:w(t),secondary:w(n,"A400","A200","A700"),error:w(o),warning:w(a),info:w(I),success:w(c),grey:OI,contrastThreshold:E,getContrastText:d,augmentColor:w,tonalOffset:f},m[B]),Q);return v}function y2(e){return Math.round(e*1e5)/1e5}function cP(e){return y2(e)}var Rv={textTransform:"uppercase"},xv='"Roboto", "Helvetica", "Arial", sans-serif';function CP(e,A){var t=typeof A=="function"?A(e):A,i=t.fontFamily,n=i===void 0?xv:i,r=t.fontSize,o=r===void 0?14:r,s=t.fontWeightLight,a=s===void 0?300:s,g=t.fontWeightRegular,I=g===void 0?400:g,l=t.fontWeightMedium,c=l===void 0?500:l,C=t.fontWeightBold,B=C===void 0?700:C,u=t.htmlFontSize,E=u===void 0?16:u,h=t.allVariants,f=t.pxToRem,Q=SA(t,["fontFamily","fontSize","fontWeightLight","fontWeightRegular","fontWeightMedium","fontWeightBold","htmlFontSize","allVariants","pxToRem"]),d=o/14,w=f||function(x){return"".concat(x/E*d,"rem")},m=function(D,F,N,M,U){return _({fontFamily:n,fontWeight:D,fontSize:w(F),lineHeight:N},n===xv?{letterSpacing:"".concat(y2(M/F),"em")}:{},U,h)},v={h1:m(a,96,1.167,-1.5),h2:m(a,60,1.2,-.5),h3:m(I,48,1.167,0),h4:m(I,34,1.235,.25),h5:m(I,24,1.334,0),h6:m(c,20,1.6,.15),subtitle1:m(I,16,1.75,.15),subtitle2:m(c,14,1.57,.1),body1:m(I,16,1.5,.15),body2:m(I,14,1.43,.15),button:m(c,14,1.75,.4,Rv),caption:m(I,12,1.66,.4),overline:m(I,12,2.66,1,Rv)};return Go(_({htmlFontSize:E,pxToRem:w,round:cP,fontFamily:n,fontSize:o,fontWeightLight:a,fontWeightRegular:I,fontWeightMedium:c,fontWeightBold:B},v),Q,{clone:!1})}var BP=.2,EP=.14,uP=.12;function Pe(){return["".concat(arguments.length<=0?void 0:arguments[0],"px ").concat(arguments.length<=1?void 0:arguments[1],"px ").concat(arguments.length<=2?void 0:arguments[2],"px ").concat(arguments.length<=3?void 0:arguments[3],"px rgba(0,0,0,").concat(BP,")"),"".concat(arguments.length<=4?void 0:arguments[4],"px ").concat(arguments.length<=5?void 0:arguments[5],"px ").concat(arguments.length<=6?void 0:arguments[6],"px ").concat(arguments.length<=7?void 0:arguments[7],"px rgba(0,0,0,").concat(EP,")"),"".concat(arguments.length<=8?void 0:arguments[8],"px ").concat(arguments.length<=9?void 0:arguments[9],"px ").concat(arguments.length<=10?void 0:arguments[10],"px ").concat(arguments.length<=11?void 0:arguments[11],"px rgba(0,0,0,").concat(uP,")")].join(",")}var hP=["none",Pe(0,2,1,-1,0,1,1,0,0,1,3,0),Pe(0,3,1,-2,0,2,2,0,0,1,5,0),Pe(0,3,3,-2,0,3,4,0,0,1,8,0),Pe(0,2,4,-1,0,4,5,0,0,1,10,0),Pe(0,3,5,-1,0,5,8,0,0,1,14,0),Pe(0,3,5,-1,0,6,10,0,0,1,18,0),Pe(0,4,5,-2,0,7,10,1,0,2,16,1),Pe(0,5,5,-3,0,8,10,1,0,3,14,2),Pe(0,5,6,-3,0,9,12,1,0,3,16,2),Pe(0,6,6,-3,0,10,14,1,0,4,18,3),Pe(0,6,7,-4,0,11,15,1,0,4,20,3),Pe(0,7,8,-4,0,12,17,2,0,5,22,4),Pe(0,7,8,-4,0,13,19,2,0,5,24,4),Pe(0,7,9,-4,0,14,21,2,0,5,26,4),Pe(0,8,9,-5,0,15,22,2,0,6,28,5),Pe(0,8,10,-5,0,16,24,2,0,6,30,5),Pe(0,8,11,-5,0,17,26,2,0,6,32,5),Pe(0,9,11,-5,0,18,28,2,0,7,34,6),Pe(0,9,12,-6,0,19,29,2,0,7,36,6),Pe(0,10,13,-6,0,20,31,3,0,8,38,7),Pe(0,10,13,-6,0,21,33,3,0,8,40,7),Pe(0,10,14,-6,0,22,35,3,0,8,42,7),Pe(0,11,14,-7,0,23,36,3,0,9,44,8),Pe(0,11,15,-7,0,24,38,3,0,9,46,8)],fP=hP,QP={borderRadius:4},dP=QP;function TQ(e,A){(A==null||A>e.length)&&(A=e.length);for(var t=0,i=new Array(A);t2)if(bv[e])e=bv[e];else return[e];var A=e.split(""),t=Fl(A,2),i=t[0],n=t[1],r=J4[i],o=O4[n]||"";return Array.isArray(o)?o.map(function(s){return r+s}):[r+o]}),v2=["m","mt","mr","mb","ml","mx","my","p","pt","pr","pb","pl","px","py","margin","marginTop","marginRight","marginBottom","marginLeft","marginX","marginY","padding","paddingTop","paddingRight","paddingBottom","paddingLeft","paddingX","paddingY"];function S2(e){var A=e.spacing||8;return typeof A=="number"?function(t){return A*t}:Array.isArray(A)?function(t){return A[t]}:typeof A=="function"?A:function(){}}function K4(e,A){if(typeof A=="string"||A==null)return A;var t=Math.abs(A),i=e(t);return A>=0?i:typeof i=="number"?-i:"-".concat(i)}function V4(e,A){return function(t){return e.reduce(function(i,n){return i[n]=K4(A,t),i},{})}}function yp(e){var A=e.theme,t=S2(A);return Object.keys(e).map(function(i){if(v2.indexOf(i)===-1)return null;var n=Y4(i),r=V4(n,t),o=e[i];return w2(e,o,r)}).reduce(SB,{})}yp.propTypes={};yp.filterProps=v2;var W4=mA({prop:"fontFamily",themeKey:"typography"}),z4=mA({prop:"fontSize",themeKey:"typography"}),j4=mA({prop:"fontStyle",themeKey:"typography"}),X4=mA({prop:"fontWeight",themeKey:"typography"}),Z4=mA({prop:"letterSpacing"}),$4=mA({prop:"lineHeight"}),A8=mA({prop:"textAlign"}),e8=On(W4,z4,j4,X4,Z4,$4,A8),t8=e8;function i8(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:8;if(e.mui)return e;var A=S2({spacing:e}),t=function(){for(var n=arguments.length,r=new Array(n),o=0;o0&&arguments[0]!==void 0?arguments[0]:["all"],t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=t.duration,n=i===void 0?DB.standard:i,r=t.easing,o=r===void 0?Gv.easeInOut:r,s=t.delay,a=s===void 0?0:s;return SA(t,["duration","easing","delay"]),(Array.isArray(A)?A:[A]).map(function(g){return"".concat(g," ").concat(typeof n=="string"?n:_v(n)," ").concat(o," ").concat(typeof a=="string"?a:_v(a))}).join(",")},getAutoHeightDuration:function(A){if(!A)return 0;var t=A/36;return Math.round((4+15*Math.pow(t,.25)+t/5)*10)}},r8={mobileStepper:1e3,speedDial:1050,appBar:1100,drawer:1200,modal:1300,snackbar:1400,tooltip:1500},D2=r8;function R2(){for(var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},A=e.breakpoints,t=A===void 0?{}:A,i=e.mixins,n=i===void 0?{}:i,r=e.palette,o=r===void 0?{}:r,s=e.spacing,a=e.typography,g=a===void 0?{}:a,I=SA(e,["breakpoints","mixins","palette","spacing","typography"]),l=lP(o),c=eP(t),C=i8(s),B=Go({breakpoints:c,direction:"ltr",mixins:tP(c,C,n),overrides:{},palette:l,props:{},shadows:fP,typography:CP(l,g),spacing:C,shape:dP,transitions:n8,zIndex:D2},I),u=arguments.length,E=new Array(u>1?u-1:0),h=1;h0&&arguments[0]!==void 0?arguments[0]:{},A=e.disableGlobal,t=A===void 0?!1:A,i=e.productionPrefix,n=i===void 0?"jss":i,r=e.seed,o=r===void 0?"":r,s=o===""?"":"".concat(o,"-"),a=0,g=function(){return a+=1,a};return function(I,l){var c=l.options.name;if(c&&c.indexOf("Mui")===0&&!l.options.link&&!t){if(s8.indexOf(I.key)!==-1)return"Mui-".concat(I.key);var C="".concat(s).concat(c,"-").concat(I.key);return!l.options.theme[x2]||o!==""?C:"".concat(C,"-").concat(g())}return"".concat(s).concat(n).concat(g())}}function F2(e){var A=e.theme,t=e.name,i=e.props;if(!A||!A.props||!A.props[t])return i;var n=A.props[t],r;for(r in n)i[r]===void 0&&(i[r]=n[r]);return i}var Mv=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Nl=(typeof window=="undefined"?"undefined":Mv(window))==="object"&&(typeof document=="undefined"?"undefined":Mv(document))==="object"&&document.nodeType===9;function kv(e,A){for(var t=0;t<+~=|^:(),"'`\s])/g,Uv=typeof CSS!="undefined"&&CSS.escape,vp=function(e){return Uv?Uv(e):e.replace(I8,"\\$1")},N2=function(){function e(t,i,n){this.type="style",this.isProcessed=!1;var r=n.sheet,o=n.Renderer;this.key=t,this.options=n,this.style=i,r?this.renderer=r.renderer:o&&(this.renderer=new o)}var A=e.prototype;return A.prop=function(i,n,r){if(n===void 0)return this.style[i];var o=r?r.force:!1;if(!o&&this.style[i]===n)return this;var s=n;(!r||r.process!==!1)&&(s=this.options.jss.plugins.onChangeValue(n,i,this));var a=s==null||s===!1,g=i in this.style;if(a&&!g&&!o)return this;var I=a&&g;if(I?delete this.style[i]:this.style[i]=s,this.renderable&&this.renderer)return I?this.renderer.removeProperty(this.renderable,i):this.renderer.setProperty(this.renderable,i,s),this;var l=this.options.sheet;return l&&l.attached,this},e}(),HQ=function(e){jt(A,e);function A(i,n,r){var o;o=e.call(this,i,n,r)||this;var s=r.selector,a=r.scoped,g=r.sheet,I=r.generateId;return s?o.selectorText=s:a!==!1&&(o.id=I(UQ(UQ(o)),g),o.selectorText="."+vp(o.id)),o}var t=A.prototype;return t.applyTo=function(n){var r=this.renderer;if(r){var o=this.toJSON();for(var s in o)r.setProperty(n,s,o[s])}return this},t.toJSON=function(){var n={};for(var r in this.style){var o=this.style[r];typeof o!="object"?n[r]=o:Array.isArray(o)&&(n[r]=Do(o))}return n},t.toString=function(n){var r=this.options.sheet,o=r?r.options.link:!1,s=o?_({},n,{allowEmpty:!0}):n;return YI(this.selectorText,this.style,s)},mp(A,[{key:"selector",set:function(n){if(n!==this.selectorText){this.selectorText=n;var r=this.renderer,o=this.renderable;if(!(!o||!r)){var s=r.setSelector(o,n);s||r.replaceRule(o,this)}}},get:function(){return this.selectorText}}]),A}(N2),l8={onCreateRule:function(A,t,i){return A[0]==="@"||i.parent&&i.parent.type==="keyframes"?null:new HQ(A,t,i)}},Qh={indent:1,children:!0},c8=/@([\w-]+)/,C8=function(){function e(t,i,n){this.type="conditional",this.isProcessed=!1,this.key=t;var r=t.match(c8);this.at=r?r[1]:"unknown",this.query=n.name||"@"+this.at,this.options=n,this.rules=new HE(_({},n,{parent:this}));for(var o in i)this.rules.add(o,i[o]);this.rules.process()}var A=e.prototype;return A.getRule=function(i){return this.rules.get(i)},A.indexOf=function(i){return this.rules.indexOf(i)},A.addRule=function(i,n,r){var o=this.rules.add(i,n,r);return o?(this.options.jss.plugins.onProcessRule(o),o):null},A.replaceRule=function(i,n,r){var o=this.rules.replace(i,n,r);return o&&this.options.jss.plugins.onProcessRule(o),o},A.toString=function(i){i===void 0&&(i=Qh);var n=Ga(i),r=n.linebreak;if(i.indent==null&&(i.indent=Qh.indent),i.children==null&&(i.children=Qh.children),i.children===!1)return this.query+" {}";var o=this.rules.toString(i);return o?this.query+" {"+r+o+r+"}":""},e}(),B8=/@media|@supports\s+/,E8={onCreateRule:function(A,t,i){return B8.test(A)?new C8(A,t,i):null}},dh={indent:1,children:!0},u8=/@keyframes\s+([\w-]+)/,qQ=function(){function e(t,i,n){this.type="keyframes",this.at="@keyframes",this.isProcessed=!1;var r=t.match(u8);r&&r[1]?this.name=r[1]:this.name="noname",this.key=this.type+"-"+this.name,this.options=n;var o=n.scoped,s=n.sheet,a=n.generateId;this.id=o===!1?this.name:vp(a(this,s)),this.rules=new HE(_({},n,{parent:this}));for(var g in i)this.rules.add(g,i[g],_({},n,{parent:this}));this.rules.process()}var A=e.prototype;return A.toString=function(i){i===void 0&&(i=dh);var n=Ga(i),r=n.linebreak;if(i.indent==null&&(i.indent=dh.indent),i.children==null&&(i.children=dh.children),i.children===!1)return this.at+" "+this.id+" {}";var o=this.rules.toString(i);return o&&(o=""+r+o+r),this.at+" "+this.id+" {"+o+"}"},e}(),h8=/@keyframes\s+/,f8=/\$([\w-]+)/g,JQ=function(A,t){return typeof A=="string"?A.replace(f8,function(i,n){return n in t?t[n]:i}):A},Pv=function(A,t,i){var n=A[t],r=JQ(n,i);r!==n&&(A[t]=r)},Q8={onCreateRule:function(A,t,i){return typeof A=="string"&&h8.test(A)?new qQ(A,t,i):null},onProcessStyle:function(A,t,i){return t.type!=="style"||!i||("animation-name"in A&&Pv(A,"animation-name",i.keyframes),"animation"in A&&Pv(A,"animation",i.keyframes)),A},onChangeValue:function(A,t,i){var n=i.options.sheet;if(!n)return A;switch(t){case"animation":return JQ(A,n.keyframes);case"animation-name":return JQ(A,n.keyframes);default:return A}}},d8=function(e){jt(A,e);function A(){return e.apply(this,arguments)||this}var t=A.prototype;return t.toString=function(n){var r=this.options.sheet,o=r?r.options.link:!1,s=o?_({},n,{allowEmpty:!0}):n;return YI(this.key,this.style,s)},A}(N2),p8={onCreateRule:function(A,t,i){return i.parent&&i.parent.type==="keyframes"?new d8(A,t,i):null}},y8=function(){function e(t,i,n){this.type="font-face",this.at="@font-face",this.isProcessed=!1,this.key=t,this.style=i,this.options=n}var A=e.prototype;return A.toString=function(i){var n=Ga(i),r=n.linebreak;if(Array.isArray(this.style)){for(var o="",s=0;s=this.index){n.push(i);return}for(var o=0;or){n.splice(o,0,i);return}}},A.reset=function(){this.registry=[]},A.remove=function(i){var n=this.registry.indexOf(i);this.registry.splice(n,1)},A.toString=function(i){for(var n=i===void 0?{}:i,r=n.attached,o=$r(n,["attached"]),s=Ga(o),a=s.linebreak,g="",I=0;I-1?n.substr(0,r-1):n;A.style.setProperty(t,o,r>-1?"important":"")}}catch{return!1}return!0},_8=function(A,t){try{A.attributeStyleMap?A.attributeStyleMap.delete(t):A.style.removeProperty(t)}catch{}},M8=function(A,t){return A.selectorText=t,A.selectorText===t},G2=b2(function(){return document.querySelector("head")});function k8(e,A){for(var t=0;tA.index&&i.options.insertionPoint===A.insertionPoint)return i}return null}function T8(e,A){for(var t=e.length-1;t>=0;t--){var i=e[t];if(i.attached&&i.options.insertionPoint===A.insertionPoint)return i}return null}function U8(e){for(var A=G2(),t=0;t0){var t=k8(A,e);if(t&&t.renderer)return{parent:t.renderer.element.parentNode,node:t.renderer.element};if(t=T8(A,e),t&&t.renderer)return{parent:t.renderer.element.parentNode,node:t.renderer.element.nextSibling}}var i=e.insertionPoint;if(i&&typeof i=="string"){var n=U8(i);if(n)return{parent:n.parentNode,node:n.nextSibling}}return!1}function H8(e,A){var t=A.insertionPoint,i=P8(A);if(i!==!1&&i.parent){i.parent.insertBefore(e,i.node);return}if(t&&typeof t.nodeType=="number"){var n=t,r=n.parentNode;r&&r.insertBefore(e,n.nextSibling);return}G2().appendChild(e)}var q8=b2(function(){var e=document.querySelector('meta[property="csp-nonce"]');return e?e.getAttribute("content"):null}),Yv=function(A,t,i){try{"insertRule"in A?A.insertRule(t,i):"appendRule"in A&&A.appendRule(t)}catch{return!1}return A.cssRules[i]},Kv=function(A,t){var i=A.cssRules.length;return t===void 0||t>i?i:t},J8=function(){var A=document.createElement("style");return A.textContent=` +`,A},O8=function(){function e(t){this.getPropertyValue=b8,this.setProperty=G8,this.removeProperty=_8,this.setSelector=M8,this.hasInsertedRules=!1,this.cssRules=[],t&&gI.add(t),this.sheet=t;var i=this.sheet?this.sheet.options:{},n=i.media,r=i.meta,o=i.element;this.element=o||J8(),this.element.setAttribute("data-jss",""),n&&this.element.setAttribute("media",n),r&&this.element.setAttribute("data-meta",r);var s=q8();s&&this.element.setAttribute("nonce",s)}var A=e.prototype;return A.attach=function(){if(!(this.element.parentNode||!this.sheet)){H8(this.element,this.sheet.options);var i=Boolean(this.sheet&&this.sheet.deployed);this.hasInsertedRules&&i&&(this.hasInsertedRules=!1,this.deploy())}},A.detach=function(){if(!!this.sheet){var i=this.element.parentNode;i&&i.removeChild(this.element),this.sheet.options.link&&(this.cssRules=[],this.element.textContent=` `)}},A.deploy=function(){var i=this.sheet;if(!!i){if(i.options.link){this.insertRules(i.rules);return}this.element.textContent=` `+i.toString()+` -`}},A.insertRules=function(i,n){for(var r=0;r-1){var r=P2[A];if(!Array.isArray(r))return zA.js+qr(r)in t?zA.css+r:!1;if(!n)return!1;for(var o=0;oi?1:-1:t.length-i.length};return{onProcessStyle:function(t,i){if(i.type!=="style")return t;for(var n={},r=Object.keys(t).sort(e),o=0;o0&&arguments[0]!==void 0?arguments[0]:{},A=e.baseClasses,t=e.newClasses;if(e.Component,!t)return A;var i=_({},A);return Object.keys(t).forEach(function(n){t[n]&&(i[n]="".concat(A[n]," ").concat(t[n]))}),i}var PH={set:function(A,t,i,n){var r=A.get(t);r||(r=new Map,A.set(t,r)),r.set(i,n)},get:function(A,t,i){var n=A.get(t);return n?n.get(i):void 0},delete:function(A,t,i){var n=A.get(t);n.delete(i)}},Ps=PH,HH=vA.createContext(null),q2=HH;function Ma(){var e=vA.useContext(q2);return e}var qH=L2(UH()),JH=r8(),OH=new Map,YH={disableGeneration:!1,generateClassName:JH,jss:qH,sheetsCache:null,sheetsManager:OH,sheetsRegistry:null},KH=vA.createContext(YH),zv=-1e9;function VH(){return zv+=1,zv}var WH={},zH=WH;function jH(e){var A=typeof e=="function";return{create:function(i,n){var r;try{r=A?e(i):e}catch(a){throw a}if(!n||!i.overrides||!i.overrides[n])return r;var o=i.overrides[n],s=_({},r);return Object.keys(o).forEach(function(a){s[a]=_o(s[a],o[a])}),s},options:{}}}function XH(e,A,t){var i=e.state,n=e.stylesOptions;if(n.disableGeneration)return A||{};i.cacheClasses||(i.cacheClasses={value:null,lastProp:null,lastJSS:{}});var r=!1;return i.classes!==i.cacheClasses.lastJSS&&(i.cacheClasses.lastJSS=i.classes,r=!0),A!==i.cacheClasses.lastProp&&(i.cacheClasses.lastProp=A,r=!0),r&&(i.cacheClasses.value=Dp({baseClasses:i.cacheClasses.lastJSS,newClasses:A,Component:t})),i.cacheClasses.value}function ZH(e,A){var t=e.state,i=e.theme,n=e.stylesOptions,r=e.stylesCreator,o=e.name;if(!n.disableGeneration){var s=Ps.get(n.sheetsManager,r,i);s||(s={refs:0,staticSheet:null,dynamicStyles:null},Ps.set(n.sheetsManager,r,i,s));var a=_({},r.options,n,{theme:i,flip:typeof n.flip=="boolean"?n.flip:i.direction==="rtl"});a.generateId=a.serverGenerateClassName||a.generateClassName;var g=n.sheetsRegistry;if(s.refs===0){var I;n.sheetsCache&&(I=Ps.get(n.sheetsCache,r,i));var l=r.create(i,o);I||(I=n.jss.createStyleSheet(l,_({link:!1},a)),I.attach(),n.sheetsCache&&Ps.set(n.sheetsCache,r,i,I)),g&&g.add(I),s.staticSheet=I,s.dynamicStyles=b2(l)}if(s.dynamicStyles){var c=n.jss.createStyleSheet(s.dynamicStyles,_({link:!0},a));c.update(A),c.attach(),t.dynamicSheet=c,t.classes=Dp({baseClasses:s.staticSheet.classes,newClasses:c.classes}),g&&g.add(c)}else t.classes=s.staticSheet.classes;s.refs+=1}}function $H(e,A){var t=e.state;t.dynamicSheet&&t.dynamicSheet.update(A)}function Aq(e){var A=e.state,t=e.theme,i=e.stylesOptions,n=e.stylesCreator;if(!i.disableGeneration){var r=Ps.get(i.sheetsManager,n,t);r.refs-=1;var o=i.sheetsRegistry;r.refs===0&&(Ps.delete(i.sheetsManager,n,t),i.jss.removeStyleSheet(r.staticSheet),o&&o.remove(r.staticSheet)),A.dynamicSheet&&(i.jss.removeStyleSheet(A.dynamicSheet),o&&o.remove(A.dynamicSheet))}}function eq(e,A){var t=vA.useRef([]),i,n=vA.useMemo(function(){return{}},A);t.current!==n&&(t.current=n,i=e()),vA.useEffect(function(){return function(){i&&i()}},[n])}function Rp(e){var A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},t=A.name,i=A.classNamePrefix,n=A.Component,r=A.defaultTheme,o=r===void 0?zH:r,s=SA(A,["name","classNamePrefix","Component","defaultTheme"]),a=jH(e),g=t||i||"makeStyles";a.options={index:VH(),name:t,meta:g,classNamePrefix:g};var I=function(){var c=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},C=Ma()||o,B=_({},vA.useContext(KH),s),u=vA.useRef(),E=vA.useRef();eq(function(){var f={name:t,state:{},stylesCreator:a,stylesOptions:B,theme:C};return ZH(f,c),E.current=!1,u.current=f,function(){Aq(f)}},[C,a]),vA.useEffect(function(){E.current&&$H(u.current,c),E.current=!0});var h=XH(u.current,c.classes,n);return h};return I}function tq(e,A){if(!(e instanceof A))throw new TypeError("Cannot call a class as a function")}function J2(e){var A,t,i="";if(typeof e=="string"||typeof e=="number")i+=e;else if(typeof e=="object")if(Array.isArray(e))for(A=0;A1&&arguments[1]!==void 0?arguments[1]:{},r=n.name,o=SA(n,["name"]),s=r,a=typeof i=="function"?function(c){return{root:function(B){return i(_({theme:c},B))}}}:{root:i},g=Rp(a,_({Component:e,name:r||e.displayName,classNamePrefix:s},o)),I;i.filterProps&&(I=i.filterProps,delete i.filterProps),i.propTypes&&(i.propTypes,delete i.propTypes);var l=vA.forwardRef(function(C,B){var u=C.children,E=C.className,h=C.clone,f=C.component,Q=SA(C,["children","className","clone","component"]),d=g(C),w=yA(d.root,E),m=Q;if(I&&(m=iq(m,I)),h)return vA.cloneElement(u,_({className:yA(u.props.className,w)},m));if(typeof u=="function")return u(_({className:w},m));var v=f||e;return vA.createElement(v,_({ref:B,className:w},m),u)});return l2(l,e),l};return A}function rq(e,A){if(typeof A=="function"){var t=A(e);return t}return _({},e,A)}function jv(e){var A=e.children,t=e.theme,i=Ma(),n=vA.useMemo(function(){var r=i===null?t:rq(i,t);return r!=null&&(r[S2]=i!==null),r},[t,i]);return vA.createElement(q2.Provider,{value:n},A)}var oq=function(A){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return function(i){var n=t.defaultTheme,r=t.withTheme,o=r===void 0?!1:r,s=t.name,a=SA(t,["defaultTheme","withTheme","name"]),g=s,I=Rp(A,_({defaultTheme:n,Component:i,name:s||i.displayName,classNamePrefix:g},a)),l=vA.forwardRef(function(C,B){C.classes;var u=C.innerRef,E=SA(C,["classes","innerRef"]),h=I(_({},i.defaultProps,C)),f,Q=E;return(typeof s=="string"||o)&&(f=Ma()||n,s&&(Q=D2({theme:f,name:s,props:E})),o&&!Q.theme&&(Q.theme=f)),vA.createElement(i,_({ref:u||B,classes:h},Q))});return l2(l,i),l}},sq=oq;function O2(e){return e}var aq=v2(),qE=aq;function ns(e){var A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return Rp(e,_({defaultTheme:qE},A))}var gq=function(A){var t=nq(A);return function(i,n){return t(i,_({defaultTheme:qE},n))}},Iq=gq;function Ll(){var e=Ma()||qE;return e}function ee(e,A){return sq(e,_({defaultTheme:qE},A))}const lq="https://viv-demo.storage.googleapis.com",cq=[{path:"Vanderbilt-Spraggins-Kidney-MxIF.ome.tif",description:"OME-TIFF Kidney mxIF"},{path:"12448_G1HR_Mesh003.ome.tif",description:"OME-TIFF Covid-19 Primary Gut Epithelial Stem Cells"},{path:"LuCa-7color_Scan1/",description:"Perkin Elmer LuCa-7color_Scan1.qptiff"},{path:"LuCa-7color_3x3component_data.ome.tif",description:"Perkin Elmer LuCa-7color_3x3component_data.qptiff"},{path:"2018-12-18_ASY_H2B_bud_05_3D_8_angles.ome.tif",description:"idr0077"},{path:"brain.pyramid.ome.tif",description:"idr0085"},{path:"idr0106.pyramid.ome.tif",description:"idr0106"}];var Xv=cq.map(e=>({urlOrFile:`${lq}/${e.path}`,description:e.description}));function Cq(e){let A;const t=new Set,i=(g,I)=>{const l=typeof g=="function"?g(A):g;if(l!==A){const c=A;A=I?l:Object.assign({},A,l),t.forEach(C=>C(A,c))}},n=()=>A,r=(g,I=n,l=Object.is)=>{console.warn("[DEPRECATED] Please use `subscribeWithSelector` middleware");let c=I(A);function C(){const B=I(A);if(!l(c,B)){const u=c;g(c=B,u)}}return t.add(C),()=>t.delete(C)},a={setState:i,getState:n,subscribe:(g,I,l)=>I||l?r(g,I,l):(t.add(g),()=>t.delete(g)),destroy:()=>t.clear()};return A=e(i,n,a),a}const Bq=typeof window=="undefined"||!window.navigator||/ServerSideRendering|^Deno\//.test(window.navigator.userAgent),Zv=Bq?p.exports.useEffect:p.exports.useLayoutEffect;function xp(e){const A=typeof e=="function"?Cq(e):e,t=(i=A.getState,n=Object.is)=>{const[,r]=p.exports.useReducer(E=>E+1,0),o=A.getState(),s=p.exports.useRef(o),a=p.exports.useRef(i),g=p.exports.useRef(n),I=p.exports.useRef(!1),l=p.exports.useRef();l.current===void 0&&(l.current=i(o));let c,C=!1;(s.current!==o||a.current!==i||g.current!==n||I.current)&&(c=i(o),C=!n(l.current,c)),Zv(()=>{C&&(l.current=c),s.current=o,a.current=i,g.current=n,I.current=!1});const B=p.exports.useRef(o);Zv(()=>{const E=()=>{try{const f=A.getState(),Q=a.current(f);g.current(l.current,Q)||(s.current=f,l.current=Q,r())}catch{I.current=!0,r()}},h=A.subscribe(E);return A.getState()!==B.current&&E(),h},[]);const u=C?c:l.current;return p.exports.useDebugValue(u),u};return Object.assign(t,A),t[Symbol.iterator]=function(){console.warn("[useStore, api] = create() is deprecated and will be removed in v4");const i=[t,A];return{next(){const n=i.length<=0;return{value:i.shift(),done:n}}}},t}function xB(e,A){if(!e)throw new Error(A||"loader assertion failed.")}const Fp=Boolean(typeof process!="object"||String(process)!=="[object process]"||process.browser),$v=typeof process!="undefined"&&process.version&&/v([0-9]*)/.exec(process.version);$v&&parseFloat($v[1]);const Eq="3.2.7";function Un(e,A){if(!e)throw new Error(A||"loaders.gl assertion failed.")}const WQ=typeof process!="object"||String(process)!=="[object process]"||process.browser,uq=typeof window!="undefined"&&typeof window.orientation!="undefined",AS=typeof process!="undefined"&&process.version&&/v([0-9]*)/.exec(process.version);AS&&parseFloat(AS[1]);class hq{constructor(A,t){y(this,"name",void 0),y(this,"workerThread",void 0),y(this,"isRunning",!0),y(this,"result",void 0),y(this,"_resolve",()=>{}),y(this,"_reject",()=>{}),this.name=A,this.workerThread=t,this.result=new Promise((i,n)=>{this._resolve=i,this._reject=n})}postMessage(A,t){this.workerThread.postMessage({source:"loaders.gl",type:A,payload:t})}done(A){Un(this.isRunning),this.isRunning=!1,this._resolve(A)}error(A){Un(this.isRunning),this.isRunning=!1,this._reject(A)}}class xh{}const Fh=new Map;function fq(e){Un(e.source&&!e.url||!e.source&&e.url);let A=Fh.get(e.source||e.url);return A||(e.url&&(A=Qq(e.url),Fh.set(e.url,A)),e.source&&(A=Y2(e.source),Fh.set(e.source,A))),Un(A),A}function Qq(e){if(!e.startsWith("http"))return e;const A=dq(e);return Y2(A)}function Y2(e){const A=new Blob([e],{type:"application/javascript"});return URL.createObjectURL(A)}function dq(e){return`try { + */_2();var k2=Date.now(),ph="fnValues"+k2,yh="fnStyle"+ ++k2,V8=function(){return{onCreateRule:function(t,i,n){if(typeof i!="function")return null;var r=wp(t,{},n);return r[yh]=i,r},onProcessStyle:function(t,i){if(ph in i||yh in i)return t;var n={};for(var r in t){var o=t[r];typeof o=="function"&&(delete t[r],n[r]=o)}return i[ph]=n,t},onUpdate:function(t,i,n,r){var o=i,s=o[yh];s&&(o.style=s(t)||{});var a=o[ph];if(a)for(var g in a)o.prop(g,a[g](t),r)}}},W8=V8,Fr="@global",KQ="@global ",z8=function(){function e(t,i,n){this.type="global",this.at=Fr,this.isProcessed=!1,this.key=t,this.options=n,this.rules=new HE(_({},n,{parent:this}));for(var r in i)this.rules.add(r,i[r]);this.rules.process()}var A=e.prototype;return A.getRule=function(i){return this.rules.get(i)},A.addRule=function(i,n,r){var o=this.rules.add(i,n,r);return o&&this.options.jss.plugins.onProcessRule(o),o},A.replaceRule=function(i,n,r){var o=this.rules.replace(i,n,r);return o&&this.options.jss.plugins.onProcessRule(o),o},A.indexOf=function(i){return this.rules.indexOf(i)},A.toString=function(i){return this.rules.toString(i)},e}(),j8=function(){function e(t,i,n){this.type="global",this.at=Fr,this.isProcessed=!1,this.key=t,this.options=n;var r=t.substr(KQ.length);this.rule=n.jss.createRule(r,i,_({},n,{parent:this}))}var A=e.prototype;return A.toString=function(i){return this.rule?this.rule.toString(i):""},e}(),X8=/\s*,\s*/g;function T2(e,A){for(var t=e.split(X8),i="",n=0;n-1){var r=J2[A];if(!Array.isArray(r))return zA.js+Hr(r)in t?zA.css+r:!1;if(!n)return!1;for(var o=0;oi?1:-1:t.length-i.length};return{onProcessStyle:function(t,i){if(i.type!=="style")return t;for(var n={},r=Object.keys(t).sort(e),o=0;o0&&arguments[0]!==void 0?arguments[0]:{},A=e.baseClasses,t=e.newClasses;if(e.Component,!t)return A;var i=_({},A);return Object.keys(t).forEach(function(n){t[n]&&(i[n]="".concat(A[n]," ").concat(t[n]))}),i}var JH={set:function(A,t,i,n){var r=A.get(t);r||(r=new Map,A.set(t,r)),r.set(i,n)},get:function(A,t,i){var n=A.get(t);return n?n.get(i):void 0},delete:function(A,t,i){var n=A.get(t);n.delete(i)}},Us=JH,OH=vA.createContext(null),Y2=OH;function _a(){var e=vA.useContext(Y2);return e}var YH=_2(qH()),KH=a8(),VH=new Map,WH={disableGeneration:!1,generateClassName:KH,jss:YH,sheetsCache:null,sheetsManager:VH,sheetsRegistry:null},zH=vA.createContext(WH),jv=-1e9;function jH(){return jv+=1,jv}var XH={},ZH=XH;function $H(e){var A=typeof e=="function";return{create:function(i,n){var r;try{r=A?e(i):e}catch(a){throw a}if(!n||!i.overrides||!i.overrides[n])return r;var o=i.overrides[n],s=_({},r);return Object.keys(o).forEach(function(a){s[a]=Go(s[a],o[a])}),s},options:{}}}function Aq(e,A,t){var i=e.state,n=e.stylesOptions;if(n.disableGeneration)return A||{};i.cacheClasses||(i.cacheClasses={value:null,lastProp:null,lastJSS:{}});var r=!1;return i.classes!==i.cacheClasses.lastJSS&&(i.cacheClasses.lastJSS=i.classes,r=!0),A!==i.cacheClasses.lastProp&&(i.cacheClasses.lastProp=A,r=!0),r&&(i.cacheClasses.value=Rp({baseClasses:i.cacheClasses.lastJSS,newClasses:A,Component:t})),i.cacheClasses.value}function eq(e,A){var t=e.state,i=e.theme,n=e.stylesOptions,r=e.stylesCreator,o=e.name;if(!n.disableGeneration){var s=Us.get(n.sheetsManager,r,i);s||(s={refs:0,staticSheet:null,dynamicStyles:null},Us.set(n.sheetsManager,r,i,s));var a=_({},r.options,n,{theme:i,flip:typeof n.flip=="boolean"?n.flip:i.direction==="rtl"});a.generateId=a.serverGenerateClassName||a.generateClassName;var g=n.sheetsRegistry;if(s.refs===0){var I;n.sheetsCache&&(I=Us.get(n.sheetsCache,r,i));var l=r.create(i,o);I||(I=n.jss.createStyleSheet(l,_({link:!1},a)),I.attach(),n.sheetsCache&&Us.set(n.sheetsCache,r,i,I)),g&&g.add(I),s.staticSheet=I,s.dynamicStyles=M2(l)}if(s.dynamicStyles){var c=n.jss.createStyleSheet(s.dynamicStyles,_({link:!0},a));c.update(A),c.attach(),t.dynamicSheet=c,t.classes=Rp({baseClasses:s.staticSheet.classes,newClasses:c.classes}),g&&g.add(c)}else t.classes=s.staticSheet.classes;s.refs+=1}}function tq(e,A){var t=e.state;t.dynamicSheet&&t.dynamicSheet.update(A)}function iq(e){var A=e.state,t=e.theme,i=e.stylesOptions,n=e.stylesCreator;if(!i.disableGeneration){var r=Us.get(i.sheetsManager,n,t);r.refs-=1;var o=i.sheetsRegistry;r.refs===0&&(Us.delete(i.sheetsManager,n,t),i.jss.removeStyleSheet(r.staticSheet),o&&o.remove(r.staticSheet)),A.dynamicSheet&&(i.jss.removeStyleSheet(A.dynamicSheet),o&&o.remove(A.dynamicSheet))}}function nq(e,A){var t=vA.useRef([]),i,n=vA.useMemo(function(){return{}},A);t.current!==n&&(t.current=n,i=e()),vA.useEffect(function(){return function(){i&&i()}},[n])}function xp(e){var A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},t=A.name,i=A.classNamePrefix,n=A.Component,r=A.defaultTheme,o=r===void 0?ZH:r,s=SA(A,["name","classNamePrefix","Component","defaultTheme"]),a=$H(e),g=t||i||"makeStyles";a.options={index:jH(),name:t,meta:g,classNamePrefix:g};var I=function(){var c=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},C=_a()||o,B=_({},vA.useContext(zH),s),u=vA.useRef(),E=vA.useRef();nq(function(){var f={name:t,state:{},stylesCreator:a,stylesOptions:B,theme:C};return eq(f,c),E.current=!1,u.current=f,function(){iq(f)}},[C,a]),vA.useEffect(function(){E.current&&tq(u.current,c),E.current=!0});var h=Aq(u.current,c.classes,n);return h};return I}function rq(e,A){if(!(e instanceof A))throw new TypeError("Cannot call a class as a function")}function K2(e){var A,t,i="";if(typeof e=="string"||typeof e=="number")i+=e;else if(typeof e=="object")if(Array.isArray(e))for(A=0;A1&&arguments[1]!==void 0?arguments[1]:{},r=n.name,o=SA(n,["name"]),s=r,a=typeof i=="function"?function(c){return{root:function(B){return i(_({theme:c},B))}}}:{root:i},g=xp(a,_({Component:e,name:r||e.displayName,classNamePrefix:s},o)),I;i.filterProps&&(I=i.filterProps,delete i.filterProps),i.propTypes&&(i.propTypes,delete i.propTypes);var l=vA.forwardRef(function(C,B){var u=C.children,E=C.className,h=C.clone,f=C.component,Q=SA(C,["children","className","clone","component"]),d=g(C),w=yA(d.root,E),m=Q;if(I&&(m=oq(m,I)),h)return vA.cloneElement(u,_({className:yA(u.props.className,w)},m));if(typeof u=="function")return u(_({className:w},m));var v=f||e;return vA.createElement(v,_({ref:B,className:w},m),u)});return B2(l,e),l};return A}function aq(e,A){if(typeof A=="function"){var t=A(e);return t}return _({},e,A)}function Xv(e){var A=e.children,t=e.theme,i=_a(),n=vA.useMemo(function(){var r=i===null?t:aq(i,t);return r!=null&&(r[x2]=i!==null),r},[t,i]);return vA.createElement(Y2.Provider,{value:n},A)}var gq=function(A){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return function(i){var n=t.defaultTheme,r=t.withTheme,o=r===void 0?!1:r,s=t.name,a=SA(t,["defaultTheme","withTheme","name"]),g=s,I=xp(A,_({defaultTheme:n,Component:i,name:s||i.displayName,classNamePrefix:g},a)),l=vA.forwardRef(function(C,B){C.classes;var u=C.innerRef,E=SA(C,["classes","innerRef"]),h=I(_({},i.defaultProps,C)),f,Q=E;return(typeof s=="string"||o)&&(f=_a()||n,s&&(Q=F2({theme:f,name:s,props:E})),o&&!Q.theme&&(Q.theme=f)),vA.createElement(i,_({ref:u||B,classes:h},Q))});return B2(l,i),l}},Iq=gq;function V2(e){return e}var lq=R2(),qE=lq;function is(e){var A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return xp(e,_({defaultTheme:qE},A))}var cq=function(A){var t=sq(A);return function(i,n){return t(i,_({defaultTheme:qE},n))}},Cq=cq;function Ll(){var e=_a()||qE;return e}function ee(e,A){return Iq(e,_({defaultTheme:qE},A))}const Bq="https://viv-demo.storage.googleapis.com",Eq=[{path:"Vanderbilt-Spraggins-Kidney-MxIF.ome.tif",description:"OME-TIFF Kidney mxIF"},{path:"12448_G1HR_Mesh003.ome.tif",description:"OME-TIFF Covid-19 Primary Gut Epithelial Stem Cells"},{path:"LuCa-7color_Scan1/",description:"Perkin Elmer LuCa-7color_Scan1.qptiff"},{path:"LuCa-7color_3x3component_data.ome.tif",description:"Perkin Elmer LuCa-7color_3x3component_data.qptiff"},{path:"2018-12-18_ASY_H2B_bud_05_3D_8_angles.ome.tif",description:"idr0077"},{path:"brain.pyramid.ome.tif",description:"idr0085"},{path:"idr0106.pyramid.ome.tif",description:"idr0106"}];var Zv=Eq.map(e=>({urlOrFile:`${Bq}/${e.path}`,description:e.description}));function uq(e){let A;const t=new Set,i=(g,I)=>{const l=typeof g=="function"?g(A):g;if(l!==A){const c=A;A=I?l:Object.assign({},A,l),t.forEach(C=>C(A,c))}},n=()=>A,r=(g,I=n,l=Object.is)=>{console.warn("[DEPRECATED] Please use `subscribeWithSelector` middleware");let c=I(A);function C(){const B=I(A);if(!l(c,B)){const u=c;g(c=B,u)}}return t.add(C),()=>t.delete(C)},a={setState:i,getState:n,subscribe:(g,I,l)=>I||l?r(g,I,l):(t.add(g),()=>t.delete(g)),destroy:()=>t.clear()};return A=e(i,n,a),a}const hq=typeof window=="undefined"||!window.navigator||/ServerSideRendering|^Deno\//.test(window.navigator.userAgent),$v=hq?p.exports.useEffect:p.exports.useLayoutEffect;function Fp(e){const A=typeof e=="function"?uq(e):e,t=(i=A.getState,n=Object.is)=>{const[,r]=p.exports.useReducer(E=>E+1,0),o=A.getState(),s=p.exports.useRef(o),a=p.exports.useRef(i),g=p.exports.useRef(n),I=p.exports.useRef(!1),l=p.exports.useRef();l.current===void 0&&(l.current=i(o));let c,C=!1;(s.current!==o||a.current!==i||g.current!==n||I.current)&&(c=i(o),C=!n(l.current,c)),$v(()=>{C&&(l.current=c),s.current=o,a.current=i,g.current=n,I.current=!1});const B=p.exports.useRef(o);$v(()=>{const E=()=>{try{const f=A.getState(),Q=a.current(f);g.current(l.current,Q)||(s.current=f,l.current=Q,r())}catch{I.current=!0,r()}},h=A.subscribe(E);return A.getState()!==B.current&&E(),h},[]);const u=C?c:l.current;return p.exports.useDebugValue(u),u};return Object.assign(t,A),t[Symbol.iterator]=function(){console.warn("[useStore, api] = create() is deprecated and will be removed in v4");const i=[t,A];return{next(){const n=i.length<=0;return{value:i.shift(),done:n}}}},t}function xB(e,A){if(!e)throw new Error(A||"loader assertion failed.")}const Np=Boolean(typeof process!="object"||String(process)!=="[object process]"||process.browser),AS=typeof process!="undefined"&&process.version&&/v([0-9]*)/.exec(process.version);AS&&parseFloat(AS[1]);const fq="3.2.7";function Un(e,A){if(!e)throw new Error(A||"loaders.gl assertion failed.")}const zQ=typeof process!="object"||String(process)!=="[object process]"||process.browser,Qq=typeof window!="undefined"&&typeof window.orientation!="undefined",eS=typeof process!="undefined"&&process.version&&/v([0-9]*)/.exec(process.version);eS&&parseFloat(eS[1]);class dq{constructor(A,t){y(this,"name",void 0),y(this,"workerThread",void 0),y(this,"isRunning",!0),y(this,"result",void 0),y(this,"_resolve",()=>{}),y(this,"_reject",()=>{}),this.name=A,this.workerThread=t,this.result=new Promise((i,n)=>{this._resolve=i,this._reject=n})}postMessage(A,t){this.workerThread.postMessage({source:"loaders.gl",type:A,payload:t})}done(A){Un(this.isRunning),this.isRunning=!1,this._resolve(A)}error(A){Un(this.isRunning),this.isRunning=!1,this._reject(A)}}class xh{}const Fh=new Map;function pq(e){Un(e.source&&!e.url||!e.source&&e.url);let A=Fh.get(e.source||e.url);return A||(e.url&&(A=yq(e.url),Fh.set(e.url,A)),e.source&&(A=W2(e.source),Fh.set(e.source,A))),Un(A),A}function yq(e){if(!e.startsWith("http"))return e;const A=mq(e);return W2(A)}function W2(e){const A=new Blob([e],{type:"application/javascript"});return URL.createObjectURL(A)}function mq(e){return`try { importScripts('`.concat(e,`'); } catch (error) { console.error(error); throw error; -}`)}function K2(e,A=!0,t){const i=t||new Set;if(e){if(eS(e))i.add(e);else if(eS(e.buffer))i.add(e.buffer);else if(!ArrayBuffer.isView(e)){if(A&&typeof e=="object")for(const n in e)K2(e[n],A,i)}}return t===void 0?Array.from(i):[]}function eS(e){return e?e instanceof ArrayBuffer||typeof MessagePort!="undefined"&&e instanceof MessagePort||typeof ImageBitmap!="undefined"&&e instanceof ImageBitmap||typeof OffscreenCanvas!="undefined"&&e instanceof OffscreenCanvas:!1}const Nh=()=>{};class zQ{static isSupported(){return typeof Worker!="undefined"&&WQ||typeof xh!==void 0}constructor(A){y(this,"name",void 0),y(this,"source",void 0),y(this,"url",void 0),y(this,"terminated",!1),y(this,"worker",void 0),y(this,"onMessage",void 0),y(this,"onError",void 0),y(this,"_loadableURL","");const{name:t,source:i,url:n}=A;Un(i||n),this.name=t,this.source=i,this.url=n,this.onMessage=Nh,this.onError=r=>console.log(r),this.worker=WQ?this._createBrowserWorker():this._createNodeWorker()}destroy(){this.onMessage=Nh,this.onError=Nh,this.worker.terminate(),this.terminated=!0}get isRunning(){return Boolean(this.onMessage)}postMessage(A,t){t=t||K2(A),this.worker.postMessage(A,t)}_getErrorFromErrorEvent(A){let t="Failed to load ";return t+="worker ".concat(this.name," from ").concat(this.url,". "),A.message&&(t+="".concat(A.message," in ")),A.lineno&&(t+=":".concat(A.lineno,":").concat(A.colno)),new Error(t)}_createBrowserWorker(){this._loadableURL=fq({source:this.source,url:this.url});const A=new Worker(this._loadableURL,{name:this.name});return A.onmessage=t=>{t.data?this.onMessage(t.data):this.onError(new Error("No data received"))},A.onerror=t=>{this.onError(this._getErrorFromErrorEvent(t)),this.terminated=!0},A.onmessageerror=t=>console.error(t),A}_createNodeWorker(){let A;if(this.url){const i=this.url.includes(":/")||this.url.startsWith("/")?this.url:"./".concat(this.url);A=new xh(i,{eval:!1})}else if(this.source)A=new xh(this.source,{eval:!0});else throw new Error("no worker");return A.on("message",t=>{this.onMessage(t)}),A.on("error",t=>{this.onError(t)}),A.on("exit",t=>{}),A}}class pq{static isSupported(){return zQ.isSupported()}constructor(A){y(this,"name","unnamed"),y(this,"source",void 0),y(this,"url",void 0),y(this,"maxConcurrency",1),y(this,"maxMobileConcurrency",1),y(this,"onDebug",()=>{}),y(this,"reuseWorkers",!0),y(this,"props",{}),y(this,"jobQueue",[]),y(this,"idleQueue",[]),y(this,"count",0),y(this,"isDestroyed",!1),this.source=A.source,this.url=A.url,this.setProps(A)}destroy(){this.idleQueue.forEach(A=>A.destroy()),this.isDestroyed=!0}setProps(A){this.props={...this.props,...A},A.name!==void 0&&(this.name=A.name),A.maxConcurrency!==void 0&&(this.maxConcurrency=A.maxConcurrency),A.maxMobileConcurrency!==void 0&&(this.maxMobileConcurrency=A.maxMobileConcurrency),A.reuseWorkers!==void 0&&(this.reuseWorkers=A.reuseWorkers),A.onDebug!==void 0&&(this.onDebug=A.onDebug)}async startJob(A,t=(n,r,o)=>n.done(o),i=(n,r)=>n.error(r)){const n=new Promise(r=>(this.jobQueue.push({name:A,onMessage:t,onError:i,onStart:r}),this));return this._startQueuedJob(),await n}async _startQueuedJob(){if(!this.jobQueue.length)return;const A=this._getAvailableWorker();if(!A)return;const t=this.jobQueue.shift();if(t){this.onDebug({message:"Starting job",name:t.name,workerThread:A,backlog:this.jobQueue.length});const i=new hq(t.name,A);A.onMessage=n=>t.onMessage(i,n.type,n.payload),A.onError=n=>t.onError(i,n),t.onStart(i);try{await i.result}finally{this.returnWorkerToQueue(A)}}}returnWorkerToQueue(A){this.isDestroyed||!this.reuseWorkers||this.count>this._getMaxConcurrency()?(A.destroy(),this.count--):this.idleQueue.push(A),this.isDestroyed||this._startQueuedJob()}_getAvailableWorker(){if(this.idleQueue.length>0)return this.idleQueue.shift()||null;if(this.count{}};class Fn{static isSupported(){return zQ.isSupported()}static getWorkerFarm(A={}){return Fn._workerFarm=Fn._workerFarm||new Fn({}),Fn._workerFarm.setProps(A),Fn._workerFarm}constructor(A){y(this,"props",void 0),y(this,"workerPools",new Map),this.props={...yq},this.setProps(A),this.workerPools=new Map}destroy(){for(const A of this.workerPools.values())A.destroy();this.workerPools=new Map}setProps(A){this.props={...this.props,...A};for(const t of this.workerPools.values())t.setProps(this._getWorkerPoolProps())}getWorkerPool(A){const{name:t,source:i,url:n}=A;let r=this.workerPools.get(t);return r||(r=new pq({name:t,source:i,url:n}),r.setProps(this._getWorkerPoolProps()),this.workerPools.set(t,r)),r}_getWorkerPoolProps(){return{maxConcurrency:this.props.maxConcurrency,maxMobileConcurrency:this.props.maxMobileConcurrency,reuseWorkers:this.props.reuseWorkers,onDebug:this.props.onDebug}}}y(Fn,"_workerFarm",void 0);const mq="latest";function wq(e,A={}){const t=A[e.id]||{},i="".concat(e.id,"-worker.js");let n=t.workerUrl;if(!n&&e.id==="compression"&&(n=A.workerUrl),A._workerType==="test"&&(n="modules/".concat(e.module,"/dist/").concat(i)),!n){let r=e.version;r==="latest"&&(r=mq);const o=r?"@".concat(r):"";n="https://unpkg.com/@loaders.gl/".concat(e.module).concat(o,"/dist/").concat(i)}return Un(n),n}function vq(e,A=Eq){Un(e,"no worker provided");const t=e.version;return!(!A||!t)}var na={};function Sq(e,A){return!Fn.isSupported()||!WQ&&!(A!=null&&A._nodeWorkers)?!1:e.worker&&(A==null?void 0:A.worker)}async function Dq(e,A,t,i,n){const r=e.id,o=wq(e,t),a=Fn.getWorkerFarm(t).getWorkerPool({name:r,url:o});t=JSON.parse(JSON.stringify(t)),i=JSON.parse(JSON.stringify(i||{}));const g=await a.startJob("process-on-worker",Rq.bind(null,n));return g.postMessage("process",{input:A,options:t,context:i}),await(await g.result).result}async function Rq(e,A,t,i){switch(t){case"done":A.done(i);break;case"error":A.error(new Error(i.error));break;case"process":const{id:n,input:r,options:o}=i;try{const s=await e(r,o);A.postMessage("done",{id:n,result:s})}catch(s){const a=s instanceof Error?s.message:"unknown error";A.postMessage("error",{id:n,error:a})}break;default:console.warn("parse-with-worker unknown message ".concat(t))}}function V2(e){return e&&typeof e=="object"&&e.isBuffer}function xq(e){return V2(e)?new Uint8Array(e.buffer,e.byteOffset,e.length).slice().buffer:e}function W2(e){if(V2(e))return xq(e);if(e instanceof ArrayBuffer)return e;if(ArrayBuffer.isView(e))return e.byteOffset===0&&e.byteLength===e.buffer.byteLength?e.buffer:e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength);if(typeof e=="string"){const A=e;return new TextEncoder().encode(A).buffer}if(e&&typeof e=="object"&&e._toArrayBuffer)return e._toArrayBuffer();throw new Error("toArrayBuffer")}function Fq(e,A,t){if(t=t||e.byteLength,e.byteLengthr instanceof ArrayBuffer?new Uint8Array(r):r),t=A.reduce((r,o)=>r+o.byteLength,0),i=new Uint8Array(t);let n=0;for(const r of A)i.set(r,n),n+=r.byteLength;return i.buffer}async function Lq(e){const A=[];for await(const t of e)A.push(t);return Nq(...A)}function tS(){let e;if(typeof window!="undefined"&&window.performance)e=window.performance.now();else if(typeof process!="undefined"&&process.hrtime){const A=process.hrtime();e=A[0]*1e3+A[1]/1e6}else e=Date.now();return e}class iS{constructor(A,t){y(this,"name",void 0),y(this,"type",void 0),y(this,"sampleSize",1),y(this,"time",void 0),y(this,"count",void 0),y(this,"samples",void 0),y(this,"lastTiming",void 0),y(this,"lastSampleTime",void 0),y(this,"lastSampleCount",void 0),y(this,"_count",0),y(this,"_time",0),y(this,"_samples",0),y(this,"_startTime",0),y(this,"_timerPending",!1),this.name=A,this.type=t,this.reset()}setSampleSize(A){return this.sampleSize=A,this}incrementCount(){return this.addCount(1),this}decrementCount(){return this.subtractCount(1),this}addCount(A){return this._count+=A,this._samples++,this._checkSampling(),this}subtractCount(A){return this._count-=A,this._samples++,this._checkSampling(),this}addTime(A){return this._time+=A,this.lastTiming=A,this._samples++,this._checkSampling(),this}timeStart(){return this._startTime=tS(),this._timerPending=!0,this}timeEnd(){return this._timerPending?(this.addTime(tS()-this._startTime),this._timerPending=!1,this._checkSampling(),this):this}getSampleAverageCount(){return this.sampleSize>0?this.lastSampleCount/this.sampleSize:0}getSampleAverageTime(){return this.sampleSize>0?this.lastSampleTime/this.sampleSize:0}getSampleHz(){return this.lastSampleTime>0?this.sampleSize/(this.lastSampleTime/1e3):0}getAverageCount(){return this.samples>0?this.count/this.samples:0}getAverageTime(){return this.samples>0?this.time/this.samples:0}getHz(){return this.time>0?this.samples/(this.time/1e3):0}reset(){return this.time=0,this.count=0,this.samples=0,this.lastTiming=0,this.lastSampleTime=0,this.lastSampleCount=0,this._count=0,this._time=0,this._samples=0,this._startTime=0,this._timerPending=!1,this}_checkSampling(){this._samples===this.sampleSize&&(this.lastSampleTime=this._time,this.lastSampleCount=this._count,this.count+=this._count,this.time+=this._time,this.samples+=this._samples,this._time=0,this._count=0,this._samples=0)}}class JE{constructor(A){y(this,"id",void 0),y(this,"stats",{}),this.id=A.id,this.stats={},this._initializeStats(A.stats),Object.seal(this)}get(A){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"count";return this._getOrCreate({name:A,type:t})}get size(){return Object.keys(this.stats).length}reset(){for(const A in this.stats)this.stats[A].reset();return this}forEach(A){for(const t in this.stats)A(this.stats[t])}getTable(){const A={};return this.forEach(t=>{A[t.name]={time:t.time||0,count:t.count||0,average:t.getAverageTime()||0,hz:t.getHz()||0}}),A}_initializeStats(){(arguments.length>0&&arguments[0]!==void 0?arguments[0]:[]).forEach(t=>this._getOrCreate(t))}_getOrCreate(A){if(!A||!A.name)return null;const{name:t,type:i}=A;return this.stats[t]||(A instanceof iS?this.stats[t]=A:this.stats[t]=new iS(t,i)),this.stats[t]}}const bq="Queued Requests",Gq="Active Requests",_q="Cancelled Requests",Mq="Queued Requests Ever",kq="Active Requests Ever",Tq={id:"request-scheduler",throttleRequests:!0,maxRequests:6};class Uq{constructor(A={}){y(this,"props",void 0),y(this,"stats",void 0),y(this,"activeRequestCount",0),y(this,"requestQueue",[]),y(this,"requestMap",new Map),y(this,"deferredUpdate",null),this.props={...Tq,...A},this.stats=new JE({id:this.props.id}),this.stats.get(bq),this.stats.get(Gq),this.stats.get(_q),this.stats.get(Mq),this.stats.get(kq)}scheduleRequest(A,t=()=>0){if(!this.props.throttleRequests)return Promise.resolve({done:()=>{}});if(this.requestMap.has(A))return this.requestMap.get(A);const i={handle:A,priority:0,getPriority:t},n=new Promise(r=>(i.resolve=r,i));return this.requestQueue.push(i),this.requestMap.set(A,n),this._issueNewRequests(),n}_issueRequest(A){const{handle:t,resolve:i}=A;let n=!1;const r=()=>{n||(n=!0,this.requestMap.delete(t),this.activeRequestCount--,this._issueNewRequests())};return this.activeRequestCount++,i?i({done:r}):Promise.resolve({done:r})}_issueNewRequests(){this.deferredUpdate||(this.deferredUpdate=setTimeout(()=>this._issueNewRequestsAsync(),0))}_issueNewRequestsAsync(){this.deferredUpdate=null;const A=Math.max(this.props.maxRequests-this.activeRequestCount,0);if(A!==0){this._updateAllRequests();for(let t=0;tt.priority-i.priority)}_updateRequest(A){return A.priority=A.getPriority(A.handle),A.priority<0?(A.resolve(null),!1):!0}}let Pq="";const nS={};function Hq(e){for(const A in nS)if(e.startsWith(A)){const t=nS[A];e=e.replace(A,t)}return!e.startsWith("http://")&&!e.startsWith("https://")&&(e="".concat(Pq).concat(e)),e}function qq(e){const A=e&&e.lastIndexOf("/");return A>=0?e.substr(A+1):""}const Jq=e=>typeof e=="boolean",cI=e=>typeof e=="function",bl=e=>e!==null&&typeof e=="object",rS=e=>bl(e)&&e.constructor==={}.constructor,Oq=e=>e&&typeof e[Symbol.iterator]=="function",Yq=e=>e&&typeof e[Symbol.asyncIterator]=="function",ka=e=>typeof Response!="undefined"&&e instanceof Response||e&&e.arrayBuffer&&e.text&&e.json,Ta=e=>typeof Blob!="undefined"&&e instanceof Blob,Kq=e=>e&&typeof e=="object"&&e.isBuffer,Vq=e=>typeof ReadableStream!="undefined"&&e instanceof ReadableStream||bl(e)&&cI(e.tee)&&cI(e.cancel)&&cI(e.getReader),Wq=e=>bl(e)&&cI(e.read)&&cI(e.pipe)&&Jq(e.readable),z2=e=>Vq(e)||Wq(e),zq=/^data:([-\w.]+\/[-\w.+]+)(;|,)/,jq=/^([-\w.]+\/[-\w.+]+)/;function Xq(e){const A=jq.exec(e);return A?A[1]:e}function oS(e){const A=zq.exec(e);return A?A[1]:""}const Zq=/\?.*/;function OE(e){if(ka(e)){const A=Lh(e.url||""),t=e.headers.get("content-type")||"";return{url:A,type:Xq(t)||oS(A)}}return Ta(e)?{url:Lh(e.name||""),type:e.type||""}:typeof e=="string"?{url:Lh(e),type:oS(e)}:{url:"",type:""}}function $q(e){return ka(e)?e.headers["content-length"]||-1:Ta(e)?e.size:typeof e=="string"?e.length:e instanceof ArrayBuffer||ArrayBuffer.isView(e)?e.byteLength:-1}function Lh(e){return e.replace(Zq,"")}async function j2(e){if(ka(e))return e;const A={},t=$q(e);t>=0&&(A["content-length"]=String(t));const{url:i,type:n}=OE(e);n&&(A["content-type"]=n);const r=await tJ(e);r&&(A["x-first-bytes"]=r),typeof e=="string"&&(e=new TextEncoder().encode(e));const o=new Response(e,{headers:A});return Object.defineProperty(o,"url",{value:i}),o}async function AJ(e){if(!e.ok){const A=await eJ(e);throw new Error(A)}}async function eJ(e){let A="Failed to fetch resource ".concat(e.url," (").concat(e.status,"): ");try{const t=e.headers.get("Content-Type");let i=e.statusText;t.includes("application/json")&&(i+=" ".concat(await e.text())),A+=i,A=A.length>60?"".concat(A.slice(0,60),"..."):A}catch{}return A}async function tJ(e){if(typeof e=="string")return"data:,".concat(e.slice(0,5));if(e instanceof Blob){const t=e.slice(0,5);return await new Promise(i=>{const n=new FileReader;n.onload=r=>{var o;return i(r==null||(o=r.target)===null||o===void 0?void 0:o.result)},n.readAsDataURL(t)})}if(e instanceof ArrayBuffer){const t=e.slice(0,5),i=iJ(t);return"data:base64,".concat(i)}return null}function iJ(e){let A="";const t=new Uint8Array(e);for(let i=0;i=0)}function Kn(){return!(typeof process=="object"&&String(process)==="[object process]"&&!process.browser)||X2()}const NC={self:typeof self!="undefined"&&self,window:typeof window!="undefined"&&window,global:typeof global!="undefined"&&global,document:typeof document!="undefined"&&document,process:typeof process=="object"&&process},wc=NC.window||NC.self||NC.global,pg=NC.process||{},Z2=typeof __VERSION__!="undefined"?__VERSION__:"untranspiled source";Kn();const bh=globalThis;function $2(e){if(!e&&!Kn())return"Node";if(X2(e))return"Electron";const t=e||(typeof navigator!="undefined"?navigator:{}).userAgent||"";if(t.indexOf("Edge")>-1)return"Edge";const i=t.indexOf("MSIE ")!==-1,n=t.indexOf("Trident/")!==-1;return i||n?"IE":bh.chrome?"Chrome":bh.safari?"Safari":bh.mozInnerScreenX?"Firefox":"Unknown"}function nJ(e){try{const A=window[e],t="__storage_test__";return A.setItem(t,t),A.removeItem(t),A}catch{return null}}class rJ{constructor(A){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"sessionStorage";y(this,"storage",void 0),y(this,"id",void 0),y(this,"config",{}),this.storage=nJ(i),this.id=A,this.config={},Object.assign(this.config,t),this._loadConfiguration()}getConfiguration(){return this.config}setConfiguration(A){return this.config={},this.updateConfiguration(A)}updateConfiguration(A){if(Object.assign(this.config,A),this.storage){const t=JSON.stringify(this.config);this.storage.setItem(this.id,t)}return this}_loadConfiguration(){let A={};if(this.storage){const t=this.storage.getItem(this.id);A=t?JSON.parse(t):{}}return Object.assign(this.config,A),this}}function oJ(e){let A;return e<10?A="".concat(e.toFixed(2),"ms"):e<100?A="".concat(e.toFixed(1),"ms"):e<1e3?A="".concat(e.toFixed(0),"ms"):A="".concat((e/1e3).toFixed(2),"s"),A}function sJ(e){let A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:8;const t=Math.max(A-e.length,0);return"".concat(" ".repeat(t)).concat(e)}function Gh(e,A,t){let i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:600;const n=e.src.replace(/\(/g,"%28").replace(/\)/g,"%29");e.width>i&&(t=Math.min(t,i/e.width));const r=e.width*t,o=e.height*t,s=["font-size:1px;","padding:".concat(Math.floor(o/2),"px ").concat(Math.floor(r/2),"px;"),"line-height:".concat(o,"px;"),"background:url(".concat(n,");"),"background-size:".concat(r,"px ").concat(o,"px;"),"color:transparent;"].join("");return["".concat(A," %c+"),s]}let FB;(function(e){e[e.BLACK=30]="BLACK",e[e.RED=31]="RED",e[e.GREEN=32]="GREEN",e[e.YELLOW=33]="YELLOW",e[e.BLUE=34]="BLUE",e[e.MAGENTA=35]="MAGENTA",e[e.CYAN=36]="CYAN",e[e.WHITE=37]="WHITE",e[e.BRIGHT_BLACK=90]="BRIGHT_BLACK",e[e.BRIGHT_RED=91]="BRIGHT_RED",e[e.BRIGHT_GREEN=92]="BRIGHT_GREEN",e[e.BRIGHT_YELLOW=93]="BRIGHT_YELLOW",e[e.BRIGHT_BLUE=94]="BRIGHT_BLUE",e[e.BRIGHT_MAGENTA=95]="BRIGHT_MAGENTA",e[e.BRIGHT_CYAN=96]="BRIGHT_CYAN",e[e.BRIGHT_WHITE=97]="BRIGHT_WHITE"})(FB||(FB={}));function aS(e){return typeof e=="string"?FB[e.toUpperCase()]||FB.WHITE:e}function aJ(e,A,t){return!Kn&&typeof e=="string"&&(A&&(A=aS(A),e="\x1B[".concat(A,"m").concat(e,"\x1B[39m")),t&&(A=aS(t),e="\x1B[".concat(t+10,"m").concat(e,"\x1B[49m"))),e}function gJ(e){let A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:["constructor"];const t=Object.getPrototypeOf(e),i=Object.getOwnPropertyNames(t);for(const n of i)typeof e[n]=="function"&&(A.find(r=>n===r)||(e[n]=e[n].bind(e)))}function NB(e,A){if(!e)throw new Error(A||"Assertion failed")}function hs(){let e;if(Kn&&"performance"in wc){var A,t;e=wc==null||(A=wc.performance)===null||A===void 0||(t=A.now)===null||t===void 0?void 0:t.call(A)}else if("hrtime"in pg){var i;const n=pg==null||(i=pg.hrtime)===null||i===void 0?void 0:i.call(pg);e=n[0]*1e3+n[1]/1e6}else e=Date.now();return e}const fs={debug:Kn&&console.debug||console.log,log:console.log,info:console.info,warn:console.warn,error:console.error},IJ={enabled:!0,level:0};function li(){}const gS={},IS={once:!0};class Gl{constructor(){let{id:A}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{id:""};y(this,"id",void 0),y(this,"VERSION",Z2),y(this,"_startTs",hs()),y(this,"_deltaTs",hs()),y(this,"_storage",void 0),y(this,"userData",{}),y(this,"LOG_THROTTLE_TIMEOUT",0),this.id=A,this._storage=new rJ("__probe-".concat(this.id,"__"),IJ),this.userData={},this.timeStamp("".concat(this.id," started")),gJ(this),Object.seal(this)}set level(A){this.setLevel(A)}get level(){return this.getLevel()}isEnabled(){return this._storage.config.enabled}getLevel(){return this._storage.config.level}getTotal(){return Number((hs()-this._startTs).toPrecision(10))}getDelta(){return Number((hs()-this._deltaTs).toPrecision(10))}set priority(A){this.level=A}get priority(){return this.level}getPriority(){return this.level}enable(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;return this._storage.updateConfiguration({enabled:A}),this}setLevel(A){return this._storage.updateConfiguration({level:A}),this}get(A){return this._storage.config[A]}set(A,t){this._storage.updateConfiguration({[A]:t})}settings(){console.table?console.table(this._storage.config):console.log(this._storage.config)}assert(A,t){NB(A,t)}warn(A){return this._getLogFunction(0,A,fs.warn,arguments,IS)}error(A){return this._getLogFunction(0,A,fs.error,arguments)}deprecated(A,t){return this.warn("`".concat(A,"` is deprecated and will be removed in a later version. Use `").concat(t,"` instead"))}removed(A,t){return this.error("`".concat(A,"` has been removed. Use `").concat(t,"` instead"))}probe(A,t){return this._getLogFunction(A,t,fs.log,arguments,{time:!0,once:!0})}log(A,t){return this._getLogFunction(A,t,fs.debug,arguments)}info(A,t){return this._getLogFunction(A,t,console.info,arguments)}once(A,t){for(var i=arguments.length,n=new Array(i>2?i-2:0),r=2;r2&&arguments[2]!==void 0?arguments[2]:{collapsed:!1};const n=lS({logLevel:A,message:t,opts:i}),{collapsed:r}=i;return n.method=(r?console.groupCollapsed:console.group)||console.info,this._getLogFunction(n)}groupCollapsed(A,t){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return this.group(A,t,Object.assign({},i,{collapsed:!0}))}groupEnd(A){return this._getLogFunction(A,"",console.groupEnd||li)}withGroup(A,t,i){this.group(A,t)();try{i()}finally{this.groupEnd(A)()}}trace(){console.trace&&console.trace()}_shouldLog(A){return this.isEnabled()&&this.getLevel()>=AL(A)}_getLogFunction(A,t,i,n,r){if(this._shouldLog(A)){r=lS({logLevel:A,message:t,args:n,opts:r}),i=i||r.method,NB(i),r.total=this.getTotal(),r.delta=this.getDelta(),this._deltaTs=hs();const o=r.tag||r.message;if(r.once)if(!gS[o])gS[o]=hs();else return li;return t=lJ(this.id,r.message,r),i.bind(console,t,...r.args)}return li}}y(Gl,"VERSION",Z2);function AL(e){if(!e)return 0;let A;switch(typeof e){case"number":A=e;break;case"object":A=e.logLevel||e.priority||0;break;default:return 0}return NB(Number.isFinite(A)&&A>=0),A}function lS(e){const{logLevel:A,message:t}=e;e.logLevel=AL(A);const i=e.args?Array.from(e.args):[];for(;i.length&&i.shift()!==t;);switch(typeof A){case"string":case"function":t!==void 0&&i.unshift(t),e.message=A;break;case"object":Object.assign(e,A);break}typeof e.message=="function"&&(e.message=e.message());const n=typeof e.message;return NB(n==="string"||n==="object"),Object.assign(e,{args:i},e.opts)}function lJ(e,A,t){if(typeof A=="string"){const i=t.time?sJ(oJ(t.total)):"";A=t.time?"".concat(e,": ").concat(i," ").concat(A):"".concat(e,": ").concat(A),A=aJ(A,t.color,t.background)}return A}function cJ(e){let{image:A,message:t="",scale:i=1}=e;return(void 0)({image:A,message:t,scale:i}),li}function CJ(e){let{image:A,message:t="",scale:i=1}=e;if(typeof A=="string"){const r=new Image;return r.onload=()=>{const o=Gh(r,t,i);console.log(...o)},r.src=A,li}const n=A.nodeName||"";if(n.toLowerCase()==="img")return console.log(...Gh(A,t,i)),li;if(n.toLowerCase()==="canvas"){const r=new Image;return r.onload=()=>console.log(...Gh(r,t,i)),r.src=A.toDataURL(),li}return li}function BJ(e){for(const A in e)for(const t in e[A])return t||"untitled";return"empty"}const cS=new Gl({id:"loaders.gl"});class EJ{log(){return()=>{}}info(){return()=>{}}warn(){return()=>{}}error(){return()=>{}}}class uJ{constructor(){y(this,"console",void 0),this.console=console}log(...A){return this.console.log.bind(this.console,...A)}info(...A){return this.console.info.bind(this.console,...A)}warn(...A){return this.console.warn.bind(this.console,...A)}error(...A){return this.console.error.bind(this.console,...A)}}const eL={fetch:null,mimeType:void 0,nothrow:!1,log:new uJ,CDN:"https://unpkg.com/@loaders.gl",worker:!0,maxConcurrency:3,maxMobileConcurrency:1,reuseWorkers:Fp,_nodeWorkers:!1,_workerType:"",limit:0,_limitMB:0,batchSize:"auto",batchDebounceMs:0,metadata:!1,transforms:[]},hJ={throws:"nothrow",dataType:"(no longer used)",uri:"baseUri",method:"fetch.method",headers:"fetch.headers",body:"fetch.body",mode:"fetch.mode",credentials:"fetch.credentials",cache:"fetch.cache",redirect:"fetch.redirect",referrer:"fetch.referrer",referrerPolicy:"fetch.referrerPolicy",integrity:"fetch.integrity",keepalive:"fetch.keepalive",signal:"fetch.signal"};function tL(){globalThis.loaders=globalThis.loaders||{};const{loaders:e}=globalThis;return e._state=e._state||{},e._state}const iL=()=>{const e=tL();return e.globalOptions=e.globalOptions||{...eL},e.globalOptions};function fJ(e,A,t,i){return t=t||[],t=Array.isArray(t)?t:[t],QJ(e,t),pJ(A,e,i)}function nL(e,A){const t=iL(),i=e||t;return typeof i.fetch=="function"?i.fetch:bl(i.fetch)?n=>sS(n,i):A!=null&&A.fetch?A==null?void 0:A.fetch:sS}function QJ(e,A){CS(e,null,eL,hJ,A);for(const t of A){const i=e&&e[t.id]||{},n=t.options&&t.options[t.id]||{},r=t.deprecatedOptions&&t.deprecatedOptions[t.id]||{};CS(i,t.id,n,r,A)}}function CS(e,A,t,i,n){const r=A||"Top level",o=A?"".concat(A,"."):"";for(const s in e){const a=!A&&bl(e[s]),g=s==="baseUri"&&!A,I=s==="workerUrl"&&A;if(!(s in t)&&!g&&!I){if(s in i)cS.warn("".concat(r," loader option '").concat(o).concat(s,"' no longer supported, use '").concat(i[s],"'"))();else if(!a){const l=dJ(s,n);cS.warn("".concat(r," loader option '").concat(o).concat(s,"' not recognized. ").concat(l))()}}}}function dJ(e,A){const t=e.toLowerCase();let i="";for(const n of A)for(const r in n.options){if(e===r)return"Did you mean '".concat(n.id,".").concat(r,"'?");const o=r.toLowerCase();(t.startsWith(o)||o.startsWith(t))&&(i=i||"Did you mean '".concat(n.id,".").concat(r,"'?"))}return i}function pJ(e,A,t){const n={...e.options||{}};return yJ(n,t),n.log===null&&(n.log=new EJ),BS(n,iL()),BS(n,A),n}function BS(e,A){for(const t in A)if(t in A){const i=A[t];rS(i)&&rS(e[t])?e[t]={...e[t],...A[t]}:e[t]=A[t]}}function yJ(e,A){A&&!("baseUri"in e)&&(e.baseUri=A)}function Np(e){var A;return e?(Array.isArray(e)&&(e=e[0]),Array.isArray((A=e)===null||A===void 0?void 0:A.extensions)):!1}function Lp(e){var A,t;xB(e,"null loader"),xB(Np(e),"invalid loader");let i;return Array.isArray(e)&&(i=e[1],e=e[0],e={...e,options:{...e.options,...i}}),((A=e)!==null&&A!==void 0&&A.parseTextSync||(t=e)!==null&&t!==void 0&&t.parseText)&&(e.text=!0),e.text||(e.binary=!0),e}const rL=()=>{const e=tL();return e.loaderRegistry=e.loaderRegistry||[],e.loaderRegistry};function mJ(e){const A=rL();e=Array.isArray(e)?e:[e];for(const t of e){const i=Lp(t);A.find(n=>i===n)||A.unshift(i)}}function wJ(){return rL()}const vJ=new Gl({id:"loaders.gl"}),SJ=/\.([^.]+)$/;async function DJ(e,A=[],t,i){if(!oL(e))return null;let n=ES(e,A,{...t,nothrow:!0},i);if(n)return n;if(Ta(e)&&(e=await e.slice(0,10).arrayBuffer(),n=ES(e,A,t,i)),!n&&!(t!=null&&t.nothrow))throw new Error(sL(e));return n}function ES(e,A=[],t,i){if(!oL(e))return null;if(A&&!Array.isArray(A))return Lp(A);let n=[];A&&(n=n.concat(A)),t!=null&&t.ignoreRegisteredLoaders||n.push(...wJ()),xJ(n);const r=RJ(e,n,t,i);if(!r&&!(t!=null&&t.nothrow))throw new Error(sL(e));return r}function RJ(e,A,t,i){const{url:n,type:r}=OE(e),o=n||(i==null?void 0:i.url);let s=null,a="";if(t!=null&&t.mimeType&&(s=_h(A,t==null?void 0:t.mimeType),a="match forced by supplied MIME type ".concat(t==null?void 0:t.mimeType)),s=s||FJ(A,o),a=a||(s?"matched url ".concat(o):""),s=s||_h(A,r),a=a||(s?"matched MIME type ".concat(r):""),s=s||LJ(A,e),a=a||(s?"matched initial data ".concat(aL(e)):""),s=s||_h(A,t==null?void 0:t.fallbackMimeType),a=a||(s?"matched fallback MIME type ".concat(r):""),a){var g;vJ.log(1,"selectLoader selected ".concat((g=s)===null||g===void 0?void 0:g.name,": ").concat(a,"."))}return s}function oL(e){return!(e instanceof Response&&e.status===204)}function sL(e){const{url:A,type:t}=OE(e);let i="No valid loader found (";i+=A?"".concat(qq(A),", "):"no url provided, ",i+="MIME type: ".concat(t?'"'.concat(t,'"'):"not provided",", ");const n=e?aL(e):"";return i+=n?' first bytes: "'.concat(n,'"'):"first bytes: not available",i+=")",i}function xJ(e){for(const A of e)Lp(A)}function FJ(e,A){const t=A&&SJ.exec(A),i=t&&t[1];return i?NJ(e,i):null}function NJ(e,A){A=A.toLowerCase();for(const t of e)for(const i of t.extensions)if(i.toLowerCase()===A)return t;return null}function _h(e,A){for(const t of e)if(t.mimeTypes&&t.mimeTypes.includes(A)||A==="application/x.".concat(t.id))return t;return null}function LJ(e,A){if(!A)return null;for(const t of e)if(typeof A=="string"){if(bJ(A,t))return t}else if(ArrayBuffer.isView(A)){if(uS(A.buffer,A.byteOffset,t))return t}else if(A instanceof ArrayBuffer&&uS(A,0,t))return t;return null}function bJ(e,A){return A.testText?A.testText(e):(Array.isArray(A.tests)?A.tests:[A.tests]).some(i=>e.startsWith(i))}function uS(e,A,t){return(Array.isArray(t.tests)?t.tests:[t.tests]).some(n=>GJ(e,A,t,n))}function GJ(e,A,t,i){if(i instanceof ArrayBuffer)return Fq(i,e,i.byteLength);switch(typeof i){case"function":return i(e,t);case"string":const n=jQ(e,A,i.length);return i===n;default:return!1}}function aL(e,A=5){return typeof e=="string"?e.slice(0,A):ArrayBuffer.isView(e)?jQ(e.buffer,e.byteOffset,A):e instanceof ArrayBuffer?jQ(e,0,A):""}function jQ(e,A,t){if(e.byteLength{try{t.onload=()=>i(t),t.onerror=r=>n(new Error("Could not load image ".concat(e,": ").concat(r)))}catch(r){n(r)}})}const sO={};let fS=!0;async function aO(e,A,t){let i;Gp(t)?i=await lL(e,A,t):i=IL(e,t);const n=A&&A.imagebitmap;return await gO(i,n)}async function gO(e,A=null){if((IO(A)||!fS)&&(A=null),A)try{return await createImageBitmap(e,A)}catch(t){console.warn(t),fS=!1}return await createImageBitmap(e)}function IO(e){for(const A in e||sO)return!1;return!0}const An=!1,CI=!0;function cL(e){const A=_l(e);return lO(A)||BO(A)||cO(A)||CO(A)}function lO(e){const A=_l(e);return A.byteLength>=24&&A.getUint32(0,An)===2303741511?{mimeType:"image/png",width:A.getUint32(16,An),height:A.getUint32(20,An)}:null}function cO(e){const A=_l(e);return A.byteLength>=10&&A.getUint32(0,An)===1195984440?{mimeType:"image/gif",width:A.getUint16(6,CI),height:A.getUint16(8,CI)}:null}function CO(e){const A=_l(e);return A.byteLength>=14&&A.getUint16(0,An)===16973&&A.getUint32(2,CI)===A.byteLength?{mimeType:"image/bmp",width:A.getUint32(18,CI),height:A.getUint32(22,CI)}:null}function BO(e){const A=_l(e);if(!(A.byteLength>=3&&A.getUint16(0,An)===65496&&A.getUint8(2)===255))return null;const{tableMarkers:i,sofMarkers:n}=EO();let r=2;for(;r+9Boolean(cL(new DataView(e)))],options:pO};var Ae=new Gl({id:"deck"});let Ad={};function yO(e){Ad=e}function Rt(e,A,t,i){Ae.level>0&&Ad[e]&&Ad[e].call(null,A,t,i)}function mO(e){const A=e[0],t=e[e.length-1];return A==="{"&&t==="}"||A==="["&&t==="]"}var wO={id:"JSON",name:"JSON",module:"",version:"",options:{},extensions:["json","geojson"],mimeTypes:["application/json","application/geo+json"],testText:mO,parseTextSync:JSON.parse};const BI="8.8.9",LC=globalThis.deck&&globalThis.deck.VERSION;if(LC&&LC!==BI)throw new Error("deck.gl - multiple versions detected: ".concat(LC," vs ").concat(BI));LC||(Ae.log(1,"deck.gl ".concat(BI))(),globalThis.deck={...globalThis.deck,VERSION:BI,version:BI,log:Ae,_registerLoggers:yO},mJ([wO,[CL,{imagebitmap:{premultiplyAlpha:"none"}}]]));var vO=globalThis.deck;const DA=new Gl({id:"luma.gl"});function kt(e,A){if(!e)throw new Error(A||"luma.gl: assertion failed.")}const SO="Invalid WebGLRenderingContext",DO="Requires WebGL2";function YE(e){return typeof WebGLRenderingContext!="undefined"&&e instanceof WebGLRenderingContext||typeof WebGL2RenderingContext!="undefined"&&e instanceof WebGL2RenderingContext?!0:Boolean(e&&Number.isFinite(e._version))}function ie(e){return typeof WebGL2RenderingContext!="undefined"&&e instanceof WebGL2RenderingContext?!0:Boolean(e&&e._version===2)}function RO(e){return ie(e)?e:null}function KE(e){return kt(YE(e),SO),e}function Ft(e){return kt(ie(e),DO),e}const Og={};function xO(e){globalThis.console&&globalThis.console.error&&globalThis.console.error(e)}function FO(e){globalThis.console&&globalThis.console.log&&globalThis.console.log(e)}function NO(e,A){Og[e]=!0,A!==void 0&&xO(A)}function LO(e){const A=e.getError;e.getError=function(){let i;do i=A.apply(e),i!==0&&(Og[i]=!0);while(i!==0);for(i in Og)if(Og[i])return delete Og[i],parseInt(i,10);return 0}}const Ml=function e(A){const t=A.gl;this.ext=A,this.isAlive=!0,this.hasBeenBound=!1,this.elementArrayBuffer=null,this.attribs=new Array(A.maxVertexAttribs);for(let i=0;i{FO("OESVertexArrayObject emulation library context restored"),t.reset_()},!0),this.reset_()};rs.prototype.VERTEX_ARRAY_BINDING_OES=34229;rs.prototype.reset_=function(){if(this.vertexArrayObjects!==void 0)for(let i=0;iie(e)?void 0:0,JO={[3074]:e=>ie(e)?void 0:36064,[kO]:e=>ie(e)?void 0:TO,[35977]:Le,[32937]:Le,[UO]:(e,A)=>{const t=ie(e)?e.getExtension(_O):e.getExtension(GO);return t&&t.GPU_DISJOINT_EXT?A(t.GPU_DISJOINT_EXT):0},[HO]:(e,A)=>{const t=e.getExtension(pS);return A(t&&t.UNMASKED_VENDOR_WEBGL||7936)},[qO]:(e,A)=>{const t=e.getExtension(pS);return A(t&&t.UNMASKED_RENDERER_WEBGL||7937)},[PO]:(e,A)=>{const t=e.luma.extensions[MO];return t?A(t.MAX_TEXTURE_MAX_ANISOTROPY_EXT):1},[32883]:Le,[35071]:Le,[37447]:Le,[36063]:(e,A)=>{if(!ie(e)){const t=e.getExtension(dS);return t?A(t.MAX_COLOR_ATTACHMENTS_WEBGL):0}},[35379]:Le,[35374]:Le,[35377]:Le,[34852]:e=>{if(!ie(e)){const A=e.getExtension(dS);return A?A.MAX_DRAW_BUFFERS_WEBGL:0}},[36203]:e=>e.getExtension(QS)?2147483647:65535,[33001]:e=>e.getExtension(QS)?16777216:65535,[33e3]:e=>16777216,[37157]:Le,[35373]:Le,[35657]:Le,[36183]:Le,[37137]:Le,[34045]:Le,[35978]:Le,[35979]:Le,[35968]:Le,[35376]:Le,[35375]:Le,[35659]:Le,[37154]:Le,[35371]:Le,[35658]:Le,[35076]:Le,[35077]:Le,[35380]:Le};function OO(e,A,t){const i=JO[t],n=typeof i=="function"?i(e,A,t):i;return n!==void 0?n:A(t)}const YO="OES_vertex_array_object",BL="ANGLE_instanced_arrays",KO="WEBGL_draw_buffers",VO="EXT_disjoint_timer_query",WO="EXT_texture_filter_anisotropic",zO="VertexArray requires WebGL2 or OES_vertex_array_object extension";function jO(e,A){return{webgl2:ie(e),ext:e.getExtension(A)}}const EL={[YO]:{meta:{suffix:"OES"},createVertexArray:()=>{kt(!1,zO)},deleteVertexArray:()=>{},bindVertexArray:()=>{},isVertexArray:()=>!1},[BL]:{meta:{suffix:"ANGLE"},vertexAttribDivisor(e,A){kt(A===0,"WebGL instanced rendering not supported")},drawElementsInstanced:()=>{},drawArraysInstanced:()=>{}},[KO]:{meta:{suffix:"WEBGL"},drawBuffers:()=>{kt(!1)}},[VO]:{meta:{suffix:"EXT"},createQuery:()=>{kt(!1)},deleteQuery:()=>{kt(!1)},beginQuery:()=>{kt(!1)},endQuery:()=>{},getQuery(e,A){return this.getQueryObject(e,A)},getQueryParameter(e,A){return this.getQueryObject(e,A)},getQueryObject:()=>{}}},Mh={readBuffer:(e,A,t)=>{ie(e)&&A(t)},getVertexAttrib:(e,A,t,i)=>{const{webgl2:n,ext:r}=jO(e,BL);let o;switch(i){case 35069:o=n?void 0:!1;break;case 35070:o=!n&&!r?0:void 0;break}return o!==void 0?o:A(t,i)},getProgramParameter:(e,A,t,i)=>{if(!ie(e))switch(i){case 35967:return 35981;case 35971:return 0;case 35382:return 0}return A(t,i)},getInternalformatParameter:(e,A,t,i,n)=>{if(!ie(e))switch(n){case 32937:return new Int32Array([0])}return e.getInternalformatParameter(t,i,n)},getTexParameter(e,A,t,i){switch(i){case 34046:const{extensions:n}=e.luma,r=n[WO];i=r&&r.TEXTURE_MAX_ANISOTROPY_EXT||34046;break}return A(t,i)},getParameter:OO,hint(e,A,t,i){return A(t,i)}};function XO(e){e.luma=e.luma||{};const{luma:A}=e;return A.polyfilled||(bO(e),ZO(e),AY(e,EL),$O(e,{target:A,target2:e}),A.polyfilled=!0),e}globalThis.polyfillContext=XO;function ZO(e){e.luma.extensions={};const A=e.getSupportedExtensions()||[];for(const t of A)e.luma[t]=e.getExtension(t)}function $O(e,A){let{target:t,target2:i}=A;Object.keys(Mh).forEach(n=>{if(typeof Mh[n]=="function"){const r=e[n]?e[n].bind(e):()=>{},o=Mh[n].bind(null,e,r);t[n]=o,i[n]=o}})}function AY(e,A){for(const t of Object.getOwnPropertyNames(A))t!=="overrides"&&eY(e,{extension:t,target:e.luma,target2:e})}function eY(e,A){let{extension:t,target:i,target2:n}=A;const r=EL[t];kt(r);const{meta:o={}}=r,{suffix:s=""}=o,a=e.getExtension(t);for(const g of Object.keys(r)){const I="".concat(g).concat(s);let l=null;g==="meta"||typeof e[g]=="function"||(a&&typeof a[I]=="function"?l=function(){return a[I](...arguments)}:typeof r[g]=="function"&&(l=r[g].bind(i))),l&&(i[g]=l,n[g]=l)}}const _p={[3042]:!1,[32773]:new Float32Array([0,0,0,0]),[32777]:32774,[34877]:32774,[32969]:1,[32968]:0,[32971]:1,[32970]:0,[3106]:new Float32Array([0,0,0,0]),[3107]:[!0,!0,!0,!0],[2884]:!1,[2885]:1029,[2929]:!1,[2931]:1,[2932]:513,[2928]:new Float32Array([0,1]),[2930]:!0,[3024]:!0,[36006]:null,[2886]:2305,[33170]:4352,[2849]:1,[32823]:!1,[32824]:0,[10752]:0,[32938]:1,[32939]:!1,[3089]:!1,[3088]:new Int32Array([0,0,1024,1024]),[2960]:!1,[2961]:0,[2968]:4294967295,[36005]:4294967295,[2962]:519,[2967]:0,[2963]:4294967295,[34816]:519,[36003]:0,[36004]:4294967295,[2964]:7680,[2965]:7680,[2966]:7680,[34817]:7680,[34818]:7680,[34819]:7680,[2978]:[0,0,1024,1024],[3333]:4,[3317]:4,[37440]:!1,[37441]:!1,[37443]:37444,[35723]:4352,[36010]:null,[35977]:!1,[3330]:0,[3332]:0,[3331]:0,[3314]:0,[32878]:0,[3316]:0,[3315]:0,[32877]:0},nr=(e,A,t)=>A?e.enable(t):e.disable(t),yS=(e,A,t)=>e.hint(t,A),Xt=(e,A,t)=>e.pixelStorei(t,A),tY=(e,A)=>{const t=ie(e)?36009:36160;return e.bindFramebuffer(t,A)},iY=(e,A)=>e.bindFramebuffer(36008,A);function yg(e){return Array.isArray(e)||ArrayBuffer.isView(e)}const nY={[3042]:nr,[32773]:(e,A)=>e.blendColor(...A),[32777]:"blendEquation",[34877]:"blendEquation",[32969]:"blendFunc",[32968]:"blendFunc",[32971]:"blendFunc",[32970]:"blendFunc",[3106]:(e,A)=>e.clearColor(...A),[3107]:(e,A)=>e.colorMask(...A),[2884]:nr,[2885]:(e,A)=>e.cullFace(A),[2929]:nr,[2931]:(e,A)=>e.clearDepth(A),[2932]:(e,A)=>e.depthFunc(A),[2928]:(e,A)=>e.depthRange(...A),[2930]:(e,A)=>e.depthMask(A),[3024]:nr,[35723]:yS,[36006]:tY,[2886]:(e,A)=>e.frontFace(A),[33170]:yS,[2849]:(e,A)=>e.lineWidth(A),[32823]:nr,[32824]:"polygonOffset",[10752]:"polygonOffset",[35977]:nr,[32938]:"sampleCoverage",[32939]:"sampleCoverage",[3089]:nr,[3088]:(e,A)=>e.scissor(...A),[2960]:nr,[2961]:(e,A)=>e.clearStencil(A),[2968]:(e,A)=>e.stencilMaskSeparate(1028,A),[36005]:(e,A)=>e.stencilMaskSeparate(1029,A),[2962]:"stencilFuncFront",[2967]:"stencilFuncFront",[2963]:"stencilFuncFront",[34816]:"stencilFuncBack",[36003]:"stencilFuncBack",[36004]:"stencilFuncBack",[2964]:"stencilOpFront",[2965]:"stencilOpFront",[2966]:"stencilOpFront",[34817]:"stencilOpBack",[34818]:"stencilOpBack",[34819]:"stencilOpBack",[2978]:(e,A)=>e.viewport(...A),[3333]:Xt,[3317]:Xt,[37440]:Xt,[37441]:Xt,[37443]:Xt,[3330]:Xt,[3332]:Xt,[3331]:Xt,[36010]:iY,[3314]:Xt,[32878]:Xt,[3316]:Xt,[3315]:Xt,[32877]:Xt,framebuffer:(e,A)=>{const t=A&&"handle"in A?A.handle:A;return e.bindFramebuffer(36160,t)},blend:(e,A)=>A?e.enable(3042):e.disable(3042),blendColor:(e,A)=>e.blendColor(...A),blendEquation:(e,A)=>{A=yg(A)?A:[A,A],e.blendEquationSeparate(...A)},blendFunc:(e,A)=>{A=yg(A)&&A.length===2?[...A,...A]:A,e.blendFuncSeparate(...A)},clearColor:(e,A)=>e.clearColor(...A),clearDepth:(e,A)=>e.clearDepth(A),clearStencil:(e,A)=>e.clearStencil(A),colorMask:(e,A)=>e.colorMask(...A),cull:(e,A)=>A?e.enable(2884):e.disable(2884),cullFace:(e,A)=>e.cullFace(A),depthTest:(e,A)=>A?e.enable(2929):e.disable(2929),depthFunc:(e,A)=>e.depthFunc(A),depthMask:(e,A)=>e.depthMask(A),depthRange:(e,A)=>e.depthRange(...A),dither:(e,A)=>A?e.enable(3024):e.disable(3024),derivativeHint:(e,A)=>{e.hint(35723,A)},frontFace:(e,A)=>e.frontFace(A),mipmapHint:(e,A)=>e.hint(33170,A),lineWidth:(e,A)=>e.lineWidth(A),polygonOffsetFill:(e,A)=>A?e.enable(32823):e.disable(32823),polygonOffset:(e,A)=>e.polygonOffset(...A),sampleCoverage:(e,A)=>e.sampleCoverage(...A),scissorTest:(e,A)=>A?e.enable(3089):e.disable(3089),scissor:(e,A)=>e.scissor(...A),stencilTest:(e,A)=>A?e.enable(2960):e.disable(2960),stencilMask:(e,A)=>{A=yg(A)?A:[A,A];const[t,i]=A;e.stencilMaskSeparate(1028,t),e.stencilMaskSeparate(1029,i)},stencilFunc:(e,A)=>{A=yg(A)&&A.length===3?[...A,...A]:A;const[t,i,n,r,o,s]=A;e.stencilFuncSeparate(1028,t,i,n),e.stencilFuncSeparate(1029,r,o,s)},stencilOp:(e,A)=>{A=yg(A)&&A.length===3?[...A,...A]:A;const[t,i,n,r,o,s]=A;e.stencilOpSeparate(1028,t,i,n),e.stencilOpSeparate(1029,r,o,s)},viewport:(e,A)=>e.viewport(...A)};function Ke(e,A,t){return A[e]!==void 0?A[e]:t[e]}const rY={blendEquation:(e,A,t)=>e.blendEquationSeparate(Ke(32777,A,t),Ke(34877,A,t)),blendFunc:(e,A,t)=>e.blendFuncSeparate(Ke(32969,A,t),Ke(32968,A,t),Ke(32971,A,t),Ke(32970,A,t)),polygonOffset:(e,A,t)=>e.polygonOffset(Ke(32824,A,t),Ke(10752,A,t)),sampleCoverage:(e,A,t)=>e.sampleCoverage(Ke(32938,A,t),Ke(32939,A,t)),stencilFuncFront:(e,A,t)=>e.stencilFuncSeparate(1028,Ke(2962,A,t),Ke(2967,A,t),Ke(2963,A,t)),stencilFuncBack:(e,A,t)=>e.stencilFuncSeparate(1029,Ke(34816,A,t),Ke(36003,A,t),Ke(36004,A,t)),stencilOpFront:(e,A,t)=>e.stencilOpSeparate(1028,Ke(2964,A,t),Ke(2965,A,t),Ke(2966,A,t)),stencilOpBack:(e,A,t)=>e.stencilOpSeparate(1029,Ke(34817,A,t),Ke(34818,A,t),Ke(34819,A,t))},mS={enable:(e,A)=>e({[A]:!0}),disable:(e,A)=>e({[A]:!1}),pixelStorei:(e,A,t)=>e({[A]:t}),hint:(e,A,t)=>e({[A]:t}),bindFramebuffer:(e,A,t)=>{switch(A){case 36160:return e({[36006]:t,[36010]:t});case 36009:return e({[36006]:t});case 36008:return e({[36010]:t});default:return null}},blendColor:(e,A,t,i,n)=>e({[32773]:new Float32Array([A,t,i,n])}),blendEquation:(e,A)=>e({[32777]:A,[34877]:A}),blendEquationSeparate:(e,A,t)=>e({[32777]:A,[34877]:t}),blendFunc:(e,A,t)=>e({[32969]:A,[32968]:t,[32971]:A,[32970]:t}),blendFuncSeparate:(e,A,t,i,n)=>e({[32969]:A,[32968]:t,[32971]:i,[32970]:n}),clearColor:(e,A,t,i,n)=>e({[3106]:new Float32Array([A,t,i,n])}),clearDepth:(e,A)=>e({[2931]:A}),clearStencil:(e,A)=>e({[2961]:A}),colorMask:(e,A,t,i,n)=>e({[3107]:[A,t,i,n]}),cullFace:(e,A)=>e({[2885]:A}),depthFunc:(e,A)=>e({[2932]:A}),depthRange:(e,A,t)=>e({[2928]:new Float32Array([A,t])}),depthMask:(e,A)=>e({[2930]:A}),frontFace:(e,A)=>e({[2886]:A}),lineWidth:(e,A)=>e({[2849]:A}),polygonOffset:(e,A,t)=>e({[32824]:A,[10752]:t}),sampleCoverage:(e,A,t)=>e({[32938]:A,[32939]:t}),scissor:(e,A,t,i,n)=>e({[3088]:new Int32Array([A,t,i,n])}),stencilMask:(e,A)=>e({[2968]:A,[36005]:A}),stencilMaskSeparate:(e,A,t)=>e({[A===1028?2968:36005]:t}),stencilFunc:(e,A,t,i)=>e({[2962]:A,[2967]:t,[2963]:i,[34816]:A,[36003]:t,[36004]:i}),stencilFuncSeparate:(e,A,t,i,n)=>e({[A===1028?2962:34816]:t,[A===1028?2967:36003]:i,[A===1028?2963:36004]:n}),stencilOp:(e,A,t,i)=>e({[2964]:A,[2965]:t,[2966]:i,[34817]:A,[34818]:t,[34819]:i}),stencilOpSeparate:(e,A,t,i,n)=>e({[A===1028?2964:34817]:t,[A===1028?2965:34818]:i,[A===1028?2966:34819]:n}),viewport:(e,A,t,i,n)=>e({[2978]:[A,t,i,n]})},Oi=(e,A)=>e.isEnabled(A),wS={[3042]:Oi,[2884]:Oi,[2929]:Oi,[3024]:Oi,[32823]:Oi,[32926]:Oi,[32928]:Oi,[3089]:Oi,[2960]:Oi,[35977]:Oi};function uL(e){for(const A in e)return!1;return!0}function oY(e,A){if(e===A)return!0;const t=Array.isArray(e)||ArrayBuffer.isView(e),i=Array.isArray(A)||ArrayBuffer.isView(A);if(t&&i&&e.length===A.length){for(let n=0;n{}}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.gl=A,this.program=null,this.stateStack=[],this.enable=!0,this.cache=t?lY(A):Object.assign({},_p),this.log=i,this._updateCache=this._updateCache.bind(this),Object.seal(this)}push(){this.stateStack.push({})}pop(){kt(this.stateStack.length>0);const A=this.stateStack[this.stateStack.length-1];Pn(this.gl,A),this.stateStack.pop()}_updateCache(A){let t=!1,i;const n=this.stateStack.length>0&&this.stateStack[this.stateStack.length-1];for(const r in A){kt(r!==void 0);const o=A[r],s=this.cache[r];oY(o,s)||(t=!0,i=s,n&&!(r in n)&&(n[r]=s),this.cache[r]=o)}return{valueChanged:t,oldValue:i}}}function hL(e){let A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const{enable:t=!0,copyState:i}=A;if(kt(i!==void 0),!e.state){const{polyfillContext:n}=globalThis;n&&n(e),e.state=new gY(e,{copyState:i}),aY(e);for(const r in mS){const o=mS[r];sY(e,r,o)}vS(e,"getParameter"),vS(e,"isEnabled")}return e.state.enable=t,e}function IY(e){e.state||hL(e,{copyState:!1}),e.state.push()}function SS(e){kt(e.state),e.state.pop()}function Pn(e,A){if(kt(YE(e),"setParameters requires a WebGL context"),uL(A))return;const t={};for(const n in A){const r=Number(n),o=nY[n];o&&(typeof o=="string"?t[o]=!0:o(e,A[n],r))}const i=e.state&&e.state.cache;if(i)for(const n in t){const r=rY[n];r(e,A,i)}}function lY(e,A){if(A=A||_p,typeof A=="number"){const n=A,r=wS[n];return r?r(e,n):e.getParameter(n)}const t=Array.isArray(A)?A:Object.keys(A),i={};for(const n of t){const r=wS[n];i[n]=r?r(e,Number(n)):e.getParameter(Number(n))}return i}function cY(e){Pn(e,_p)}function ui(e,A,t){if(uL(A))return t(e);const{nocatch:i=!0}=A;IY(e),Pn(e,A);let n;if(i)n=t(e),SS(e);else try{n=t(e)}finally{SS(e)}return n}function ha(e){const{luma:A}=e;if(e.canvas&&A){const{clientWidth:t}=A.canvasSizeInfo;return t?e.drawingBufferWidth/t:1}return 1}function kh(e,A){let t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;const i=ha(e),n=e.drawingBufferWidth,r=e.drawingBufferHeight;return BY(A,i,n,r,t)}function CY(e){const A=typeof window=="undefined"?1:window.devicePixelRatio||1;return Number.isFinite(e)?e<=0?1:e:e?A:1}function BY(e,A,t,i,n){const r=DS(e[0],A,t);let o=RS(e[1],A,i,n),s=DS(e[0]+1,A,t);const a=s===t-1?s:s-1;s=RS(e[1]+1,A,i,n);let g;return n?(s=s===0?s:s+1,g=o,o=s):g=s===i-1?s:s-1,{x:r,y:o,width:Math.max(a-r+1,1),height:Math.max(g-o+1,1)}}function DS(e,A,t){return Math.min(Math.round(e*A),t-1)}function RS(e,A,t,i){return i?Math.max(0,t-1-Math.round(e*A)):Math.min(Math.round(e*A),t-1)}const Mp=Kn(),EY=Mp&&typeof document!="undefined",fL={webgl2:!0,webgl1:!0,throwOnError:!0,manageState:!0,canvas:null,debug:!1,width:800,height:600};function QL(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};kt(Mp,`createGLContext only available in the browser. -Create your own headless context or use 'createHeadlessContext' from @luma.gl/test-utils`),e=Object.assign({},fL,e);const{width:A,height:t}=e;function i(s){if(e.throwOnError)throw new Error(s);return console.error(s),null}e.onError=i;let n;const{canvas:r}=e,o=QY({canvas:r,width:A,height:t,onError:i});return n=fY(o,e),n?(n=kp(n,e),dY(n),n):null}function kp(e){let A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(!e||e._instrumented)return e;e._version=e._version||pY(e),e.luma=e.luma||{},e.luma.canvasSizeInfo=e.luma.canvasSizeInfo||{},A=Object.assign({},fL,A);const{manageState:t,debug:i}=A;return t&&hL(e,{copyState:!1,log:function(){for(var n=arguments.length,r=new Array(n),o=0;o1&&arguments[1]!==void 0?arguments[1]:{};if(e.canvas){const i=CY(A.useDevicePixels);yY(e,i,A);return}const t=e.getExtension("STACKGL_resize_drawingbuffer");t&&"width"in A&&"height"in A&&t.resize(A.width,A.height)}function fY(e,A){const{onError:t}=A;let i=null;const n=a=>i=a.statusMessage||i;e.addEventListener("webglcontextcreationerror",n,!1);const{webgl1:r=!0,webgl2:o=!0}=A;let s=null;return o&&(s=s||e.getContext("webgl2",A),s=s||e.getContext("experimental-webgl2",A)),r&&(s=s||e.getContext("webgl",A),s=s||e.getContext("experimental-webgl",A)),e.removeEventListener("webglcontextcreationerror",n,!1),s?(A.onContextLost&&e.addEventListener("webglcontextlost",A.onContextLost,!1),A.onContextRestored&&e.addEventListener("webglcontextrestored",A.onContextRestored,!1),s):t("Failed to create ".concat(o&&!r?"WebGL2":"WebGL"," context: ").concat(i||"Unknown error"))}function QY(e){let{canvas:A,width:t=800,height:i=600,onError:n}=e,r;return typeof A=="string"?(EY&&document.readyState==="complete"||n("createGLContext called on canvas '".concat(A,"' before page was loaded")),r=document.getElementById(A)):A?r=A:(r=document.createElement("canvas"),r.id="lumagl-canvas",r.style.width=Number.isFinite(t)?"".concat(t,"px"):"100%",r.style.height=Number.isFinite(i)?"".concat(i,"px"):"100%",document.body.insertBefore(r,document.body.firstChild)),r}function dY(e){const A=ie(e)?"WebGL2":"WebGL1",t=uY(e),i=t?"(".concat(t.vendor,",").concat(t.renderer,")"):"",n=e.debug?" debug":"";DA.info(1,"".concat(A).concat(n," context ").concat(i))()}function pY(e){return typeof WebGL2RenderingContext!="undefined"&&e instanceof WebGL2RenderingContext?2:1}function yY(e,A,t){let i="width"in t?t.width:e.canvas.clientWidth,n="height"in t?t.height:e.canvas.clientHeight;(!i||!n)&&(DA.log(1,"Canvas clientWidth/clientHeight is 0")(),A=1,i=e.canvas.width||1,n=e.canvas.height||1),e.luma=e.luma||{},e.luma.canvasSizeInfo=e.luma.canvasSizeInfo||{};const r=e.luma.canvasSizeInfo;if(r.clientWidth!==i||r.clientHeight!==n||r.devicePixelRatio!==A){let o=A;const s=Math.floor(i*o),a=Math.floor(n*o);e.canvas.width=s,e.canvas.height=a,(e.drawingBufferWidth!==s||e.drawingBufferHeight!==a)&&(DA.warn("Device pixel ratio clamped")(),o=Math.min(e.drawingBufferWidth/i,e.drawingBufferHeight/n),e.canvas.width=Math.floor(i*o),e.canvas.height=Math.floor(n*o)),Object.assign(e.luma.canvasSizeInfo,{clientWidth:i,clientHeight:n,devicePixelRatio:A})}}const EI="8.5.16",mY="set luma.log.level=1 (or higher) to trace rendering";class dL{constructor(){this.stats=new Map}get(A){return this.stats.has(A)||this.stats.set(A,new JE({id:A})),this.stats.get(A)}}const yo=new dL;if(globalThis.luma&&globalThis.luma.VERSION!==EI)throw new Error("luma.gl - multiple VERSIONs detected: ".concat(globalThis.luma.VERSION," vs ").concat(EI));globalThis.luma||(Kn()&&DA.log(1,"luma.gl ".concat(EI," - ").concat(mY))(),globalThis.luma=globalThis.luma||{VERSION:EI,version:EI,log:DA,stats:yo,globals:{modules:{},nodeIO:{}}});function wY(e){return typeof window!="undefined"&&window.requestAnimationFrame?window.requestAnimationFrame(e):setTimeout(e,1e3/60)}function vY(e){return typeof window!="undefined"&&window.cancelAnimationFrame?window.cancelAnimationFrame(e):clearTimeout(e)}function cA(e,A){if(!e)throw new Error(A||"luma.gl: assertion failed.")}function Th(e,A){if(typeof A!="string")return A;const t=Number(A);if(!isNaN(t))return t;A=A.replace(/^.*\./,"");const i=e[A];return cA(i!==void 0,"Accessing undefined constant GL.".concat(A)),i}function Lr(e,A){A=Number(A);for(const t in e)if(e[t]===A)return"GL.".concat(t);return String(A)}const Uh={};function Jr(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"id";Uh[e]=Uh[e]||1;const A=Uh[e]++;return"".concat(e,"-").concat(A)}function xS(e){return cA(typeof e=="number","Input must be a number"),e&&(e&e-1)===0}function fa(e){let A=!0;for(const t in e){A=!1;break}return A}function pL(e,A,t,i){const n="See luma.gl ".concat(t," Upgrade Guide at https://luma.gl/docs/upgrade-guide"),r=Object.getPrototypeOf(e);i.forEach(o=>{r.methodName||(r[o]=()=>{throw DA.removed("Calling removed method ".concat(A,".").concat(o,": "),n)(),new Error(o)})})}const Qs="Resource subclass must define virtual methods";class Vn{get[Symbol.toStringTag](){return"Resource"}constructor(A){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};KE(A);const{id:i,userData:n={}}=t;this.gl=A,this.gl2=A,this.id=i||Jr(this[Symbol.toStringTag]),this.userData=n,this._bound=!1,this._handle=t.handle,this._handle===void 0&&(this._handle=this._createHandle()),this.byteLength=0,this._initStats(),this._addStats()}toString(){return"".concat(this[Symbol.toStringTag]||this.constructor.name,"(").concat(this.id,")")}get handle(){return this._handle}delete(){let{deleteChildren:A=!1}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const t=this._handle&&this._deleteHandle(this._handle);return this._handle&&this._removeStats(),this._handle=null,t&&A&&t.filter(Boolean).forEach(i=>i.delete()),this}bind(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.handle;if(typeof A!="function")return this._bindHandle(A),this;let t;return this._bound?t=A():(this._bindHandle(this.handle),this._bound=!0,t=A(),this._bound=!1,this._bindHandle(null)),t}unbind(){this.bind(null)}getParameter(A){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};A=Th(this.gl,A),cA(A);const n=(this.constructor.PARAMETERS||{})[A];if(n){const r=ie(this.gl);if(!((!("webgl2"in n)||r)&&(!("extension"in n)||this.gl.getExtension(n.extension)))){const s=n.webgl1,a="webgl2"in n?n.webgl2:n.webgl1;return r?a:s}}return this._getParameter(A,t)}getParameters(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const{parameters:t,keys:i}=A,n=this.constructor.PARAMETERS||{},r=ie(this.gl),o={},s=t||Object.keys(n);for(const a of s){const g=n[a];if(g&&(!("webgl2"in g)||r)&&(!("extension"in g)||this.gl.getExtension(g.extension))){const l=i?Lr(this.gl,a):a;o[l]=this.getParameter(a,A),i&&g.type==="GLenum"&&(o[l]=Lr(this.gl,o[l]))}}return o}setParameter(A,t){A=Th(this.gl,A),cA(A);const n=(this.constructor.PARAMETERS||{})[A];if(n){const r=ie(this.gl);if(!((!("webgl2"in n)||r)&&(!("extension"in n)||this.gl.getExtension(n.extension))))throw new Error("Parameter not available on this platform");n.type==="GLenum"&&(t=Th(t))}return this._setParameter(A,t),this}setParameters(A){for(const t in A)this.setParameter(t,A[t]);return this}stubRemovedMethods(A,t,i){return pL(this,A,t,i)}initialize(A){}_createHandle(){throw new Error(Qs)}_deleteHandle(){throw new Error(Qs)}_bindHandle(A){throw new Error(Qs)}_getOptsFromHandle(){throw new Error(Qs)}_getParameter(A,t){throw new Error(Qs)}_setParameter(A,t){throw new Error(Qs)}_context(){return this.gl.luma=this.gl.luma||{},this.gl.luma}_initStats(){this.gl.stats=this.gl.stats||new dL}_addStats(){const A=this[Symbol.toStringTag],t=yo.get("Resource Counts");t.get("Resources Created").incrementCount(),t.get("".concat(A,"s Created")).incrementCount(),t.get("".concat(A,"s Active")).incrementCount()}_removeStats(){const A=this[Symbol.toStringTag];yo.get("Resource Counts").get("".concat(A,"s Active")).decrementCount()}_trackAllocatedMemory(A){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this[Symbol.toStringTag];this._doTrackAllocatedMemory(A,t),this._doTrackAllocatedMemory(A,t,this.gl.stats.get("Memory Usage"))}_doTrackAllocatedMemory(A){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this[Symbol.toStringTag],i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:yo.get("Memory Usage");i.get("GPU Memory").addCount(A),i.get("".concat(t," Memory")).addCount(A),this.byteLength=A}_trackDeallocatedMemory(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this[Symbol.toStringTag];this._doTrackDeallocatedMemory(A),this._doTrackDeallocatedMemory(A,this.gl.stats.get("Memory Usage"))}_doTrackDeallocatedMemory(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this[Symbol.toStringTag],t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:yo.get("Memory Usage");t.get("GPU Memory").subtractCount(this.byteLength),t.get("".concat(A," Memory")).subtractCount(this.byteLength),this.byteLength=0}}const SY="Failed to deduce GL constant from typed array";function ed(e){switch(ArrayBuffer.isView(e)?e.constructor:e){case Float32Array:return 5126;case Uint16Array:return 5123;case Uint32Array:return 5125;case Uint8Array:return 5121;case Uint8ClampedArray:return 5121;case Int8Array:return 5120;case Int16Array:return 5122;case Int32Array:return 5124;default:throw new Error(SY)}}function VI(e){let{clamped:A=!0}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};switch(e){case 5126:return Float32Array;case 5123:case 33635:case 32819:case 32820:return Uint16Array;case 5125:return Uint32Array;case 5121:return A?Uint8ClampedArray:Uint8Array;case 5120:return Int8Array;case 5122:return Int16Array;case 5124:return Int32Array;default:throw new Error("Failed to deduce typed array type from GL constant")}}function DY(e){let{data:A,width:t,height:i,bytesPerPixel:n=4,temp:r}=e;const o=t*n;r=r||new Uint8Array(o);for(let s=0;sthis._assign(n)),Object.freeze(this)}toString(){return JSON.stringify(this)}get BYTES_PER_ELEMENT(){return ti.getBytesPerElement(this)}get BYTES_PER_VERTEX(){return ti.getBytesPerVertex(this)}_assign(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return A=td("Accessor",A,FY),A.type!==void 0&&(this.type=A.type,(A.type===5124||A.type===5125)&&(this.integer=!0)),A.size!==void 0&&(this.size=A.size),A.offset!==void 0&&(this.offset=A.offset),A.stride!==void 0&&(this.stride=A.stride),A.normalized!==void 0&&(this.normalized=A.normalized),A.integer!==void 0&&(this.integer=A.integer),A.divisor!==void 0&&(this.divisor=A.divisor),A.buffer!==void 0&&(this.buffer=A.buffer),A.index!==void 0&&(typeof A.index=="boolean"?this.index=A.index?1:0:this.index=A.index),A.instanced!==void 0&&(this.divisor=A.instanced?1:0),A.isInstanced!==void 0&&(this.divisor=A.isInstanced?1:0),this}}const FS=10,yL={offset:"accessor.offset",stride:"accessor.stride",type:"accessor.type",size:"accessor.size",divisor:"accessor.divisor",normalized:"accessor.normalized",integer:"accessor.integer",instanced:"accessor.divisor",isInstanced:"accessor.divisor"},NY={removedProps:{},replacedProps:{bytes:"byteLength"},deprecatedProps:yL},LY={removedProps:yL};class we extends Vn{get[Symbol.toStringTag](){return"Buffer"}constructor(A){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};super(A,t),this.stubRemovedMethods("Buffer","v6.0",["layout","setLayout","getIndexedParameter"]),this.target=t.target||(this.gl.webgl2?36662:34962),this.initialize(t),Object.seal(this)}getElementCount(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.accessor;return Math.round(this.byteLength/ti.getBytesPerElement(A))}getVertexCount(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.accessor;return Math.round(this.byteLength/ti.getBytesPerVertex(A))}initialize(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return ArrayBuffer.isView(A)&&(A={data:A}),Number.isFinite(A)&&(A={byteLength:A}),A=td("Buffer",A,NY),this.usage=A.usage||35044,this.debugData=null,this.setAccessor(Object.assign({},A,A.accessor)),A.data?this._setData(A.data,A.offset,A.byteLength):this._setByteLength(A.byteLength||0),this}setProps(A){return A=td("Buffer",A,LY),"accessor"in A&&this.setAccessor(A.accessor),this}setAccessor(A){return A=Object.assign({},A),delete A.buffer,this.accessor=new ti(A),this}reallocate(A){return A>this.byteLength?(this._setByteLength(A),!0):(this.bytesUsed=A,!1)}setData(A){return this.initialize(A)}subData(A){ArrayBuffer.isView(A)&&(A={data:A});const{data:t,offset:i=0,srcOffset:n=0}=A,r=A.byteLength||A.length;cA(t);const o=this.gl.webgl2?36663:this.target;return this.gl.bindBuffer(o,this.handle),n!==0||r!==void 0?(Ft(this.gl),this.gl.bufferSubData(this.target,i,t,n,r)):this.gl.bufferSubData(o,i,t),this.gl.bindBuffer(o,null),this.debugData=null,this._inferType(t),this}copyData(A){let{sourceBuffer:t,readOffset:i=0,writeOffset:n=0,size:r}=A;const{gl:o}=this;return Ft(o),o.bindBuffer(36662,t.handle),o.bindBuffer(36663,this.handle),o.copyBufferSubData(36662,36663,i,n,r),o.bindBuffer(36662,null),o.bindBuffer(36663,null),this.debugData=null,this}getData(){let{dstData:A=null,srcByteOffset:t=0,dstOffset:i=0,length:n=0}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};Ft(this.gl);const r=VI(this.accessor.type||5126,{clamped:!1}),o=this._getAvailableElementCount(t),s=i;let a,g;A?(g=A.length,a=g-s):(a=Math.min(o,n||o),g=s+a);const I=Math.min(o,a);return n=n||I,cA(n<=I),A=A||new r(g),this.gl.bindBuffer(36662,this.handle),this.gl.getBufferSubData(36662,t,A,i,n),this.gl.bindBuffer(36662,null),A}bind(){let{target:A=this.target,index:t=this.accessor&&this.accessor.index,offset:i=0,size:n}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return A===35345||A===35982?n!==void 0?this.gl.bindBufferRange(A,t,this.handle,i,n):(cA(i===0),this.gl.bindBufferBase(A,t,this.handle)):this.gl.bindBuffer(A,this.handle),this}unbind(){let{target:A=this.target,index:t=this.accessor&&this.accessor.index}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return A===35345||A===35982?this.gl.bindBufferBase(A,t,null):this.gl.bindBuffer(A,null),this}getDebugData(){return this.debugData?{data:this.debugData,changed:!1}:(this.debugData=this.getData({length:Math.min(FS,this.byteLength)}),{data:this.debugData,changed:!0})}invalidateDebugData(){this.debugData=null}_setData(A){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:A.byteLength+t;cA(ArrayBuffer.isView(A)),this._trackDeallocatedMemory();const n=this._getTarget();this.gl.bindBuffer(n,this.handle),this.gl.bufferData(n,i,this.usage),this.gl.bufferSubData(n,t,A),this.gl.bindBuffer(n,null),this.debugData=A.slice(0,FS),this.bytesUsed=i,this._trackAllocatedMemory(i);const r=ed(A);return cA(r),this.setAccessor(new ti(this.accessor,{type:r})),this}_setByteLength(A){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.usage;cA(A>=0),this._trackDeallocatedMemory();let i=A;A===0&&(i=new Float32Array(0));const n=this._getTarget();return this.gl.bindBuffer(n,this.handle),this.gl.bufferData(n,i,t),this.gl.bindBuffer(n,null),this.usage=t,this.debugData=null,this.bytesUsed=A,this._trackAllocatedMemory(A),this}_getTarget(){return this.gl.webgl2?36663:this.target}_getAvailableElementCount(A){const t=VI(this.accessor.type||5126,{clamped:!1}),i=A/t.BYTES_PER_ELEMENT;return this.getElementCount()-i}_inferType(A){this.accessor.type||this.setAccessor(new ti(this.accessor,{type:ed(A)}))}_createHandle(){return this.gl.createBuffer()}_deleteHandle(){this.gl.deleteBuffer(this.handle),this._trackDeallocatedMemory()}_getParameter(A){this.gl.bindBuffer(this.target,this.handle);const t=this.gl.getBufferParameter(this.target,A);return this.gl.bindBuffer(this.target,null),t}get type(){return DA.deprecated("Buffer.type","Buffer.accessor.type")(),this.accessor.type}get bytes(){return DA.deprecated("Buffer.bytes","Buffer.byteLength")(),this.byteLength}setByteLength(A){return DA.deprecated("setByteLength","reallocate")(),this.reallocate(A)}updateAccessor(A){return DA.deprecated("updateAccessor(...)","setAccessor(new Accessor(buffer.accessor, ...)")(),this.accessor=new ti(this.accessor,A),this}}const Tp={[6407]:{dataFormat:6407,types:[5121,33635]},[6408]:{dataFormat:6408,types:[5121,32819,32820]},[6406]:{dataFormat:6406,types:[5121]},[6409]:{dataFormat:6409,types:[5121]},[6410]:{dataFormat:6410,types:[5121]},[33326]:{dataFormat:6403,types:[5126],gl2:!0},[33328]:{dataFormat:33319,types:[5126],gl2:!0},[34837]:{dataFormat:6407,types:[5126],gl2:!0},[34836]:{dataFormat:6408,types:[5126],gl2:!0}},mL={[6403]:1,[36244]:1,[33319]:2,[33320]:2,[6407]:3,[36248]:3,[6408]:4,[36249]:4,[6402]:1,[34041]:1,[6406]:1,[6409]:1,[6410]:2},wL={[5126]:4,[5125]:4,[5124]:4,[5123]:2,[5122]:2,[5131]:2,[5120]:1,[5121]:1};function bY(e,A){const t=Tp[A];if(!t)return!1;if(t.gl1===void 0&&t.gl2===void 0)return!0;const i=ie(e)&&t.gl2||t.gl1;return typeof i=="string"?e.getExtension(i):i}function GY(e,A){const t=Tp[A];switch(t&&t.types[0]){case 5126:return e.getExtension("OES_texture_float_linear");case 5131:return e.getExtension("OES_texture_half_float_linear");default:return!0}}const _Y=[9729,9728],NS=globalThis.WebGLBuffer||function(){};class ko extends Vn{get[Symbol.toStringTag](){return"Texture"}static isSupported(A){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const{format:i,linearFiltering:n}=t;let r=!0;return i&&(r=r&&bY(A,i),r=r&&(!n||GY(A,i))),r}constructor(A,t){const{id:i=Jr("texture"),handle:n,target:r}=t;super(A,{id:i,handle:n}),this.target=r,this.textureUnit=void 0,this.loaded=!1,this.width=void 0,this.height=void 0,this.depth=void 0,this.format=void 0,this.type=void 0,this.dataFormat=void 0,this.border=void 0,this.textureUnit=void 0,this.mipmaps=void 0}toString(){return"Texture(".concat(this.id,",").concat(this.width,"x").concat(this.height,")")}initialize(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=A.data;if(t instanceof Promise)return t.then(f=>this.initialize(Object.assign({},A,{pixels:f,data:f}))),this;const i=typeof HTMLVideoElement!="undefined"&&t instanceof HTMLVideoElement;if(i&&t.readyStatethis.initialize(A)),this;const{pixels:n=null,format:r=6408,border:o=0,recreate:s=!1,parameters:a={},pixelStore:g={},textureUnit:I=void 0}=A;t||(t=n);let{width:l,height:c,dataFormat:C,type:B,compressed:u=!1,mipmaps:E=!0}=A;const{depth:h=0}=A;return{width:l,height:c,compressed:u,dataFormat:C,type:B}=this._deduceParameters({format:r,type:B,dataFormat:C,compressed:u,data:t,width:l,height:c}),this.width=l,this.height=c,this.depth=h,this.format=r,this.type=B,this.dataFormat=C,this.border=o,this.textureUnit=I,Number.isFinite(this.textureUnit)&&(this.gl.activeTexture(33984+this.textureUnit),this.gl.bindTexture(this.target,this.handle)),E&&this._isNPOT()&&(DA.warn("texture: ".concat(this," is Non-Power-Of-Two, disabling mipmaping"))(),E=!1,this._updateForNPOT(a)),this.mipmaps=E,this.setImageData({data:t,width:l,height:c,depth:h,format:r,type:B,dataFormat:C,border:o,mipmaps:E,parameters:g,compressed:u}),E&&this.generateMipmap(),this.setParameters(a),s&&(this.data=t),i&&(this._video={video:t,parameters:a,lastTime:t.readyState>=HTMLVideoElement.HAVE_CURRENT_DATA?t.currentTime:-1}),this}update(){if(this._video){const{video:A,parameters:t,lastTime:i}=this._video;if(i===A.currentTime||A.readyState0&&arguments[0]!==void 0?arguments[0]:{};return this._isNPOT()?(DA.warn("texture: ".concat(this," is Non-Power-Of-Two, disabling mipmaping"))(),this):(this.mipmaps=!0,this.gl.bindTexture(this.target,this.handle),ui(this.gl,A,()=>{this.gl.generateMipmap(this.target)}),this.gl.bindTexture(this.target,null),this)}setImageData(A){this._trackDeallocatedMemory("Texture");const{target:t=this.target,pixels:i=null,level:n=0,format:r=this.format,border:o=this.border,offset:s=0,parameters:a={}}=A;let{data:g=null,type:I=this.type,width:l=this.width,height:c=this.height,dataFormat:C=this.dataFormat,compressed:B=!1}=A;g||(g=i),{type:I,dataFormat:C,compressed:B,width:l,height:c}=this._deduceParameters({format:r,type:I,dataFormat:C,compressed:B,data:g,width:l,height:c});const{gl:u}=this;u.bindTexture(this.target,this.handle);let E=null;({data:g,dataType:E}=this._getDataType({data:g,compressed:B}));let h,f=0;if(ui(this.gl,a,()=>{switch(E){case"null":u.texImage2D(t,n,r,l,c,o,C,I,g);break;case"typed-array":u.texImage2D(t,n,r,l,c,o,C,I,g,s);break;case"buffer":h=Ft(u),h.bindBuffer(35052,g.handle||g),h.texImage2D(t,n,r,l,c,o,C,I,s),h.bindBuffer(35052,null);break;case"browser-object":ie(u)?u.texImage2D(t,n,r,l,c,o,C,I,g):u.texImage2D(t,n,r,C,I,g);break;case"compressed":for(const[Q,d]of g.entries())u.compressedTexImage2D(t,Q,d.format,d.width,d.height,o,d.data),f+=d.levelSize;break;default:cA(!1,"Unknown image data type")}}),E==="compressed")this._trackAllocatedMemory(f,"Texture");else if(g&&g.byteLength)this._trackAllocatedMemory(g.byteLength,"Texture");else{const Q=mL[this.dataFormat]||4,d=wL[this.type]||1;this._trackAllocatedMemory(this.width*this.height*Q*d,"Texture")}return this.loaded=!0,this}setSubImageData(A){let{target:t=this.target,pixels:i=null,data:n=null,x:r=0,y:o=0,width:s=this.width,height:a=this.height,level:g=0,format:I=this.format,type:l=this.type,dataFormat:c=this.dataFormat,compressed:C=!1,offset:B=0,border:u=this.border,parameters:E={}}=A;if({type:l,dataFormat:c,compressed:C,width:s,height:a}=this._deduceParameters({format:I,type:l,dataFormat:c,compressed:C,data:n,width:s,height:a}),cA(this.depth===0,"texSubImage not supported for 3D textures"),n||(n=i),n&&n.data){const h=n;n=h.data,s=h.shape[0],a=h.shape[1]}n instanceof we&&(n=n.handle),this.gl.bindTexture(this.target,this.handle),ui(this.gl,E,()=>{if(C)this.gl.compressedTexSubImage2D(t,g,r,o,s,a,I,n);else if(n===null)this.gl.texSubImage2D(t,g,r,o,s,a,c,l,null);else if(ArrayBuffer.isView(n))this.gl.texSubImage2D(t,g,r,o,s,a,c,l,n,B);else if(n instanceof NS){const h=Ft(this.gl);h.bindBuffer(35052,n),h.texSubImage2D(t,g,r,o,s,a,c,l,B),h.bindBuffer(35052,null)}else ie(this.gl)?Ft(this.gl).texSubImage2D(t,g,r,o,s,a,c,l,n):this.gl.texSubImage2D(t,g,r,o,c,l,n)}),this.gl.bindTexture(this.target,null)}copyFramebuffer(){return DA.error("Texture.copyFramebuffer({...}) is no logner supported, use copyToTexture(source, target, opts})")(),null}getActiveUnit(){return this.gl.getParameter(34016)-33984}bind(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.textureUnit;const{gl:t}=this;return A!==void 0&&(this.textureUnit=A,t.activeTexture(33984+A)),t.bindTexture(this.target,this.handle),A}unbind(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.textureUnit;const{gl:t}=this;return A!==void 0&&(this.textureUnit=A,t.activeTexture(33984+A)),t.bindTexture(this.target,null),A}_getDataType(A){let{data:t,compressed:i=!1}=A;return i?{data:t,dataType:"compressed"}:t===null?{data:t,dataType:"null"}:ArrayBuffer.isView(t)?{data:t,dataType:"typed-array"}:t instanceof we?{data:t.handle,dataType:"buffer"}:t instanceof NS?{data:t,dataType:"buffer"}:{data:t,dataType:"browser-object"}}_deduceParameters(A){const{format:t,data:i}=A;let{width:n,height:r,dataFormat:o,type:s,compressed:a}=A;const g=Tp[t];return o=o||g&&g.dataFormat,s=s||g&&g.types[0],a=a||g&&g.compressed,{width:n,height:r}=this._deduceImageSize(i,n,r),{dataFormat:o,type:s,compressed:a,width:n,height:r,format:t,data:i}}_deduceImageSize(A,t,i){let n;return typeof ImageData!="undefined"&&A instanceof ImageData?n={width:A.width,height:A.height}:typeof HTMLImageElement!="undefined"&&A instanceof HTMLImageElement?n={width:A.naturalWidth,height:A.naturalHeight}:typeof HTMLCanvasElement!="undefined"&&A instanceof HTMLCanvasElement?n={width:A.width,height:A.height}:typeof ImageBitmap!="undefined"&&A instanceof ImageBitmap?n={width:A.width,height:A.height}:typeof HTMLVideoElement!="undefined"&&A instanceof HTMLVideoElement?n={width:A.videoWidth,height:A.videoHeight}:A?n={width:t,height:i}:n={width:t>=0?t:1,height:i>=0?i:1},cA(n,"Could not deduced texture size"),cA(t===void 0||n.width===t,"Deduced texture width does not match supplied width"),cA(i===void 0||n.height===i,"Deduced texture height does not match supplied height"),n}_createHandle(){return this.gl.createTexture()}_deleteHandle(){this.gl.deleteTexture(this.handle),this._trackDeallocatedMemory("Texture")}_getParameter(A){switch(A){case 4096:return this.width;case 4097:return this.height;default:this.gl.bindTexture(this.target,this.handle);const t=this.gl.getTexParameter(this.target,A);return this.gl.bindTexture(this.target,null),t}}_setParameter(A,t){switch(this.gl.bindTexture(this.target,this.handle),t=this._getNPOTParam(A,t),A){case 33082:case 33083:this.gl.texParameterf(this.handle,A,t);break;case 4096:case 4097:cA(!1);break;default:this.gl.texParameteri(this.target,A,t);break}return this.gl.bindTexture(this.target,null),this}_isNPOT(){return ie(this.gl)||!this.width||!this.height?!1:!xS(this.width)||!xS(this.height)}_updateForNPOT(A){A[this.gl.TEXTURE_MIN_FILTER]===void 0&&(A[this.gl.TEXTURE_MIN_FILTER]=this.gl.LINEAR),A[this.gl.TEXTURE_WRAP_S]===void 0&&(A[this.gl.TEXTURE_WRAP_S]=this.gl.CLAMP_TO_EDGE),A[this.gl.TEXTURE_WRAP_T]===void 0&&(A[this.gl.TEXTURE_WRAP_T]=this.gl.CLAMP_TO_EDGE)}_getNPOTParam(A,t){if(this._isNPOT())switch(A){case 10241:_Y.indexOf(t)===-1&&(t=9729);break;case 10242:case 10243:t!==33071&&(t=33071);break}return t}}let MY="";function kY(e,A){return cA(typeof e=="string"),e=MY+e,new Promise((t,i)=>{try{const n=new Image;n.onload=()=>t(n),n.onerror=()=>i(new Error("Could not load image ".concat(e,"."))),n.crossOrigin=A&&A.crossOrigin||"anonymous",n.src=e}catch(n){i(n)}})}class Pt extends ko{get[Symbol.toStringTag](){return"Texture2D"}static isSupported(A,t){return ko.isSupported(A,t)}constructor(A){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};KE(A),(t instanceof Promise||typeof t=="string")&&(t={data:t}),typeof t.data=="string"&&(t=Object.assign({},t,{data:kY(t.data)})),super(A,Object.assign({},t,{target:3553})),this.initialize(t),Object.seal(this)}}const id=[34069,34070,34071,34072,34073,34074];class vL extends ko{get[Symbol.toStringTag](){return"TextureCube"}constructor(A){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};KE(A),super(A,Object.assign({},t,{target:34067})),this.initialize(t),Object.seal(this)}initialize(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const{mipmaps:t=!0,parameters:i={}}=A;return this.opts=A,this.setCubeMapImageData(A).then(()=>{this.loaded=!0,t&&this.generateMipmap(A),this.setParameters(i)}),this}subImage(A){let{face:t,data:i,x:n=0,y:r=0,mipmapLevel:o=0}=A;return this._subImage({target:t,data:i,x:n,y:r,mipmapLevel:o})}async setCubeMapImageData(A){let{width:t,height:i,pixels:n,data:r,border:o=0,format:s=6408,type:a=5121}=A;const{gl:g}=this,I=n||r,l=await Promise.all(id.map(c=>{const C=I[c];return Promise.all(Array.isArray(C)?C:[C])}));this.bind(),id.forEach((c,C)=>{l[C].length>1&&this.opts.mipmaps!==!1&&DA.warn("".concat(this.id," has mipmap and multiple LODs."))(),l[C].forEach((B,u)=>{t&&i?g.texImage2D(c,u,s,t,i,o,s,a,B):g.texImage2D(c,u,s,s,a,B)})}),this.unbind()}setImageDataForFace(A){const{face:t,width:i,height:n,pixels:r,data:o,border:s=0,format:a=6408,type:g=5121}=A,{gl:I}=this,l=r||o;return this.bind(),l instanceof Promise?l.then(c=>this.setImageDataForFace(Object.assign({},A,{face:t,data:c,pixels:c}))):this.width||this.height?I.texImage2D(t,0,a,i,n,s,a,g,l):I.texImage2D(t,0,a,a,g,l),this}}vL.FACES=id;class SL extends ko{get[Symbol.toStringTag](){return"Texture3D"}static isSupported(A){return ie(A)}constructor(A){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};Ft(A),t=Object.assign({depth:1},t,{target:32879,unpackFlipY:!1}),super(A,t),this.initialize(t),Object.seal(this)}setImageData(A){let{level:t=0,dataFormat:i=6408,width:n,height:r,depth:o=1,border:s=0,format:a,type:g=5121,offset:I=0,data:l,parameters:c={}}=A;if(this._trackDeallocatedMemory("Texture"),this.gl.bindTexture(this.target,this.handle),ui(this.gl,c,()=>{ArrayBuffer.isView(l)&&this.gl.texImage3D(this.target,t,i,n,r,o,s,a,g,l),l instanceof we&&(this.gl.bindBuffer(35052,l.handle),this.gl.texImage3D(this.target,t,i,n,r,o,s,a,g,I))}),l&&l.byteLength)this._trackAllocatedMemory(l.byteLength,"Texture");else{const C=mL[this.dataFormat]||4,B=wL[this.type]||1;this._trackAllocatedMemory(this.width*this.height*this.depth*C*B,"Texture")}return this.loaded=!0,this}}const oo="EXT_color_buffer_float";var LS={[33189]:{bpp:2},[33190]:{gl2:!0,bpp:3},[36012]:{gl2:!0,bpp:4},[36168]:{bpp:1},[34041]:{bpp:4},[35056]:{gl2:!0,bpp:4},[36013]:{gl2:!0,bpp:5},[32854]:{bpp:2},[36194]:{bpp:2},[32855]:{bpp:2},[33321]:{gl2:!0,bpp:1},[33330]:{gl2:!0,bpp:1},[33329]:{gl2:!0,bpp:1},[33332]:{gl2:!0,bpp:2},[33331]:{gl2:!0,bpp:2},[33334]:{gl2:!0,bpp:4},[33333]:{gl2:!0,bpp:4},[33323]:{gl2:!0,bpp:2},[33336]:{gl2:!0,bpp:2},[33335]:{gl2:!0,bpp:2},[33338]:{gl2:!0,bpp:4},[33337]:{gl2:!0,bpp:4},[33340]:{gl2:!0,bpp:8},[33339]:{gl2:!0,bpp:8},[32849]:{gl2:!0,bpp:3},[32856]:{gl2:!0,bpp:4},[32857]:{gl2:!0,bpp:4},[36220]:{gl2:!0,bpp:4},[36238]:{gl2:!0,bpp:4},[36975]:{gl2:!0,bpp:4},[36214]:{gl2:!0,bpp:8},[36232]:{gl2:!0,bpp:8},[36226]:{gl2:!0,bpp:16},[36208]:{gl2:!0,bpp:16},[33325]:{gl2:oo,bpp:2},[33327]:{gl2:oo,bpp:4},[34842]:{gl2:oo,bpp:8},[33326]:{gl2:oo,bpp:4},[33328]:{gl2:oo,bpp:8},[34836]:{gl2:oo,bpp:16},[35898]:{gl2:oo,bpp:4}};function TY(e,A,t){const i=t[A];if(!i)return!1;const n=ie(e)&&i.gl2||i.gl1;return typeof n=="string"?e.getExtension(n):n}class Hs extends Vn{get[Symbol.toStringTag](){return"Renderbuffer"}static isSupported(A){let{format:t}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{format:null};return!t||TY(A,t,LS)}static getSamplesForFormat(A,t){let{format:i}=t;return A.getInternalformatParameter(36161,i,32937)}constructor(A){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};super(A,t),this.initialize(t),Object.seal(this)}initialize(A){let{format:t,width:i=1,height:n=1,samples:r=0}=A;return cA(t,"Needs format"),this._trackDeallocatedMemory(),this.gl.bindRenderbuffer(36161,this.handle),r!==0&&ie(this.gl)?this.gl.renderbufferStorageMultisample(36161,r,t,i,n):this.gl.renderbufferStorage(36161,t,i,n),this.format=t,this.width=i,this.height=n,this.samples=r,this._trackAllocatedMemory(this.width*this.height*(this.samples||1)*LS[this.format].bpp),this}resize(A){let{width:t,height:i}=A;return t!==this.width||i!==this.height?this.initialize({width:t,height:i,format:this.format,samples:this.samples}):this}_createHandle(){return this.gl.createRenderbuffer()}_deleteHandle(){this.gl.deleteRenderbuffer(this.handle),this._trackDeallocatedMemory()}_bindHandle(A){this.gl.bindRenderbuffer(36161,A)}_syncHandle(A){this.format=this.getParameter(36164),this.width=this.getParameter(36162),this.height=this.getParameter(36163),this.samples=this.getParameter(36011)}_getParameter(A){return this.gl.bindRenderbuffer(36161,this.handle),this.gl.getRenderbufferParameter(36161,A)}}const UY=256,PY=1024,HY=16384,bS=6144,GS=6145,_S=6146,MS=34041,DL="clear: bad arguments";function Up(e){let{framebuffer:A=null,color:t=null,depth:i=null,stencil:n=null}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const r={};A&&(r.framebuffer=A);let o=0;t&&(o|=HY,t!==!0&&(r.clearColor=t)),i&&(o|=UY,i!==!0&&(r.clearDepth=i)),n&&(o|=PY,i!==!0&&(r.clearStencil=i)),cA(o!==0,DL),ui(e,r,()=>{e.clear(o)})}function qY(e){let{framebuffer:A=null,buffer:t=bS,drawBuffer:i=0,value:n=[0,0,0,0]}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};Ft(e),ui(e,{framebuffer:A},()=>{switch(t){case bS:switch(n.constructor){case Int32Array:e.clearBufferiv(t,i,n);break;case Uint32Array:e.clearBufferuiv(t,i,n);break;case Float32Array:default:e.clearBufferfv(t,i,n)}break;case GS:e.clearBufferfv(GS,0,[n]);break;case _S:e.clearBufferiv(_S,0,[n]);break;case MS:const[r,o]=n;e.clearBufferfi(MS,0,r,o);break;default:cA(!1,DL)}})}function JY(e){switch(e){case 6406:case 33326:case 6403:return 1;case 33328:case 33319:return 2;case 6407:case 34837:return 3;case 6408:case 34836:return 4;default:return cA(!1),0}}function VE(e){let A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const{sourceX:t=0,sourceY:i=0,sourceFormat:n=6408}=A;let{sourceAttachment:r=36064,target:o=null,sourceWidth:s,sourceHeight:a,sourceType:g}=A;const{framebuffer:I,deleteFramebuffer:l}=RL(e);cA(I);const{gl:c,handle:C,attachments:B}=I;s=s||I.width,a=a||I.height,r===36064&&C===null&&(r=1028),cA(B[r]),g=g||B[r].type,o=YY(o,g,n,s,a),g=g||ed(o);const u=c.bindFramebuffer(36160,C);return c.readPixels(t,i,s,a,n,g,o),c.bindFramebuffer(36160,u||null),l&&I.delete(),o}function kS(e){let{sourceAttachment:A=36064,targetMaxHeight:t=Number.MAX_SAFE_INTEGER}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=VE(e,{sourceAttachment:A}),{width:n,height:r}=e;for(;r>t;)({data:i,width:n,height:r}=RY({data:i,width:n,height:r}));DY({data:i,width:n,height:r});const o=document.createElement("canvas");o.width=n,o.height=r;const s=o.getContext("2d"),a=s.createImageData(n,r);return a.data.set(i),s.putImageData(a,0,0),o.toDataURL()}function OY(e,A){let t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};const{sourceX:i=0,sourceY:n=0,targetMipmaplevel:r=0,targetInternalFormat:o=6408}=t;let{targetX:s,targetY:a,targetZ:g,width:I,height:l}=t;const{framebuffer:c,deleteFramebuffer:C}=RL(e);cA(c);const{gl:B,handle:u}=c,E=typeof s!="undefined"||typeof a!="undefined"||typeof g!="undefined";s=s||0,a=a||0,g=g||0;const h=B.bindFramebuffer(36160,u);cA(A);let f=null;if(A instanceof ko&&(f=A,I=Number.isFinite(I)?I:f.width,l=Number.isFinite(l)?l:f.height,f.bind(0),A=f.target),!E)B.copyTexImage2D(A,r,o,i,n,I,l,0);else switch(A){case 3553:case 34067:B.copyTexSubImage2D(A,r,s,a,i,n,I,l);break;case 35866:case 32879:Ft(B).copyTexSubImage3D(A,r,s,a,g,i,n,I,l);break}return f&&f.unbind(),B.bindFramebuffer(36160,h||null),C&&c.delete(),f}function RL(e){return e instanceof $e?{framebuffer:e,deleteFramebuffer:!1}:{framebuffer:$Y(e),deleteFramebuffer:!0}}function YY(e,A,t,i,n){if(e)return e;A=A||5121;const r=VI(A,{clamped:!1}),o=JY(t);return new r(i*n*o)}const De={WEBGL2:"WEBGL2",VERTEX_ARRAY_OBJECT:"VERTEX_ARRAY_OBJECT",TIMER_QUERY:"TIMER_QUERY",INSTANCED_RENDERING:"INSTANCED_RENDERING",MULTIPLE_RENDER_TARGETS:"MULTIPLE_RENDER_TARGETS",ELEMENT_INDEX_UINT32:"ELEMENT_INDEX_UINT32",BLEND_EQUATION_MINMAX:"BLEND_EQUATION_MINMAX",FLOAT_BLEND:"FLOAT_BLEND",COLOR_ENCODING_SRGB:"COLOR_ENCODING_SRGB",TEXTURE_DEPTH:"TEXTURE_DEPTH",TEXTURE_FLOAT:"TEXTURE_FLOAT",TEXTURE_HALF_FLOAT:"TEXTURE_HALF_FLOAT",TEXTURE_FILTER_LINEAR_FLOAT:"TEXTURE_FILTER_LINEAR_FLOAT",TEXTURE_FILTER_LINEAR_HALF_FLOAT:"TEXTURE_FILTER_LINEAR_HALF_FLOAT",TEXTURE_FILTER_ANISOTROPIC:"TEXTURE_FILTER_ANISOTROPIC",COLOR_ATTACHMENT_RGBA32F:"COLOR_ATTACHMENT_RGBA32F",COLOR_ATTACHMENT_FLOAT:"COLOR_ATTACHMENT_FLOAT",COLOR_ATTACHMENT_HALF_FLOAT:"COLOR_ATTACHMENT_HALF_FLOAT",GLSL_FRAG_DATA:"GLSL_FRAG_DATA",GLSL_FRAG_DEPTH:"GLSL_FRAG_DEPTH",GLSL_DERIVATIVES:"GLSL_DERIVATIVES",GLSL_TEXTURE_LOD:"GLSL_TEXTURE_LOD"};function KY(e){const A=new Pt(e,{format:6408,type:5126,dataFormat:6408}),t=new $e(e,{id:"test-framebuffer",check:!1,attachments:{[36064]:A}}),i=t.getStatus();return A.delete(),t.delete(),i===36053}var xL={[De.WEBGL2]:[!1,!0],[De.VERTEX_ARRAY_OBJECT]:["OES_vertex_array_object",!0],[De.TIMER_QUERY]:["EXT_disjoint_timer_query","EXT_disjoint_timer_query_webgl2"],[De.INSTANCED_RENDERING]:["ANGLE_instanced_arrays",!0],[De.MULTIPLE_RENDER_TARGETS]:["WEBGL_draw_buffers",!0],[De.ELEMENT_INDEX_UINT32]:["OES_element_index_uint",!0],[De.BLEND_EQUATION_MINMAX]:["EXT_blend_minmax",!0],[De.FLOAT_BLEND]:["EXT_float_blend"],[De.COLOR_ENCODING_SRGB]:["EXT_sRGB",!0],[De.TEXTURE_DEPTH]:["WEBGL_depth_texture",!0],[De.TEXTURE_FLOAT]:["OES_texture_float",!0],[De.TEXTURE_HALF_FLOAT]:["OES_texture_half_float",!0],[De.TEXTURE_FILTER_LINEAR_FLOAT]:["OES_texture_float_linear"],[De.TEXTURE_FILTER_LINEAR_HALF_FLOAT]:["OES_texture_half_float_linear"],[De.TEXTURE_FILTER_ANISOTROPIC]:["EXT_texture_filter_anisotropic"],[De.COLOR_ATTACHMENT_RGBA32F]:[KY,"EXT_color_buffer_float"],[De.COLOR_ATTACHMENT_FLOAT]:[!1,"EXT_color_buffer_float"],[De.COLOR_ATTACHMENT_HALF_FLOAT]:["EXT_color_buffer_half_float"],[De.GLSL_FRAG_DATA]:["WEBGL_draw_buffers",!0],[De.GLSL_FRAG_DEPTH]:["EXT_frag_depth",!0],[De.GLSL_DERIVATIVES]:["OES_standard_derivatives",!0],[De.GLSL_TEXTURE_LOD]:["EXT_shader_texture_lod",!0]};const VY=2;function nd(e,A){return Pp(e,A)}function Pp(e,A){return A=Array.isArray(A)?A:[A],A.every(t=>FL(e,t))}function WY(e){e.luma=e.luma||{},e.luma.caps=e.luma.caps||{};for(const A in xL)e.luma.caps[A]===void 0&&(e.luma.caps[A]=FL(e,A));return e.luma.caps}function FL(e,A){return e.luma=e.luma||{},e.luma.caps=e.luma.caps||{},e.luma.caps[A]===void 0&&(e.luma.caps[A]=zY(e,A)),e.luma.caps[A]||DA.log(VY,"Feature: ".concat(A," not supported"))(),e.luma.caps[A]}function zY(e,A){const t=xL[A];cA(t,A);let i;const n=ie(e)&&t[1]||t[0];if(typeof n=="function")i=n(e);else if(Array.isArray(n)){i=!0;for(const r of n)i=i&&Boolean(e.getExtension(r))}else typeof n=="string"?i=Boolean(e.getExtension(n)):typeof n=="boolean"?i=n:cA(!1);return i}const TS="Multiple render targets not supported";class $e extends Vn{get[Symbol.toStringTag](){return"Framebuffer"}static isSupported(A){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const{colorBufferFloat:i,colorBufferHalfFloat:n}=t;let r=!0;return i&&(r=Boolean(A.getExtension("EXT_color_buffer_float")||A.getExtension("WEBGL_color_buffer_float")||A.getExtension("OES_texture_float"))),n&&(r=r&&Boolean(A.getExtension("EXT_color_buffer_float")||A.getExtension("EXT_color_buffer_half_float"))),r}static getDefaultFramebuffer(A){return A.luma=A.luma||{},A.luma.defaultFramebuffer=A.luma.defaultFramebuffer||new $e(A,{id:"default-framebuffer",handle:null,attachments:{}}),A.luma.defaultFramebuffer}get MAX_COLOR_ATTACHMENTS(){const A=Ft(this.gl);return A.getParameter(A.MAX_COLOR_ATTACHMENTS)}get MAX_DRAW_BUFFERS(){const A=Ft(this.gl);return A.getParameter(A.MAX_DRAW_BUFFERS)}constructor(A){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};super(A,t),this.width=null,this.height=null,this.attachments={},this.readBuffer=36064,this.drawBuffers=[36064],this.ownResources=[],this.initialize(t),Object.seal(this)}get color(){return this.attachments[36064]||null}get texture(){return this.attachments[36064]||null}get depth(){return this.attachments[36096]||this.attachments[33306]||null}get stencil(){return this.attachments[36128]||this.attachments[33306]||null}initialize(A){let{width:t=1,height:i=1,attachments:n=null,color:r=!0,depth:o=!0,stencil:s=!1,check:a=!0,readBuffer:g=void 0,drawBuffers:I=void 0}=A;if(cA(t>=0&&i>=0,"Width and height need to be integers"),this.width=t,this.height=i,n)for(const l in n){const c=n[l];(Array.isArray(c)?c[0]:c).resize({width:t,height:i})}else n=this._createDefaultAttachments(r,o,s,t,i);this.update({clearAttachments:!0,attachments:n,readBuffer:g,drawBuffers:I}),n&&a&&this.checkStatus()}delete(){for(const A of this.ownResources)A.delete();return super.delete(),this}update(A){let{attachments:t={},readBuffer:i,drawBuffers:n,clearAttachments:r=!1,resizeAttachments:o=!0}=A;this.attach(t,{clearAttachments:r,resizeAttachments:o});const{gl:s}=this,a=s.bindFramebuffer(36160,this.handle);return i&&this._setReadBuffer(i),n&&this._setDrawBuffers(n),s.bindFramebuffer(36160,a||null),this}resize(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},{width:t,height:i}=A;if(this.handle===null)return cA(t===void 0&&i===void 0),this.width=this.gl.drawingBufferWidth,this.height=this.gl.drawingBufferHeight,this;t===void 0&&(t=this.gl.drawingBufferWidth),i===void 0&&(i=this.gl.drawingBufferHeight),t!==this.width&&i!==this.height&&DA.log(2,"Resizing framebuffer ".concat(this.id," to ").concat(t,"x").concat(i))();for(const n in this.attachments)this.attachments[n].resize({width:t,height:i});return this.width=t,this.height=i,this}attach(A){let{clearAttachments:t=!1,resizeAttachments:i=!0}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const n={};t&&Object.keys(this.attachments).forEach(o=>{n[o]=null}),Object.assign(n,A);const r=this.gl.bindFramebuffer(36160,this.handle);for(const o in n){cA(o!==void 0,"Misspelled framebuffer binding point?");const s=Number(o),a=n[s];let g=a;if(!g)this._unattach(s);else if(g instanceof Hs)this._attachRenderbuffer({attachment:s,renderbuffer:g});else if(Array.isArray(a)){const[I,l=0,c=0]=a;g=I,this._attachTexture({attachment:s,texture:I,layer:l,level:c})}else this._attachTexture({attachment:s,texture:g,layer:0,level:0});i&&g&&g.resize({width:this.width,height:this.height})}this.gl.bindFramebuffer(36160,r||null),Object.assign(this.attachments,A),Object.keys(this.attachments).filter(o=>!this.attachments[o]).forEach(o=>{delete this.attachments[o]})}checkStatus(){const A=this.getStatus();if(A!==36053)throw new Error(XY(A));return this}getStatus(){const{gl:A}=this,t=A.bindFramebuffer(36160,this.handle),i=A.checkFramebufferStatus(36160);return A.bindFramebuffer(36160,t||null),i}clear(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const{color:t,depth:i,stencil:n,drawBuffers:r=[]}=A,o=this.gl.bindFramebuffer(36160,this.handle);return(t||i||n)&&Up(this.gl,{color:t,depth:i,stencil:n}),r.forEach((s,a)=>{qY(this.gl,{drawBuffer:a,value:s})}),this.gl.bindFramebuffer(36160,o||null),this}readPixels(){return DA.error("Framebuffer.readPixels() is no logner supported, use readPixelsToArray(framebuffer)")(),null}readPixelsToBuffer(){return DA.error("Framebuffer.readPixelsToBuffer()is no logner supported, use readPixelsToBuffer(framebuffer)")(),null}copyToDataUrl(){return DA.error("Framebuffer.copyToDataUrl() is no logner supported, use copyToDataUrl(framebuffer)")(),null}copyToImage(){return DA.error("Framebuffer.copyToImage() is no logner supported, use copyToImage(framebuffer)")(),null}copyToTexture(){return DA.error("Framebuffer.copyToTexture({...}) is no logner supported, use copyToTexture(source, target, opts})")(),null}blit(){return DA.error("Framebuffer.blit({...}) is no logner supported, use blit(source, target, opts)")(),null}invalidate(A){let{attachments:t=[],x:i=0,y:n=0,width:r,height:o}=A;const s=Ft(this.gl),a=s.bindFramebuffer(36008,this.handle);return i===0&&n===0&&r===void 0&&o===void 0?s.invalidateFramebuffer(36008,t):s.invalidateFramebuffer(36008,t,i,n,r,o),s.bindFramebuffer(36008,a),this}getAttachmentParameter(A,t,i){let n=this._getAttachmentParameterFallback(t);return n===null&&(this.gl.bindFramebuffer(36160,this.handle),n=this.gl.getFramebufferAttachmentParameter(36160,A,t),this.gl.bindFramebuffer(36160,null)),i&&n>1e3&&(n=Lr(this.gl,n)),n}getAttachmentParameters(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:36064,t=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:this.constructor.ATTACHMENT_PARAMETERS||[];const n={};for(const r of i){const o=t?Lr(this.gl,r):r;n[o]=this.getAttachmentParameter(A,r,t)}return n}getParameters(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;const t=Object.keys(this.attachments),i={};for(const n of t){const r=Number(n),o=A?Lr(this.gl,r):r;i[o]=this.getAttachmentParameters(r,A)}return i}show(){return typeof window!="undefined"&&window.open(kS(this),"luma-debug-texture"),this}log(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"";if(A>DA.level||typeof window=="undefined")return this;t=t||"Framebuffer ".concat(this.id);const i=kS(this,{targetMaxHeight:100});return DA.image({logLevel:A,message:t,image:i},t)(),this}bind(){let{target:A=36160}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return this.gl.bindFramebuffer(A,this.handle),this}unbind(){let{target:A=36160}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return this.gl.bindFramebuffer(A,null),this}_createDefaultAttachments(A,t,i,n,r){let o=null;return A&&(o=o||{},o[36064]=new Pt(this.gl,{id:"".concat(this.id,"-color0"),pixels:null,format:6408,type:5121,width:n,height:r,mipmaps:!1,parameters:{[10241]:9729,[10240]:9729,[10242]:33071,[10243]:33071}}),this.ownResources.push(o[36064])),t&&i?(o=o||{},o[33306]=new Hs(this.gl,{id:"".concat(this.id,"-depth-stencil"),format:35056,width:n,height:111}),this.ownResources.push(o[33306])):t?(o=o||{},o[36096]=new Hs(this.gl,{id:"".concat(this.id,"-depth"),format:33189,width:n,height:r}),this.ownResources.push(o[36096])):i&&cA(!1),o}_unattach(A){const t=this.attachments[A];!t||(t instanceof Hs?this.gl.framebufferRenderbuffer(36160,A,36161,null):this.gl.framebufferTexture2D(36160,A,3553,null,0),delete this.attachments[A])}_attachRenderbuffer(A){let{attachment:t=36064,renderbuffer:i}=A;const{gl:n}=this;n.framebufferRenderbuffer(36160,t,36161,i.handle),this.attachments[t]=i}_attachTexture(A){let{attachment:t=36064,texture:i,layer:n,level:r}=A;const{gl:o}=this;switch(o.bindTexture(i.target,i.handle),i.target){case 35866:case 32879:Ft(o).framebufferTextureLayer(36160,t,i.target,r,n);break;case 34067:const a=jY(n);o.framebufferTexture2D(36160,t,a,i.handle,r);break;case 3553:o.framebufferTexture2D(36160,t,3553,i.handle,r);break;default:cA(!1,"Illegal texture type")}o.bindTexture(i.target,null),this.attachments[t]=i}_setReadBuffer(A){const t=RO(this.gl);t?t.readBuffer(A):cA(A===36064||A===1029,TS),this.readBuffer=A}_setDrawBuffers(A){const{gl:t}=this,i=Ft(t);if(i)i.drawBuffers(A);else{const n=t.getExtension("WEBGL_draw_buffers");n?n.drawBuffersWEBGL(A):cA(A.length===1&&(A[0]===36064||A[0]===1029),TS)}this.drawBuffers=A}_getAttachmentParameterFallback(A){const t=WY(this.gl);switch(A){case 36052:return t.WEBGL2?null:0;case 33298:case 33299:case 33300:case 33301:case 33302:case 33303:return t.WEBGL2?null:8;case 33297:return t.WEBGL2?null:5125;case 33296:return!t.WEBGL2&&!t.EXT_sRGB?9729:null;default:return null}}_createHandle(){return this.gl.createFramebuffer()}_deleteHandle(){this.gl.deleteFramebuffer(this.handle)}_bindHandle(A){return this.gl.bindFramebuffer(36160,A)}}function jY(e){return e<34069?e+34069:e}function XY(e){return($e.STATUS||{})[e]||"Framebuffer error ".concat(e)}const ZY=[36049,36048,33296,33298,33299,33300,33301,33302,33303];$e.ATTACHMENT_PARAMETERS=ZY;function NL(e,A){cA(e instanceof Pt||e instanceof vL||e instanceof SL);const t=e.constructor,{gl:i,width:n,height:r,format:o,type:s,dataFormat:a,border:g,mipmaps:I}=e,l=Object.assign({width:n,height:r,format:o,type:s,dataFormat:a,border:g,mipmaps:I},A);return new t(i,l)}function $Y(e,A){const{gl:t,width:i,height:n,id:r}=e;return new $e(t,Object.assign({},A,{id:"framebuffer-for-".concat(r),width:i,height:n,attachments:{[36064]:e}}))}function bC(e){let A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"unnamed";const t=/#define[\s*]SHADER_NAME[\s*]([A-Za-z0-9_-]+)[\s*]/,i=e.match(t);return i?i[1]:A}const AK=35632,eK=35633;function tK(e){switch(e){case AK:return"fragment";case eK:return"vertex";default:return"unknown type"}}function iK(e,A,t,i){const n=e.split(/\r?\n/),r={},o={},s=i||bC(A)||"(unnamed)",a="".concat(tK(t)," shader ").concat(s);for(let I=0;I{};class jQ{static isSupported(){return typeof Worker!="undefined"&&zQ||typeof xh!==void 0}constructor(A){y(this,"name",void 0),y(this,"source",void 0),y(this,"url",void 0),y(this,"terminated",!1),y(this,"worker",void 0),y(this,"onMessage",void 0),y(this,"onError",void 0),y(this,"_loadableURL","");const{name:t,source:i,url:n}=A;Un(i||n),this.name=t,this.source=i,this.url=n,this.onMessage=Nh,this.onError=r=>console.log(r),this.worker=zQ?this._createBrowserWorker():this._createNodeWorker()}destroy(){this.onMessage=Nh,this.onError=Nh,this.worker.terminate(),this.terminated=!0}get isRunning(){return Boolean(this.onMessage)}postMessage(A,t){t=t||z2(A),this.worker.postMessage(A,t)}_getErrorFromErrorEvent(A){let t="Failed to load ";return t+="worker ".concat(this.name," from ").concat(this.url,". "),A.message&&(t+="".concat(A.message," in ")),A.lineno&&(t+=":".concat(A.lineno,":").concat(A.colno)),new Error(t)}_createBrowserWorker(){this._loadableURL=pq({source:this.source,url:this.url});const A=new Worker(this._loadableURL,{name:this.name});return A.onmessage=t=>{t.data?this.onMessage(t.data):this.onError(new Error("No data received"))},A.onerror=t=>{this.onError(this._getErrorFromErrorEvent(t)),this.terminated=!0},A.onmessageerror=t=>console.error(t),A}_createNodeWorker(){let A;if(this.url){const i=this.url.includes(":/")||this.url.startsWith("/")?this.url:"./".concat(this.url);A=new xh(i,{eval:!1})}else if(this.source)A=new xh(this.source,{eval:!0});else throw new Error("no worker");return A.on("message",t=>{this.onMessage(t)}),A.on("error",t=>{this.onError(t)}),A.on("exit",t=>{}),A}}class wq{static isSupported(){return jQ.isSupported()}constructor(A){y(this,"name","unnamed"),y(this,"source",void 0),y(this,"url",void 0),y(this,"maxConcurrency",1),y(this,"maxMobileConcurrency",1),y(this,"onDebug",()=>{}),y(this,"reuseWorkers",!0),y(this,"props",{}),y(this,"jobQueue",[]),y(this,"idleQueue",[]),y(this,"count",0),y(this,"isDestroyed",!1),this.source=A.source,this.url=A.url,this.setProps(A)}destroy(){this.idleQueue.forEach(A=>A.destroy()),this.isDestroyed=!0}setProps(A){this.props={...this.props,...A},A.name!==void 0&&(this.name=A.name),A.maxConcurrency!==void 0&&(this.maxConcurrency=A.maxConcurrency),A.maxMobileConcurrency!==void 0&&(this.maxMobileConcurrency=A.maxMobileConcurrency),A.reuseWorkers!==void 0&&(this.reuseWorkers=A.reuseWorkers),A.onDebug!==void 0&&(this.onDebug=A.onDebug)}async startJob(A,t=(n,r,o)=>n.done(o),i=(n,r)=>n.error(r)){const n=new Promise(r=>(this.jobQueue.push({name:A,onMessage:t,onError:i,onStart:r}),this));return this._startQueuedJob(),await n}async _startQueuedJob(){if(!this.jobQueue.length)return;const A=this._getAvailableWorker();if(!A)return;const t=this.jobQueue.shift();if(t){this.onDebug({message:"Starting job",name:t.name,workerThread:A,backlog:this.jobQueue.length});const i=new dq(t.name,A);A.onMessage=n=>t.onMessage(i,n.type,n.payload),A.onError=n=>t.onError(i,n),t.onStart(i);try{await i.result}finally{this.returnWorkerToQueue(A)}}}returnWorkerToQueue(A){this.isDestroyed||!this.reuseWorkers||this.count>this._getMaxConcurrency()?(A.destroy(),this.count--):this.idleQueue.push(A),this.isDestroyed||this._startQueuedJob()}_getAvailableWorker(){if(this.idleQueue.length>0)return this.idleQueue.shift()||null;if(this.count{}};class Fn{static isSupported(){return jQ.isSupported()}static getWorkerFarm(A={}){return Fn._workerFarm=Fn._workerFarm||new Fn({}),Fn._workerFarm.setProps(A),Fn._workerFarm}constructor(A){y(this,"props",void 0),y(this,"workerPools",new Map),this.props={...vq},this.setProps(A),this.workerPools=new Map}destroy(){for(const A of this.workerPools.values())A.destroy();this.workerPools=new Map}setProps(A){this.props={...this.props,...A};for(const t of this.workerPools.values())t.setProps(this._getWorkerPoolProps())}getWorkerPool(A){const{name:t,source:i,url:n}=A;let r=this.workerPools.get(t);return r||(r=new wq({name:t,source:i,url:n}),r.setProps(this._getWorkerPoolProps()),this.workerPools.set(t,r)),r}_getWorkerPoolProps(){return{maxConcurrency:this.props.maxConcurrency,maxMobileConcurrency:this.props.maxMobileConcurrency,reuseWorkers:this.props.reuseWorkers,onDebug:this.props.onDebug}}}y(Fn,"_workerFarm",void 0);const Sq="latest";function Dq(e,A={}){const t=A[e.id]||{},i="".concat(e.id,"-worker.js");let n=t.workerUrl;if(!n&&e.id==="compression"&&(n=A.workerUrl),A._workerType==="test"&&(n="modules/".concat(e.module,"/dist/").concat(i)),!n){let r=e.version;r==="latest"&&(r=Sq);const o=r?"@".concat(r):"";n="https://unpkg.com/@loaders.gl/".concat(e.module).concat(o,"/dist/").concat(i)}return Un(n),n}function Rq(e,A=fq){Un(e,"no worker provided");const t=e.version;return!(!A||!t)}var ia={};function xq(e,A){return!Fn.isSupported()||!zQ&&!(A!=null&&A._nodeWorkers)?!1:e.worker&&(A==null?void 0:A.worker)}async function Fq(e,A,t,i,n){const r=e.id,o=Dq(e,t),a=Fn.getWorkerFarm(t).getWorkerPool({name:r,url:o});t=JSON.parse(JSON.stringify(t)),i=JSON.parse(JSON.stringify(i||{}));const g=await a.startJob("process-on-worker",Nq.bind(null,n));return g.postMessage("process",{input:A,options:t,context:i}),await(await g.result).result}async function Nq(e,A,t,i){switch(t){case"done":A.done(i);break;case"error":A.error(new Error(i.error));break;case"process":const{id:n,input:r,options:o}=i;try{const s=await e(r,o);A.postMessage("done",{id:n,result:s})}catch(s){const a=s instanceof Error?s.message:"unknown error";A.postMessage("error",{id:n,error:a})}break;default:console.warn("parse-with-worker unknown message ".concat(t))}}function j2(e){return e&&typeof e=="object"&&e.isBuffer}function Lq(e){return j2(e)?new Uint8Array(e.buffer,e.byteOffset,e.length).slice().buffer:e}function X2(e){if(j2(e))return Lq(e);if(e instanceof ArrayBuffer)return e;if(ArrayBuffer.isView(e))return e.byteOffset===0&&e.byteLength===e.buffer.byteLength?e.buffer:e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength);if(typeof e=="string"){const A=e;return new TextEncoder().encode(A).buffer}if(e&&typeof e=="object"&&e._toArrayBuffer)return e._toArrayBuffer();throw new Error("toArrayBuffer")}function bq(e,A,t){if(t=t||e.byteLength,e.byteLengthr instanceof ArrayBuffer?new Uint8Array(r):r),t=A.reduce((r,o)=>r+o.byteLength,0),i=new Uint8Array(t);let n=0;for(const r of A)i.set(r,n),n+=r.byteLength;return i.buffer}async function _q(e){const A=[];for await(const t of e)A.push(t);return Gq(...A)}function iS(){let e;if(typeof window!="undefined"&&window.performance)e=window.performance.now();else if(typeof process!="undefined"&&process.hrtime){const A=process.hrtime();e=A[0]*1e3+A[1]/1e6}else e=Date.now();return e}class nS{constructor(A,t){y(this,"name",void 0),y(this,"type",void 0),y(this,"sampleSize",1),y(this,"time",void 0),y(this,"count",void 0),y(this,"samples",void 0),y(this,"lastTiming",void 0),y(this,"lastSampleTime",void 0),y(this,"lastSampleCount",void 0),y(this,"_count",0),y(this,"_time",0),y(this,"_samples",0),y(this,"_startTime",0),y(this,"_timerPending",!1),this.name=A,this.type=t,this.reset()}setSampleSize(A){return this.sampleSize=A,this}incrementCount(){return this.addCount(1),this}decrementCount(){return this.subtractCount(1),this}addCount(A){return this._count+=A,this._samples++,this._checkSampling(),this}subtractCount(A){return this._count-=A,this._samples++,this._checkSampling(),this}addTime(A){return this._time+=A,this.lastTiming=A,this._samples++,this._checkSampling(),this}timeStart(){return this._startTime=iS(),this._timerPending=!0,this}timeEnd(){return this._timerPending?(this.addTime(iS()-this._startTime),this._timerPending=!1,this._checkSampling(),this):this}getSampleAverageCount(){return this.sampleSize>0?this.lastSampleCount/this.sampleSize:0}getSampleAverageTime(){return this.sampleSize>0?this.lastSampleTime/this.sampleSize:0}getSampleHz(){return this.lastSampleTime>0?this.sampleSize/(this.lastSampleTime/1e3):0}getAverageCount(){return this.samples>0?this.count/this.samples:0}getAverageTime(){return this.samples>0?this.time/this.samples:0}getHz(){return this.time>0?this.samples/(this.time/1e3):0}reset(){return this.time=0,this.count=0,this.samples=0,this.lastTiming=0,this.lastSampleTime=0,this.lastSampleCount=0,this._count=0,this._time=0,this._samples=0,this._startTime=0,this._timerPending=!1,this}_checkSampling(){this._samples===this.sampleSize&&(this.lastSampleTime=this._time,this.lastSampleCount=this._count,this.count+=this._count,this.time+=this._time,this.samples+=this._samples,this._time=0,this._count=0,this._samples=0)}}class JE{constructor(A){y(this,"id",void 0),y(this,"stats",{}),this.id=A.id,this.stats={},this._initializeStats(A.stats),Object.seal(this)}get(A){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"count";return this._getOrCreate({name:A,type:t})}get size(){return Object.keys(this.stats).length}reset(){for(const A in this.stats)this.stats[A].reset();return this}forEach(A){for(const t in this.stats)A(this.stats[t])}getTable(){const A={};return this.forEach(t=>{A[t.name]={time:t.time||0,count:t.count||0,average:t.getAverageTime()||0,hz:t.getHz()||0}}),A}_initializeStats(){(arguments.length>0&&arguments[0]!==void 0?arguments[0]:[]).forEach(t=>this._getOrCreate(t))}_getOrCreate(A){if(!A||!A.name)return null;const{name:t,type:i}=A;return this.stats[t]||(A instanceof nS?this.stats[t]=A:this.stats[t]=new nS(t,i)),this.stats[t]}}const Mq="Queued Requests",kq="Active Requests",Tq="Cancelled Requests",Uq="Queued Requests Ever",Pq="Active Requests Ever",Hq={id:"request-scheduler",throttleRequests:!0,maxRequests:6};class qq{constructor(A={}){y(this,"props",void 0),y(this,"stats",void 0),y(this,"activeRequestCount",0),y(this,"requestQueue",[]),y(this,"requestMap",new Map),y(this,"deferredUpdate",null),this.props={...Hq,...A},this.stats=new JE({id:this.props.id}),this.stats.get(Mq),this.stats.get(kq),this.stats.get(Tq),this.stats.get(Uq),this.stats.get(Pq)}scheduleRequest(A,t=()=>0){if(!this.props.throttleRequests)return Promise.resolve({done:()=>{}});if(this.requestMap.has(A))return this.requestMap.get(A);const i={handle:A,priority:0,getPriority:t},n=new Promise(r=>(i.resolve=r,i));return this.requestQueue.push(i),this.requestMap.set(A,n),this._issueNewRequests(),n}_issueRequest(A){const{handle:t,resolve:i}=A;let n=!1;const r=()=>{n||(n=!0,this.requestMap.delete(t),this.activeRequestCount--,this._issueNewRequests())};return this.activeRequestCount++,i?i({done:r}):Promise.resolve({done:r})}_issueNewRequests(){this.deferredUpdate||(this.deferredUpdate=setTimeout(()=>this._issueNewRequestsAsync(),0))}_issueNewRequestsAsync(){this.deferredUpdate=null;const A=Math.max(this.props.maxRequests-this.activeRequestCount,0);if(A!==0){this._updateAllRequests();for(let t=0;tt.priority-i.priority)}_updateRequest(A){return A.priority=A.getPriority(A.handle),A.priority<0?(A.resolve(null),!1):!0}}let Jq="";const rS={};function Oq(e){for(const A in rS)if(e.startsWith(A)){const t=rS[A];e=e.replace(A,t)}return!e.startsWith("http://")&&!e.startsWith("https://")&&(e="".concat(Jq).concat(e)),e}function Yq(e){const A=e&&e.lastIndexOf("/");return A>=0?e.substr(A+1):""}const Kq=e=>typeof e=="boolean",lI=e=>typeof e=="function",bl=e=>e!==null&&typeof e=="object",oS=e=>bl(e)&&e.constructor==={}.constructor,Vq=e=>e&&typeof e[Symbol.iterator]=="function",Wq=e=>e&&typeof e[Symbol.asyncIterator]=="function",Ma=e=>typeof Response!="undefined"&&e instanceof Response||e&&e.arrayBuffer&&e.text&&e.json,ka=e=>typeof Blob!="undefined"&&e instanceof Blob,zq=e=>e&&typeof e=="object"&&e.isBuffer,jq=e=>typeof ReadableStream!="undefined"&&e instanceof ReadableStream||bl(e)&&lI(e.tee)&&lI(e.cancel)&&lI(e.getReader),Xq=e=>bl(e)&&lI(e.read)&&lI(e.pipe)&&Kq(e.readable),Z2=e=>jq(e)||Xq(e),Zq=/^data:([-\w.]+\/[-\w.+]+)(;|,)/,$q=/^([-\w.]+\/[-\w.+]+)/;function AJ(e){const A=$q.exec(e);return A?A[1]:e}function sS(e){const A=Zq.exec(e);return A?A[1]:""}const eJ=/\?.*/;function OE(e){if(Ma(e)){const A=Lh(e.url||""),t=e.headers.get("content-type")||"";return{url:A,type:AJ(t)||sS(A)}}return ka(e)?{url:Lh(e.name||""),type:e.type||""}:typeof e=="string"?{url:Lh(e),type:sS(e)}:{url:"",type:""}}function tJ(e){return Ma(e)?e.headers["content-length"]||-1:ka(e)?e.size:typeof e=="string"?e.length:e instanceof ArrayBuffer||ArrayBuffer.isView(e)?e.byteLength:-1}function Lh(e){return e.replace(eJ,"")}async function $2(e){if(Ma(e))return e;const A={},t=tJ(e);t>=0&&(A["content-length"]=String(t));const{url:i,type:n}=OE(e);n&&(A["content-type"]=n);const r=await rJ(e);r&&(A["x-first-bytes"]=r),typeof e=="string"&&(e=new TextEncoder().encode(e));const o=new Response(e,{headers:A});return Object.defineProperty(o,"url",{value:i}),o}async function iJ(e){if(!e.ok){const A=await nJ(e);throw new Error(A)}}async function nJ(e){let A="Failed to fetch resource ".concat(e.url," (").concat(e.status,"): ");try{const t=e.headers.get("Content-Type");let i=e.statusText;t.includes("application/json")&&(i+=" ".concat(await e.text())),A+=i,A=A.length>60?"".concat(A.slice(0,60),"..."):A}catch{}return A}async function rJ(e){if(typeof e=="string")return"data:,".concat(e.slice(0,5));if(e instanceof Blob){const t=e.slice(0,5);return await new Promise(i=>{const n=new FileReader;n.onload=r=>{var o;return i(r==null||(o=r.target)===null||o===void 0?void 0:o.result)},n.readAsDataURL(t)})}if(e instanceof ArrayBuffer){const t=e.slice(0,5),i=oJ(t);return"data:base64,".concat(i)}return null}function oJ(e){let A="";const t=new Uint8Array(e);for(let i=0;i=0)}function Yn(){return!(typeof process=="object"&&String(process)==="[object process]"&&!process.browser)||AL()}const NC={self:typeof self!="undefined"&&self,window:typeof window!="undefined"&&window,global:typeof global!="undefined"&&global,document:typeof document!="undefined"&&document,process:typeof process=="object"&&process},wc=NC.window||NC.self||NC.global,dg=NC.process||{},eL=typeof __VERSION__!="undefined"?__VERSION__:"untranspiled source";Yn();const bh=globalThis;function tL(e){if(!e&&!Yn())return"Node";if(AL(e))return"Electron";const t=e||(typeof navigator!="undefined"?navigator:{}).userAgent||"";if(t.indexOf("Edge")>-1)return"Edge";const i=t.indexOf("MSIE ")!==-1,n=t.indexOf("Trident/")!==-1;return i||n?"IE":bh.chrome?"Chrome":bh.safari?"Safari":bh.mozInnerScreenX?"Firefox":"Unknown"}function sJ(e){try{const A=window[e],t="__storage_test__";return A.setItem(t,t),A.removeItem(t),A}catch{return null}}class aJ{constructor(A){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"sessionStorage";y(this,"storage",void 0),y(this,"id",void 0),y(this,"config",{}),this.storage=sJ(i),this.id=A,this.config={},Object.assign(this.config,t),this._loadConfiguration()}getConfiguration(){return this.config}setConfiguration(A){return this.config={},this.updateConfiguration(A)}updateConfiguration(A){if(Object.assign(this.config,A),this.storage){const t=JSON.stringify(this.config);this.storage.setItem(this.id,t)}return this}_loadConfiguration(){let A={};if(this.storage){const t=this.storage.getItem(this.id);A=t?JSON.parse(t):{}}return Object.assign(this.config,A),this}}function gJ(e){let A;return e<10?A="".concat(e.toFixed(2),"ms"):e<100?A="".concat(e.toFixed(1),"ms"):e<1e3?A="".concat(e.toFixed(0),"ms"):A="".concat((e/1e3).toFixed(2),"s"),A}function IJ(e){let A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:8;const t=Math.max(A-e.length,0);return"".concat(" ".repeat(t)).concat(e)}function Gh(e,A,t){let i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:600;const n=e.src.replace(/\(/g,"%28").replace(/\)/g,"%29");e.width>i&&(t=Math.min(t,i/e.width));const r=e.width*t,o=e.height*t,s=["font-size:1px;","padding:".concat(Math.floor(o/2),"px ").concat(Math.floor(r/2),"px;"),"line-height:".concat(o,"px;"),"background:url(".concat(n,");"),"background-size:".concat(r,"px ").concat(o,"px;"),"color:transparent;"].join("");return["".concat(A," %c+"),s]}let FB;(function(e){e[e.BLACK=30]="BLACK",e[e.RED=31]="RED",e[e.GREEN=32]="GREEN",e[e.YELLOW=33]="YELLOW",e[e.BLUE=34]="BLUE",e[e.MAGENTA=35]="MAGENTA",e[e.CYAN=36]="CYAN",e[e.WHITE=37]="WHITE",e[e.BRIGHT_BLACK=90]="BRIGHT_BLACK",e[e.BRIGHT_RED=91]="BRIGHT_RED",e[e.BRIGHT_GREEN=92]="BRIGHT_GREEN",e[e.BRIGHT_YELLOW=93]="BRIGHT_YELLOW",e[e.BRIGHT_BLUE=94]="BRIGHT_BLUE",e[e.BRIGHT_MAGENTA=95]="BRIGHT_MAGENTA",e[e.BRIGHT_CYAN=96]="BRIGHT_CYAN",e[e.BRIGHT_WHITE=97]="BRIGHT_WHITE"})(FB||(FB={}));function gS(e){return typeof e=="string"?FB[e.toUpperCase()]||FB.WHITE:e}function lJ(e,A,t){return!Yn&&typeof e=="string"&&(A&&(A=gS(A),e="\x1B[".concat(A,"m").concat(e,"\x1B[39m")),t&&(A=gS(t),e="\x1B[".concat(t+10,"m").concat(e,"\x1B[49m"))),e}function cJ(e){let A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:["constructor"];const t=Object.getPrototypeOf(e),i=Object.getOwnPropertyNames(t);for(const n of i)typeof e[n]=="function"&&(A.find(r=>n===r)||(e[n]=e[n].bind(e)))}function NB(e,A){if(!e)throw new Error(A||"Assertion failed")}function us(){let e;if(Yn&&"performance"in wc){var A,t;e=wc==null||(A=wc.performance)===null||A===void 0||(t=A.now)===null||t===void 0?void 0:t.call(A)}else if("hrtime"in dg){var i;const n=dg==null||(i=dg.hrtime)===null||i===void 0?void 0:i.call(dg);e=n[0]*1e3+n[1]/1e6}else e=Date.now();return e}const hs={debug:Yn&&console.debug||console.log,log:console.log,info:console.info,warn:console.warn,error:console.error},CJ={enabled:!0,level:0};function li(){}const IS={},lS={once:!0};class Gl{constructor(){let{id:A}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{id:""};y(this,"id",void 0),y(this,"VERSION",eL),y(this,"_startTs",us()),y(this,"_deltaTs",us()),y(this,"_storage",void 0),y(this,"userData",{}),y(this,"LOG_THROTTLE_TIMEOUT",0),this.id=A,this._storage=new aJ("__probe-".concat(this.id,"__"),CJ),this.userData={},this.timeStamp("".concat(this.id," started")),cJ(this),Object.seal(this)}set level(A){this.setLevel(A)}get level(){return this.getLevel()}isEnabled(){return this._storage.config.enabled}getLevel(){return this._storage.config.level}getTotal(){return Number((us()-this._startTs).toPrecision(10))}getDelta(){return Number((us()-this._deltaTs).toPrecision(10))}set priority(A){this.level=A}get priority(){return this.level}getPriority(){return this.level}enable(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;return this._storage.updateConfiguration({enabled:A}),this}setLevel(A){return this._storage.updateConfiguration({level:A}),this}get(A){return this._storage.config[A]}set(A,t){this._storage.updateConfiguration({[A]:t})}settings(){console.table?console.table(this._storage.config):console.log(this._storage.config)}assert(A,t){NB(A,t)}warn(A){return this._getLogFunction(0,A,hs.warn,arguments,lS)}error(A){return this._getLogFunction(0,A,hs.error,arguments)}deprecated(A,t){return this.warn("`".concat(A,"` is deprecated and will be removed in a later version. Use `").concat(t,"` instead"))}removed(A,t){return this.error("`".concat(A,"` has been removed. Use `").concat(t,"` instead"))}probe(A,t){return this._getLogFunction(A,t,hs.log,arguments,{time:!0,once:!0})}log(A,t){return this._getLogFunction(A,t,hs.debug,arguments)}info(A,t){return this._getLogFunction(A,t,console.info,arguments)}once(A,t){for(var i=arguments.length,n=new Array(i>2?i-2:0),r=2;r2&&arguments[2]!==void 0?arguments[2]:{collapsed:!1};const n=cS({logLevel:A,message:t,opts:i}),{collapsed:r}=i;return n.method=(r?console.groupCollapsed:console.group)||console.info,this._getLogFunction(n)}groupCollapsed(A,t){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return this.group(A,t,Object.assign({},i,{collapsed:!0}))}groupEnd(A){return this._getLogFunction(A,"",console.groupEnd||li)}withGroup(A,t,i){this.group(A,t)();try{i()}finally{this.groupEnd(A)()}}trace(){console.trace&&console.trace()}_shouldLog(A){return this.isEnabled()&&this.getLevel()>=iL(A)}_getLogFunction(A,t,i,n,r){if(this._shouldLog(A)){r=cS({logLevel:A,message:t,args:n,opts:r}),i=i||r.method,NB(i),r.total=this.getTotal(),r.delta=this.getDelta(),this._deltaTs=us();const o=r.tag||r.message;if(r.once)if(!IS[o])IS[o]=us();else return li;return t=BJ(this.id,r.message,r),i.bind(console,t,...r.args)}return li}}y(Gl,"VERSION",eL);function iL(e){if(!e)return 0;let A;switch(typeof e){case"number":A=e;break;case"object":A=e.logLevel||e.priority||0;break;default:return 0}return NB(Number.isFinite(A)&&A>=0),A}function cS(e){const{logLevel:A,message:t}=e;e.logLevel=iL(A);const i=e.args?Array.from(e.args):[];for(;i.length&&i.shift()!==t;);switch(typeof A){case"string":case"function":t!==void 0&&i.unshift(t),e.message=A;break;case"object":Object.assign(e,A);break}typeof e.message=="function"&&(e.message=e.message());const n=typeof e.message;return NB(n==="string"||n==="object"),Object.assign(e,{args:i},e.opts)}function BJ(e,A,t){if(typeof A=="string"){const i=t.time?IJ(gJ(t.total)):"";A=t.time?"".concat(e,": ").concat(i," ").concat(A):"".concat(e,": ").concat(A),A=lJ(A,t.color,t.background)}return A}function EJ(e){let{image:A,message:t="",scale:i=1}=e;return(void 0)({image:A,message:t,scale:i}),li}function uJ(e){let{image:A,message:t="",scale:i=1}=e;if(typeof A=="string"){const r=new Image;return r.onload=()=>{const o=Gh(r,t,i);console.log(...o)},r.src=A,li}const n=A.nodeName||"";if(n.toLowerCase()==="img")return console.log(...Gh(A,t,i)),li;if(n.toLowerCase()==="canvas"){const r=new Image;return r.onload=()=>console.log(...Gh(r,t,i)),r.src=A.toDataURL(),li}return li}function hJ(e){for(const A in e)for(const t in e[A])return t||"untitled";return"empty"}const CS=new Gl({id:"loaders.gl"});class fJ{log(){return()=>{}}info(){return()=>{}}warn(){return()=>{}}error(){return()=>{}}}class QJ{constructor(){y(this,"console",void 0),this.console=console}log(...A){return this.console.log.bind(this.console,...A)}info(...A){return this.console.info.bind(this.console,...A)}warn(...A){return this.console.warn.bind(this.console,...A)}error(...A){return this.console.error.bind(this.console,...A)}}const nL={fetch:null,mimeType:void 0,nothrow:!1,log:new QJ,CDN:"https://unpkg.com/@loaders.gl",worker:!0,maxConcurrency:3,maxMobileConcurrency:1,reuseWorkers:Np,_nodeWorkers:!1,_workerType:"",limit:0,_limitMB:0,batchSize:"auto",batchDebounceMs:0,metadata:!1,transforms:[]},dJ={throws:"nothrow",dataType:"(no longer used)",uri:"baseUri",method:"fetch.method",headers:"fetch.headers",body:"fetch.body",mode:"fetch.mode",credentials:"fetch.credentials",cache:"fetch.cache",redirect:"fetch.redirect",referrer:"fetch.referrer",referrerPolicy:"fetch.referrerPolicy",integrity:"fetch.integrity",keepalive:"fetch.keepalive",signal:"fetch.signal"};function rL(){globalThis.loaders=globalThis.loaders||{};const{loaders:e}=globalThis;return e._state=e._state||{},e._state}const oL=()=>{const e=rL();return e.globalOptions=e.globalOptions||{...nL},e.globalOptions};function pJ(e,A,t,i){return t=t||[],t=Array.isArray(t)?t:[t],yJ(e,t),wJ(A,e,i)}function sL(e,A){const t=oL(),i=e||t;return typeof i.fetch=="function"?i.fetch:bl(i.fetch)?n=>aS(n,i):A!=null&&A.fetch?A==null?void 0:A.fetch:aS}function yJ(e,A){BS(e,null,nL,dJ,A);for(const t of A){const i=e&&e[t.id]||{},n=t.options&&t.options[t.id]||{},r=t.deprecatedOptions&&t.deprecatedOptions[t.id]||{};BS(i,t.id,n,r,A)}}function BS(e,A,t,i,n){const r=A||"Top level",o=A?"".concat(A,"."):"";for(const s in e){const a=!A&&bl(e[s]),g=s==="baseUri"&&!A,I=s==="workerUrl"&&A;if(!(s in t)&&!g&&!I){if(s in i)CS.warn("".concat(r," loader option '").concat(o).concat(s,"' no longer supported, use '").concat(i[s],"'"))();else if(!a){const l=mJ(s,n);CS.warn("".concat(r," loader option '").concat(o).concat(s,"' not recognized. ").concat(l))()}}}}function mJ(e,A){const t=e.toLowerCase();let i="";for(const n of A)for(const r in n.options){if(e===r)return"Did you mean '".concat(n.id,".").concat(r,"'?");const o=r.toLowerCase();(t.startsWith(o)||o.startsWith(t))&&(i=i||"Did you mean '".concat(n.id,".").concat(r,"'?"))}return i}function wJ(e,A,t){const n={...e.options||{}};return vJ(n,t),n.log===null&&(n.log=new fJ),ES(n,oL()),ES(n,A),n}function ES(e,A){for(const t in A)if(t in A){const i=A[t];oS(i)&&oS(e[t])?e[t]={...e[t],...A[t]}:e[t]=A[t]}}function vJ(e,A){A&&!("baseUri"in e)&&(e.baseUri=A)}function Lp(e){var A;return e?(Array.isArray(e)&&(e=e[0]),Array.isArray((A=e)===null||A===void 0?void 0:A.extensions)):!1}function bp(e){var A,t;xB(e,"null loader"),xB(Lp(e),"invalid loader");let i;return Array.isArray(e)&&(i=e[1],e=e[0],e={...e,options:{...e.options,...i}}),((A=e)!==null&&A!==void 0&&A.parseTextSync||(t=e)!==null&&t!==void 0&&t.parseText)&&(e.text=!0),e.text||(e.binary=!0),e}const aL=()=>{const e=rL();return e.loaderRegistry=e.loaderRegistry||[],e.loaderRegistry};function SJ(e){const A=aL();e=Array.isArray(e)?e:[e];for(const t of e){const i=bp(t);A.find(n=>i===n)||A.unshift(i)}}function DJ(){return aL()}const RJ=new Gl({id:"loaders.gl"}),xJ=/\.([^.]+)$/;async function FJ(e,A=[],t,i){if(!gL(e))return null;let n=uS(e,A,{...t,nothrow:!0},i);if(n)return n;if(ka(e)&&(e=await e.slice(0,10).arrayBuffer(),n=uS(e,A,t,i)),!n&&!(t!=null&&t.nothrow))throw new Error(IL(e));return n}function uS(e,A=[],t,i){if(!gL(e))return null;if(A&&!Array.isArray(A))return bp(A);let n=[];A&&(n=n.concat(A)),t!=null&&t.ignoreRegisteredLoaders||n.push(...DJ()),LJ(n);const r=NJ(e,n,t,i);if(!r&&!(t!=null&&t.nothrow))throw new Error(IL(e));return r}function NJ(e,A,t,i){const{url:n,type:r}=OE(e),o=n||(i==null?void 0:i.url);let s=null,a="";if(t!=null&&t.mimeType&&(s=_h(A,t==null?void 0:t.mimeType),a="match forced by supplied MIME type ".concat(t==null?void 0:t.mimeType)),s=s||bJ(A,o),a=a||(s?"matched url ".concat(o):""),s=s||_h(A,r),a=a||(s?"matched MIME type ".concat(r):""),s=s||_J(A,e),a=a||(s?"matched initial data ".concat(lL(e)):""),s=s||_h(A,t==null?void 0:t.fallbackMimeType),a=a||(s?"matched fallback MIME type ".concat(r):""),a){var g;RJ.log(1,"selectLoader selected ".concat((g=s)===null||g===void 0?void 0:g.name,": ").concat(a,"."))}return s}function gL(e){return!(e instanceof Response&&e.status===204)}function IL(e){const{url:A,type:t}=OE(e);let i="No valid loader found (";i+=A?"".concat(Yq(A),", "):"no url provided, ",i+="MIME type: ".concat(t?'"'.concat(t,'"'):"not provided",", ");const n=e?lL(e):"";return i+=n?' first bytes: "'.concat(n,'"'):"first bytes: not available",i+=")",i}function LJ(e){for(const A of e)bp(A)}function bJ(e,A){const t=A&&xJ.exec(A),i=t&&t[1];return i?GJ(e,i):null}function GJ(e,A){A=A.toLowerCase();for(const t of e)for(const i of t.extensions)if(i.toLowerCase()===A)return t;return null}function _h(e,A){for(const t of e)if(t.mimeTypes&&t.mimeTypes.includes(A)||A==="application/x.".concat(t.id))return t;return null}function _J(e,A){if(!A)return null;for(const t of e)if(typeof A=="string"){if(MJ(A,t))return t}else if(ArrayBuffer.isView(A)){if(hS(A.buffer,A.byteOffset,t))return t}else if(A instanceof ArrayBuffer&&hS(A,0,t))return t;return null}function MJ(e,A){return A.testText?A.testText(e):(Array.isArray(A.tests)?A.tests:[A.tests]).some(i=>e.startsWith(i))}function hS(e,A,t){return(Array.isArray(t.tests)?t.tests:[t.tests]).some(n=>kJ(e,A,t,n))}function kJ(e,A,t,i){if(i instanceof ArrayBuffer)return bq(i,e,i.byteLength);switch(typeof i){case"function":return i(e,t);case"string":const n=XQ(e,A,i.length);return i===n;default:return!1}}function lL(e,A=5){return typeof e=="string"?e.slice(0,A):ArrayBuffer.isView(e)?XQ(e.buffer,e.byteOffset,A):e instanceof ArrayBuffer?XQ(e,0,A):""}function XQ(e,A,t){if(e.byteLength{try{t.onload=()=>i(t),t.onerror=r=>n(new Error("Could not load image ".concat(e,": ").concat(r)))}catch(r){n(r)}})}const IO={};let QS=!0;async function lO(e,A,t){let i;_p(t)?i=await BL(e,A,t):i=CL(e,t);const n=A&&A.imagebitmap;return await cO(i,n)}async function cO(e,A=null){if((CO(A)||!QS)&&(A=null),A)try{return await createImageBitmap(e,A)}catch(t){console.warn(t),QS=!1}return await createImageBitmap(e)}function CO(e){for(const A in e||IO)return!1;return!0}const An=!1,cI=!0;function EL(e){const A=_l(e);return BO(A)||hO(A)||EO(A)||uO(A)}function BO(e){const A=_l(e);return A.byteLength>=24&&A.getUint32(0,An)===2303741511?{mimeType:"image/png",width:A.getUint32(16,An),height:A.getUint32(20,An)}:null}function EO(e){const A=_l(e);return A.byteLength>=10&&A.getUint32(0,An)===1195984440?{mimeType:"image/gif",width:A.getUint16(6,cI),height:A.getUint16(8,cI)}:null}function uO(e){const A=_l(e);return A.byteLength>=14&&A.getUint16(0,An)===16973&&A.getUint32(2,cI)===A.byteLength?{mimeType:"image/bmp",width:A.getUint32(18,cI),height:A.getUint32(22,cI)}:null}function hO(e){const A=_l(e);if(!(A.byteLength>=3&&A.getUint16(0,An)===65496&&A.getUint8(2)===255))return null;const{tableMarkers:i,sofMarkers:n}=fO();let r=2;for(;r+9Boolean(EL(new DataView(e)))],options:wO};var Ae=new Gl({id:"deck"});let ed={};function vO(e){ed=e}function Rt(e,A,t,i){Ae.level>0&&ed[e]&&ed[e].call(null,A,t,i)}function SO(e){const A=e[0],t=e[e.length-1];return A==="{"&&t==="}"||A==="["&&t==="]"}var DO={id:"JSON",name:"JSON",module:"",version:"",options:{},extensions:["json","geojson"],mimeTypes:["application/json","application/geo+json"],testText:SO,parseTextSync:JSON.parse};const CI="8.8.9",LC=globalThis.deck&&globalThis.deck.VERSION;if(LC&&LC!==CI)throw new Error("deck.gl - multiple versions detected: ".concat(LC," vs ").concat(CI));LC||(Ae.log(1,"deck.gl ".concat(CI))(),globalThis.deck={...globalThis.deck,VERSION:CI,version:CI,log:Ae,_registerLoggers:vO},SJ([DO,[uL,{imagebitmap:{premultiplyAlpha:"none"}}]]));var RO=globalThis.deck;const DA=new Gl({id:"luma.gl"});function kt(e,A){if(!e)throw new Error(A||"luma.gl: assertion failed.")}const xO="Invalid WebGLRenderingContext",FO="Requires WebGL2";function YE(e){return typeof WebGLRenderingContext!="undefined"&&e instanceof WebGLRenderingContext||typeof WebGL2RenderingContext!="undefined"&&e instanceof WebGL2RenderingContext?!0:Boolean(e&&Number.isFinite(e._version))}function ie(e){return typeof WebGL2RenderingContext!="undefined"&&e instanceof WebGL2RenderingContext?!0:Boolean(e&&e._version===2)}function NO(e){return ie(e)?e:null}function KE(e){return kt(YE(e),xO),e}function Ft(e){return kt(ie(e),FO),e}const Jg={};function LO(e){globalThis.console&&globalThis.console.error&&globalThis.console.error(e)}function bO(e){globalThis.console&&globalThis.console.log&&globalThis.console.log(e)}function GO(e,A){Jg[e]=!0,A!==void 0&&LO(A)}function _O(e){const A=e.getError;e.getError=function(){let i;do i=A.apply(e),i!==0&&(Jg[i]=!0);while(i!==0);for(i in Jg)if(Jg[i])return delete Jg[i],parseInt(i,10);return 0}}const Ml=function e(A){const t=A.gl;this.ext=A,this.isAlive=!0,this.hasBeenBound=!1,this.elementArrayBuffer=null,this.attribs=new Array(A.maxVertexAttribs);for(let i=0;i{bO("OESVertexArrayObject emulation library context restored"),t.reset_()},!0),this.reset_()};ns.prototype.VERTEX_ARRAY_BINDING_OES=34229;ns.prototype.reset_=function(){if(this.vertexArrayObjects!==void 0)for(let i=0;iie(e)?void 0:0,KO={[3074]:e=>ie(e)?void 0:36064,[PO]:e=>ie(e)?void 0:HO,[35977]:Le,[32937]:Le,[qO]:(e,A)=>{const t=ie(e)?e.getExtension(TO):e.getExtension(kO);return t&&t.GPU_DISJOINT_EXT?A(t.GPU_DISJOINT_EXT):0},[OO]:(e,A)=>{const t=e.getExtension(yS);return A(t&&t.UNMASKED_VENDOR_WEBGL||7936)},[YO]:(e,A)=>{const t=e.getExtension(yS);return A(t&&t.UNMASKED_RENDERER_WEBGL||7937)},[JO]:(e,A)=>{const t=e.luma.extensions[UO];return t?A(t.MAX_TEXTURE_MAX_ANISOTROPY_EXT):1},[32883]:Le,[35071]:Le,[37447]:Le,[36063]:(e,A)=>{if(!ie(e)){const t=e.getExtension(pS);return t?A(t.MAX_COLOR_ATTACHMENTS_WEBGL):0}},[35379]:Le,[35374]:Le,[35377]:Le,[34852]:e=>{if(!ie(e)){const A=e.getExtension(pS);return A?A.MAX_DRAW_BUFFERS_WEBGL:0}},[36203]:e=>e.getExtension(dS)?2147483647:65535,[33001]:e=>e.getExtension(dS)?16777216:65535,[33e3]:e=>16777216,[37157]:Le,[35373]:Le,[35657]:Le,[36183]:Le,[37137]:Le,[34045]:Le,[35978]:Le,[35979]:Le,[35968]:Le,[35376]:Le,[35375]:Le,[35659]:Le,[37154]:Le,[35371]:Le,[35658]:Le,[35076]:Le,[35077]:Le,[35380]:Le};function VO(e,A,t){const i=KO[t],n=typeof i=="function"?i(e,A,t):i;return n!==void 0?n:A(t)}const WO="OES_vertex_array_object",hL="ANGLE_instanced_arrays",zO="WEBGL_draw_buffers",jO="EXT_disjoint_timer_query",XO="EXT_texture_filter_anisotropic",ZO="VertexArray requires WebGL2 or OES_vertex_array_object extension";function $O(e,A){return{webgl2:ie(e),ext:e.getExtension(A)}}const fL={[WO]:{meta:{suffix:"OES"},createVertexArray:()=>{kt(!1,ZO)},deleteVertexArray:()=>{},bindVertexArray:()=>{},isVertexArray:()=>!1},[hL]:{meta:{suffix:"ANGLE"},vertexAttribDivisor(e,A){kt(A===0,"WebGL instanced rendering not supported")},drawElementsInstanced:()=>{},drawArraysInstanced:()=>{}},[zO]:{meta:{suffix:"WEBGL"},drawBuffers:()=>{kt(!1)}},[jO]:{meta:{suffix:"EXT"},createQuery:()=>{kt(!1)},deleteQuery:()=>{kt(!1)},beginQuery:()=>{kt(!1)},endQuery:()=>{},getQuery(e,A){return this.getQueryObject(e,A)},getQueryParameter(e,A){return this.getQueryObject(e,A)},getQueryObject:()=>{}}},Mh={readBuffer:(e,A,t)=>{ie(e)&&A(t)},getVertexAttrib:(e,A,t,i)=>{const{webgl2:n,ext:r}=$O(e,hL);let o;switch(i){case 35069:o=n?void 0:!1;break;case 35070:o=!n&&!r?0:void 0;break}return o!==void 0?o:A(t,i)},getProgramParameter:(e,A,t,i)=>{if(!ie(e))switch(i){case 35967:return 35981;case 35971:return 0;case 35382:return 0}return A(t,i)},getInternalformatParameter:(e,A,t,i,n)=>{if(!ie(e))switch(n){case 32937:return new Int32Array([0])}return e.getInternalformatParameter(t,i,n)},getTexParameter(e,A,t,i){switch(i){case 34046:const{extensions:n}=e.luma,r=n[XO];i=r&&r.TEXTURE_MAX_ANISOTROPY_EXT||34046;break}return A(t,i)},getParameter:VO,hint(e,A,t,i){return A(t,i)}};function AY(e){e.luma=e.luma||{};const{luma:A}=e;return A.polyfilled||(MO(e),eY(e),iY(e,fL),tY(e,{target:A,target2:e}),A.polyfilled=!0),e}globalThis.polyfillContext=AY;function eY(e){e.luma.extensions={};const A=e.getSupportedExtensions()||[];for(const t of A)e.luma[t]=e.getExtension(t)}function tY(e,A){let{target:t,target2:i}=A;Object.keys(Mh).forEach(n=>{if(typeof Mh[n]=="function"){const r=e[n]?e[n].bind(e):()=>{},o=Mh[n].bind(null,e,r);t[n]=o,i[n]=o}})}function iY(e,A){for(const t of Object.getOwnPropertyNames(A))t!=="overrides"&&nY(e,{extension:t,target:e.luma,target2:e})}function nY(e,A){let{extension:t,target:i,target2:n}=A;const r=fL[t];kt(r);const{meta:o={}}=r,{suffix:s=""}=o,a=e.getExtension(t);for(const g of Object.keys(r)){const I="".concat(g).concat(s);let l=null;g==="meta"||typeof e[g]=="function"||(a&&typeof a[I]=="function"?l=function(){return a[I](...arguments)}:typeof r[g]=="function"&&(l=r[g].bind(i))),l&&(i[g]=l,n[g]=l)}}const Mp={[3042]:!1,[32773]:new Float32Array([0,0,0,0]),[32777]:32774,[34877]:32774,[32969]:1,[32968]:0,[32971]:1,[32970]:0,[3106]:new Float32Array([0,0,0,0]),[3107]:[!0,!0,!0,!0],[2884]:!1,[2885]:1029,[2929]:!1,[2931]:1,[2932]:513,[2928]:new Float32Array([0,1]),[2930]:!0,[3024]:!0,[36006]:null,[2886]:2305,[33170]:4352,[2849]:1,[32823]:!1,[32824]:0,[10752]:0,[32938]:1,[32939]:!1,[3089]:!1,[3088]:new Int32Array([0,0,1024,1024]),[2960]:!1,[2961]:0,[2968]:4294967295,[36005]:4294967295,[2962]:519,[2967]:0,[2963]:4294967295,[34816]:519,[36003]:0,[36004]:4294967295,[2964]:7680,[2965]:7680,[2966]:7680,[34817]:7680,[34818]:7680,[34819]:7680,[2978]:[0,0,1024,1024],[3333]:4,[3317]:4,[37440]:!1,[37441]:!1,[37443]:37444,[35723]:4352,[36010]:null,[35977]:!1,[3330]:0,[3332]:0,[3331]:0,[3314]:0,[32878]:0,[3316]:0,[3315]:0,[32877]:0},ir=(e,A,t)=>A?e.enable(t):e.disable(t),mS=(e,A,t)=>e.hint(t,A),Xt=(e,A,t)=>e.pixelStorei(t,A),rY=(e,A)=>{const t=ie(e)?36009:36160;return e.bindFramebuffer(t,A)},oY=(e,A)=>e.bindFramebuffer(36008,A);function pg(e){return Array.isArray(e)||ArrayBuffer.isView(e)}const sY={[3042]:ir,[32773]:(e,A)=>e.blendColor(...A),[32777]:"blendEquation",[34877]:"blendEquation",[32969]:"blendFunc",[32968]:"blendFunc",[32971]:"blendFunc",[32970]:"blendFunc",[3106]:(e,A)=>e.clearColor(...A),[3107]:(e,A)=>e.colorMask(...A),[2884]:ir,[2885]:(e,A)=>e.cullFace(A),[2929]:ir,[2931]:(e,A)=>e.clearDepth(A),[2932]:(e,A)=>e.depthFunc(A),[2928]:(e,A)=>e.depthRange(...A),[2930]:(e,A)=>e.depthMask(A),[3024]:ir,[35723]:mS,[36006]:rY,[2886]:(e,A)=>e.frontFace(A),[33170]:mS,[2849]:(e,A)=>e.lineWidth(A),[32823]:ir,[32824]:"polygonOffset",[10752]:"polygonOffset",[35977]:ir,[32938]:"sampleCoverage",[32939]:"sampleCoverage",[3089]:ir,[3088]:(e,A)=>e.scissor(...A),[2960]:ir,[2961]:(e,A)=>e.clearStencil(A),[2968]:(e,A)=>e.stencilMaskSeparate(1028,A),[36005]:(e,A)=>e.stencilMaskSeparate(1029,A),[2962]:"stencilFuncFront",[2967]:"stencilFuncFront",[2963]:"stencilFuncFront",[34816]:"stencilFuncBack",[36003]:"stencilFuncBack",[36004]:"stencilFuncBack",[2964]:"stencilOpFront",[2965]:"stencilOpFront",[2966]:"stencilOpFront",[34817]:"stencilOpBack",[34818]:"stencilOpBack",[34819]:"stencilOpBack",[2978]:(e,A)=>e.viewport(...A),[3333]:Xt,[3317]:Xt,[37440]:Xt,[37441]:Xt,[37443]:Xt,[3330]:Xt,[3332]:Xt,[3331]:Xt,[36010]:oY,[3314]:Xt,[32878]:Xt,[3316]:Xt,[3315]:Xt,[32877]:Xt,framebuffer:(e,A)=>{const t=A&&"handle"in A?A.handle:A;return e.bindFramebuffer(36160,t)},blend:(e,A)=>A?e.enable(3042):e.disable(3042),blendColor:(e,A)=>e.blendColor(...A),blendEquation:(e,A)=>{A=pg(A)?A:[A,A],e.blendEquationSeparate(...A)},blendFunc:(e,A)=>{A=pg(A)&&A.length===2?[...A,...A]:A,e.blendFuncSeparate(...A)},clearColor:(e,A)=>e.clearColor(...A),clearDepth:(e,A)=>e.clearDepth(A),clearStencil:(e,A)=>e.clearStencil(A),colorMask:(e,A)=>e.colorMask(...A),cull:(e,A)=>A?e.enable(2884):e.disable(2884),cullFace:(e,A)=>e.cullFace(A),depthTest:(e,A)=>A?e.enable(2929):e.disable(2929),depthFunc:(e,A)=>e.depthFunc(A),depthMask:(e,A)=>e.depthMask(A),depthRange:(e,A)=>e.depthRange(...A),dither:(e,A)=>A?e.enable(3024):e.disable(3024),derivativeHint:(e,A)=>{e.hint(35723,A)},frontFace:(e,A)=>e.frontFace(A),mipmapHint:(e,A)=>e.hint(33170,A),lineWidth:(e,A)=>e.lineWidth(A),polygonOffsetFill:(e,A)=>A?e.enable(32823):e.disable(32823),polygonOffset:(e,A)=>e.polygonOffset(...A),sampleCoverage:(e,A)=>e.sampleCoverage(...A),scissorTest:(e,A)=>A?e.enable(3089):e.disable(3089),scissor:(e,A)=>e.scissor(...A),stencilTest:(e,A)=>A?e.enable(2960):e.disable(2960),stencilMask:(e,A)=>{A=pg(A)?A:[A,A];const[t,i]=A;e.stencilMaskSeparate(1028,t),e.stencilMaskSeparate(1029,i)},stencilFunc:(e,A)=>{A=pg(A)&&A.length===3?[...A,...A]:A;const[t,i,n,r,o,s]=A;e.stencilFuncSeparate(1028,t,i,n),e.stencilFuncSeparate(1029,r,o,s)},stencilOp:(e,A)=>{A=pg(A)&&A.length===3?[...A,...A]:A;const[t,i,n,r,o,s]=A;e.stencilOpSeparate(1028,t,i,n),e.stencilOpSeparate(1029,r,o,s)},viewport:(e,A)=>e.viewport(...A)};function Ke(e,A,t){return A[e]!==void 0?A[e]:t[e]}const aY={blendEquation:(e,A,t)=>e.blendEquationSeparate(Ke(32777,A,t),Ke(34877,A,t)),blendFunc:(e,A,t)=>e.blendFuncSeparate(Ke(32969,A,t),Ke(32968,A,t),Ke(32971,A,t),Ke(32970,A,t)),polygonOffset:(e,A,t)=>e.polygonOffset(Ke(32824,A,t),Ke(10752,A,t)),sampleCoverage:(e,A,t)=>e.sampleCoverage(Ke(32938,A,t),Ke(32939,A,t)),stencilFuncFront:(e,A,t)=>e.stencilFuncSeparate(1028,Ke(2962,A,t),Ke(2967,A,t),Ke(2963,A,t)),stencilFuncBack:(e,A,t)=>e.stencilFuncSeparate(1029,Ke(34816,A,t),Ke(36003,A,t),Ke(36004,A,t)),stencilOpFront:(e,A,t)=>e.stencilOpSeparate(1028,Ke(2964,A,t),Ke(2965,A,t),Ke(2966,A,t)),stencilOpBack:(e,A,t)=>e.stencilOpSeparate(1029,Ke(34817,A,t),Ke(34818,A,t),Ke(34819,A,t))},wS={enable:(e,A)=>e({[A]:!0}),disable:(e,A)=>e({[A]:!1}),pixelStorei:(e,A,t)=>e({[A]:t}),hint:(e,A,t)=>e({[A]:t}),bindFramebuffer:(e,A,t)=>{switch(A){case 36160:return e({[36006]:t,[36010]:t});case 36009:return e({[36006]:t});case 36008:return e({[36010]:t});default:return null}},blendColor:(e,A,t,i,n)=>e({[32773]:new Float32Array([A,t,i,n])}),blendEquation:(e,A)=>e({[32777]:A,[34877]:A}),blendEquationSeparate:(e,A,t)=>e({[32777]:A,[34877]:t}),blendFunc:(e,A,t)=>e({[32969]:A,[32968]:t,[32971]:A,[32970]:t}),blendFuncSeparate:(e,A,t,i,n)=>e({[32969]:A,[32968]:t,[32971]:i,[32970]:n}),clearColor:(e,A,t,i,n)=>e({[3106]:new Float32Array([A,t,i,n])}),clearDepth:(e,A)=>e({[2931]:A}),clearStencil:(e,A)=>e({[2961]:A}),colorMask:(e,A,t,i,n)=>e({[3107]:[A,t,i,n]}),cullFace:(e,A)=>e({[2885]:A}),depthFunc:(e,A)=>e({[2932]:A}),depthRange:(e,A,t)=>e({[2928]:new Float32Array([A,t])}),depthMask:(e,A)=>e({[2930]:A}),frontFace:(e,A)=>e({[2886]:A}),lineWidth:(e,A)=>e({[2849]:A}),polygonOffset:(e,A,t)=>e({[32824]:A,[10752]:t}),sampleCoverage:(e,A,t)=>e({[32938]:A,[32939]:t}),scissor:(e,A,t,i,n)=>e({[3088]:new Int32Array([A,t,i,n])}),stencilMask:(e,A)=>e({[2968]:A,[36005]:A}),stencilMaskSeparate:(e,A,t)=>e({[A===1028?2968:36005]:t}),stencilFunc:(e,A,t,i)=>e({[2962]:A,[2967]:t,[2963]:i,[34816]:A,[36003]:t,[36004]:i}),stencilFuncSeparate:(e,A,t,i,n)=>e({[A===1028?2962:34816]:t,[A===1028?2967:36003]:i,[A===1028?2963:36004]:n}),stencilOp:(e,A,t,i)=>e({[2964]:A,[2965]:t,[2966]:i,[34817]:A,[34818]:t,[34819]:i}),stencilOpSeparate:(e,A,t,i,n)=>e({[A===1028?2964:34817]:t,[A===1028?2965:34818]:i,[A===1028?2966:34819]:n}),viewport:(e,A,t,i,n)=>e({[2978]:[A,t,i,n]})},Oi=(e,A)=>e.isEnabled(A),vS={[3042]:Oi,[2884]:Oi,[2929]:Oi,[3024]:Oi,[32823]:Oi,[32926]:Oi,[32928]:Oi,[3089]:Oi,[2960]:Oi,[35977]:Oi};function QL(e){for(const A in e)return!1;return!0}function gY(e,A){if(e===A)return!0;const t=Array.isArray(e)||ArrayBuffer.isView(e),i=Array.isArray(A)||ArrayBuffer.isView(A);if(t&&i&&e.length===A.length){for(let n=0;n{}}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.gl=A,this.program=null,this.stateStack=[],this.enable=!0,this.cache=t?BY(A):Object.assign({},Mp),this.log=i,this._updateCache=this._updateCache.bind(this),Object.seal(this)}push(){this.stateStack.push({})}pop(){kt(this.stateStack.length>0);const A=this.stateStack[this.stateStack.length-1];Pn(this.gl,A),this.stateStack.pop()}_updateCache(A){let t=!1,i;const n=this.stateStack.length>0&&this.stateStack[this.stateStack.length-1];for(const r in A){kt(r!==void 0);const o=A[r],s=this.cache[r];gY(o,s)||(t=!0,i=s,n&&!(r in n)&&(n[r]=s),this.cache[r]=o)}return{valueChanged:t,oldValue:i}}}function dL(e){let A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const{enable:t=!0,copyState:i}=A;if(kt(i!==void 0),!e.state){const{polyfillContext:n}=globalThis;n&&n(e),e.state=new cY(e,{copyState:i}),lY(e);for(const r in wS){const o=wS[r];IY(e,r,o)}SS(e,"getParameter"),SS(e,"isEnabled")}return e.state.enable=t,e}function CY(e){e.state||dL(e,{copyState:!1}),e.state.push()}function DS(e){kt(e.state),e.state.pop()}function Pn(e,A){if(kt(YE(e),"setParameters requires a WebGL context"),QL(A))return;const t={};for(const n in A){const r=Number(n),o=sY[n];o&&(typeof o=="string"?t[o]=!0:o(e,A[n],r))}const i=e.state&&e.state.cache;if(i)for(const n in t){const r=aY[n];r(e,A,i)}}function BY(e,A){if(A=A||Mp,typeof A=="number"){const n=A,r=vS[n];return r?r(e,n):e.getParameter(n)}const t=Array.isArray(A)?A:Object.keys(A),i={};for(const n of t){const r=vS[n];i[n]=r?r(e,Number(n)):e.getParameter(Number(n))}return i}function EY(e){Pn(e,Mp)}function ui(e,A,t){if(QL(A))return t(e);const{nocatch:i=!0}=A;CY(e),Pn(e,A);let n;if(i)n=t(e),DS(e);else try{n=t(e)}finally{DS(e)}return n}function ua(e){const{luma:A}=e;if(e.canvas&&A){const{clientWidth:t}=A.canvasSizeInfo;return t?e.drawingBufferWidth/t:1}return 1}function kh(e,A){let t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;const i=ua(e),n=e.drawingBufferWidth,r=e.drawingBufferHeight;return hY(A,i,n,r,t)}function uY(e){const A=typeof window=="undefined"?1:window.devicePixelRatio||1;return Number.isFinite(e)?e<=0?1:e:e?A:1}function hY(e,A,t,i,n){const r=RS(e[0],A,t);let o=xS(e[1],A,i,n),s=RS(e[0]+1,A,t);const a=s===t-1?s:s-1;s=xS(e[1]+1,A,i,n);let g;return n?(s=s===0?s:s+1,g=o,o=s):g=s===i-1?s:s-1,{x:r,y:o,width:Math.max(a-r+1,1),height:Math.max(g-o+1,1)}}function RS(e,A,t){return Math.min(Math.round(e*A),t-1)}function xS(e,A,t,i){return i?Math.max(0,t-1-Math.round(e*A)):Math.min(Math.round(e*A),t-1)}const kp=Yn(),fY=kp&&typeof document!="undefined",pL={webgl2:!0,webgl1:!0,throwOnError:!0,manageState:!0,canvas:null,debug:!1,width:800,height:600};function yL(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};kt(kp,`createGLContext only available in the browser. +Create your own headless context or use 'createHeadlessContext' from @luma.gl/test-utils`),e=Object.assign({},pL,e);const{width:A,height:t}=e;function i(s){if(e.throwOnError)throw new Error(s);return console.error(s),null}e.onError=i;let n;const{canvas:r}=e,o=yY({canvas:r,width:A,height:t,onError:i});return n=pY(o,e),n?(n=Tp(n,e),mY(n),n):null}function Tp(e){let A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(!e||e._instrumented)return e;e._version=e._version||wY(e),e.luma=e.luma||{},e.luma.canvasSizeInfo=e.luma.canvasSizeInfo||{},A=Object.assign({},pL,A);const{manageState:t,debug:i}=A;return t&&dL(e,{copyState:!1,log:function(){for(var n=arguments.length,r=new Array(n),o=0;o1&&arguments[1]!==void 0?arguments[1]:{};if(e.canvas){const i=uY(A.useDevicePixels);vY(e,i,A);return}const t=e.getExtension("STACKGL_resize_drawingbuffer");t&&"width"in A&&"height"in A&&t.resize(A.width,A.height)}function pY(e,A){const{onError:t}=A;let i=null;const n=a=>i=a.statusMessage||i;e.addEventListener("webglcontextcreationerror",n,!1);const{webgl1:r=!0,webgl2:o=!0}=A;let s=null;return o&&(s=s||e.getContext("webgl2",A),s=s||e.getContext("experimental-webgl2",A)),r&&(s=s||e.getContext("webgl",A),s=s||e.getContext("experimental-webgl",A)),e.removeEventListener("webglcontextcreationerror",n,!1),s?(A.onContextLost&&e.addEventListener("webglcontextlost",A.onContextLost,!1),A.onContextRestored&&e.addEventListener("webglcontextrestored",A.onContextRestored,!1),s):t("Failed to create ".concat(o&&!r?"WebGL2":"WebGL"," context: ").concat(i||"Unknown error"))}function yY(e){let{canvas:A,width:t=800,height:i=600,onError:n}=e,r;return typeof A=="string"?(fY&&document.readyState==="complete"||n("createGLContext called on canvas '".concat(A,"' before page was loaded")),r=document.getElementById(A)):A?r=A:(r=document.createElement("canvas"),r.id="lumagl-canvas",r.style.width=Number.isFinite(t)?"".concat(t,"px"):"100%",r.style.height=Number.isFinite(i)?"".concat(i,"px"):"100%",document.body.insertBefore(r,document.body.firstChild)),r}function mY(e){const A=ie(e)?"WebGL2":"WebGL1",t=QY(e),i=t?"(".concat(t.vendor,",").concat(t.renderer,")"):"",n=e.debug?" debug":"";DA.info(1,"".concat(A).concat(n," context ").concat(i))()}function wY(e){return typeof WebGL2RenderingContext!="undefined"&&e instanceof WebGL2RenderingContext?2:1}function vY(e,A,t){let i="width"in t?t.width:e.canvas.clientWidth,n="height"in t?t.height:e.canvas.clientHeight;(!i||!n)&&(DA.log(1,"Canvas clientWidth/clientHeight is 0")(),A=1,i=e.canvas.width||1,n=e.canvas.height||1),e.luma=e.luma||{},e.luma.canvasSizeInfo=e.luma.canvasSizeInfo||{};const r=e.luma.canvasSizeInfo;if(r.clientWidth!==i||r.clientHeight!==n||r.devicePixelRatio!==A){let o=A;const s=Math.floor(i*o),a=Math.floor(n*o);e.canvas.width=s,e.canvas.height=a,(e.drawingBufferWidth!==s||e.drawingBufferHeight!==a)&&(DA.warn("Device pixel ratio clamped")(),o=Math.min(e.drawingBufferWidth/i,e.drawingBufferHeight/n),e.canvas.width=Math.floor(i*o),e.canvas.height=Math.floor(n*o)),Object.assign(e.luma.canvasSizeInfo,{clientWidth:i,clientHeight:n,devicePixelRatio:A})}}const BI="8.5.16",SY="set luma.log.level=1 (or higher) to trace rendering";class mL{constructor(){this.stats=new Map}get(A){return this.stats.has(A)||this.stats.set(A,new JE({id:A})),this.stats.get(A)}}const po=new mL;if(globalThis.luma&&globalThis.luma.VERSION!==BI)throw new Error("luma.gl - multiple VERSIONs detected: ".concat(globalThis.luma.VERSION," vs ").concat(BI));globalThis.luma||(Yn()&&DA.log(1,"luma.gl ".concat(BI," - ").concat(SY))(),globalThis.luma=globalThis.luma||{VERSION:BI,version:BI,log:DA,stats:po,globals:{modules:{},nodeIO:{}}});function DY(e){return typeof window!="undefined"&&window.requestAnimationFrame?window.requestAnimationFrame(e):setTimeout(e,1e3/60)}function RY(e){return typeof window!="undefined"&&window.cancelAnimationFrame?window.cancelAnimationFrame(e):clearTimeout(e)}function cA(e,A){if(!e)throw new Error(A||"luma.gl: assertion failed.")}function Th(e,A){if(typeof A!="string")return A;const t=Number(A);if(!isNaN(t))return t;A=A.replace(/^.*\./,"");const i=e[A];return cA(i!==void 0,"Accessing undefined constant GL.".concat(A)),i}function Nr(e,A){A=Number(A);for(const t in e)if(e[t]===A)return"GL.".concat(t);return String(A)}const Uh={};function qr(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"id";Uh[e]=Uh[e]||1;const A=Uh[e]++;return"".concat(e,"-").concat(A)}function FS(e){return cA(typeof e=="number","Input must be a number"),e&&(e&e-1)===0}function ha(e){let A=!0;for(const t in e){A=!1;break}return A}function wL(e,A,t,i){const n="See luma.gl ".concat(t," Upgrade Guide at https://luma.gl/docs/upgrade-guide"),r=Object.getPrototypeOf(e);i.forEach(o=>{r.methodName||(r[o]=()=>{throw DA.removed("Calling removed method ".concat(A,".").concat(o,": "),n)(),new Error(o)})})}const fs="Resource subclass must define virtual methods";class Kn{get[Symbol.toStringTag](){return"Resource"}constructor(A){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};KE(A);const{id:i,userData:n={}}=t;this.gl=A,this.gl2=A,this.id=i||qr(this[Symbol.toStringTag]),this.userData=n,this._bound=!1,this._handle=t.handle,this._handle===void 0&&(this._handle=this._createHandle()),this.byteLength=0,this._initStats(),this._addStats()}toString(){return"".concat(this[Symbol.toStringTag]||this.constructor.name,"(").concat(this.id,")")}get handle(){return this._handle}delete(){let{deleteChildren:A=!1}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const t=this._handle&&this._deleteHandle(this._handle);return this._handle&&this._removeStats(),this._handle=null,t&&A&&t.filter(Boolean).forEach(i=>i.delete()),this}bind(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.handle;if(typeof A!="function")return this._bindHandle(A),this;let t;return this._bound?t=A():(this._bindHandle(this.handle),this._bound=!0,t=A(),this._bound=!1,this._bindHandle(null)),t}unbind(){this.bind(null)}getParameter(A){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};A=Th(this.gl,A),cA(A);const n=(this.constructor.PARAMETERS||{})[A];if(n){const r=ie(this.gl);if(!((!("webgl2"in n)||r)&&(!("extension"in n)||this.gl.getExtension(n.extension)))){const s=n.webgl1,a="webgl2"in n?n.webgl2:n.webgl1;return r?a:s}}return this._getParameter(A,t)}getParameters(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const{parameters:t,keys:i}=A,n=this.constructor.PARAMETERS||{},r=ie(this.gl),o={},s=t||Object.keys(n);for(const a of s){const g=n[a];if(g&&(!("webgl2"in g)||r)&&(!("extension"in g)||this.gl.getExtension(g.extension))){const l=i?Nr(this.gl,a):a;o[l]=this.getParameter(a,A),i&&g.type==="GLenum"&&(o[l]=Nr(this.gl,o[l]))}}return o}setParameter(A,t){A=Th(this.gl,A),cA(A);const n=(this.constructor.PARAMETERS||{})[A];if(n){const r=ie(this.gl);if(!((!("webgl2"in n)||r)&&(!("extension"in n)||this.gl.getExtension(n.extension))))throw new Error("Parameter not available on this platform");n.type==="GLenum"&&(t=Th(t))}return this._setParameter(A,t),this}setParameters(A){for(const t in A)this.setParameter(t,A[t]);return this}stubRemovedMethods(A,t,i){return wL(this,A,t,i)}initialize(A){}_createHandle(){throw new Error(fs)}_deleteHandle(){throw new Error(fs)}_bindHandle(A){throw new Error(fs)}_getOptsFromHandle(){throw new Error(fs)}_getParameter(A,t){throw new Error(fs)}_setParameter(A,t){throw new Error(fs)}_context(){return this.gl.luma=this.gl.luma||{},this.gl.luma}_initStats(){this.gl.stats=this.gl.stats||new mL}_addStats(){const A=this[Symbol.toStringTag],t=po.get("Resource Counts");t.get("Resources Created").incrementCount(),t.get("".concat(A,"s Created")).incrementCount(),t.get("".concat(A,"s Active")).incrementCount()}_removeStats(){const A=this[Symbol.toStringTag];po.get("Resource Counts").get("".concat(A,"s Active")).decrementCount()}_trackAllocatedMemory(A){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this[Symbol.toStringTag];this._doTrackAllocatedMemory(A,t),this._doTrackAllocatedMemory(A,t,this.gl.stats.get("Memory Usage"))}_doTrackAllocatedMemory(A){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this[Symbol.toStringTag],i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:po.get("Memory Usage");i.get("GPU Memory").addCount(A),i.get("".concat(t," Memory")).addCount(A),this.byteLength=A}_trackDeallocatedMemory(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this[Symbol.toStringTag];this._doTrackDeallocatedMemory(A),this._doTrackDeallocatedMemory(A,this.gl.stats.get("Memory Usage"))}_doTrackDeallocatedMemory(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this[Symbol.toStringTag],t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:po.get("Memory Usage");t.get("GPU Memory").subtractCount(this.byteLength),t.get("".concat(A," Memory")).subtractCount(this.byteLength),this.byteLength=0}}const xY="Failed to deduce GL constant from typed array";function td(e){switch(ArrayBuffer.isView(e)?e.constructor:e){case Float32Array:return 5126;case Uint16Array:return 5123;case Uint32Array:return 5125;case Uint8Array:return 5121;case Uint8ClampedArray:return 5121;case Int8Array:return 5120;case Int16Array:return 5122;case Int32Array:return 5124;default:throw new Error(xY)}}function KI(e){let{clamped:A=!0}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};switch(e){case 5126:return Float32Array;case 5123:case 33635:case 32819:case 32820:return Uint16Array;case 5125:return Uint32Array;case 5121:return A?Uint8ClampedArray:Uint8Array;case 5120:return Int8Array;case 5122:return Int16Array;case 5124:return Int32Array;default:throw new Error("Failed to deduce typed array type from GL constant")}}function FY(e){let{data:A,width:t,height:i,bytesPerPixel:n=4,temp:r}=e;const o=t*n;r=r||new Uint8Array(o);for(let s=0;sthis._assign(n)),Object.freeze(this)}toString(){return JSON.stringify(this)}get BYTES_PER_ELEMENT(){return ti.getBytesPerElement(this)}get BYTES_PER_VERTEX(){return ti.getBytesPerVertex(this)}_assign(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return A=id("Accessor",A,bY),A.type!==void 0&&(this.type=A.type,(A.type===5124||A.type===5125)&&(this.integer=!0)),A.size!==void 0&&(this.size=A.size),A.offset!==void 0&&(this.offset=A.offset),A.stride!==void 0&&(this.stride=A.stride),A.normalized!==void 0&&(this.normalized=A.normalized),A.integer!==void 0&&(this.integer=A.integer),A.divisor!==void 0&&(this.divisor=A.divisor),A.buffer!==void 0&&(this.buffer=A.buffer),A.index!==void 0&&(typeof A.index=="boolean"?this.index=A.index?1:0:this.index=A.index),A.instanced!==void 0&&(this.divisor=A.instanced?1:0),A.isInstanced!==void 0&&(this.divisor=A.isInstanced?1:0),this}}const NS=10,vL={offset:"accessor.offset",stride:"accessor.stride",type:"accessor.type",size:"accessor.size",divisor:"accessor.divisor",normalized:"accessor.normalized",integer:"accessor.integer",instanced:"accessor.divisor",isInstanced:"accessor.divisor"},GY={removedProps:{},replacedProps:{bytes:"byteLength"},deprecatedProps:vL},_Y={removedProps:vL};class we extends Kn{get[Symbol.toStringTag](){return"Buffer"}constructor(A){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};super(A,t),this.stubRemovedMethods("Buffer","v6.0",["layout","setLayout","getIndexedParameter"]),this.target=t.target||(this.gl.webgl2?36662:34962),this.initialize(t),Object.seal(this)}getElementCount(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.accessor;return Math.round(this.byteLength/ti.getBytesPerElement(A))}getVertexCount(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.accessor;return Math.round(this.byteLength/ti.getBytesPerVertex(A))}initialize(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return ArrayBuffer.isView(A)&&(A={data:A}),Number.isFinite(A)&&(A={byteLength:A}),A=id("Buffer",A,GY),this.usage=A.usage||35044,this.debugData=null,this.setAccessor(Object.assign({},A,A.accessor)),A.data?this._setData(A.data,A.offset,A.byteLength):this._setByteLength(A.byteLength||0),this}setProps(A){return A=id("Buffer",A,_Y),"accessor"in A&&this.setAccessor(A.accessor),this}setAccessor(A){return A=Object.assign({},A),delete A.buffer,this.accessor=new ti(A),this}reallocate(A){return A>this.byteLength?(this._setByteLength(A),!0):(this.bytesUsed=A,!1)}setData(A){return this.initialize(A)}subData(A){ArrayBuffer.isView(A)&&(A={data:A});const{data:t,offset:i=0,srcOffset:n=0}=A,r=A.byteLength||A.length;cA(t);const o=this.gl.webgl2?36663:this.target;return this.gl.bindBuffer(o,this.handle),n!==0||r!==void 0?(Ft(this.gl),this.gl.bufferSubData(this.target,i,t,n,r)):this.gl.bufferSubData(o,i,t),this.gl.bindBuffer(o,null),this.debugData=null,this._inferType(t),this}copyData(A){let{sourceBuffer:t,readOffset:i=0,writeOffset:n=0,size:r}=A;const{gl:o}=this;return Ft(o),o.bindBuffer(36662,t.handle),o.bindBuffer(36663,this.handle),o.copyBufferSubData(36662,36663,i,n,r),o.bindBuffer(36662,null),o.bindBuffer(36663,null),this.debugData=null,this}getData(){let{dstData:A=null,srcByteOffset:t=0,dstOffset:i=0,length:n=0}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};Ft(this.gl);const r=KI(this.accessor.type||5126,{clamped:!1}),o=this._getAvailableElementCount(t),s=i;let a,g;A?(g=A.length,a=g-s):(a=Math.min(o,n||o),g=s+a);const I=Math.min(o,a);return n=n||I,cA(n<=I),A=A||new r(g),this.gl.bindBuffer(36662,this.handle),this.gl.getBufferSubData(36662,t,A,i,n),this.gl.bindBuffer(36662,null),A}bind(){let{target:A=this.target,index:t=this.accessor&&this.accessor.index,offset:i=0,size:n}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return A===35345||A===35982?n!==void 0?this.gl.bindBufferRange(A,t,this.handle,i,n):(cA(i===0),this.gl.bindBufferBase(A,t,this.handle)):this.gl.bindBuffer(A,this.handle),this}unbind(){let{target:A=this.target,index:t=this.accessor&&this.accessor.index}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return A===35345||A===35982?this.gl.bindBufferBase(A,t,null):this.gl.bindBuffer(A,null),this}getDebugData(){return this.debugData?{data:this.debugData,changed:!1}:(this.debugData=this.getData({length:Math.min(NS,this.byteLength)}),{data:this.debugData,changed:!0})}invalidateDebugData(){this.debugData=null}_setData(A){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:A.byteLength+t;cA(ArrayBuffer.isView(A)),this._trackDeallocatedMemory();const n=this._getTarget();this.gl.bindBuffer(n,this.handle),this.gl.bufferData(n,i,this.usage),this.gl.bufferSubData(n,t,A),this.gl.bindBuffer(n,null),this.debugData=A.slice(0,NS),this.bytesUsed=i,this._trackAllocatedMemory(i);const r=td(A);return cA(r),this.setAccessor(new ti(this.accessor,{type:r})),this}_setByteLength(A){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.usage;cA(A>=0),this._trackDeallocatedMemory();let i=A;A===0&&(i=new Float32Array(0));const n=this._getTarget();return this.gl.bindBuffer(n,this.handle),this.gl.bufferData(n,i,t),this.gl.bindBuffer(n,null),this.usage=t,this.debugData=null,this.bytesUsed=A,this._trackAllocatedMemory(A),this}_getTarget(){return this.gl.webgl2?36663:this.target}_getAvailableElementCount(A){const t=KI(this.accessor.type||5126,{clamped:!1}),i=A/t.BYTES_PER_ELEMENT;return this.getElementCount()-i}_inferType(A){this.accessor.type||this.setAccessor(new ti(this.accessor,{type:td(A)}))}_createHandle(){return this.gl.createBuffer()}_deleteHandle(){this.gl.deleteBuffer(this.handle),this._trackDeallocatedMemory()}_getParameter(A){this.gl.bindBuffer(this.target,this.handle);const t=this.gl.getBufferParameter(this.target,A);return this.gl.bindBuffer(this.target,null),t}get type(){return DA.deprecated("Buffer.type","Buffer.accessor.type")(),this.accessor.type}get bytes(){return DA.deprecated("Buffer.bytes","Buffer.byteLength")(),this.byteLength}setByteLength(A){return DA.deprecated("setByteLength","reallocate")(),this.reallocate(A)}updateAccessor(A){return DA.deprecated("updateAccessor(...)","setAccessor(new Accessor(buffer.accessor, ...)")(),this.accessor=new ti(this.accessor,A),this}}const Up={[6407]:{dataFormat:6407,types:[5121,33635]},[6408]:{dataFormat:6408,types:[5121,32819,32820]},[6406]:{dataFormat:6406,types:[5121]},[6409]:{dataFormat:6409,types:[5121]},[6410]:{dataFormat:6410,types:[5121]},[33326]:{dataFormat:6403,types:[5126],gl2:!0},[33328]:{dataFormat:33319,types:[5126],gl2:!0},[34837]:{dataFormat:6407,types:[5126],gl2:!0},[34836]:{dataFormat:6408,types:[5126],gl2:!0}},SL={[6403]:1,[36244]:1,[33319]:2,[33320]:2,[6407]:3,[36248]:3,[6408]:4,[36249]:4,[6402]:1,[34041]:1,[6406]:1,[6409]:1,[6410]:2},DL={[5126]:4,[5125]:4,[5124]:4,[5123]:2,[5122]:2,[5131]:2,[5120]:1,[5121]:1};function MY(e,A){const t=Up[A];if(!t)return!1;if(t.gl1===void 0&&t.gl2===void 0)return!0;const i=ie(e)&&t.gl2||t.gl1;return typeof i=="string"?e.getExtension(i):i}function kY(e,A){const t=Up[A];switch(t&&t.types[0]){case 5126:return e.getExtension("OES_texture_float_linear");case 5131:return e.getExtension("OES_texture_half_float_linear");default:return!0}}const TY=[9729,9728],LS=globalThis.WebGLBuffer||function(){};class Mo extends Kn{get[Symbol.toStringTag](){return"Texture"}static isSupported(A){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const{format:i,linearFiltering:n}=t;let r=!0;return i&&(r=r&&MY(A,i),r=r&&(!n||kY(A,i))),r}constructor(A,t){const{id:i=qr("texture"),handle:n,target:r}=t;super(A,{id:i,handle:n}),this.target=r,this.textureUnit=void 0,this.loaded=!1,this.width=void 0,this.height=void 0,this.depth=void 0,this.format=void 0,this.type=void 0,this.dataFormat=void 0,this.border=void 0,this.textureUnit=void 0,this.mipmaps=void 0}toString(){return"Texture(".concat(this.id,",").concat(this.width,"x").concat(this.height,")")}initialize(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=A.data;if(t instanceof Promise)return t.then(f=>this.initialize(Object.assign({},A,{pixels:f,data:f}))),this;const i=typeof HTMLVideoElement!="undefined"&&t instanceof HTMLVideoElement;if(i&&t.readyStatethis.initialize(A)),this;const{pixels:n=null,format:r=6408,border:o=0,recreate:s=!1,parameters:a={},pixelStore:g={},textureUnit:I=void 0}=A;t||(t=n);let{width:l,height:c,dataFormat:C,type:B,compressed:u=!1,mipmaps:E=!0}=A;const{depth:h=0}=A;return{width:l,height:c,compressed:u,dataFormat:C,type:B}=this._deduceParameters({format:r,type:B,dataFormat:C,compressed:u,data:t,width:l,height:c}),this.width=l,this.height=c,this.depth=h,this.format=r,this.type=B,this.dataFormat=C,this.border=o,this.textureUnit=I,Number.isFinite(this.textureUnit)&&(this.gl.activeTexture(33984+this.textureUnit),this.gl.bindTexture(this.target,this.handle)),E&&this._isNPOT()&&(DA.warn("texture: ".concat(this," is Non-Power-Of-Two, disabling mipmaping"))(),E=!1,this._updateForNPOT(a)),this.mipmaps=E,this.setImageData({data:t,width:l,height:c,depth:h,format:r,type:B,dataFormat:C,border:o,mipmaps:E,parameters:g,compressed:u}),E&&this.generateMipmap(),this.setParameters(a),s&&(this.data=t),i&&(this._video={video:t,parameters:a,lastTime:t.readyState>=HTMLVideoElement.HAVE_CURRENT_DATA?t.currentTime:-1}),this}update(){if(this._video){const{video:A,parameters:t,lastTime:i}=this._video;if(i===A.currentTime||A.readyState0&&arguments[0]!==void 0?arguments[0]:{};return this._isNPOT()?(DA.warn("texture: ".concat(this," is Non-Power-Of-Two, disabling mipmaping"))(),this):(this.mipmaps=!0,this.gl.bindTexture(this.target,this.handle),ui(this.gl,A,()=>{this.gl.generateMipmap(this.target)}),this.gl.bindTexture(this.target,null),this)}setImageData(A){this._trackDeallocatedMemory("Texture");const{target:t=this.target,pixels:i=null,level:n=0,format:r=this.format,border:o=this.border,offset:s=0,parameters:a={}}=A;let{data:g=null,type:I=this.type,width:l=this.width,height:c=this.height,dataFormat:C=this.dataFormat,compressed:B=!1}=A;g||(g=i),{type:I,dataFormat:C,compressed:B,width:l,height:c}=this._deduceParameters({format:r,type:I,dataFormat:C,compressed:B,data:g,width:l,height:c});const{gl:u}=this;u.bindTexture(this.target,this.handle);let E=null;({data:g,dataType:E}=this._getDataType({data:g,compressed:B}));let h,f=0;if(ui(this.gl,a,()=>{switch(E){case"null":u.texImage2D(t,n,r,l,c,o,C,I,g);break;case"typed-array":u.texImage2D(t,n,r,l,c,o,C,I,g,s);break;case"buffer":h=Ft(u),h.bindBuffer(35052,g.handle||g),h.texImage2D(t,n,r,l,c,o,C,I,s),h.bindBuffer(35052,null);break;case"browser-object":ie(u)?u.texImage2D(t,n,r,l,c,o,C,I,g):u.texImage2D(t,n,r,C,I,g);break;case"compressed":for(const[Q,d]of g.entries())u.compressedTexImage2D(t,Q,d.format,d.width,d.height,o,d.data),f+=d.levelSize;break;default:cA(!1,"Unknown image data type")}}),E==="compressed")this._trackAllocatedMemory(f,"Texture");else if(g&&g.byteLength)this._trackAllocatedMemory(g.byteLength,"Texture");else{const Q=SL[this.dataFormat]||4,d=DL[this.type]||1;this._trackAllocatedMemory(this.width*this.height*Q*d,"Texture")}return this.loaded=!0,this}setSubImageData(A){let{target:t=this.target,pixels:i=null,data:n=null,x:r=0,y:o=0,width:s=this.width,height:a=this.height,level:g=0,format:I=this.format,type:l=this.type,dataFormat:c=this.dataFormat,compressed:C=!1,offset:B=0,border:u=this.border,parameters:E={}}=A;if({type:l,dataFormat:c,compressed:C,width:s,height:a}=this._deduceParameters({format:I,type:l,dataFormat:c,compressed:C,data:n,width:s,height:a}),cA(this.depth===0,"texSubImage not supported for 3D textures"),n||(n=i),n&&n.data){const h=n;n=h.data,s=h.shape[0],a=h.shape[1]}n instanceof we&&(n=n.handle),this.gl.bindTexture(this.target,this.handle),ui(this.gl,E,()=>{if(C)this.gl.compressedTexSubImage2D(t,g,r,o,s,a,I,n);else if(n===null)this.gl.texSubImage2D(t,g,r,o,s,a,c,l,null);else if(ArrayBuffer.isView(n))this.gl.texSubImage2D(t,g,r,o,s,a,c,l,n,B);else if(n instanceof LS){const h=Ft(this.gl);h.bindBuffer(35052,n),h.texSubImage2D(t,g,r,o,s,a,c,l,B),h.bindBuffer(35052,null)}else ie(this.gl)?Ft(this.gl).texSubImage2D(t,g,r,o,s,a,c,l,n):this.gl.texSubImage2D(t,g,r,o,c,l,n)}),this.gl.bindTexture(this.target,null)}copyFramebuffer(){return DA.error("Texture.copyFramebuffer({...}) is no logner supported, use copyToTexture(source, target, opts})")(),null}getActiveUnit(){return this.gl.getParameter(34016)-33984}bind(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.textureUnit;const{gl:t}=this;return A!==void 0&&(this.textureUnit=A,t.activeTexture(33984+A)),t.bindTexture(this.target,this.handle),A}unbind(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.textureUnit;const{gl:t}=this;return A!==void 0&&(this.textureUnit=A,t.activeTexture(33984+A)),t.bindTexture(this.target,null),A}_getDataType(A){let{data:t,compressed:i=!1}=A;return i?{data:t,dataType:"compressed"}:t===null?{data:t,dataType:"null"}:ArrayBuffer.isView(t)?{data:t,dataType:"typed-array"}:t instanceof we?{data:t.handle,dataType:"buffer"}:t instanceof LS?{data:t,dataType:"buffer"}:{data:t,dataType:"browser-object"}}_deduceParameters(A){const{format:t,data:i}=A;let{width:n,height:r,dataFormat:o,type:s,compressed:a}=A;const g=Up[t];return o=o||g&&g.dataFormat,s=s||g&&g.types[0],a=a||g&&g.compressed,{width:n,height:r}=this._deduceImageSize(i,n,r),{dataFormat:o,type:s,compressed:a,width:n,height:r,format:t,data:i}}_deduceImageSize(A,t,i){let n;return typeof ImageData!="undefined"&&A instanceof ImageData?n={width:A.width,height:A.height}:typeof HTMLImageElement!="undefined"&&A instanceof HTMLImageElement?n={width:A.naturalWidth,height:A.naturalHeight}:typeof HTMLCanvasElement!="undefined"&&A instanceof HTMLCanvasElement?n={width:A.width,height:A.height}:typeof ImageBitmap!="undefined"&&A instanceof ImageBitmap?n={width:A.width,height:A.height}:typeof HTMLVideoElement!="undefined"&&A instanceof HTMLVideoElement?n={width:A.videoWidth,height:A.videoHeight}:A?n={width:t,height:i}:n={width:t>=0?t:1,height:i>=0?i:1},cA(n,"Could not deduced texture size"),cA(t===void 0||n.width===t,"Deduced texture width does not match supplied width"),cA(i===void 0||n.height===i,"Deduced texture height does not match supplied height"),n}_createHandle(){return this.gl.createTexture()}_deleteHandle(){this.gl.deleteTexture(this.handle),this._trackDeallocatedMemory("Texture")}_getParameter(A){switch(A){case 4096:return this.width;case 4097:return this.height;default:this.gl.bindTexture(this.target,this.handle);const t=this.gl.getTexParameter(this.target,A);return this.gl.bindTexture(this.target,null),t}}_setParameter(A,t){switch(this.gl.bindTexture(this.target,this.handle),t=this._getNPOTParam(A,t),A){case 33082:case 33083:this.gl.texParameterf(this.handle,A,t);break;case 4096:case 4097:cA(!1);break;default:this.gl.texParameteri(this.target,A,t);break}return this.gl.bindTexture(this.target,null),this}_isNPOT(){return ie(this.gl)||!this.width||!this.height?!1:!FS(this.width)||!FS(this.height)}_updateForNPOT(A){A[this.gl.TEXTURE_MIN_FILTER]===void 0&&(A[this.gl.TEXTURE_MIN_FILTER]=this.gl.LINEAR),A[this.gl.TEXTURE_WRAP_S]===void 0&&(A[this.gl.TEXTURE_WRAP_S]=this.gl.CLAMP_TO_EDGE),A[this.gl.TEXTURE_WRAP_T]===void 0&&(A[this.gl.TEXTURE_WRAP_T]=this.gl.CLAMP_TO_EDGE)}_getNPOTParam(A,t){if(this._isNPOT())switch(A){case 10241:TY.indexOf(t)===-1&&(t=9729);break;case 10242:case 10243:t!==33071&&(t=33071);break}return t}}let UY="";function PY(e,A){return cA(typeof e=="string"),e=UY+e,new Promise((t,i)=>{try{const n=new Image;n.onload=()=>t(n),n.onerror=()=>i(new Error("Could not load image ".concat(e,"."))),n.crossOrigin=A&&A.crossOrigin||"anonymous",n.src=e}catch(n){i(n)}})}class Pt extends Mo{get[Symbol.toStringTag](){return"Texture2D"}static isSupported(A,t){return Mo.isSupported(A,t)}constructor(A){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};KE(A),(t instanceof Promise||typeof t=="string")&&(t={data:t}),typeof t.data=="string"&&(t=Object.assign({},t,{data:PY(t.data)})),super(A,Object.assign({},t,{target:3553})),this.initialize(t),Object.seal(this)}}const nd=[34069,34070,34071,34072,34073,34074];class RL extends Mo{get[Symbol.toStringTag](){return"TextureCube"}constructor(A){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};KE(A),super(A,Object.assign({},t,{target:34067})),this.initialize(t),Object.seal(this)}initialize(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const{mipmaps:t=!0,parameters:i={}}=A;return this.opts=A,this.setCubeMapImageData(A).then(()=>{this.loaded=!0,t&&this.generateMipmap(A),this.setParameters(i)}),this}subImage(A){let{face:t,data:i,x:n=0,y:r=0,mipmapLevel:o=0}=A;return this._subImage({target:t,data:i,x:n,y:r,mipmapLevel:o})}async setCubeMapImageData(A){let{width:t,height:i,pixels:n,data:r,border:o=0,format:s=6408,type:a=5121}=A;const{gl:g}=this,I=n||r,l=await Promise.all(nd.map(c=>{const C=I[c];return Promise.all(Array.isArray(C)?C:[C])}));this.bind(),nd.forEach((c,C)=>{l[C].length>1&&this.opts.mipmaps!==!1&&DA.warn("".concat(this.id," has mipmap and multiple LODs."))(),l[C].forEach((B,u)=>{t&&i?g.texImage2D(c,u,s,t,i,o,s,a,B):g.texImage2D(c,u,s,s,a,B)})}),this.unbind()}setImageDataForFace(A){const{face:t,width:i,height:n,pixels:r,data:o,border:s=0,format:a=6408,type:g=5121}=A,{gl:I}=this,l=r||o;return this.bind(),l instanceof Promise?l.then(c=>this.setImageDataForFace(Object.assign({},A,{face:t,data:c,pixels:c}))):this.width||this.height?I.texImage2D(t,0,a,i,n,s,a,g,l):I.texImage2D(t,0,a,a,g,l),this}}RL.FACES=nd;class xL extends Mo{get[Symbol.toStringTag](){return"Texture3D"}static isSupported(A){return ie(A)}constructor(A){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};Ft(A),t=Object.assign({depth:1},t,{target:32879,unpackFlipY:!1}),super(A,t),this.initialize(t),Object.seal(this)}setImageData(A){let{level:t=0,dataFormat:i=6408,width:n,height:r,depth:o=1,border:s=0,format:a,type:g=5121,offset:I=0,data:l,parameters:c={}}=A;if(this._trackDeallocatedMemory("Texture"),this.gl.bindTexture(this.target,this.handle),ui(this.gl,c,()=>{ArrayBuffer.isView(l)&&this.gl.texImage3D(this.target,t,i,n,r,o,s,a,g,l),l instanceof we&&(this.gl.bindBuffer(35052,l.handle),this.gl.texImage3D(this.target,t,i,n,r,o,s,a,g,I))}),l&&l.byteLength)this._trackAllocatedMemory(l.byteLength,"Texture");else{const C=SL[this.dataFormat]||4,B=DL[this.type]||1;this._trackAllocatedMemory(this.width*this.height*this.depth*C*B,"Texture")}return this.loaded=!0,this}}const ro="EXT_color_buffer_float";var bS={[33189]:{bpp:2},[33190]:{gl2:!0,bpp:3},[36012]:{gl2:!0,bpp:4},[36168]:{bpp:1},[34041]:{bpp:4},[35056]:{gl2:!0,bpp:4},[36013]:{gl2:!0,bpp:5},[32854]:{bpp:2},[36194]:{bpp:2},[32855]:{bpp:2},[33321]:{gl2:!0,bpp:1},[33330]:{gl2:!0,bpp:1},[33329]:{gl2:!0,bpp:1},[33332]:{gl2:!0,bpp:2},[33331]:{gl2:!0,bpp:2},[33334]:{gl2:!0,bpp:4},[33333]:{gl2:!0,bpp:4},[33323]:{gl2:!0,bpp:2},[33336]:{gl2:!0,bpp:2},[33335]:{gl2:!0,bpp:2},[33338]:{gl2:!0,bpp:4},[33337]:{gl2:!0,bpp:4},[33340]:{gl2:!0,bpp:8},[33339]:{gl2:!0,bpp:8},[32849]:{gl2:!0,bpp:3},[32856]:{gl2:!0,bpp:4},[32857]:{gl2:!0,bpp:4},[36220]:{gl2:!0,bpp:4},[36238]:{gl2:!0,bpp:4},[36975]:{gl2:!0,bpp:4},[36214]:{gl2:!0,bpp:8},[36232]:{gl2:!0,bpp:8},[36226]:{gl2:!0,bpp:16},[36208]:{gl2:!0,bpp:16},[33325]:{gl2:ro,bpp:2},[33327]:{gl2:ro,bpp:4},[34842]:{gl2:ro,bpp:8},[33326]:{gl2:ro,bpp:4},[33328]:{gl2:ro,bpp:8},[34836]:{gl2:ro,bpp:16},[35898]:{gl2:ro,bpp:4}};function HY(e,A,t){const i=t[A];if(!i)return!1;const n=ie(e)&&i.gl2||i.gl1;return typeof n=="string"?e.getExtension(n):n}class Ps extends Kn{get[Symbol.toStringTag](){return"Renderbuffer"}static isSupported(A){let{format:t}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{format:null};return!t||HY(A,t,bS)}static getSamplesForFormat(A,t){let{format:i}=t;return A.getInternalformatParameter(36161,i,32937)}constructor(A){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};super(A,t),this.initialize(t),Object.seal(this)}initialize(A){let{format:t,width:i=1,height:n=1,samples:r=0}=A;return cA(t,"Needs format"),this._trackDeallocatedMemory(),this.gl.bindRenderbuffer(36161,this.handle),r!==0&&ie(this.gl)?this.gl.renderbufferStorageMultisample(36161,r,t,i,n):this.gl.renderbufferStorage(36161,t,i,n),this.format=t,this.width=i,this.height=n,this.samples=r,this._trackAllocatedMemory(this.width*this.height*(this.samples||1)*bS[this.format].bpp),this}resize(A){let{width:t,height:i}=A;return t!==this.width||i!==this.height?this.initialize({width:t,height:i,format:this.format,samples:this.samples}):this}_createHandle(){return this.gl.createRenderbuffer()}_deleteHandle(){this.gl.deleteRenderbuffer(this.handle),this._trackDeallocatedMemory()}_bindHandle(A){this.gl.bindRenderbuffer(36161,A)}_syncHandle(A){this.format=this.getParameter(36164),this.width=this.getParameter(36162),this.height=this.getParameter(36163),this.samples=this.getParameter(36011)}_getParameter(A){return this.gl.bindRenderbuffer(36161,this.handle),this.gl.getRenderbufferParameter(36161,A)}}const qY=256,JY=1024,OY=16384,GS=6144,_S=6145,MS=6146,kS=34041,FL="clear: bad arguments";function Pp(e){let{framebuffer:A=null,color:t=null,depth:i=null,stencil:n=null}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const r={};A&&(r.framebuffer=A);let o=0;t&&(o|=OY,t!==!0&&(r.clearColor=t)),i&&(o|=qY,i!==!0&&(r.clearDepth=i)),n&&(o|=JY,i!==!0&&(r.clearStencil=i)),cA(o!==0,FL),ui(e,r,()=>{e.clear(o)})}function YY(e){let{framebuffer:A=null,buffer:t=GS,drawBuffer:i=0,value:n=[0,0,0,0]}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};Ft(e),ui(e,{framebuffer:A},()=>{switch(t){case GS:switch(n.constructor){case Int32Array:e.clearBufferiv(t,i,n);break;case Uint32Array:e.clearBufferuiv(t,i,n);break;case Float32Array:default:e.clearBufferfv(t,i,n)}break;case _S:e.clearBufferfv(_S,0,[n]);break;case MS:e.clearBufferiv(MS,0,[n]);break;case kS:const[r,o]=n;e.clearBufferfi(kS,0,r,o);break;default:cA(!1,FL)}})}function KY(e){switch(e){case 6406:case 33326:case 6403:return 1;case 33328:case 33319:return 2;case 6407:case 34837:return 3;case 6408:case 34836:return 4;default:return cA(!1),0}}function VE(e){let A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const{sourceX:t=0,sourceY:i=0,sourceFormat:n=6408}=A;let{sourceAttachment:r=36064,target:o=null,sourceWidth:s,sourceHeight:a,sourceType:g}=A;const{framebuffer:I,deleteFramebuffer:l}=NL(e);cA(I);const{gl:c,handle:C,attachments:B}=I;s=s||I.width,a=a||I.height,r===36064&&C===null&&(r=1028),cA(B[r]),g=g||B[r].type,o=WY(o,g,n,s,a),g=g||td(o);const u=c.bindFramebuffer(36160,C);return c.readPixels(t,i,s,a,n,g,o),c.bindFramebuffer(36160,u||null),l&&I.delete(),o}function TS(e){let{sourceAttachment:A=36064,targetMaxHeight:t=Number.MAX_SAFE_INTEGER}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=VE(e,{sourceAttachment:A}),{width:n,height:r}=e;for(;r>t;)({data:i,width:n,height:r}=NY({data:i,width:n,height:r}));FY({data:i,width:n,height:r});const o=document.createElement("canvas");o.width=n,o.height=r;const s=o.getContext("2d"),a=s.createImageData(n,r);return a.data.set(i),s.putImageData(a,0,0),o.toDataURL()}function VY(e,A){let t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};const{sourceX:i=0,sourceY:n=0,targetMipmaplevel:r=0,targetInternalFormat:o=6408}=t;let{targetX:s,targetY:a,targetZ:g,width:I,height:l}=t;const{framebuffer:c,deleteFramebuffer:C}=NL(e);cA(c);const{gl:B,handle:u}=c,E=typeof s!="undefined"||typeof a!="undefined"||typeof g!="undefined";s=s||0,a=a||0,g=g||0;const h=B.bindFramebuffer(36160,u);cA(A);let f=null;if(A instanceof Mo&&(f=A,I=Number.isFinite(I)?I:f.width,l=Number.isFinite(l)?l:f.height,f.bind(0),A=f.target),!E)B.copyTexImage2D(A,r,o,i,n,I,l,0);else switch(A){case 3553:case 34067:B.copyTexSubImage2D(A,r,s,a,i,n,I,l);break;case 35866:case 32879:Ft(B).copyTexSubImage3D(A,r,s,a,g,i,n,I,l);break}return f&&f.unbind(),B.bindFramebuffer(36160,h||null),C&&c.delete(),f}function NL(e){return e instanceof $e?{framebuffer:e,deleteFramebuffer:!1}:{framebuffer:tK(e),deleteFramebuffer:!0}}function WY(e,A,t,i,n){if(e)return e;A=A||5121;const r=KI(A,{clamped:!1}),o=KY(t);return new r(i*n*o)}const De={WEBGL2:"WEBGL2",VERTEX_ARRAY_OBJECT:"VERTEX_ARRAY_OBJECT",TIMER_QUERY:"TIMER_QUERY",INSTANCED_RENDERING:"INSTANCED_RENDERING",MULTIPLE_RENDER_TARGETS:"MULTIPLE_RENDER_TARGETS",ELEMENT_INDEX_UINT32:"ELEMENT_INDEX_UINT32",BLEND_EQUATION_MINMAX:"BLEND_EQUATION_MINMAX",FLOAT_BLEND:"FLOAT_BLEND",COLOR_ENCODING_SRGB:"COLOR_ENCODING_SRGB",TEXTURE_DEPTH:"TEXTURE_DEPTH",TEXTURE_FLOAT:"TEXTURE_FLOAT",TEXTURE_HALF_FLOAT:"TEXTURE_HALF_FLOAT",TEXTURE_FILTER_LINEAR_FLOAT:"TEXTURE_FILTER_LINEAR_FLOAT",TEXTURE_FILTER_LINEAR_HALF_FLOAT:"TEXTURE_FILTER_LINEAR_HALF_FLOAT",TEXTURE_FILTER_ANISOTROPIC:"TEXTURE_FILTER_ANISOTROPIC",COLOR_ATTACHMENT_RGBA32F:"COLOR_ATTACHMENT_RGBA32F",COLOR_ATTACHMENT_FLOAT:"COLOR_ATTACHMENT_FLOAT",COLOR_ATTACHMENT_HALF_FLOAT:"COLOR_ATTACHMENT_HALF_FLOAT",GLSL_FRAG_DATA:"GLSL_FRAG_DATA",GLSL_FRAG_DEPTH:"GLSL_FRAG_DEPTH",GLSL_DERIVATIVES:"GLSL_DERIVATIVES",GLSL_TEXTURE_LOD:"GLSL_TEXTURE_LOD"};function zY(e){const A=new Pt(e,{format:6408,type:5126,dataFormat:6408}),t=new $e(e,{id:"test-framebuffer",check:!1,attachments:{[36064]:A}}),i=t.getStatus();return A.delete(),t.delete(),i===36053}var LL={[De.WEBGL2]:[!1,!0],[De.VERTEX_ARRAY_OBJECT]:["OES_vertex_array_object",!0],[De.TIMER_QUERY]:["EXT_disjoint_timer_query","EXT_disjoint_timer_query_webgl2"],[De.INSTANCED_RENDERING]:["ANGLE_instanced_arrays",!0],[De.MULTIPLE_RENDER_TARGETS]:["WEBGL_draw_buffers",!0],[De.ELEMENT_INDEX_UINT32]:["OES_element_index_uint",!0],[De.BLEND_EQUATION_MINMAX]:["EXT_blend_minmax",!0],[De.FLOAT_BLEND]:["EXT_float_blend"],[De.COLOR_ENCODING_SRGB]:["EXT_sRGB",!0],[De.TEXTURE_DEPTH]:["WEBGL_depth_texture",!0],[De.TEXTURE_FLOAT]:["OES_texture_float",!0],[De.TEXTURE_HALF_FLOAT]:["OES_texture_half_float",!0],[De.TEXTURE_FILTER_LINEAR_FLOAT]:["OES_texture_float_linear"],[De.TEXTURE_FILTER_LINEAR_HALF_FLOAT]:["OES_texture_half_float_linear"],[De.TEXTURE_FILTER_ANISOTROPIC]:["EXT_texture_filter_anisotropic"],[De.COLOR_ATTACHMENT_RGBA32F]:[zY,"EXT_color_buffer_float"],[De.COLOR_ATTACHMENT_FLOAT]:[!1,"EXT_color_buffer_float"],[De.COLOR_ATTACHMENT_HALF_FLOAT]:["EXT_color_buffer_half_float"],[De.GLSL_FRAG_DATA]:["WEBGL_draw_buffers",!0],[De.GLSL_FRAG_DEPTH]:["EXT_frag_depth",!0],[De.GLSL_DERIVATIVES]:["OES_standard_derivatives",!0],[De.GLSL_TEXTURE_LOD]:["EXT_shader_texture_lod",!0]};const jY=2;function rd(e,A){return Hp(e,A)}function Hp(e,A){return A=Array.isArray(A)?A:[A],A.every(t=>bL(e,t))}function XY(e){e.luma=e.luma||{},e.luma.caps=e.luma.caps||{};for(const A in LL)e.luma.caps[A]===void 0&&(e.luma.caps[A]=bL(e,A));return e.luma.caps}function bL(e,A){return e.luma=e.luma||{},e.luma.caps=e.luma.caps||{},e.luma.caps[A]===void 0&&(e.luma.caps[A]=ZY(e,A)),e.luma.caps[A]||DA.log(jY,"Feature: ".concat(A," not supported"))(),e.luma.caps[A]}function ZY(e,A){const t=LL[A];cA(t,A);let i;const n=ie(e)&&t[1]||t[0];if(typeof n=="function")i=n(e);else if(Array.isArray(n)){i=!0;for(const r of n)i=i&&Boolean(e.getExtension(r))}else typeof n=="string"?i=Boolean(e.getExtension(n)):typeof n=="boolean"?i=n:cA(!1);return i}const US="Multiple render targets not supported";class $e extends Kn{get[Symbol.toStringTag](){return"Framebuffer"}static isSupported(A){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const{colorBufferFloat:i,colorBufferHalfFloat:n}=t;let r=!0;return i&&(r=Boolean(A.getExtension("EXT_color_buffer_float")||A.getExtension("WEBGL_color_buffer_float")||A.getExtension("OES_texture_float"))),n&&(r=r&&Boolean(A.getExtension("EXT_color_buffer_float")||A.getExtension("EXT_color_buffer_half_float"))),r}static getDefaultFramebuffer(A){return A.luma=A.luma||{},A.luma.defaultFramebuffer=A.luma.defaultFramebuffer||new $e(A,{id:"default-framebuffer",handle:null,attachments:{}}),A.luma.defaultFramebuffer}get MAX_COLOR_ATTACHMENTS(){const A=Ft(this.gl);return A.getParameter(A.MAX_COLOR_ATTACHMENTS)}get MAX_DRAW_BUFFERS(){const A=Ft(this.gl);return A.getParameter(A.MAX_DRAW_BUFFERS)}constructor(A){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};super(A,t),this.width=null,this.height=null,this.attachments={},this.readBuffer=36064,this.drawBuffers=[36064],this.ownResources=[],this.initialize(t),Object.seal(this)}get color(){return this.attachments[36064]||null}get texture(){return this.attachments[36064]||null}get depth(){return this.attachments[36096]||this.attachments[33306]||null}get stencil(){return this.attachments[36128]||this.attachments[33306]||null}initialize(A){let{width:t=1,height:i=1,attachments:n=null,color:r=!0,depth:o=!0,stencil:s=!1,check:a=!0,readBuffer:g=void 0,drawBuffers:I=void 0}=A;if(cA(t>=0&&i>=0,"Width and height need to be integers"),this.width=t,this.height=i,n)for(const l in n){const c=n[l];(Array.isArray(c)?c[0]:c).resize({width:t,height:i})}else n=this._createDefaultAttachments(r,o,s,t,i);this.update({clearAttachments:!0,attachments:n,readBuffer:g,drawBuffers:I}),n&&a&&this.checkStatus()}delete(){for(const A of this.ownResources)A.delete();return super.delete(),this}update(A){let{attachments:t={},readBuffer:i,drawBuffers:n,clearAttachments:r=!1,resizeAttachments:o=!0}=A;this.attach(t,{clearAttachments:r,resizeAttachments:o});const{gl:s}=this,a=s.bindFramebuffer(36160,this.handle);return i&&this._setReadBuffer(i),n&&this._setDrawBuffers(n),s.bindFramebuffer(36160,a||null),this}resize(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},{width:t,height:i}=A;if(this.handle===null)return cA(t===void 0&&i===void 0),this.width=this.gl.drawingBufferWidth,this.height=this.gl.drawingBufferHeight,this;t===void 0&&(t=this.gl.drawingBufferWidth),i===void 0&&(i=this.gl.drawingBufferHeight),t!==this.width&&i!==this.height&&DA.log(2,"Resizing framebuffer ".concat(this.id," to ").concat(t,"x").concat(i))();for(const n in this.attachments)this.attachments[n].resize({width:t,height:i});return this.width=t,this.height=i,this}attach(A){let{clearAttachments:t=!1,resizeAttachments:i=!0}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const n={};t&&Object.keys(this.attachments).forEach(o=>{n[o]=null}),Object.assign(n,A);const r=this.gl.bindFramebuffer(36160,this.handle);for(const o in n){cA(o!==void 0,"Misspelled framebuffer binding point?");const s=Number(o),a=n[s];let g=a;if(!g)this._unattach(s);else if(g instanceof Ps)this._attachRenderbuffer({attachment:s,renderbuffer:g});else if(Array.isArray(a)){const[I,l=0,c=0]=a;g=I,this._attachTexture({attachment:s,texture:I,layer:l,level:c})}else this._attachTexture({attachment:s,texture:g,layer:0,level:0});i&&g&&g.resize({width:this.width,height:this.height})}this.gl.bindFramebuffer(36160,r||null),Object.assign(this.attachments,A),Object.keys(this.attachments).filter(o=>!this.attachments[o]).forEach(o=>{delete this.attachments[o]})}checkStatus(){const A=this.getStatus();if(A!==36053)throw new Error(AK(A));return this}getStatus(){const{gl:A}=this,t=A.bindFramebuffer(36160,this.handle),i=A.checkFramebufferStatus(36160);return A.bindFramebuffer(36160,t||null),i}clear(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const{color:t,depth:i,stencil:n,drawBuffers:r=[]}=A,o=this.gl.bindFramebuffer(36160,this.handle);return(t||i||n)&&Pp(this.gl,{color:t,depth:i,stencil:n}),r.forEach((s,a)=>{YY(this.gl,{drawBuffer:a,value:s})}),this.gl.bindFramebuffer(36160,o||null),this}readPixels(){return DA.error("Framebuffer.readPixels() is no logner supported, use readPixelsToArray(framebuffer)")(),null}readPixelsToBuffer(){return DA.error("Framebuffer.readPixelsToBuffer()is no logner supported, use readPixelsToBuffer(framebuffer)")(),null}copyToDataUrl(){return DA.error("Framebuffer.copyToDataUrl() is no logner supported, use copyToDataUrl(framebuffer)")(),null}copyToImage(){return DA.error("Framebuffer.copyToImage() is no logner supported, use copyToImage(framebuffer)")(),null}copyToTexture(){return DA.error("Framebuffer.copyToTexture({...}) is no logner supported, use copyToTexture(source, target, opts})")(),null}blit(){return DA.error("Framebuffer.blit({...}) is no logner supported, use blit(source, target, opts)")(),null}invalidate(A){let{attachments:t=[],x:i=0,y:n=0,width:r,height:o}=A;const s=Ft(this.gl),a=s.bindFramebuffer(36008,this.handle);return i===0&&n===0&&r===void 0&&o===void 0?s.invalidateFramebuffer(36008,t):s.invalidateFramebuffer(36008,t,i,n,r,o),s.bindFramebuffer(36008,a),this}getAttachmentParameter(A,t,i){let n=this._getAttachmentParameterFallback(t);return n===null&&(this.gl.bindFramebuffer(36160,this.handle),n=this.gl.getFramebufferAttachmentParameter(36160,A,t),this.gl.bindFramebuffer(36160,null)),i&&n>1e3&&(n=Nr(this.gl,n)),n}getAttachmentParameters(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:36064,t=arguments.length>1?arguments[1]:void 0,i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:this.constructor.ATTACHMENT_PARAMETERS||[];const n={};for(const r of i){const o=t?Nr(this.gl,r):r;n[o]=this.getAttachmentParameter(A,r,t)}return n}getParameters(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;const t=Object.keys(this.attachments),i={};for(const n of t){const r=Number(n),o=A?Nr(this.gl,r):r;i[o]=this.getAttachmentParameters(r,A)}return i}show(){return typeof window!="undefined"&&window.open(TS(this),"luma-debug-texture"),this}log(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"";if(A>DA.level||typeof window=="undefined")return this;t=t||"Framebuffer ".concat(this.id);const i=TS(this,{targetMaxHeight:100});return DA.image({logLevel:A,message:t,image:i},t)(),this}bind(){let{target:A=36160}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return this.gl.bindFramebuffer(A,this.handle),this}unbind(){let{target:A=36160}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return this.gl.bindFramebuffer(A,null),this}_createDefaultAttachments(A,t,i,n,r){let o=null;return A&&(o=o||{},o[36064]=new Pt(this.gl,{id:"".concat(this.id,"-color0"),pixels:null,format:6408,type:5121,width:n,height:r,mipmaps:!1,parameters:{[10241]:9729,[10240]:9729,[10242]:33071,[10243]:33071}}),this.ownResources.push(o[36064])),t&&i?(o=o||{},o[33306]=new Ps(this.gl,{id:"".concat(this.id,"-depth-stencil"),format:35056,width:n,height:111}),this.ownResources.push(o[33306])):t?(o=o||{},o[36096]=new Ps(this.gl,{id:"".concat(this.id,"-depth"),format:33189,width:n,height:r}),this.ownResources.push(o[36096])):i&&cA(!1),o}_unattach(A){const t=this.attachments[A];!t||(t instanceof Ps?this.gl.framebufferRenderbuffer(36160,A,36161,null):this.gl.framebufferTexture2D(36160,A,3553,null,0),delete this.attachments[A])}_attachRenderbuffer(A){let{attachment:t=36064,renderbuffer:i}=A;const{gl:n}=this;n.framebufferRenderbuffer(36160,t,36161,i.handle),this.attachments[t]=i}_attachTexture(A){let{attachment:t=36064,texture:i,layer:n,level:r}=A;const{gl:o}=this;switch(o.bindTexture(i.target,i.handle),i.target){case 35866:case 32879:Ft(o).framebufferTextureLayer(36160,t,i.target,r,n);break;case 34067:const a=$Y(n);o.framebufferTexture2D(36160,t,a,i.handle,r);break;case 3553:o.framebufferTexture2D(36160,t,3553,i.handle,r);break;default:cA(!1,"Illegal texture type")}o.bindTexture(i.target,null),this.attachments[t]=i}_setReadBuffer(A){const t=NO(this.gl);t?t.readBuffer(A):cA(A===36064||A===1029,US),this.readBuffer=A}_setDrawBuffers(A){const{gl:t}=this,i=Ft(t);if(i)i.drawBuffers(A);else{const n=t.getExtension("WEBGL_draw_buffers");n?n.drawBuffersWEBGL(A):cA(A.length===1&&(A[0]===36064||A[0]===1029),US)}this.drawBuffers=A}_getAttachmentParameterFallback(A){const t=XY(this.gl);switch(A){case 36052:return t.WEBGL2?null:0;case 33298:case 33299:case 33300:case 33301:case 33302:case 33303:return t.WEBGL2?null:8;case 33297:return t.WEBGL2?null:5125;case 33296:return!t.WEBGL2&&!t.EXT_sRGB?9729:null;default:return null}}_createHandle(){return this.gl.createFramebuffer()}_deleteHandle(){this.gl.deleteFramebuffer(this.handle)}_bindHandle(A){return this.gl.bindFramebuffer(36160,A)}}function $Y(e){return e<34069?e+34069:e}function AK(e){return($e.STATUS||{})[e]||"Framebuffer error ".concat(e)}const eK=[36049,36048,33296,33298,33299,33300,33301,33302,33303];$e.ATTACHMENT_PARAMETERS=eK;function GL(e,A){cA(e instanceof Pt||e instanceof RL||e instanceof xL);const t=e.constructor,{gl:i,width:n,height:r,format:o,type:s,dataFormat:a,border:g,mipmaps:I}=e,l=Object.assign({width:n,height:r,format:o,type:s,dataFormat:a,border:g,mipmaps:I},A);return new t(i,l)}function tK(e,A){const{gl:t,width:i,height:n,id:r}=e;return new $e(t,Object.assign({},A,{id:"framebuffer-for-".concat(r),width:i,height:n,attachments:{[36064]:e}}))}function bC(e){let A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"unnamed";const t=/#define[\s*]SHADER_NAME[\s*]([A-Za-z0-9_-]+)[\s*]/,i=e.match(t);return i?i[1]:A}const iK=35632,nK=35633;function rK(e){switch(e){case iK:return"fragment";case nK:return"vertex";default:return"unknown type"}}function oK(e,A,t,i){const n=e.split(/\r?\n/),r={},o={},s=i||bC(A)||"(unnamed)",a="".concat(rK(t)," shader ").concat(s);for(let I=0;I1&&arguments[1]!==void 0?arguments[1]:1,t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:": ";const i=e.split(/\r?\n/),n=String(i.length+A-1).length;return i.map((r,o)=>{const s=String(o+A),a=s.length;return LL(s,n-a)+t+r})}function LL(e,A){let t="";for(let i=0;i=2&&t[0]==="#version"){const i=parseInt(t[1],10);Number.isFinite(i)&&(A=i)}return A}const rK="Shader: GLSL source code must be a JavaScript string";class WI extends Vn{get[Symbol.toStringTag](){return"Shader"}static getTypeName(A){switch(A){case 35633:return"vertex-shader";case 35632:return"fragment-shader";default:return cA(!1),"unknown"}}constructor(A,t){KE(A),cA(typeof t.source=="string",rK);const i=bC(t.source,null)||t.id||Jr("unnamed ".concat(WI.getTypeName(t.shaderType)));super(A,{id:i}),this.shaderType=t.shaderType,this.source=t.source,this.initialize(t)}initialize(A){let{source:t}=A;const i=bC(t,null);i&&(this.id=Jr(i)),this._compile(t)}getParameter(A){return this.gl.getShaderParameter(this.handle,A)}toString(){return"".concat(WI.getTypeName(this.shaderType),":").concat(this.id)}getName(){return bC(this.source)||"unnamed-shader"}getSource(){return this.gl.getShaderSource(this.handle)}getTranslatedSource(){const A=this.gl.getExtension("WEBGL_debug_shaders");return A?A.getTranslatedShaderSource(this.handle):"No translated source available. WEBGL_debug_shaders not implemented"}_compile(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.source;if(A.startsWith("#version ")||(A=`#version 100 -`.concat(A)),this.source=A,this.gl.shaderSource(this.handle,this.source),this.gl.compileShader(this.handle),!this.getParameter(35713)){const i=this.gl.getShaderInfoLog(this.handle),{shaderName:n,errors:r,warnings:o}=iK(i,this.source,this.shaderType,this.id);throw DA.error("GLSL compilation errors in ".concat(n,` +`),a)}}return t}function sK(e){let A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1,t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:": ";const i=e.split(/\r?\n/),n=String(i.length+A-1).length;return i.map((r,o)=>{const s=String(o+A),a=s.length;return _L(s,n-a)+t+r})}function _L(e,A){let t="";for(let i=0;i=2&&t[0]==="#version"){const i=parseInt(t[1],10);Number.isFinite(i)&&(A=i)}return A}const aK="Shader: GLSL source code must be a JavaScript string";class VI extends Kn{get[Symbol.toStringTag](){return"Shader"}static getTypeName(A){switch(A){case 35633:return"vertex-shader";case 35632:return"fragment-shader";default:return cA(!1),"unknown"}}constructor(A,t){KE(A),cA(typeof t.source=="string",aK);const i=bC(t.source,null)||t.id||qr("unnamed ".concat(VI.getTypeName(t.shaderType)));super(A,{id:i}),this.shaderType=t.shaderType,this.source=t.source,this.initialize(t)}initialize(A){let{source:t}=A;const i=bC(t,null);i&&(this.id=qr(i)),this._compile(t)}getParameter(A){return this.gl.getShaderParameter(this.handle,A)}toString(){return"".concat(VI.getTypeName(this.shaderType),":").concat(this.id)}getName(){return bC(this.source)||"unnamed-shader"}getSource(){return this.gl.getShaderSource(this.handle)}getTranslatedSource(){const A=this.gl.getExtension("WEBGL_debug_shaders");return A?A.getTranslatedShaderSource(this.handle):"No translated source available. WEBGL_debug_shaders not implemented"}_compile(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.source;if(A.startsWith("#version ")||(A=`#version 100 +`.concat(A)),this.source=A,this.gl.shaderSource(this.handle,this.source),this.gl.compileShader(this.handle),!this.getParameter(35713)){const i=this.gl.getShaderInfoLog(this.handle),{shaderName:n,errors:r,warnings:o}=oK(i,this.source,this.shaderType,this.id);throw DA.error("GLSL compilation errors in ".concat(n,` `).concat(r))(),DA.warn("GLSL compilation warnings in ".concat(n,` -`).concat(o))(),new Error("GLSL compilation errors in ".concat(n))}}_deleteHandle(){this.gl.deleteShader(this.handle)}_getOptsFromHandle(){return{type:this.getParameter(35663),source:this.getSource()}}}class Ph extends WI{get[Symbol.toStringTag](){return"VertexShader"}constructor(A,t){typeof t=="string"&&(t={source:t}),super(A,Object.assign({},t,{shaderType:35633}))}_createHandle(){return this.gl.createShader(35633)}}class Hh extends WI{get[Symbol.toStringTag](){return"FragmentShader"}constructor(A,t){typeof t=="string"&&(t={source:t}),super(A,Object.assign({},t,{shaderType:35632}))}_createHandle(){return this.gl.createShader(35632)}}const oK={[5126]:Me.bind(null,"uniform1fv",Zt,1,St),[35664]:Me.bind(null,"uniform2fv",Zt,2,St),[35665]:Me.bind(null,"uniform3fv",Zt,3,St),[35666]:Me.bind(null,"uniform4fv",Zt,4,St),[5124]:Me.bind(null,"uniform1iv",rr,1,St),[35667]:Me.bind(null,"uniform2iv",rr,2,St),[35668]:Me.bind(null,"uniform3iv",rr,3,St),[35669]:Me.bind(null,"uniform4iv",rr,4,St),[35670]:Me.bind(null,"uniform1iv",rr,1,St),[35671]:Me.bind(null,"uniform2iv",rr,2,St),[35672]:Me.bind(null,"uniform3iv",rr,3,St),[35673]:Me.bind(null,"uniform4iv",rr,4,St),[35674]:Me.bind(null,"uniformMatrix2fv",Zt,4,yn),[35675]:Me.bind(null,"uniformMatrix3fv",Zt,9,yn),[35676]:Me.bind(null,"uniformMatrix4fv",Zt,16,yn),[35678]:Bt,[35680]:Bt,[5125]:Me.bind(null,"uniform1uiv",vc,1,St),[36294]:Me.bind(null,"uniform2uiv",vc,2,St),[36295]:Me.bind(null,"uniform3uiv",vc,3,St),[36296]:Me.bind(null,"uniform4uiv",vc,4,St),[35685]:Me.bind(null,"uniformMatrix2x3fv",Zt,6,yn),[35686]:Me.bind(null,"uniformMatrix2x4fv",Zt,8,yn),[35687]:Me.bind(null,"uniformMatrix3x2fv",Zt,6,yn),[35688]:Me.bind(null,"uniformMatrix3x4fv",Zt,12,yn),[35689]:Me.bind(null,"uniformMatrix4x2fv",Zt,8,yn),[35690]:Me.bind(null,"uniformMatrix4x3fv",Zt,12,yn),[35678]:Bt,[35680]:Bt,[35679]:Bt,[35682]:Bt,[36289]:Bt,[36292]:Bt,[36293]:Bt,[36298]:Bt,[36299]:Bt,[36300]:Bt,[36303]:Bt,[36306]:Bt,[36307]:Bt,[36308]:Bt,[36311]:Bt},sK={},aK={},gK={},PS=[0];function Hp(e,A,t,i){A===1&&typeof e=="boolean"&&(e=e?1:0),Number.isFinite(e)&&(PS[0]=e,e=PS);const n=e.length;if(n%A&&DA.warn("Uniform size should be multiples of ".concat(A),e)(),e instanceof t)return e;let r=i[n];r||(r=new t(n),i[n]=r);for(let o=0;o{const n=e!==i;return n&&(A.uniform1i(t,i),e=i),n}}function Me(e,A,t,i){let n=null,r=null;return(o,s,a)=>{const g=A(a,t),I=g.length;let l=!1;if(n===null)n=new Float32Array(I),r=I,l=!0;else{cA(r===I,"Uniform length cannot change.");for(let c=0;c=0&&this._addAttribute(a,r,o,s)}this.attributeInfos.sort((n,r)=>n.location-r.location)}_readVaryingsFromProgram(A){const{gl:t}=A;if(!ie(t))return;const i=t.getProgramParameter(A.handle,35971);for(let n=0;nn.location-r.location)}_addAttribute(A,t,i,n){const{type:r,components:o}=JS(i),s={type:r,size:n*o};this._inferProperties(A,t,s);const a={location:A,name:t,accessor:new ti(s)};this.attributeInfos.push(a),this.attributeInfosByLocation[A]=a,this.attributeInfosByName[a.name]=a}_inferProperties(A,t,i){/instance/i.test(t)&&(i.divisor=1)}_addVarying(A,t,i,n){const{type:r,components:o}=JS(i),s=new ti({type:r,size:n*o}),a={location:A,name:t,accessor:s};this.varyingInfos.push(a),this.varyingInfosByName[a.name]=a}}const OS=4,VK=35981,WK=["setVertexArray","setAttributes","setBuffers","unsetBuffers","use","getUniformCount","getUniformInfo","getUniformLocation","getUniformValue","getVarying","getFragDataLocation","getAttachedShaders","getAttributeCount","getAttributeLocation","getAttributeInfo"];class _L extends Vn{get[Symbol.toStringTag](){return"Program"}constructor(A){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};super(A,t),this.stubRemovedMethods("Program","v6.0",WK),this._isCached=!1,this.initialize(t),Object.seal(this),this._setId(t.id)}initialize(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const{hash:t,vs:i,fs:n,varyings:r,bufferMode:o=VK}=A;return this.hash=t||"",this.vs=typeof i=="string"?new Ph(this.gl,{id:"".concat(A.id,"-vs"),source:i}):i,this.fs=typeof n=="string"?new Hh(this.gl,{id:"".concat(A.id,"-fs"),source:n}):n,cA(this.vs instanceof Ph),cA(this.fs instanceof Hh),this.uniforms={},this._textureUniforms={},r&&r.length>0&&(Ft(this.gl),this.varyings=r,this.gl2.transformFeedbackVaryings(this.handle,r,o)),this._compileAndLink(),this._readUniformLocationsFromLinkedProgram(),this.configuration=new KK(this),this.setProps(A)}delete(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return this._isCached?this:super.delete(A)}setProps(A){return"uniforms"in A&&this.setUniforms(A.uniforms),this}draw(A){let{logPriority:t,drawMode:i=4,vertexCount:n,offset:r=0,start:o,end:s,isIndexed:a=!1,indexType:g=5123,instanceCount:I=0,isInstanced:l=I>0,vertexArray:c=null,transformFeedback:C,framebuffer:B,parameters:u={},uniforms:E,samplers:h}=A;if((E||h)&&(DA.deprecated("Program.draw({uniforms})","Program.setUniforms(uniforms)")(),this.setUniforms(E||{})),DA.priority>=t){const f=B?B.id:"default",Q="mode=".concat(Lr(this.gl,i)," verts=").concat(n," ")+"instances=".concat(I," indexType=").concat(Lr(this.gl,g)," ")+"isInstanced=".concat(l," isIndexed=").concat(a," ")+"Framebuffer=".concat(f);DA.log(t,Q)()}return cA(c),this.gl.useProgram(this.handle),!this._areTexturesRenderable()||n===0||l&&I===0?!1:(c.bindForDraw(n,I,()=>{if(B!==void 0&&(u=Object.assign({},u,{framebuffer:B})),C){const f=YK(i);C.begin(f)}this._bindTextures(),ui(this.gl,u,()=>{a&&l?this.gl2.drawElementsInstanced(i,n,g,r,I):a&&ie(this.gl)&&!isNaN(o)&&!isNaN(s)?this.gl2.drawRangeElements(i,o,s,n,g,r):a?this.gl.drawElements(i,n,g,r):l?this.gl2.drawArraysInstanced(i,r,n,I):this.gl.drawArrays(i,r,n)}),C&&C.end()}),!0)}setUniforms(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};DA.priority>=2&&lK(A,this.id,this._uniformSetters),this.gl.useProgram(this.handle);for(const t in A){const i=A[t],n=this._uniformSetters[t];if(n){let r=i,o=!1;if(r instanceof $e&&(r=r.texture),r instanceof ko)if(o=this.uniforms[t]!==i,o){n.textureIndex===void 0&&(n.textureIndex=this._textureIndexCounter++);const s=r,{textureIndex:a}=n;s.bind(a),r=a,this._textureUniforms[t]=s}else r=n.textureIndex;else this._textureUniforms[t]&&delete this._textureUniforms[t];(n(r)||o)&&CK(this.uniforms,t,i)}}return this}_areTexturesRenderable(){let A=!0;for(const t in this._textureUniforms){const i=this._textureUniforms[t];i.update(),A=A&&i.loaded}return A}_bindTextures(){for(const A in this._textureUniforms){const t=this._uniformSetters[A].textureIndex;this._textureUniforms[A].bind(t)}}_createHandle(){return this.gl.createProgram()}_deleteHandle(){this.gl.deleteProgram(this.handle)}_getOptionsFromHandle(A){const t=this.gl.getAttachedShaders(A),i={};for(const n of t)switch(this.gl.getShaderParameter(this.handle,35663)){case 35633:i.vs=new Ph({handle:n});break;case 35632:i.fs=new Hh({handle:n});break}return i}_getParameter(A){return this.gl.getProgramParameter(this.handle,A)}_setId(A){if(!A){const t=this._getName();this.id=Jr(t)}}_getName(){let A=this.vs.getName()||this.fs.getName();return A=A.replace(/shader/i,""),A=A?"".concat(A,"-program"):"program",A}_compileAndLink(){const{gl:A}=this;if(A.attachShader(this.handle,this.vs.handle),A.attachShader(this.handle,this.fs.handle),DA.time(OS,"linkProgram for ".concat(this._getName()))(),A.linkProgram(this.handle),DA.timeEnd(OS,"linkProgram for ".concat(this._getName()))(),A.debug||DA.level>0){if(!A.getProgramParameter(this.handle,35714))throw new Error("Error linking: ".concat(A.getProgramInfoLog(this.handle)));if(A.validateProgram(this.handle),!A.getProgramParameter(this.handle,35715))throw new Error("Error validating: ".concat(A.getProgramInfoLog(this.handle)))}}_readUniformLocationsFromLinkedProgram(){const{gl:A}=this;this._uniformSetters={},this._uniformCount=this._getParameter(35718);for(let t=0;t1)for(let o=0;o1&&arguments[1]!==void 0?arguments[1]:[];const i=ie(A),n=Pp(A,De.TIMER_QUERY);let r=i||n;for(const o of t)switch(o){case"queries":r=r&&i;break;case"timers":r=r&&n;break;default:cA(!1)}return r}constructor(A){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};super(A,t),this.target=null,this._queryPending=!1,this._pollingPromise=null,Object.seal(this)}beginTimeElapsedQuery(){return this.begin(XK)}beginOcclusionQuery(){let{conservative:A=!1}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return this.begin(A?e5:A5)}beginTransformFeedbackQuery(){return this.begin($K)}begin(A){return this._queryPending?this:(this.target=A,this.gl2.beginQuery(this.target,this.handle),this)}end(){return this._queryPending?this:(this.target&&(this.gl2.endQuery(this.target),this.target=null,this._queryPending=!0),this)}isResultAvailable(){if(!this._queryPending)return!1;const A=this.gl2.getQueryParameter(this.handle,jK);return A&&(this._queryPending=!1),A}isTimerDisjoint(){return this.gl2.getParameter(ZK)}getResult(){return this.gl2.getQueryParameter(this.handle,zK)}getTimerMilliseconds(){return this.getResult()/1e6}createPoll(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:Number.POSITIVE_INFINITY;if(this._pollingPromise)return this._pollingPromise;let t=0;return this._pollingPromise=new Promise((i,n)=>{const r=()=>{this.isResultAvailable()?(i(this.getResult()),this._pollingPromise=null):t++>A?(n("Timed out"),this._pollingPromise=null):requestAnimationFrame(r)};requestAnimationFrame(r)}),this._pollingPromise}_createHandle(){return bB.isSupported(this.gl)?this.gl2.createQuery():null}_deleteHandle(){this.gl2.deleteQuery(this.handle)}}class ML extends Vn{get[Symbol.toStringTag](){return"TransformFeedback"}static isSupported(A){return ie(A)}constructor(A){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};Ft(A),super(A,t),this.initialize(t),this.stubRemovedMethods("TransformFeedback","v6.0",["pause","resume"]),Object.seal(this)}initialize(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return this.buffers={},this.unused={},this.configuration=null,this.bindOnUse=!0,fa(this.buffers)||this.bind(()=>this._unbindBuffers()),this.setProps(A),this}setProps(A){"program"in A&&(this.configuration=A.program&&A.program.configuration),"configuration"in A&&(this.configuration=A.configuration),"bindOnUse"in A&&(A=A.bindOnUse),"buffers"in A&&this.setBuffers(A.buffers)}setBuffers(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return this.bind(()=>{for(const t in A)this.setBuffer(t,A[t])}),this}setBuffer(A,t){const i=this._getVaryingIndex(A),{buffer:n,byteSize:r,byteOffset:o}=this._getBufferParams(t);return i<0?(this.unused[A]=n,DA.warn("".concat(this.id," unused varying buffer ").concat(A))(),this):(this.buffers[i]=t,this.bindOnUse||this._bindBuffer(i,n,o,r),this)}begin(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;return this.gl.bindTransformFeedback(36386,this.handle),this._bindBuffers(),this.gl.beginTransformFeedback(A),this}end(){return this.gl.endTransformFeedback(),this._unbindBuffers(),this.gl.bindTransformFeedback(36386,null),this}_getBufferParams(A){let t,i,n;return A instanceof we?n=A:(n=A.buffer,i=A.byteSize,t=A.byteOffset),(t!==void 0||i!==void 0)&&(t=t||0,i=i||n.byteLength-t),{buffer:n,byteOffset:t,byteSize:i}}_getVaryingInfo(A){return this.configuration&&this.configuration.getVaryingInfo(A)}_getVaryingIndex(A){if(this.configuration)return this.configuration.getVaryingInfo(A).location;const t=Number(A);return Number.isFinite(t)?t:-1}_bindBuffers(){if(this.bindOnUse)for(const A in this.buffers){const{buffer:t,byteSize:i,byteOffset:n}=this._getBufferParams(this.buffers[A]);this._bindBuffer(A,t,n,i)}}_unbindBuffers(){if(this.bindOnUse)for(const A in this.buffers)this._bindBuffer(A,null)}_bindBuffer(A,t){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,n=arguments.length>3?arguments[3]:void 0;const r=t&&t.handle;return!r||n===void 0?this.gl.bindBufferBase(35982,A,r):this.gl.bindBufferRange(35982,A,r,i,n),this}_createHandle(){return this.gl.createTransformFeedback()}_deleteHandle(){this.gl.deleteTransformFeedback(this.handle)}_bindHandle(A){this.gl.bindTransformFeedback(36386,this.handle)}}let Rc=null;function t5(e){return(!Rc||Rc.byteLength1&&arguments[1]!==void 0?arguments[1]:{}).constantAttributeZero?ie(A)||$2()==="Chrome":!0}static getDefaultArray(A){return A.luma=A.luma||{},A.luma.defaultVertexArray||(A.luma.defaultVertexArray=new ei(A,{handle:null,isDefaultArray:!0})),A.luma.defaultVertexArray}static getMaxAttributes(A){return ei.MAX_ATTRIBUTES=ei.MAX_ATTRIBUTES||A.getParameter(34921),ei.MAX_ATTRIBUTES}static setConstant(A,t,i){switch(i.constructor){case Float32Array:ei._setConstantFloatArray(A,t,i);break;case Int32Array:ei._setConstantIntArray(A,t,i);break;case Uint32Array:ei._setConstantUintArray(A,t,i);break;default:cA(!1)}}constructor(A){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const i=t.id||t.program&&t.program.id;super(A,Object.assign({},t,{id:i})),this.buffer=null,this.bufferValue=null,this.isDefaultArray=t.isDefaultArray||!1,this.gl2=A,this.initialize(t),Object.seal(this)}delete(){return super.delete(),this.buffer&&this.buffer.delete(),this}get MAX_ATTRIBUTES(){return ei.getMaxAttributes(this.gl)}initialize(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return this.setProps(A)}setProps(A){return this}setElementBuffer(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:null;return cA(!A||A.target===34963,r5),this.bind(()=>{this.gl.bindBuffer(34963,A?A.handle:null)}),this}setBuffer(A,t,i){if(t.target===34963)return this.setElementBuffer(t,i);const{size:n,type:r,stride:o,offset:s,normalized:a,integer:g,divisor:I}=i,{gl:l,gl2:c}=this;return A=Number(A),this.bind(()=>{l.bindBuffer(34962,t.handle),g?(cA(ie(l)),c.vertexAttribIPointer(A,n,r,o,s)):l.vertexAttribPointer(A,n,r,a,o,s),l.enableVertexAttribArray(A),c.vertexAttribDivisor(A,I||0)}),this}enable(A){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return!t&&A===0&&!ei.isSupported(this.gl,{constantAttributeZero:!0})||(A=Number(A),this.bind(()=>t?this.gl.enableVertexAttribArray(A):this.gl.disableVertexAttribArray(A))),this}getConstantBuffer(A,t){const i=this._normalizeConstantArrayValue(t),n=i.byteLength*A,r=i.length*A;let o=!this.buffer;if(this.buffer=this.buffer||new we(this.gl,n),o=o||this.buffer.reallocate(n),o=o||!this._compareConstantArrayValues(i,this.bufferValue),o){const s=i5(t.constructor,r);n5({target:s,source:i,start:0,count:r}),this.buffer.subData(s),this.bufferValue=t}return this.buffer}_normalizeConstantArrayValue(A){return Array.isArray(A)?new Float32Array(A):A}_compareConstantArrayValues(A,t){if(!A||!t||A.length!==t.length||A.constructor!==t.constructor)return!1;for(let i=0;i{switch(A){case 34373:return this.gl.getVertexAttribOffset(i,A);default:return this.gl.getVertexAttrib(i,A)}})}}const o5="VertexArray: attributes must be Buffers or constants (i.e. typed array)",s5=/^(.+)__LOCATION_([0-9]+)$/,a5=["setBuffers","setGeneric","clearBindings","setLocations","setGenericValues","setDivisor","enable","disable"];class g5{constructor(A){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const i=t.id||t.program&&t.program.id;this.id=i,this.gl=A,this.configuration=null,this.elements=null,this.elementsAccessor=null,this.values=null,this.accessors=null,this.unused=null,this.drawParams=null,this.buffer=null,this.attributes={},this.vertexArrayObject=new ei(A),pL(this,"VertexArray","v6.0",a5),this.initialize(t),Object.seal(this)}delete(){this.buffer&&this.buffer.delete(),this.vertexArrayObject.delete()}initialize(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return this.reset(),this.configuration=null,this.bindOnUse=!1,this.setProps(A)}reset(){this.elements=null,this.elementsAccessor=null;const{MAX_ATTRIBUTES:A}=this.vertexArrayObject;return this.values=new Array(A).fill(null),this.accessors=new Array(A).fill(null),this.unused={},this.drawParams=null,this}setProps(A){return"program"in A&&(this.configuration=A.program&&A.program.configuration),"configuration"in A&&(this.configuration=A.configuration),"attributes"in A&&this.setAttributes(A.attributes),"elements"in A&&this.setElementBuffer(A.elements),"bindOnUse"in A&&(A=A.bindOnUse),this}clearDrawParams(){this.drawParams=null}getDrawParams(){return this.drawParams=this.drawParams||this._updateDrawParams(),this.drawParams}setAttributes(A){return Object.assign(this.attributes,A),this.vertexArrayObject.bind(()=>{for(const t in A){const i=A[t];this._setAttribute(t,i)}this.gl.bindBuffer(34962,null)}),this}setElementBuffer(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:null,t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return this.elements=A,this.elementsAccessor=t,this.clearDrawParams(),this.vertexArrayObject.setElementBuffer(A,t),this}setBuffer(A,t){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};if(t.target===34963)return this.setElementBuffer(t,i);const{location:n,accessor:r}=this._resolveLocationAndAccessor(A,t,t.accessor,i);return n>=0&&(this.values[n]=t,this.accessors[n]=r,this.clearDrawParams(),this.vertexArrayObject.setBuffer(n,t,r)),this}setConstant(A,t){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};const{location:n,accessor:r}=this._resolveLocationAndAccessor(A,t,Object.assign({size:t.length},i));return n>=0&&(t=this.vertexArrayObject._normalizeConstantArrayValue(t),this.values[n]=t,this.accessors[n]=r,this.clearDrawParams(),this.vertexArrayObject.enable(n,!1)),this}unbindBuffers(){return this.vertexArrayObject.bind(()=>{this.elements&&this.vertexArrayObject.setElementBuffer(null),this.buffer=this.buffer||new we(this.gl,{accessor:{size:4}});for(let A=0;A{this.elements&&this.setElementBuffer(this.elements);for(let A=0;A{this._setConstantAttributes(A,t),n=i()}),n}_resolveLocationAndAccessor(A,t,i,n){const r={location:-1,accessor:null},{location:o,name:s}=this._getAttributeIndex(A);if(!Number.isFinite(o)||o<0)return this.unused[A]=t,DA.once(3,()=>"unused value ".concat(A," in ").concat(this.id))(),r;const a=this._getAttributeInfo(s||o);if(!a)return r;const g=this.accessors[o]||{},I=ti.resolve(a.accessor,g,i,n),{size:l,type:c}=I;return cA(Number.isFinite(l)&&Number.isFinite(c)),{location:o,accessor:I}}_getAttributeInfo(A){return this.configuration&&this.configuration.getAttributeInfo(A)}_getAttributeIndex(A){const t=Number(A);if(Number.isFinite(t))return{location:t};const i=s5.exec(A),n=i?i[1]:A,r=i?Number(i[2]):0;return this.configuration?{location:this.configuration.getAttributeLocation(n)+r,name:n}:{location:-1}}_setAttribute(A,t){if(t instanceof we)this.setBuffer(A,t);else if(Array.isArray(t)&&t.length&&t[0]instanceof we){const i=t[0],n=t[1];this.setBuffer(A,i,n)}else if(ArrayBuffer.isView(t)||Array.isArray(t)){const i=t;this.setConstant(A,i)}else if(t.buffer instanceof we){const i=t;this.setBuffer(A,i.buffer,i)}else throw new Error(o5)}_setConstantAttributes(A,t){const i=Math.max(A|0,t|0);let n=this.values[0];ArrayBuffer.isView(n)&&this._setConstantAttributeZero(n,i);for(let r=1;r0;if(A.isInstanced=A.isInstanced||o,i instanceof we){const s=i;if(o){const a=s.getVertexCount(n);A.instanceCount=Math.min(A.instanceCount,a)}else{const a=s.getVertexCount(n);A.vertexCount=Math.min(A.vertexCount,a)}}}setElements(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:null,t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return DA.deprecated("setElements","setElementBuffer")(),this.setElementBuffer(A,t)}}function I5(e,A){const{maxElts:t=16,size:i=1}=A;let n="[";for(let o=0;o0&&(n+=",".concat(o%i===0?" ":"")),n+=zI(e[o],A);const r=e.length>t?"...":"]";return"".concat(n).concat(r)}function zI(e){let A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const t=1e-16,{isInteger:i=!1}=A;if(Array.isArray(e)||ArrayBuffer.isView(e))return I5(e,A);if(!Number.isFinite(e))return String(e);if(Math.abs(e)100&&Math.abs(e)<1e4)return e.toFixed(0);const n=e.toPrecision(2);return n.indexOf(".0")===n.length-2?n.slice(0,-1):n}function YS(e){let{header:A="Uniforms",program:t,uniforms:i,undefinedOnly:n=!1}=e;cA(t);const r=".*_.*",o=".*Matrix",s=t._uniformSetters,a={},g=Object.keys(s).sort();let I=0;for(const C of g)!C.match(r)&&!C.match(o)&&qh({table:a,header:A,uniforms:i,uniformName:C,undefinedOnly:n})&&I++;for(const C of g)C.match(o)&&qh({table:a,header:A,uniforms:i,uniformName:C,undefinedOnly:n})&&I++;for(const C of g)a[C]||qh({table:a,header:A,uniforms:i,uniformName:C,undefinedOnly:n})&&I++;let l=0;const c={};if(!n)for(const C in i){const B=i[C];a[C]||(l++,c[C]={Type:"NOT USED: ".concat(B),[A]:zI(B)})}return{table:a,count:I,unusedTable:c,unusedCount:l}}function qh(e){let{table:A,header:t,uniforms:i,uniformName:n,undefinedOnly:r}=e;const o=i[n],s=l5(o);return!r||!s?(A[n]={[t]:s?zI(o):"N/A","Uniform Type":s?o:"NOT PROVIDED"},!0):!1}function l5(e){return e!=null}function c5(e){let{vertexArray:A,header:t="Attributes"}=e;if(!A.configuration)return{};const i={};A.elements&&(i.ELEMENT_ARRAY_BUFFER=KS(A,A.elements,null,t));const n=A.values;for(const r in n){const o=A._getAttributeInfo(r);if(o){let s="".concat(r,": ").concat(o.name);const a=A.accessors[o.location];a&&(s="".concat(r,": ").concat(C5(o.name,a))),i[s]=KS(A,n[r],a,t)}}return i}function KS(e,A,t,i){const{gl:n}=e;if(!A)return{[i]:"null","Format ":"N/A"};let r="NOT PROVIDED",o=1,s=0,a=0,g,I,l;if(t&&(r=t.type,o=t.size,r=String(r).replace("Array",""),g=r.indexOf("nt")!==-1),A instanceof we){const c=A,{data:C,changed:B}=c.getDebugData();I=B?"*":"",l=C,a=c.byteLength,s=a/C.BYTES_PER_ELEMENT/o;let u;if(t){const E=t.divisor>0;u="".concat(E?"I ":"P "," ").concat(s," (x").concat(o,"=").concat(a," bytes ").concat(Lr(n,r),")")}else g=!0,u="".concat(a," bytes");return{[i]:"".concat(I).concat(zI(l,{size:o,isInteger:g})),"Format ":u}}return l=A,o=A.length,r=String(A.constructor.name).replace("Array",""),g=r.indexOf("nt")!==-1,{[i]:"".concat(zI(l,{size:o,isInteger:g})," (constant)"),"Format ":"".concat(o,"x").concat(r," (constant)")}}function C5(e,A){const{type:t,size:i}=A,n=GL(t,i);return n?"".concat(e," (").concat(n.name,")"):e}function B5(e){const A={},t="Accessors for ".concat(e.id);for(const i of e.attributeInfos)if(i){const n=VS(i);A["in ".concat(n)]={[t]:JSON.stringify(i.accessor)}}for(const i of e.varyingInfos)if(i){const n=VS(i);A["out ".concat(n)]={[t]:JSON.stringify(i.accessor)}}return A}function VS(e){const{type:A,size:t}=e.accessor,i=GL(A,t);return i?"".concat(i.name," ").concat(e.name):e.name}const WS=Kn()&&typeof document!="undefined";let E5=0;class u5{constructor(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const{onCreateContext:t=E=>QL(E),onAddHTML:i=null,onInitialize:n=()=>{},onRender:r=()=>{},onFinalize:o=()=>{},onError:s,gl:a=null,glOptions:g={},debug:I=!1,createFramebuffer:l=!1,autoResizeViewport:c=!0,autoResizeDrawingBuffer:C=!0,stats:B=yo.get("animation-loop-".concat(E5++))}=A;let{useDevicePixels:u=!0}=A;"useDevicePixelRatio"in A&&(DA.deprecated("useDevicePixelRatio","useDevicePixels")(),u=A.useDevicePixelRatio),this.props={onCreateContext:t,onAddHTML:i,onInitialize:n,onRender:r,onFinalize:o,onError:s,gl:a,glOptions:g,debug:I,createFramebuffer:l},this.gl=a,this.needsRedraw=null,this.timeline=null,this.stats=B,this.cpuTime=this.stats.get("CPU Time"),this.gpuTime=this.stats.get("GPU Time"),this.frameRate=this.stats.get("Frame Rate"),this._initialized=!1,this._running=!1,this._animationFrameId=null,this._nextFramePromise=null,this._resolveNextFrame=null,this._cpuStartTime=0,this.setProps({autoResizeViewport:c,autoResizeDrawingBuffer:C,useDevicePixels:u}),this.start=this.start.bind(this),this.stop=this.stop.bind(this),this._pageLoadPromise=null,this._onMousemove=this._onMousemove.bind(this),this._onMouseleave=this._onMouseleave.bind(this)}delete(){this.stop(),this._setDisplay(null)}setNeedsRedraw(A){return cA(typeof A=="string"),this.needsRedraw=this.needsRedraw||A,this}setProps(A){return"autoResizeViewport"in A&&(this.autoResizeViewport=A.autoResizeViewport),"autoResizeDrawingBuffer"in A&&(this.autoResizeDrawingBuffer=A.autoResizeDrawingBuffer),"useDevicePixels"in A&&(this.useDevicePixels=A.useDevicePixels),this}start(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(this._running)return this;this._running=!0;const t=this._getPageLoadPromise().then(()=>!this._running||this._initialized?null:(this._createWebGLContext(A),this._createFramebuffer(),this._startEventHandling(),this._initializeCallbackData(),this._updateCallbackData(),this._resizeCanvasDrawingBuffer(),this._resizeViewport(),this._gpuTimeQuery=bB.isSupported(this.gl,["timers"])?new bB(this.gl):null,this._initialized=!0,this.onInitialize(this.animationProps))).then(i=>{this._running&&(this._addCallbackData(i||{}),i!==!1&&this._startLoop())});return this.props.onError&&t.catch(this.props.onError),this}redraw(){return this.isContextLost()?this:(this._beginTimers(),this._setupFrame(),this._updateCallbackData(),this._renderFrame(this.animationProps),this._clearNeedsRedraw(),this.offScreen&&this.gl.commit&&this.gl.commit(),this._resolveNextFrame&&(this._resolveNextFrame(this),this._nextFramePromise=null,this._resolveNextFrame=null),this._endTimers(),this)}stop(){return this._running&&(this._finalizeCallbackData(),this._cancelAnimationFrame(this._animationFrameId),this._nextFramePromise=null,this._resolveNextFrame=null,this._animationFrameId=null,this._running=!1),this}attachTimeline(A){return this.timeline=A,this.timeline}detachTimeline(){this.timeline=null}waitForRender(){return this.setNeedsRedraw("waitForRender"),this._nextFramePromise||(this._nextFramePromise=new Promise(A=>{this._resolveNextFrame=A})),this._nextFramePromise}async toDataURL(){return this.setNeedsRedraw("toDataURL"),await this.waitForRender(),this.gl.canvas.toDataURL()}isContextLost(){return this.gl.isContextLost()}onCreateContext(){return this.props.onCreateContext(...arguments)}onInitialize(){return this.props.onInitialize(...arguments)}onRender(){return this.props.onRender(...arguments)}onFinalize(){return this.props.onFinalize(...arguments)}getHTMLControlValue(A){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1;const i=document.getElementById(A);return i?Number(i.value):t}setViewParameters(){return DA.removed("AnimationLoop.setViewParameters","AnimationLoop.setProps")(),this}_startLoop(){const A=()=>{!this._running||(this.redraw(),this._animationFrameId=this._requestAnimationFrame(A))};this._cancelAnimationFrame(this._animationFrameId),this._animationFrameId=this._requestAnimationFrame(A)}_getPageLoadPromise(){return this._pageLoadPromise||(this._pageLoadPromise=WS?new Promise((A,t)=>{if(WS&&document.readyState==="complete"){A(document);return}window.addEventListener("load",()=>{A(document)})}):Promise.resolve({})),this._pageLoadPromise}_setDisplay(A){this.display&&(this.display.delete(),this.display.animationLoop=null),A&&(A.animationLoop=this),this.display=A}_cancelAnimationFrame(A){return this.display&&this.display.cancelAnimationFrame?this.display.cancelAnimationFrame(A):vY(A)}_requestAnimationFrame(A){if(this._running)return this.display&&this.display.requestAnimationFrame?this.display.requestAnimationFrame(A):wY(A)}_renderFrame(){if(this.display){this.display._renderFrame(...arguments);return}this.onRender(...arguments)}_clearNeedsRedraw(){this.needsRedraw=null}_setupFrame(){this._resizeCanvasDrawingBuffer(),this._resizeViewport(),this._resizeFramebuffer()}_initializeCallbackData(){this.animationProps={gl:this.gl,stop:this.stop,canvas:this.gl.canvas,framebuffer:this.framebuffer,useDevicePixels:this.useDevicePixels,needsRedraw:null,startTime:Date.now(),engineTime:0,tick:0,tock:0,time:0,_timeline:this.timeline,_loop:this,_animationLoop:this,_mousePosition:null}}_updateCallbackData(){const{width:A,height:t,aspect:i}=this._getSizeAndAspect();(A!==this.animationProps.width||t!==this.animationProps.height)&&this.setNeedsRedraw("drawing buffer resized"),i!==this.animationProps.aspect&&this.setNeedsRedraw("drawing buffer aspect changed"),this.animationProps.width=A,this.animationProps.height=t,this.animationProps.aspect=i,this.animationProps.needsRedraw=this.needsRedraw,this.animationProps.engineTime=Date.now()-this.animationProps.startTime,this.timeline&&this.timeline.update(this.animationProps.engineTime),this.animationProps.tick=Math.floor(this.animationProps.time/1e3*60),this.animationProps.tock++,this.animationProps.time=this.timeline?this.timeline.getTime():this.animationProps.engineTime,this.animationProps._offScreen=this.offScreen}_finalizeCallbackData(){this.onFinalize(this.animationProps)}_addCallbackData(A){typeof A=="object"&&A!==null&&(this.animationProps=Object.assign({},this.animationProps,A))}_createWebGLContext(A){if(this.offScreen=A.canvas&&typeof OffscreenCanvas!="undefined"&&A.canvas instanceof OffscreenCanvas,A=Object.assign({},A,this.props.glOptions),this.gl=this.props.gl?kp(this.props.gl,A):this.onCreateContext(A),!YE(this.gl))throw new Error("AnimationLoop.onCreateContext - illegal context returned");cY(this.gl),this._createInfoDiv()}_createInfoDiv(){if(this.gl.canvas&&this.props.onAddHTML){const A=document.createElement("div");document.body.appendChild(A),A.style.position="relative";const t=document.createElement("div");t.style.position="absolute",t.style.left="10px",t.style.bottom="10px",t.style.width="300px",t.style.background="white",A.appendChild(this.gl.canvas),A.appendChild(t);const i=this.props.onAddHTML(t);i&&(t.innerHTML=i)}}_getSizeAndAspect(){const A=this.gl.drawingBufferWidth,t=this.gl.drawingBufferHeight;let i=1;const{canvas:n}=this.gl;return n&&n.clientHeight?i=n.clientWidth/n.clientHeight:A>0&&t>0&&(i=A/t),{width:A,height:t,aspect:i}}_resizeViewport(){this.autoResizeViewport&&this.gl.viewport(0,0,this.gl.drawingBufferWidth,this.gl.drawingBufferHeight)}_resizeCanvasDrawingBuffer(){this.autoResizeDrawingBuffer&&hY(this.gl,{useDevicePixels:this.useDevicePixels})}_createFramebuffer(){this.props.createFramebuffer&&(this.framebuffer=new $e(this.gl))}_resizeFramebuffer(){this.framebuffer&&this.framebuffer.resize({width:this.gl.drawingBufferWidth,height:this.gl.drawingBufferHeight})}_beginTimers(){this.frameRate.timeEnd(),this.frameRate.timeStart(),this._gpuTimeQuery&&this._gpuTimeQuery.isResultAvailable()&&!this._gpuTimeQuery.isTimerDisjoint()&&this.stats.get("GPU Time").addTime(this._gpuTimeQuery.getTimerMilliseconds()),this._gpuTimeQuery&&this._gpuTimeQuery.beginTimeElapsedQuery(),this.cpuTime.timeStart()}_endTimers(){this.cpuTime.timeEnd(),this._gpuTimeQuery&&this._gpuTimeQuery.end()}_startEventHandling(){const{canvas:A}=this.gl;A&&(A.addEventListener("mousemove",this._onMousemove),A.addEventListener("mouseleave",this._onMouseleave))}_onMousemove(A){this.animationProps._mousePosition=[A.offsetX,A.offsetY]}_onMouseleave(A){this.animationProps._mousePosition=null}}const kl="vs",qp="fs";function ri(e,A){if(!e)throw new Error(A||"shadertools: assertion failed.")}const Jh={number:{validate(e,A){return Number.isFinite(e)&&(!("max"in A)||e<=A.max)&&(!("min"in A)||e>=A.min)}},array:{validate(e,A){return Array.isArray(e)||ArrayBuffer.isView(e)}}};function h5(e){const A={};for(const t in e){const i=e[t],n=f5(i);A[t]=n}return A}function f5(e){let A=zS(e);return A==="object"?e?"type"in e?Object.assign({},e,Jh[e.type]):"value"in e?(A=zS(e.value),Object.assign({type:A},e,Jh[A])):{type:"object",value:e}:{type:"object",value:null}:Object.assign({type:A,value:e},Jh[A])}function zS(e){return Array.isArray(e)||ArrayBuffer.isView(e)?"array":typeof e}const Q5="vs",d5="fs";class jS{constructor(A){let{name:t,vs:i,fs:n,dependencies:r=[],uniforms:o,getUniforms:s,deprecations:a=[],defines:g={},inject:I={},vertexShader:l,fragmentShader:c}=A;ri(typeof t=="string"),this.name=t,this.vs=i||l,this.fs=n||c,this.getModuleUniforms=s,this.dependencies=r,this.deprecations=this._parseDeprecationDefinitions(a),this.defines=g,this.injections=p5(I),o&&(this.uniforms=h5(o))}getModuleSource(A){let t;switch(A){case Q5:t=this.vs||"";break;case d5:t=this.fs||"";break;default:ri(!1)}return"#define MODULE_".concat(this.name.toUpperCase().replace(/[^0-9a-z]/gi,"_"),` +`).concat(o))(),new Error("GLSL compilation errors in ".concat(n))}}_deleteHandle(){this.gl.deleteShader(this.handle)}_getOptsFromHandle(){return{type:this.getParameter(35663),source:this.getSource()}}}class Ph extends VI{get[Symbol.toStringTag](){return"VertexShader"}constructor(A,t){typeof t=="string"&&(t={source:t}),super(A,Object.assign({},t,{shaderType:35633}))}_createHandle(){return this.gl.createShader(35633)}}class Hh extends VI{get[Symbol.toStringTag](){return"FragmentShader"}constructor(A,t){typeof t=="string"&&(t={source:t}),super(A,Object.assign({},t,{shaderType:35632}))}_createHandle(){return this.gl.createShader(35632)}}const gK={[5126]:Me.bind(null,"uniform1fv",Zt,1,St),[35664]:Me.bind(null,"uniform2fv",Zt,2,St),[35665]:Me.bind(null,"uniform3fv",Zt,3,St),[35666]:Me.bind(null,"uniform4fv",Zt,4,St),[5124]:Me.bind(null,"uniform1iv",nr,1,St),[35667]:Me.bind(null,"uniform2iv",nr,2,St),[35668]:Me.bind(null,"uniform3iv",nr,3,St),[35669]:Me.bind(null,"uniform4iv",nr,4,St),[35670]:Me.bind(null,"uniform1iv",nr,1,St),[35671]:Me.bind(null,"uniform2iv",nr,2,St),[35672]:Me.bind(null,"uniform3iv",nr,3,St),[35673]:Me.bind(null,"uniform4iv",nr,4,St),[35674]:Me.bind(null,"uniformMatrix2fv",Zt,4,yn),[35675]:Me.bind(null,"uniformMatrix3fv",Zt,9,yn),[35676]:Me.bind(null,"uniformMatrix4fv",Zt,16,yn),[35678]:Bt,[35680]:Bt,[5125]:Me.bind(null,"uniform1uiv",vc,1,St),[36294]:Me.bind(null,"uniform2uiv",vc,2,St),[36295]:Me.bind(null,"uniform3uiv",vc,3,St),[36296]:Me.bind(null,"uniform4uiv",vc,4,St),[35685]:Me.bind(null,"uniformMatrix2x3fv",Zt,6,yn),[35686]:Me.bind(null,"uniformMatrix2x4fv",Zt,8,yn),[35687]:Me.bind(null,"uniformMatrix3x2fv",Zt,6,yn),[35688]:Me.bind(null,"uniformMatrix3x4fv",Zt,12,yn),[35689]:Me.bind(null,"uniformMatrix4x2fv",Zt,8,yn),[35690]:Me.bind(null,"uniformMatrix4x3fv",Zt,12,yn),[35678]:Bt,[35680]:Bt,[35679]:Bt,[35682]:Bt,[36289]:Bt,[36292]:Bt,[36293]:Bt,[36298]:Bt,[36299]:Bt,[36300]:Bt,[36303]:Bt,[36306]:Bt,[36307]:Bt,[36308]:Bt,[36311]:Bt},IK={},lK={},cK={},HS=[0];function qp(e,A,t,i){A===1&&typeof e=="boolean"&&(e=e?1:0),Number.isFinite(e)&&(HS[0]=e,e=HS);const n=e.length;if(n%A&&DA.warn("Uniform size should be multiples of ".concat(A),e)(),e instanceof t)return e;let r=i[n];r||(r=new t(n),i[n]=r);for(let o=0;o{const n=e!==i;return n&&(A.uniform1i(t,i),e=i),n}}function Me(e,A,t,i){let n=null,r=null;return(o,s,a)=>{const g=A(a,t),I=g.length;let l=!1;if(n===null)n=new Float32Array(I),r=I,l=!0;else{cA(r===I,"Uniform length cannot change.");for(let c=0;c=0&&this._addAttribute(a,r,o,s)}this.attributeInfos.sort((n,r)=>n.location-r.location)}_readVaryingsFromProgram(A){const{gl:t}=A;if(!ie(t))return;const i=t.getProgramParameter(A.handle,35971);for(let n=0;nn.location-r.location)}_addAttribute(A,t,i,n){const{type:r,components:o}=OS(i),s={type:r,size:n*o};this._inferProperties(A,t,s);const a={location:A,name:t,accessor:new ti(s)};this.attributeInfos.push(a),this.attributeInfosByLocation[A]=a,this.attributeInfosByName[a.name]=a}_inferProperties(A,t,i){/instance/i.test(t)&&(i.divisor=1)}_addVarying(A,t,i,n){const{type:r,components:o}=OS(i),s=new ti({type:r,size:n*o}),a={location:A,name:t,accessor:s};this.varyingInfos.push(a),this.varyingInfosByName[a.name]=a}}const YS=4,jK=35981,XK=["setVertexArray","setAttributes","setBuffers","unsetBuffers","use","getUniformCount","getUniformInfo","getUniformLocation","getUniformValue","getVarying","getFragDataLocation","getAttachedShaders","getAttributeCount","getAttributeLocation","getAttributeInfo"];class TL extends Kn{get[Symbol.toStringTag](){return"Program"}constructor(A){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};super(A,t),this.stubRemovedMethods("Program","v6.0",XK),this._isCached=!1,this.initialize(t),Object.seal(this),this._setId(t.id)}initialize(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const{hash:t,vs:i,fs:n,varyings:r,bufferMode:o=jK}=A;return this.hash=t||"",this.vs=typeof i=="string"?new Ph(this.gl,{id:"".concat(A.id,"-vs"),source:i}):i,this.fs=typeof n=="string"?new Hh(this.gl,{id:"".concat(A.id,"-fs"),source:n}):n,cA(this.vs instanceof Ph),cA(this.fs instanceof Hh),this.uniforms={},this._textureUniforms={},r&&r.length>0&&(Ft(this.gl),this.varyings=r,this.gl2.transformFeedbackVaryings(this.handle,r,o)),this._compileAndLink(),this._readUniformLocationsFromLinkedProgram(),this.configuration=new zK(this),this.setProps(A)}delete(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return this._isCached?this:super.delete(A)}setProps(A){return"uniforms"in A&&this.setUniforms(A.uniforms),this}draw(A){let{logPriority:t,drawMode:i=4,vertexCount:n,offset:r=0,start:o,end:s,isIndexed:a=!1,indexType:g=5123,instanceCount:I=0,isInstanced:l=I>0,vertexArray:c=null,transformFeedback:C,framebuffer:B,parameters:u={},uniforms:E,samplers:h}=A;if((E||h)&&(DA.deprecated("Program.draw({uniforms})","Program.setUniforms(uniforms)")(),this.setUniforms(E||{})),DA.priority>=t){const f=B?B.id:"default",Q="mode=".concat(Nr(this.gl,i)," verts=").concat(n," ")+"instances=".concat(I," indexType=").concat(Nr(this.gl,g)," ")+"isInstanced=".concat(l," isIndexed=").concat(a," ")+"Framebuffer=".concat(f);DA.log(t,Q)()}return cA(c),this.gl.useProgram(this.handle),!this._areTexturesRenderable()||n===0||l&&I===0?!1:(c.bindForDraw(n,I,()=>{if(B!==void 0&&(u=Object.assign({},u,{framebuffer:B})),C){const f=WK(i);C.begin(f)}this._bindTextures(),ui(this.gl,u,()=>{a&&l?this.gl2.drawElementsInstanced(i,n,g,r,I):a&&ie(this.gl)&&!isNaN(o)&&!isNaN(s)?this.gl2.drawRangeElements(i,o,s,n,g,r):a?this.gl.drawElements(i,n,g,r):l?this.gl2.drawArraysInstanced(i,r,n,I):this.gl.drawArrays(i,r,n)}),C&&C.end()}),!0)}setUniforms(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};DA.priority>=2&&BK(A,this.id,this._uniformSetters),this.gl.useProgram(this.handle);for(const t in A){const i=A[t],n=this._uniformSetters[t];if(n){let r=i,o=!1;if(r instanceof $e&&(r=r.texture),r instanceof Mo)if(o=this.uniforms[t]!==i,o){n.textureIndex===void 0&&(n.textureIndex=this._textureIndexCounter++);const s=r,{textureIndex:a}=n;s.bind(a),r=a,this._textureUniforms[t]=s}else r=n.textureIndex;else this._textureUniforms[t]&&delete this._textureUniforms[t];(n(r)||o)&&uK(this.uniforms,t,i)}}return this}_areTexturesRenderable(){let A=!0;for(const t in this._textureUniforms){const i=this._textureUniforms[t];i.update(),A=A&&i.loaded}return A}_bindTextures(){for(const A in this._textureUniforms){const t=this._uniformSetters[A].textureIndex;this._textureUniforms[A].bind(t)}}_createHandle(){return this.gl.createProgram()}_deleteHandle(){this.gl.deleteProgram(this.handle)}_getOptionsFromHandle(A){const t=this.gl.getAttachedShaders(A),i={};for(const n of t)switch(this.gl.getShaderParameter(this.handle,35663)){case 35633:i.vs=new Ph({handle:n});break;case 35632:i.fs=new Hh({handle:n});break}return i}_getParameter(A){return this.gl.getProgramParameter(this.handle,A)}_setId(A){if(!A){const t=this._getName();this.id=qr(t)}}_getName(){let A=this.vs.getName()||this.fs.getName();return A=A.replace(/shader/i,""),A=A?"".concat(A,"-program"):"program",A}_compileAndLink(){const{gl:A}=this;if(A.attachShader(this.handle,this.vs.handle),A.attachShader(this.handle,this.fs.handle),DA.time(YS,"linkProgram for ".concat(this._getName()))(),A.linkProgram(this.handle),DA.timeEnd(YS,"linkProgram for ".concat(this._getName()))(),A.debug||DA.level>0){if(!A.getProgramParameter(this.handle,35714))throw new Error("Error linking: ".concat(A.getProgramInfoLog(this.handle)));if(A.validateProgram(this.handle),!A.getProgramParameter(this.handle,35715))throw new Error("Error validating: ".concat(A.getProgramInfoLog(this.handle)))}}_readUniformLocationsFromLinkedProgram(){const{gl:A}=this;this._uniformSetters={},this._uniformCount=this._getParameter(35718);for(let t=0;t1)for(let o=0;o1&&arguments[1]!==void 0?arguments[1]:[];const i=ie(A),n=Hp(A,De.TIMER_QUERY);let r=i||n;for(const o of t)switch(o){case"queries":r=r&&i;break;case"timers":r=r&&n;break;default:cA(!1)}return r}constructor(A){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};super(A,t),this.target=null,this._queryPending=!1,this._pollingPromise=null,Object.seal(this)}beginTimeElapsedQuery(){return this.begin(A5)}beginOcclusionQuery(){let{conservative:A=!1}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return this.begin(A?n5:i5)}beginTransformFeedbackQuery(){return this.begin(t5)}begin(A){return this._queryPending?this:(this.target=A,this.gl2.beginQuery(this.target,this.handle),this)}end(){return this._queryPending?this:(this.target&&(this.gl2.endQuery(this.target),this.target=null,this._queryPending=!0),this)}isResultAvailable(){if(!this._queryPending)return!1;const A=this.gl2.getQueryParameter(this.handle,$K);return A&&(this._queryPending=!1),A}isTimerDisjoint(){return this.gl2.getParameter(e5)}getResult(){return this.gl2.getQueryParameter(this.handle,ZK)}getTimerMilliseconds(){return this.getResult()/1e6}createPoll(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:Number.POSITIVE_INFINITY;if(this._pollingPromise)return this._pollingPromise;let t=0;return this._pollingPromise=new Promise((i,n)=>{const r=()=>{this.isResultAvailable()?(i(this.getResult()),this._pollingPromise=null):t++>A?(n("Timed out"),this._pollingPromise=null):requestAnimationFrame(r)};requestAnimationFrame(r)}),this._pollingPromise}_createHandle(){return bB.isSupported(this.gl)?this.gl2.createQuery():null}_deleteHandle(){this.gl2.deleteQuery(this.handle)}}class UL extends Kn{get[Symbol.toStringTag](){return"TransformFeedback"}static isSupported(A){return ie(A)}constructor(A){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};Ft(A),super(A,t),this.initialize(t),this.stubRemovedMethods("TransformFeedback","v6.0",["pause","resume"]),Object.seal(this)}initialize(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return this.buffers={},this.unused={},this.configuration=null,this.bindOnUse=!0,ha(this.buffers)||this.bind(()=>this._unbindBuffers()),this.setProps(A),this}setProps(A){"program"in A&&(this.configuration=A.program&&A.program.configuration),"configuration"in A&&(this.configuration=A.configuration),"bindOnUse"in A&&(A=A.bindOnUse),"buffers"in A&&this.setBuffers(A.buffers)}setBuffers(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return this.bind(()=>{for(const t in A)this.setBuffer(t,A[t])}),this}setBuffer(A,t){const i=this._getVaryingIndex(A),{buffer:n,byteSize:r,byteOffset:o}=this._getBufferParams(t);return i<0?(this.unused[A]=n,DA.warn("".concat(this.id," unused varying buffer ").concat(A))(),this):(this.buffers[i]=t,this.bindOnUse||this._bindBuffer(i,n,o,r),this)}begin(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;return this.gl.bindTransformFeedback(36386,this.handle),this._bindBuffers(),this.gl.beginTransformFeedback(A),this}end(){return this.gl.endTransformFeedback(),this._unbindBuffers(),this.gl.bindTransformFeedback(36386,null),this}_getBufferParams(A){let t,i,n;return A instanceof we?n=A:(n=A.buffer,i=A.byteSize,t=A.byteOffset),(t!==void 0||i!==void 0)&&(t=t||0,i=i||n.byteLength-t),{buffer:n,byteOffset:t,byteSize:i}}_getVaryingInfo(A){return this.configuration&&this.configuration.getVaryingInfo(A)}_getVaryingIndex(A){if(this.configuration)return this.configuration.getVaryingInfo(A).location;const t=Number(A);return Number.isFinite(t)?t:-1}_bindBuffers(){if(this.bindOnUse)for(const A in this.buffers){const{buffer:t,byteSize:i,byteOffset:n}=this._getBufferParams(this.buffers[A]);this._bindBuffer(A,t,n,i)}}_unbindBuffers(){if(this.bindOnUse)for(const A in this.buffers)this._bindBuffer(A,null)}_bindBuffer(A,t){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,n=arguments.length>3?arguments[3]:void 0;const r=t&&t.handle;return!r||n===void 0?this.gl.bindBufferBase(35982,A,r):this.gl.bindBufferRange(35982,A,r,i,n),this}_createHandle(){return this.gl.createTransformFeedback()}_deleteHandle(){this.gl.deleteTransformFeedback(this.handle)}_bindHandle(A){this.gl.bindTransformFeedback(36386,this.handle)}}let Rc=null;function r5(e){return(!Rc||Rc.byteLength1&&arguments[1]!==void 0?arguments[1]:{}).constantAttributeZero?ie(A)||tL()==="Chrome":!0}static getDefaultArray(A){return A.luma=A.luma||{},A.luma.defaultVertexArray||(A.luma.defaultVertexArray=new ei(A,{handle:null,isDefaultArray:!0})),A.luma.defaultVertexArray}static getMaxAttributes(A){return ei.MAX_ATTRIBUTES=ei.MAX_ATTRIBUTES||A.getParameter(34921),ei.MAX_ATTRIBUTES}static setConstant(A,t,i){switch(i.constructor){case Float32Array:ei._setConstantFloatArray(A,t,i);break;case Int32Array:ei._setConstantIntArray(A,t,i);break;case Uint32Array:ei._setConstantUintArray(A,t,i);break;default:cA(!1)}}constructor(A){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const i=t.id||t.program&&t.program.id;super(A,Object.assign({},t,{id:i})),this.buffer=null,this.bufferValue=null,this.isDefaultArray=t.isDefaultArray||!1,this.gl2=A,this.initialize(t),Object.seal(this)}delete(){return super.delete(),this.buffer&&this.buffer.delete(),this}get MAX_ATTRIBUTES(){return ei.getMaxAttributes(this.gl)}initialize(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return this.setProps(A)}setProps(A){return this}setElementBuffer(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:null;return cA(!A||A.target===34963,a5),this.bind(()=>{this.gl.bindBuffer(34963,A?A.handle:null)}),this}setBuffer(A,t,i){if(t.target===34963)return this.setElementBuffer(t,i);const{size:n,type:r,stride:o,offset:s,normalized:a,integer:g,divisor:I}=i,{gl:l,gl2:c}=this;return A=Number(A),this.bind(()=>{l.bindBuffer(34962,t.handle),g?(cA(ie(l)),c.vertexAttribIPointer(A,n,r,o,s)):l.vertexAttribPointer(A,n,r,a,o,s),l.enableVertexAttribArray(A),c.vertexAttribDivisor(A,I||0)}),this}enable(A){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return!t&&A===0&&!ei.isSupported(this.gl,{constantAttributeZero:!0})||(A=Number(A),this.bind(()=>t?this.gl.enableVertexAttribArray(A):this.gl.disableVertexAttribArray(A))),this}getConstantBuffer(A,t){const i=this._normalizeConstantArrayValue(t),n=i.byteLength*A,r=i.length*A;let o=!this.buffer;if(this.buffer=this.buffer||new we(this.gl,n),o=o||this.buffer.reallocate(n),o=o||!this._compareConstantArrayValues(i,this.bufferValue),o){const s=o5(t.constructor,r);s5({target:s,source:i,start:0,count:r}),this.buffer.subData(s),this.bufferValue=t}return this.buffer}_normalizeConstantArrayValue(A){return Array.isArray(A)?new Float32Array(A):A}_compareConstantArrayValues(A,t){if(!A||!t||A.length!==t.length||A.constructor!==t.constructor)return!1;for(let i=0;i{switch(A){case 34373:return this.gl.getVertexAttribOffset(i,A);default:return this.gl.getVertexAttrib(i,A)}})}}const g5="VertexArray: attributes must be Buffers or constants (i.e. typed array)",I5=/^(.+)__LOCATION_([0-9]+)$/,l5=["setBuffers","setGeneric","clearBindings","setLocations","setGenericValues","setDivisor","enable","disable"];class c5{constructor(A){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const i=t.id||t.program&&t.program.id;this.id=i,this.gl=A,this.configuration=null,this.elements=null,this.elementsAccessor=null,this.values=null,this.accessors=null,this.unused=null,this.drawParams=null,this.buffer=null,this.attributes={},this.vertexArrayObject=new ei(A),wL(this,"VertexArray","v6.0",l5),this.initialize(t),Object.seal(this)}delete(){this.buffer&&this.buffer.delete(),this.vertexArrayObject.delete()}initialize(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return this.reset(),this.configuration=null,this.bindOnUse=!1,this.setProps(A)}reset(){this.elements=null,this.elementsAccessor=null;const{MAX_ATTRIBUTES:A}=this.vertexArrayObject;return this.values=new Array(A).fill(null),this.accessors=new Array(A).fill(null),this.unused={},this.drawParams=null,this}setProps(A){return"program"in A&&(this.configuration=A.program&&A.program.configuration),"configuration"in A&&(this.configuration=A.configuration),"attributes"in A&&this.setAttributes(A.attributes),"elements"in A&&this.setElementBuffer(A.elements),"bindOnUse"in A&&(A=A.bindOnUse),this}clearDrawParams(){this.drawParams=null}getDrawParams(){return this.drawParams=this.drawParams||this._updateDrawParams(),this.drawParams}setAttributes(A){return Object.assign(this.attributes,A),this.vertexArrayObject.bind(()=>{for(const t in A){const i=A[t];this._setAttribute(t,i)}this.gl.bindBuffer(34962,null)}),this}setElementBuffer(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:null,t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return this.elements=A,this.elementsAccessor=t,this.clearDrawParams(),this.vertexArrayObject.setElementBuffer(A,t),this}setBuffer(A,t){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};if(t.target===34963)return this.setElementBuffer(t,i);const{location:n,accessor:r}=this._resolveLocationAndAccessor(A,t,t.accessor,i);return n>=0&&(this.values[n]=t,this.accessors[n]=r,this.clearDrawParams(),this.vertexArrayObject.setBuffer(n,t,r)),this}setConstant(A,t){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};const{location:n,accessor:r}=this._resolveLocationAndAccessor(A,t,Object.assign({size:t.length},i));return n>=0&&(t=this.vertexArrayObject._normalizeConstantArrayValue(t),this.values[n]=t,this.accessors[n]=r,this.clearDrawParams(),this.vertexArrayObject.enable(n,!1)),this}unbindBuffers(){return this.vertexArrayObject.bind(()=>{this.elements&&this.vertexArrayObject.setElementBuffer(null),this.buffer=this.buffer||new we(this.gl,{accessor:{size:4}});for(let A=0;A{this.elements&&this.setElementBuffer(this.elements);for(let A=0;A{this._setConstantAttributes(A,t),n=i()}),n}_resolveLocationAndAccessor(A,t,i,n){const r={location:-1,accessor:null},{location:o,name:s}=this._getAttributeIndex(A);if(!Number.isFinite(o)||o<0)return this.unused[A]=t,DA.once(3,()=>"unused value ".concat(A," in ").concat(this.id))(),r;const a=this._getAttributeInfo(s||o);if(!a)return r;const g=this.accessors[o]||{},I=ti.resolve(a.accessor,g,i,n),{size:l,type:c}=I;return cA(Number.isFinite(l)&&Number.isFinite(c)),{location:o,accessor:I}}_getAttributeInfo(A){return this.configuration&&this.configuration.getAttributeInfo(A)}_getAttributeIndex(A){const t=Number(A);if(Number.isFinite(t))return{location:t};const i=I5.exec(A),n=i?i[1]:A,r=i?Number(i[2]):0;return this.configuration?{location:this.configuration.getAttributeLocation(n)+r,name:n}:{location:-1}}_setAttribute(A,t){if(t instanceof we)this.setBuffer(A,t);else if(Array.isArray(t)&&t.length&&t[0]instanceof we){const i=t[0],n=t[1];this.setBuffer(A,i,n)}else if(ArrayBuffer.isView(t)||Array.isArray(t)){const i=t;this.setConstant(A,i)}else if(t.buffer instanceof we){const i=t;this.setBuffer(A,i.buffer,i)}else throw new Error(g5)}_setConstantAttributes(A,t){const i=Math.max(A|0,t|0);let n=this.values[0];ArrayBuffer.isView(n)&&this._setConstantAttributeZero(n,i);for(let r=1;r0;if(A.isInstanced=A.isInstanced||o,i instanceof we){const s=i;if(o){const a=s.getVertexCount(n);A.instanceCount=Math.min(A.instanceCount,a)}else{const a=s.getVertexCount(n);A.vertexCount=Math.min(A.vertexCount,a)}}}setElements(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:null,t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return DA.deprecated("setElements","setElementBuffer")(),this.setElementBuffer(A,t)}}function C5(e,A){const{maxElts:t=16,size:i=1}=A;let n="[";for(let o=0;o0&&(n+=",".concat(o%i===0?" ":"")),n+=WI(e[o],A);const r=e.length>t?"...":"]";return"".concat(n).concat(r)}function WI(e){let A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const t=1e-16,{isInteger:i=!1}=A;if(Array.isArray(e)||ArrayBuffer.isView(e))return C5(e,A);if(!Number.isFinite(e))return String(e);if(Math.abs(e)100&&Math.abs(e)<1e4)return e.toFixed(0);const n=e.toPrecision(2);return n.indexOf(".0")===n.length-2?n.slice(0,-1):n}function KS(e){let{header:A="Uniforms",program:t,uniforms:i,undefinedOnly:n=!1}=e;cA(t);const r=".*_.*",o=".*Matrix",s=t._uniformSetters,a={},g=Object.keys(s).sort();let I=0;for(const C of g)!C.match(r)&&!C.match(o)&&qh({table:a,header:A,uniforms:i,uniformName:C,undefinedOnly:n})&&I++;for(const C of g)C.match(o)&&qh({table:a,header:A,uniforms:i,uniformName:C,undefinedOnly:n})&&I++;for(const C of g)a[C]||qh({table:a,header:A,uniforms:i,uniformName:C,undefinedOnly:n})&&I++;let l=0;const c={};if(!n)for(const C in i){const B=i[C];a[C]||(l++,c[C]={Type:"NOT USED: ".concat(B),[A]:WI(B)})}return{table:a,count:I,unusedTable:c,unusedCount:l}}function qh(e){let{table:A,header:t,uniforms:i,uniformName:n,undefinedOnly:r}=e;const o=i[n],s=B5(o);return!r||!s?(A[n]={[t]:s?WI(o):"N/A","Uniform Type":s?o:"NOT PROVIDED"},!0):!1}function B5(e){return e!=null}function E5(e){let{vertexArray:A,header:t="Attributes"}=e;if(!A.configuration)return{};const i={};A.elements&&(i.ELEMENT_ARRAY_BUFFER=VS(A,A.elements,null,t));const n=A.values;for(const r in n){const o=A._getAttributeInfo(r);if(o){let s="".concat(r,": ").concat(o.name);const a=A.accessors[o.location];a&&(s="".concat(r,": ").concat(u5(o.name,a))),i[s]=VS(A,n[r],a,t)}}return i}function VS(e,A,t,i){const{gl:n}=e;if(!A)return{[i]:"null","Format ":"N/A"};let r="NOT PROVIDED",o=1,s=0,a=0,g,I,l;if(t&&(r=t.type,o=t.size,r=String(r).replace("Array",""),g=r.indexOf("nt")!==-1),A instanceof we){const c=A,{data:C,changed:B}=c.getDebugData();I=B?"*":"",l=C,a=c.byteLength,s=a/C.BYTES_PER_ELEMENT/o;let u;if(t){const E=t.divisor>0;u="".concat(E?"I ":"P "," ").concat(s," (x").concat(o,"=").concat(a," bytes ").concat(Nr(n,r),")")}else g=!0,u="".concat(a," bytes");return{[i]:"".concat(I).concat(WI(l,{size:o,isInteger:g})),"Format ":u}}return l=A,o=A.length,r=String(A.constructor.name).replace("Array",""),g=r.indexOf("nt")!==-1,{[i]:"".concat(WI(l,{size:o,isInteger:g})," (constant)"),"Format ":"".concat(o,"x").concat(r," (constant)")}}function u5(e,A){const{type:t,size:i}=A,n=kL(t,i);return n?"".concat(e," (").concat(n.name,")"):e}function h5(e){const A={},t="Accessors for ".concat(e.id);for(const i of e.attributeInfos)if(i){const n=WS(i);A["in ".concat(n)]={[t]:JSON.stringify(i.accessor)}}for(const i of e.varyingInfos)if(i){const n=WS(i);A["out ".concat(n)]={[t]:JSON.stringify(i.accessor)}}return A}function WS(e){const{type:A,size:t}=e.accessor,i=kL(A,t);return i?"".concat(i.name," ").concat(e.name):e.name}const zS=Yn()&&typeof document!="undefined";let f5=0;class Q5{constructor(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const{onCreateContext:t=E=>yL(E),onAddHTML:i=null,onInitialize:n=()=>{},onRender:r=()=>{},onFinalize:o=()=>{},onError:s,gl:a=null,glOptions:g={},debug:I=!1,createFramebuffer:l=!1,autoResizeViewport:c=!0,autoResizeDrawingBuffer:C=!0,stats:B=po.get("animation-loop-".concat(f5++))}=A;let{useDevicePixels:u=!0}=A;"useDevicePixelRatio"in A&&(DA.deprecated("useDevicePixelRatio","useDevicePixels")(),u=A.useDevicePixelRatio),this.props={onCreateContext:t,onAddHTML:i,onInitialize:n,onRender:r,onFinalize:o,onError:s,gl:a,glOptions:g,debug:I,createFramebuffer:l},this.gl=a,this.needsRedraw=null,this.timeline=null,this.stats=B,this.cpuTime=this.stats.get("CPU Time"),this.gpuTime=this.stats.get("GPU Time"),this.frameRate=this.stats.get("Frame Rate"),this._initialized=!1,this._running=!1,this._animationFrameId=null,this._nextFramePromise=null,this._resolveNextFrame=null,this._cpuStartTime=0,this.setProps({autoResizeViewport:c,autoResizeDrawingBuffer:C,useDevicePixels:u}),this.start=this.start.bind(this),this.stop=this.stop.bind(this),this._pageLoadPromise=null,this._onMousemove=this._onMousemove.bind(this),this._onMouseleave=this._onMouseleave.bind(this)}delete(){this.stop(),this._setDisplay(null)}setNeedsRedraw(A){return cA(typeof A=="string"),this.needsRedraw=this.needsRedraw||A,this}setProps(A){return"autoResizeViewport"in A&&(this.autoResizeViewport=A.autoResizeViewport),"autoResizeDrawingBuffer"in A&&(this.autoResizeDrawingBuffer=A.autoResizeDrawingBuffer),"useDevicePixels"in A&&(this.useDevicePixels=A.useDevicePixels),this}start(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(this._running)return this;this._running=!0;const t=this._getPageLoadPromise().then(()=>!this._running||this._initialized?null:(this._createWebGLContext(A),this._createFramebuffer(),this._startEventHandling(),this._initializeCallbackData(),this._updateCallbackData(),this._resizeCanvasDrawingBuffer(),this._resizeViewport(),this._gpuTimeQuery=bB.isSupported(this.gl,["timers"])?new bB(this.gl):null,this._initialized=!0,this.onInitialize(this.animationProps))).then(i=>{this._running&&(this._addCallbackData(i||{}),i!==!1&&this._startLoop())});return this.props.onError&&t.catch(this.props.onError),this}redraw(){return this.isContextLost()?this:(this._beginTimers(),this._setupFrame(),this._updateCallbackData(),this._renderFrame(this.animationProps),this._clearNeedsRedraw(),this.offScreen&&this.gl.commit&&this.gl.commit(),this._resolveNextFrame&&(this._resolveNextFrame(this),this._nextFramePromise=null,this._resolveNextFrame=null),this._endTimers(),this)}stop(){return this._running&&(this._finalizeCallbackData(),this._cancelAnimationFrame(this._animationFrameId),this._nextFramePromise=null,this._resolveNextFrame=null,this._animationFrameId=null,this._running=!1),this}attachTimeline(A){return this.timeline=A,this.timeline}detachTimeline(){this.timeline=null}waitForRender(){return this.setNeedsRedraw("waitForRender"),this._nextFramePromise||(this._nextFramePromise=new Promise(A=>{this._resolveNextFrame=A})),this._nextFramePromise}async toDataURL(){return this.setNeedsRedraw("toDataURL"),await this.waitForRender(),this.gl.canvas.toDataURL()}isContextLost(){return this.gl.isContextLost()}onCreateContext(){return this.props.onCreateContext(...arguments)}onInitialize(){return this.props.onInitialize(...arguments)}onRender(){return this.props.onRender(...arguments)}onFinalize(){return this.props.onFinalize(...arguments)}getHTMLControlValue(A){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1;const i=document.getElementById(A);return i?Number(i.value):t}setViewParameters(){return DA.removed("AnimationLoop.setViewParameters","AnimationLoop.setProps")(),this}_startLoop(){const A=()=>{!this._running||(this.redraw(),this._animationFrameId=this._requestAnimationFrame(A))};this._cancelAnimationFrame(this._animationFrameId),this._animationFrameId=this._requestAnimationFrame(A)}_getPageLoadPromise(){return this._pageLoadPromise||(this._pageLoadPromise=zS?new Promise((A,t)=>{if(zS&&document.readyState==="complete"){A(document);return}window.addEventListener("load",()=>{A(document)})}):Promise.resolve({})),this._pageLoadPromise}_setDisplay(A){this.display&&(this.display.delete(),this.display.animationLoop=null),A&&(A.animationLoop=this),this.display=A}_cancelAnimationFrame(A){return this.display&&this.display.cancelAnimationFrame?this.display.cancelAnimationFrame(A):RY(A)}_requestAnimationFrame(A){if(this._running)return this.display&&this.display.requestAnimationFrame?this.display.requestAnimationFrame(A):DY(A)}_renderFrame(){if(this.display){this.display._renderFrame(...arguments);return}this.onRender(...arguments)}_clearNeedsRedraw(){this.needsRedraw=null}_setupFrame(){this._resizeCanvasDrawingBuffer(),this._resizeViewport(),this._resizeFramebuffer()}_initializeCallbackData(){this.animationProps={gl:this.gl,stop:this.stop,canvas:this.gl.canvas,framebuffer:this.framebuffer,useDevicePixels:this.useDevicePixels,needsRedraw:null,startTime:Date.now(),engineTime:0,tick:0,tock:0,time:0,_timeline:this.timeline,_loop:this,_animationLoop:this,_mousePosition:null}}_updateCallbackData(){const{width:A,height:t,aspect:i}=this._getSizeAndAspect();(A!==this.animationProps.width||t!==this.animationProps.height)&&this.setNeedsRedraw("drawing buffer resized"),i!==this.animationProps.aspect&&this.setNeedsRedraw("drawing buffer aspect changed"),this.animationProps.width=A,this.animationProps.height=t,this.animationProps.aspect=i,this.animationProps.needsRedraw=this.needsRedraw,this.animationProps.engineTime=Date.now()-this.animationProps.startTime,this.timeline&&this.timeline.update(this.animationProps.engineTime),this.animationProps.tick=Math.floor(this.animationProps.time/1e3*60),this.animationProps.tock++,this.animationProps.time=this.timeline?this.timeline.getTime():this.animationProps.engineTime,this.animationProps._offScreen=this.offScreen}_finalizeCallbackData(){this.onFinalize(this.animationProps)}_addCallbackData(A){typeof A=="object"&&A!==null&&(this.animationProps=Object.assign({},this.animationProps,A))}_createWebGLContext(A){if(this.offScreen=A.canvas&&typeof OffscreenCanvas!="undefined"&&A.canvas instanceof OffscreenCanvas,A=Object.assign({},A,this.props.glOptions),this.gl=this.props.gl?Tp(this.props.gl,A):this.onCreateContext(A),!YE(this.gl))throw new Error("AnimationLoop.onCreateContext - illegal context returned");EY(this.gl),this._createInfoDiv()}_createInfoDiv(){if(this.gl.canvas&&this.props.onAddHTML){const A=document.createElement("div");document.body.appendChild(A),A.style.position="relative";const t=document.createElement("div");t.style.position="absolute",t.style.left="10px",t.style.bottom="10px",t.style.width="300px",t.style.background="white",A.appendChild(this.gl.canvas),A.appendChild(t);const i=this.props.onAddHTML(t);i&&(t.innerHTML=i)}}_getSizeAndAspect(){const A=this.gl.drawingBufferWidth,t=this.gl.drawingBufferHeight;let i=1;const{canvas:n}=this.gl;return n&&n.clientHeight?i=n.clientWidth/n.clientHeight:A>0&&t>0&&(i=A/t),{width:A,height:t,aspect:i}}_resizeViewport(){this.autoResizeViewport&&this.gl.viewport(0,0,this.gl.drawingBufferWidth,this.gl.drawingBufferHeight)}_resizeCanvasDrawingBuffer(){this.autoResizeDrawingBuffer&&dY(this.gl,{useDevicePixels:this.useDevicePixels})}_createFramebuffer(){this.props.createFramebuffer&&(this.framebuffer=new $e(this.gl))}_resizeFramebuffer(){this.framebuffer&&this.framebuffer.resize({width:this.gl.drawingBufferWidth,height:this.gl.drawingBufferHeight})}_beginTimers(){this.frameRate.timeEnd(),this.frameRate.timeStart(),this._gpuTimeQuery&&this._gpuTimeQuery.isResultAvailable()&&!this._gpuTimeQuery.isTimerDisjoint()&&this.stats.get("GPU Time").addTime(this._gpuTimeQuery.getTimerMilliseconds()),this._gpuTimeQuery&&this._gpuTimeQuery.beginTimeElapsedQuery(),this.cpuTime.timeStart()}_endTimers(){this.cpuTime.timeEnd(),this._gpuTimeQuery&&this._gpuTimeQuery.end()}_startEventHandling(){const{canvas:A}=this.gl;A&&(A.addEventListener("mousemove",this._onMousemove),A.addEventListener("mouseleave",this._onMouseleave))}_onMousemove(A){this.animationProps._mousePosition=[A.offsetX,A.offsetY]}_onMouseleave(A){this.animationProps._mousePosition=null}}const kl="vs",Jp="fs";function ri(e,A){if(!e)throw new Error(A||"shadertools: assertion failed.")}const Jh={number:{validate(e,A){return Number.isFinite(e)&&(!("max"in A)||e<=A.max)&&(!("min"in A)||e>=A.min)}},array:{validate(e,A){return Array.isArray(e)||ArrayBuffer.isView(e)}}};function d5(e){const A={};for(const t in e){const i=e[t],n=p5(i);A[t]=n}return A}function p5(e){let A=jS(e);return A==="object"?e?"type"in e?Object.assign({},e,Jh[e.type]):"value"in e?(A=jS(e.value),Object.assign({type:A},e,Jh[A])):{type:"object",value:e}:{type:"object",value:null}:Object.assign({type:A,value:e},Jh[A])}function jS(e){return Array.isArray(e)||ArrayBuffer.isView(e)?"array":typeof e}const y5="vs",m5="fs";class XS{constructor(A){let{name:t,vs:i,fs:n,dependencies:r=[],uniforms:o,getUniforms:s,deprecations:a=[],defines:g={},inject:I={},vertexShader:l,fragmentShader:c}=A;ri(typeof t=="string"),this.name=t,this.vs=i||l,this.fs=n||c,this.getModuleUniforms=s,this.dependencies=r,this.deprecations=this._parseDeprecationDefinitions(a),this.defines=g,this.injections=w5(I),o&&(this.uniforms=d5(o))}getModuleSource(A){let t;switch(A){case y5:t=this.vs||"";break;case m5:t=this.fs||"";break;default:ri(!1)}return"#define MODULE_".concat(this.name.toUpperCase().replace(/[^0-9a-z]/gi,"_"),` `).concat(t,"// END MODULE_").concat(this.name,` -`)}getUniforms(A,t){return this.getModuleUniforms?this.getModuleUniforms(A,t):this.uniforms?this._defaultGetUniforms(A):{}}getDefines(){return this.defines}checkDeprecations(A,t){this.deprecations.forEach(i=>{i.regex.test(A)&&(i.deprecated?t.deprecated(i.old,i.new)():t.removed(i.old,i.new)())})}_parseDeprecationDefinitions(A){return A.forEach(t=>{switch(t.type){case"function":t.regex=new RegExp("\\b".concat(t.old,"\\("));break;default:t.regex=new RegExp("".concat(t.type," ").concat(t.old,";"))}}),A}_defaultGetUniforms(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const t={},i=this.uniforms;for(const n in i){const r=i[n];n in A&&!r.private?(r.validate&&ri(r.validate(A[n],r),"".concat(this.name,": invalid ").concat(n)),t[n]=A[n]):t[n]=r.value}return t}}function p5(e){const A={vs:{},fs:{}};for(const t in e){let i=e[t];const n=t.slice(0,2);typeof i=="string"&&(i={order:0,injection:i}),A[n][t]=i}return A}function y5(e){return m5(TL(e))}function m5(e){const A={},t={};return kL({modules:e,level:0,moduleMap:A,moduleDepth:t}),Object.keys(t).sort((i,n)=>t[n]-t[i]).map(i=>A[i])}function kL(e){let{modules:A,level:t,moduleMap:i,moduleDepth:n}=e;if(t>=5)throw new Error("Possible loop in shader dependency graph");for(const r of A)i[r.name]=r,(n[r.name]===void 0||n[r.name](t instanceof jS||(ri(typeof t!="string","Shader module use by name is deprecated. Import shader module '".concat(t,"' and use it directly.")),ri(t.name,"shader module has no name"),t=new jS(t),t.dependencies=TL(t.dependencies)),t))}function w5(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const A=typeof window!="undefined"?window.navigator||{}:{},t=e.userAgent||A.userAgent||"",i=t.indexOf("MSIE ")!==-1,n=t.indexOf("Trident/")!==-1;return i||n}const v5=7936,S5=7937,D5=7938,R5=35724,Jp={GLSL_FRAG_DATA:["WEBGL_draw_buffers",!0],GLSL_FRAG_DEPTH:["EXT_frag_depth",!0],GLSL_DERIVATIVES:["OES_standard_derivatives",!0],GLSL_TEXTURE_LOD:["EXT_shader_texture_lod",!0]},lo={};Object.keys(Jp).forEach(e=>{lo[e]=e});function x5(e){return typeof WebGL2RenderingContext!="undefined"&&e instanceof WebGL2RenderingContext?!0:Boolean(e&&e._version===2)}function F5(e){const A=e.getExtension("WEBGL_debug_renderer_info"),t=e.getParameter(A&&A.UNMASKED_VENDOR_WEBGL||v5),i=e.getParameter(A&&A.UNMASKED_RENDERER_WEBGL||S5);return{gpuVendor:N5(t,i),vendor:t,renderer:i,version:e.getParameter(D5),shadingLanguageVersion:e.getParameter(R5)}}function N5(e,A){return e.match(/NVIDIA/i)||A.match(/NVIDIA/i)?"NVIDIA":e.match(/INTEL/i)||A.match(/INTEL/i)?"INTEL":e.match(/AMD/i)||A.match(/AMD/i)||e.match(/ATI/i)||A.match(/ATI/i)?"AMD":"UNKNOWN GPU"}const Oh={};function XS(e,A){let t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};const i=Jp[A];if(ri(i,A),!w5(t))return!0;if(A in Oh)return Oh[A];const n=i[0],r=t.behavior||"enable",o="#extension GL_".concat(n," : ").concat(r,` -void main(void) {}`),s=e.createShader(35633);e.shaderSource(s,o),e.compileShader(s);const a=e.getShaderParameter(s,35713);return e.deleteShader(s),Oh[A]=a,a}function L5(e,A){const t=Jp[A];ri(t,A);const i=x5(e)&&t[1]||t[0],n=typeof i=="string"?Boolean(e.getExtension(i)):i;return ri(n===!1||n===!0),n}function xc(e,A){return A=Array.isArray(A)?A:[A],A.every(t=>L5(e,t))}function b5(e){switch(F5(e).gpuVendor.toLowerCase()){case"nvidia":return`#define NVIDIA_GPU +`)}getUniforms(A,t){return this.getModuleUniforms?this.getModuleUniforms(A,t):this.uniforms?this._defaultGetUniforms(A):{}}getDefines(){return this.defines}checkDeprecations(A,t){this.deprecations.forEach(i=>{i.regex.test(A)&&(i.deprecated?t.deprecated(i.old,i.new)():t.removed(i.old,i.new)())})}_parseDeprecationDefinitions(A){return A.forEach(t=>{switch(t.type){case"function":t.regex=new RegExp("\\b".concat(t.old,"\\("));break;default:t.regex=new RegExp("".concat(t.type," ").concat(t.old,";"))}}),A}_defaultGetUniforms(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const t={},i=this.uniforms;for(const n in i){const r=i[n];n in A&&!r.private?(r.validate&&ri(r.validate(A[n],r),"".concat(this.name,": invalid ").concat(n)),t[n]=A[n]):t[n]=r.value}return t}}function w5(e){const A={vs:{},fs:{}};for(const t in e){let i=e[t];const n=t.slice(0,2);typeof i=="string"&&(i={order:0,injection:i}),A[n][t]=i}return A}function v5(e){return S5(HL(e))}function S5(e){const A={},t={};return PL({modules:e,level:0,moduleMap:A,moduleDepth:t}),Object.keys(t).sort((i,n)=>t[n]-t[i]).map(i=>A[i])}function PL(e){let{modules:A,level:t,moduleMap:i,moduleDepth:n}=e;if(t>=5)throw new Error("Possible loop in shader dependency graph");for(const r of A)i[r.name]=r,(n[r.name]===void 0||n[r.name](t instanceof XS||(ri(typeof t!="string","Shader module use by name is deprecated. Import shader module '".concat(t,"' and use it directly.")),ri(t.name,"shader module has no name"),t=new XS(t),t.dependencies=HL(t.dependencies)),t))}function D5(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const A=typeof window!="undefined"?window.navigator||{}:{},t=e.userAgent||A.userAgent||"",i=t.indexOf("MSIE ")!==-1,n=t.indexOf("Trident/")!==-1;return i||n}const R5=7936,x5=7937,F5=7938,N5=35724,Op={GLSL_FRAG_DATA:["WEBGL_draw_buffers",!0],GLSL_FRAG_DEPTH:["EXT_frag_depth",!0],GLSL_DERIVATIVES:["OES_standard_derivatives",!0],GLSL_TEXTURE_LOD:["EXT_shader_texture_lod",!0]},Io={};Object.keys(Op).forEach(e=>{Io[e]=e});function L5(e){return typeof WebGL2RenderingContext!="undefined"&&e instanceof WebGL2RenderingContext?!0:Boolean(e&&e._version===2)}function b5(e){const A=e.getExtension("WEBGL_debug_renderer_info"),t=e.getParameter(A&&A.UNMASKED_VENDOR_WEBGL||R5),i=e.getParameter(A&&A.UNMASKED_RENDERER_WEBGL||x5);return{gpuVendor:G5(t,i),vendor:t,renderer:i,version:e.getParameter(F5),shadingLanguageVersion:e.getParameter(N5)}}function G5(e,A){return e.match(/NVIDIA/i)||A.match(/NVIDIA/i)?"NVIDIA":e.match(/INTEL/i)||A.match(/INTEL/i)?"INTEL":e.match(/AMD/i)||A.match(/AMD/i)||e.match(/ATI/i)||A.match(/ATI/i)?"AMD":"UNKNOWN GPU"}const Oh={};function ZS(e,A){let t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};const i=Op[A];if(ri(i,A),!D5(t))return!0;if(A in Oh)return Oh[A];const n=i[0],r=t.behavior||"enable",o="#extension GL_".concat(n," : ").concat(r,` +void main(void) {}`),s=e.createShader(35633);e.shaderSource(s,o),e.compileShader(s);const a=e.getShaderParameter(s,35713);return e.deleteShader(s),Oh[A]=a,a}function _5(e,A){const t=Op[A];ri(t,A);const i=L5(e)&&t[1]||t[0],n=typeof i=="string"?Boolean(e.getExtension(i)):i;return ri(n===!1||n===!0),n}function xc(e,A){return A=Array.isArray(A)?A:[A],A.every(t=>_5(e,t))}function M5(e){switch(b5(e).gpuVendor.toLowerCase()){case"nvidia":return`#define NVIDIA_GPU // Nvidia optimizes away the calculation necessary for emulated fp64 #define LUMA_FP64_CODE_ELIMINATION_WORKAROUND 1 `;case"intel":return`#define INTEL_GPU @@ -101,7 +101,7 @@ void main(void) {}`),s=e.createShader(35633);e.shaderSource(s,o),e.compileShader #define LUMA_FP32_TAN_PRECISION_WORKAROUND 1 // Intel GPU doesn't have full 32 bits precision in same cases, causes overflow #define LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND 1 -`}}function G5(e,A,t){let i=`#if (__VERSION__ > 120) +`}}function k5(e,A,t){let i=`#if (__VERSION__ > 120) # define FEATURE_GLSL_DERIVATIVES # define FEATURE_GLSL_DRAW_BUFFERS @@ -115,7 +115,7 @@ void main(void) {}`),s=e.createShader(35633);e.shaderSource(s,o),e.compileShader # define TEXTURE_LOD #endif // __VERSION -`;return xc(e,lo.GLSL_FRAG_DEPTH)&&(i+=` +`;return xc(e,Io.GLSL_FRAG_DEPTH)&&(i+=` // FRAG_DEPTH => gl_FragDepth is available #ifdef GL_EXT_frag_depth #extension GL_EXT_frag_depth : enable @@ -123,21 +123,21 @@ void main(void) {}`),s=e.createShader(35633);e.shaderSource(s,o),e.compileShader # define FRAG_DEPTH # define gl_FragDepth gl_FragDepthEXT #endif -`),xc(e,lo.GLSL_DERIVATIVES)&&XS(e,lo.GLSL_DERIVATIVES)&&(i+=` +`),xc(e,Io.GLSL_DERIVATIVES)&&ZS(e,Io.GLSL_DERIVATIVES)&&(i+=` // DERIVATIVES => dxdF, dxdY and fwidth are available #ifdef GL_OES_standard_derivatives #extension GL_OES_standard_derivatives : enable # define FEATURE_GLSL_DERIVATIVES # define DERIVATIVES #endif -`),xc(e,lo.GLSL_FRAG_DATA)&&XS(e,lo.GLSL_FRAG_DATA,{behavior:"require"})&&(i+=` +`),xc(e,Io.GLSL_FRAG_DATA)&&ZS(e,Io.GLSL_FRAG_DATA,{behavior:"require"})&&(i+=` // DRAW_BUFFERS => gl_FragData[] is available #ifdef GL_EXT_draw_buffers #extension GL_EXT_draw_buffers : require #define FEATURE_GLSL_DRAW_BUFFERS #define DRAW_BUFFERS #endif -`),xc(e,lo.GLSL_TEXTURE_LOD)&&(i+=`// TEXTURE_LOD => texture2DLod etc are available +`),xc(e,Io.GLSL_TEXTURE_LOD)&&(i+=`// TEXTURE_LOD => texture2DLod etc are available #ifdef GL_EXT_shader_texture_lod #extension GL_EXT_shader_texture_lod : enable @@ -145,10 +145,10 @@ void main(void) {}`),s=e.createShader(35633);e.shaderSource(s,o),e.compileShader # define TEXTURE_LOD #endif -`),i}const _5=`#ifdef MODULE_LOGDEPTH +`),i}const T5=`#ifdef MODULE_LOGDEPTH logdepth_adjustPosition(gl_Position); #endif -`,M5=`#ifdef MODULE_MATERIAL +`,U5=`#ifdef MODULE_MATERIAL gl_FragColor = material_filterColor(gl_FragColor); #endif @@ -168,45 +168,45 @@ void main(void) {}`),s=e.createShader(35633);e.shaderSource(s,o),e.compileShader #ifdef MODULE_LOGDEPTH logdepth_setFragDepth(); #endif -`,k5={[kl]:_5,[qp]:M5},GC="__LUMA_INJECT_DECLARATIONS__",ZS=/void\s+main\s*\([^)]*\)\s*\{\n?/,$S=/}\n?[^{}]*$/,Yh=[];function AD(e,A,t){let i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;const n=A===kl;for(const r in t){const o=t[r];o.sort((a,g)=>a.order-g.order),Yh.length=o.length;for(let a=0,g=o.length;a3&&arguments[3]!==void 0?arguments[3]:!1;const n=A===kl;for(const r in t){const o=t[r];o.sort((a,g)=>a.order-g.order),Yh.length=o.length;for(let a=0,g=o.length;aa+s));break;case"vs:#main-end":n&&(e=e.replace($S,a=>s+a));break;case"fs:#decl":n||(e=e.replace(GC,s));break;case"fs:#main-start":n||(e=e.replace(ZS,a=>a+s));break;case"fs:#main-end":n||(e=e.replace($S,a=>s+a));break;default:e=e.replace(r,a=>a+s)}}return e=e.replace(GC,""),i&&(e=e.replace(/\}\s*$/,r=>r+k5[A])),e}function od(e){const A={};return ri(Array.isArray(e)&&e.length>1),e.forEach(t=>{for(const i in t)A[i]=A[i]?"".concat(A[i],` -`).concat(t[i]):t[i]}),A}function Qa(e){return new RegExp("\\b".concat(e,"[ \\t]+(\\w+[ \\t]+\\w+(\\[\\w+\\])?;)"),"g")}const UL=[[/^(#version[ \t]+(100|300[ \t]+es))?[ \t]*\n/,`#version 300 es -`],[/\btexture(2D|2DProj|Cube)Lod(EXT)?\(/g,"textureLod("],[/\btexture(2D|2DProj|Cube)(EXT)?\(/g,"texture("]],T5=[...UL,[Qa("attribute"),"in $1"],[Qa("varying"),"out $1"]],U5=[...UL,[Qa("varying"),"in $1"]],PL=[[/^#version[ \t]+300[ \t]+es/,"#version 100"],[/\btexture(2D|2DProj|Cube)Lod\(/g,"texture$1LodEXT("],[/\btexture\(/g,"texture2D("],[/\btextureLod\(/g,"texture2DLodEXT("]],P5=[...PL,[Qa("in"),"attribute $1"],[Qa("out"),"varying $1"]],H5=[...PL,[Qa("in"),"varying $1"]],sd="gl_FragColor",ad=/\bout[ \t]+vec4[ \t]+(\w+)[ \t]*;\n?/,q5=/void\s+main\s*\([^)]*\)\s*\{\n?/;function J5(e,A,t){switch(A){case 300:return t?GB(e,T5):O5(e);case 100:return t?GB(e,P5):Y5(e);default:throw new Error("unknown GLSL version ".concat(A))}}function GB(e,A){for(const[t,i]of A)e=e.replace(t,i);return e}function O5(e){e=GB(e,U5);const A=e.match(ad);if(A){const t=A[1];e=e.replace(new RegExp("\\b".concat(sd,"\\b"),"g"),t)}else{const t="fragmentColor";e=e.replace(q5,i=>"out vec4 ".concat(t,`; -`).concat(i)).replace(new RegExp("\\b".concat(sd,"\\b"),"g"),t)}return e}function Y5(e){e=GB(e,H5);const A=e.match(ad);if(A){const t=A[1];e=e.replace(ad,"").replace(new RegExp("\\b".concat(t,"\\b"),"g"),sd)}return e}const K5=` +`);switch(r){case"vs:#decl":n&&(e=e.replace(GC,s));break;case"vs:#main-start":n&&(e=e.replace($S,a=>a+s));break;case"vs:#main-end":n&&(e=e.replace(AD,a=>s+a));break;case"fs:#decl":n||(e=e.replace(GC,s));break;case"fs:#main-start":n||(e=e.replace($S,a=>a+s));break;case"fs:#main-end":n||(e=e.replace(AD,a=>s+a));break;default:e=e.replace(r,a=>a+s)}}return e=e.replace(GC,""),i&&(e=e.replace(/\}\s*$/,r=>r+P5[A])),e}function sd(e){const A={};return ri(Array.isArray(e)&&e.length>1),e.forEach(t=>{for(const i in t)A[i]=A[i]?"".concat(A[i],` +`).concat(t[i]):t[i]}),A}function fa(e){return new RegExp("\\b".concat(e,"[ \\t]+(\\w+[ \\t]+\\w+(\\[\\w+\\])?;)"),"g")}const qL=[[/^(#version[ \t]+(100|300[ \t]+es))?[ \t]*\n/,`#version 300 es +`],[/\btexture(2D|2DProj|Cube)Lod(EXT)?\(/g,"textureLod("],[/\btexture(2D|2DProj|Cube)(EXT)?\(/g,"texture("]],H5=[...qL,[fa("attribute"),"in $1"],[fa("varying"),"out $1"]],q5=[...qL,[fa("varying"),"in $1"]],JL=[[/^#version[ \t]+300[ \t]+es/,"#version 100"],[/\btexture(2D|2DProj|Cube)Lod\(/g,"texture$1LodEXT("],[/\btexture\(/g,"texture2D("],[/\btextureLod\(/g,"texture2DLodEXT("]],J5=[...JL,[fa("in"),"attribute $1"],[fa("out"),"varying $1"]],O5=[...JL,[fa("in"),"varying $1"]],ad="gl_FragColor",gd=/\bout[ \t]+vec4[ \t]+(\w+)[ \t]*;\n?/,Y5=/void\s+main\s*\([^)]*\)\s*\{\n?/;function K5(e,A,t){switch(A){case 300:return t?GB(e,H5):V5(e);case 100:return t?GB(e,J5):W5(e);default:throw new Error("unknown GLSL version ".concat(A))}}function GB(e,A){for(const[t,i]of A)e=e.replace(t,i);return e}function V5(e){e=GB(e,q5);const A=e.match(gd);if(A){const t=A[1];e=e.replace(new RegExp("\\b".concat(ad,"\\b"),"g"),t)}else{const t="fragmentColor";e=e.replace(Y5,i=>"out vec4 ".concat(t,`; +`).concat(i)).replace(new RegExp("\\b".concat(ad,"\\b"),"g"),t)}return e}function W5(e){e=GB(e,O5);const A=e.match(gd);if(A){const t=A[1];e=e.replace(gd,"").replace(new RegExp("\\b".concat(t,"\\b"),"g"),ad)}return e}const z5=` `.concat(GC,` -`),HL={[kl]:"vertex",[qp]:"fragment"},V5=`precision highp float; +`),OL={[kl]:"vertex",[Jp]:"fragment"},j5=`precision highp float; -`;function W5(e,A){const{vs:t,fs:i}=A,n=y5(A.modules||[]);return{gl:e,vs:eD(e,Object.assign({},A,{source:t,type:kl,modules:n})),fs:eD(e,Object.assign({},A,{source:i,type:qp,modules:n})),getUniforms:z5(n)}}function eD(e,A){let{id:t,source:i,type:n,modules:r,defines:o={},hookFunctions:s=[],inject:a={},transpileToGLSL100:g=!1,prologue:I=!0,log:l}=A;ri(typeof i=="string","shader source must be a string");const c=n===kl,C=i.split(` +`;function X5(e,A){const{vs:t,fs:i}=A,n=v5(A.modules||[]);return{gl:e,vs:tD(e,Object.assign({},A,{source:t,type:kl,modules:n})),fs:tD(e,Object.assign({},A,{source:i,type:Jp,modules:n})),getUniforms:Z5(n)}}function tD(e,A){let{id:t,source:i,type:n,modules:r,defines:o={},hookFunctions:s=[],inject:a={},transpileToGLSL100:g=!1,prologue:I=!0,log:l}=A;ri(typeof i=="string","shader source must be a string");const c=n===kl,C=i.split(` `);let B=100,u="",E=i;C[0].indexOf("#version ")===0?(B=300,u=C[0],E=C.slice(1).join(` `)):u="#version ".concat(B);const h={};r.forEach(v=>{Object.assign(h,v.getDefines())}),Object.assign(h,o);let f=I?"".concat(u,` -`).concat(X5({id:t,source:i,type:n}),` -`).concat(j5({type:n}),` -`).concat(b5(e),` -`).concat(G5(e),` -`).concat(Z5(h),` -`).concat(c?"":V5,` +`).concat(A6({id:t,source:i,type:n}),` +`).concat($5({type:n}),` +`).concat(M5(e),` +`).concat(k5(e),` +`).concat(e6(h),` +`).concat(c?"":j5,` `):"".concat(u,` -`);const Q=A6(s),d={},w={},m={};for(const v in a){const x=typeof a[v]=="string"?{injection:a[v],order:0}:a[v],D=v.match(/^(v|f)s:(#)?([\w-]+)$/);if(D){const F=D[2],N=D[3];F?N==="decl"?w[v]=[x]:m[v]=[x]:d[v]=[x]}else m[v]=[x]}for(const v of r){l&&v.checkDeprecations(E,l),f+=v.getModuleSource(n,B);const D=v.injections[n];for(const F in D){const N=F.match(/^(v|f)s:#([\w-]+)$/);if(N){const U=N[2]==="decl"?w:m;U[F]=U[F]||[],U[F].push(D[F])}else d[F]=d[F]||[],d[F].push(D[F])}}return f+=K5,f=AD(f,n,w),f+=$5(Q[n],d),f+=E,f=AD(f,n,m),f=J5(f,g?100:B,c),f}function z5(e){return function(t){const i={};for(const n of e){const r=n.getUniforms(t,i);Object.assign(i,r)}return i}}function j5(e){let{type:A}=e;return` -#define SHADER_TYPE_`.concat(HL[A].toUpperCase(),` -`)}function X5(e){let{id:A,source:t,type:i}=e;return A&&typeof A=="string"&&t.indexOf("SHADER_NAME")===-1?` -#define SHADER_NAME `.concat(A,"_").concat(HL[i],` +`);const Q=i6(s),d={},w={},m={};for(const v in a){const x=typeof a[v]=="string"?{injection:a[v],order:0}:a[v],D=v.match(/^(v|f)s:(#)?([\w-]+)$/);if(D){const F=D[2],N=D[3];F?N==="decl"?w[v]=[x]:m[v]=[x]:d[v]=[x]}else m[v]=[x]}for(const v of r){l&&v.checkDeprecations(E,l),f+=v.getModuleSource(n,B);const D=v.injections[n];for(const F in D){const N=F.match(/^(v|f)s:#([\w-]+)$/);if(N){const U=N[2]==="decl"?w:m;U[F]=U[F]||[],U[F].push(D[F])}else d[F]=d[F]||[],d[F].push(D[F])}}return f+=z5,f=eD(f,n,w),f+=t6(Q[n],d),f+=E,f=eD(f,n,m),f=K5(f,g?100:B,c),f}function Z5(e){return function(t){const i={};for(const n of e){const r=n.getUniforms(t,i);Object.assign(i,r)}return i}}function $5(e){let{type:A}=e;return` +#define SHADER_TYPE_`.concat(OL[A].toUpperCase(),` +`)}function A6(e){let{id:A,source:t,type:i}=e;return A&&typeof A=="string"&&t.indexOf("SHADER_NAME")===-1?` +#define SHADER_NAME `.concat(A,"_").concat(OL[i],` -`):""}function Z5(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},A=0,t="";for(const i in e){A===0&&(t+=` +`):""}function e6(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},A=0,t="";for(const i in e){A===0&&(t+=` // APPLICATION DEFINES `),A++;const n=e[i];(n||Number.isFinite(n))&&(t+="#define ".concat(i.toUpperCase()," ").concat(e[i],` `))}return A===0&&(t+=` -`),t}function $5(e,A){let t="";for(const i in e){const n=e[i];if(t+="void ".concat(n.signature,` { +`),t}function t6(e,A){let t="";for(const i in e){const n=e[i];if(t+="void ".concat(n.signature,` { `),n.header&&(t+=" ".concat(n.header)),A[i]){const r=A[i];r.sort((o,s)=>o.order-s.order);for(const o of r)t+=" ".concat(o.injection,` `)}n.footer&&(t+=" ".concat(n.footer)),t+=`} -`}return t}function A6(e){const A={vs:{},fs:{}};return e.forEach(t=>{let i;typeof t!="string"?(i=t,t=i.hook):i={},t=t.trim();const[n,r]=t.split(":"),o=t.replace(/\(.+/,"");A[n][o]=Object.assign(i,{signature:r})}),A}const e6="void main() {gl_FragColor = vec4(0);}",qL=`out vec4 transform_output; +`}return t}function i6(e){const A={vs:{},fs:{}};return e.forEach(t=>{let i;typeof t!="string"?(i=t,t=i.hook):i={},t=t.trim();const[n,r]=t.split(":"),o=t.replace(/\(.+/,"");A[n][o]=Object.assign(i,{signature:r})}),A}const n6="void main() {gl_FragColor = vec4(0);}",YL=`out vec4 transform_output; void main() { transform_output = vec4(0); -}`,t6=`#version 300 es -`.concat(qL);function JL(e,A){A=Array.isArray(A)?A:[A];const t=e.replace(/^\s+/,"").split(/\s+/),[i,n,r]=t;if(!A.includes(i)||!n||!r)return null;const o=r.split(";")[0];return{qualifier:i,type:n,name:o}}function OL(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const{version:A=100,input:t,inputType:i,output:n}=e;if(!t)return A===300?t6:A>300?"#version ".concat(A,` -`).concat(qL):e6;const r=r6(t,i);return A>=300?"#version ".concat(A," ").concat(A===300?"es":"",` +}`,r6=`#version 300 es +`.concat(YL);function KL(e,A){A=Array.isArray(A)?A:[A];const t=e.replace(/^\s+/,"").split(/\s+/),[i,n,r]=t;if(!A.includes(i)||!n||!r)return null;const o=r.split(";")[0];return{qualifier:i,type:n,name:o}}function VL(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const{version:A=100,input:t,inputType:i,output:n}=e;if(!t)return A===300?r6:A>300?"#version ".concat(A,` +`).concat(YL):n6;const r=a6(t,i);return A>=300?"#version ".concat(A," ").concat(A===300?"es":"",` in `).concat(i," ").concat(t,`; out vec4 `).concat(n,`; void main() { @@ -214,7 +214,7 @@ void main() { }`):"varying ".concat(i," ").concat(t,`; void main() { gl_FragColor = `).concat(r,`; -}`)}function i6(e){switch(e){case"float":return"x";case"vec2":return"xy";case"vec3":return"xyz";case"vec4":return"xyzw";default:return ri(!1),null}}function n6(e){switch(e){case"float":return 1;case"vec2":return 2;case"vec3":return 3;case"vec4":return 4;default:return ri(!1),null}}function r6(e,A){switch(A){case"float":return"vec4(".concat(e,", 0.0, 0.0, 1.0)");case"vec2":return"vec4(".concat(e,", 0.0, 1.0)");case"vec3":return"vec4(".concat(e,", 1.0)");case"vec4":return e;default:return ri(!1),null}}const o6=`#ifdef LUMA_FP32_TAN_PRECISION_WORKAROUND +}`)}function o6(e){switch(e){case"float":return"x";case"vec2":return"xy";case"vec3":return"xyz";case"vec4":return"xyzw";default:return ri(!1),null}}function s6(e){switch(e){case"float":return 1;case"vec2":return 2;case"vec3":return 3;case"vec4":return 4;default:return ri(!1),null}}function a6(e,A){switch(A){case"float":return"vec4(".concat(e,", 0.0, 0.0, 1.0)");case"vec2":return"vec4(".concat(e,", 0.0, 1.0)");case"vec3":return"vec4(".concat(e,", 1.0)");case"vec4":return e;default:return ri(!1),null}}const g6=`#ifdef LUMA_FP32_TAN_PRECISION_WORKAROUND const float TWO_PI = 6.2831854820251465; const float PI_2 = 1.5707963705062866; const float PI_16 = 0.1963495463132858; @@ -360,7 +360,7 @@ float tan_fp32(float a) { return tan(a); #endif } -`,s6={name:"fp32",vs:o6,fs:null};function jI(e,A){if(!e)throw new Error("math.gl assertion ".concat(A))}const Tt={EPSILON:1e-12,debug:!1,precision:4,printTypes:!1,printDegrees:!1,printRowMajor:!0};function a6(e,{precision:A=Tt.precision}={}){return e=g6(e),"".concat(parseFloat(e.toPrecision(A)))}function To(e){return Array.isArray(e)||ArrayBuffer.isView(e)&&!(e instanceof DataView)}function ft(e,A,t){return l6(e,i=>Math.max(A,Math.min(t,i)))}function xo(e,A,t){return To(e)?e.map((i,n)=>xo(i,A[n],t)):t*A+(1-t)*e}function ln(e,A,t){const i=Tt.EPSILON;t&&(Tt.EPSILON=t);try{if(e===A)return!0;if(To(e)&&To(A)){if(e.length!==A.length)return!1;for(let n=0;n0?", ":"")+a6(this[i],A);return"".concat(A.printTypes?this.constructor.name:"","[").concat(t,"]")}equals(A){if(!A||this.length!==A.length)return!1;for(let t=0;t=0&&A=0&&A0&&(r=1/Math.sqrt(r)),e[0]=A[0]*r,e[1]=A[1]*r,e[2]=A[2]*r,e}function XL(e,A){return e[0]*A[0]+e[1]*A[1]+e[2]*A[2]}function _C(e,A,t){var i=A[0],n=A[1],r=A[2],o=t[0],s=t[1],a=t[2];return e[0]=n*a-r*s,e[1]=r*o-i*a,e[2]=i*s-n*o,e}function v6(e,A,t,i){var n=A[0],r=A[1],o=A[2];return e[0]=n+i*(t[0]-n),e[1]=r+i*(t[1]-r),e[2]=o+i*(t[2]-o),e}function Yp(e,A,t){var i=A[0],n=A[1],r=A[2],o=t[3]*i+t[7]*n+t[11]*r+t[15];return o=o||1,e[0]=(t[0]*i+t[4]*n+t[8]*r+t[12])/o,e[1]=(t[1]*i+t[5]*n+t[9]*r+t[13])/o,e[2]=(t[2]*i+t[6]*n+t[10]*r+t[14])/o,e}function ZL(e,A,t){var i=A[0],n=A[1],r=A[2];return e[0]=i*t[0]+n*t[3]+r*t[6],e[1]=i*t[1]+n*t[4]+r*t[7],e[2]=i*t[2]+n*t[5]+r*t[8],e}function $L(e,A,t){var i=t[0],n=t[1],r=t[2],o=t[3],s=A[0],a=A[1],g=A[2],I=n*g-r*a,l=r*s-i*g,c=i*a-n*s,C=n*c-r*l,B=r*I-i*c,u=i*l-n*I,E=o*2;return I*=E,l*=E,c*=E,C*=2,B*=2,u*=2,e[0]=s+I+C,e[1]=a+l+B,e[2]=g+c+u,e}function S6(e,A,t,i){var n=[],r=[];return n[0]=A[0]-t[0],n[1]=A[1]-t[1],n[2]=A[2]-t[2],r[0]=n[0],r[1]=n[1]*Math.cos(i)-n[2]*Math.sin(i),r[2]=n[1]*Math.sin(i)+n[2]*Math.cos(i),e[0]=r[0]+t[0],e[1]=r[1]+t[1],e[2]=r[2]+t[2],e}function D6(e,A,t,i){var n=[],r=[];return n[0]=A[0]-t[0],n[1]=A[1]-t[1],n[2]=A[2]-t[2],r[0]=n[2]*Math.sin(i)+n[0]*Math.cos(i),r[1]=n[1],r[2]=n[2]*Math.cos(i)-n[0]*Math.sin(i),e[0]=r[0]+t[0],e[1]=r[1]+t[1],e[2]=r[2]+t[2],e}function R6(e,A,t,i){var n=[],r=[];return n[0]=A[0]-t[0],n[1]=A[1]-t[1],n[2]=A[2]-t[2],r[0]=n[0]*Math.cos(i)-n[1]*Math.sin(i),r[1]=n[0]*Math.sin(i)+n[1]*Math.cos(i),r[2]=n[2],e[0]=r[0]+t[0],e[1]=r[1]+t[1],e[2]=r[2]+t[2],e}function x6(e,A){var t=e[0],i=e[1],n=e[2],r=A[0],o=A[1],s=A[2],a=Math.sqrt(t*t+i*i+n*n),g=Math.sqrt(r*r+o*o+s*s),I=a*g,l=I&&XL(e,A)/I;return Math.acos(Math.min(Math.max(l,-1),1))}var Ab=p6,eb=d6,Kh=y6;(function(){var e=jL();return function(A,t,i,n,r,o){var s,a;for(t||(t=3),i||(i=0),n?a=Math.min(n*t+i,A.length):a=A.length,s=i;s0?this.copy([A,...t]):this.identity()}copy(A){return this[0]=A[0],this[1]=A[1],this[2]=A[2],this[3]=A[3],this[4]=A[4],this[5]=A[5],this[6]=A[6],this[7]=A[7],this[8]=A[8],this.check()}identity(){return this.copy(k6)}fromObject(A){return this.check()}fromQuaternion(A){return M6(this,A),this.check()}set(A,t,i,n,r,o,s,a,g){return this[0]=A,this[1]=t,this[2]=i,this[3]=n,this[4]=r,this[5]=o,this[6]=s,this[7]=a,this[8]=g,this.check()}setRowMajor(A,t,i,n,r,o,s,a,g){return this[0]=A,this[1]=n,this[2]=s,this[3]=t,this[4]=r,this[5]=a,this[6]=i,this[7]=o,this[8]=g,this.check()}determinant(){return b6(this)}transpose(){return N6(this,this),this.check()}invert(){return L6(this,this),this.check()}multiplyLeft(A){return iD(this,A,this),this.check()}multiplyRight(A){return iD(this,this,A),this.check()}rotate(A){return _6(this,this,A),this.check()}scale(A){return Array.isArray(A)?nD(this,this,A):nD(this,this,[A,A]),this.check()}translate(A){return G6(this,this,A),this.check()}transform(A,t){let i;switch(A.length){case 2:i=E6(t||[-0,-0],A,this);break;case 3:i=ZL(t||[-0,-0,-0],A,this);break;case 4:i=zL(t||[-0,-0,-0,-0],A,this);break;default:throw new Error("Illegal vector")}return uI(i,A.length),i}transformVector(A,t){return this.transform(A,t)}transformVector2(A,t){return this.transform(A,t)}transformVector3(A,t){return this.transform(A,t)}}let Lc,bc;function T6(){return Lc||(Lc=new Qt([0,0,0,0,0,0,0,0,0]),Object.freeze(Lc)),Lc}function U6(){return bc||(bc=new Qt,Object.freeze(bc)),bc}function P6(e){return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function H6(e,A){if(e===A){var t=A[1],i=A[2],n=A[3],r=A[6],o=A[7],s=A[11];e[1]=A[4],e[2]=A[8],e[3]=A[12],e[4]=t,e[6]=A[9],e[7]=A[13],e[8]=i,e[9]=r,e[11]=A[14],e[12]=n,e[13]=o,e[14]=s}else e[0]=A[0],e[1]=A[4],e[2]=A[8],e[3]=A[12],e[4]=A[1],e[5]=A[5],e[6]=A[9],e[7]=A[13],e[8]=A[2],e[9]=A[6],e[10]=A[10],e[11]=A[14],e[12]=A[3],e[13]=A[7],e[14]=A[11],e[15]=A[15];return e}function Id(e,A){var t=A[0],i=A[1],n=A[2],r=A[3],o=A[4],s=A[5],a=A[6],g=A[7],I=A[8],l=A[9],c=A[10],C=A[11],B=A[12],u=A[13],E=A[14],h=A[15],f=t*s-i*o,Q=t*a-n*o,d=t*g-r*o,w=i*a-n*s,m=i*g-r*s,v=n*g-r*a,x=I*u-l*B,D=I*E-c*B,F=I*h-C*B,N=l*E-c*u,M=l*h-C*u,U=c*h-C*E,P=f*U-Q*M+d*N+w*F-m*D+v*x;return P?(P=1/P,e[0]=(s*U-a*M+g*N)*P,e[1]=(n*M-i*U-r*N)*P,e[2]=(u*v-E*m+h*w)*P,e[3]=(c*m-l*v-C*w)*P,e[4]=(a*F-o*U-g*D)*P,e[5]=(t*U-n*F+r*D)*P,e[6]=(E*d-B*v-h*Q)*P,e[7]=(I*v-c*d+C*Q)*P,e[8]=(o*M-s*F+g*x)*P,e[9]=(i*F-t*M-r*x)*P,e[10]=(B*m-u*d+h*f)*P,e[11]=(l*d-I*m-C*f)*P,e[12]=(s*D-o*N-a*x)*P,e[13]=(t*N-i*D+n*x)*P,e[14]=(u*Q-B*w-E*f)*P,e[15]=(I*w-l*Q+c*f)*P,e):null}function q6(e){var A=e[0],t=e[1],i=e[2],n=e[3],r=e[4],o=e[5],s=e[6],a=e[7],g=e[8],I=e[9],l=e[10],c=e[11],C=e[12],B=e[13],u=e[14],E=e[15],h=A*o-t*r,f=A*s-i*r,Q=A*a-n*r,d=t*s-i*o,w=t*a-n*o,m=i*a-n*s,v=g*B-I*C,x=g*u-l*C,D=g*E-c*C,F=I*u-l*B,N=I*E-c*B,M=l*E-c*u;return h*M-f*N+Q*F+d*D-w*x+m*v}function Fo(e,A,t){var i=A[0],n=A[1],r=A[2],o=A[3],s=A[4],a=A[5],g=A[6],I=A[7],l=A[8],c=A[9],C=A[10],B=A[11],u=A[12],E=A[13],h=A[14],f=A[15],Q=t[0],d=t[1],w=t[2],m=t[3];return e[0]=Q*i+d*s+w*l+m*u,e[1]=Q*n+d*a+w*c+m*E,e[2]=Q*r+d*g+w*C+m*h,e[3]=Q*o+d*I+w*B+m*f,Q=t[4],d=t[5],w=t[6],m=t[7],e[4]=Q*i+d*s+w*l+m*u,e[5]=Q*n+d*a+w*c+m*E,e[6]=Q*r+d*g+w*C+m*h,e[7]=Q*o+d*I+w*B+m*f,Q=t[8],d=t[9],w=t[10],m=t[11],e[8]=Q*i+d*s+w*l+m*u,e[9]=Q*n+d*a+w*c+m*E,e[10]=Q*r+d*g+w*C+m*h,e[11]=Q*o+d*I+w*B+m*f,Q=t[12],d=t[13],w=t[14],m=t[15],e[12]=Q*i+d*s+w*l+m*u,e[13]=Q*n+d*a+w*c+m*E,e[14]=Q*r+d*g+w*C+m*h,e[15]=Q*o+d*I+w*B+m*f,e}function MB(e,A,t){var i=t[0],n=t[1],r=t[2],o,s,a,g,I,l,c,C,B,u,E,h;return A===e?(e[12]=A[0]*i+A[4]*n+A[8]*r+A[12],e[13]=A[1]*i+A[5]*n+A[9]*r+A[13],e[14]=A[2]*i+A[6]*n+A[10]*r+A[14],e[15]=A[3]*i+A[7]*n+A[11]*r+A[15]):(o=A[0],s=A[1],a=A[2],g=A[3],I=A[4],l=A[5],c=A[6],C=A[7],B=A[8],u=A[9],E=A[10],h=A[11],e[0]=o,e[1]=s,e[2]=a,e[3]=g,e[4]=I,e[5]=l,e[6]=c,e[7]=C,e[8]=B,e[9]=u,e[10]=E,e[11]=h,e[12]=o*i+I*n+B*r+A[12],e[13]=s*i+l*n+u*r+A[13],e[14]=a*i+c*n+E*r+A[14],e[15]=g*i+C*n+h*r+A[15]),e}function Vp(e,A,t){var i=t[0],n=t[1],r=t[2];return e[0]=A[0]*i,e[1]=A[1]*i,e[2]=A[2]*i,e[3]=A[3]*i,e[4]=A[4]*n,e[5]=A[5]*n,e[6]=A[6]*n,e[7]=A[7]*n,e[8]=A[8]*r,e[9]=A[9]*r,e[10]=A[10]*r,e[11]=A[11]*r,e[12]=A[12],e[13]=A[13],e[14]=A[14],e[15]=A[15],e}function J6(e,A,t,i){var n=i[0],r=i[1],o=i[2],s=Math.hypot(n,r,o),a,g,I,l,c,C,B,u,E,h,f,Q,d,w,m,v,x,D,F,N,M,U,P,W;return s0&&(o=1/Math.sqrt(o)),e[0]=t*o,e[1]=i*o,e[2]=n*o,e[3]=r*o,e}function n9(e,A){return e[0]*A[0]+e[1]*A[1]+e[2]*A[2]+e[3]*A[3]}function r9(e,A,t,i){var n=A[0],r=A[1],o=A[2],s=A[3];return e[0]=n+i*(t[0]-n),e[1]=r+i*(t[1]-r),e[2]=o+i*(t[2]-o),e[3]=s+i*(t[3]-s),e}function Ua(e,A,t){var i=A[0],n=A[1],r=A[2],o=A[3];return e[0]=t[0]*i+t[4]*n+t[8]*r+t[12]*o,e[1]=t[1]*i+t[5]*n+t[9]*r+t[13]*o,e[2]=t[2]*i+t[6]*n+t[10]*r+t[14]*o,e[3]=t[3]*i+t[7]*n+t[11]*r+t[15]*o,e}function o9(e,A,t){var i=A[0],n=A[1],r=A[2],o=t[0],s=t[1],a=t[2],g=t[3],I=g*i+s*r-a*n,l=g*n+a*i-o*r,c=g*r+o*n-s*i,C=-o*i-s*n-a*r;return e[0]=I*g+C*-o+l*-a-c*-s,e[1]=l*g+C*-s+c*-o-I*-a,e[2]=c*g+C*-a+I*-s-l*-o,e[3]=A[3],e}(function(){var e=$6();return function(A,t,i,n,r,o){var s,a;for(t||(t=4),i||(i=0),n?a=Math.min(n*t+i,A.length):a=A.length,s=i;sMath.PI*2)throw Error("expected radians")}function c9(e,A,t,i,n,r){const o=2*r/(t-A),s=2*r/(n-i),a=(t+A)/(t-A),g=(n+i)/(n-i),I=-1,l=-1,c=-2*r;return e[0]=o,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=s,e[6]=0,e[7]=0,e[8]=a,e[9]=g,e[10]=I,e[11]=l,e[12]=0,e[13]=0,e[14]=c,e[15]=0,e}function oD(){var e=new ki(4);return ki!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e[3]=1,e}function C9(e){return e[0]=0,e[1]=0,e[2]=0,e[3]=1,e}function rb(e,A,t){t=t*.5;var i=Math.sin(t);return e[0]=i*A[0],e[1]=i*A[1],e[2]=i*A[2],e[3]=Math.cos(t),e}function sD(e,A,t){var i=A[0],n=A[1],r=A[2],o=A[3],s=t[0],a=t[1],g=t[2],I=t[3];return e[0]=i*I+o*s+n*g-r*a,e[1]=n*I+o*a+r*s-i*g,e[2]=r*I+o*g+i*a-n*s,e[3]=o*I-i*s-n*a-r*g,e}function B9(e,A,t){t*=.5;var i=A[0],n=A[1],r=A[2],o=A[3],s=Math.sin(t),a=Math.cos(t);return e[0]=i*a+o*s,e[1]=n*a+r*s,e[2]=r*a-n*s,e[3]=o*a-i*s,e}function E9(e,A,t){t*=.5;var i=A[0],n=A[1],r=A[2],o=A[3],s=Math.sin(t),a=Math.cos(t);return e[0]=i*a-r*s,e[1]=n*a+o*s,e[2]=r*a+i*s,e[3]=o*a-n*s,e}function u9(e,A,t){t*=.5;var i=A[0],n=A[1],r=A[2],o=A[3],s=Math.sin(t),a=Math.cos(t);return e[0]=i*a+n*s,e[1]=n*a-i*s,e[2]=r*a+o*s,e[3]=o*a-r*s,e}function h9(e,A){var t=A[0],i=A[1],n=A[2];return e[0]=t,e[1]=i,e[2]=n,e[3]=Math.sqrt(Math.abs(1-t*t-i*i-n*n)),e}function MC(e,A,t,i){var n=A[0],r=A[1],o=A[2],s=A[3],a=t[0],g=t[1],I=t[2],l=t[3],c,C,B,u,E;return C=n*a+r*g+o*I+s*l,C<0&&(C=-C,a=-a,g=-g,I=-I,l=-l),1-C>hI?(c=Math.acos(C),B=Math.sin(c),u=Math.sin((1-i)*c)/B,E=Math.sin(i*c)/B):(u=1-i,E=i),e[0]=u*n+E*a,e[1]=u*r+E*g,e[2]=u*o+E*I,e[3]=u*s+E*l,e}function f9(e,A){var t=A[0],i=A[1],n=A[2],r=A[3],o=t*t+i*i+n*n+r*r,s=o?1/o:0;return e[0]=-t*s,e[1]=-i*s,e[2]=-n*s,e[3]=r*s,e}function Q9(e,A){return e[0]=-A[0],e[1]=-A[1],e[2]=-A[2],e[3]=A[3],e}function ob(e,A){var t=A[0]+A[4]+A[8],i;if(t>0)i=Math.sqrt(t+1),e[3]=.5*i,i=.5/i,e[0]=(A[5]-A[7])*i,e[1]=(A[6]-A[2])*i,e[2]=(A[1]-A[3])*i;else{var n=0;A[4]>A[0]&&(n=1),A[8]>A[n*3+n]&&(n=2);var r=(n+1)%3,o=(n+2)%3;i=Math.sqrt(A[n*3+n]-A[r*3+r]-A[o*3+o]+1),e[n]=.5*i,i=.5/i,e[3]=(A[r*3+o]-A[o*3+r])*i,e[r]=(A[r*3+n]+A[n*3+r])*i,e[o]=(A[o*3+n]+A[n*3+o])*i}return e}var d9=A9,p9=Wp,y9=n9,m9=r9,w9=e9,v9=t9,sb=i9,S9=function(){var e=jL(),A=tD(1,0,0),t=tD(0,1,0);return function(i,n,r){var o=XL(n,r);return o<-.999999?(_C(e,A,n),eb(e)<1e-6&&_C(e,t,n),w6(e,e),rb(i,e,Math.PI),i):o>.999999?(i[0]=0,i[1]=0,i[2]=0,i[3]=1,i):(_C(e,n,r),i[0]=e[0],i[1]=e[1],i[2]=e[2],i[3]=1+o,sb(i,i))}}();(function(){var e=oD(),A=oD();return function(t,i,n,r,o,s){return MC(e,i,o,s),MC(A,n,r,s),MC(t,e,A,2*s*(1-s)),t}})();(function(){var e=F6();return function(A,t,i,n){return e[0]=i[0],e[3]=i[1],e[6]=i[2],e[1]=n[0],e[4]=n[1],e[7]=n[2],e[2]=-t[0],e[5]=-t[1],e[8]=-t[2],sb(A,ob(A,e))}})();const D9=[0,0,0,1];class aD extends Op{constructor(A=0,t=0,i=0,n=1){super(-0,-0,-0,-0),Array.isArray(A)&&arguments.length===1?this.copy(A):this.set(A,t,i,n)}copy(A){return this[0]=A[0],this[1]=A[1],this[2]=A[2],this[3]=A[3],this.check()}set(A,t,i,n){return this[0]=A,this[1]=t,this[2]=i,this[3]=n,this.check()}fromObject(A){return this[0]=A.x,this[1]=A.y,this[2]=A.z,this[3]=A.w,this.check()}fromMatrix3(A){return ob(this,A),this.check()}fromAxisRotation(A,t){return rb(this,A,t),this.check()}identity(){return C9(this),this.check()}setAxisAngle(A,t){return this.fromAxisRotation(A,t)}get ELEMENTS(){return 4}get x(){return this[0]}set x(A){this[0]=Re(A)}get y(){return this[1]}set y(A){this[1]=Re(A)}get z(){return this[2]}set z(A){this[2]=Re(A)}get w(){return this[3]}set w(A){this[3]=Re(A)}len(){return w9(this)}lengthSquared(){return v9(this)}dot(A){return y9(this,A)}rotationTo(A,t){return S9(this,A,t),this.check()}add(A){return d9(this,this,A),this.check()}calculateW(){return h9(this,this),this.check()}conjugate(){return Q9(this,this),this.check()}invert(){return f9(this,this),this.check()}lerp(A,t,i){return i===void 0?this.lerp(this,A,t):(m9(this,A,t,i),this.check())}multiplyRight(A){return sD(this,this,A),this.check()}multiplyLeft(A){return sD(this,A,this),this.check()}normalize(){const A=this.len(),t=A>0?1/A:0;return this[0]=this[0]*t,this[1]=this[1]*t,this[2]=this[2]*t,this[3]=this[3]*t,A===0&&(this[3]=1),this.check()}rotateX(A){return B9(this,this,A),this.check()}rotateY(A){return E9(this,this,A),this.check()}rotateZ(A){return u9(this,this,A),this.check()}scale(A){return p9(this,this,A),this.check()}slerp(A,t,i){let n,r,o;switch(arguments.length){case 1:({start:n=D9,target:r,ratio:o}=A);break;case 2:n=this,r=A,o=t;break;default:n=A,r=t,o=i}return MC(this,n,r,o),this.check()}transformVector4(A,t=new Kp){return o9(t,A,this),uI(t,4)}lengthSq(){return this.lengthSquared()}setFromAxisAngle(A,t){return this.setAxisAngle(A,t)}premultiply(A){return this.multiplyLeft(A)}multiply(A){return this.multiplyRight(A)}}var ab={EPSILON1:.1,EPSILON2:.01,EPSILON3:.001,EPSILON4:1e-4,EPSILON5:1e-5,EPSILON6:1e-6,EPSILON7:1e-7,EPSILON8:1e-8,EPSILON9:1e-9,EPSILON10:1e-10,EPSILON11:1e-11,EPSILON12:1e-12,EPSILON13:1e-13,EPSILON14:1e-14,EPSILON15:1e-15,EPSILON16:1e-16,EPSILON17:1e-17,EPSILON18:1e-18,EPSILON19:1e-19,EPSILON20:1e-20,PI_OVER_TWO:Math.PI/2,PI_OVER_FOUR:Math.PI/4,PI_OVER_SIX:Math.PI/6,TWO_PI:Math.PI*2},gD=`#if (defined(SHADER_TYPE_FRAGMENT) && defined(LIGHTING_FRAGMENT)) || (defined(SHADER_TYPE_VERTEX) && defined(LIGHTING_VERTEX)) +`,I6={name:"fp32",vs:g6,fs:null};function zI(e,A){if(!e)throw new Error("math.gl assertion ".concat(A))}const Tt={EPSILON:1e-12,debug:!1,precision:4,printTypes:!1,printDegrees:!1,printRowMajor:!0};function l6(e,{precision:A=Tt.precision}={}){return e=c6(e),"".concat(parseFloat(e.toPrecision(A)))}function ko(e){return Array.isArray(e)||ArrayBuffer.isView(e)&&!(e instanceof DataView)}function ft(e,A,t){return B6(e,i=>Math.max(A,Math.min(t,i)))}function Ro(e,A,t){return ko(e)?e.map((i,n)=>Ro(i,A[n],t)):t*A+(1-t)*e}function ln(e,A,t){const i=Tt.EPSILON;t&&(Tt.EPSILON=t);try{if(e===A)return!0;if(ko(e)&&ko(A)){if(e.length!==A.length)return!1;for(let n=0;n0?", ":"")+l6(this[i],A);return"".concat(A.printTypes?this.constructor.name:"","[").concat(t,"]")}equals(A){if(!A||this.length!==A.length)return!1;for(let t=0;t=0&&A=0&&A0&&(r=1/Math.sqrt(r)),e[0]=A[0]*r,e[1]=A[1]*r,e[2]=A[2]*r,e}function Ab(e,A){return e[0]*A[0]+e[1]*A[1]+e[2]*A[2]}function _C(e,A,t){var i=A[0],n=A[1],r=A[2],o=t[0],s=t[1],a=t[2];return e[0]=n*a-r*s,e[1]=r*o-i*a,e[2]=i*s-n*o,e}function R6(e,A,t,i){var n=A[0],r=A[1],o=A[2];return e[0]=n+i*(t[0]-n),e[1]=r+i*(t[1]-r),e[2]=o+i*(t[2]-o),e}function Kp(e,A,t){var i=A[0],n=A[1],r=A[2],o=t[3]*i+t[7]*n+t[11]*r+t[15];return o=o||1,e[0]=(t[0]*i+t[4]*n+t[8]*r+t[12])/o,e[1]=(t[1]*i+t[5]*n+t[9]*r+t[13])/o,e[2]=(t[2]*i+t[6]*n+t[10]*r+t[14])/o,e}function eb(e,A,t){var i=A[0],n=A[1],r=A[2];return e[0]=i*t[0]+n*t[3]+r*t[6],e[1]=i*t[1]+n*t[4]+r*t[7],e[2]=i*t[2]+n*t[5]+r*t[8],e}function tb(e,A,t){var i=t[0],n=t[1],r=t[2],o=t[3],s=A[0],a=A[1],g=A[2],I=n*g-r*a,l=r*s-i*g,c=i*a-n*s,C=n*c-r*l,B=r*I-i*c,u=i*l-n*I,E=o*2;return I*=E,l*=E,c*=E,C*=2,B*=2,u*=2,e[0]=s+I+C,e[1]=a+l+B,e[2]=g+c+u,e}function x6(e,A,t,i){var n=[],r=[];return n[0]=A[0]-t[0],n[1]=A[1]-t[1],n[2]=A[2]-t[2],r[0]=n[0],r[1]=n[1]*Math.cos(i)-n[2]*Math.sin(i),r[2]=n[1]*Math.sin(i)+n[2]*Math.cos(i),e[0]=r[0]+t[0],e[1]=r[1]+t[1],e[2]=r[2]+t[2],e}function F6(e,A,t,i){var n=[],r=[];return n[0]=A[0]-t[0],n[1]=A[1]-t[1],n[2]=A[2]-t[2],r[0]=n[2]*Math.sin(i)+n[0]*Math.cos(i),r[1]=n[1],r[2]=n[2]*Math.cos(i)-n[0]*Math.sin(i),e[0]=r[0]+t[0],e[1]=r[1]+t[1],e[2]=r[2]+t[2],e}function N6(e,A,t,i){var n=[],r=[];return n[0]=A[0]-t[0],n[1]=A[1]-t[1],n[2]=A[2]-t[2],r[0]=n[0]*Math.cos(i)-n[1]*Math.sin(i),r[1]=n[0]*Math.sin(i)+n[1]*Math.cos(i),r[2]=n[2],e[0]=r[0]+t[0],e[1]=r[1]+t[1],e[2]=r[2]+t[2],e}function L6(e,A){var t=e[0],i=e[1],n=e[2],r=A[0],o=A[1],s=A[2],a=Math.sqrt(t*t+i*i+n*n),g=Math.sqrt(r*r+o*o+s*s),I=a*g,l=I&&Ab(e,A)/I;return Math.acos(Math.min(Math.max(l,-1),1))}var ib=w6,nb=m6,Kh=v6;(function(){var e=$L();return function(A,t,i,n,r,o){var s,a;for(t||(t=3),i||(i=0),n?a=Math.min(n*t+i,A.length):a=A.length,s=i;s0?this.copy([A,...t]):this.identity()}copy(A){return this[0]=A[0],this[1]=A[1],this[2]=A[2],this[3]=A[3],this[4]=A[4],this[5]=A[5],this[6]=A[6],this[7]=A[7],this[8]=A[8],this.check()}identity(){return this.copy(P6)}fromObject(A){return this.check()}fromQuaternion(A){return U6(this,A),this.check()}set(A,t,i,n,r,o,s,a,g){return this[0]=A,this[1]=t,this[2]=i,this[3]=n,this[4]=r,this[5]=o,this[6]=s,this[7]=a,this[8]=g,this.check()}setRowMajor(A,t,i,n,r,o,s,a,g){return this[0]=A,this[1]=n,this[2]=s,this[3]=t,this[4]=r,this[5]=a,this[6]=i,this[7]=o,this[8]=g,this.check()}determinant(){return M6(this)}transpose(){return G6(this,this),this.check()}invert(){return _6(this,this),this.check()}multiplyLeft(A){return nD(this,A,this),this.check()}multiplyRight(A){return nD(this,this,A),this.check()}rotate(A){return T6(this,this,A),this.check()}scale(A){return Array.isArray(A)?rD(this,this,A):rD(this,this,[A,A]),this.check()}translate(A){return k6(this,this,A),this.check()}transform(A,t){let i;switch(A.length){case 2:i=f6(t||[-0,-0],A,this);break;case 3:i=eb(t||[-0,-0,-0],A,this);break;case 4:i=ZL(t||[-0,-0,-0,-0],A,this);break;default:throw new Error("Illegal vector")}return EI(i,A.length),i}transformVector(A,t){return this.transform(A,t)}transformVector2(A,t){return this.transform(A,t)}transformVector3(A,t){return this.transform(A,t)}}let Lc,bc;function H6(){return Lc||(Lc=new Qt([0,0,0,0,0,0,0,0,0]),Object.freeze(Lc)),Lc}function q6(){return bc||(bc=new Qt,Object.freeze(bc)),bc}function J6(e){return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function O6(e,A){if(e===A){var t=A[1],i=A[2],n=A[3],r=A[6],o=A[7],s=A[11];e[1]=A[4],e[2]=A[8],e[3]=A[12],e[4]=t,e[6]=A[9],e[7]=A[13],e[8]=i,e[9]=r,e[11]=A[14],e[12]=n,e[13]=o,e[14]=s}else e[0]=A[0],e[1]=A[4],e[2]=A[8],e[3]=A[12],e[4]=A[1],e[5]=A[5],e[6]=A[9],e[7]=A[13],e[8]=A[2],e[9]=A[6],e[10]=A[10],e[11]=A[14],e[12]=A[3],e[13]=A[7],e[14]=A[11],e[15]=A[15];return e}function ld(e,A){var t=A[0],i=A[1],n=A[2],r=A[3],o=A[4],s=A[5],a=A[6],g=A[7],I=A[8],l=A[9],c=A[10],C=A[11],B=A[12],u=A[13],E=A[14],h=A[15],f=t*s-i*o,Q=t*a-n*o,d=t*g-r*o,w=i*a-n*s,m=i*g-r*s,v=n*g-r*a,x=I*u-l*B,D=I*E-c*B,F=I*h-C*B,N=l*E-c*u,M=l*h-C*u,U=c*h-C*E,P=f*U-Q*M+d*N+w*F-m*D+v*x;return P?(P=1/P,e[0]=(s*U-a*M+g*N)*P,e[1]=(n*M-i*U-r*N)*P,e[2]=(u*v-E*m+h*w)*P,e[3]=(c*m-l*v-C*w)*P,e[4]=(a*F-o*U-g*D)*P,e[5]=(t*U-n*F+r*D)*P,e[6]=(E*d-B*v-h*Q)*P,e[7]=(I*v-c*d+C*Q)*P,e[8]=(o*M-s*F+g*x)*P,e[9]=(i*F-t*M-r*x)*P,e[10]=(B*m-u*d+h*f)*P,e[11]=(l*d-I*m-C*f)*P,e[12]=(s*D-o*N-a*x)*P,e[13]=(t*N-i*D+n*x)*P,e[14]=(u*Q-B*w-E*f)*P,e[15]=(I*w-l*Q+c*f)*P,e):null}function Y6(e){var A=e[0],t=e[1],i=e[2],n=e[3],r=e[4],o=e[5],s=e[6],a=e[7],g=e[8],I=e[9],l=e[10],c=e[11],C=e[12],B=e[13],u=e[14],E=e[15],h=A*o-t*r,f=A*s-i*r,Q=A*a-n*r,d=t*s-i*o,w=t*a-n*o,m=i*a-n*s,v=g*B-I*C,x=g*u-l*C,D=g*E-c*C,F=I*u-l*B,N=I*E-c*B,M=l*E-c*u;return h*M-f*N+Q*F+d*D-w*x+m*v}function xo(e,A,t){var i=A[0],n=A[1],r=A[2],o=A[3],s=A[4],a=A[5],g=A[6],I=A[7],l=A[8],c=A[9],C=A[10],B=A[11],u=A[12],E=A[13],h=A[14],f=A[15],Q=t[0],d=t[1],w=t[2],m=t[3];return e[0]=Q*i+d*s+w*l+m*u,e[1]=Q*n+d*a+w*c+m*E,e[2]=Q*r+d*g+w*C+m*h,e[3]=Q*o+d*I+w*B+m*f,Q=t[4],d=t[5],w=t[6],m=t[7],e[4]=Q*i+d*s+w*l+m*u,e[5]=Q*n+d*a+w*c+m*E,e[6]=Q*r+d*g+w*C+m*h,e[7]=Q*o+d*I+w*B+m*f,Q=t[8],d=t[9],w=t[10],m=t[11],e[8]=Q*i+d*s+w*l+m*u,e[9]=Q*n+d*a+w*c+m*E,e[10]=Q*r+d*g+w*C+m*h,e[11]=Q*o+d*I+w*B+m*f,Q=t[12],d=t[13],w=t[14],m=t[15],e[12]=Q*i+d*s+w*l+m*u,e[13]=Q*n+d*a+w*c+m*E,e[14]=Q*r+d*g+w*C+m*h,e[15]=Q*o+d*I+w*B+m*f,e}function MB(e,A,t){var i=t[0],n=t[1],r=t[2],o,s,a,g,I,l,c,C,B,u,E,h;return A===e?(e[12]=A[0]*i+A[4]*n+A[8]*r+A[12],e[13]=A[1]*i+A[5]*n+A[9]*r+A[13],e[14]=A[2]*i+A[6]*n+A[10]*r+A[14],e[15]=A[3]*i+A[7]*n+A[11]*r+A[15]):(o=A[0],s=A[1],a=A[2],g=A[3],I=A[4],l=A[5],c=A[6],C=A[7],B=A[8],u=A[9],E=A[10],h=A[11],e[0]=o,e[1]=s,e[2]=a,e[3]=g,e[4]=I,e[5]=l,e[6]=c,e[7]=C,e[8]=B,e[9]=u,e[10]=E,e[11]=h,e[12]=o*i+I*n+B*r+A[12],e[13]=s*i+l*n+u*r+A[13],e[14]=a*i+c*n+E*r+A[14],e[15]=g*i+C*n+h*r+A[15]),e}function Wp(e,A,t){var i=t[0],n=t[1],r=t[2];return e[0]=A[0]*i,e[1]=A[1]*i,e[2]=A[2]*i,e[3]=A[3]*i,e[4]=A[4]*n,e[5]=A[5]*n,e[6]=A[6]*n,e[7]=A[7]*n,e[8]=A[8]*r,e[9]=A[9]*r,e[10]=A[10]*r,e[11]=A[11]*r,e[12]=A[12],e[13]=A[13],e[14]=A[14],e[15]=A[15],e}function K6(e,A,t,i){var n=i[0],r=i[1],o=i[2],s=Math.hypot(n,r,o),a,g,I,l,c,C,B,u,E,h,f,Q,d,w,m,v,x,D,F,N,M,U,P,W;return s0&&(o=1/Math.sqrt(o)),e[0]=t*o,e[1]=i*o,e[2]=n*o,e[3]=r*o,e}function s9(e,A){return e[0]*A[0]+e[1]*A[1]+e[2]*A[2]+e[3]*A[3]}function a9(e,A,t,i){var n=A[0],r=A[1],o=A[2],s=A[3];return e[0]=n+i*(t[0]-n),e[1]=r+i*(t[1]-r),e[2]=o+i*(t[2]-o),e[3]=s+i*(t[3]-s),e}function Ta(e,A,t){var i=A[0],n=A[1],r=A[2],o=A[3];return e[0]=t[0]*i+t[4]*n+t[8]*r+t[12]*o,e[1]=t[1]*i+t[5]*n+t[9]*r+t[13]*o,e[2]=t[2]*i+t[6]*n+t[10]*r+t[14]*o,e[3]=t[3]*i+t[7]*n+t[11]*r+t[15]*o,e}function g9(e,A,t){var i=A[0],n=A[1],r=A[2],o=t[0],s=t[1],a=t[2],g=t[3],I=g*i+s*r-a*n,l=g*n+a*i-o*r,c=g*r+o*n-s*i,C=-o*i-s*n-a*r;return e[0]=I*g+C*-o+l*-a-c*-s,e[1]=l*g+C*-s+c*-o-I*-a,e[2]=c*g+C*-a+I*-s-l*-o,e[3]=A[3],e}(function(){var e=t9();return function(A,t,i,n,r,o){var s,a;for(t||(t=4),i||(i=0),n?a=Math.min(n*t+i,A.length):a=A.length,s=i;sMath.PI*2)throw Error("expected radians")}function E9(e,A,t,i,n,r){const o=2*r/(t-A),s=2*r/(n-i),a=(t+A)/(t-A),g=(n+i)/(n-i),I=-1,l=-1,c=-2*r;return e[0]=o,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=s,e[6]=0,e[7]=0,e[8]=a,e[9]=g,e[10]=I,e[11]=l,e[12]=0,e[13]=0,e[14]=c,e[15]=0,e}function sD(){var e=new ki(4);return ki!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e[3]=1,e}function u9(e){return e[0]=0,e[1]=0,e[2]=0,e[3]=1,e}function ab(e,A,t){t=t*.5;var i=Math.sin(t);return e[0]=i*A[0],e[1]=i*A[1],e[2]=i*A[2],e[3]=Math.cos(t),e}function aD(e,A,t){var i=A[0],n=A[1],r=A[2],o=A[3],s=t[0],a=t[1],g=t[2],I=t[3];return e[0]=i*I+o*s+n*g-r*a,e[1]=n*I+o*a+r*s-i*g,e[2]=r*I+o*g+i*a-n*s,e[3]=o*I-i*s-n*a-r*g,e}function h9(e,A,t){t*=.5;var i=A[0],n=A[1],r=A[2],o=A[3],s=Math.sin(t),a=Math.cos(t);return e[0]=i*a+o*s,e[1]=n*a+r*s,e[2]=r*a-n*s,e[3]=o*a-i*s,e}function f9(e,A,t){t*=.5;var i=A[0],n=A[1],r=A[2],o=A[3],s=Math.sin(t),a=Math.cos(t);return e[0]=i*a-r*s,e[1]=n*a+o*s,e[2]=r*a+i*s,e[3]=o*a-n*s,e}function Q9(e,A,t){t*=.5;var i=A[0],n=A[1],r=A[2],o=A[3],s=Math.sin(t),a=Math.cos(t);return e[0]=i*a+n*s,e[1]=n*a-i*s,e[2]=r*a+o*s,e[3]=o*a-r*s,e}function d9(e,A){var t=A[0],i=A[1],n=A[2];return e[0]=t,e[1]=i,e[2]=n,e[3]=Math.sqrt(Math.abs(1-t*t-i*i-n*n)),e}function MC(e,A,t,i){var n=A[0],r=A[1],o=A[2],s=A[3],a=t[0],g=t[1],I=t[2],l=t[3],c,C,B,u,E;return C=n*a+r*g+o*I+s*l,C<0&&(C=-C,a=-a,g=-g,I=-I,l=-l),1-C>uI?(c=Math.acos(C),B=Math.sin(c),u=Math.sin((1-i)*c)/B,E=Math.sin(i*c)/B):(u=1-i,E=i),e[0]=u*n+E*a,e[1]=u*r+E*g,e[2]=u*o+E*I,e[3]=u*s+E*l,e}function p9(e,A){var t=A[0],i=A[1],n=A[2],r=A[3],o=t*t+i*i+n*n+r*r,s=o?1/o:0;return e[0]=-t*s,e[1]=-i*s,e[2]=-n*s,e[3]=r*s,e}function y9(e,A){return e[0]=-A[0],e[1]=-A[1],e[2]=-A[2],e[3]=A[3],e}function gb(e,A){var t=A[0]+A[4]+A[8],i;if(t>0)i=Math.sqrt(t+1),e[3]=.5*i,i=.5/i,e[0]=(A[5]-A[7])*i,e[1]=(A[6]-A[2])*i,e[2]=(A[1]-A[3])*i;else{var n=0;A[4]>A[0]&&(n=1),A[8]>A[n*3+n]&&(n=2);var r=(n+1)%3,o=(n+2)%3;i=Math.sqrt(A[n*3+n]-A[r*3+r]-A[o*3+o]+1),e[n]=.5*i,i=.5/i,e[3]=(A[r*3+o]-A[o*3+r])*i,e[r]=(A[r*3+n]+A[n*3+r])*i,e[o]=(A[o*3+n]+A[n*3+o])*i}return e}var m9=i9,w9=zp,v9=s9,S9=a9,D9=n9,R9=r9,Ib=o9,x9=function(){var e=$L(),A=iD(1,0,0),t=iD(0,1,0);return function(i,n,r){var o=Ab(n,r);return o<-.999999?(_C(e,A,n),nb(e)<1e-6&&_C(e,t,n),D6(e,e),ab(i,e,Math.PI),i):o>.999999?(i[0]=0,i[1]=0,i[2]=0,i[3]=1,i):(_C(e,n,r),i[0]=e[0],i[1]=e[1],i[2]=e[2],i[3]=1+o,Ib(i,i))}}();(function(){var e=sD(),A=sD();return function(t,i,n,r,o,s){return MC(e,i,o,s),MC(A,n,r,s),MC(t,e,A,2*s*(1-s)),t}})();(function(){var e=b6();return function(A,t,i,n){return e[0]=i[0],e[3]=i[1],e[6]=i[2],e[1]=n[0],e[4]=n[1],e[7]=n[2],e[2]=-t[0],e[5]=-t[1],e[8]=-t[2],Ib(A,gb(A,e))}})();const F9=[0,0,0,1];class gD extends Yp{constructor(A=0,t=0,i=0,n=1){super(-0,-0,-0,-0),Array.isArray(A)&&arguments.length===1?this.copy(A):this.set(A,t,i,n)}copy(A){return this[0]=A[0],this[1]=A[1],this[2]=A[2],this[3]=A[3],this.check()}set(A,t,i,n){return this[0]=A,this[1]=t,this[2]=i,this[3]=n,this.check()}fromObject(A){return this[0]=A.x,this[1]=A.y,this[2]=A.z,this[3]=A.w,this.check()}fromMatrix3(A){return gb(this,A),this.check()}fromAxisRotation(A,t){return ab(this,A,t),this.check()}identity(){return u9(this),this.check()}setAxisAngle(A,t){return this.fromAxisRotation(A,t)}get ELEMENTS(){return 4}get x(){return this[0]}set x(A){this[0]=Re(A)}get y(){return this[1]}set y(A){this[1]=Re(A)}get z(){return this[2]}set z(A){this[2]=Re(A)}get w(){return this[3]}set w(A){this[3]=Re(A)}len(){return D9(this)}lengthSquared(){return R9(this)}dot(A){return v9(this,A)}rotationTo(A,t){return x9(this,A,t),this.check()}add(A){return m9(this,this,A),this.check()}calculateW(){return d9(this,this),this.check()}conjugate(){return y9(this,this),this.check()}invert(){return p9(this,this),this.check()}lerp(A,t,i){return i===void 0?this.lerp(this,A,t):(S9(this,A,t,i),this.check())}multiplyRight(A){return aD(this,this,A),this.check()}multiplyLeft(A){return aD(this,A,this),this.check()}normalize(){const A=this.len(),t=A>0?1/A:0;return this[0]=this[0]*t,this[1]=this[1]*t,this[2]=this[2]*t,this[3]=this[3]*t,A===0&&(this[3]=1),this.check()}rotateX(A){return h9(this,this,A),this.check()}rotateY(A){return f9(this,this,A),this.check()}rotateZ(A){return Q9(this,this,A),this.check()}scale(A){return w9(this,this,A),this.check()}slerp(A,t,i){let n,r,o;switch(arguments.length){case 1:({start:n=F9,target:r,ratio:o}=A);break;case 2:n=this,r=A,o=t;break;default:n=A,r=t,o=i}return MC(this,n,r,o),this.check()}transformVector4(A,t=new Vp){return g9(t,A,this),EI(t,4)}lengthSq(){return this.lengthSquared()}setFromAxisAngle(A,t){return this.setAxisAngle(A,t)}premultiply(A){return this.multiplyLeft(A)}multiply(A){return this.multiplyRight(A)}}var lb={EPSILON1:.1,EPSILON2:.01,EPSILON3:.001,EPSILON4:1e-4,EPSILON5:1e-5,EPSILON6:1e-6,EPSILON7:1e-7,EPSILON8:1e-8,EPSILON9:1e-9,EPSILON10:1e-10,EPSILON11:1e-11,EPSILON12:1e-12,EPSILON13:1e-13,EPSILON14:1e-14,EPSILON15:1e-15,EPSILON16:1e-16,EPSILON17:1e-17,EPSILON18:1e-18,EPSILON19:1e-19,EPSILON20:1e-20,PI_OVER_TWO:Math.PI/2,PI_OVER_FOUR:Math.PI/4,PI_OVER_SIX:Math.PI/6,TWO_PI:Math.PI*2},ID=`#if (defined(SHADER_TYPE_FRAGMENT) && defined(LIGHTING_FRAGMENT)) || (defined(SHADER_TYPE_VERTEX) && defined(LIGHTING_VERTEX)) struct AmbientLight { vec3 color; @@ -392,7 +392,7 @@ float getPointLightAttenuation(PointLight pointLight, float distance) { } #endif -`;const R9={lightSources:{}};function jh(){let{color:e=[0,0,0],intensity:A=1}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return e.map(t=>t*A/255)}function x9(e){let{ambientLight:A,pointLights:t=[],directionalLights:i=[]}=e;const n={};return A?n["lighting_uAmbientLight.color"]=jh(A):n["lighting_uAmbientLight.color"]=[0,0,0],t.forEach((r,o)=>{n["lighting_uPointLight[".concat(o,"].color")]=jh(r),n["lighting_uPointLight[".concat(o,"].position")]=r.position,n["lighting_uPointLight[".concat(o,"].attenuation")]=r.attenuation||[1,0,0]}),n.lighting_uPointLightCount=t.length,i.forEach((r,o)=>{n["lighting_uDirectionalLight[".concat(o,"].color")]=jh(r),n["lighting_uDirectionalLight[".concat(o,"].direction")]=r.direction}),n.lighting_uDirectionalLightCount=i.length,n}function gb(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:R9;if("lightSources"in e){const{ambientLight:A,pointLights:t,directionalLights:i}=e.lightSources||{};return A||t&&t.length>0||i&&i.length>0?Object.assign({},x9({ambientLight:A,pointLights:t,directionalLights:i}),{lighting_uEnabled:!0}):{lighting_uEnabled:!1}}if("lights"in e){const A={pointLights:[],directionalLights:[]};for(const t of e.lights||[])switch(t.type){case"ambient":A.ambientLight=t;break;case"directional":A.directionalLights.push(t);break;case"point":A.pointLights.push(t);break}return gb({lightSources:A})}return{}}const F9={name:"lights",vs:gD,fs:gD,getUniforms:gb,defines:{MAX_LIGHTS:3}},N9=new Uint8Array([0,255,255,255]),L9={pickingSelectedColor:null,pickingHighlightColor:N9,pickingActive:!1,pickingAttribute:!1};function b9(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:L9;const A={};if(e.pickingSelectedColor!==void 0)if(!e.pickingSelectedColor)A.picking_uSelectedColorValid=0;else{const t=e.pickingSelectedColor.slice(0,3);A.picking_uSelectedColorValid=1,A.picking_uSelectedColor=t}if(e.pickingHighlightColor){const t=Array.from(e.pickingHighlightColor,i=>i/255);Number.isFinite(t[3])||(t[3]=1),A.picking_uHighlightColor=t}return e.pickingActive!==void 0&&(A.picking_uActive=Boolean(e.pickingActive),A.picking_uAttribute=Boolean(e.pickingAttribute)),A}const G9=`uniform bool picking_uActive; +`;const N9={lightSources:{}};function jh(){let{color:e=[0,0,0],intensity:A=1}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return e.map(t=>t*A/255)}function L9(e){let{ambientLight:A,pointLights:t=[],directionalLights:i=[]}=e;const n={};return A?n["lighting_uAmbientLight.color"]=jh(A):n["lighting_uAmbientLight.color"]=[0,0,0],t.forEach((r,o)=>{n["lighting_uPointLight[".concat(o,"].color")]=jh(r),n["lighting_uPointLight[".concat(o,"].position")]=r.position,n["lighting_uPointLight[".concat(o,"].attenuation")]=r.attenuation||[1,0,0]}),n.lighting_uPointLightCount=t.length,i.forEach((r,o)=>{n["lighting_uDirectionalLight[".concat(o,"].color")]=jh(r),n["lighting_uDirectionalLight[".concat(o,"].direction")]=r.direction}),n.lighting_uDirectionalLightCount=i.length,n}function cb(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:N9;if("lightSources"in e){const{ambientLight:A,pointLights:t,directionalLights:i}=e.lightSources||{};return A||t&&t.length>0||i&&i.length>0?Object.assign({},L9({ambientLight:A,pointLights:t,directionalLights:i}),{lighting_uEnabled:!0}):{lighting_uEnabled:!1}}if("lights"in e){const A={pointLights:[],directionalLights:[]};for(const t of e.lights||[])switch(t.type){case"ambient":A.ambientLight=t;break;case"directional":A.directionalLights.push(t);break;case"point":A.pointLights.push(t);break}return cb({lightSources:A})}return{}}const b9={name:"lights",vs:ID,fs:ID,getUniforms:cb,defines:{MAX_LIGHTS:3}},G9=new Uint8Array([0,255,255,255]),_9={pickingSelectedColor:null,pickingHighlightColor:G9,pickingActive:!1,pickingAttribute:!1};function M9(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:_9;const A={};if(e.pickingSelectedColor!==void 0)if(!e.pickingSelectedColor)A.picking_uSelectedColorValid=0;else{const t=e.pickingSelectedColor.slice(0,3);A.picking_uSelectedColorValid=1,A.picking_uSelectedColor=t}if(e.pickingHighlightColor){const t=Array.from(e.pickingHighlightColor,i=>i/255);Number.isFinite(t[3])||(t[3]=1),A.picking_uHighlightColor=t}return e.pickingActive!==void 0&&(A.picking_uActive=Boolean(e.pickingActive),A.picking_uAttribute=Boolean(e.pickingAttribute)),A}const k9=`uniform bool picking_uActive; uniform bool picking_uAttribute; uniform vec3 picking_uSelectedColor; uniform bool picking_uSelectedColorValid; @@ -438,7 +438,7 @@ void picking_setPickingAttribute(vec3 value) { picking_vRGBcolor_Avalid.rgb = value; } } -`,_9=`uniform bool picking_uActive; +`,T9=`uniform bool picking_uActive; uniform vec3 picking_uSelectedColor; uniform vec4 picking_uHighlightColor; @@ -474,7 +474,7 @@ vec4 picking_filterColor(vec4 color) { return picking_filterPickingColor(highightColor); } -`,M9={name:"picking",vs:G9,fs:_9,getUniforms:b9};var k9=` +`,U9={name:"picking",vs:k9,fs:T9,getUniforms:M9};var P9=` uniform float lighting_uAmbient; uniform float lighting_uDiffuse; uniform float lighting_uShininess; @@ -547,7 +547,7 @@ vec3 lighting_getSpecularLightColor(vec3 cameraPosition, vec3 position_worldspac } return lightColor; } -`;const T9={};function U9(e){const{ambient:A=.35,diffuse:t=.6,shininess:i=32,specularColor:n=[30,30,30]}=e;return{lighting_uAmbient:A,lighting_uDiffuse:t,lighting_uShininess:i,lighting_uSpecularColor:n.map(r=>r/255)}}function P9(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:T9;if(!("material"in e))return{};const{material:A}=e;return A?U9(A):{lighting_uEnabled:!1}}const H9={name:"gouraud-lighting",dependencies:[F9],vs:k9,defines:{LIGHTING_VERTEX:1},getUniforms:P9},q9=`attribute float transform_elementID; +`;const H9={};function q9(e){const{ambient:A=.35,diffuse:t=.6,shininess:i=32,specularColor:n=[30,30,30]}=e;return{lighting_uAmbient:A,lighting_uDiffuse:t,lighting_uShininess:i,lighting_uSpecularColor:n.map(r=>r/255)}}function J9(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:H9;if(!("material"in e))return{};const{material:A}=e;return A?q9(A):{lighting_uEnabled:!1}}const O9={name:"gouraud-lighting",dependencies:[b9],vs:P9,defines:{LIGHTING_VERTEX:1},getUniforms:J9},Y9=`attribute float transform_elementID; vec2 transform_getPixelSizeHalf(vec2 size) { return vec2(1.) / (2. * size); } @@ -573,15 +573,15 @@ vec4 transform_getInput(sampler2D texSampler, vec2 size) { vec4 textureColor = texture2D(texSampler, texCoord); return textureColor; } -`,J9={name:"transform",vs:q9,fs:null};class os{static getDefaultProgramManager(A){return A.luma=A.luma||{},A.luma.defaultProgramManager=A.luma.defaultProgramManager||new os(A),A.luma.defaultProgramManager}constructor(A){this.gl=A,this._programCache={},this._getUniforms={},this._registeredModules={},this._hookFunctions=[],this._defaultModules=[],this._hashes={},this._hashCounter=0,this.stateHash=0,this._useCounts={}}addDefaultModule(A){this._defaultModules.find(t=>t.name===A.name)||this._defaultModules.push(A),this.stateHash++}removeDefaultModule(A){const t=typeof A=="string"?A:A.name;this._defaultModules=this._defaultModules.filter(i=>i.name!==t),this.stateHash++}addShaderHook(A,t){t&&(A=Object.assign(t,{hook:A})),this._hookFunctions.push(A),this.stateHash++}get(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const{vs:t="",fs:i="",defines:n={},inject:r={},varyings:o=[],bufferMode:s=35981,transpileToGLSL100:a=!1}=A,g=this._getModuleList(A.modules),I=this._getHash(t),l=this._getHash(i),c=g.map(Q=>this._getHash(Q.name)).sort(),C=o.map(Q=>this._getHash(Q)),B=Object.keys(n).sort(),u=Object.keys(r).sort(),E=[],h=[];for(const Q of B)E.push(this._getHash(Q)),E.push(this._getHash(n[Q]));for(const Q of u)h.push(this._getHash(Q)),h.push(this._getHash(r[Q]));const f="".concat(I,"/").concat(l,"D").concat(E.join("/"),"M").concat(c.join("/"),"I").concat(h.join("/"),"V").concat(C.join("/"),"H").concat(this.stateHash,"B").concat(s).concat(a?"T":"");if(!this._programCache[f]){const Q=W5(this.gl,{vs:t,fs:i,modules:g,inject:r,defines:n,hookFunctions:this._hookFunctions,transpileToGLSL100:a});this._programCache[f]=new _L(this.gl,{hash:f,vs:Q.vs,fs:Q.fs,varyings:o,bufferMode:s}),this._getUniforms[f]=Q.getUniforms||(d=>{}),this._useCounts[f]=0}return this._useCounts[f]++,this._programCache[f]}getUniforms(A){return this._getUniforms[A.hash]||null}release(A){const t=A.hash;this._useCounts[t]--,this._useCounts[t]===0&&(this._programCache[t].delete(),delete this._programCache[t],delete this._getUniforms[t],delete this._useCounts[t])}_getHash(A){return this._hashes[A]===void 0&&(this._hashes[A]=this._hashCounter++),this._hashes[A]}_getModuleList(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[];const t=new Array(this._defaultModules.length+A.length),i={};let n=0;for(let r=0,o=this._defaultModules.length;r{},j9={};class di{constructor(A){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const{id:i=Jr("model")}=t;cA(YE(A)),this.id=i,this.gl=A,this.id=t.id||Jr("Model"),this.lastLogTime=0,this.animated=!1,this.initialize(t)}initialize(A){this.props={},this.programManager=A.programManager||os.getDefaultProgramManager(this.gl),this._programManagerState=-1,this._managedProgram=!1;const{program:t=null,vs:i,fs:n,modules:r,defines:o,inject:s,varyings:a,bufferMode:g,transpileToGLSL100:I}=A;this.programProps={program:t,vs:i,fs:n,modules:r,defines:o,inject:s,varyings:a,bufferMode:g,transpileToGLSL100:I},this.program=null,this.vertexArray=null,this._programDirty=!0,this.userData={},this.needsRedraw=!0,this._attributes={},this.attributes={},this.uniforms={},this.pickable=!0,this._checkProgram(),this.setUniforms(Object.assign({},this.getModuleUniforms(A.moduleSettings))),this.drawMode=A.drawMode!==void 0?A.drawMode:4,this.vertexCount=A.vertexCount||0,this.geometryBuffers={},this.isInstanced=A.isInstanced||A.instanced||A.instanceCount>0,this._setModelProps(A),this.geometry={},cA(this.drawMode!==void 0&&Number.isFinite(this.vertexCount),z9)}setProps(A){this._setModelProps(A)}delete(){for(const A in this._attributes)this._attributes[A]!==this.attributes[A]&&this._attributes[A].delete();this._managedProgram&&(this.programManager.release(this.program),this._managedProgram=!1),this.vertexArray.delete(),this._deleteGeometryBuffers()}getDrawMode(){return this.drawMode}getVertexCount(){return this.vertexCount}getInstanceCount(){return this.instanceCount}getAttributes(){return this.attributes}getProgram(){return this.program}setProgram(A){const{program:t,vs:i,fs:n,modules:r,defines:o,inject:s,varyings:a,bufferMode:g,transpileToGLSL100:I}=A;this.programProps={program:t,vs:i,fs:n,modules:r,defines:o,inject:s,varyings:a,bufferMode:g,transpileToGLSL100:I},this._programDirty=!0}getUniforms(){return this.uniforms}setDrawMode(A){return this.drawMode=A,this}setVertexCount(A){return cA(Number.isFinite(A)),this.vertexCount=A,this}setInstanceCount(A){return cA(Number.isFinite(A)),this.instanceCount=A,this}setGeometry(A){return this.drawMode=A.drawMode,this.vertexCount=A.getVertexCount(),this._deleteGeometryBuffers(),this.geometryBuffers=Y9(this.gl,A),this.vertexArray.setAttributes(this.geometryBuffers),this}setAttributes(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(fa(A))return this;const t={};for(const i in A){const n=A[i];t[i]=n.getValue?n.getValue():n}return this.vertexArray.setAttributes(t),this}setUniforms(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return Object.assign(this.uniforms,A),this}getModuleUniforms(A){this._checkProgram();const t=this.programManager.getUniforms(this.program);return t?t(A):{}}updateModuleSettings(A){const t=this.getModuleUniforms(A||{});return this.setUniforms(t)}clear(A){return Up(this.program.gl,A),this}draw(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this._checkProgram();const{moduleSettings:t=null,framebuffer:i,uniforms:n={},attributes:r={},transformFeedback:o=this.transformFeedback,parameters:s={},vertexArray:a=this.vertexArray}=A;this.setAttributes(r),this.updateModuleSettings(t),this.setUniforms(n);let g;DA.priority>=ds&&(g=this._logDrawCallStart(ds));const I=this.vertexArray.getDrawParams(),{isIndexed:l=I.isIndexed,indexType:c=I.indexType,indexOffset:C=I.indexOffset,vertexArrayInstanced:B=I.isInstanced}=this.props;B&&!this.isInstanced&&DA.warn("Found instanced attributes on non-instanced model",this.id)();const{isInstanced:u,instanceCount:E}=this,{onBeforeRender:h=ID,onAfterRender:f=ID}=this.props;h(),this.program.setUniforms(this.uniforms);const Q=this.program.draw(Object.assign(j9,A,{logPriority:g,uniforms:null,framebuffer:i,parameters:s,drawMode:this.getDrawMode(),vertexCount:this.getVertexCount(),vertexArray:a,transformFeedback:o,isIndexed:l,indexType:c,isInstanced:u,instanceCount:E,offset:l?C:0}));return f(),DA.priority>=ds&&this._logDrawCallEnd(g,a,i),Q}transform(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const{discard:t=!0,feedbackBuffers:i,unbindModels:n=[]}=A;let{parameters:r}=A;i&&this._setFeedbackBuffers(i),t&&(r=Object.assign({},r,{[35977]:t})),n.forEach(o=>o.vertexArray.unbindBuffers());try{this.draw(Object.assign({},A,{parameters:r}))}finally{n.forEach(o=>o.vertexArray.bindBuffers())}return this}render(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return DA.warn("Model.render() is deprecated. Use Model.setUniforms() and Model.draw()")(),this.setUniforms(A).draw()}_setModelProps(A){Object.assign(this.props,A),"uniforms"in A&&this.setUniforms(A.uniforms),"pickable"in A&&(this.pickable=A.pickable),"instanceCount"in A&&(this.instanceCount=A.instanceCount),"geometry"in A&&this.setGeometry(A.geometry),"attributes"in A&&this.setAttributes(A.attributes),"_feedbackBuffers"in A&&this._setFeedbackBuffers(A._feedbackBuffers)}_checkProgram(){if(!(this._programDirty||this.programManager.stateHash!==this._programManagerState))return;let{program:t}=this.programProps;if(t)this._managedProgram=!1;else{const{vs:i,fs:n,modules:r,inject:o,defines:s,varyings:a,bufferMode:g,transpileToGLSL100:I}=this.programProps;t=this.programManager.get({vs:i,fs:n,modules:r,inject:o,defines:s,varyings:a,bufferMode:g,transpileToGLSL100:I}),this.program&&this._managedProgram&&this.programManager.release(this.program),this._programManagerState=this.programManager.stateHash,this._managedProgram=!0}cA(t instanceof _L,"Model needs a program"),this._programDirty=!1,t!==this.program&&(this.program=t,this.vertexArray?this.vertexArray.setProps({program:this.program,attributes:this.vertexArray.attributes}):this.vertexArray=new g5(this.gl,{program:this.program}),this.setUniforms(Object.assign({},this.getModuleUniforms())))}_deleteGeometryBuffers(){for(const A in this.geometryBuffers){const t=this.geometryBuffers[A][0]||this.geometryBuffers[A];t instanceof we&&t.delete()}}_setAnimationProps(A){this.animated&&cA(A,"Model.draw(): animated uniforms but no animationProps")}_setFeedbackBuffers(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(fa(A))return this;const{gl:t}=this.program;return this.transformFeedback=this.transformFeedback||new ML(t,{program:this.program}),this.transformFeedback.setBuffers(A),this}_logDrawCallStart(A){const t=A>3?0:W9;if(!(Date.now()-this.lastLogTime>> DRAWING MODEL ".concat(this.id),{collapsed:DA.level<=2})(),A}_logDrawCallEnd(A,t,i,n){if(A===void 0)return;const r=c5({vertexArray:t,header:"".concat(this.id," attributes"),attributes:this._attributes}),{table:o,unusedTable:s,unusedCount:a}=YS({header:"".concat(this.id," uniforms"),program:this.program,uniforms:Object.assign({},this.program.uniforms,i)}),{table:g,count:I}=YS({header:"".concat(this.id," uniforms"),program:this.program,uniforms:Object.assign({},this.program.uniforms,i),undefinedOnly:!0});I>0&&DA.log("MISSING UNIFORMS",Object.keys(g))(),a>0&&DA.log("UNUSED UNIFORMS",Object.keys(s))();const l=B5(this.vertexArray.configuration);DA.table(A,r)(),DA.table(A,o)(),DA.table(A+1,l)(),n&&n.log({logLevel:ds,message:"Rendered to ".concat(n.id)}),DA.groupEnd(ds)()}}class X9{constructor(A){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.gl=A,this.currentIndex=0,this.feedbackMap={},this.varyings=null,this.bindings=[],this.resources={},this._initialize(t),Object.seal(this)}setupResources(A){for(const t of this.bindings)this._setupTransformFeedback(t,A)}updateModelProps(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const{varyings:t}=this;return t.length>0&&(A=Object.assign({},A,{varyings:t})),A}getDrawOptions(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const t=this.bindings[this.currentIndex],{sourceBuffers:i,transformFeedback:n}=t;return{attributes:Object.assign({},i,A.attributes),transformFeedback:n}}swap(){return this.feedbackMap?(this.currentIndex=this._getNextIndex(),!0):!1}update(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this._setupBuffers(A)}getBuffer(A){const{feedbackBuffers:t}=this.bindings[this.currentIndex],i=A?t[A]:null;return i?i instanceof we?i:i.buffer:null}getData(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const{varyingName:t}=A,i=this.getBuffer(t);return i?i.getData():null}delete(){for(const A in this.resources)this.resources[A].delete()}_initialize(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this._setupBuffers(A),this.varyings=A.varyings||Object.keys(this.bindings[this.currentIndex].feedbackBuffers),this.varyings.length>0&&cA(ie(this.gl))}_getFeedbackBuffers(A){const{sourceBuffers:t={}}=A,i={};if(this.bindings[this.currentIndex]&&Object.assign(i,this.bindings[this.currentIndex].feedbackBuffers),this.feedbackMap)for(const n in this.feedbackMap){const r=this.feedbackMap[n];n in t&&(i[r]=n)}Object.assign(i,A.feedbackBuffers);for(const n in i){const r=i[n];if(typeof r=="string"){const o=t[r],{byteLength:s,usage:a,accessor:g}=o;i[n]=this._createNewBuffer(n,{byteLength:s,usage:a,accessor:g})}}return i}_setupBuffers(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const{sourceBuffers:t=null}=A;Object.assign(this.feedbackMap,A.feedbackMap);const i=this._getFeedbackBuffers(A);this._updateBindings({sourceBuffers:t,feedbackBuffers:i})}_setupTransformFeedback(A,t){let{model:i}=t;const{program:n}=i;A.transformFeedback=new ML(this.gl,{program:n,buffers:A.feedbackBuffers})}_updateBindings(A){if(this.bindings[this.currentIndex]=this._updateBinding(this.bindings[this.currentIndex],A),this.feedbackMap){const{sourceBuffers:t,feedbackBuffers:i}=this._swapBuffers(this.bindings[this.currentIndex]),n=this._getNextIndex();this.bindings[n]=this._updateBinding(this.bindings[n],{sourceBuffers:t,feedbackBuffers:i})}}_updateBinding(A,t){return A?(Object.assign(A.sourceBuffers,t.sourceBuffers),Object.assign(A.feedbackBuffers,t.feedbackBuffers),A.transformFeedback&&A.transformFeedback.setBuffers(A.feedbackBuffers),A):{sourceBuffers:Object.assign({},t.sourceBuffers),feedbackBuffers:Object.assign({},t.feedbackBuffers)}}_swapBuffers(A){if(!this.feedbackMap)return null;const t=Object.assign({},A.sourceBuffers),i=Object.assign({},A.feedbackBuffers);for(const n in this.feedbackMap){const r=this.feedbackMap[n];t[n]=A.feedbackBuffers[r],i[r]=A.sourceBuffers[n],cA(i[r]instanceof we)}return{sourceBuffers:t,feedbackBuffers:i}}_createNewBuffer(A,t){const i=new we(this.gl,t);return this.resources[A]&&this.resources[A].delete(),this.resources[A]=i,i}_getNextIndex(){return(this.currentIndex+1)%2}}const Z9="transform_uSampler_",kB="transform_uSize_",lD="transform_position";function $9(e){let{vs:A,sourceTextureMap:t,targetTextureVarying:i,targetTexture:n}=e,o=Object.keys(t).length,s=null;const a={};let g=A,I={};if(o>0||i){const l=g.split(` -`),c=l.slice();if(l.forEach((C,B,u)=>{if(o>0){const E=nV(C,t);if(E){const{updatedLine:h,inject:f}=E;c[B]=h,I=od([I,f]),Object.assign(a,E.samplerTextureMap),o--}}i&&!s&&(s=iV(C,i))}),i){cA(n);const C="".concat(kB).concat(i),B="uniform vec2 ".concat(C,`; -`),u=" vec2 ".concat(lD," = transform_getPos(").concat(C,`); - gl_Position = vec4(`).concat(lD,`, 0, 1.); -`);I=od([I,{"vs:#decl":B,"vs:#main-start":u}])}g=c.join(` -`)}return{vs:g,targetTextureType:s,inject:I,samplerTextureMap:a}}function AV(e){let{sourceTextureMap:A,targetTextureVarying:t,targetTexture:i}=e;const n={};let r,o;t&&({width:r,height:o}=i,n["".concat(kB).concat(t)]=[r,o]);for(const s in A)({width:r,height:o}=A[s]),n["".concat(kB).concat(s)]=[r,o];return n}function eV(e){return JL(e,["attribute","in"])}function tV(e){const A="".concat(Z9).concat(e),t="".concat(kB).concat(e),i=" uniform sampler2D ".concat(A,`; - uniform vec2 `).concat(t,";");return{samplerName:A,sizeName:t,uniformDeclerations:i}}function iV(e,A){const t=JL(e,["varying","out"]);return t&&t.name===A?t.type:null}function nV(e,A){const t={},i=eV(e);if(!i)return null;const{type:n,name:r}=i;if(r&&A[r]){const o="// ".concat(e," => Replaced by Transform with a sampler"),{samplerName:s,sizeName:a,uniformDeclerations:g}=tV(r),I=i6(n),l=" ".concat(n," ").concat(r," = transform_getInput(").concat(s,", ").concat(a,").").concat(I,`; -`);return t[s]=r,{updatedLine:o,inject:{"vs:#decl":g,"vs:#main-start":l},samplerTextureMap:t}}return null}const rV={[10241]:9728,[10240]:9728,[10242]:33071,[10243]:33071},oV="transform_output";class sV{constructor(A){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.gl=A,this.id=this.currentIndex=0,this._swapTexture=null,this.targetTextureVarying=null,this.targetTextureType=null,this.samplerTextureMap=null,this.bindings=[],this.resources={},this._initialize(t),Object.seal(this)}updateModelProps(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const t=this._processVertexShader(A);return Object.assign({},A,t)}getDrawOptions(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const{sourceBuffers:t,sourceTextures:i,framebuffer:n,targetTexture:r}=this.bindings[this.currentIndex],o=Object.assign({},t,A.attributes),s=Object.assign({},A.uniforms),a=Object.assign({},A.parameters);let g=A.discard;if(this.hasSourceTextures||this.hasTargetTexture){o.transform_elementID=this.elementIDBuffer;for(const l in this.samplerTextureMap){const c=this.samplerTextureMap[l];s[l]=i[c]}this._setSourceTextureParameters();const I=AV({sourceTextureMap:i,targetTextureVarying:this.targetTextureVarying,targetTexture:r});Object.assign(s,I)}return this.hasTargetTexture&&(g=!1,a.viewport=[0,0,n.width,n.height]),{attributes:o,framebuffer:n,uniforms:s,discard:g,parameters:a}}swap(){return this._swapTexture?(this.currentIndex=this._getNextIndex(),!0):!1}update(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this._setupTextures(A)}getTargetTexture(){const{targetTexture:A}=this.bindings[this.currentIndex];return A}getData(){let{packed:A=!1}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const{framebuffer:t}=this.bindings[this.currentIndex],i=VE(t);if(!A)return i;const n=i.constructor,r=n6(this.targetTextureType),o=new n(i.length*r/4);let s=0;for(let a=0;a0&&arguments[0]!==void 0?arguments[0]:{};const{_targetTextureVarying:t,_swapTexture:i}=A;this._swapTexture=i,this.targetTextureVarying=t,this.hasTargetTexture=t,this._setupTextures(A)}_createTargetTexture(A){const{sourceTextures:t,textureOrReference:i}=A;if(i instanceof Pt)return i;const n=t[i];return n?(this._targetRefTexName=i,this._createNewTexture(n)):null}_setupTextures(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const{sourceBuffers:t,_sourceTextures:i={},_targetTexture:n}=A,r=this._createTargetTexture({sourceTextures:i,textureOrReference:n});this.hasSourceTextures=this.hasSourceTextures||i&&Object.keys(i).length>0,this._updateBindings({sourceBuffers:t,sourceTextures:i,targetTexture:r}),"elementCount"in A&&this._updateElementIDBuffer(A.elementCount)}_updateElementIDBuffer(A){if(typeof A!="number"||this.elementCount>=A)return;const t=new Float32Array(A);t.forEach((i,n,r)=>{r[n]=n}),this.elementIDBuffer?this.elementIDBuffer.setData({data:t}):this.elementIDBuffer=new we(this.gl,{data:t,accessor:{size:1}}),this.elementCount=A}_updateBindings(A){if(this.bindings[this.currentIndex]=this._updateBinding(this.bindings[this.currentIndex],A),this._swapTexture){const{sourceTextures:t,targetTexture:i}=this._swapTextures(this.bindings[this.currentIndex]),n=this._getNextIndex();this.bindings[n]=this._updateBinding(this.bindings[n],{sourceTextures:t,targetTexture:i})}}_updateBinding(A,t){const{sourceBuffers:i,sourceTextures:n,targetTexture:r}=t;if(A||(A={sourceBuffers:{},sourceTextures:{},targetTexture:null}),Object.assign(A.sourceTextures,n),Object.assign(A.sourceBuffers,i),r){A.targetTexture=r;const{width:o,height:s}=r,{framebuffer:a}=A;a?(a.update({attachments:{[36064]:r},resizeAttachments:!1}),a.resize({width:o,height:s})):A.framebuffer=new $e(this.gl,{id:"transform-framebuffer",width:o,height:s,attachments:{[36064]:r}})}return A}_setSourceTextureParameters(){const A=this.currentIndex,{sourceTextures:t}=this.bindings[A];for(const i in t)t[i].setParameters(rV)}_swapTextures(A){if(!this._swapTexture)return null;const t=Object.assign({},A.sourceTextures);t[this._swapTexture]=A.targetTexture;const i=A.sourceTextures[this._swapTexture];return{sourceTextures:t,targetTexture:i}}_createNewTexture(A){const t=NL(A,{parameters:{[10241]:9728,[10240]:9728,[10242]:33071,[10243]:33071},pixelStore:{[37440]:!1}});return this.ownTexture&&this.ownTexture.delete(),this.ownTexture=t,t}_getNextIndex(){return(this.currentIndex+1)%2}_processVertexShader(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const{sourceTextures:t,targetTexture:i}=this.bindings[this.currentIndex],{vs:n,uniforms:r,targetTextureType:o,inject:s,samplerTextureMap:a}=$9({vs:A.vs,sourceTextureMap:t,targetTextureVarying:this.targetTextureVarying,targetTexture:i}),g=od([A.inject||{},s]);this.targetTextureType=o,this.samplerTextureMap=a;const I=A._fs||OL({version:bL(n),input:this.targetTextureVarying,inputType:o,output:oV}),l=this.hasSourceTextures||this.targetTextureVarying?[J9].concat(A.modules||[]):A.modules;return{vs:n,fs:I,modules:l,uniforms:r,inject:g}}}class zp{static isSupported(A){return ie(A)}constructor(A){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.gl=A,this.model=null,this.elementCount=0,this.bufferTransform=null,this.textureTransform=null,this.elementIDBuffer=null,this._initialize(t),Object.seal(this)}delete(){const{model:A,bufferTransform:t,textureTransform:i}=this;A&&A.delete(),t&&t.delete(),i&&i.delete()}run(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const{clearRenderTarget:t=!0}=A,i=this._updateDrawOptions(A);t&&i.framebuffer&&i.framebuffer.clear({color:!0}),this.model.transform(i)}swap(){let A=!1;const t=[this.bufferTransform,this.textureTransform].filter(Boolean);for(const i of t)A=A||i.swap();cA(A,"Nothing to swap")}getBuffer(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:null;return this.bufferTransform&&this.bufferTransform.getBuffer(A)}getData(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const t=[this.bufferTransform,this.textureTransform].filter(Boolean);for(const i of t){const n=i.getData(A);if(n)return n}return null}getFramebuffer(){return this.textureTransform&&this.textureTransform.getFramebuffer()}update(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};"elementCount"in A&&this.model.setVertexCount(A.elementCount);const t=[this.bufferTransform,this.textureTransform].filter(Boolean);for(const i of t)i.update(A)}_initialize(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const{gl:t}=this;this._buildResourceTransforms(t,A),A=this._updateModelProps(A),this.model=new di(t,Object.assign({},A,{fs:A.fs||OL({version:bL(A.vs)}),id:A.id||"transform-model",drawMode:A.drawMode||0,vertexCount:A.elementCount})),this.bufferTransform&&this.bufferTransform.setupResources({model:this.model})}_updateModelProps(A){let t=Object.assign({},A);const i=[this.bufferTransform,this.textureTransform].filter(Boolean);for(const n of i)t=n.updateModelProps(t);return t}_buildResourceTransforms(A,t){aV(t)&&(this.bufferTransform=new X9(A,t)),gV(t)&&(this.textureTransform=new sV(A,t)),cA(this.bufferTransform||this.textureTransform,"must provide source/feedback buffers or source/target textures")}_updateDrawOptions(A){let t=Object.assign({},A);const i=[this.bufferTransform,this.textureTransform].filter(Boolean);for(const n of i)t=Object.assign(t,n.getDrawOptions(t));return t}}function aV(e){return!!(!fa(e.feedbackBuffers)||!fa(e.feedbackMap)||e.varyings&&e.varyings.length>0)}function gV(e){return!!(!fa(e._sourceTextures)||e._targetTexture||e._targetTextureVarying)}const cD={POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6};class En{static get DRAW_MODE(){return cD}constructor(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const{id:t=Jr("geometry"),drawMode:i=cD.TRIANGLES,attributes:n={},indices:r=null,vertexCount:o=null}=A;this.id=t,this.drawMode=i|0,this.attributes={},this.userData={},this._setAttributes(n,r),this.vertexCount=o||this._calculateVertexCount(this.attributes,this.indices)}get mode(){return this.drawMode}getVertexCount(){return this.vertexCount}getAttributes(){return this.indices?{indices:this.indices,...this.attributes}:this.attributes}_print(A){return"Geometry ".concat(this.id," attribute ").concat(A)}_setAttributes(A,t){t&&(this.indices=ArrayBuffer.isView(t)?{value:t,size:1}:t);for(const i in A){let n=A[i];n=ArrayBuffer.isView(n)?{value:n}:n,cA(ArrayBuffer.isView(n.value),"".concat(this._print(i),": must be typed array or object with value as typed array")),(i==="POSITION"||i==="positions")&&!n.size&&(n.size=3),i==="indices"?(cA(!this.indices),this.indices=n):this.attributes[i]=n}return this.indices&&this.indices.isIndexed!==void 0&&(this.indices=Object.assign({},this.indices),delete this.indices.isIndexed),this}_calculateVertexCount(A,t){if(t)return t.value.length;let i=1/0;for(const n in A){const r=A[n],{value:o,size:s,constant:a}=r;!a&&o&&s>=1&&(i=Math.min(i,o.length/s))}return cA(Number.isFinite(i)),i}}let IV=1,lV=1;class Ib{constructor(){this.time=0,this.channels=new Map,this.animations=new Map,this.playing=!1,this.lastEngineTime=-1}addChannel(A){const{delay:t=0,duration:i=Number.POSITIVE_INFINITY,rate:n=1,repeat:r=1}=A,o=IV++,s={time:0,delay:t,duration:i,rate:n,repeat:r};return this._setChannelTime(s,this.time),this.channels.set(o,s),o}removeChannel(A){this.channels.delete(A);for(const[t,i]of this.animations)i.channel===A&&this.detachAnimation(t)}isFinished(A){const t=this.channels.get(A);return t===void 0?!1:this.time>=t.delay+t.duration*t.repeat}getTime(A){if(A===void 0)return this.time;const t=this.channels.get(A);return t===void 0?-1:t.time}setTime(A){this.time=Math.max(0,A);const t=this.channels.values();for(const n of t)this._setChannelTime(n,this.time);const i=this.animations.values();for(const n of i){const{animation:r,channel:o}=n;r.setTime(this.getTime(o))}}play(){this.playing=!0}pause(){this.playing=!1,this.lastEngineTime=-1}reset(){this.setTime(0)}attachAnimation(A,t){const i=lV++;return this.animations.set(i,{animation:A,channel:t}),A.setTime(this.getTime(t)),i}detachAnimation(A){this.animations.delete(A)}update(A){this.playing&&(this.lastEngineTime===-1&&(this.lastEngineTime=A),this.setTime(this.time+(A-this.lastEngineTime)),this.lastEngineTime=A)}_setChannelTime(A,t){const i=t-A.delay,n=A.duration*A.repeat;i>=n?A.time=A.duration*A.rate:(A.time=Math.max(0,i)%A.duration,A.time*=A.rate)}}const lb="#define SMOOTH_EDGE_RADIUS 0.5",cV=` -`.concat(lb,` +`,K9={name:"transform",vs:Y9,fs:null};class rs{static getDefaultProgramManager(A){return A.luma=A.luma||{},A.luma.defaultProgramManager=A.luma.defaultProgramManager||new rs(A),A.luma.defaultProgramManager}constructor(A){this.gl=A,this._programCache={},this._getUniforms={},this._registeredModules={},this._hookFunctions=[],this._defaultModules=[],this._hashes={},this._hashCounter=0,this.stateHash=0,this._useCounts={}}addDefaultModule(A){this._defaultModules.find(t=>t.name===A.name)||this._defaultModules.push(A),this.stateHash++}removeDefaultModule(A){const t=typeof A=="string"?A:A.name;this._defaultModules=this._defaultModules.filter(i=>i.name!==t),this.stateHash++}addShaderHook(A,t){t&&(A=Object.assign(t,{hook:A})),this._hookFunctions.push(A),this.stateHash++}get(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const{vs:t="",fs:i="",defines:n={},inject:r={},varyings:o=[],bufferMode:s=35981,transpileToGLSL100:a=!1}=A,g=this._getModuleList(A.modules),I=this._getHash(t),l=this._getHash(i),c=g.map(Q=>this._getHash(Q.name)).sort(),C=o.map(Q=>this._getHash(Q)),B=Object.keys(n).sort(),u=Object.keys(r).sort(),E=[],h=[];for(const Q of B)E.push(this._getHash(Q)),E.push(this._getHash(n[Q]));for(const Q of u)h.push(this._getHash(Q)),h.push(this._getHash(r[Q]));const f="".concat(I,"/").concat(l,"D").concat(E.join("/"),"M").concat(c.join("/"),"I").concat(h.join("/"),"V").concat(C.join("/"),"H").concat(this.stateHash,"B").concat(s).concat(a?"T":"");if(!this._programCache[f]){const Q=X5(this.gl,{vs:t,fs:i,modules:g,inject:r,defines:n,hookFunctions:this._hookFunctions,transpileToGLSL100:a});this._programCache[f]=new TL(this.gl,{hash:f,vs:Q.vs,fs:Q.fs,varyings:o,bufferMode:s}),this._getUniforms[f]=Q.getUniforms||(d=>{}),this._useCounts[f]=0}return this._useCounts[f]++,this._programCache[f]}getUniforms(A){return this._getUniforms[A.hash]||null}release(A){const t=A.hash;this._useCounts[t]--,this._useCounts[t]===0&&(this._programCache[t].delete(),delete this._programCache[t],delete this._getUniforms[t],delete this._useCounts[t])}_getHash(A){return this._hashes[A]===void 0&&(this._hashes[A]=this._hashCounter++),this._hashes[A]}_getModuleList(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[];const t=new Array(this._defaultModules.length+A.length),i={};let n=0;for(let r=0,o=this._defaultModules.length;r{},$9={};class di{constructor(A){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const{id:i=qr("model")}=t;cA(YE(A)),this.id=i,this.gl=A,this.id=t.id||qr("Model"),this.lastLogTime=0,this.animated=!1,this.initialize(t)}initialize(A){this.props={},this.programManager=A.programManager||rs.getDefaultProgramManager(this.gl),this._programManagerState=-1,this._managedProgram=!1;const{program:t=null,vs:i,fs:n,modules:r,defines:o,inject:s,varyings:a,bufferMode:g,transpileToGLSL100:I}=A;this.programProps={program:t,vs:i,fs:n,modules:r,defines:o,inject:s,varyings:a,bufferMode:g,transpileToGLSL100:I},this.program=null,this.vertexArray=null,this._programDirty=!0,this.userData={},this.needsRedraw=!0,this._attributes={},this.attributes={},this.uniforms={},this.pickable=!0,this._checkProgram(),this.setUniforms(Object.assign({},this.getModuleUniforms(A.moduleSettings))),this.drawMode=A.drawMode!==void 0?A.drawMode:4,this.vertexCount=A.vertexCount||0,this.geometryBuffers={},this.isInstanced=A.isInstanced||A.instanced||A.instanceCount>0,this._setModelProps(A),this.geometry={},cA(this.drawMode!==void 0&&Number.isFinite(this.vertexCount),Z9)}setProps(A){this._setModelProps(A)}delete(){for(const A in this._attributes)this._attributes[A]!==this.attributes[A]&&this._attributes[A].delete();this._managedProgram&&(this.programManager.release(this.program),this._managedProgram=!1),this.vertexArray.delete(),this._deleteGeometryBuffers()}getDrawMode(){return this.drawMode}getVertexCount(){return this.vertexCount}getInstanceCount(){return this.instanceCount}getAttributes(){return this.attributes}getProgram(){return this.program}setProgram(A){const{program:t,vs:i,fs:n,modules:r,defines:o,inject:s,varyings:a,bufferMode:g,transpileToGLSL100:I}=A;this.programProps={program:t,vs:i,fs:n,modules:r,defines:o,inject:s,varyings:a,bufferMode:g,transpileToGLSL100:I},this._programDirty=!0}getUniforms(){return this.uniforms}setDrawMode(A){return this.drawMode=A,this}setVertexCount(A){return cA(Number.isFinite(A)),this.vertexCount=A,this}setInstanceCount(A){return cA(Number.isFinite(A)),this.instanceCount=A,this}setGeometry(A){return this.drawMode=A.drawMode,this.vertexCount=A.getVertexCount(),this._deleteGeometryBuffers(),this.geometryBuffers=W9(this.gl,A),this.vertexArray.setAttributes(this.geometryBuffers),this}setAttributes(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(ha(A))return this;const t={};for(const i in A){const n=A[i];t[i]=n.getValue?n.getValue():n}return this.vertexArray.setAttributes(t),this}setUniforms(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return Object.assign(this.uniforms,A),this}getModuleUniforms(A){this._checkProgram();const t=this.programManager.getUniforms(this.program);return t?t(A):{}}updateModuleSettings(A){const t=this.getModuleUniforms(A||{});return this.setUniforms(t)}clear(A){return Pp(this.program.gl,A),this}draw(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this._checkProgram();const{moduleSettings:t=null,framebuffer:i,uniforms:n={},attributes:r={},transformFeedback:o=this.transformFeedback,parameters:s={},vertexArray:a=this.vertexArray}=A;this.setAttributes(r),this.updateModuleSettings(t),this.setUniforms(n);let g;DA.priority>=Qs&&(g=this._logDrawCallStart(Qs));const I=this.vertexArray.getDrawParams(),{isIndexed:l=I.isIndexed,indexType:c=I.indexType,indexOffset:C=I.indexOffset,vertexArrayInstanced:B=I.isInstanced}=this.props;B&&!this.isInstanced&&DA.warn("Found instanced attributes on non-instanced model",this.id)();const{isInstanced:u,instanceCount:E}=this,{onBeforeRender:h=lD,onAfterRender:f=lD}=this.props;h(),this.program.setUniforms(this.uniforms);const Q=this.program.draw(Object.assign($9,A,{logPriority:g,uniforms:null,framebuffer:i,parameters:s,drawMode:this.getDrawMode(),vertexCount:this.getVertexCount(),vertexArray:a,transformFeedback:o,isIndexed:l,indexType:c,isInstanced:u,instanceCount:E,offset:l?C:0}));return f(),DA.priority>=Qs&&this._logDrawCallEnd(g,a,i),Q}transform(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const{discard:t=!0,feedbackBuffers:i,unbindModels:n=[]}=A;let{parameters:r}=A;i&&this._setFeedbackBuffers(i),t&&(r=Object.assign({},r,{[35977]:t})),n.forEach(o=>o.vertexArray.unbindBuffers());try{this.draw(Object.assign({},A,{parameters:r}))}finally{n.forEach(o=>o.vertexArray.bindBuffers())}return this}render(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return DA.warn("Model.render() is deprecated. Use Model.setUniforms() and Model.draw()")(),this.setUniforms(A).draw()}_setModelProps(A){Object.assign(this.props,A),"uniforms"in A&&this.setUniforms(A.uniforms),"pickable"in A&&(this.pickable=A.pickable),"instanceCount"in A&&(this.instanceCount=A.instanceCount),"geometry"in A&&this.setGeometry(A.geometry),"attributes"in A&&this.setAttributes(A.attributes),"_feedbackBuffers"in A&&this._setFeedbackBuffers(A._feedbackBuffers)}_checkProgram(){if(!(this._programDirty||this.programManager.stateHash!==this._programManagerState))return;let{program:t}=this.programProps;if(t)this._managedProgram=!1;else{const{vs:i,fs:n,modules:r,inject:o,defines:s,varyings:a,bufferMode:g,transpileToGLSL100:I}=this.programProps;t=this.programManager.get({vs:i,fs:n,modules:r,inject:o,defines:s,varyings:a,bufferMode:g,transpileToGLSL100:I}),this.program&&this._managedProgram&&this.programManager.release(this.program),this._programManagerState=this.programManager.stateHash,this._managedProgram=!0}cA(t instanceof TL,"Model needs a program"),this._programDirty=!1,t!==this.program&&(this.program=t,this.vertexArray?this.vertexArray.setProps({program:this.program,attributes:this.vertexArray.attributes}):this.vertexArray=new c5(this.gl,{program:this.program}),this.setUniforms(Object.assign({},this.getModuleUniforms())))}_deleteGeometryBuffers(){for(const A in this.geometryBuffers){const t=this.geometryBuffers[A][0]||this.geometryBuffers[A];t instanceof we&&t.delete()}}_setAnimationProps(A){this.animated&&cA(A,"Model.draw(): animated uniforms but no animationProps")}_setFeedbackBuffers(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(ha(A))return this;const{gl:t}=this.program;return this.transformFeedback=this.transformFeedback||new UL(t,{program:this.program}),this.transformFeedback.setBuffers(A),this}_logDrawCallStart(A){const t=A>3?0:X9;if(!(Date.now()-this.lastLogTime>> DRAWING MODEL ".concat(this.id),{collapsed:DA.level<=2})(),A}_logDrawCallEnd(A,t,i,n){if(A===void 0)return;const r=E5({vertexArray:t,header:"".concat(this.id," attributes"),attributes:this._attributes}),{table:o,unusedTable:s,unusedCount:a}=KS({header:"".concat(this.id," uniforms"),program:this.program,uniforms:Object.assign({},this.program.uniforms,i)}),{table:g,count:I}=KS({header:"".concat(this.id," uniforms"),program:this.program,uniforms:Object.assign({},this.program.uniforms,i),undefinedOnly:!0});I>0&&DA.log("MISSING UNIFORMS",Object.keys(g))(),a>0&&DA.log("UNUSED UNIFORMS",Object.keys(s))();const l=h5(this.vertexArray.configuration);DA.table(A,r)(),DA.table(A,o)(),DA.table(A+1,l)(),n&&n.log({logLevel:Qs,message:"Rendered to ".concat(n.id)}),DA.groupEnd(Qs)()}}class AV{constructor(A){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.gl=A,this.currentIndex=0,this.feedbackMap={},this.varyings=null,this.bindings=[],this.resources={},this._initialize(t),Object.seal(this)}setupResources(A){for(const t of this.bindings)this._setupTransformFeedback(t,A)}updateModelProps(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const{varyings:t}=this;return t.length>0&&(A=Object.assign({},A,{varyings:t})),A}getDrawOptions(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const t=this.bindings[this.currentIndex],{sourceBuffers:i,transformFeedback:n}=t;return{attributes:Object.assign({},i,A.attributes),transformFeedback:n}}swap(){return this.feedbackMap?(this.currentIndex=this._getNextIndex(),!0):!1}update(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this._setupBuffers(A)}getBuffer(A){const{feedbackBuffers:t}=this.bindings[this.currentIndex],i=A?t[A]:null;return i?i instanceof we?i:i.buffer:null}getData(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const{varyingName:t}=A,i=this.getBuffer(t);return i?i.getData():null}delete(){for(const A in this.resources)this.resources[A].delete()}_initialize(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this._setupBuffers(A),this.varyings=A.varyings||Object.keys(this.bindings[this.currentIndex].feedbackBuffers),this.varyings.length>0&&cA(ie(this.gl))}_getFeedbackBuffers(A){const{sourceBuffers:t={}}=A,i={};if(this.bindings[this.currentIndex]&&Object.assign(i,this.bindings[this.currentIndex].feedbackBuffers),this.feedbackMap)for(const n in this.feedbackMap){const r=this.feedbackMap[n];n in t&&(i[r]=n)}Object.assign(i,A.feedbackBuffers);for(const n in i){const r=i[n];if(typeof r=="string"){const o=t[r],{byteLength:s,usage:a,accessor:g}=o;i[n]=this._createNewBuffer(n,{byteLength:s,usage:a,accessor:g})}}return i}_setupBuffers(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const{sourceBuffers:t=null}=A;Object.assign(this.feedbackMap,A.feedbackMap);const i=this._getFeedbackBuffers(A);this._updateBindings({sourceBuffers:t,feedbackBuffers:i})}_setupTransformFeedback(A,t){let{model:i}=t;const{program:n}=i;A.transformFeedback=new UL(this.gl,{program:n,buffers:A.feedbackBuffers})}_updateBindings(A){if(this.bindings[this.currentIndex]=this._updateBinding(this.bindings[this.currentIndex],A),this.feedbackMap){const{sourceBuffers:t,feedbackBuffers:i}=this._swapBuffers(this.bindings[this.currentIndex]),n=this._getNextIndex();this.bindings[n]=this._updateBinding(this.bindings[n],{sourceBuffers:t,feedbackBuffers:i})}}_updateBinding(A,t){return A?(Object.assign(A.sourceBuffers,t.sourceBuffers),Object.assign(A.feedbackBuffers,t.feedbackBuffers),A.transformFeedback&&A.transformFeedback.setBuffers(A.feedbackBuffers),A):{sourceBuffers:Object.assign({},t.sourceBuffers),feedbackBuffers:Object.assign({},t.feedbackBuffers)}}_swapBuffers(A){if(!this.feedbackMap)return null;const t=Object.assign({},A.sourceBuffers),i=Object.assign({},A.feedbackBuffers);for(const n in this.feedbackMap){const r=this.feedbackMap[n];t[n]=A.feedbackBuffers[r],i[r]=A.sourceBuffers[n],cA(i[r]instanceof we)}return{sourceBuffers:t,feedbackBuffers:i}}_createNewBuffer(A,t){const i=new we(this.gl,t);return this.resources[A]&&this.resources[A].delete(),this.resources[A]=i,i}_getNextIndex(){return(this.currentIndex+1)%2}}const eV="transform_uSampler_",kB="transform_uSize_",cD="transform_position";function tV(e){let{vs:A,sourceTextureMap:t,targetTextureVarying:i,targetTexture:n}=e,o=Object.keys(t).length,s=null;const a={};let g=A,I={};if(o>0||i){const l=g.split(` +`),c=l.slice();if(l.forEach((C,B,u)=>{if(o>0){const E=sV(C,t);if(E){const{updatedLine:h,inject:f}=E;c[B]=h,I=sd([I,f]),Object.assign(a,E.samplerTextureMap),o--}}i&&!s&&(s=oV(C,i))}),i){cA(n);const C="".concat(kB).concat(i),B="uniform vec2 ".concat(C,`; +`),u=" vec2 ".concat(cD," = transform_getPos(").concat(C,`); + gl_Position = vec4(`).concat(cD,`, 0, 1.); +`);I=sd([I,{"vs:#decl":B,"vs:#main-start":u}])}g=c.join(` +`)}return{vs:g,targetTextureType:s,inject:I,samplerTextureMap:a}}function iV(e){let{sourceTextureMap:A,targetTextureVarying:t,targetTexture:i}=e;const n={};let r,o;t&&({width:r,height:o}=i,n["".concat(kB).concat(t)]=[r,o]);for(const s in A)({width:r,height:o}=A[s]),n["".concat(kB).concat(s)]=[r,o];return n}function nV(e){return KL(e,["attribute","in"])}function rV(e){const A="".concat(eV).concat(e),t="".concat(kB).concat(e),i=" uniform sampler2D ".concat(A,`; + uniform vec2 `).concat(t,";");return{samplerName:A,sizeName:t,uniformDeclerations:i}}function oV(e,A){const t=KL(e,["varying","out"]);return t&&t.name===A?t.type:null}function sV(e,A){const t={},i=nV(e);if(!i)return null;const{type:n,name:r}=i;if(r&&A[r]){const o="// ".concat(e," => Replaced by Transform with a sampler"),{samplerName:s,sizeName:a,uniformDeclerations:g}=rV(r),I=o6(n),l=" ".concat(n," ").concat(r," = transform_getInput(").concat(s,", ").concat(a,").").concat(I,`; +`);return t[s]=r,{updatedLine:o,inject:{"vs:#decl":g,"vs:#main-start":l},samplerTextureMap:t}}return null}const aV={[10241]:9728,[10240]:9728,[10242]:33071,[10243]:33071},gV="transform_output";class IV{constructor(A){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.gl=A,this.id=this.currentIndex=0,this._swapTexture=null,this.targetTextureVarying=null,this.targetTextureType=null,this.samplerTextureMap=null,this.bindings=[],this.resources={},this._initialize(t),Object.seal(this)}updateModelProps(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const t=this._processVertexShader(A);return Object.assign({},A,t)}getDrawOptions(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const{sourceBuffers:t,sourceTextures:i,framebuffer:n,targetTexture:r}=this.bindings[this.currentIndex],o=Object.assign({},t,A.attributes),s=Object.assign({},A.uniforms),a=Object.assign({},A.parameters);let g=A.discard;if(this.hasSourceTextures||this.hasTargetTexture){o.transform_elementID=this.elementIDBuffer;for(const l in this.samplerTextureMap){const c=this.samplerTextureMap[l];s[l]=i[c]}this._setSourceTextureParameters();const I=iV({sourceTextureMap:i,targetTextureVarying:this.targetTextureVarying,targetTexture:r});Object.assign(s,I)}return this.hasTargetTexture&&(g=!1,a.viewport=[0,0,n.width,n.height]),{attributes:o,framebuffer:n,uniforms:s,discard:g,parameters:a}}swap(){return this._swapTexture?(this.currentIndex=this._getNextIndex(),!0):!1}update(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this._setupTextures(A)}getTargetTexture(){const{targetTexture:A}=this.bindings[this.currentIndex];return A}getData(){let{packed:A=!1}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const{framebuffer:t}=this.bindings[this.currentIndex],i=VE(t);if(!A)return i;const n=i.constructor,r=s6(this.targetTextureType),o=new n(i.length*r/4);let s=0;for(let a=0;a0&&arguments[0]!==void 0?arguments[0]:{};const{_targetTextureVarying:t,_swapTexture:i}=A;this._swapTexture=i,this.targetTextureVarying=t,this.hasTargetTexture=t,this._setupTextures(A)}_createTargetTexture(A){const{sourceTextures:t,textureOrReference:i}=A;if(i instanceof Pt)return i;const n=t[i];return n?(this._targetRefTexName=i,this._createNewTexture(n)):null}_setupTextures(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const{sourceBuffers:t,_sourceTextures:i={},_targetTexture:n}=A,r=this._createTargetTexture({sourceTextures:i,textureOrReference:n});this.hasSourceTextures=this.hasSourceTextures||i&&Object.keys(i).length>0,this._updateBindings({sourceBuffers:t,sourceTextures:i,targetTexture:r}),"elementCount"in A&&this._updateElementIDBuffer(A.elementCount)}_updateElementIDBuffer(A){if(typeof A!="number"||this.elementCount>=A)return;const t=new Float32Array(A);t.forEach((i,n,r)=>{r[n]=n}),this.elementIDBuffer?this.elementIDBuffer.setData({data:t}):this.elementIDBuffer=new we(this.gl,{data:t,accessor:{size:1}}),this.elementCount=A}_updateBindings(A){if(this.bindings[this.currentIndex]=this._updateBinding(this.bindings[this.currentIndex],A),this._swapTexture){const{sourceTextures:t,targetTexture:i}=this._swapTextures(this.bindings[this.currentIndex]),n=this._getNextIndex();this.bindings[n]=this._updateBinding(this.bindings[n],{sourceTextures:t,targetTexture:i})}}_updateBinding(A,t){const{sourceBuffers:i,sourceTextures:n,targetTexture:r}=t;if(A||(A={sourceBuffers:{},sourceTextures:{},targetTexture:null}),Object.assign(A.sourceTextures,n),Object.assign(A.sourceBuffers,i),r){A.targetTexture=r;const{width:o,height:s}=r,{framebuffer:a}=A;a?(a.update({attachments:{[36064]:r},resizeAttachments:!1}),a.resize({width:o,height:s})):A.framebuffer=new $e(this.gl,{id:"transform-framebuffer",width:o,height:s,attachments:{[36064]:r}})}return A}_setSourceTextureParameters(){const A=this.currentIndex,{sourceTextures:t}=this.bindings[A];for(const i in t)t[i].setParameters(aV)}_swapTextures(A){if(!this._swapTexture)return null;const t=Object.assign({},A.sourceTextures);t[this._swapTexture]=A.targetTexture;const i=A.sourceTextures[this._swapTexture];return{sourceTextures:t,targetTexture:i}}_createNewTexture(A){const t=GL(A,{parameters:{[10241]:9728,[10240]:9728,[10242]:33071,[10243]:33071},pixelStore:{[37440]:!1}});return this.ownTexture&&this.ownTexture.delete(),this.ownTexture=t,t}_getNextIndex(){return(this.currentIndex+1)%2}_processVertexShader(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const{sourceTextures:t,targetTexture:i}=this.bindings[this.currentIndex],{vs:n,uniforms:r,targetTextureType:o,inject:s,samplerTextureMap:a}=tV({vs:A.vs,sourceTextureMap:t,targetTextureVarying:this.targetTextureVarying,targetTexture:i}),g=sd([A.inject||{},s]);this.targetTextureType=o,this.samplerTextureMap=a;const I=A._fs||VL({version:ML(n),input:this.targetTextureVarying,inputType:o,output:gV}),l=this.hasSourceTextures||this.targetTextureVarying?[K9].concat(A.modules||[]):A.modules;return{vs:n,fs:I,modules:l,uniforms:r,inject:g}}}class jp{static isSupported(A){return ie(A)}constructor(A){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.gl=A,this.model=null,this.elementCount=0,this.bufferTransform=null,this.textureTransform=null,this.elementIDBuffer=null,this._initialize(t),Object.seal(this)}delete(){const{model:A,bufferTransform:t,textureTransform:i}=this;A&&A.delete(),t&&t.delete(),i&&i.delete()}run(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const{clearRenderTarget:t=!0}=A,i=this._updateDrawOptions(A);t&&i.framebuffer&&i.framebuffer.clear({color:!0}),this.model.transform(i)}swap(){let A=!1;const t=[this.bufferTransform,this.textureTransform].filter(Boolean);for(const i of t)A=A||i.swap();cA(A,"Nothing to swap")}getBuffer(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:null;return this.bufferTransform&&this.bufferTransform.getBuffer(A)}getData(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const t=[this.bufferTransform,this.textureTransform].filter(Boolean);for(const i of t){const n=i.getData(A);if(n)return n}return null}getFramebuffer(){return this.textureTransform&&this.textureTransform.getFramebuffer()}update(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};"elementCount"in A&&this.model.setVertexCount(A.elementCount);const t=[this.bufferTransform,this.textureTransform].filter(Boolean);for(const i of t)i.update(A)}_initialize(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const{gl:t}=this;this._buildResourceTransforms(t,A),A=this._updateModelProps(A),this.model=new di(t,Object.assign({},A,{fs:A.fs||VL({version:ML(A.vs)}),id:A.id||"transform-model",drawMode:A.drawMode||0,vertexCount:A.elementCount})),this.bufferTransform&&this.bufferTransform.setupResources({model:this.model})}_updateModelProps(A){let t=Object.assign({},A);const i=[this.bufferTransform,this.textureTransform].filter(Boolean);for(const n of i)t=n.updateModelProps(t);return t}_buildResourceTransforms(A,t){lV(t)&&(this.bufferTransform=new AV(A,t)),cV(t)&&(this.textureTransform=new IV(A,t)),cA(this.bufferTransform||this.textureTransform,"must provide source/feedback buffers or source/target textures")}_updateDrawOptions(A){let t=Object.assign({},A);const i=[this.bufferTransform,this.textureTransform].filter(Boolean);for(const n of i)t=Object.assign(t,n.getDrawOptions(t));return t}}function lV(e){return!!(!ha(e.feedbackBuffers)||!ha(e.feedbackMap)||e.varyings&&e.varyings.length>0)}function cV(e){return!!(!ha(e._sourceTextures)||e._targetTexture||e._targetTextureVarying)}const CD={POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6};class En{static get DRAW_MODE(){return CD}constructor(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const{id:t=qr("geometry"),drawMode:i=CD.TRIANGLES,attributes:n={},indices:r=null,vertexCount:o=null}=A;this.id=t,this.drawMode=i|0,this.attributes={},this.userData={},this._setAttributes(n,r),this.vertexCount=o||this._calculateVertexCount(this.attributes,this.indices)}get mode(){return this.drawMode}getVertexCount(){return this.vertexCount}getAttributes(){return this.indices?{indices:this.indices,...this.attributes}:this.attributes}_print(A){return"Geometry ".concat(this.id," attribute ").concat(A)}_setAttributes(A,t){t&&(this.indices=ArrayBuffer.isView(t)?{value:t,size:1}:t);for(const i in A){let n=A[i];n=ArrayBuffer.isView(n)?{value:n}:n,cA(ArrayBuffer.isView(n.value),"".concat(this._print(i),": must be typed array or object with value as typed array")),(i==="POSITION"||i==="positions")&&!n.size&&(n.size=3),i==="indices"?(cA(!this.indices),this.indices=n):this.attributes[i]=n}return this.indices&&this.indices.isIndexed!==void 0&&(this.indices=Object.assign({},this.indices),delete this.indices.isIndexed),this}_calculateVertexCount(A,t){if(t)return t.value.length;let i=1/0;for(const n in A){const r=A[n],{value:o,size:s,constant:a}=r;!a&&o&&s>=1&&(i=Math.min(i,o.length/s))}return cA(Number.isFinite(i)),i}}let CV=1,BV=1;class Cb{constructor(){this.time=0,this.channels=new Map,this.animations=new Map,this.playing=!1,this.lastEngineTime=-1}addChannel(A){const{delay:t=0,duration:i=Number.POSITIVE_INFINITY,rate:n=1,repeat:r=1}=A,o=CV++,s={time:0,delay:t,duration:i,rate:n,repeat:r};return this._setChannelTime(s,this.time),this.channels.set(o,s),o}removeChannel(A){this.channels.delete(A);for(const[t,i]of this.animations)i.channel===A&&this.detachAnimation(t)}isFinished(A){const t=this.channels.get(A);return t===void 0?!1:this.time>=t.delay+t.duration*t.repeat}getTime(A){if(A===void 0)return this.time;const t=this.channels.get(A);return t===void 0?-1:t.time}setTime(A){this.time=Math.max(0,A);const t=this.channels.values();for(const n of t)this._setChannelTime(n,this.time);const i=this.animations.values();for(const n of i){const{animation:r,channel:o}=n;r.setTime(this.getTime(o))}}play(){this.playing=!0}pause(){this.playing=!1,this.lastEngineTime=-1}reset(){this.setTime(0)}attachAnimation(A,t){const i=BV++;return this.animations.set(i,{animation:A,channel:t}),A.setTime(this.getTime(t)),i}detachAnimation(A){this.animations.delete(A)}update(A){this.playing&&(this.lastEngineTime===-1&&(this.lastEngineTime=A),this.setTime(this.time+(A-this.lastEngineTime)),this.lastEngineTime=A)}_setChannelTime(A,t){const i=t-A.delay,n=A.duration*A.repeat;i>=n?A.time=A.duration*A.rate:(A.time=Math.max(0,i)%A.duration,A.time*=A.rate)}}const Bb="#define SMOOTH_EDGE_RADIUS 0.5",EV=` +`.concat(Bb,` struct VertexGeometry { vec4 position; @@ -598,8 +598,8 @@ struct VertexGeometry { vec2(0.0), vec3(0.0) ); -`),CV=` -`.concat(lb,` +`),uV=` +`.concat(Bb,` struct FragmentGeometry { vec2 uv; @@ -608,9 +608,9 @@ struct FragmentGeometry { float smoothedge(float edge, float x) { return smoothstep(edge - SMOOTH_EDGE_RADIUS, edge + SMOOTH_EDGE_RADIUS, x); } -`);var BV={name:"geometry",vs:cV,fs:CV};const HA={DEFAULT:-1,LNGLAT:1,METER_OFFSETS:2,LNGLAT_OFFSETS:3,CARTESIAN:0};Object.defineProperty(HA,"IDENTITY",{get:()=>(Ae.deprecated("COORDINATE_SYSTEM.IDENTITY","COORDINATE_SYSTEM.CARTESIAN")(),0)});const Ni={WEB_MERCATOR:1,GLOBE:2,WEB_MERCATOR_AUTO_OFFSET:4,IDENTITY:0},Or={common:0,meters:1,pixels:2},CD={click:{handler:"onClick"},panstart:{handler:"onDragStart"},panmove:{handler:"onDrag"},panend:{handler:"onDragEnd"}},Tl={DRAW:"draw",MASK:"mask"},EV=Object.keys(HA).map(e=>"const int COORDINATE_SYSTEM_".concat(e," = ").concat(HA[e],";")).join(""),uV=Object.keys(Ni).map(e=>"const int PROJECTION_MODE_".concat(e," = ").concat(Ni[e],";")).join(""),hV=Object.keys(Or).map(e=>"const int UNIT_".concat(e.toUpperCase()," = ").concat(Or[e],";")).join("");var fV="".concat(EV,` -`).concat(uV,` -`).concat(hV,` +`);var hV={name:"geometry",vs:EV,fs:uV};const HA={DEFAULT:-1,LNGLAT:1,METER_OFFSETS:2,LNGLAT_OFFSETS:3,CARTESIAN:0};Object.defineProperty(HA,"IDENTITY",{get:()=>(Ae.deprecated("COORDINATE_SYSTEM.IDENTITY","COORDINATE_SYSTEM.CARTESIAN")(),0)});const Ni={WEB_MERCATOR:1,GLOBE:2,WEB_MERCATOR_AUTO_OFFSET:4,IDENTITY:0},Jr={common:0,meters:1,pixels:2},BD={click:{handler:"onClick"},panstart:{handler:"onDragStart"},panmove:{handler:"onDrag"},panend:{handler:"onDragEnd"}},Tl={DRAW:"draw",MASK:"mask"},fV=Object.keys(HA).map(e=>"const int COORDINATE_SYSTEM_".concat(e," = ").concat(HA[e],";")).join(""),QV=Object.keys(Ni).map(e=>"const int PROJECTION_MODE_".concat(e," = ").concat(Ni[e],";")).join(""),dV=Object.keys(Jr).map(e=>"const int UNIT_".concat(e.toUpperCase()," = ").concat(Jr[e],";")).join("");var pV="".concat(fV,` +`).concat(QV,` +`).concat(dV,` uniform int project_uCoordinateSystem; uniform int project_uProjectionMode; @@ -856,7 +856,7 @@ float project_pixel_size(float pixels) { vec2 project_pixel_size(vec2 pixels) { return pixels / project_uScale; } -`);function QV(e,A){if(e===A)return!0;if(Array.isArray(e)){const t=e.length;if(!A||A.length!==t)return!1;for(let i=0;i{for(const n in i)if(!QV(i[n],A[n])){t=e(i),A=i;break}return t}}const BD=[0,0,0,0],dV=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0],cb=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],pV=[0,0,0],Cb=[0,0,0],yV=Ul(vV);function Bb(e,A,t=Cb){t.length<3&&(t=[t[0],t[1],0]);let i=t,n,r=!0;switch(A===HA.LNGLAT_OFFSETS||A===HA.METER_OFFSETS?n=t:n=e.isGeospatial?[Math.fround(e.longitude),Math.fround(e.latitude),0]:null,e.projectionMode){case Ni.WEB_MERCATOR:(A===HA.LNGLAT||A===HA.CARTESIAN)&&(n=[0,0,0],r=!1);break;case Ni.WEB_MERCATOR_AUTO_OFFSET:A===HA.LNGLAT?i=n:A===HA.CARTESIAN&&(i=[Math.fround(e.center[0]),Math.fround(e.center[1]),0],n=e.unprojectPosition(i),i[0]-=t[0],i[1]-=t[1],i[2]-=t[2]);break;case Ni.IDENTITY:i=e.position.map(Math.fround),i[2]=i[2]||0;break;case Ni.GLOBE:r=!1,n=null;break;default:r=!1}return{geospatialOrigin:n,shaderCoordinateOrigin:i,offsetMode:r}}function mV(e,A,t){const{viewMatrixUncentered:i,projectionMatrix:n}=e;let{viewMatrix:r,viewProjectionMatrix:o}=e,s=BD,a=BD,g=e.cameraPosition;const{geospatialOrigin:I,shaderCoordinateOrigin:l,offsetMode:c}=Bb(e,A,t);return c&&(a=e.projectPosition(I||l),g=[g[0]-a[0],g[1]-a[1],g[2]-a[2]],a[3]=1,s=Ua([],a,o),r=i||r,o=Fo([],n,r),o=Fo([],o,dV)),{viewMatrix:r,viewProjectionMatrix:o,projectionCenter:s,originCommon:a,cameraPosCommon:g,shaderCoordinateOrigin:l,geospatialOrigin:I}}function wV({viewport:e,devicePixelRatio:A=1,modelMatrix:t=null,coordinateSystem:i=HA.DEFAULT,coordinateOrigin:n=Cb,autoWrapLongitude:r=!1}){i===HA.DEFAULT&&(i=e.isGeospatial?HA.LNGLAT:HA.CARTESIAN);const o=yV({viewport:e,devicePixelRatio:A,coordinateSystem:i,coordinateOrigin:n});return o.project_uWrapLongitude=r,o.project_uModelMatrix=t||cb,o}function vV({viewport:e,devicePixelRatio:A,coordinateSystem:t,coordinateOrigin:i}){const{projectionCenter:n,viewProjectionMatrix:r,originCommon:o,cameraPosCommon:s,shaderCoordinateOrigin:a,geospatialOrigin:g}=mV(e,t,i),I=e.getDistanceScales(),l=[e.width*A,e.height*A],c=Ua([],[0,0,-e.focalDistance,1],e.projectionMatrix)[3]||1,C={project_uCoordinateSystem:t,project_uProjectionMode:e.projectionMode,project_uCoordinateOrigin:a,project_uCommonOrigin:o.slice(0,3),project_uCenter:n,project_uPseudoMeters:Boolean(e._pseudoMeters),project_uViewportSize:l,project_uDevicePixelRatio:A,project_uFocalDistance:c,project_uCommonUnitsPerMeter:I.unitsPerMeter,project_uCommonUnitsPerWorldUnit:I.unitsPerMeter,project_uCommonUnitsPerWorldUnit2:pV,project_uScale:e.scale,project_uWrapLongitude:!1,project_uViewProjectionMatrix:r,project_uModelMatrix:cb,project_uCameraPosition:s};if(g){const B=e.getDistanceScales(g);switch(t){case HA.METER_OFFSETS:C.project_uCommonUnitsPerWorldUnit=B.unitsPerMeter,C.project_uCommonUnitsPerWorldUnit2=B.unitsPerMeter2;break;case HA.LNGLAT:case HA.LNGLAT_OFFSETS:e._pseudoMeters||(C.project_uCommonUnitsPerMeter=B.unitsPerMeter),C.project_uCommonUnitsPerWorldUnit=B.unitsPerDegree,C.project_uCommonUnitsPerWorldUnit2=B.unitsPerDegree2;break;case HA.CARTESIAN:C.project_uCommonUnitsPerWorldUnit=[1,1,B.unitsPerMeter[2]],C.project_uCommonUnitsPerWorldUnit2=[0,0,B.unitsPerMeter2[2]];break}}return C}const SV={};function DV(e=SV){return"viewport"in e?wV(e):{}}var jp={name:"project",dependencies:[s6,BV],vs:fV,getUniforms:DV};const RV=` +`);function yV(e,A){if(e===A)return!0;if(Array.isArray(e)){const t=e.length;if(!A||A.length!==t)return!1;for(let i=0;i{for(const n in i)if(!yV(i[n],A[n])){t=e(i),A=i;break}return t}}const ED=[0,0,0,0],mV=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0],Eb=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],wV=[0,0,0],ub=[0,0,0],vV=Ul(RV);function hb(e,A,t=ub){t.length<3&&(t=[t[0],t[1],0]);let i=t,n,r=!0;switch(A===HA.LNGLAT_OFFSETS||A===HA.METER_OFFSETS?n=t:n=e.isGeospatial?[Math.fround(e.longitude),Math.fround(e.latitude),0]:null,e.projectionMode){case Ni.WEB_MERCATOR:(A===HA.LNGLAT||A===HA.CARTESIAN)&&(n=[0,0,0],r=!1);break;case Ni.WEB_MERCATOR_AUTO_OFFSET:A===HA.LNGLAT?i=n:A===HA.CARTESIAN&&(i=[Math.fround(e.center[0]),Math.fround(e.center[1]),0],n=e.unprojectPosition(i),i[0]-=t[0],i[1]-=t[1],i[2]-=t[2]);break;case Ni.IDENTITY:i=e.position.map(Math.fround),i[2]=i[2]||0;break;case Ni.GLOBE:r=!1,n=null;break;default:r=!1}return{geospatialOrigin:n,shaderCoordinateOrigin:i,offsetMode:r}}function SV(e,A,t){const{viewMatrixUncentered:i,projectionMatrix:n}=e;let{viewMatrix:r,viewProjectionMatrix:o}=e,s=ED,a=ED,g=e.cameraPosition;const{geospatialOrigin:I,shaderCoordinateOrigin:l,offsetMode:c}=hb(e,A,t);return c&&(a=e.projectPosition(I||l),g=[g[0]-a[0],g[1]-a[1],g[2]-a[2]],a[3]=1,s=Ta([],a,o),r=i||r,o=xo([],n,r),o=xo([],o,mV)),{viewMatrix:r,viewProjectionMatrix:o,projectionCenter:s,originCommon:a,cameraPosCommon:g,shaderCoordinateOrigin:l,geospatialOrigin:I}}function DV({viewport:e,devicePixelRatio:A=1,modelMatrix:t=null,coordinateSystem:i=HA.DEFAULT,coordinateOrigin:n=ub,autoWrapLongitude:r=!1}){i===HA.DEFAULT&&(i=e.isGeospatial?HA.LNGLAT:HA.CARTESIAN);const o=vV({viewport:e,devicePixelRatio:A,coordinateSystem:i,coordinateOrigin:n});return o.project_uWrapLongitude=r,o.project_uModelMatrix=t||Eb,o}function RV({viewport:e,devicePixelRatio:A,coordinateSystem:t,coordinateOrigin:i}){const{projectionCenter:n,viewProjectionMatrix:r,originCommon:o,cameraPosCommon:s,shaderCoordinateOrigin:a,geospatialOrigin:g}=SV(e,t,i),I=e.getDistanceScales(),l=[e.width*A,e.height*A],c=Ta([],[0,0,-e.focalDistance,1],e.projectionMatrix)[3]||1,C={project_uCoordinateSystem:t,project_uProjectionMode:e.projectionMode,project_uCoordinateOrigin:a,project_uCommonOrigin:o.slice(0,3),project_uCenter:n,project_uPseudoMeters:Boolean(e._pseudoMeters),project_uViewportSize:l,project_uDevicePixelRatio:A,project_uFocalDistance:c,project_uCommonUnitsPerMeter:I.unitsPerMeter,project_uCommonUnitsPerWorldUnit:I.unitsPerMeter,project_uCommonUnitsPerWorldUnit2:wV,project_uScale:e.scale,project_uWrapLongitude:!1,project_uViewProjectionMatrix:r,project_uModelMatrix:Eb,project_uCameraPosition:s};if(g){const B=e.getDistanceScales(g);switch(t){case HA.METER_OFFSETS:C.project_uCommonUnitsPerWorldUnit=B.unitsPerMeter,C.project_uCommonUnitsPerWorldUnit2=B.unitsPerMeter2;break;case HA.LNGLAT:case HA.LNGLAT_OFFSETS:e._pseudoMeters||(C.project_uCommonUnitsPerMeter=B.unitsPerMeter),C.project_uCommonUnitsPerWorldUnit=B.unitsPerDegree,C.project_uCommonUnitsPerWorldUnit2=B.unitsPerDegree2;break;case HA.CARTESIAN:C.project_uCommonUnitsPerWorldUnit=[1,1,B.unitsPerMeter[2]],C.project_uCommonUnitsPerWorldUnit2=[0,0,B.unitsPerMeter2[2]];break}}return C}const xV={};function FV(e=xV){return"viewport"in e?DV(e):{}}var Xp={name:"project",dependencies:[I6,hV],vs:pV,getUniforms:FV};const NV=` vec4 project_position_to_clipspace( vec3 position, vec3 position64Low, vec3 offset, out vec4 commonPosition ) { @@ -877,7 +877,7 @@ vec4 project_position_to_clipspace( vec4 commonPosition; return project_position_to_clipspace(position, position64Low, offset, commonPosition); } -`;var to={name:"project32",dependencies:[jp],vs:RV};function xV(){return[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]}function ra(e,A){const t=Ua([],A,e);return Wp(t,t,1/t[3]),t}function ED(e,A){const t=e%A;return t<0?A+t:t}function cd(e,A,t){return et?t:e}function FV(e){return Math.log(e)*Math.LOG2E}const Xp=Math.log2||FV;function Hn(e,A){if(!e)throw new Error(A||"@math.gl/web-mercator: assertion failed.")}const Li=Math.PI,Eb=Li/4,Gi=Li/180,Cd=180/Li,XI=512,Bd=4003e4,Mc=85.051129,NV=1.5;function LV(e){return Xp(e)}function Yr(e){const[A,t]=e;Hn(Number.isFinite(A)),Hn(Number.isFinite(t)&&t>=-90&&t<=90,"invalid latitude");const i=A*Gi,n=t*Gi,r=XI*(i+Li)/(2*Li),o=XI*(Li+Math.log(Math.tan(Eb+n*.5)))/(2*Li);return[r,o]}function da(e){const[A,t]=e,i=A/XI*(2*Li)-Li,n=2*(Math.atan(Math.exp(t/XI*(2*Li)-Li))-Eb);return[i*Cd,n*Cd]}function bV(e){const{latitude:A}=e;Hn(Number.isFinite(A));const t=Math.cos(A*Gi);return LV(Bd*t)-9}function Ed(e){const{latitude:A,longitude:t,highPrecision:i=!1}=e;Hn(Number.isFinite(A)&&Number.isFinite(t));const n=XI,r=Math.cos(A*Gi),o=n/360,s=o/r,a=n/Bd/r,g={unitsPerMeter:[a,a,a],metersPerUnit:[1/a,1/a,1/a],unitsPerDegree:[o,s,a],degreesPerUnit:[1/o,1/s,1/a]};if(i){const I=Gi*Math.tan(A*Gi)/r,l=o*I/2,c=n/Bd*I,C=c/s*a;g.unitsPerDegree2=[0,l,c],g.unitsPerMeter2=[C,0,C]}return g}function ub(e,A){const[t,i,n]=e,[r,o,s]=A,{unitsPerMeter:a,unitsPerMeter2:g}=Ed({longitude:t,latitude:i,highPrecision:!0}),I=Yr(e);I[0]+=r*(a[0]+g[0]*o),I[1]+=o*(a[1]+g[1]*o);const l=da(I),c=(n||0)+(s||0);return Number.isFinite(n)||Number.isFinite(s)?[l[0],l[1],c]:l}function GV(e){const{height:A,pitch:t,bearing:i,altitude:n,scale:r,center:o}=e,s=xV();MB(s,s,[0,0,-n]),ib(s,s,-t*Gi),nb(s,s,i*Gi);const a=r/A;return Vp(s,s,[a,a,a]),o&&MB(s,s,m6([],o)),s}function _V(e){const{width:A,height:t,altitude:i,pitch:n=0,offset:r,center:o,scale:s,nearZMultiplier:a=1,farZMultiplier:g=1}=e;let{fovy:I=TB(NV)}=e;i!==void 0&&(I=TB(i));const l=I*Gi,c=n*Gi,C=Zp(I);let B=C;o&&(B+=o[2]*s/Math.cos(c)/t);const u=l*(.5+(r?r[1]:0)/t),E=Math.sin(u)*B/Math.sin(cd(Math.PI/2-c-u,.01,Math.PI-.01)),h=Math.sin(c)*E+B,f=B*10,Q=Math.min(h*g,f);return{fov:l,aspect:A/t,focalDistance:C,near:a,far:Q}}function TB(e){return 2*Math.atan(.5/e)*Cd}function Zp(e){return .5/Math.tan(.5*e*Gi)}function hb(e,A){const[t,i,n=0]=e;return Hn(Number.isFinite(t)&&Number.isFinite(i)&&Number.isFinite(n)),ra(A,[t,i,n,1])}function Pl(e,A,t=0){const[i,n,r]=e;if(Hn(Number.isFinite(i)&&Number.isFinite(n),"invalid pixel coordinate"),Number.isFinite(r))return ra(A,[i,n,r,1]);const o=ra(A,[i,n,0,1]),s=ra(A,[i,n,1,1]),a=o[2],g=s[2],I=a===g?0:((t||0)-a)/(g-a);return VL([],o,s,I)}function fb(e){const{width:A,height:t,bounds:i,minExtent:n=0,maxZoom:r=24,offset:o=[0,0]}=e,[[s,a],[g,I]]=i,l=MV(e.padding),c=Yr([s,cd(I,-Mc,Mc)]),C=Yr([g,cd(a,-Mc,Mc)]),B=[Math.max(Math.abs(C[0]-c[0]),n),Math.max(Math.abs(C[1]-c[1]),n)],u=[A-l.left-l.right-Math.abs(o[0])*2,t-l.top-l.bottom-Math.abs(o[1])*2];Hn(u[0]>0&&u[1]>0);const E=u[0]/B[0],h=u[1]/B[1],f=(l.right-l.left)/2/E,Q=(l.top-l.bottom)/2/h,d=[(C[0]+c[0])/2+f,(C[1]+c[1])/2+Q],w=da(d),m=Math.min(r,Xp(Math.abs(Math.min(E,h))));return Hn(Number.isFinite(m)),{longitude:w[0],latitude:w[1],zoom:m}}function MV(e=0){return typeof e=="number"?{top:e,bottom:e,left:e,right:e}:(Hn(Number.isFinite(e.top)&&Number.isFinite(e.bottom)&&Number.isFinite(e.left)&&Number.isFinite(e.right)),e)}const uD=Math.PI/180;function kV(e,A=0){const{width:t,height:i,unproject:n}=e,r={targetZ:A},o=n([0,i],r),s=n([t,i],r);let a,g;const I=e.fovy?.5*e.fovy*uD:Math.atan(.5/e.altitude),l=(90-e.pitch)*uD;return I>l-.01?(a=hD(e,0,A),g=hD(e,t,A)):(a=n([0,0],r),g=n([t,0],r)),[o,s,g,a]}function hD(e,A,t){const{pixelUnprojectionMatrix:i}=e,n=ra(i,[A,0,1,1]),r=ra(i,[A,e.height,1,1]),s=(t*e.distanceScales.unitsPerMeter[2]-n[2])/(r[2]-n[2]),a=VL([],n,r,s),g=da(a);return g.push(t),g}const fD=512;function TV(e){const{width:A,height:t,pitch:i=0}=e;let{longitude:n,latitude:r,zoom:o,bearing:s=0}=e;(n<-180||n>180)&&(n=ED(n+180,360)-180),(s<-180||s>180)&&(s=ED(s+180,360)-180);const a=Xp(t/fD);if(o<=a)o=a,r=0;else{const g=t/2/Math.pow(2,o),I=da([0,g])[1];if(rl&&(r=l)}}return{width:A,height:t,longitude:n,latitude:r,zoom:o,pitch:i,bearing:s}}const UV=` +`;var eo={name:"project32",dependencies:[Xp],vs:NV};function LV(){return[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]}function na(e,A){const t=Ta([],A,e);return zp(t,t,1/t[3]),t}function uD(e,A){const t=e%A;return t<0?A+t:t}function Cd(e,A,t){return et?t:e}function bV(e){return Math.log(e)*Math.LOG2E}const Zp=Math.log2||bV;function Hn(e,A){if(!e)throw new Error(A||"@math.gl/web-mercator: assertion failed.")}const Li=Math.PI,fb=Li/4,Gi=Li/180,Bd=180/Li,jI=512,Ed=4003e4,Mc=85.051129,GV=1.5;function _V(e){return Zp(e)}function Or(e){const[A,t]=e;Hn(Number.isFinite(A)),Hn(Number.isFinite(t)&&t>=-90&&t<=90,"invalid latitude");const i=A*Gi,n=t*Gi,r=jI*(i+Li)/(2*Li),o=jI*(Li+Math.log(Math.tan(fb+n*.5)))/(2*Li);return[r,o]}function Qa(e){const[A,t]=e,i=A/jI*(2*Li)-Li,n=2*(Math.atan(Math.exp(t/jI*(2*Li)-Li))-fb);return[i*Bd,n*Bd]}function MV(e){const{latitude:A}=e;Hn(Number.isFinite(A));const t=Math.cos(A*Gi);return _V(Ed*t)-9}function ud(e){const{latitude:A,longitude:t,highPrecision:i=!1}=e;Hn(Number.isFinite(A)&&Number.isFinite(t));const n=jI,r=Math.cos(A*Gi),o=n/360,s=o/r,a=n/Ed/r,g={unitsPerMeter:[a,a,a],metersPerUnit:[1/a,1/a,1/a],unitsPerDegree:[o,s,a],degreesPerUnit:[1/o,1/s,1/a]};if(i){const I=Gi*Math.tan(A*Gi)/r,l=o*I/2,c=n/Ed*I,C=c/s*a;g.unitsPerDegree2=[0,l,c],g.unitsPerMeter2=[C,0,C]}return g}function Qb(e,A){const[t,i,n]=e,[r,o,s]=A,{unitsPerMeter:a,unitsPerMeter2:g}=ud({longitude:t,latitude:i,highPrecision:!0}),I=Or(e);I[0]+=r*(a[0]+g[0]*o),I[1]+=o*(a[1]+g[1]*o);const l=Qa(I),c=(n||0)+(s||0);return Number.isFinite(n)||Number.isFinite(s)?[l[0],l[1],c]:l}function kV(e){const{height:A,pitch:t,bearing:i,altitude:n,scale:r,center:o}=e,s=LV();MB(s,s,[0,0,-n]),ob(s,s,-t*Gi),sb(s,s,i*Gi);const a=r/A;return Wp(s,s,[a,a,a]),o&&MB(s,s,S6([],o)),s}function TV(e){const{width:A,height:t,altitude:i,pitch:n=0,offset:r,center:o,scale:s,nearZMultiplier:a=1,farZMultiplier:g=1}=e;let{fovy:I=TB(GV)}=e;i!==void 0&&(I=TB(i));const l=I*Gi,c=n*Gi,C=$p(I);let B=C;o&&(B+=o[2]*s/Math.cos(c)/t);const u=l*(.5+(r?r[1]:0)/t),E=Math.sin(u)*B/Math.sin(Cd(Math.PI/2-c-u,.01,Math.PI-.01)),h=Math.sin(c)*E+B,f=B*10,Q=Math.min(h*g,f);return{fov:l,aspect:A/t,focalDistance:C,near:a,far:Q}}function TB(e){return 2*Math.atan(.5/e)*Bd}function $p(e){return .5/Math.tan(.5*e*Gi)}function db(e,A){const[t,i,n=0]=e;return Hn(Number.isFinite(t)&&Number.isFinite(i)&&Number.isFinite(n)),na(A,[t,i,n,1])}function Pl(e,A,t=0){const[i,n,r]=e;if(Hn(Number.isFinite(i)&&Number.isFinite(n),"invalid pixel coordinate"),Number.isFinite(r))return na(A,[i,n,r,1]);const o=na(A,[i,n,0,1]),s=na(A,[i,n,1,1]),a=o[2],g=s[2],I=a===g?0:((t||0)-a)/(g-a);return jL([],o,s,I)}function pb(e){const{width:A,height:t,bounds:i,minExtent:n=0,maxZoom:r=24,offset:o=[0,0]}=e,[[s,a],[g,I]]=i,l=UV(e.padding),c=Or([s,Cd(I,-Mc,Mc)]),C=Or([g,Cd(a,-Mc,Mc)]),B=[Math.max(Math.abs(C[0]-c[0]),n),Math.max(Math.abs(C[1]-c[1]),n)],u=[A-l.left-l.right-Math.abs(o[0])*2,t-l.top-l.bottom-Math.abs(o[1])*2];Hn(u[0]>0&&u[1]>0);const E=u[0]/B[0],h=u[1]/B[1],f=(l.right-l.left)/2/E,Q=(l.top-l.bottom)/2/h,d=[(C[0]+c[0])/2+f,(C[1]+c[1])/2+Q],w=Qa(d),m=Math.min(r,Zp(Math.abs(Math.min(E,h))));return Hn(Number.isFinite(m)),{longitude:w[0],latitude:w[1],zoom:m}}function UV(e=0){return typeof e=="number"?{top:e,bottom:e,left:e,right:e}:(Hn(Number.isFinite(e.top)&&Number.isFinite(e.bottom)&&Number.isFinite(e.left)&&Number.isFinite(e.right)),e)}const hD=Math.PI/180;function PV(e,A=0){const{width:t,height:i,unproject:n}=e,r={targetZ:A},o=n([0,i],r),s=n([t,i],r);let a,g;const I=e.fovy?.5*e.fovy*hD:Math.atan(.5/e.altitude),l=(90-e.pitch)*hD;return I>l-.01?(a=fD(e,0,A),g=fD(e,t,A)):(a=n([0,0],r),g=n([t,0],r)),[o,s,g,a]}function fD(e,A,t){const{pixelUnprojectionMatrix:i}=e,n=na(i,[A,0,1,1]),r=na(i,[A,e.height,1,1]),s=(t*e.distanceScales.unitsPerMeter[2]-n[2])/(r[2]-n[2]),a=jL([],n,r,s),g=Qa(a);return g.push(t),g}const QD=512;function HV(e){const{width:A,height:t,pitch:i=0}=e;let{longitude:n,latitude:r,zoom:o,bearing:s=0}=e;(n<-180||n>180)&&(n=uD(n+180,360)-180),(s<-180||s>180)&&(s=uD(s+180,360)-180);const a=Zp(t/QD);if(o<=a)o=a,r=0;else{const g=t/2/Math.pow(2,o),I=Qa([0,g])[1];if(rl&&(r=l)}}return{width:A,height:t,longitude:n,latitude:r,zoom:o,pitch:i,bearing:s}}const qV=` const int max_lights = 2; uniform mat4 shadow_uViewProjectionMatrices[max_lights]; uniform vec4 shadow_uProjectCenters[max_lights]; @@ -902,7 +902,7 @@ vec4 shadow_setVertexPosition(vec4 position_commonspace) { } return gl_Position; } -`,PV=` +`,JV=` const int max_lights = 2; uniform bool shadow_uDrawShadowMap; uniform bool shadow_uUseShadowMap; @@ -946,11 +946,11 @@ vec4 shadow_filterShadowColor(vec4 color) { } return color; } -`,HV=Ul(KV),qV=Ul(VV),JV=[0,0,0,1],OV=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0];function YV(e,A){const[t,i,n]=e,r=Pl([t,i,n],A);return Number.isFinite(n)?r:[r[0],r[1],0]}function KV({viewport:e,center:A}){return new fe(e.viewProjectionMatrix).invert().transform(A)}function VV({viewport:e,shadowMatrices:A}){const t=[],i=e.pixelUnprojectionMatrix,n=e.isGeospatial?void 0:1,r=[[0,0,n],[e.width,0,n],[0,e.height,n],[e.width,e.height,n],[0,0,-1],[e.width,0,-1],[0,e.height,-1],[e.width,e.height,-1]].map(o=>YV(o,i));for(const o of A){const s=o.clone().translate(new hA(e.center).negate()),a=r.map(I=>s.transform(I)),g=new fe().ortho({left:Math.min(...a.map(I=>I[0])),right:Math.max(...a.map(I=>I[0])),bottom:Math.min(...a.map(I=>I[1])),top:Math.max(...a.map(I=>I[1])),near:Math.min(...a.map(I=>-I[2])),far:Math.max(...a.map(I=>-I[2]))});t.push(g.multiplyRight(o))}return t}function WV(e,A){const{shadowEnabled:t=!0}=e;if(!t||!e.shadowMatrices||!e.shadowMatrices.length)return{shadow_uDrawShadowMap:!1,shadow_uUseShadowMap:!1};const i={shadow_uDrawShadowMap:Boolean(e.drawToShadowMap),shadow_uUseShadowMap:e.shadowMaps?e.shadowMaps.length>0:!1,shadow_uColor:e.shadowColor||JV,shadow_uLightId:e.shadowLightId||0,shadow_uLightCount:e.shadowMatrices.length},n=HV({viewport:e.viewport,center:A.project_uCenter}),r=[],o=qV({shadowMatrices:e.shadowMatrices,viewport:e.viewport}).slice();for(let s=0;s0?i["shadow_uShadowMap".concat(s)]=e.shadowMaps[s]:i["shadow_uShadowMap".concat(s)]=e.dummyShadowMap;return i}var Xh={name:"shadow",dependencies:[jp],vs:UV,fs:PV,inject:{"vs:DECKGL_FILTER_GL_POSITION":` +`,OV=Ul(zV),YV=Ul(jV),KV=[0,0,0,1],VV=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0];function WV(e,A){const[t,i,n]=e,r=Pl([t,i,n],A);return Number.isFinite(n)?r:[r[0],r[1],0]}function zV({viewport:e,center:A}){return new fe(e.viewProjectionMatrix).invert().transform(A)}function jV({viewport:e,shadowMatrices:A}){const t=[],i=e.pixelUnprojectionMatrix,n=e.isGeospatial?void 0:1,r=[[0,0,n],[e.width,0,n],[0,e.height,n],[e.width,e.height,n],[0,0,-1],[e.width,0,-1],[0,e.height,-1],[e.width,e.height,-1]].map(o=>WV(o,i));for(const o of A){const s=o.clone().translate(new hA(e.center).negate()),a=r.map(I=>s.transform(I)),g=new fe().ortho({left:Math.min(...a.map(I=>I[0])),right:Math.max(...a.map(I=>I[0])),bottom:Math.min(...a.map(I=>I[1])),top:Math.max(...a.map(I=>I[1])),near:Math.min(...a.map(I=>-I[2])),far:Math.max(...a.map(I=>-I[2]))});t.push(g.multiplyRight(o))}return t}function XV(e,A){const{shadowEnabled:t=!0}=e;if(!t||!e.shadowMatrices||!e.shadowMatrices.length)return{shadow_uDrawShadowMap:!1,shadow_uUseShadowMap:!1};const i={shadow_uDrawShadowMap:Boolean(e.drawToShadowMap),shadow_uUseShadowMap:e.shadowMaps?e.shadowMaps.length>0:!1,shadow_uColor:e.shadowColor||KV,shadow_uLightId:e.shadowLightId||0,shadow_uLightCount:e.shadowMatrices.length},n=OV({viewport:e.viewport,center:A.project_uCenter}),r=[],o=YV({shadowMatrices:e.shadowMatrices,viewport:e.viewport}).slice();for(let s=0;s0?i["shadow_uShadowMap".concat(s)]=e.shadowMaps[s]:i["shadow_uShadowMap".concat(s)]=e.dummyShadowMap;return i}var Xh={name:"shadow",dependencies:[Xp],vs:qV,fs:JV,inject:{"vs:DECKGL_FILTER_GL_POSITION":` position = shadow_setVertexPosition(geometry.position); `,"fs:DECKGL_FILTER_COLOR":` color = shadow_filterShadowColor(color); - `},getUniforms:(e={},A={})=>"viewport"in e&&(e.drawToShadowMap||e.shadowMaps&&e.shadowMaps.length>0)?WV(e,A):{}},io={inject:{"vs:DECKGL_FILTER_GL_POSITION":` + `},getUniforms:(e={},A={})=>"viewport"in e&&(e.drawToShadowMap||e.shadowMaps&&e.shadowMaps.length>0)?XV(e,A):{}},to={inject:{"vs:DECKGL_FILTER_GL_POSITION":` // for picking depth values picking_setPickingAttribute(position.z / position.w); `,"vs:DECKGL_FILTER_COLOR":` @@ -961,13 +961,13 @@ vec4 shadow_filterShadowColor(vec4 color) { // use picking color if rendering to picking FBO. color = picking_filterPickingColor(color); - `}},...M9};const zV=[jp],jV=["vs:DECKGL_FILTER_SIZE(inout vec3 size, VertexGeometry geometry)","vs:DECKGL_FILTER_GL_POSITION(inout vec4 position, VertexGeometry geometry)","vs:DECKGL_FILTER_COLOR(inout vec4 color, VertexGeometry geometry)","fs:DECKGL_FILTER_COLOR(inout vec4 color, FragmentGeometry geometry)"];function XV(e){const A=os.getDefaultProgramManager(e);for(const t of zV)A.addDefaultModule(t);for(const t of jV)A.addShaderHook(t);return A}const ZV=[255,255,255],$V=1;let AW=0;class eW{constructor(A={}){y(this,"id",void 0),y(this,"color",void 0),y(this,"intensity",void 0),y(this,"type","ambient");const{color:t=ZV}=A,{intensity:i=$V}=A;this.id=A.id||"ambient-".concat(AW++),this.color=t,this.intensity=i}}const tW=[255,255,255],iW=1,nW=[0,0,-1];let rW=0;class QD{constructor(A={}){y(this,"id",void 0),y(this,"color",void 0),y(this,"intensity",void 0),y(this,"type","directional"),y(this,"direction",void 0),y(this,"shadow",void 0);const{color:t=tW}=A,{intensity:i=iW}=A,{direction:n=nW}=A,{_shadow:r=!1}=A;this.id=A.id||"directional-".concat(rW++),this.color=t,this.intensity=i,this.type="directional",this.direction=new hA(n).normalize().toArray(),this.shadow=r}getProjectedLight(A){return this}}class oW{constructor(A,t={id:"pass"}){y(this,"id",void 0),y(this,"gl",void 0),y(this,"props",void 0);const{id:i}=t;this.id=i,this.gl=A,this.props={...t}}setProps(A){Object.assign(this.props,A)}render(A){}cleanup(){}}class WE extends oW{constructor(...A){super(...A),y(this,"_lastRenderIndex",-1)}render(A){const t=this.gl;return Pn(t,{framebuffer:A.target}),this._drawLayers(A)}_drawLayers(A){const{target:t,moduleParameters:i,viewports:n,views:r,onViewportActive:o,clearStack:s=!0,clearCanvas:a=!0}=A;A.pass=A.pass||"unknown";const g=this.gl;a&&aW(g),s&&(this._lastRenderIndex=-1);const I=[];for(const l of n){const c=r&&r[l.id];o(l);const C=this._getDrawLayerParams(l,A),B=l.subViewports||[l];for(const u of B){const E=this._drawLayersInViewport(g,{target:t,moduleParameters:i,viewport:u,view:c,pass:A.pass,layers:A.layers},C);I.push(E)}}return I}_getDrawLayerParams(A,{layers:t,pass:i,layerFilter:n,cullRect:r,effects:o,moduleParameters:s}){const a=[],g=Qb(this._lastRenderIndex+1),I={layer:t[0],viewport:A,isPicking:i.startsWith("picking"),renderPass:i,cullRect:r},l={};for(let c=0;cUp(A,l))}const I={totalCount:t.length,visibleCount:0,compositeCount:0,pickableCount:0};Pn(A,{viewport:g});for(let l=0;l{const o=n.props._offset,s=n.id,a=n.parent&&n.parent.id;let g;if(a&&!(a in A)&&i(n.parent,!1),a in t){const I=t[a]=t[a]||Qb(A[a],A);g=I(n,r),t[s]=I}else Number.isFinite(o)?(g=o+(A[a]||0),t[s]=null):g=e;return r&&g>=e&&(e=g+1),A[s]=g,g};return i}function sW(e,{moduleParameters:A,target:t,viewport:i}){const n=t&&t.id!=="default-framebuffer",r=A&&A.devicePixelRatio||ha(e),o=n?t.height:e.drawingBufferHeight,s=i;return[s.x*r,o-(s.y+s.height)*r,s.width*r,s.height*r]}function aW(e){const A=e.drawingBufferWidth,t=e.drawingBufferHeight;Pn(e,{viewport:[0,0,A,t]}),e.clear(16640)}class gW extends WE{constructor(A,t){super(A,t),y(this,"shadowMap",void 0),y(this,"depthBuffer",void 0),y(this,"fbo",void 0),this.shadowMap=new Pt(A,{width:1,height:1,parameters:{[10241]:9729,[10240]:9729,[10242]:33071,[10243]:33071}}),this.depthBuffer=new Hs(A,{format:33189,width:1,height:1}),this.fbo=new $e(A,{id:"shadowmap",width:1,height:1,attachments:{[36064]:this.shadowMap,[36096]:this.depthBuffer}})}render(A){const t=this.fbo;ui(this.gl,{depthRange:[0,1],depthTest:!0,blend:!1,clearColor:[1,1,1,1]},()=>{const i=A.viewports[0],n=ha(this.gl),r=i.width*n,o=i.height*n;(r!==t.width||o!==t.height)&&t.resize({width:r,height:o}),super.render({...A,target:t,pass:"shadow"})})}shouldDrawLayer(A){return A.props.shadowEnabled!==!1}getModuleParameters(){return{drawToShadowMap:!0}}delete(){this.fbo&&(this.fbo.delete(),this.fbo=null),this.shadowMap&&(this.shadowMap.delete(),this.shadowMap=null),this.depthBuffer&&(this.depthBuffer.delete(),this.depthBuffer=null)}}const IW={color:[255,255,255],intensity:1},dD=[{color:[255,255,255],intensity:1,direction:[-1,3,-1]},{color:[255,255,255],intensity:.9,direction:[1,-8,-2.5]}],lW=[0,0,0,200/255];class db{constructor(A={}){y(this,"id","lighting-effect"),y(this,"props",null),y(this,"shadowColor",lW),y(this,"shadow",void 0),y(this,"ambientLight",null),y(this,"directionalLights",[]),y(this,"pointLights",[]),y(this,"shadowPasses",[]),y(this,"shadowMaps",[]),y(this,"dummyShadowMap",null),y(this,"programManager",void 0),y(this,"shadowMatrices",void 0);for(const t in A){const i=A[t];switch(i.type){case"ambient":this.ambientLight=i;break;case"directional":this.directionalLights.push(i);break;case"point":this.pointLights.push(i);break}}this._applyDefaultLights(),this.shadow=this.directionalLights.some(t=>t.shadow)}preRender(A,{layers:t,layerFilter:i,viewports:n,onViewportActive:r,views:o}){if(!!this.shadow){this.shadowMatrices=this._calculateMatrices(),this.shadowPasses.length===0&&this._createShadowPasses(A),this.programManager||(this.programManager=os.getDefaultProgramManager(A),Xh&&this.programManager.addDefaultModule(Xh)),this.dummyShadowMap||(this.dummyShadowMap=new Pt(A,{width:1,height:1}));for(let s=0;si.getProjectedLight({layer:A})),pointLights:this.pointLights.map(i=>i.getProjectedLight({layer:A}))},t}cleanup(){for(const A of this.shadowPasses)A.delete();this.shadowPasses.length=0,this.shadowMaps.length=0,this.dummyShadowMap&&(this.dummyShadowMap.delete(),this.dummyShadowMap=null),this.shadow&&this.programManager&&(this.programManager.removeDefaultModule(Xh),this.programManager=null)}_calculateMatrices(){const A=[];for(const t of this.directionalLights){const i=new fe().lookAt({eye:new hA(t.direction).negate()});A.push(i)}return A}_createShadowPasses(A){for(let t=0;tn&&(r=n);const o=this._pool,s=A.BYTES_PER_ELEMENT*r,a=o.findIndex(g=>g.byteLength>=s);if(a>=0){const g=new A(o.splice(a,1)[0],0,r);return i&&g.fill(0),g}return new A(r)}_release(A){if(!ArrayBuffer.isView(A))return;const t=this._pool,{buffer:i}=A,{byteLength:n}=i,r=t.findIndex(o=>o.byteLength>=n);r<0?t.push(i):(r>0||t.lengththis.opts.poolSize&&t.shift()}}var pa=new cW;function Yg(){return[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]}function CW(e,A){const t=e%A;return t<0?A+t:t}function BW(e){return[e[12],e[13],e[14]]}function EW(e){return{left:ps(e[3]+e[0],e[7]+e[4],e[11]+e[8],e[15]+e[12]),right:ps(e[3]-e[0],e[7]-e[4],e[11]-e[8],e[15]-e[12]),bottom:ps(e[3]+e[1],e[7]+e[5],e[11]+e[9],e[15]+e[13]),top:ps(e[3]-e[1],e[7]-e[5],e[11]-e[9],e[15]-e[13]),near:ps(e[3]+e[2],e[7]+e[6],e[11]+e[10],e[15]+e[14]),far:ps(e[3]-e[2],e[7]-e[6],e[11]-e[10],e[15]-e[14])}}const pD=new hA;function ps(e,A,t,i){pD.set(e,A,t);const n=pD.len();return{distance:i/n,normal:new hA(-e/n,-A/n,-t/n)}}function uW(e){return e-Math.fround(e)}let vg;function Zh(e,A){const{size:t=1,startIndex:i=0}=A,n=A.endIndex!==void 0?A.endIndex:e.length,r=(n-i)/t;vg=pa.allocate(vg,r,{type:Float32Array,size:t*2});let o=i,s=0;for(;o!0){return Array.isArray(e)?yb(e,A,[]):A(e)?[e]:[]}function yb(e,A,t){let i=-1;for(;++i0}delete(){}getData(){return this.isLoaded?this._error?Promise.reject(this._error):this._content:this._loader.then(()=>this.getData())}setData(A,t){if(A===this._data&&!t)return;this._data=A;const i=++this._loadCount;let n=A;typeof A=="string"&&(n=LB(A)),n instanceof Promise?(this.isLoaded=!1,this._loader=n.then(r=>{this._loadCount===i&&(this.isLoaded=!0,this._error=void 0,this._content=r)}).catch(r=>{this._loadCount===i&&(this.isLoaded=!0,this._error=r||!0)})):(this.isLoaded=!0,this._error=void 0,this._content=A);for(const r of this._subscribers)r.onChange(this.getData())}}class RW{constructor({gl:A,protocol:t}){y(this,"protocol",void 0),y(this,"_context",void 0),y(this,"_resources",void 0),y(this,"_consumers",void 0),y(this,"_pruneRequest",void 0),this.protocol=t||"resource://",this._context={gl:A,resourceManager:this},this._resources={},this._consumers={},this._pruneRequest=null}contains(A){return A.startsWith(this.protocol)?!0:A in this._resources}add({resourceId:A,data:t,forceUpdate:i=!1,persistent:n=!0}){let r=this._resources[A];r?r.setData(t,i):(r=new DW(A,t,this._context),this._resources[A]=r),r.persistent=n}remove(A){const t=this._resources[A];t&&(t.delete(),delete this._resources[A])}unsubscribe({consumerId:A}){const t=this._consumers[A];if(t){for(const i in t){const n=t[i],r=this._resources[n.resourceId];r&&r.unsubscribe(n)}delete this._consumers[A],this.prune()}}subscribe({resourceId:A,onChange:t,consumerId:i,requestId:n="default"}){const{_resources:r,protocol:o}=this;A.startsWith(o)&&(A=A.replace(o,""),r[A]||this.add({resourceId:A,data:null,persistent:!1}));const s=r[A];if(this._track(i,n,s,t),s)return s.getData()}prune(){this._pruneRequest||(this._pruneRequest=setTimeout(()=>this._prune(),0))}finalize(){for(const A in this._resources)this._resources[A].delete()}_track(A,t,i,n){const r=this._consumers,o=r[A]=r[A]||{},s=o[t]||{},a=s.resourceId&&this._resources[s.resourceId];a&&(a.unsubscribe(s),this.prune()),i&&(o[t]=s,s.onChange=n,s.resourceId=i.id,i.subscribe(s))}_prune(){this._pruneRequest=null;for(const A of Object.keys(this._resources)){const t=this._resources[A];!t.persistent&&!t.inUse()&&(t.delete(),delete this._resources[A])}}}const xW="layerManager.setLayers",FW="layerManager.activateViewport";class NW{constructor(A,{deck:t,stats:i,viewport:n,timeline:r}={}){y(this,"layers",void 0),y(this,"context",void 0),y(this,"resourceManager",void 0),y(this,"_lastRenderedLayers",[]),y(this,"_needsRedraw",!1),y(this,"_needsUpdate",!1),y(this,"_nextLayers",null),y(this,"_debug",!1),y(this,"activateViewport",o=>{Rt(FW,this,o),o&&(this.context.viewport=o)}),this.layers=[],this.resourceManager=new RW({gl:A,protocol:"deck://"}),this.context={mousePosition:null,userData:{},layerManager:this,gl:A,deck:t,programManager:A&&XV(A),stats:i||new JE({id:"deck.gl"}),viewport:n||new Wn({id:"DEFAULT-INITIAL-VIEWPORT"}),timeline:r||new Ib,resourceManager:this.resourceManager,onError:void 0},Object.seal(this)}finalize(){this.resourceManager.finalize();for(const A of this.layers)this._finalizeLayer(A)}needsRedraw(A={clearRedrawFlags:!1}){let t=this._needsRedraw;A.clearRedrawFlags&&(this._needsRedraw=!1);for(const i of this.layers){const n=i.getNeedsRedraw(A);t=t||n}return t}needsUpdate(){return this._nextLayers&&this._nextLayers!==this._lastRenderedLayers?"layers changed":this._needsUpdate}setNeedsRedraw(A){this._needsRedraw=this._needsRedraw||A}setNeedsUpdate(A){this._needsUpdate=this._needsUpdate||A}getLayers({layerIds:A}={}){return A?this.layers.filter(t=>A.find(i=>t.id.indexOf(i)===0)):this.layers}setProps(A){"debug"in A&&(this._debug=A.debug),"userData"in A&&(this.context.userData=A.userData),"layers"in A&&(this._nextLayers=A.layers),"onError"in A&&(this.context.onError=A.onError)}setLayers(A,t){Rt(xW,this,t,A),this._lastRenderedLayers=A;const i=zE(A,Boolean);for(const n of i)n.context=this.context;this._updateLayers(this.layers,i)}updateLayers(){const A=this.needsUpdate();A&&(this.setNeedsRedraw("updating layers: ".concat(A)),this.setLayers(this._nextLayers||this._lastRenderedLayers,A)),this._nextLayers=null}_handleError(A,t,i){i.raiseError(t,"".concat(A," of ").concat(i))}_updateLayers(A,t){const i={};for(const o of A)i[o.id]?Ae.warn("Multiple old layers with same id ".concat(o.id))():i[o.id]=o;const n=[];this._updateSublayersRecursively(t,i,n),this._finalizeOldLayers(i);let r=!1;for(const o of n)if(o.hasUniformTransition()){r="Uniform transition in ".concat(o);break}this._needsUpdate=r,this.layers=n}_updateSublayersRecursively(A,t,i){for(const n of A){n.context=this.context;const r=t[n.id];r===null&&Ae.warn("Multiple new layers with same id ".concat(n.id))(),t[n.id]=null;let o=null;try{this._debug&&r!==n&&n.validateProps(),r?(this._transferLayerState(r,n),this._updateLayer(n)):this._initializeLayer(n),i.push(n),o=n.isComposite?n.getSubLayers():null}catch(s){this._handleError("matching",s,n)}o&&this._updateSublayersRecursively(o,t,i)}}_finalizeOldLayers(A){for(const t in A){const i=A[t];i&&this._finalizeLayer(i)}}_initializeLayer(A){try{A._initialize(),A.lifecycle=Ns.INITIALIZED}catch(t){this._handleError("initialization",t,A)}}_transferLayerState(A,t){t._transferState(A),t.lifecycle=Ns.MATCHED,t!==A&&(A.lifecycle=Ns.AWAITING_GC)}_updateLayer(A){try{A._update()}catch(t){this._handleError("update",t,A)}}_finalizeLayer(A){this._needsRedraw=this._needsRedraw||"finalized ".concat(A),A.lifecycle=Ns.AWAITING_FINALIZATION;try{A._finalize(),A.lifecycle=Ns.FINALIZED}catch(t){this._handleError("finalization",t,A)}}}function ss(e,A){if(e===A)return!0;if(!e||!A)return!1;for(const t in e){const i=e[t],n=A[t];if(!(i===n||Array.isArray(i)&&Array.isArray(n)&&ss(i,n)))return!1}return!0}class LW{constructor(A){y(this,"width",void 0),y(this,"height",void 0),y(this,"views",void 0),y(this,"viewState",void 0),y(this,"controllers",void 0),y(this,"timeline",void 0),y(this,"_viewports",void 0),y(this,"_viewportMap",void 0),y(this,"_isUpdating",void 0),y(this,"_needsRedraw",void 0),y(this,"_needsUpdate",void 0),y(this,"_eventManager",void 0),y(this,"_eventCallbacks",void 0),this.views=[],this.width=100,this.height=100,this.viewState={},this.controllers={},this.timeline=A.timeline,this._viewports=[],this._viewportMap={},this._isUpdating=!1,this._needsRedraw="First render",this._needsUpdate="Initialize",this._eventManager=A.eventManager,this._eventCallbacks={onViewStateChange:A.onViewStateChange,onInteractionStateChange:A.onInteractionStateChange},Object.seal(this),this.setProps(A)}finalize(){for(const A in this.controllers){const t=this.controllers[A];t&&t.finalize()}this.controllers={}}needsRedraw(A={clearRedrawFlags:!1}){const t=this._needsRedraw;return A.clearRedrawFlags&&(this._needsRedraw=!1),t}setNeedsUpdate(A){this._needsUpdate=this._needsUpdate||A,this._needsRedraw=this._needsRedraw||A}updateViewStates(){for(const A in this.controllers){const t=this.controllers[A];t&&t.updateTransition()}}getViewports(A){return A?this._viewports.filter(t=>t.containsPixel(A)):this._viewports}getViews(){const A={};return this.views.forEach(t=>{A[t.id]=t}),A}getView(A){return this.views.find(t=>t.id===A)}getViewState(A){const t=typeof A=="string"?this.getView(A):A,i=t&&this.viewState[t.getViewStateId()]||this.viewState;return t?t.filterViewState(i):i}getViewport(A){return this._viewportMap[A]}unproject(A,t){const i=this.getViewports(),n={x:A[0],y:A[1]};for(let r=i.length-1;r>=0;--r){const o=i[r];if(o.containsPixel(n)){const s=A.slice();return s[0]-=o.x,s[1]-=o.y,o.unproject(s,t)}}return null}setProps(A){A.views&&this._setViews(A.views),A.viewState&&this._setViewState(A.viewState),("width"in A||"height"in A)&&this._setSize(A.width,A.height),this._isUpdating||this._update()}_update(){this._isUpdating=!0,this._needsUpdate&&(this._needsUpdate=!1,this._rebuildViewports()),this._needsUpdate&&(this._needsUpdate=!1,this._rebuildViewports()),this._isUpdating=!1}_setSize(A,t){(A!==this.width||t!==this.height)&&(this.width=A,this.height=t,this.setNeedsUpdate("Size changed"))}_setViews(A){A=zE(A,Boolean),this._diffViews(A,this.views)&&this.setNeedsUpdate("views changed"),this.views=A}_setViewState(A){A?(!ss(A,this.viewState)&&this.setNeedsUpdate("viewState changed"),this.viewState=A):Ae.warn("missing `viewState` or `initialViewState`")()}_onViewStateChange(A,t){this._eventCallbacks.onViewStateChange&&this._eventCallbacks.onViewStateChange({...t,viewId:A})}_createController(A,t){const i=t.type;return new i({timeline:this.timeline,eventManager:this._eventManager,onViewStateChange:this._onViewStateChange.bind(this,t.id),onStateChange:this._eventCallbacks.onInteractionStateChange,makeViewport:r=>{var o;return(o=this.getView(A.id))===null||o===void 0?void 0:o.makeViewport({viewState:r,width:this.width,height:this.height})}})}_updateController(A,t,i,n){const r=A.controller;if(r){const o={...t,...r,id:A.id,x:i.x,y:i.y,width:i.width,height:i.height};return n||(n=this._createController(A,o)),n&&n.setProps(o),n}return null}_rebuildViewports(){const{views:A}=this,t=this.controllers;this._viewports=[],this.controllers={};let i=!1;for(let n=A.length;n--;){const r=A[n],o=this.getViewState(r),s=r.makeViewport({viewState:o,width:this.width,height:this.height});let a=t[r.id];const g=Boolean(r.controller);g&&!a&&(i=!0),(i||!g)&&a&&(a.finalize(),a=null),this.controllers[r.id]=this._updateController(r,o,s,a),this._viewports.unshift(s)}for(const n in t){const r=t[n];r&&!this.controllers[n]&&r.finalize()}this._buildViewportMap()}_buildViewportMap(){this._viewportMap={},this._viewports.forEach(A=>{A.id&&(this._viewportMap[A.id]=this._viewportMap[A.id]||A)})}_diffViews(A,t){return A.length!==t.length?!0:A.some((i,n)=>!A[n].equals(t[n]))}}const bW=/([0-9]+\.?[0-9]*)(%|px)/;function or(e){switch(typeof e){case"number":return{position:e,relative:!1};case"string":const A=bW.exec(e);if(A&&A.length>=3){const t=A[2]==="%",i=parseFloat(A[1]);return{position:t?i/100:i,relative:t}}default:throw new Error("Could not parse position string ".concat(e))}}function sr(e,A){return e.relative?Math.round(e.position*A):e.position}function at(e,A){if(!e)throw new Error(A||"deck.gl: assertion failed.")}class Kr{constructor(A){y(this,"id",void 0),y(this,"viewportInstance",void 0),y(this,"_x",void 0),y(this,"_y",void 0),y(this,"_width",void 0),y(this,"_height",void 0),y(this,"_padding",void 0),y(this,"props",void 0);const{id:t,x:i=0,y:n=0,width:r="100%",height:o="100%",padding:s=null,viewportInstance:a}=A||{};at(!a||a instanceof Wn),this.viewportInstance=a,this.id=t||this.constructor.displayName||"view",this.props={...A,id:this.id},this._x=or(i),this._y=or(n),this._width=or(r),this._height=or(o),this._padding=s&&{left:or(s.left||0),right:or(s.right||0),top:or(s.top||0),bottom:or(s.bottom||0)},this.equals=this.equals.bind(this),Object.seal(this)}equals(A){return this===A?!0:this.viewportInstance?A.viewportInstance?this.viewportInstance.equals(A.viewportInstance):!1:this.ViewportType===A.ViewportType&&ss(this.props,A.props)}makeViewport({width:A,height:t,viewState:i}){if(this.viewportInstance)return this.viewportInstance;i=this.filterViewState(i);const n=this.getDimensions({width:A,height:t});return new this.ViewportType({...i,...this.props,...n})}getViewStateId(){const{viewState:A}=this.props;return typeof A=="string"?A:(A==null?void 0:A.id)||this.id}filterViewState(A){if(this.props.viewState&&typeof this.props.viewState=="object"){if(!this.props.viewState.id)return this.props.viewState;const t={...A};for(const i in this.props.viewState)i!=="id"&&(t[i]=this.props.viewState[i]);return t}return A}getDimensions({width:A,height:t}){const i={x:sr(this._x,A),y:sr(this._y,t),width:sr(this._width,A),height:sr(this._height,t)};return this._padding&&(i.padding={left:sr(this._padding.left,A),top:sr(this._padding.top,t),right:sr(this._padding.right,A),bottom:sr(this._padding.bottom,t)}),i}get controller(){const A=this.props.controller;return A?A===!0?{type:this.ControllerType}:typeof A=="function"?{type:A}:{type:this.ControllerType,...A}:null}}class Hl{constructor(A){y(this,"_inProgress",void 0),y(this,"_handle",void 0),y(this,"_timeline",void 0),y(this,"time",void 0),y(this,"settings",void 0),this._inProgress=!1,this._handle=null,this._timeline=A,this.time=0,this.settings={duration:0}}get inProgress(){return this._inProgress}start(A){var t,i;this.cancel(),this.settings=A,this._inProgress=!0,(t=(i=this.settings).onStart)===null||t===void 0||t.call(i,this)}end(){if(this._inProgress){var A,t;this._timeline.removeChannel(this._handle),this._handle=null,this._inProgress=!1,(A=(t=this.settings).onEnd)===null||A===void 0||A.call(t,this)}}cancel(){if(this._inProgress){var A,t;(A=(t=this.settings).onInterrupt)===null||A===void 0||A.call(t,this),this._timeline.removeChannel(this._handle),this._handle=null,this._inProgress=!1}}update(){var A,t;if(!this._inProgress)return!1;if(this._handle===null){const{_timeline:i,settings:n}=this;this._handle=i.addChannel({delay:i.getTime(),duration:n.duration})}return this.time=this._timeline.getTime(this._handle),this._onUpdate(),(A=(t=this.settings).onUpdate)===null||A===void 0||A.call(t,this),this._timeline.isFinished(this._handle)&&this.end(),!0}_onUpdate(){}}const wD=()=>{},ud={BREAK:1,SNAP_TO_END:2,IGNORE:3},GW=e=>e,_W=ud.BREAK;class MW{constructor(A){y(this,"getControllerState",void 0),y(this,"props",void 0),y(this,"propsInTransition",void 0),y(this,"transition",void 0),y(this,"onViewStateChange",void 0),y(this,"onStateChange",void 0),y(this,"_onTransitionUpdate",t=>{const{time:i,settings:{interpolator:n,startProps:r,endProps:o,duration:s,easing:a}}=t,g=a(i/s),I=n.interpolateProps(r,o,g);this.propsInTransition=this.getControllerState({...this.props,...I}).getViewportProps(),this.onViewStateChange({viewState:this.propsInTransition,oldViewState:this.props})}),this.getControllerState=A.getControllerState,this.propsInTransition=null,this.transition=new Hl(A.timeline),this.onViewStateChange=A.onViewStateChange||wD,this.onStateChange=A.onStateChange||wD}finalize(){this.transition.cancel()}getViewportInTransition(){return this.propsInTransition}processViewStateChange(A){let t=!1;const i=this.props;if(this.props=A,!i||this._shouldIgnoreViewportChange(i,A))return!1;if(this._isTransitionEnabled(A)){let n=i;if(this.transition.inProgress){const{interruption:r,endProps:o}=this.transition.settings;n={...i,...r===ud.SNAP_TO_END?o:this.propsInTransition||i}}this._triggerTransition(n,A),t=!0}else this.transition.cancel();return t}updateTransition(){this.transition.update()}_isTransitionEnabled(A){const{transitionDuration:t,transitionInterpolator:i}=A;return(t>0||t==="auto")&&Boolean(i)}_isUpdateDueToCurrentTransition(A){return this.transition.inProgress&&this.propsInTransition?this.transition.settings.interpolator.arePropsEqual(A,this.propsInTransition):!1}_shouldIgnoreViewportChange(A,t){return this.transition.inProgress?this.transition.settings.interruption===ud.IGNORE||this._isUpdateDueToCurrentTransition(t):this._isTransitionEnabled(t)?t.transitionInterpolator.arePropsEqual(A,t):!0}_triggerTransition(A,t){const i=this.getControllerState(A),n=this.getControllerState(t).shortestPathFrom(i),r=t.transitionInterpolator,o=r.getDuration?r.getDuration(A,t):t.transitionDuration;if(o===0)return;const s=r.initializeProps(A,n);this.propsInTransition={};const a={duration:o,easing:t.transitionEasing||GW,interpolator:r,interruption:t.transitionInterruption||_W,startProps:s.start,endProps:s.end,onStart:t.onTransitionStart,onUpdate:this._onTransitionUpdate,onInterrupt:this._onTransitionEnd(t.onTransitionInterrupt),onEnd:this._onTransitionEnd(t.onTransitionEnd)};this.transition.start(a),this.onStateChange({inTransition:!0}),this.updateTransition()}_onTransitionEnd(A){return t=>{this.propsInTransition=null,this.onStateChange({inTransition:!1,isZooming:!1,isPanning:!1,isRotating:!1}),A==null||A(t)}}}class kW{constructor(A){y(this,"_propsToCompare",void 0),y(this,"_propsToExtract",void 0),y(this,"_requiredProps",void 0);const{compare:t,extract:i,required:n}=A;this._propsToCompare=t,this._propsToExtract=i||t,this._requiredProps=n}arePropsEqual(A,t){for(const i of this._propsToCompare)if(!(i in A)||!(i in t)||!ln(A[i],t[i]))return!1;return!0}initializeProps(A,t){const i={},n={};for(const r of this._propsToExtract)(r in A||r in t)&&(i[r]=A[r],n[r]=t[r]);return this._checkRequiredProps(i),this._checkRequiredProps(n),{start:i,end:n}}getDuration(A,t){return t.transitionDuration}_checkRequiredProps(A){!this._requiredProps||this._requiredProps.forEach(t=>{const i=A[t];at(Number.isFinite(i)||Array.isArray(i),"".concat(t," is required for transition"))})}}const TW=["longitude","latitude","zoom","bearing","pitch"],UW=["longitude","latitude","zoom"];class jE extends kW{constructor(A={}){const t=Array.isArray(A)?A:A.transitionProps,i=Array.isArray(A)?{}:A;i.transitionProps=Array.isArray(t)?{compare:t,required:t}:t||{compare:TW,required:UW},super(i.transitionProps),y(this,"opts",void 0),this.opts=i}initializeProps(A,t){const i=super.initializeProps(A,t),{makeViewport:n,around:r}=this.opts;if(n&&r){const o=n(A),s=n(t),a=o.unproject(r);i.start.around=r,Object.assign(i.end,{around:s.project(a),aroundPosition:a,width:t.width,height:t.height})}return i}interpolateProps(A,t,i){const n={};for(const r of this._propsToExtract)n[r]=xo(A[r]||0,t[r]||0,i);if(t.aroundPosition&&this.opts.makeViewport){const r=this.opts.makeViewport({...t,...n});Object.assign(n,r.panByPosition(t.aroundPosition,xo(A.around,t.around,i)))}return n}}const ar={transitionDuration:0},PW=300,kc=e=>1-(1-e)*(1-e),ys={WHEEL:["wheel"],PAN:["panstart","panmove","panend"],PINCH:["pinchstart","pinchmove","pinchend"],TRIPLE_PAN:["tripanstart","tripanmove","tripanend"],DOUBLE_TAP:["doubletap"],KEYBOARD:["keydown"]},so={};class XE{constructor(A){y(this,"props",void 0),y(this,"state",{}),y(this,"transitionManager",void 0),y(this,"eventManager",void 0),y(this,"onViewStateChange",void 0),y(this,"onStateChange",void 0),y(this,"makeViewport",void 0),y(this,"_controllerState",void 0),y(this,"_events",{}),y(this,"_interactionState",{isDragging:!1}),y(this,"_customEvents",[]),y(this,"_eventStartBlocked",null),y(this,"_panMove",!1),y(this,"invertPan",!1),y(this,"dragMode","rotate"),y(this,"inertia",0),y(this,"scrollZoom",!0),y(this,"dragPan",!0),y(this,"dragRotate",!0),y(this,"doubleClickZoom",!0),y(this,"touchZoom",!0),y(this,"touchRotate",!1),y(this,"keyboard",!0),this.transitionManager=new MW({...A,getControllerState:t=>new this.ControllerState(t),onViewStateChange:this._onTransition.bind(this),onStateChange:this._setInteractionState.bind(this)}),this.handleEvent=this.handleEvent.bind(this),this.eventManager=A.eventManager,this.onViewStateChange=A.onViewStateChange||(()=>{}),this.onStateChange=A.onStateChange||(()=>{}),this.makeViewport=A.makeViewport}set events(A){this.toggleEvents(this._customEvents,!1),this.toggleEvents(A,!0),this._customEvents=A,this.props&&this.setProps(this.props)}finalize(){for(const t in this._events)if(this._events[t]){var A;(A=this.eventManager)===null||A===void 0||A.off(t,this.handleEvent)}this.transitionManager.finalize()}handleEvent(A){this._controllerState=void 0;const t=this._eventStartBlocked;switch(A.type){case"panstart":return t?!1:this._onPanStart(A);case"panmove":return this._onPan(A);case"panend":return this._onPanEnd(A);case"pinchstart":return t?!1:this._onPinchStart(A);case"pinchmove":return this._onPinch(A);case"pinchend":return this._onPinchEnd(A);case"tripanstart":return t?!1:this._onTriplePanStart(A);case"tripanmove":return this._onTriplePan(A);case"tripanend":return this._onTriplePanEnd(A);case"doubletap":return this._onDoubleTap(A);case"wheel":return this._onWheel(A);case"keydown":return this._onKeyDown(A);default:return!1}}get controllerState(){return this._controllerState=this._controllerState||new this.ControllerState({makeViewport:this.makeViewport,...this.props,...this.state}),this._controllerState}getCenter(A){const{x:t,y:i}=this.props,{offsetCenter:n}=A;return[n.x-t,n.y-i]}isPointInBounds(A,t){const{width:i,height:n}=this.props;if(t&&t.handled)return!1;const r=A[0]>=0&&A[0]<=i&&A[1]>=0&&A[1]<=n;return r&&t&&t.stopPropagation(),r}isFunctionKeyPressed(A){const{srcEvent:t}=A;return Boolean(t.metaKey||t.altKey||t.ctrlKey||t.shiftKey)}isDragging(){return this._interactionState.isDragging||!1}blockEvents(A){const t=setTimeout(()=>{this._eventStartBlocked===t&&(this._eventStartBlocked=null)},A);this._eventStartBlocked=t}setProps(A){A.dragMode&&(this.dragMode=A.dragMode),this.props=A,"transitionInterpolator"in A||(A.transitionInterpolator=this._getTransitionProps().transitionInterpolator),this.transitionManager.processViewStateChange(A);const{inertia:t}=A;this.inertia=Number.isFinite(t)?t:t===!0?PW:0;const{scrollZoom:i=!0,dragPan:n=!0,dragRotate:r=!0,doubleClickZoom:o=!0,touchZoom:s=!0,touchRotate:a=!1,keyboard:g=!0}=A,I=Boolean(this.onViewStateChange);this.toggleEvents(ys.WHEEL,I&&i),this.toggleEvents(ys.PAN,I&&(n||r)),this.toggleEvents(ys.PINCH,I&&(s||a)),this.toggleEvents(ys.TRIPLE_PAN,I&&a),this.toggleEvents(ys.DOUBLE_TAP,I&&o),this.toggleEvents(ys.KEYBOARD,I&&g),this.scrollZoom=i,this.dragPan=n,this.dragRotate=r,this.doubleClickZoom=o,this.touchZoom=s,this.touchRotate=a,this.keyboard=g}updateTransition(){this.transitionManager.updateTransition()}toggleEvents(A,t){this.eventManager&&A.forEach(i=>{this._events[i]!==t&&(this._events[i]=t,t?this.eventManager.on(i,this.handleEvent):this.eventManager.off(i,this.handleEvent))})}updateViewport(A,t=null,i={}){const n={...A.getViewportProps(),...t},r=this.controllerState!==A;if(this.state=A.getState(),this._setInteractionState(i),r){const o=this.controllerState&&this.controllerState.getViewportProps();this.onViewStateChange&&this.onViewStateChange({viewState:n,interactionState:this._interactionState,oldViewState:o})}}_onTransition(A){this.onViewStateChange({...A,interactionState:this._interactionState})}_setInteractionState(A){Object.assign(this._interactionState,A),this.onStateChange(this._interactionState)}_onPanStart(A){const t=this.getCenter(A);if(!this.isPointInBounds(t,A))return!1;let i=this.isFunctionKeyPressed(A)||A.rightButton||!1;(this.invertPan||this.dragMode==="pan")&&(i=!i);const n=this.controllerState[i?"panStart":"rotateStart"]({pos:t});return this._panMove=i,this.updateViewport(n,ar,{isDragging:!0}),!0}_onPan(A){return this.isDragging()?this._panMove?this._onPanMove(A):this._onPanRotate(A):!1}_onPanEnd(A){return this.isDragging()?this._panMove?this._onPanMoveEnd(A):this._onPanRotateEnd(A):!1}_onPanMove(A){if(!this.dragPan)return!1;const t=this.getCenter(A),i=this.controllerState.pan({pos:t});return this.updateViewport(i,ar,{isDragging:!0,isPanning:!0}),!0}_onPanMoveEnd(A){const{inertia:t}=this;if(this.dragPan&&t&&A.velocity){const i=this.getCenter(A),n=[i[0]+A.velocityX*t/2,i[1]+A.velocityY*t/2],r=this.controllerState.pan({pos:n}).panEnd();this.updateViewport(r,{...this._getTransitionProps(),transitionDuration:t,transitionEasing:kc},{isDragging:!1,isPanning:!0})}else{const i=this.controllerState.panEnd();this.updateViewport(i,null,{isDragging:!1,isPanning:!1})}return!0}_onPanRotate(A){if(!this.dragRotate)return!1;const t=this.getCenter(A),i=this.controllerState.rotate({pos:t});return this.updateViewport(i,ar,{isDragging:!0,isRotating:!0}),!0}_onPanRotateEnd(A){const{inertia:t}=this;if(this.dragRotate&&t&&A.velocity){const i=this.getCenter(A),n=[i[0]+A.velocityX*t/2,i[1]+A.velocityY*t/2],r=this.controllerState.rotate({pos:n}).rotateEnd();this.updateViewport(r,{...this._getTransitionProps(),transitionDuration:t,transitionEasing:kc},{isDragging:!1,isRotating:!0})}else{const i=this.controllerState.rotateEnd();this.updateViewport(i,null,{isDragging:!1,isRotating:!1})}return!0}_onWheel(A){if(!this.scrollZoom)return!1;A.srcEvent.preventDefault();const t=this.getCenter(A);if(!this.isPointInBounds(t,A))return!1;const{speed:i=.01,smooth:n=!1}=this.scrollZoom===!0?{}:this.scrollZoom,{delta:r}=A;let o=2/(1+Math.exp(-Math.abs(r*i)));r<0&&o!==0&&(o=1/o);const s=this.controllerState.zoom({pos:t,scale:o});return this.updateViewport(s,{...this._getTransitionProps({around:t}),transitionDuration:n?250:1},{isZooming:!0,isPanning:!0}),!0}_onTriplePanStart(A){const t=this.getCenter(A);if(!this.isPointInBounds(t,A))return!1;const i=this.controllerState.rotateStart({pos:t});return this.updateViewport(i,ar,{isDragging:!0}),!0}_onTriplePan(A){if(!this.touchRotate||!this.isDragging())return!1;const t=this.getCenter(A);t[0]-=A.deltaX;const i=this.controllerState.rotate({pos:t});return this.updateViewport(i,ar,{isDragging:!0,isRotating:!0}),!0}_onTriplePanEnd(A){if(!this.isDragging())return!1;const{inertia:t}=this;if(this.touchRotate&&t&&A.velocityY){const i=this.getCenter(A),n=[i[0],i[1]+=A.velocityY*t/2],r=this.controllerState.rotate({pos:n});this.updateViewport(r,{...this._getTransitionProps(),transitionDuration:t,transitionEasing:kc},{isDragging:!1,isRotating:!0}),this.blockEvents(t)}else{const i=this.controllerState.rotateEnd();this.updateViewport(i,null,{isDragging:!1,isRotating:!1})}return!0}_onPinchStart(A){const t=this.getCenter(A);if(!this.isPointInBounds(t,A))return!1;const i=this.controllerState.zoomStart({pos:t}).rotateStart({pos:t});return so._startPinchRotation=A.rotation,so._lastPinchEvent=A,this.updateViewport(i,ar,{isDragging:!0}),!0}_onPinch(A){if(!this.touchZoom&&!this.touchRotate||!this.isDragging())return!1;let t=this.controllerState;if(this.touchZoom){const{scale:i}=A,n=this.getCenter(A);t=t.zoom({pos:n,scale:i})}if(this.touchRotate){const{rotation:i}=A;t=t.rotate({deltaAngleX:so._startPinchRotation-i})}return this.updateViewport(t,ar,{isDragging:!0,isPanning:this.touchZoom,isZooming:this.touchZoom,isRotating:this.touchRotate}),so._lastPinchEvent=A,!0}_onPinchEnd(A){if(!this.isDragging())return!1;const{inertia:t}=this,{_lastPinchEvent:i}=so;if(this.touchZoom&&t&&i&&A.scale!==i.scale){const n=this.getCenter(A);let r=this.controllerState.rotateEnd();const o=Math.log2(A.scale),s=(o-Math.log2(i.scale))/(A.deltaTime-i.deltaTime),a=Math.pow(2,o+s*t/2);r=r.zoom({pos:n,scale:a}).zoomEnd(),this.updateViewport(r,{...this._getTransitionProps({around:n}),transitionDuration:t,transitionEasing:kc},{isDragging:!1,isPanning:this.touchZoom,isZooming:this.touchZoom,isRotating:!1}),this.blockEvents(t)}else{const n=this.controllerState.zoomEnd().rotateEnd();this.updateViewport(n,null,{isDragging:!1,isPanning:!1,isZooming:!1,isRotating:!1})}return so._startPinchRotation=null,so._lastPinchEvent=null,!0}_onDoubleTap(A){if(!this.doubleClickZoom)return!1;const t=this.getCenter(A);if(!this.isPointInBounds(t,A))return!1;const i=this.isFunctionKeyPressed(A),n=this.controllerState.zoom({pos:t,scale:i?.5:2});return this.updateViewport(n,this._getTransitionProps({around:t}),{isZooming:!0,isPanning:!0}),this.blockEvents(100),!0}_onKeyDown(A){if(!this.keyboard)return!1;const t=this.isFunctionKeyPressed(A),{zoomSpeed:i,moveSpeed:n,rotateSpeedX:r,rotateSpeedY:o}=this.keyboard===!0?{}:this.keyboard,{controllerState:s}=this;let a;const g={};switch(A.srcEvent.code){case"Minus":a=t?s.zoomOut(i).zoomOut(i):s.zoomOut(i),g.isZooming=!0;break;case"Equal":a=t?s.zoomIn(i).zoomIn(i):s.zoomIn(i),g.isZooming=!0;break;case"ArrowLeft":t?(a=s.rotateLeft(r),g.isRotating=!0):(a=s.moveLeft(n),g.isPanning=!0);break;case"ArrowRight":t?(a=s.rotateRight(r),g.isRotating=!0):(a=s.moveRight(n),g.isPanning=!0);break;case"ArrowUp":t?(a=s.rotateUp(o),g.isRotating=!0):(a=s.moveUp(n),g.isPanning=!0);break;case"ArrowDown":t?(a=s.rotateDown(o),g.isRotating=!0):(a=s.moveDown(n),g.isPanning=!0);break;default:return!1}return this.updateViewport(a,this._getTransitionProps(),g),!0}_getTransitionProps(A){const{transition:t}=this;return!t||!t.transitionInterpolator?ar:A?{...t,transitionInterpolator:new jE({...A,...t.transitionInterpolator.opts,makeViewport:this.controllerState.makeViewport})}:t}}class mb{constructor(A,t){y(this,"_viewportProps",void 0),y(this,"_state",void 0),this._viewportProps=this.applyConstraints(A),this._state=t}getViewportProps(){return this._viewportProps}getState(){return this._state}}const vD=5,HW=1.2;class qW extends mb{constructor(A){const{width:t,height:i,latitude:n,longitude:r,zoom:o,bearing:s=0,pitch:a=0,altitude:g=1.5,position:I=[0,0,0],maxZoom:l=20,minZoom:c=0,maxPitch:C=60,minPitch:B=0,startPanLngLat:u,startZoomLngLat:E,startRotatePos:h,startBearing:f,startPitch:Q,startZoom:d,normalize:w=!0}=A;at(Number.isFinite(r)),at(Number.isFinite(n)),at(Number.isFinite(o)),super({width:t,height:i,latitude:n,longitude:r,zoom:o,bearing:s,pitch:a,altitude:g,maxZoom:l,minZoom:c,maxPitch:C,minPitch:B,normalize:w,position:I},{startPanLngLat:u,startZoomLngLat:E,startRotatePos:h,startBearing:f,startPitch:Q,startZoom:d}),y(this,"makeViewport",void 0),this.makeViewport=A.makeViewport}panStart({pos:A}){return this._getUpdatedState({startPanLngLat:this._unproject(A)})}pan({pos:A,startPos:t}){const i=this.getState().startPanLngLat||this._unproject(t);if(!i)return this;const r=this.makeViewport(this.getViewportProps()).panByPosition(i,A);return this._getUpdatedState(r)}panEnd(){return this._getUpdatedState({startPanLngLat:null})}rotateStart({pos:A}){return this._getUpdatedState({startRotatePos:A,startBearing:this.getViewportProps().bearing,startPitch:this.getViewportProps().pitch})}rotate({pos:A,deltaAngleX:t=0,deltaAngleY:i=0}){const{startRotatePos:n,startBearing:r,startPitch:o}=this.getState();if(!n||r===void 0||o===void 0)return this;let s;return A?s=this._getNewRotation(A,n,o,r):s={bearing:r+t,pitch:o+i},this._getUpdatedState(s)}rotateEnd(){return this._getUpdatedState({startBearing:null,startPitch:null})}zoomStart({pos:A}){return this._getUpdatedState({startZoomLngLat:this._unproject(A),startZoom:this.getViewportProps().zoom})}zoom({pos:A,startPos:t,scale:i}){let{startZoom:n,startZoomLngLat:r}=this.getState();if(r||(n=this.getViewportProps().zoom,r=this._unproject(t)||this._unproject(A)),!r)return this;const{maxZoom:o,minZoom:s}=this.getViewportProps();let a=n+Math.log2(i);a=ft(a,s,o);const g=this.makeViewport({...this.getViewportProps(),zoom:a});return this._getUpdatedState({zoom:a,...g.panByPosition(r,A)})}zoomEnd(){return this._getUpdatedState({startZoomLngLat:null,startZoom:null})}zoomIn(A=2){return this._zoomFromCenter(A)}zoomOut(A=2){return this._zoomFromCenter(1/A)}moveLeft(A=100){return this._panFromCenter([A,0])}moveRight(A=100){return this._panFromCenter([-A,0])}moveUp(A=100){return this._panFromCenter([0,A])}moveDown(A=100){return this._panFromCenter([0,-A])}rotateLeft(A=15){return this._getUpdatedState({bearing:this.getViewportProps().bearing-A})}rotateRight(A=15){return this._getUpdatedState({bearing:this.getViewportProps().bearing+A})}rotateUp(A=10){return this._getUpdatedState({pitch:this.getViewportProps().pitch+A})}rotateDown(A=10){return this._getUpdatedState({pitch:this.getViewportProps().pitch-A})}shortestPathFrom(A){const t=A.getViewportProps(),i={...this.getViewportProps()},{bearing:n,longitude:r}=i;return Math.abs(n-t.bearing)>180&&(i.bearing=n<0?n+360:n-360),Math.abs(r-t.longitude)>180&&(i.longitude=r<0?r+360:r-360),i}applyConstraints(A){const{maxZoom:t,minZoom:i,zoom:n}=A;A.zoom=ft(n,i,t);const{maxPitch:r,minPitch:o,pitch:s}=A;A.pitch=ft(s,o,r);const{normalize:a=!0}=A;return a&&Object.assign(A,TV(A)),A}_zoomFromCenter(A){const{width:t,height:i}=this.getViewportProps();return this.zoom({pos:[t/2,i/2],scale:A})}_panFromCenter(A){const{width:t,height:i}=this.getViewportProps();return this.pan({startPos:[t/2,i/2],pos:[t/2+A[0],i/2+A[1]]})}_getUpdatedState(A){return new this.constructor({makeViewport:this.makeViewport,...this.getViewportProps(),...this.getState(),...A})}_unproject(A){const t=this.makeViewport(this.getViewportProps());return A&&t.unproject(A)}_getNewRotation(A,t,i,n){const r=A[0]-t[0],o=A[1]-t[1],s=A[1],a=t[1],{width:g,height:I}=this.getViewportProps(),l=r/g;let c=0;o>0?Math.abs(I-a)>vD&&(c=o/(a-I)*HW):o<0&&a>vD&&(c=1-s/a),c=ft(c,-1,1);const{minPitch:C,maxPitch:B}=this.getViewportProps(),u=n+180*l;let E=i;return c>0?E=i+c*(B-i):c<0&&(E=i-c*(C-i)),{pitch:E,bearing:u}}}class JW extends XE{constructor(...A){super(...A),y(this,"ControllerState",qW),y(this,"transition",{transitionDuration:300,transitionInterpolator:new jE({transitionProps:{compare:["longitude","latitude","zoom","bearing","pitch","position"],required:["longitude","latitude","zoom"]}})}),y(this,"dragMode","pan")}setProps(A){A.position=A.position||[0,0,0];const t=this.props;super.setProps(A),(!t||t.height!==A.height)&&this.updateViewport(new this.ControllerState({makeViewport:this.makeViewport,...A,...this.state}))}}class wb extends Kr{get ViewportType(){return Cn}get ControllerType(){return JW}}y(wb,"displayName","MapView");class OW extends WE{constructor(A,t){super(A,t),y(this,"maskMap",void 0),y(this,"fbo",void 0);const{mapSize:i=2048}=t;this.maskMap=new Pt(A,{width:i,height:i,parameters:{[10241]:9729,[10240]:9729,[10242]:33071,[10243]:33071}}),this.fbo=new $e(A,{id:"maskmap",width:i,height:i,attachments:{[36064]:this.maskMap}})}render(A){const t=this.gl,i=[!1,!1,!1,!1];return i[A.channel]=!0,ui(t,{clearColor:[255,255,255,255],blend:!0,blendFunc:[0,1],blendEquation:32778,colorMask:i,depthTest:!1},()=>super.render({...A,target:this.fbo,pass:"mask"}))}shouldDrawLayer(A){return A.props.operation===Tl.MASK}delete(){this.fbo.delete(),this.maskMap.delete()}}const YW=new fe().lookAt({eye:[0,0,1]});function KW({width:e,height:A,near:t,far:i,padding:n}){let r=-e/2,o=e/2,s=-A/2,a=A/2;if(n){const{left:g=0,right:I=0,top:l=0,bottom:c=0}=n,C=ft((g+e-I)/2,0,e)-e/2,B=ft((l+A-c)/2,0,A)-A/2;r-=C,o-=C,s+=B,a+=B}return new fe().ortho({left:r,right:o,bottom:s,top:a,near:t,far:i})}class VW extends Wn{constructor(A){const{width:t,height:i,near:n=.1,far:r=1e3,zoom:o=0,target:s=[0,0,0],padding:a=null,flipY:g=!0}=A,I=Array.isArray(o)?o[0]:o,l=Array.isArray(o)?o[1]:o,c=Math.min(I,l),C=Math.pow(2,c);let B;if(I!==l){const u=Math.pow(2,I),E=Math.pow(2,l);B={unitsPerMeter:[u/C,E/C,1],metersPerUnit:[C/u,C/E,1]}}super({...A,longitude:void 0,position:s,viewMatrix:YW.clone().scale([C,C*(g?-1:1),C]),projectionMatrix:KW({width:t||1,height:i||1,padding:a,near:n,far:r}),zoom:c,distanceScales:B})}projectFlat([A,t]){const{unitsPerMeter:i}=this.distanceScales;return[A*i[0],t*i[1]]}unprojectFlat([A,t]){const{metersPerUnit:i}=this.distanceScales;return[A*i[0],t*i[1]]}panByPosition(A,t){const i=Pl(t,this.pixelUnprojectionMatrix),n=this.projectFlat(A),r=_B([],n,KL([],i)),o=_B([],this.center,r);return{target:this.unprojectFlat(o)}}}class vb extends mb{constructor(A){const{width:t,height:i,rotationX:n=0,rotationOrbit:r=0,target:o=[0,0,0],zoom:s=0,minRotationX:a=-90,maxRotationX:g=90,minZoom:I=-1/0,maxZoom:l=1/0,startPanPosition:c,startRotatePos:C,startRotationX:B,startRotationOrbit:u,startZoomPosition:E,startZoom:h}=A;super({width:t,height:i,rotationX:n,rotationOrbit:r,target:o,zoom:s,minRotationX:a,maxRotationX:g,minZoom:I,maxZoom:l},{startPanPosition:c,startRotatePos:C,startRotationX:B,startRotationOrbit:u,startZoomPosition:E,startZoom:h}),y(this,"makeViewport",void 0),this.makeViewport=A.makeViewport}panStart({pos:A}){return this._getUpdatedState({startPanPosition:this._unproject(A)})}pan({pos:A,startPosition:t}){const i=this.getState().startPanPosition||t;if(!i)return this;const r=this.makeViewport(this.getViewportProps()).panByPosition(i,A);return this._getUpdatedState(r)}panEnd(){return this._getUpdatedState({startPanPosition:null})}rotateStart({pos:A}){return this._getUpdatedState({startRotatePos:A,startRotationX:this.getViewportProps().rotationX,startRotationOrbit:this.getViewportProps().rotationOrbit})}rotate({pos:A,deltaAngleX:t=0,deltaAngleY:i=0}){const{startRotatePos:n,startRotationX:r,startRotationOrbit:o}=this.getState(),{width:s,height:a}=this.getViewportProps();if(!n||r===void 0||o===void 0)return this;let g;if(A){let I=(A[0]-n[0])/s;const l=(A[1]-n[1])/a;(r<-90||r>90)&&(I*=-1),g={rotationX:r+l*180,rotationOrbit:o+I*180}}else g={rotationX:r+i,rotationOrbit:o+t};return this._getUpdatedState(g)}rotateEnd(){return this._getUpdatedState({startRotationX:null,startRotationOrbit:null})}shortestPathFrom(A){const t=A.getViewportProps(),i={...this.getViewportProps()},{rotationOrbit:n}=i;return Math.abs(n-t.rotationOrbit)>180&&(i.rotationOrbit=n<0?n+360:n-360),i}zoomStart({pos:A}){return this._getUpdatedState({startZoomPosition:this._unproject(A),startZoom:this.getViewportProps().zoom})}zoom({pos:A,startPos:t,scale:i}){let{startZoom:n,startZoomPosition:r}=this.getState();if(r||(n=this.getViewportProps().zoom,r=this._unproject(t)||this._unproject(A)),!r)return this;const o=this._calculateNewZoom({scale:i,startZoom:n}),s=this.makeViewport({...this.getViewportProps(),zoom:o});return this._getUpdatedState({zoom:o,...s.panByPosition(r,A)})}zoomEnd(){return this._getUpdatedState({startZoomPosition:null,startZoom:null})}zoomIn(A=2){return this._getUpdatedState({zoom:this._calculateNewZoom({scale:A})})}zoomOut(A=2){return this._getUpdatedState({zoom:this._calculateNewZoom({scale:1/A})})}moveLeft(A=50){return this._panFromCenter([-A,0])}moveRight(A=50){return this._panFromCenter([A,0])}moveUp(A=50){return this._panFromCenter([0,-A])}moveDown(A=50){return this._panFromCenter([0,A])}rotateLeft(A=15){return this._getUpdatedState({rotationOrbit:this.getViewportProps().rotationOrbit-A})}rotateRight(A=15){return this._getUpdatedState({rotationOrbit:this.getViewportProps().rotationOrbit+A})}rotateUp(A=10){return this._getUpdatedState({rotationX:this.getViewportProps().rotationX-A})}rotateDown(A=10){return this._getUpdatedState({rotationX:this.getViewportProps().rotationX+A})}_unproject(A){const t=this.makeViewport(this.getViewportProps());return A&&t.unproject(A)}_calculateNewZoom({scale:A,startZoom:t}){const{maxZoom:i,minZoom:n}=this.getViewportProps();t===void 0&&(t=this.getViewportProps().zoom);const r=t+Math.log2(A);return ft(r,n,i)}_panFromCenter(A){const{width:t,height:i,target:n}=this.getViewportProps();return this.pan({startPosition:n,pos:[t/2+A[0],i/2+A[1]]})}_getUpdatedState(A){return new this.constructor({makeViewport:this.makeViewport,...this.getViewportProps(),...this.getState(),...A})}applyConstraints(A){const{maxZoom:t,minZoom:i,zoom:n,maxRotationX:r,minRotationX:o,rotationOrbit:s}=A;return A.zoom=Array.isArray(n)?[ft(n[0],i,t),ft(n[1],i,t)]:ft(n,i,t),A.rotationX=ft(A.rotationX,o,r),(s<-180||s>180)&&(A.rotationOrbit=CW(s+180,360)-180),A}}class WW extends XE{constructor(...A){super(...A),y(this,"ControllerState",vb),y(this,"transition",{transitionDuration:300,transitionInterpolator:new jE({transitionProps:{compare:["target","zoom","rotationX","rotationOrbit"],required:["target","zoom"]}})})}}class zW extends vb{constructor(A){super(A),y(this,"zoomAxis",void 0),this.zoomAxis=A.zoomAxis||"all"}_calculateNewZoom({scale:A,startZoom:t}){const{maxZoom:i,minZoom:n}=this.getViewportProps();t===void 0&&(t=this.getViewportProps().zoom);let r=Math.log2(A);if(Array.isArray(t)){let[o,s]=t;switch(this.zoomAxis){case"X":o=ft(o+r,n,i);break;case"Y":s=ft(s+r,n,i);break;default:let a=Math.min(o+r,s+r);ai&&(r+=i-a),o+=r,s+=r}return[o,s]}return ft(t+r,n,i)}}class jW extends XE{constructor(...A){super(...A),y(this,"ControllerState",zW),y(this,"transition",{transitionDuration:300,transitionInterpolator:new jE(["target","zoom"])}),y(this,"dragMode","pan")}_onPanRotate(){return!1}}class ql extends Kr{get ViewportType(){return VW}get ControllerType(){return jW}}y(ql,"displayName","OrthographicView");function XW({layers:e,viewport:A}){let t=null;for(const r of e){const o=r.getBounds();o&&(t?(t[0]=Math.min(t[0],o[0][0]),t[1]=Math.min(t[1],o[0][1]),t[2]=Math.max(t[2],o[1][0]),t[3]=Math.max(t[3],o[1][1])):t=[o[0][0],o[0][1],o[1][0],o[1][1]])}const i=A.getBounds();if(!t)return i;const n=$W(i);return t[2]-t[0]l.props.visible&&l.props.operation===Tl.MASK);if(s.length===0){this.masks=null,this.channels.length=0;return}this.masks={},this.maskPass||(this.maskPass=new OW(A,{id:"default-mask"}),this.maskMap=this.maskPass.maskMap);const a=this._sortMaskChannels(s),g=n[0],I=!this.lastViewport||!this.lastViewport.equals(g);for(const l in a)this._renderChannel(a[l],{layerFilter:i,onViewportActive:r,views:o,viewport:g,viewportChanged:I})}_renderChannel(A,{layerFilter:t,onViewportActive:i,views:n,viewport:r,viewportChanged:o}){const s=this.channels[A.index];if(!s)return;const a=A===s||s.layers.length!==A.layers.length||A.layerBounds.some((g,I)=>g!==s.layerBounds[I]);if(A.bounds=s.bounds,A.maskBounds=s.maskBounds,this.channels[A.index]=A,(a||o)&&(this.lastViewport=r,A.bounds=XW({layers:A.layers,viewport:r}),a||!ln(A.bounds,s.bounds))){const{maskPass:g,maskMap:I}=this,l=ZW({bounds:A.bounds,viewport:r,width:I.width,height:I.height});A.maskBounds=l?l.getBounds():[0,0,1,1],g.render({pass:"mask",channel:A.index,layers:A.layers,layerFilter:t,viewports:l?[l]:[],onViewportActive:i,views:n,moduleParameters:{devicePixelRatio:1}})}this.masks[A.id]={index:A.index,bounds:A.maskBounds,coordinateOrigin:A.coordinateOrigin,coordinateSystem:A.coordinateSystem}}_sortMaskChannels(A){const t={};let i=0;for(const n of A){const{id:r}=n.root;let o=t[r];if(!o){if(++i>4){Ae.warn("Too many mask layers. The max supported is 4")();continue}o={id:r,index:this.channels.findIndex(s=>(s==null?void 0:s.id)===r),layers:[],layerBounds:[],coordinateOrigin:n.root.props.coordinateOrigin,coordinateSystem:n.root.props.coordinateSystem},t[r]=o}o.layers.push(n),o.layerBounds.push(n.getBounds())}for(let n=0;n<4;n++){const r=this.channels[n];(!r||!(r.id in t))&&(this.channels[n]=null)}for(const n in t){const r=t[n];r.index<0&&(r.index=this.channels.findIndex(o=>!o),this.channels[r.index]=r)}return t}getModuleParameters(){return{maskMap:this.masks?this.maskMap:this.dummyMaskMap,maskChannels:this.masks}}cleanup(){this.dummyMaskMap&&(this.dummyMaskMap.delete(),this.dummyMaskMap=void 0),this.maskPass&&(this.maskPass.delete(),this.maskPass=void 0,this.maskMap=void 0),this.lastViewport=void 0,this.masks=null,this.channels.length=0}}const ez=new db;class tz{constructor(){y(this,"effects",void 0),y(this,"_internalEffects",void 0),y(this,"_needsRedraw",void 0),this.effects=[],this._internalEffects=[],this._needsRedraw="Initial render",this.setEffects()}setProps(A){"effects"in A&&(A.effects.length!==this.effects.length||!ss(A.effects,this.effects))&&(this.setEffects(A.effects),this._needsRedraw="effects changed")}needsRedraw(A={clearRedrawFlags:!1}){const t=this._needsRedraw;return A.clearRedrawFlags&&(this._needsRedraw=!1),t}getEffects(){return this._internalEffects}finalize(){this.cleanup()}setEffects(A=[]){this.cleanup(),this.effects=A,this._internalEffects=A.slice(),this._internalEffects.push(new Az),A.some(t=>t instanceof db)||this._internalEffects.push(ez)}cleanup(){for(const A of this.effects)A.cleanup();for(const A of this._internalEffects)A.cleanup();this.effects.length=0,this._internalEffects.length=0}}class iz extends WE{shouldDrawLayer(A){return A.props.operation===Tl.DRAW}}const SD={blendFunc:[1,0,32771,0],blendEquation:32774};class Sb extends WE{constructor(...A){super(...A),y(this,"pickZ",void 0),y(this,"_colors",null)}render(A){return A.pickingFBO?this._drawPickingBuffer(A):super.render(A)}_drawPickingBuffer({layers:A,layerFilter:t,views:i,viewports:n,onViewportActive:r,pickingFBO:o,deviceRect:{x:s,y:a,width:g,height:I},cullRect:l,effects:c,pass:C="picking",pickZ:B}){const u=this.gl;this.pickZ=B;const E=B?null:{byLayer:new Map,byAlpha:[]};this._colors=E;const h=ui(u,{scissorTest:!0,scissor:[s,a,g,I],clearColor:[0,0,0,0],depthMask:!0,depthTest:!0,depthRange:[0,1],colorMask:[!0,!0,!0,!0],...SD,blend:!B},()=>super.render({target:o,layers:A,layerFilter:t,views:i,viewports:n,onViewportActive:r,cullRect:l,effects:c==null?void 0:c.filter(Q=>Q.useInPicking),pass:C}));return this._colors=null,{decodePickingColor:E&&rz.bind(null,E),stats:h}}shouldDrawLayer(A){return A.props.pickable&&A.props.operation===Tl.DRAW}getModuleParameters(){return{pickingActive:1,pickingAttribute:this.pickZ,lightSources:{}}}getLayerParameters(A,t,i){const n={...A.props.parameters};return this._colors?(Object.assign(n,SD),n.blend=!0,n.blendColor=nz(this._colors,A,i)):n.blend=!1,n}}function nz(e,A,t){const{byLayer:i,byAlpha:n}=e;let r,o=i.get(A);return o?(o.viewports.push(t),r=o.a):(r=i.size+1,r<=255?(o={a:r,layer:A,viewports:[t]},i.set(A,o),n[r]=o):(Ae.warn("Too many pickable layers, only picking the first 255")(),r=0)),[0,0,0,r/255]}function rz(e,A){const t=e.byAlpha[A[3]];return t&&{pickedLayer:t.layer,pickedViewports:t.viewports,pickedObjectIndex:t.layer.decodePickingColor(A)}}const oz="deckRenderer.renderLayers";class sz{constructor(A){this.gl=A,this.layerFilter=null,this.drawPickingColors=!1,this.drawLayersPass=new iz(A),this.pickLayersPass=new Sb(A),this.renderCount=0,this._needsRedraw="Initial render",this.renderBuffers=[],this.lastPostProcessEffect=null}setProps(A){"layerFilter"in A&&this.layerFilter!==A.layerFilter&&(this.layerFilter=A.layerFilter,this._needsRedraw="layerFilter changed"),"drawPickingColors"in A&&this.drawPickingColors!==A.drawPickingColors&&(this.drawPickingColors=A.drawPickingColors,this._needsRedraw="drawPickingColors changed")}renderLayers(A){const t=this.drawPickingColors?this.pickLayersPass:this.drawLayersPass;A.layerFilter=A.layerFilter||this.layerFilter,A.effects=A.effects||[],A.target=A.target||$e.getDefaultFramebuffer(this.gl),this._preRender(A.effects,A);const i=this.lastPostProcessEffect?this.renderBuffers[0]:A.target,n=t.render({...A,target:i});this._postRender(A.effects,A),this.renderCount++,Rt(oz,this,n,A)}needsRedraw(A={clearRedrawFlags:!1}){const t=this._needsRedraw;return A.clearRedrawFlags&&(this._needsRedraw=!1),t}finalize(){const{renderBuffers:A}=this;for(const t of A)t.delete();A.length=0}_preRender(A,t){let i=null;for(const n of A)n.preRender(this.gl,t),n.postRender&&(i=n);i&&this._resizeRenderBuffers(),this.lastPostProcessEffect=i}_resizeRenderBuffers(){const{renderBuffers:A}=this;A.length===0&&A.push(new $e(this.gl),new $e(this.gl));for(const t of A)t.resize()}_postRender(A,t){const{renderBuffers:i}=this,n={inputBuffer:i[0],swapBuffer:i[1],target:null};for(const r of A)if(r.postRender){if(r===this.lastPostProcessEffect){n.target=t.target,r.postRender(this.gl,n);break}const o=r.postRender(this.gl,n);n.inputBuffer=o,n.swapBuffer=o===i[0]?i[1]:i[0]}}}const az={pickedColor:null,pickedObjectIndex:-1};function gz({pickedColors:e,decodePickingColor:A,deviceX:t,deviceY:i,deviceRadius:n,deviceRect:r}){const{x:o,y:s,width:a,height:g}=r;let I=n*n,l=-1,c=0;for(let C=0;CI)c+=4*a;else for(let E=0;E=0){const f=E+o-t,Q=f*f+u;Q<=I&&(I=Q,l=c)}c+=4}}if(l>=0){const C=e.slice(l,l+4),B=A(C);if(B){const u=Math.floor(l/4/a),E=l/4-u*a;return{...B,pickedColor:C,pickedX:o+E,pickedY:s+u}}Ae.error("Picked non-existent layer. Is picking buffer corrupt?")()}return az}function Iz({pickedColors:e,decodePickingColor:A}){const t=new Map;if(e){for(let i=0;i=0){const r=e.slice(i,i+4),o=r.join(",");if(!t.has(o)){const s=A(r);s?t.set(o,{...s,color:r}):Ae.error("Picked non-existent layer. Is picking buffer corrupt?")()}}}return Array.from(t.values())}function Db({pickInfo:e,viewports:A,pixelRatio:t,x:i,y:n,z:r}){let o=A[0];A.length>1&&(o=cz((e==null?void 0:e.pickedViewports)||A,{x:i,y:n}));let s;if(o){const a=[i-o.x,n-o.y];r!==void 0&&(a[2]=r),s=o.unproject(a)}return{color:null,layer:null,viewport:o,index:-1,picked:!1,x:i,y:n,pixel:[i,n],coordinate:s,devicePixel:e&&"pickedX"in e?[e.pickedX,e.pickedY]:void 0,pixelRatio:t}}function lz(e){const{pickInfo:A,lastPickedInfo:t,mode:i,layers:n}=e,{pickedColor:r,pickedLayer:o,pickedObjectIndex:s}=A,a=o?[o]:[];if(i==="hover"){const l=t.index,c=t.layerId,C=o?o.props.id:null;if(C!==c||s!==l){if(C!==c){const B=n.find(u=>u.props.id===c);B&&a.unshift(B)}t.layerId=C,t.index=s,t.info=null}}const g=Db(e),I=new Map;return I.set(null,g),a.forEach(l=>{let c={...g};l===o&&(c.color=r,c.index=s,c.picked=!0),c=Rb({layer:l,info:c,mode:i});const C=c.layer;l===o&&i==="hover"&&(t.info=c),I.set(C.id,c),i==="hover"&&C.updateAutoHighlight(c)}),I}function Rb({layer:e,info:A,mode:t}){for(;e&&A;){const i=A.layer||null;A.sourceLayer=i,A.layer=e,A=e.getPickingInfo({info:A,mode:t,sourceLayer:i}),e=e.parent}return A}function cz(e,A){for(let t=e.length-1;t>=0;t--){const i=e[t];if(i.containsPixel(A))return i}return e[0]}class Cz{constructor(A){y(this,"gl",void 0),y(this,"pickingFBO",void 0),y(this,"depthFBO",void 0),y(this,"pickLayersPass",void 0),y(this,"layerFilter",void 0),y(this,"lastPickedInfo",void 0),y(this,"_pickable",!0),this.gl=A,this.pickLayersPass=new Sb(A),this.lastPickedInfo={index:-1,layerId:null,info:null}}setProps(A){"layerFilter"in A&&(this.layerFilter=A.layerFilter),"_pickable"in A&&(this._pickable=A._pickable)}finalize(){this.pickingFBO&&this.pickingFBO.delete(),this.depthFBO&&(this.depthFBO.color.delete(),this.depthFBO.delete())}pickObject(A){return this._pickClosestObject(A)}pickObjects(A){return this._pickVisibleObjects(A)}getLastPickedObject({x:A,y:t,layers:i,viewports:n},r=this.lastPickedInfo.info){const o=r&&r.layer&&r.layer.id,s=r&&r.viewport&&r.viewport.id,a=o?i.find(c=>c.id===o):null,g=s&&n.find(c=>c.id===s)||n[0],I=g&&g.unproject([A-g.x,t-g.y]);return{...r,...{x:A,y:t,viewport:g,coordinate:I,layer:a}}}_resizeBuffer(){var A,t;const{gl:i}=this;if(!this.pickingFBO&&(this.pickingFBO=new $e(i),$e.isSupported(i,{colorBufferFloat:!0}))){const n=new $e(i);n.attach({[36064]:new Pt(i,{format:ie(i)?34836:6408,type:5126})}),this.depthFBO=n}(A=this.pickingFBO)===null||A===void 0||A.resize({width:i.canvas.width,height:i.canvas.height}),(t=this.depthFBO)===null||t===void 0||t.resize({width:i.canvas.width,height:i.canvas.height})}_getPickable(A){if(this._pickable===!1)return null;const t=A.filter(i=>i.isPickable()&&!i.isComposite);return t.length?t:null}_pickClosestObject({layers:A,views:t,viewports:i,x:n,y:r,radius:o=0,depth:s=1,mode:a="query",unproject3D:g,onViewportActive:I,effects:l}){const c=this._getPickable(A),C=ha(this.gl);if(!c)return{result:[],emptyInfo:Db({viewports:i,x:n,y:r,pixelRatio:C})};this._resizeBuffer();const B=kh(this.gl,[n,r],!0),u=[B.x+Math.floor(B.width/2),B.y+Math.floor(B.height/2)],E=Math.round(o*C),{width:h,height:f}=this.pickingFBO,Q=this._getPickingRect({deviceX:u[0],deviceY:u[1],deviceRadius:E,deviceWidth:h,deviceHeight:f}),d={x:n-o,y:r-o,width:o*2+1,height:o*2+1};let w;const m=[],v=new Set;for(let x=0;x=g);D++){const F=m[D];let N={color:F.pickedColor,layer:null,index:F.pickedObjectIndex,picked:!0,x:n,y:r,pixelRatio:C};N=Rb({layer:F.pickedLayer,info:N,mode:a}),v.has(N.object)||v.set(N.object,N)}return Array.from(v.values())}_drawAndSample({layers:A,views:t,viewports:i,onViewportActive:n,deviceRect:r,cullRect:o,effects:s,pass:a},g=!1){const I=g?this.depthFBO:this.pickingFBO,{decodePickingColor:l}=this.pickLayersPass.render({layers:A,layerFilter:this.layerFilter,views:t,viewports:i,onViewportActive:n,pickingFBO:I,deviceRect:r,cullRect:o,effects:s,pass:a,pickZ:g}),{x:c,y:C,width:B,height:u}=r,E=new(g?Float32Array:Uint8Array)(B*u*4);return VE(I,{sourceX:c,sourceY:C,sourceWidth:B,sourceHeight:u,target:E}),{pickedColors:E,decodePickingColor:l}}_getPickingRect({deviceX:A,deviceY:t,deviceRadius:i,deviceWidth:n,deviceHeight:r}){const o=Math.max(0,A-i),s=Math.max(0,t-i),a=Math.min(n,A+i+1)-o,g=Math.min(r,t+i+1)-s;return a<=0||g<=0?null:{x:o,y:s,width:a,height:g}}}const Bz={zIndex:"1",position:"absolute",pointerEvents:"none",color:"#a0a7b4",backgroundColor:"#29323c",padding:"10px",top:"0",left:"0",display:"none"};class Ez{constructor(A){y(this,"el",null),y(this,"isVisible",!1);const t=A.parentElement;t&&(this.el=document.createElement("div"),this.el.className="deck-tooltip",Object.assign(this.el.style,Bz),t.appendChild(this.el))}setTooltip(A,t,i){const n=this.el;if(!!n){if(typeof A=="string")n.innerText=A;else if(A)A.text&&(n.innerText=A.text),A.html&&(n.innerHTML=A.html),A.className&&(n.className=A.className),Object.assign(n.style,A.style);else{this.isVisible=!1,n.style.display="none";return}this.isVisible=!0,n.style.display="block",n.style.transform="translate(".concat(t,"px, ").concat(i,"px)")}}remove(){this.el&&(this.el.remove(),this.el=null)}}var Pa={exports:{}};/*! Hammer.JS - v2.0.7 - 2016-04-22 + `}},...U9};const ZV=[Xp],$V=["vs:DECKGL_FILTER_SIZE(inout vec3 size, VertexGeometry geometry)","vs:DECKGL_FILTER_GL_POSITION(inout vec4 position, VertexGeometry geometry)","vs:DECKGL_FILTER_COLOR(inout vec4 color, VertexGeometry geometry)","fs:DECKGL_FILTER_COLOR(inout vec4 color, FragmentGeometry geometry)"];function AW(e){const A=rs.getDefaultProgramManager(e);for(const t of ZV)A.addDefaultModule(t);for(const t of $V)A.addShaderHook(t);return A}const eW=[255,255,255],tW=1;let iW=0;class nW{constructor(A={}){y(this,"id",void 0),y(this,"color",void 0),y(this,"intensity",void 0),y(this,"type","ambient");const{color:t=eW}=A,{intensity:i=tW}=A;this.id=A.id||"ambient-".concat(iW++),this.color=t,this.intensity=i}}const rW=[255,255,255],oW=1,sW=[0,0,-1];let aW=0;class dD{constructor(A={}){y(this,"id",void 0),y(this,"color",void 0),y(this,"intensity",void 0),y(this,"type","directional"),y(this,"direction",void 0),y(this,"shadow",void 0);const{color:t=rW}=A,{intensity:i=oW}=A,{direction:n=sW}=A,{_shadow:r=!1}=A;this.id=A.id||"directional-".concat(aW++),this.color=t,this.intensity=i,this.type="directional",this.direction=new hA(n).normalize().toArray(),this.shadow=r}getProjectedLight(A){return this}}class gW{constructor(A,t={id:"pass"}){y(this,"id",void 0),y(this,"gl",void 0),y(this,"props",void 0);const{id:i}=t;this.id=i,this.gl=A,this.props={...t}}setProps(A){Object.assign(this.props,A)}render(A){}cleanup(){}}class WE extends gW{constructor(...A){super(...A),y(this,"_lastRenderIndex",-1)}render(A){const t=this.gl;return Pn(t,{framebuffer:A.target}),this._drawLayers(A)}_drawLayers(A){const{target:t,moduleParameters:i,viewports:n,views:r,onViewportActive:o,clearStack:s=!0,clearCanvas:a=!0}=A;A.pass=A.pass||"unknown";const g=this.gl;a&&lW(g),s&&(this._lastRenderIndex=-1);const I=[];for(const l of n){const c=r&&r[l.id];o(l);const C=this._getDrawLayerParams(l,A),B=l.subViewports||[l];for(const u of B){const E=this._drawLayersInViewport(g,{target:t,moduleParameters:i,viewport:u,view:c,pass:A.pass,layers:A.layers},C);I.push(E)}}return I}_getDrawLayerParams(A,{layers:t,pass:i,layerFilter:n,cullRect:r,effects:o,moduleParameters:s}){const a=[],g=yb(this._lastRenderIndex+1),I={layer:t[0],viewport:A,isPicking:i.startsWith("picking"),renderPass:i,cullRect:r},l={};for(let c=0;cPp(A,l))}const I={totalCount:t.length,visibleCount:0,compositeCount:0,pickableCount:0};Pn(A,{viewport:g});for(let l=0;l{const o=n.props._offset,s=n.id,a=n.parent&&n.parent.id;let g;if(a&&!(a in A)&&i(n.parent,!1),a in t){const I=t[a]=t[a]||yb(A[a],A);g=I(n,r),t[s]=I}else Number.isFinite(o)?(g=o+(A[a]||0),t[s]=null):g=e;return r&&g>=e&&(e=g+1),A[s]=g,g};return i}function IW(e,{moduleParameters:A,target:t,viewport:i}){const n=t&&t.id!=="default-framebuffer",r=A&&A.devicePixelRatio||ua(e),o=n?t.height:e.drawingBufferHeight,s=i;return[s.x*r,o-(s.y+s.height)*r,s.width*r,s.height*r]}function lW(e){const A=e.drawingBufferWidth,t=e.drawingBufferHeight;Pn(e,{viewport:[0,0,A,t]}),e.clear(16640)}class cW extends WE{constructor(A,t){super(A,t),y(this,"shadowMap",void 0),y(this,"depthBuffer",void 0),y(this,"fbo",void 0),this.shadowMap=new Pt(A,{width:1,height:1,parameters:{[10241]:9729,[10240]:9729,[10242]:33071,[10243]:33071}}),this.depthBuffer=new Ps(A,{format:33189,width:1,height:1}),this.fbo=new $e(A,{id:"shadowmap",width:1,height:1,attachments:{[36064]:this.shadowMap,[36096]:this.depthBuffer}})}render(A){const t=this.fbo;ui(this.gl,{depthRange:[0,1],depthTest:!0,blend:!1,clearColor:[1,1,1,1]},()=>{const i=A.viewports[0],n=ua(this.gl),r=i.width*n,o=i.height*n;(r!==t.width||o!==t.height)&&t.resize({width:r,height:o}),super.render({...A,target:t,pass:"shadow"})})}shouldDrawLayer(A){return A.props.shadowEnabled!==!1}getModuleParameters(){return{drawToShadowMap:!0}}delete(){this.fbo&&(this.fbo.delete(),this.fbo=null),this.shadowMap&&(this.shadowMap.delete(),this.shadowMap=null),this.depthBuffer&&(this.depthBuffer.delete(),this.depthBuffer=null)}}const CW={color:[255,255,255],intensity:1},pD=[{color:[255,255,255],intensity:1,direction:[-1,3,-1]},{color:[255,255,255],intensity:.9,direction:[1,-8,-2.5]}],BW=[0,0,0,200/255];class mb{constructor(A={}){y(this,"id","lighting-effect"),y(this,"props",null),y(this,"shadowColor",BW),y(this,"shadow",void 0),y(this,"ambientLight",null),y(this,"directionalLights",[]),y(this,"pointLights",[]),y(this,"shadowPasses",[]),y(this,"shadowMaps",[]),y(this,"dummyShadowMap",null),y(this,"programManager",void 0),y(this,"shadowMatrices",void 0);for(const t in A){const i=A[t];switch(i.type){case"ambient":this.ambientLight=i;break;case"directional":this.directionalLights.push(i);break;case"point":this.pointLights.push(i);break}}this._applyDefaultLights(),this.shadow=this.directionalLights.some(t=>t.shadow)}preRender(A,{layers:t,layerFilter:i,viewports:n,onViewportActive:r,views:o}){if(!!this.shadow){this.shadowMatrices=this._calculateMatrices(),this.shadowPasses.length===0&&this._createShadowPasses(A),this.programManager||(this.programManager=rs.getDefaultProgramManager(A),Xh&&this.programManager.addDefaultModule(Xh)),this.dummyShadowMap||(this.dummyShadowMap=new Pt(A,{width:1,height:1}));for(let s=0;si.getProjectedLight({layer:A})),pointLights:this.pointLights.map(i=>i.getProjectedLight({layer:A}))},t}cleanup(){for(const A of this.shadowPasses)A.delete();this.shadowPasses.length=0,this.shadowMaps.length=0,this.dummyShadowMap&&(this.dummyShadowMap.delete(),this.dummyShadowMap=null),this.shadow&&this.programManager&&(this.programManager.removeDefaultModule(Xh),this.programManager=null)}_calculateMatrices(){const A=[];for(const t of this.directionalLights){const i=new fe().lookAt({eye:new hA(t.direction).negate()});A.push(i)}return A}_createShadowPasses(A){for(let t=0;tn&&(r=n);const o=this._pool,s=A.BYTES_PER_ELEMENT*r,a=o.findIndex(g=>g.byteLength>=s);if(a>=0){const g=new A(o.splice(a,1)[0],0,r);return i&&g.fill(0),g}return new A(r)}_release(A){if(!ArrayBuffer.isView(A))return;const t=this._pool,{buffer:i}=A,{byteLength:n}=i,r=t.findIndex(o=>o.byteLength>=n);r<0?t.push(i):(r>0||t.lengththis.opts.poolSize&&t.shift()}}var da=new EW;function Og(){return[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]}function uW(e,A){const t=e%A;return t<0?A+t:t}function hW(e){return[e[12],e[13],e[14]]}function fW(e){return{left:ds(e[3]+e[0],e[7]+e[4],e[11]+e[8],e[15]+e[12]),right:ds(e[3]-e[0],e[7]-e[4],e[11]-e[8],e[15]-e[12]),bottom:ds(e[3]+e[1],e[7]+e[5],e[11]+e[9],e[15]+e[13]),top:ds(e[3]-e[1],e[7]-e[5],e[11]-e[9],e[15]-e[13]),near:ds(e[3]+e[2],e[7]+e[6],e[11]+e[10],e[15]+e[14]),far:ds(e[3]-e[2],e[7]-e[6],e[11]-e[10],e[15]-e[14])}}const yD=new hA;function ds(e,A,t,i){yD.set(e,A,t);const n=yD.len();return{distance:i/n,normal:new hA(-e/n,-A/n,-t/n)}}function QW(e){return e-Math.fround(e)}let wg;function Zh(e,A){const{size:t=1,startIndex:i=0}=A,n=A.endIndex!==void 0?A.endIndex:e.length,r=(n-i)/t;wg=da.allocate(wg,r,{type:Float32Array,size:t*2});let o=i,s=0;for(;o!0){return Array.isArray(e)?vb(e,A,[]):A(e)?[e]:[]}function vb(e,A,t){let i=-1;for(;++i0}delete(){}getData(){return this.isLoaded?this._error?Promise.reject(this._error):this._content:this._loader.then(()=>this.getData())}setData(A,t){if(A===this._data&&!t)return;this._data=A;const i=++this._loadCount;let n=A;typeof A=="string"&&(n=LB(A)),n instanceof Promise?(this.isLoaded=!1,this._loader=n.then(r=>{this._loadCount===i&&(this.isLoaded=!0,this._error=void 0,this._content=r)}).catch(r=>{this._loadCount===i&&(this.isLoaded=!0,this._error=r||!0)})):(this.isLoaded=!0,this._error=void 0,this._content=A);for(const r of this._subscribers)r.onChange(this.getData())}}class NW{constructor({gl:A,protocol:t}){y(this,"protocol",void 0),y(this,"_context",void 0),y(this,"_resources",void 0),y(this,"_consumers",void 0),y(this,"_pruneRequest",void 0),this.protocol=t||"resource://",this._context={gl:A,resourceManager:this},this._resources={},this._consumers={},this._pruneRequest=null}contains(A){return A.startsWith(this.protocol)?!0:A in this._resources}add({resourceId:A,data:t,forceUpdate:i=!1,persistent:n=!0}){let r=this._resources[A];r?r.setData(t,i):(r=new FW(A,t,this._context),this._resources[A]=r),r.persistent=n}remove(A){const t=this._resources[A];t&&(t.delete(),delete this._resources[A])}unsubscribe({consumerId:A}){const t=this._consumers[A];if(t){for(const i in t){const n=t[i],r=this._resources[n.resourceId];r&&r.unsubscribe(n)}delete this._consumers[A],this.prune()}}subscribe({resourceId:A,onChange:t,consumerId:i,requestId:n="default"}){const{_resources:r,protocol:o}=this;A.startsWith(o)&&(A=A.replace(o,""),r[A]||this.add({resourceId:A,data:null,persistent:!1}));const s=r[A];if(this._track(i,n,s,t),s)return s.getData()}prune(){this._pruneRequest||(this._pruneRequest=setTimeout(()=>this._prune(),0))}finalize(){for(const A in this._resources)this._resources[A].delete()}_track(A,t,i,n){const r=this._consumers,o=r[A]=r[A]||{},s=o[t]||{},a=s.resourceId&&this._resources[s.resourceId];a&&(a.unsubscribe(s),this.prune()),i&&(o[t]=s,s.onChange=n,s.resourceId=i.id,i.subscribe(s))}_prune(){this._pruneRequest=null;for(const A of Object.keys(this._resources)){const t=this._resources[A];!t.persistent&&!t.inUse()&&(t.delete(),delete this._resources[A])}}}const LW="layerManager.setLayers",bW="layerManager.activateViewport";class GW{constructor(A,{deck:t,stats:i,viewport:n,timeline:r}={}){y(this,"layers",void 0),y(this,"context",void 0),y(this,"resourceManager",void 0),y(this,"_lastRenderedLayers",[]),y(this,"_needsRedraw",!1),y(this,"_needsUpdate",!1),y(this,"_nextLayers",null),y(this,"_debug",!1),y(this,"activateViewport",o=>{Rt(bW,this,o),o&&(this.context.viewport=o)}),this.layers=[],this.resourceManager=new NW({gl:A,protocol:"deck://"}),this.context={mousePosition:null,userData:{},layerManager:this,gl:A,deck:t,programManager:A&&AW(A),stats:i||new JE({id:"deck.gl"}),viewport:n||new Vn({id:"DEFAULT-INITIAL-VIEWPORT"}),timeline:r||new Cb,resourceManager:this.resourceManager,onError:void 0},Object.seal(this)}finalize(){this.resourceManager.finalize();for(const A of this.layers)this._finalizeLayer(A)}needsRedraw(A={clearRedrawFlags:!1}){let t=this._needsRedraw;A.clearRedrawFlags&&(this._needsRedraw=!1);for(const i of this.layers){const n=i.getNeedsRedraw(A);t=t||n}return t}needsUpdate(){return this._nextLayers&&this._nextLayers!==this._lastRenderedLayers?"layers changed":this._needsUpdate}setNeedsRedraw(A){this._needsRedraw=this._needsRedraw||A}setNeedsUpdate(A){this._needsUpdate=this._needsUpdate||A}getLayers({layerIds:A}={}){return A?this.layers.filter(t=>A.find(i=>t.id.indexOf(i)===0)):this.layers}setProps(A){"debug"in A&&(this._debug=A.debug),"userData"in A&&(this.context.userData=A.userData),"layers"in A&&(this._nextLayers=A.layers),"onError"in A&&(this.context.onError=A.onError)}setLayers(A,t){Rt(LW,this,t,A),this._lastRenderedLayers=A;const i=zE(A,Boolean);for(const n of i)n.context=this.context;this._updateLayers(this.layers,i)}updateLayers(){const A=this.needsUpdate();A&&(this.setNeedsRedraw("updating layers: ".concat(A)),this.setLayers(this._nextLayers||this._lastRenderedLayers,A)),this._nextLayers=null}_handleError(A,t,i){i.raiseError(t,"".concat(A," of ").concat(i))}_updateLayers(A,t){const i={};for(const o of A)i[o.id]?Ae.warn("Multiple old layers with same id ".concat(o.id))():i[o.id]=o;const n=[];this._updateSublayersRecursively(t,i,n),this._finalizeOldLayers(i);let r=!1;for(const o of n)if(o.hasUniformTransition()){r="Uniform transition in ".concat(o);break}this._needsUpdate=r,this.layers=n}_updateSublayersRecursively(A,t,i){for(const n of A){n.context=this.context;const r=t[n.id];r===null&&Ae.warn("Multiple new layers with same id ".concat(n.id))(),t[n.id]=null;let o=null;try{this._debug&&r!==n&&n.validateProps(),r?(this._transferLayerState(r,n),this._updateLayer(n)):this._initializeLayer(n),i.push(n),o=n.isComposite?n.getSubLayers():null}catch(s){this._handleError("matching",s,n)}o&&this._updateSublayersRecursively(o,t,i)}}_finalizeOldLayers(A){for(const t in A){const i=A[t];i&&this._finalizeLayer(i)}}_initializeLayer(A){try{A._initialize(),A.lifecycle=Fs.INITIALIZED}catch(t){this._handleError("initialization",t,A)}}_transferLayerState(A,t){t._transferState(A),t.lifecycle=Fs.MATCHED,t!==A&&(A.lifecycle=Fs.AWAITING_GC)}_updateLayer(A){try{A._update()}catch(t){this._handleError("update",t,A)}}_finalizeLayer(A){this._needsRedraw=this._needsRedraw||"finalized ".concat(A),A.lifecycle=Fs.AWAITING_FINALIZATION;try{A._finalize(),A.lifecycle=Fs.FINALIZED}catch(t){this._handleError("finalization",t,A)}}}function os(e,A){if(e===A)return!0;if(!e||!A)return!1;for(const t in e){const i=e[t],n=A[t];if(!(i===n||Array.isArray(i)&&Array.isArray(n)&&os(i,n)))return!1}return!0}class _W{constructor(A){y(this,"width",void 0),y(this,"height",void 0),y(this,"views",void 0),y(this,"viewState",void 0),y(this,"controllers",void 0),y(this,"timeline",void 0),y(this,"_viewports",void 0),y(this,"_viewportMap",void 0),y(this,"_isUpdating",void 0),y(this,"_needsRedraw",void 0),y(this,"_needsUpdate",void 0),y(this,"_eventManager",void 0),y(this,"_eventCallbacks",void 0),this.views=[],this.width=100,this.height=100,this.viewState={},this.controllers={},this.timeline=A.timeline,this._viewports=[],this._viewportMap={},this._isUpdating=!1,this._needsRedraw="First render",this._needsUpdate="Initialize",this._eventManager=A.eventManager,this._eventCallbacks={onViewStateChange:A.onViewStateChange,onInteractionStateChange:A.onInteractionStateChange},Object.seal(this),this.setProps(A)}finalize(){for(const A in this.controllers){const t=this.controllers[A];t&&t.finalize()}this.controllers={}}needsRedraw(A={clearRedrawFlags:!1}){const t=this._needsRedraw;return A.clearRedrawFlags&&(this._needsRedraw=!1),t}setNeedsUpdate(A){this._needsUpdate=this._needsUpdate||A,this._needsRedraw=this._needsRedraw||A}updateViewStates(){for(const A in this.controllers){const t=this.controllers[A];t&&t.updateTransition()}}getViewports(A){return A?this._viewports.filter(t=>t.containsPixel(A)):this._viewports}getViews(){const A={};return this.views.forEach(t=>{A[t.id]=t}),A}getView(A){return this.views.find(t=>t.id===A)}getViewState(A){const t=typeof A=="string"?this.getView(A):A,i=t&&this.viewState[t.getViewStateId()]||this.viewState;return t?t.filterViewState(i):i}getViewport(A){return this._viewportMap[A]}unproject(A,t){const i=this.getViewports(),n={x:A[0],y:A[1]};for(let r=i.length-1;r>=0;--r){const o=i[r];if(o.containsPixel(n)){const s=A.slice();return s[0]-=o.x,s[1]-=o.y,o.unproject(s,t)}}return null}setProps(A){A.views&&this._setViews(A.views),A.viewState&&this._setViewState(A.viewState),("width"in A||"height"in A)&&this._setSize(A.width,A.height),this._isUpdating||this._update()}_update(){this._isUpdating=!0,this._needsUpdate&&(this._needsUpdate=!1,this._rebuildViewports()),this._needsUpdate&&(this._needsUpdate=!1,this._rebuildViewports()),this._isUpdating=!1}_setSize(A,t){(A!==this.width||t!==this.height)&&(this.width=A,this.height=t,this.setNeedsUpdate("Size changed"))}_setViews(A){A=zE(A,Boolean),this._diffViews(A,this.views)&&this.setNeedsUpdate("views changed"),this.views=A}_setViewState(A){A?(!os(A,this.viewState)&&this.setNeedsUpdate("viewState changed"),this.viewState=A):Ae.warn("missing `viewState` or `initialViewState`")()}_onViewStateChange(A,t){this._eventCallbacks.onViewStateChange&&this._eventCallbacks.onViewStateChange({...t,viewId:A})}_createController(A,t){const i=t.type;return new i({timeline:this.timeline,eventManager:this._eventManager,onViewStateChange:this._onViewStateChange.bind(this,t.id),onStateChange:this._eventCallbacks.onInteractionStateChange,makeViewport:r=>{var o;return(o=this.getView(A.id))===null||o===void 0?void 0:o.makeViewport({viewState:r,width:this.width,height:this.height})}})}_updateController(A,t,i,n){const r=A.controller;if(r){const o={...t,...r,id:A.id,x:i.x,y:i.y,width:i.width,height:i.height};return n||(n=this._createController(A,o)),n&&n.setProps(o),n}return null}_rebuildViewports(){const{views:A}=this,t=this.controllers;this._viewports=[],this.controllers={};let i=!1;for(let n=A.length;n--;){const r=A[n],o=this.getViewState(r),s=r.makeViewport({viewState:o,width:this.width,height:this.height});let a=t[r.id];const g=Boolean(r.controller);g&&!a&&(i=!0),(i||!g)&&a&&(a.finalize(),a=null),this.controllers[r.id]=this._updateController(r,o,s,a),this._viewports.unshift(s)}for(const n in t){const r=t[n];r&&!this.controllers[n]&&r.finalize()}this._buildViewportMap()}_buildViewportMap(){this._viewportMap={},this._viewports.forEach(A=>{A.id&&(this._viewportMap[A.id]=this._viewportMap[A.id]||A)})}_diffViews(A,t){return A.length!==t.length?!0:A.some((i,n)=>!A[n].equals(t[n]))}}const MW=/([0-9]+\.?[0-9]*)(%|px)/;function rr(e){switch(typeof e){case"number":return{position:e,relative:!1};case"string":const A=MW.exec(e);if(A&&A.length>=3){const t=A[2]==="%",i=parseFloat(A[1]);return{position:t?i/100:i,relative:t}}default:throw new Error("Could not parse position string ".concat(e))}}function or(e,A){return e.relative?Math.round(e.position*A):e.position}function at(e,A){if(!e)throw new Error(A||"deck.gl: assertion failed.")}class Yr{constructor(A){y(this,"id",void 0),y(this,"viewportInstance",void 0),y(this,"_x",void 0),y(this,"_y",void 0),y(this,"_width",void 0),y(this,"_height",void 0),y(this,"_padding",void 0),y(this,"props",void 0);const{id:t,x:i=0,y:n=0,width:r="100%",height:o="100%",padding:s=null,viewportInstance:a}=A||{};at(!a||a instanceof Vn),this.viewportInstance=a,this.id=t||this.constructor.displayName||"view",this.props={...A,id:this.id},this._x=rr(i),this._y=rr(n),this._width=rr(r),this._height=rr(o),this._padding=s&&{left:rr(s.left||0),right:rr(s.right||0),top:rr(s.top||0),bottom:rr(s.bottom||0)},this.equals=this.equals.bind(this),Object.seal(this)}equals(A){return this===A?!0:this.viewportInstance?A.viewportInstance?this.viewportInstance.equals(A.viewportInstance):!1:this.ViewportType===A.ViewportType&&os(this.props,A.props)}makeViewport({width:A,height:t,viewState:i}){if(this.viewportInstance)return this.viewportInstance;i=this.filterViewState(i);const n=this.getDimensions({width:A,height:t});return new this.ViewportType({...i,...this.props,...n})}getViewStateId(){const{viewState:A}=this.props;return typeof A=="string"?A:(A==null?void 0:A.id)||this.id}filterViewState(A){if(this.props.viewState&&typeof this.props.viewState=="object"){if(!this.props.viewState.id)return this.props.viewState;const t={...A};for(const i in this.props.viewState)i!=="id"&&(t[i]=this.props.viewState[i]);return t}return A}getDimensions({width:A,height:t}){const i={x:or(this._x,A),y:or(this._y,t),width:or(this._width,A),height:or(this._height,t)};return this._padding&&(i.padding={left:or(this._padding.left,A),top:or(this._padding.top,t),right:or(this._padding.right,A),bottom:or(this._padding.bottom,t)}),i}get controller(){const A=this.props.controller;return A?A===!0?{type:this.ControllerType}:typeof A=="function"?{type:A}:{type:this.ControllerType,...A}:null}}class Hl{constructor(A){y(this,"_inProgress",void 0),y(this,"_handle",void 0),y(this,"_timeline",void 0),y(this,"time",void 0),y(this,"settings",void 0),this._inProgress=!1,this._handle=null,this._timeline=A,this.time=0,this.settings={duration:0}}get inProgress(){return this._inProgress}start(A){var t,i;this.cancel(),this.settings=A,this._inProgress=!0,(t=(i=this.settings).onStart)===null||t===void 0||t.call(i,this)}end(){if(this._inProgress){var A,t;this._timeline.removeChannel(this._handle),this._handle=null,this._inProgress=!1,(A=(t=this.settings).onEnd)===null||A===void 0||A.call(t,this)}}cancel(){if(this._inProgress){var A,t;(A=(t=this.settings).onInterrupt)===null||A===void 0||A.call(t,this),this._timeline.removeChannel(this._handle),this._handle=null,this._inProgress=!1}}update(){var A,t;if(!this._inProgress)return!1;if(this._handle===null){const{_timeline:i,settings:n}=this;this._handle=i.addChannel({delay:i.getTime(),duration:n.duration})}return this.time=this._timeline.getTime(this._handle),this._onUpdate(),(A=(t=this.settings).onUpdate)===null||A===void 0||A.call(t,this),this._timeline.isFinished(this._handle)&&this.end(),!0}_onUpdate(){}}const vD=()=>{},hd={BREAK:1,SNAP_TO_END:2,IGNORE:3},kW=e=>e,TW=hd.BREAK;class UW{constructor(A){y(this,"getControllerState",void 0),y(this,"props",void 0),y(this,"propsInTransition",void 0),y(this,"transition",void 0),y(this,"onViewStateChange",void 0),y(this,"onStateChange",void 0),y(this,"_onTransitionUpdate",t=>{const{time:i,settings:{interpolator:n,startProps:r,endProps:o,duration:s,easing:a}}=t,g=a(i/s),I=n.interpolateProps(r,o,g);this.propsInTransition=this.getControllerState({...this.props,...I}).getViewportProps(),this.onViewStateChange({viewState:this.propsInTransition,oldViewState:this.props})}),this.getControllerState=A.getControllerState,this.propsInTransition=null,this.transition=new Hl(A.timeline),this.onViewStateChange=A.onViewStateChange||vD,this.onStateChange=A.onStateChange||vD}finalize(){this.transition.cancel()}getViewportInTransition(){return this.propsInTransition}processViewStateChange(A){let t=!1;const i=this.props;if(this.props=A,!i||this._shouldIgnoreViewportChange(i,A))return!1;if(this._isTransitionEnabled(A)){let n=i;if(this.transition.inProgress){const{interruption:r,endProps:o}=this.transition.settings;n={...i,...r===hd.SNAP_TO_END?o:this.propsInTransition||i}}this._triggerTransition(n,A),t=!0}else this.transition.cancel();return t}updateTransition(){this.transition.update()}_isTransitionEnabled(A){const{transitionDuration:t,transitionInterpolator:i}=A;return(t>0||t==="auto")&&Boolean(i)}_isUpdateDueToCurrentTransition(A){return this.transition.inProgress&&this.propsInTransition?this.transition.settings.interpolator.arePropsEqual(A,this.propsInTransition):!1}_shouldIgnoreViewportChange(A,t){return this.transition.inProgress?this.transition.settings.interruption===hd.IGNORE||this._isUpdateDueToCurrentTransition(t):this._isTransitionEnabled(t)?t.transitionInterpolator.arePropsEqual(A,t):!0}_triggerTransition(A,t){const i=this.getControllerState(A),n=this.getControllerState(t).shortestPathFrom(i),r=t.transitionInterpolator,o=r.getDuration?r.getDuration(A,t):t.transitionDuration;if(o===0)return;const s=r.initializeProps(A,n);this.propsInTransition={};const a={duration:o,easing:t.transitionEasing||kW,interpolator:r,interruption:t.transitionInterruption||TW,startProps:s.start,endProps:s.end,onStart:t.onTransitionStart,onUpdate:this._onTransitionUpdate,onInterrupt:this._onTransitionEnd(t.onTransitionInterrupt),onEnd:this._onTransitionEnd(t.onTransitionEnd)};this.transition.start(a),this.onStateChange({inTransition:!0}),this.updateTransition()}_onTransitionEnd(A){return t=>{this.propsInTransition=null,this.onStateChange({inTransition:!1,isZooming:!1,isPanning:!1,isRotating:!1}),A==null||A(t)}}}class PW{constructor(A){y(this,"_propsToCompare",void 0),y(this,"_propsToExtract",void 0),y(this,"_requiredProps",void 0);const{compare:t,extract:i,required:n}=A;this._propsToCompare=t,this._propsToExtract=i||t,this._requiredProps=n}arePropsEqual(A,t){for(const i of this._propsToCompare)if(!(i in A)||!(i in t)||!ln(A[i],t[i]))return!1;return!0}initializeProps(A,t){const i={},n={};for(const r of this._propsToExtract)(r in A||r in t)&&(i[r]=A[r],n[r]=t[r]);return this._checkRequiredProps(i),this._checkRequiredProps(n),{start:i,end:n}}getDuration(A,t){return t.transitionDuration}_checkRequiredProps(A){!this._requiredProps||this._requiredProps.forEach(t=>{const i=A[t];at(Number.isFinite(i)||Array.isArray(i),"".concat(t," is required for transition"))})}}const HW=["longitude","latitude","zoom","bearing","pitch"],qW=["longitude","latitude","zoom"];class jE extends PW{constructor(A={}){const t=Array.isArray(A)?A:A.transitionProps,i=Array.isArray(A)?{}:A;i.transitionProps=Array.isArray(t)?{compare:t,required:t}:t||{compare:HW,required:qW},super(i.transitionProps),y(this,"opts",void 0),this.opts=i}initializeProps(A,t){const i=super.initializeProps(A,t),{makeViewport:n,around:r}=this.opts;if(n&&r){const o=n(A),s=n(t),a=o.unproject(r);i.start.around=r,Object.assign(i.end,{around:s.project(a),aroundPosition:a,width:t.width,height:t.height})}return i}interpolateProps(A,t,i){const n={};for(const r of this._propsToExtract)n[r]=Ro(A[r]||0,t[r]||0,i);if(t.aroundPosition&&this.opts.makeViewport){const r=this.opts.makeViewport({...t,...n});Object.assign(n,r.panByPosition(t.aroundPosition,Ro(A.around,t.around,i)))}return n}}const sr={transitionDuration:0},JW=300,kc=e=>1-(1-e)*(1-e),ps={WHEEL:["wheel"],PAN:["panstart","panmove","panend"],PINCH:["pinchstart","pinchmove","pinchend"],TRIPLE_PAN:["tripanstart","tripanmove","tripanend"],DOUBLE_TAP:["doubletap"],KEYBOARD:["keydown"]},oo={};class XE{constructor(A){y(this,"props",void 0),y(this,"state",{}),y(this,"transitionManager",void 0),y(this,"eventManager",void 0),y(this,"onViewStateChange",void 0),y(this,"onStateChange",void 0),y(this,"makeViewport",void 0),y(this,"_controllerState",void 0),y(this,"_events",{}),y(this,"_interactionState",{isDragging:!1}),y(this,"_customEvents",[]),y(this,"_eventStartBlocked",null),y(this,"_panMove",!1),y(this,"invertPan",!1),y(this,"dragMode","rotate"),y(this,"inertia",0),y(this,"scrollZoom",!0),y(this,"dragPan",!0),y(this,"dragRotate",!0),y(this,"doubleClickZoom",!0),y(this,"touchZoom",!0),y(this,"touchRotate",!1),y(this,"keyboard",!0),this.transitionManager=new UW({...A,getControllerState:t=>new this.ControllerState(t),onViewStateChange:this._onTransition.bind(this),onStateChange:this._setInteractionState.bind(this)}),this.handleEvent=this.handleEvent.bind(this),this.eventManager=A.eventManager,this.onViewStateChange=A.onViewStateChange||(()=>{}),this.onStateChange=A.onStateChange||(()=>{}),this.makeViewport=A.makeViewport}set events(A){this.toggleEvents(this._customEvents,!1),this.toggleEvents(A,!0),this._customEvents=A,this.props&&this.setProps(this.props)}finalize(){for(const t in this._events)if(this._events[t]){var A;(A=this.eventManager)===null||A===void 0||A.off(t,this.handleEvent)}this.transitionManager.finalize()}handleEvent(A){this._controllerState=void 0;const t=this._eventStartBlocked;switch(A.type){case"panstart":return t?!1:this._onPanStart(A);case"panmove":return this._onPan(A);case"panend":return this._onPanEnd(A);case"pinchstart":return t?!1:this._onPinchStart(A);case"pinchmove":return this._onPinch(A);case"pinchend":return this._onPinchEnd(A);case"tripanstart":return t?!1:this._onTriplePanStart(A);case"tripanmove":return this._onTriplePan(A);case"tripanend":return this._onTriplePanEnd(A);case"doubletap":return this._onDoubleTap(A);case"wheel":return this._onWheel(A);case"keydown":return this._onKeyDown(A);default:return!1}}get controllerState(){return this._controllerState=this._controllerState||new this.ControllerState({makeViewport:this.makeViewport,...this.props,...this.state}),this._controllerState}getCenter(A){const{x:t,y:i}=this.props,{offsetCenter:n}=A;return[n.x-t,n.y-i]}isPointInBounds(A,t){const{width:i,height:n}=this.props;if(t&&t.handled)return!1;const r=A[0]>=0&&A[0]<=i&&A[1]>=0&&A[1]<=n;return r&&t&&t.stopPropagation(),r}isFunctionKeyPressed(A){const{srcEvent:t}=A;return Boolean(t.metaKey||t.altKey||t.ctrlKey||t.shiftKey)}isDragging(){return this._interactionState.isDragging||!1}blockEvents(A){const t=setTimeout(()=>{this._eventStartBlocked===t&&(this._eventStartBlocked=null)},A);this._eventStartBlocked=t}setProps(A){A.dragMode&&(this.dragMode=A.dragMode),this.props=A,"transitionInterpolator"in A||(A.transitionInterpolator=this._getTransitionProps().transitionInterpolator),this.transitionManager.processViewStateChange(A);const{inertia:t}=A;this.inertia=Number.isFinite(t)?t:t===!0?JW:0;const{scrollZoom:i=!0,dragPan:n=!0,dragRotate:r=!0,doubleClickZoom:o=!0,touchZoom:s=!0,touchRotate:a=!1,keyboard:g=!0}=A,I=Boolean(this.onViewStateChange);this.toggleEvents(ps.WHEEL,I&&i),this.toggleEvents(ps.PAN,I&&(n||r)),this.toggleEvents(ps.PINCH,I&&(s||a)),this.toggleEvents(ps.TRIPLE_PAN,I&&a),this.toggleEvents(ps.DOUBLE_TAP,I&&o),this.toggleEvents(ps.KEYBOARD,I&&g),this.scrollZoom=i,this.dragPan=n,this.dragRotate=r,this.doubleClickZoom=o,this.touchZoom=s,this.touchRotate=a,this.keyboard=g}updateTransition(){this.transitionManager.updateTransition()}toggleEvents(A,t){this.eventManager&&A.forEach(i=>{this._events[i]!==t&&(this._events[i]=t,t?this.eventManager.on(i,this.handleEvent):this.eventManager.off(i,this.handleEvent))})}updateViewport(A,t=null,i={}){const n={...A.getViewportProps(),...t},r=this.controllerState!==A;if(this.state=A.getState(),this._setInteractionState(i),r){const o=this.controllerState&&this.controllerState.getViewportProps();this.onViewStateChange&&this.onViewStateChange({viewState:n,interactionState:this._interactionState,oldViewState:o})}}_onTransition(A){this.onViewStateChange({...A,interactionState:this._interactionState})}_setInteractionState(A){Object.assign(this._interactionState,A),this.onStateChange(this._interactionState)}_onPanStart(A){const t=this.getCenter(A);if(!this.isPointInBounds(t,A))return!1;let i=this.isFunctionKeyPressed(A)||A.rightButton||!1;(this.invertPan||this.dragMode==="pan")&&(i=!i);const n=this.controllerState[i?"panStart":"rotateStart"]({pos:t});return this._panMove=i,this.updateViewport(n,sr,{isDragging:!0}),!0}_onPan(A){return this.isDragging()?this._panMove?this._onPanMove(A):this._onPanRotate(A):!1}_onPanEnd(A){return this.isDragging()?this._panMove?this._onPanMoveEnd(A):this._onPanRotateEnd(A):!1}_onPanMove(A){if(!this.dragPan)return!1;const t=this.getCenter(A),i=this.controllerState.pan({pos:t});return this.updateViewport(i,sr,{isDragging:!0,isPanning:!0}),!0}_onPanMoveEnd(A){const{inertia:t}=this;if(this.dragPan&&t&&A.velocity){const i=this.getCenter(A),n=[i[0]+A.velocityX*t/2,i[1]+A.velocityY*t/2],r=this.controllerState.pan({pos:n}).panEnd();this.updateViewport(r,{...this._getTransitionProps(),transitionDuration:t,transitionEasing:kc},{isDragging:!1,isPanning:!0})}else{const i=this.controllerState.panEnd();this.updateViewport(i,null,{isDragging:!1,isPanning:!1})}return!0}_onPanRotate(A){if(!this.dragRotate)return!1;const t=this.getCenter(A),i=this.controllerState.rotate({pos:t});return this.updateViewport(i,sr,{isDragging:!0,isRotating:!0}),!0}_onPanRotateEnd(A){const{inertia:t}=this;if(this.dragRotate&&t&&A.velocity){const i=this.getCenter(A),n=[i[0]+A.velocityX*t/2,i[1]+A.velocityY*t/2],r=this.controllerState.rotate({pos:n}).rotateEnd();this.updateViewport(r,{...this._getTransitionProps(),transitionDuration:t,transitionEasing:kc},{isDragging:!1,isRotating:!0})}else{const i=this.controllerState.rotateEnd();this.updateViewport(i,null,{isDragging:!1,isRotating:!1})}return!0}_onWheel(A){if(!this.scrollZoom)return!1;A.srcEvent.preventDefault();const t=this.getCenter(A);if(!this.isPointInBounds(t,A))return!1;const{speed:i=.01,smooth:n=!1}=this.scrollZoom===!0?{}:this.scrollZoom,{delta:r}=A;let o=2/(1+Math.exp(-Math.abs(r*i)));r<0&&o!==0&&(o=1/o);const s=this.controllerState.zoom({pos:t,scale:o});return this.updateViewport(s,{...this._getTransitionProps({around:t}),transitionDuration:n?250:1},{isZooming:!0,isPanning:!0}),!0}_onTriplePanStart(A){const t=this.getCenter(A);if(!this.isPointInBounds(t,A))return!1;const i=this.controllerState.rotateStart({pos:t});return this.updateViewport(i,sr,{isDragging:!0}),!0}_onTriplePan(A){if(!this.touchRotate||!this.isDragging())return!1;const t=this.getCenter(A);t[0]-=A.deltaX;const i=this.controllerState.rotate({pos:t});return this.updateViewport(i,sr,{isDragging:!0,isRotating:!0}),!0}_onTriplePanEnd(A){if(!this.isDragging())return!1;const{inertia:t}=this;if(this.touchRotate&&t&&A.velocityY){const i=this.getCenter(A),n=[i[0],i[1]+=A.velocityY*t/2],r=this.controllerState.rotate({pos:n});this.updateViewport(r,{...this._getTransitionProps(),transitionDuration:t,transitionEasing:kc},{isDragging:!1,isRotating:!0}),this.blockEvents(t)}else{const i=this.controllerState.rotateEnd();this.updateViewport(i,null,{isDragging:!1,isRotating:!1})}return!0}_onPinchStart(A){const t=this.getCenter(A);if(!this.isPointInBounds(t,A))return!1;const i=this.controllerState.zoomStart({pos:t}).rotateStart({pos:t});return oo._startPinchRotation=A.rotation,oo._lastPinchEvent=A,this.updateViewport(i,sr,{isDragging:!0}),!0}_onPinch(A){if(!this.touchZoom&&!this.touchRotate||!this.isDragging())return!1;let t=this.controllerState;if(this.touchZoom){const{scale:i}=A,n=this.getCenter(A);t=t.zoom({pos:n,scale:i})}if(this.touchRotate){const{rotation:i}=A;t=t.rotate({deltaAngleX:oo._startPinchRotation-i})}return this.updateViewport(t,sr,{isDragging:!0,isPanning:this.touchZoom,isZooming:this.touchZoom,isRotating:this.touchRotate}),oo._lastPinchEvent=A,!0}_onPinchEnd(A){if(!this.isDragging())return!1;const{inertia:t}=this,{_lastPinchEvent:i}=oo;if(this.touchZoom&&t&&i&&A.scale!==i.scale){const n=this.getCenter(A);let r=this.controllerState.rotateEnd();const o=Math.log2(A.scale),s=(o-Math.log2(i.scale))/(A.deltaTime-i.deltaTime),a=Math.pow(2,o+s*t/2);r=r.zoom({pos:n,scale:a}).zoomEnd(),this.updateViewport(r,{...this._getTransitionProps({around:n}),transitionDuration:t,transitionEasing:kc},{isDragging:!1,isPanning:this.touchZoom,isZooming:this.touchZoom,isRotating:!1}),this.blockEvents(t)}else{const n=this.controllerState.zoomEnd().rotateEnd();this.updateViewport(n,null,{isDragging:!1,isPanning:!1,isZooming:!1,isRotating:!1})}return oo._startPinchRotation=null,oo._lastPinchEvent=null,!0}_onDoubleTap(A){if(!this.doubleClickZoom)return!1;const t=this.getCenter(A);if(!this.isPointInBounds(t,A))return!1;const i=this.isFunctionKeyPressed(A),n=this.controllerState.zoom({pos:t,scale:i?.5:2});return this.updateViewport(n,this._getTransitionProps({around:t}),{isZooming:!0,isPanning:!0}),this.blockEvents(100),!0}_onKeyDown(A){if(!this.keyboard)return!1;const t=this.isFunctionKeyPressed(A),{zoomSpeed:i,moveSpeed:n,rotateSpeedX:r,rotateSpeedY:o}=this.keyboard===!0?{}:this.keyboard,{controllerState:s}=this;let a;const g={};switch(A.srcEvent.code){case"Minus":a=t?s.zoomOut(i).zoomOut(i):s.zoomOut(i),g.isZooming=!0;break;case"Equal":a=t?s.zoomIn(i).zoomIn(i):s.zoomIn(i),g.isZooming=!0;break;case"ArrowLeft":t?(a=s.rotateLeft(r),g.isRotating=!0):(a=s.moveLeft(n),g.isPanning=!0);break;case"ArrowRight":t?(a=s.rotateRight(r),g.isRotating=!0):(a=s.moveRight(n),g.isPanning=!0);break;case"ArrowUp":t?(a=s.rotateUp(o),g.isRotating=!0):(a=s.moveUp(n),g.isPanning=!0);break;case"ArrowDown":t?(a=s.rotateDown(o),g.isRotating=!0):(a=s.moveDown(n),g.isPanning=!0);break;default:return!1}return this.updateViewport(a,this._getTransitionProps(),g),!0}_getTransitionProps(A){const{transition:t}=this;return!t||!t.transitionInterpolator?sr:A?{...t,transitionInterpolator:new jE({...A,...t.transitionInterpolator.opts,makeViewport:this.controllerState.makeViewport})}:t}}class Sb{constructor(A,t){y(this,"_viewportProps",void 0),y(this,"_state",void 0),this._viewportProps=this.applyConstraints(A),this._state=t}getViewportProps(){return this._viewportProps}getState(){return this._state}}const SD=5,OW=1.2;class YW extends Sb{constructor(A){const{width:t,height:i,latitude:n,longitude:r,zoom:o,bearing:s=0,pitch:a=0,altitude:g=1.5,position:I=[0,0,0],maxZoom:l=20,minZoom:c=0,maxPitch:C=60,minPitch:B=0,startPanLngLat:u,startZoomLngLat:E,startRotatePos:h,startBearing:f,startPitch:Q,startZoom:d,normalize:w=!0}=A;at(Number.isFinite(r)),at(Number.isFinite(n)),at(Number.isFinite(o)),super({width:t,height:i,latitude:n,longitude:r,zoom:o,bearing:s,pitch:a,altitude:g,maxZoom:l,minZoom:c,maxPitch:C,minPitch:B,normalize:w,position:I},{startPanLngLat:u,startZoomLngLat:E,startRotatePos:h,startBearing:f,startPitch:Q,startZoom:d}),y(this,"makeViewport",void 0),this.makeViewport=A.makeViewport}panStart({pos:A}){return this._getUpdatedState({startPanLngLat:this._unproject(A)})}pan({pos:A,startPos:t}){const i=this.getState().startPanLngLat||this._unproject(t);if(!i)return this;const r=this.makeViewport(this.getViewportProps()).panByPosition(i,A);return this._getUpdatedState(r)}panEnd(){return this._getUpdatedState({startPanLngLat:null})}rotateStart({pos:A}){return this._getUpdatedState({startRotatePos:A,startBearing:this.getViewportProps().bearing,startPitch:this.getViewportProps().pitch})}rotate({pos:A,deltaAngleX:t=0,deltaAngleY:i=0}){const{startRotatePos:n,startBearing:r,startPitch:o}=this.getState();if(!n||r===void 0||o===void 0)return this;let s;return A?s=this._getNewRotation(A,n,o,r):s={bearing:r+t,pitch:o+i},this._getUpdatedState(s)}rotateEnd(){return this._getUpdatedState({startBearing:null,startPitch:null})}zoomStart({pos:A}){return this._getUpdatedState({startZoomLngLat:this._unproject(A),startZoom:this.getViewportProps().zoom})}zoom({pos:A,startPos:t,scale:i}){let{startZoom:n,startZoomLngLat:r}=this.getState();if(r||(n=this.getViewportProps().zoom,r=this._unproject(t)||this._unproject(A)),!r)return this;const{maxZoom:o,minZoom:s}=this.getViewportProps();let a=n+Math.log2(i);a=ft(a,s,o);const g=this.makeViewport({...this.getViewportProps(),zoom:a});return this._getUpdatedState({zoom:a,...g.panByPosition(r,A)})}zoomEnd(){return this._getUpdatedState({startZoomLngLat:null,startZoom:null})}zoomIn(A=2){return this._zoomFromCenter(A)}zoomOut(A=2){return this._zoomFromCenter(1/A)}moveLeft(A=100){return this._panFromCenter([A,0])}moveRight(A=100){return this._panFromCenter([-A,0])}moveUp(A=100){return this._panFromCenter([0,A])}moveDown(A=100){return this._panFromCenter([0,-A])}rotateLeft(A=15){return this._getUpdatedState({bearing:this.getViewportProps().bearing-A})}rotateRight(A=15){return this._getUpdatedState({bearing:this.getViewportProps().bearing+A})}rotateUp(A=10){return this._getUpdatedState({pitch:this.getViewportProps().pitch+A})}rotateDown(A=10){return this._getUpdatedState({pitch:this.getViewportProps().pitch-A})}shortestPathFrom(A){const t=A.getViewportProps(),i={...this.getViewportProps()},{bearing:n,longitude:r}=i;return Math.abs(n-t.bearing)>180&&(i.bearing=n<0?n+360:n-360),Math.abs(r-t.longitude)>180&&(i.longitude=r<0?r+360:r-360),i}applyConstraints(A){const{maxZoom:t,minZoom:i,zoom:n}=A;A.zoom=ft(n,i,t);const{maxPitch:r,minPitch:o,pitch:s}=A;A.pitch=ft(s,o,r);const{normalize:a=!0}=A;return a&&Object.assign(A,HV(A)),A}_zoomFromCenter(A){const{width:t,height:i}=this.getViewportProps();return this.zoom({pos:[t/2,i/2],scale:A})}_panFromCenter(A){const{width:t,height:i}=this.getViewportProps();return this.pan({startPos:[t/2,i/2],pos:[t/2+A[0],i/2+A[1]]})}_getUpdatedState(A){return new this.constructor({makeViewport:this.makeViewport,...this.getViewportProps(),...this.getState(),...A})}_unproject(A){const t=this.makeViewport(this.getViewportProps());return A&&t.unproject(A)}_getNewRotation(A,t,i,n){const r=A[0]-t[0],o=A[1]-t[1],s=A[1],a=t[1],{width:g,height:I}=this.getViewportProps(),l=r/g;let c=0;o>0?Math.abs(I-a)>SD&&(c=o/(a-I)*OW):o<0&&a>SD&&(c=1-s/a),c=ft(c,-1,1);const{minPitch:C,maxPitch:B}=this.getViewportProps(),u=n+180*l;let E=i;return c>0?E=i+c*(B-i):c<0&&(E=i-c*(C-i)),{pitch:E,bearing:u}}}class KW extends XE{constructor(...A){super(...A),y(this,"ControllerState",YW),y(this,"transition",{transitionDuration:300,transitionInterpolator:new jE({transitionProps:{compare:["longitude","latitude","zoom","bearing","pitch","position"],required:["longitude","latitude","zoom"]}})}),y(this,"dragMode","pan")}setProps(A){A.position=A.position||[0,0,0];const t=this.props;super.setProps(A),(!t||t.height!==A.height)&&this.updateViewport(new this.ControllerState({makeViewport:this.makeViewport,...A,...this.state}))}}class Db extends Yr{get ViewportType(){return Cn}get ControllerType(){return KW}}y(Db,"displayName","MapView");class VW extends WE{constructor(A,t){super(A,t),y(this,"maskMap",void 0),y(this,"fbo",void 0);const{mapSize:i=2048}=t;this.maskMap=new Pt(A,{width:i,height:i,parameters:{[10241]:9729,[10240]:9729,[10242]:33071,[10243]:33071}}),this.fbo=new $e(A,{id:"maskmap",width:i,height:i,attachments:{[36064]:this.maskMap}})}render(A){const t=this.gl,i=[!1,!1,!1,!1];return i[A.channel]=!0,ui(t,{clearColor:[255,255,255,255],blend:!0,blendFunc:[0,1],blendEquation:32778,colorMask:i,depthTest:!1},()=>super.render({...A,target:this.fbo,pass:"mask"}))}shouldDrawLayer(A){return A.props.operation===Tl.MASK}delete(){this.fbo.delete(),this.maskMap.delete()}}const WW=new fe().lookAt({eye:[0,0,1]});function zW({width:e,height:A,near:t,far:i,padding:n}){let r=-e/2,o=e/2,s=-A/2,a=A/2;if(n){const{left:g=0,right:I=0,top:l=0,bottom:c=0}=n,C=ft((g+e-I)/2,0,e)-e/2,B=ft((l+A-c)/2,0,A)-A/2;r-=C,o-=C,s+=B,a+=B}return new fe().ortho({left:r,right:o,bottom:s,top:a,near:t,far:i})}class jW extends Vn{constructor(A){const{width:t,height:i,near:n=.1,far:r=1e3,zoom:o=0,target:s=[0,0,0],padding:a=null,flipY:g=!0}=A,I=Array.isArray(o)?o[0]:o,l=Array.isArray(o)?o[1]:o,c=Math.min(I,l),C=Math.pow(2,c);let B;if(I!==l){const u=Math.pow(2,I),E=Math.pow(2,l);B={unitsPerMeter:[u/C,E/C,1],metersPerUnit:[C/u,C/E,1]}}super({...A,longitude:void 0,position:s,viewMatrix:WW.clone().scale([C,C*(g?-1:1),C]),projectionMatrix:zW({width:t||1,height:i||1,padding:a,near:n,far:r}),zoom:c,distanceScales:B})}projectFlat([A,t]){const{unitsPerMeter:i}=this.distanceScales;return[A*i[0],t*i[1]]}unprojectFlat([A,t]){const{metersPerUnit:i}=this.distanceScales;return[A*i[0],t*i[1]]}panByPosition(A,t){const i=Pl(t,this.pixelUnprojectionMatrix),n=this.projectFlat(A),r=_B([],n,zL([],i)),o=_B([],this.center,r);return{target:this.unprojectFlat(o)}}}class Rb extends Sb{constructor(A){const{width:t,height:i,rotationX:n=0,rotationOrbit:r=0,target:o=[0,0,0],zoom:s=0,minRotationX:a=-90,maxRotationX:g=90,minZoom:I=-1/0,maxZoom:l=1/0,startPanPosition:c,startRotatePos:C,startRotationX:B,startRotationOrbit:u,startZoomPosition:E,startZoom:h}=A;super({width:t,height:i,rotationX:n,rotationOrbit:r,target:o,zoom:s,minRotationX:a,maxRotationX:g,minZoom:I,maxZoom:l},{startPanPosition:c,startRotatePos:C,startRotationX:B,startRotationOrbit:u,startZoomPosition:E,startZoom:h}),y(this,"makeViewport",void 0),this.makeViewport=A.makeViewport}panStart({pos:A}){return this._getUpdatedState({startPanPosition:this._unproject(A)})}pan({pos:A,startPosition:t}){const i=this.getState().startPanPosition||t;if(!i)return this;const r=this.makeViewport(this.getViewportProps()).panByPosition(i,A);return this._getUpdatedState(r)}panEnd(){return this._getUpdatedState({startPanPosition:null})}rotateStart({pos:A}){return this._getUpdatedState({startRotatePos:A,startRotationX:this.getViewportProps().rotationX,startRotationOrbit:this.getViewportProps().rotationOrbit})}rotate({pos:A,deltaAngleX:t=0,deltaAngleY:i=0}){const{startRotatePos:n,startRotationX:r,startRotationOrbit:o}=this.getState(),{width:s,height:a}=this.getViewportProps();if(!n||r===void 0||o===void 0)return this;let g;if(A){let I=(A[0]-n[0])/s;const l=(A[1]-n[1])/a;(r<-90||r>90)&&(I*=-1),g={rotationX:r+l*180,rotationOrbit:o+I*180}}else g={rotationX:r+i,rotationOrbit:o+t};return this._getUpdatedState(g)}rotateEnd(){return this._getUpdatedState({startRotationX:null,startRotationOrbit:null})}shortestPathFrom(A){const t=A.getViewportProps(),i={...this.getViewportProps()},{rotationOrbit:n}=i;return Math.abs(n-t.rotationOrbit)>180&&(i.rotationOrbit=n<0?n+360:n-360),i}zoomStart({pos:A}){return this._getUpdatedState({startZoomPosition:this._unproject(A),startZoom:this.getViewportProps().zoom})}zoom({pos:A,startPos:t,scale:i}){let{startZoom:n,startZoomPosition:r}=this.getState();if(r||(n=this.getViewportProps().zoom,r=this._unproject(t)||this._unproject(A)),!r)return this;const o=this._calculateNewZoom({scale:i,startZoom:n}),s=this.makeViewport({...this.getViewportProps(),zoom:o});return this._getUpdatedState({zoom:o,...s.panByPosition(r,A)})}zoomEnd(){return this._getUpdatedState({startZoomPosition:null,startZoom:null})}zoomIn(A=2){return this._getUpdatedState({zoom:this._calculateNewZoom({scale:A})})}zoomOut(A=2){return this._getUpdatedState({zoom:this._calculateNewZoom({scale:1/A})})}moveLeft(A=50){return this._panFromCenter([-A,0])}moveRight(A=50){return this._panFromCenter([A,0])}moveUp(A=50){return this._panFromCenter([0,-A])}moveDown(A=50){return this._panFromCenter([0,A])}rotateLeft(A=15){return this._getUpdatedState({rotationOrbit:this.getViewportProps().rotationOrbit-A})}rotateRight(A=15){return this._getUpdatedState({rotationOrbit:this.getViewportProps().rotationOrbit+A})}rotateUp(A=10){return this._getUpdatedState({rotationX:this.getViewportProps().rotationX-A})}rotateDown(A=10){return this._getUpdatedState({rotationX:this.getViewportProps().rotationX+A})}_unproject(A){const t=this.makeViewport(this.getViewportProps());return A&&t.unproject(A)}_calculateNewZoom({scale:A,startZoom:t}){const{maxZoom:i,minZoom:n}=this.getViewportProps();t===void 0&&(t=this.getViewportProps().zoom);const r=t+Math.log2(A);return ft(r,n,i)}_panFromCenter(A){const{width:t,height:i,target:n}=this.getViewportProps();return this.pan({startPosition:n,pos:[t/2+A[0],i/2+A[1]]})}_getUpdatedState(A){return new this.constructor({makeViewport:this.makeViewport,...this.getViewportProps(),...this.getState(),...A})}applyConstraints(A){const{maxZoom:t,minZoom:i,zoom:n,maxRotationX:r,minRotationX:o,rotationOrbit:s}=A;return A.zoom=Array.isArray(n)?[ft(n[0],i,t),ft(n[1],i,t)]:ft(n,i,t),A.rotationX=ft(A.rotationX,o,r),(s<-180||s>180)&&(A.rotationOrbit=uW(s+180,360)-180),A}}class XW extends XE{constructor(...A){super(...A),y(this,"ControllerState",Rb),y(this,"transition",{transitionDuration:300,transitionInterpolator:new jE({transitionProps:{compare:["target","zoom","rotationX","rotationOrbit"],required:["target","zoom"]}})})}}class ZW extends Rb{constructor(A){super(A),y(this,"zoomAxis",void 0),this.zoomAxis=A.zoomAxis||"all"}_calculateNewZoom({scale:A,startZoom:t}){const{maxZoom:i,minZoom:n}=this.getViewportProps();t===void 0&&(t=this.getViewportProps().zoom);let r=Math.log2(A);if(Array.isArray(t)){let[o,s]=t;switch(this.zoomAxis){case"X":o=ft(o+r,n,i);break;case"Y":s=ft(s+r,n,i);break;default:let a=Math.min(o+r,s+r);ai&&(r+=i-a),o+=r,s+=r}return[o,s]}return ft(t+r,n,i)}}class $W extends XE{constructor(...A){super(...A),y(this,"ControllerState",ZW),y(this,"transition",{transitionDuration:300,transitionInterpolator:new jE(["target","zoom"])}),y(this,"dragMode","pan")}_onPanRotate(){return!1}}class ql extends Yr{get ViewportType(){return jW}get ControllerType(){return $W}}y(ql,"displayName","OrthographicView");function Az({layers:e,viewport:A}){let t=null;for(const r of e){const o=r.getBounds();o&&(t?(t[0]=Math.min(t[0],o[0][0]),t[1]=Math.min(t[1],o[0][1]),t[2]=Math.max(t[2],o[1][0]),t[3]=Math.max(t[3],o[1][1])):t=[o[0][0],o[0][1],o[1][0],o[1][1]])}const i=A.getBounds();if(!t)return i;const n=tz(i);return t[2]-t[0]l.props.visible&&l.props.operation===Tl.MASK);if(s.length===0){this.masks=null,this.channels.length=0;return}this.masks={},this.maskPass||(this.maskPass=new VW(A,{id:"default-mask"}),this.maskMap=this.maskPass.maskMap);const a=this._sortMaskChannels(s),g=n[0],I=!this.lastViewport||!this.lastViewport.equals(g);for(const l in a)this._renderChannel(a[l],{layerFilter:i,onViewportActive:r,views:o,viewport:g,viewportChanged:I})}_renderChannel(A,{layerFilter:t,onViewportActive:i,views:n,viewport:r,viewportChanged:o}){const s=this.channels[A.index];if(!s)return;const a=A===s||s.layers.length!==A.layers.length||A.layerBounds.some((g,I)=>g!==s.layerBounds[I]);if(A.bounds=s.bounds,A.maskBounds=s.maskBounds,this.channels[A.index]=A,(a||o)&&(this.lastViewport=r,A.bounds=Az({layers:A.layers,viewport:r}),a||!ln(A.bounds,s.bounds))){const{maskPass:g,maskMap:I}=this,l=ez({bounds:A.bounds,viewport:r,width:I.width,height:I.height});A.maskBounds=l?l.getBounds():[0,0,1,1],g.render({pass:"mask",channel:A.index,layers:A.layers,layerFilter:t,viewports:l?[l]:[],onViewportActive:i,views:n,moduleParameters:{devicePixelRatio:1}})}this.masks[A.id]={index:A.index,bounds:A.maskBounds,coordinateOrigin:A.coordinateOrigin,coordinateSystem:A.coordinateSystem}}_sortMaskChannels(A){const t={};let i=0;for(const n of A){const{id:r}=n.root;let o=t[r];if(!o){if(++i>4){Ae.warn("Too many mask layers. The max supported is 4")();continue}o={id:r,index:this.channels.findIndex(s=>(s==null?void 0:s.id)===r),layers:[],layerBounds:[],coordinateOrigin:n.root.props.coordinateOrigin,coordinateSystem:n.root.props.coordinateSystem},t[r]=o}o.layers.push(n),o.layerBounds.push(n.getBounds())}for(let n=0;n<4;n++){const r=this.channels[n];(!r||!(r.id in t))&&(this.channels[n]=null)}for(const n in t){const r=t[n];r.index<0&&(r.index=this.channels.findIndex(o=>!o),this.channels[r.index]=r)}return t}getModuleParameters(){return{maskMap:this.masks?this.maskMap:this.dummyMaskMap,maskChannels:this.masks}}cleanup(){this.dummyMaskMap&&(this.dummyMaskMap.delete(),this.dummyMaskMap=void 0),this.maskPass&&(this.maskPass.delete(),this.maskPass=void 0,this.maskMap=void 0),this.lastViewport=void 0,this.masks=null,this.channels.length=0}}const nz=new mb;class rz{constructor(){y(this,"effects",void 0),y(this,"_internalEffects",void 0),y(this,"_needsRedraw",void 0),this.effects=[],this._internalEffects=[],this._needsRedraw="Initial render",this.setEffects()}setProps(A){"effects"in A&&(A.effects.length!==this.effects.length||!os(A.effects,this.effects))&&(this.setEffects(A.effects),this._needsRedraw="effects changed")}needsRedraw(A={clearRedrawFlags:!1}){const t=this._needsRedraw;return A.clearRedrawFlags&&(this._needsRedraw=!1),t}getEffects(){return this._internalEffects}finalize(){this.cleanup()}setEffects(A=[]){this.cleanup(),this.effects=A,this._internalEffects=A.slice(),this._internalEffects.push(new iz),A.some(t=>t instanceof mb)||this._internalEffects.push(nz)}cleanup(){for(const A of this.effects)A.cleanup();for(const A of this._internalEffects)A.cleanup();this.effects.length=0,this._internalEffects.length=0}}class oz extends WE{shouldDrawLayer(A){return A.props.operation===Tl.DRAW}}const DD={blendFunc:[1,0,32771,0],blendEquation:32774};class xb extends WE{constructor(...A){super(...A),y(this,"pickZ",void 0),y(this,"_colors",null)}render(A){return A.pickingFBO?this._drawPickingBuffer(A):super.render(A)}_drawPickingBuffer({layers:A,layerFilter:t,views:i,viewports:n,onViewportActive:r,pickingFBO:o,deviceRect:{x:s,y:a,width:g,height:I},cullRect:l,effects:c,pass:C="picking",pickZ:B}){const u=this.gl;this.pickZ=B;const E=B?null:{byLayer:new Map,byAlpha:[]};this._colors=E;const h=ui(u,{scissorTest:!0,scissor:[s,a,g,I],clearColor:[0,0,0,0],depthMask:!0,depthTest:!0,depthRange:[0,1],colorMask:[!0,!0,!0,!0],...DD,blend:!B},()=>super.render({target:o,layers:A,layerFilter:t,views:i,viewports:n,onViewportActive:r,cullRect:l,effects:c==null?void 0:c.filter(Q=>Q.useInPicking),pass:C}));return this._colors=null,{decodePickingColor:E&&az.bind(null,E),stats:h}}shouldDrawLayer(A){return A.props.pickable&&A.props.operation===Tl.DRAW}getModuleParameters(){return{pickingActive:1,pickingAttribute:this.pickZ,lightSources:{}}}getLayerParameters(A,t,i){const n={...A.props.parameters};return this._colors?(Object.assign(n,DD),n.blend=!0,n.blendColor=sz(this._colors,A,i)):n.blend=!1,n}}function sz(e,A,t){const{byLayer:i,byAlpha:n}=e;let r,o=i.get(A);return o?(o.viewports.push(t),r=o.a):(r=i.size+1,r<=255?(o={a:r,layer:A,viewports:[t]},i.set(A,o),n[r]=o):(Ae.warn("Too many pickable layers, only picking the first 255")(),r=0)),[0,0,0,r/255]}function az(e,A){const t=e.byAlpha[A[3]];return t&&{pickedLayer:t.layer,pickedViewports:t.viewports,pickedObjectIndex:t.layer.decodePickingColor(A)}}const gz="deckRenderer.renderLayers";class Iz{constructor(A){this.gl=A,this.layerFilter=null,this.drawPickingColors=!1,this.drawLayersPass=new oz(A),this.pickLayersPass=new xb(A),this.renderCount=0,this._needsRedraw="Initial render",this.renderBuffers=[],this.lastPostProcessEffect=null}setProps(A){"layerFilter"in A&&this.layerFilter!==A.layerFilter&&(this.layerFilter=A.layerFilter,this._needsRedraw="layerFilter changed"),"drawPickingColors"in A&&this.drawPickingColors!==A.drawPickingColors&&(this.drawPickingColors=A.drawPickingColors,this._needsRedraw="drawPickingColors changed")}renderLayers(A){const t=this.drawPickingColors?this.pickLayersPass:this.drawLayersPass;A.layerFilter=A.layerFilter||this.layerFilter,A.effects=A.effects||[],A.target=A.target||$e.getDefaultFramebuffer(this.gl),this._preRender(A.effects,A);const i=this.lastPostProcessEffect?this.renderBuffers[0]:A.target,n=t.render({...A,target:i});this._postRender(A.effects,A),this.renderCount++,Rt(gz,this,n,A)}needsRedraw(A={clearRedrawFlags:!1}){const t=this._needsRedraw;return A.clearRedrawFlags&&(this._needsRedraw=!1),t}finalize(){const{renderBuffers:A}=this;for(const t of A)t.delete();A.length=0}_preRender(A,t){let i=null;for(const n of A)n.preRender(this.gl,t),n.postRender&&(i=n);i&&this._resizeRenderBuffers(),this.lastPostProcessEffect=i}_resizeRenderBuffers(){const{renderBuffers:A}=this;A.length===0&&A.push(new $e(this.gl),new $e(this.gl));for(const t of A)t.resize()}_postRender(A,t){const{renderBuffers:i}=this,n={inputBuffer:i[0],swapBuffer:i[1],target:null};for(const r of A)if(r.postRender){if(r===this.lastPostProcessEffect){n.target=t.target,r.postRender(this.gl,n);break}const o=r.postRender(this.gl,n);n.inputBuffer=o,n.swapBuffer=o===i[0]?i[1]:i[0]}}}const lz={pickedColor:null,pickedObjectIndex:-1};function cz({pickedColors:e,decodePickingColor:A,deviceX:t,deviceY:i,deviceRadius:n,deviceRect:r}){const{x:o,y:s,width:a,height:g}=r;let I=n*n,l=-1,c=0;for(let C=0;CI)c+=4*a;else for(let E=0;E=0){const f=E+o-t,Q=f*f+u;Q<=I&&(I=Q,l=c)}c+=4}}if(l>=0){const C=e.slice(l,l+4),B=A(C);if(B){const u=Math.floor(l/4/a),E=l/4-u*a;return{...B,pickedColor:C,pickedX:o+E,pickedY:s+u}}Ae.error("Picked non-existent layer. Is picking buffer corrupt?")()}return lz}function Cz({pickedColors:e,decodePickingColor:A}){const t=new Map;if(e){for(let i=0;i=0){const r=e.slice(i,i+4),o=r.join(",");if(!t.has(o)){const s=A(r);s?t.set(o,{...s,color:r}):Ae.error("Picked non-existent layer. Is picking buffer corrupt?")()}}}return Array.from(t.values())}function Fb({pickInfo:e,viewports:A,pixelRatio:t,x:i,y:n,z:r}){let o=A[0];A.length>1&&(o=Ez((e==null?void 0:e.pickedViewports)||A,{x:i,y:n}));let s;if(o){const a=[i-o.x,n-o.y];r!==void 0&&(a[2]=r),s=o.unproject(a)}return{color:null,layer:null,viewport:o,index:-1,picked:!1,x:i,y:n,pixel:[i,n],coordinate:s,devicePixel:e&&"pickedX"in e?[e.pickedX,e.pickedY]:void 0,pixelRatio:t}}function Bz(e){const{pickInfo:A,lastPickedInfo:t,mode:i,layers:n}=e,{pickedColor:r,pickedLayer:o,pickedObjectIndex:s}=A,a=o?[o]:[];if(i==="hover"){const l=t.index,c=t.layerId,C=o?o.props.id:null;if(C!==c||s!==l){if(C!==c){const B=n.find(u=>u.props.id===c);B&&a.unshift(B)}t.layerId=C,t.index=s,t.info=null}}const g=Fb(e),I=new Map;return I.set(null,g),a.forEach(l=>{let c={...g};l===o&&(c.color=r,c.index=s,c.picked=!0),c=Nb({layer:l,info:c,mode:i});const C=c.layer;l===o&&i==="hover"&&(t.info=c),I.set(C.id,c),i==="hover"&&C.updateAutoHighlight(c)}),I}function Nb({layer:e,info:A,mode:t}){for(;e&&A;){const i=A.layer||null;A.sourceLayer=i,A.layer=e,A=e.getPickingInfo({info:A,mode:t,sourceLayer:i}),e=e.parent}return A}function Ez(e,A){for(let t=e.length-1;t>=0;t--){const i=e[t];if(i.containsPixel(A))return i}return e[0]}class uz{constructor(A){y(this,"gl",void 0),y(this,"pickingFBO",void 0),y(this,"depthFBO",void 0),y(this,"pickLayersPass",void 0),y(this,"layerFilter",void 0),y(this,"lastPickedInfo",void 0),y(this,"_pickable",!0),this.gl=A,this.pickLayersPass=new xb(A),this.lastPickedInfo={index:-1,layerId:null,info:null}}setProps(A){"layerFilter"in A&&(this.layerFilter=A.layerFilter),"_pickable"in A&&(this._pickable=A._pickable)}finalize(){this.pickingFBO&&this.pickingFBO.delete(),this.depthFBO&&(this.depthFBO.color.delete(),this.depthFBO.delete())}pickObject(A){return this._pickClosestObject(A)}pickObjects(A){return this._pickVisibleObjects(A)}getLastPickedObject({x:A,y:t,layers:i,viewports:n},r=this.lastPickedInfo.info){const o=r&&r.layer&&r.layer.id,s=r&&r.viewport&&r.viewport.id,a=o?i.find(c=>c.id===o):null,g=s&&n.find(c=>c.id===s)||n[0],I=g&&g.unproject([A-g.x,t-g.y]);return{...r,...{x:A,y:t,viewport:g,coordinate:I,layer:a}}}_resizeBuffer(){var A,t;const{gl:i}=this;if(!this.pickingFBO&&(this.pickingFBO=new $e(i),$e.isSupported(i,{colorBufferFloat:!0}))){const n=new $e(i);n.attach({[36064]:new Pt(i,{format:ie(i)?34836:6408,type:5126})}),this.depthFBO=n}(A=this.pickingFBO)===null||A===void 0||A.resize({width:i.canvas.width,height:i.canvas.height}),(t=this.depthFBO)===null||t===void 0||t.resize({width:i.canvas.width,height:i.canvas.height})}_getPickable(A){if(this._pickable===!1)return null;const t=A.filter(i=>i.isPickable()&&!i.isComposite);return t.length?t:null}_pickClosestObject({layers:A,views:t,viewports:i,x:n,y:r,radius:o=0,depth:s=1,mode:a="query",unproject3D:g,onViewportActive:I,effects:l}){const c=this._getPickable(A),C=ua(this.gl);if(!c)return{result:[],emptyInfo:Fb({viewports:i,x:n,y:r,pixelRatio:C})};this._resizeBuffer();const B=kh(this.gl,[n,r],!0),u=[B.x+Math.floor(B.width/2),B.y+Math.floor(B.height/2)],E=Math.round(o*C),{width:h,height:f}=this.pickingFBO,Q=this._getPickingRect({deviceX:u[0],deviceY:u[1],deviceRadius:E,deviceWidth:h,deviceHeight:f}),d={x:n-o,y:r-o,width:o*2+1,height:o*2+1};let w;const m=[],v=new Set;for(let x=0;x=g);D++){const F=m[D];let N={color:F.pickedColor,layer:null,index:F.pickedObjectIndex,picked:!0,x:n,y:r,pixelRatio:C};N=Nb({layer:F.pickedLayer,info:N,mode:a}),v.has(N.object)||v.set(N.object,N)}return Array.from(v.values())}_drawAndSample({layers:A,views:t,viewports:i,onViewportActive:n,deviceRect:r,cullRect:o,effects:s,pass:a},g=!1){const I=g?this.depthFBO:this.pickingFBO,{decodePickingColor:l}=this.pickLayersPass.render({layers:A,layerFilter:this.layerFilter,views:t,viewports:i,onViewportActive:n,pickingFBO:I,deviceRect:r,cullRect:o,effects:s,pass:a,pickZ:g}),{x:c,y:C,width:B,height:u}=r,E=new(g?Float32Array:Uint8Array)(B*u*4);return VE(I,{sourceX:c,sourceY:C,sourceWidth:B,sourceHeight:u,target:E}),{pickedColors:E,decodePickingColor:l}}_getPickingRect({deviceX:A,deviceY:t,deviceRadius:i,deviceWidth:n,deviceHeight:r}){const o=Math.max(0,A-i),s=Math.max(0,t-i),a=Math.min(n,A+i+1)-o,g=Math.min(r,t+i+1)-s;return a<=0||g<=0?null:{x:o,y:s,width:a,height:g}}}const hz={zIndex:"1",position:"absolute",pointerEvents:"none",color:"#a0a7b4",backgroundColor:"#29323c",padding:"10px",top:"0",left:"0",display:"none"};class fz{constructor(A){y(this,"el",null),y(this,"isVisible",!1);const t=A.parentElement;t&&(this.el=document.createElement("div"),this.el.className="deck-tooltip",Object.assign(this.el.style,hz),t.appendChild(this.el))}setTooltip(A,t,i){const n=this.el;if(!!n){if(typeof A=="string")n.innerText=A;else if(A)A.text&&(n.innerText=A.text),A.html&&(n.innerHTML=A.html),A.className&&(n.className=A.className),Object.assign(n.style,A.style);else{this.isVisible=!1,n.style.display="none";return}this.isVisible=!0,n.style.display="block",n.style.transform="translate(".concat(t,"px, ").concat(i,"px)")}}remove(){this.el&&(this.el.remove(),this.el=null)}}var Ua={exports:{}};/*! Hammer.JS - v2.0.7 - 2016-04-22 * http://hammerjs.github.io/ * * Copyright (c) 2016 Jorik Tangelder; * Licensed under the MIT license */(function(e){(function(A,t,i,n){var r=["","webkit","Moz","MS","ms","o"],o=t.createElement("div"),s="function",a=Math.round,g=Math.abs,I=Date.now;function l(S,R,b){return setTimeout(Q(S,b),R)}function c(S,R,b){return Array.isArray(S)?(C(S,b[R],b),!0):!1}function C(S,R,b){var K;if(!!S)if(S.forEach)S.forEach(R,b);else if(S.length!==n)for(K=0;K\s*\(/gm,"{anonymous}()@"):"Unknown Stack Trace",oe=A.console&&(A.console.warn||A.console.log);return oe&&oe.call(A.console,K,uA),S.apply(this,arguments)}}var u;typeof Object.assign!="function"?u=function(R){if(R===n||R===null)throw new TypeError("Cannot convert undefined or null to object");for(var b=Object(R),K=1;K-1}function F(S){return S.trim().split(/\s+/g)}function N(S,R,b){if(S.indexOf&&!b)return S.indexOf(R);for(var K=0;K_t[R]}):K=K.sort()),K}function P(S,R){for(var b,K,nA=R[0].toUpperCase()+R.slice(1),uA=0;uA1&&!b.firstMultiple?b.firstMultiple=_e(R):nA===1&&(b.firstMultiple=!1);var uA=b.firstInput,oe=b.firstMultiple,nt=oe?oe.center:uA.center,ct=R.center=WA(K);R.timeStamp=I(),R.deltaTime=R.timeStamp-uA.timeStamp,R.angle=JA(nt,ct),R.distance=se(nt,ct),re(b,R),R.offsetDirection=xe(R.deltaX,R.deltaY);var _t=qA(R.deltaTime,R.deltaX,R.deltaY);R.overallVelocityX=_t.x,R.overallVelocityY=_t.y,R.overallVelocity=g(_t.x)>g(_t.y)?_t.x:_t.y,R.scale=oe?Be(oe.pointers,K):1,R.rotation=oe?xA(oe.pointers,K):0,R.maxPointers=b.prevInput?R.pointers.length>b.prevInput.maxPointers?R.pointers.length:b.prevInput.maxPointers:R.pointers.length,VA(b,R);var Ji=S.element;x(R.srcEvent.target,Ji)&&(Ji=R.srcEvent.target),R.target=Ji}function re(S,R){var b=R.center,K=S.offsetDelta||{},nA=S.prevDelta||{},uA=S.prevInput||{};(R.eventType===sA||uA.eventType===IA)&&(nA=S.prevDelta={x:uA.deltaX||0,y:uA.deltaY||0},K=S.offsetDelta={x:b.x,y:b.y}),R.deltaX=nA.x+(b.x-K.x),R.deltaY=nA.y+(b.y-K.y)}function VA(S,R){var b=S.lastInterval||R,K=R.timeStamp-b.timeStamp,nA,uA,oe,nt;if(R.eventType!=bA&&(K>gA||b.velocity===n)){var ct=R.deltaX-b.deltaX,_t=R.deltaY-b.deltaY,Ji=qA(K,ct,_t);uA=Ji.x,oe=Ji.y,nA=g(Ji.x)>g(Ji.y)?Ji.x:Ji.y,nt=xe(ct,_t),S.lastInterval=R}else nA=b.velocity,uA=b.velocityX,oe=b.velocityY,nt=b.direction;R.velocity=nA,R.velocityX=uA,R.velocityY=oe,R.direction=nt}function _e(S){for(var R=[],b=0;b=g(R)?S<0?QA:TA:R<0?RA:UA}function se(S,R,b){b||(b=ne);var K=R[b[0]]-S[b[0]],nA=R[b[1]]-S[b[1]];return Math.sqrt(K*K+nA*nA)}function JA(S,R,b){b||(b=ne);var K=R[b[0]]-S[b[0]],nA=R[b[1]]-S[b[1]];return Math.atan2(nA,K)*180/Math.PI}function xA(S,R){return JA(R[1],R[0],Ie)+JA(S[1],S[0],Ie)}function Be(S,R){return se(R[0],R[1],Ie)/se(S[0],S[1],Ie)}var ue={mousedown:sA,mousemove:BA,mouseup:IA},PA="mousedown",rA="mousemove mouseup";function GA(){this.evEl=PA,this.evWin=rA,this.pressed=!1,KA.apply(this,arguments)}f(GA,KA,{handler:function(R){var b=ue[R.type];b&sA&&R.button===0&&(this.pressed=!0),b&BA&&R.which!==1&&(b=IA),this.pressed&&(b&IA&&(this.pressed=!1),this.callback(this.manager,b,{pointers:[R],changedPointers:[R],pointerType:AA,srcEvent:R}))}});var ve={pointerdown:sA,pointermove:BA,pointerup:IA,pointercancel:bA,pointerout:bA},pe={2:q,3:j,4:AA,5:iA},Fe="pointerdown",Ne="pointermove pointerup pointercancel";A.MSPointerEvent&&!A.PointerEvent&&(Fe="MSPointerDown",Ne="MSPointerMove MSPointerUp MSPointerCancel");function Xe(){this.evEl=Fe,this.evWin=Ne,KA.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}f(Xe,KA,{handler:function(R){var b=this.store,K=!1,nA=R.type.toLowerCase().replace("ms",""),uA=ve[nA],oe=pe[R.pointerType]||R.pointerType,nt=oe==q,ct=N(b,R.pointerId,"pointerId");uA&sA&&(R.button===0||nt)?ct<0&&(b.push(R),ct=b.length-1):uA&(IA|bA)&&(K=!0),!(ct<0)&&(b[ct]=R,this.callback(this.manager,uA,{pointers:b,changedPointers:[R],pointerType:oe,srcEvent:R}),K&&b.splice(ct,1))}});var it={touchstart:sA,touchmove:BA,touchend:IA,touchcancel:bA},er="touchstart",cs="touchstart touchmove touchend touchcancel";function fn(){this.evTarget=er,this.evWin=cs,this.started=!1,KA.apply(this,arguments)}f(fn,KA,{handler:function(R){var b=it[R.type];if(b===sA&&(this.started=!0),!!this.started){var K=og.call(this,R,b);b&(IA|bA)&&K[0].length-K[1].length===0&&(this.started=!1),this.callback(this.manager,b,{pointers:K[0],changedPointers:K[1],pointerType:q,srcEvent:R})}}});function og(S,R){var b=M(S.touches),K=M(S.changedTouches);return R&(IA|bA)&&(b=U(b.concat(K),"identifier",!0)),[b,K]}var Cs={touchstart:sA,touchmove:BA,touchend:IA,touchcancel:bA},wA="touchstart touchmove touchend touchcancel";function LA(){this.evTarget=wA,this.targetIds={},KA.apply(this,arguments)}f(LA,KA,{handler:function(R){var b=Cs[R.type],K=Se.call(this,R,b);!K||this.callback(this.manager,b,{pointers:K[0],changedPointers:K[1],pointerType:q,srcEvent:R})}});function Se(S,R){var b=M(S.touches),K=this.targetIds;if(R&(sA|BA)&&b.length===1)return K[b[0].identifier]=!0,[b,b];var nA,uA,oe=M(S.changedTouches),nt=[],ct=this.target;if(uA=b.filter(function(_t){return x(_t.target,ct)}),R===sA)for(nA=0;nA-1&&K.splice(uA,1)};setTimeout(nA,ye)}}function L(S){for(var R=S.srcEvent.clientX,b=S.srcEvent.clientY,K=0;K-1&&this.requireFail.splice(R,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(S){return!!this.simultaneous[S.id]},emit:function(S){var R=this,b=this.state;function K(nA){R.manager.emit(nA,S)}b=wt&&K(R.options.event+Om(b))},tryEmit:function(S){if(this.canEmit())return this.emit(S);this.state=qi},canEmit:function(){for(var S=0;SR.threshold&&nA&R.direction},attrTest:function(S){return vi.prototype.attrTest.call(this,S)&&(this.state&kA||!(this.state&kA)&&this.directionTest(S))},emit:function(S){this.pX=S.deltaX,this.pY=S.deltaY;var R=Ym(S.direction);R&&(S.additionalEvent=this.options.event+R),this._super.emit.call(this,S)}});function Nu(){vi.apply(this,arguments)}f(Nu,vi,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[dA]},attrTest:function(S){return this._super.attrTest.call(this,S)&&(Math.abs(S.scale-1)>this.options.threshold||this.state&kA)},emit:function(S){if(S.scale!==1){var R=S.scale<1?"in":"out";S.additionalEvent=this.options.event+R}this._super.emit.call(this,S)}});function Lu(){dn.apply(this,arguments),this._timer=null,this._input=null}f(Lu,dn,{defaults:{event:"press",pointers:1,time:251,threshold:9},getTouchAction:function(){return[X]},process:function(S){var R=this.options,b=S.pointers.length===R.pointers,K=S.distanceR.time;if(this._input=S,!K||!b||S.eventType&(IA|bA)&&!nA)this.reset();else if(S.eventType&sA)this.reset(),this._timer=l(function(){this.state=vt,this.tryEmit()},R.time,this);else if(S.eventType&IA)return vt;return qi},reset:function(){clearTimeout(this._timer)},emit:function(S){this.state===vt&&(S&&S.eventType&IA?this.manager.emit(this.options.event+"up",S):(this._input.timeStamp=I(),this.manager.emit(this.options.event,this._input)))}});function bu(){vi.apply(this,arguments)}f(bu,vi,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[dA]},attrTest:function(S){return this._super.attrTest.call(this,S)&&(Math.abs(S.rotation)>this.options.threshold||this.state&kA)}});function Gu(){vi.apply(this,arguments)}f(Gu,vi,{defaults:{event:"swipe",threshold:10,velocity:.3,direction:fA|NA,pointers:1},getTouchAction:function(){return sc.prototype.getTouchAction.call(this)},attrTest:function(S){var R=this.options.direction,b;return R&(fA|NA)?b=S.overallVelocity:R&fA?b=S.overallVelocityX:R&NA&&(b=S.overallVelocityY),this._super.attrTest.call(this,S)&&R&S.offsetDirection&&S.distance>this.options.threshold&&S.maxPointers==this.options.pointers&&g(b)>this.options.velocity&&S.eventType&IA},emit:function(S){var R=Ym(S.offsetDirection);R&&this.manager.emit(this.options.event+R,S),this.manager.emit(this.options.event,S)}});function ac(){dn.apply(this,arguments),this.pTime=!1,this.pCenter=!1,this._timer=null,this._input=null,this.count=0}f(ac,dn,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},getTouchAction:function(){return[tA]},process:function(S){var R=this.options,b=S.pointers.length===R.pointers,K=S.distance0&&i.type==="pointerdown"&&(fz(n,r=>r.pointerId===i.pointerId)||n.push(i)),A.call(this,i)}}function dz(e){e.prototype.handler=function(t){let i=hz[t.type];i&xb&&t.button>=0&&(this.pressed=!0),i&Fb&&t.which===0&&(i=hd),this.pressed&&(i&hd&&(this.pressed=!1),this.callback(this.manager,i,{pointers:[t],changedPointers:[t],pointerType:"mouse",srcEvent:t}))}}Qz(Pa.exports.PointerEventInput);dz(Pa.exports.MouseInput);const pz=Pa.exports.Manager;class ZE{constructor(A,t,i){this.element=A,this.callback=t,this.options={enable:!0,...i}}}const yz=Yi?[[Yi.Pan,{event:"tripan",pointers:3,threshold:0,enable:!1}],[Yi.Rotate,{enable:!1}],[Yi.Pinch,{enable:!1}],[Yi.Swipe,{enable:!1}],[Yi.Pan,{threshold:0,enable:!1}],[Yi.Press,{enable:!1}],[Yi.Tap,{event:"doubletap",taps:2,enable:!1}],[Yi.Tap,{event:"anytap",enable:!1}],[Yi.Tap,{enable:!1}]]:null,DD={tripan:["rotate","pinch","pan"],rotate:["pinch"],pinch:["pan"],pan:["press","doubletap","anytap","tap"],doubletap:["anytap"],anytap:["tap"]},mz={doubletap:["tap"]},wz={pointerdown:"pointerdown",pointermove:"pointermove",pointerup:"pointerup",touchstart:"pointerdown",touchmove:"pointermove",touchend:"pointerup",mousedown:"pointerdown",mousemove:"pointermove",mouseup:"pointerup"},$p={KEY_EVENTS:["keydown","keyup"],MOUSE_EVENTS:["mousedown","mousemove","mouseup","mouseover","mouseout","mouseleave"],WHEEL_EVENTS:["wheel","mousewheel"]},vz={tap:"tap",anytap:"anytap",doubletap:"doubletap",press:"press",pinch:"pinch",pinchin:"pinch",pinchout:"pinch",pinchstart:"pinch",pinchmove:"pinch",pinchend:"pinch",pinchcancel:"pinch",rotate:"rotate",rotatestart:"rotate",rotatemove:"rotate",rotateend:"rotate",rotatecancel:"rotate",tripan:"tripan",tripanstart:"tripan",tripanmove:"tripan",tripanup:"tripan",tripandown:"tripan",tripanleft:"tripan",tripanright:"tripan",tripanend:"tripan",tripancancel:"tripan",pan:"pan",panstart:"pan",panmove:"pan",panup:"pan",pandown:"pan",panleft:"pan",panright:"pan",panend:"pan",pancancel:"pan",swipe:"swipe",swipeleft:"swipe",swiperight:"swipe",swipeup:"swipe",swipedown:"swipe"},RD={click:"tap",anyclick:"anytap",dblclick:"doubletap",mousedown:"pointerdown",mousemove:"pointermove",mouseup:"pointerup",mouseover:"pointerover",mouseout:"pointerout",mouseleave:"pointerleave"},Sz=typeof navigator!="undefined"&&navigator.userAgent?navigator.userAgent.toLowerCase():"",qs=typeof window!="undefined"?window:global;let fd=!1;try{const e={get passive(){return fd=!0,!0}};qs.addEventListener("test",null,e),qs.removeEventListener("test",null)}catch{fd=!1}const Dz=Sz.indexOf("firefox")!==-1,{WHEEL_EVENTS:Rz}=$p,xD="wheel",FD=4.000244140625,xz=40,Fz=.25;class Nz extends ZE{constructor(A,t,i){super(A,t,i),this.handleEvent=n=>{if(!this.options.enable)return;let r=n.deltaY;qs.WheelEvent&&(Dz&&n.deltaMode===qs.WheelEvent.DOM_DELTA_PIXEL&&(r/=qs.devicePixelRatio),n.deltaMode===qs.WheelEvent.DOM_DELTA_LINE&&(r*=xz)),r!==0&&r%FD===0&&(r=Math.floor(r/FD)),n.shiftKey&&r&&(r=r*Fz),this.callback({type:xD,center:{x:n.clientX,y:n.clientY},delta:-r,srcEvent:n,pointerType:"mouse",target:n.target})},this.events=(this.options.events||[]).concat(Rz),this.events.forEach(n=>A.addEventListener(n,this.handleEvent,fd?{passive:!1}:!1))}destroy(){this.events.forEach(A=>this.element.removeEventListener(A,this.handleEvent))}enableEventType(A,t){A===xD&&(this.options.enable=t)}}const{MOUSE_EVENTS:Lz}=$p,ND="pointermove",LD="pointerover",bD="pointerout",GD="pointerenter",_D="pointerleave";class bz extends ZE{constructor(A,t,i){super(A,t,i),this.handleEvent=r=>{this.handleOverEvent(r),this.handleOutEvent(r),this.handleEnterEvent(r),this.handleLeaveEvent(r),this.handleMoveEvent(r)},this.pressed=!1;const{enable:n}=this.options;this.enableMoveEvent=n,this.enableLeaveEvent=n,this.enableEnterEvent=n,this.enableOutEvent=n,this.enableOverEvent=n,this.events=(this.options.events||[]).concat(Lz),this.events.forEach(r=>A.addEventListener(r,this.handleEvent))}destroy(){this.events.forEach(A=>this.element.removeEventListener(A,this.handleEvent))}enableEventType(A,t){A===ND&&(this.enableMoveEvent=t),A===LD&&(this.enableOverEvent=t),A===bD&&(this.enableOutEvent=t),A===GD&&(this.enableEnterEvent=t),A===_D&&(this.enableLeaveEvent=t)}handleOverEvent(A){this.enableOverEvent&&A.type==="mouseover"&&this._emit(LD,A)}handleOutEvent(A){this.enableOutEvent&&A.type==="mouseout"&&this._emit(bD,A)}handleEnterEvent(A){this.enableEnterEvent&&A.type==="mouseenter"&&this._emit(GD,A)}handleLeaveEvent(A){this.enableLeaveEvent&&A.type==="mouseleave"&&this._emit(_D,A)}handleMoveEvent(A){if(this.enableMoveEvent)switch(A.type){case"mousedown":A.button>=0&&(this.pressed=!0);break;case"mousemove":A.which===0&&(this.pressed=!1),this.pressed||this._emit(ND,A);break;case"mouseup":this.pressed=!1;break}}_emit(A,t){this.callback({type:A,center:{x:t.clientX,y:t.clientY},srcEvent:t,pointerType:"mouse",target:t.target})}}const{KEY_EVENTS:Gz}=$p,MD="keydown",kD="keyup";class _z extends ZE{constructor(A,t,i){super(A,t,i),this.handleEvent=n=>{const r=n.target||n.srcElement;r.tagName==="INPUT"&&r.type==="text"||r.tagName==="TEXTAREA"||(this.enableDownEvent&&n.type==="keydown"&&this.callback({type:MD,srcEvent:n,key:n.key,target:n.target}),this.enableUpEvent&&n.type==="keyup"&&this.callback({type:kD,srcEvent:n,key:n.key,target:n.target}))},this.enableDownEvent=this.options.enable,this.enableUpEvent=this.options.enable,this.events=(this.options.events||[]).concat(Gz),A.tabIndex=this.options.tabIndex||0,A.style.outline="none",this.events.forEach(n=>A.addEventListener(n,this.handleEvent))}destroy(){this.events.forEach(A=>this.element.removeEventListener(A,this.handleEvent))}enableEventType(A,t){A===MD&&(this.enableDownEvent=t),A===kD&&(this.enableUpEvent=t)}}const TD="contextmenu";class Mz extends ZE{constructor(A,t,i){super(A,t,i),this.handleEvent=n=>{!this.options.enable||this.callback({type:TD,center:{x:n.clientX,y:n.clientY},srcEvent:n,pointerType:"mouse",target:n.target})},A.addEventListener("contextmenu",this.handleEvent)}destroy(){this.element.removeEventListener("contextmenu",this.handleEvent)}enableEventType(A,t){A===TD&&(this.options.enable=t)}}const Qd=1,PB=2,dd=4,kz={pointerdown:Qd,pointermove:PB,pointerup:dd,mousedown:Qd,mousemove:PB,mouseup:dd},Tz=1,Uz=2,Pz=3,Hz=0,qz=1,Jz=2,Oz=1,Yz=2,Kz=4;function Vz(e){const A=kz[e.srcEvent.type];if(!A)return null;const{buttons:t,button:i,which:n}=e.srcEvent;let r=!1,o=!1,s=!1;return A===dd||A===PB&&!Number.isFinite(t)?(r=n===Tz,o=n===Uz,s=n===Pz):A===PB?(r=Boolean(t&Oz),o=Boolean(t&Kz),s=Boolean(t&Yz)):A===Qd&&(r=i===Hz,o=i===qz,s=i===Jz),{leftButton:r,middleButton:o,rightButton:s}}function Wz(e,A){const t=e.center;if(!t)return null;const i=A.getBoundingClientRect(),n=i.width/A.offsetWidth||1,r=i.height/A.offsetHeight||1,o={x:(t.x-i.left-A.clientLeft)/n,y:(t.y-i.top-A.clientTop)/r};return{center:t,offsetCenter:o}}const Af={srcElement:"root",priority:0};class zz{constructor(A){this.handleEvent=t=>{if(this.isEmpty())return;const i=this._normalizeEvent(t);let n=t.srcEvent.target;for(;n&&n!==i.rootElement;){if(this._emit(i,n),i.handled)return;n=n.parentNode}this._emit(i,"root")},this.eventManager=A,this.handlers=[],this.handlersByElement=new Map,this._active=!1}isEmpty(){return!this._active}add(A,t,i,n=!1,r=!1){const{handlers:o,handlersByElement:s}=this;let a=Af;typeof i=="string"||i&&i.addEventListener?a={...Af,srcElement:i}:i&&(a={...Af,...i});let g=s.get(a.srcElement);g||(g=[],s.set(a.srcElement,g));const I={type:A,handler:t,srcElement:a.srcElement,priority:a.priority};n&&(I.once=!0),r&&(I.passive=!0),o.push(I),this._active=this._active||!I.passive;let l=g.length-1;for(;l>=0&&!(g[l].priority>=I.priority);)l--;g.splice(l+1,0,I)}remove(A,t){const{handlers:i,handlersByElement:n}=this;for(let r=i.length-1;r>=0;r--){const o=i[r];if(o.type===A&&o.handler===t){i.splice(r,1);const s=n.get(o.srcElement);s.splice(s.indexOf(o),1),s.length===0&&n.delete(o.srcElement)}}this._active=i.some(r=>!r.passive)}_emit(A,t){const i=this.handlersByElement.get(t);if(i){let n=!1;const r=()=>{A.handled=!0},o=()=>{A.handled=!0,n=!0},s=[];for(let a=0;a{A.srcEvent.preventDefault()},stopImmediatePropagation:null,stopPropagation:null,handled:!1,rootElement:t}}}const jz={events:null,recognizers:null,recognizerOptions:{},Manager:pz,touchAction:"none",tabIndex:0};class Xz{constructor(A=null,t){this._onBasicInput=n=>{const{srcEvent:r}=n,o=wz[r.type];o&&this.manager.emit(o,n)},this._onOtherEvent=n=>{this.manager.emit(n.type,n)},this.options={...jz,...t},this.events=new Map,this.setElement(A);const{events:i}=this.options;i&&this.on(i)}getElement(){return this.element}setElement(A){if(this.element&&this.destroy(),this.element=A,!A)return;const{options:t}=this,i=t.Manager;this.manager=new i(A,{touchAction:t.touchAction,recognizers:t.recognizers||yz}).on("hammer.input",this._onBasicInput),t.recognizers||Object.keys(DD).forEach(n=>{const r=this.manager.get(n);r&&DD[n].forEach(o=>{r.recognizeWith(o)})});for(const n in t.recognizerOptions){const r=this.manager.get(n);if(r){const o=t.recognizerOptions[n];delete o.enable,r.set(o)}}this.wheelInput=new Nz(A,this._onOtherEvent,{enable:!1}),this.moveInput=new bz(A,this._onOtherEvent,{enable:!1}),this.keyInput=new _z(A,this._onOtherEvent,{enable:!1,tabIndex:t.tabIndex}),this.contextmenuInput=new Mz(A,this._onOtherEvent,{enable:!1});for(const[n,r]of this.events)r.isEmpty()||(this._toggleRecognizer(r.recognizerName,!0),this.manager.on(n,r.handleEvent))}destroy(){this.element&&(this.wheelInput.destroy(),this.moveInput.destroy(),this.keyInput.destroy(),this.contextmenuInput.destroy(),this.manager.destroy(),this.wheelInput=null,this.moveInput=null,this.keyInput=null,this.contextmenuInput=null,this.manager=null,this.element=null)}on(A,t,i){this._addEventHandler(A,t,i,!1)}once(A,t,i){this._addEventHandler(A,t,i,!0)}watch(A,t,i){this._addEventHandler(A,t,i,!1,!0)}off(A,t){this._removeEventHandler(A,t)}_toggleRecognizer(A,t){const{manager:i}=this;if(!i)return;const n=i.get(A);if(n&&n.options.enable!==t){n.set({enable:t});const r=mz[A];r&&!this.options.recognizers&&r.forEach(o=>{const s=i.get(o);t?(s.requireFailure(A),n.dropRequireFailure(o)):s.dropRequireFailure(A)})}this.wheelInput.enableEventType(A,t),this.moveInput.enableEventType(A,t),this.keyInput.enableEventType(A,t),this.contextmenuInput.enableEventType(A,t)}_addEventHandler(A,t,i,n,r){if(typeof A!="string"){i=t;for(const I in A)this._addEventHandler(I,A[I],i,n,r);return}const{manager:o,events:s}=this,a=RD[A]||A;let g=s.get(a);g||(g=new zz(this),s.set(a,g),g.recognizerName=vz[a]||a,o&&o.on(a,g.handleEvent)),g.add(A,t,i,n,r),g.isEmpty()||this._toggleRecognizer(g.recognizerName,!0)}_removeEventHandler(A,t){if(typeof A!="string"){for(const o in A)this._removeEventHandler(o,A[o]);return}const{events:i}=this,n=RD[A]||A,r=i.get(n);if(!!r&&(r.remove(A,t),r.isEmpty())){const{recognizerName:o}=r;let s=!1;for(const a of i.values())if(a.recognizerName===o&&!a.isEmpty()){s=!0;break}s||this._toggleRecognizer(o,!1)}}}function ao(){}const Zz=({isDragging:e})=>e?"grabbing":"grab",Nb={id:"",width:"100%",height:"100%",style:null,viewState:null,initialViewState:null,pickingRadius:0,layerFilter:null,glOptions:{},parameters:{},parent:null,gl:null,canvas:null,layers:[],effects:[],views:null,controller:null,useDevicePixels:!0,touchAction:"none",eventRecognizerOptions:{},_framebuffer:null,_animate:!1,_pickable:!0,_typedArrayManagerProps:{},_customRender:null,onWebGLInitialized:ao,onResize:ao,onViewStateChange:ao,onInteractionStateChange:ao,onBeforeRender:ao,onAfterRender:ao,onLoad:ao,onError:e=>Ae.error(e.message)(),onHover:null,onClick:null,onDragStart:null,onDrag:null,onDragEnd:null,_onMetrics:null,getCursor:Zz,getTooltip:null,debug:!1,drawPickingColors:!1};class $E{constructor(A){y(this,"props",void 0),y(this,"width",0),y(this,"height",0),y(this,"userData",{}),y(this,"canvas",null),y(this,"viewManager",null),y(this,"layerManager",null),y(this,"effectManager",null),y(this,"deckRenderer",null),y(this,"deckPicker",null),y(this,"eventManager",null),y(this,"tooltip",null),y(this,"metrics",void 0),y(this,"animationLoop",void 0),y(this,"stats",void 0),y(this,"viewState",void 0),y(this,"cursorState",void 0),y(this,"_needsRedraw",void 0),y(this,"_pickRequest",void 0),y(this,"_lastPointerDownInfo",null),y(this,"_metricsCounter",void 0),y(this,"_onPointerMove",t=>{const{_pickRequest:i}=this;if(t.type==="pointerleave")i.x=-1,i.y=-1,i.radius=0;else{if(t.leftButton||t.rightButton)return;{const n=t.offsetCenter;if(!n)return;i.x=n.x,i.y=n.y,i.radius=this.props.pickingRadius}}this.layerManager&&(this.layerManager.context.mousePosition={x:i.x,y:i.y}),i.event=t}),y(this,"_onEvent",t=>{const i=CD[t.type],n=t.offsetCenter;if(!i||!n||!this.layerManager)return;const r=this.layerManager.getLayers(),o=this.deckPicker.getLastPickedObject({x:n.x,y:n.y,layers:r,viewports:this.getViewports(n)},this._lastPointerDownInfo),{layer:s}=o,a=s&&(s[i.handler]||s.props[i.handler]),g=this.props[i.handler];let I=!1;a&&(I=a.call(s,o,t)),!I&&g&&g(o,t)}),y(this,"_onPointerDown",t=>{const i=t.offsetCenter,n=this._pick("pickObject","pickObject Time",{x:i.x,y:i.y,radius:this.props.pickingRadius});this._lastPointerDownInfo=n.result[0]||n.emptyInfo}),this.props={...Nb,...A},A=this.props,this._needsRedraw="Initial render",this._pickRequest={mode:"hover",x:-1,y:-1,radius:0,event:null},this.cursorState={isHovering:!1,isDragging:!1},A.viewState&&A.initialViewState&&Ae.warn("View state tracking is disabled. Use either `initialViewState` for auto update or `viewState` for manual update.")(),$2()==="IE"&&Ae.warn("IE 11 is not supported")(),this.viewState=A.initialViewState,A.gl||typeof document!="undefined"&&(this.canvas=this._createCanvas(A)),this.animationLoop=this._createAnimationLoop(A),this.stats=new JE({id:"deck.gl"}),this.metrics={fps:0,setPropsTime:0,updateAttributesTime:0,framesRedrawn:0,pickTime:0,pickCount:0,gpuTime:0,gpuTimePerFrame:0,cpuTime:0,cpuTimePerFrame:0,bufferMemory:0,textureMemory:0,renderbufferMemory:0,gpuMemory:0},this._metricsCounter=0,this.setProps(A),A._typedArrayManagerProps&&pa.setOptions(A._typedArrayManagerProps),this.animationLoop.start()}finalize(){var A,t,i,n,r,o,s;if(this.animationLoop.stop(),this.animationLoop=null,this._lastPointerDownInfo=null,(A=this.layerManager)===null||A===void 0||A.finalize(),this.layerManager=null,(t=this.viewManager)===null||t===void 0||t.finalize(),this.viewManager=null,(i=this.effectManager)===null||i===void 0||i.finalize(),this.effectManager=null,(n=this.deckRenderer)===null||n===void 0||n.finalize(),this.deckRenderer=null,(r=this.deckPicker)===null||r===void 0||r.finalize(),this.deckPicker=null,(o=this.eventManager)===null||o===void 0||o.destroy(),this.eventManager=null,(s=this.tooltip)===null||s===void 0||s.remove(),this.tooltip=null,!this.props.canvas&&!this.props.gl&&this.canvas){var a;(a=this.canvas.parentElement)===null||a===void 0||a.removeChild(this.canvas),this.canvas=null}}setProps(A){this.stats.get("setProps Time").timeStart(),"onLayerHover"in A&&Ae.removed("onLayerHover","onHover")(),"onLayerClick"in A&&Ae.removed("onLayerClick","onClick")(),A.initialViewState&&!ss(this.props.initialViewState,A.initialViewState)&&(this.viewState=A.initialViewState),Object.assign(this.props,A),this._setCanvasSize(this.props);const t=Object.create(this.props);Object.assign(t,{views:this._getViews(),width:this.width,height:this.height,viewState:this._getViewState()}),this.animationLoop.setProps(t),this.layerManager&&(this.viewManager.setProps(t),this.layerManager.activateViewport(this.getViewports()[0]),this.layerManager.setProps(t),this.effectManager.setProps(t),this.deckRenderer.setProps(t),this.deckPicker.setProps(t)),this.stats.get("setProps Time").timeEnd()}needsRedraw(A={clearRedrawFlags:!1}){if(!this.layerManager)return!1;if(this.props._animate)return"Deck._animate";let t=this._needsRedraw;A.clearRedrawFlags&&(this._needsRedraw=!1);const i=this.viewManager.needsRedraw(A),n=this.layerManager.needsRedraw(A),r=this.effectManager.needsRedraw(A),o=this.deckRenderer.needsRedraw(A);return t=t||i||n||r||o,t}redraw(A){if(!this.layerManager)return;let t=this.needsRedraw({clearRedrawFlags:!0});t=A||t,t&&(this.stats.get("Redraw Count").incrementCount(),this.props._customRender?this.props._customRender(t):this._drawLayers(t))}get isInitialized(){return this.viewManager!==null}getViews(){return at(this.viewManager),this.viewManager.views}getViewports(A){return at(this.viewManager),this.viewManager.getViewports(A)}pickObject(A){const t=this._pick("pickObject","pickObject Time",A).result;return t.length?t[0]:null}pickMultipleObjects(A){return A.depth=A.depth||10,this._pick("pickObject","pickMultipleObjects Time",A).result}pickObjects(A){return this._pick("pickObjects","pickObjects Time",A)}_addResources(A,t=!1){for(const i in A)this.layerManager.resourceManager.add({resourceId:i,data:A[i],forceUpdate:t})}_removeResources(A){for(const t of A)this.layerManager.resourceManager.remove(t)}_pick(A,t,i){at(this.deckPicker);const{stats:n}=this;n.get("Pick Count").incrementCount(),n.get(t).timeStart();const r=this.deckPicker[A]({layers:this.layerManager.getLayers(i),views:this.viewManager.getViews(),viewports:this.getViewports(i),onViewportActive:this.layerManager.activateViewport,effects:this.effectManager.getEffects(),...i});return n.get(t).timeEnd(),r}_createCanvas(A){let t=A.canvas;return typeof t=="string"&&(t=document.getElementById(t),at(t)),t||(t=document.createElement("canvas"),t.id=A.id||"deckgl-overlay",(A.parent||document.body).appendChild(t)),Object.assign(t.style,A.style),t}_setCanvasSize(A){if(!this.canvas)return;const{width:t,height:i}=A;if(t||t===0){const r=Number.isFinite(t)?"".concat(t,"px"):t;this.canvas.style.width=r}if(i||i===0){var n;const r=Number.isFinite(i)?"".concat(i,"px"):i;this.canvas.style.position=((n=A.style)===null||n===void 0?void 0:n.position)||"absolute",this.canvas.style.height=r}}_updateCanvasSize(){const{canvas:A}=this;if(!A)return;const t=A.clientWidth||A.width,i=A.clientHeight||A.height;if(t!==this.width||i!==this.height){var n;this.width=t,this.height=i,(n=this.viewManager)===null||n===void 0||n.setProps({width:t,height:i}),this.props.onResize({width:t,height:i})}}_createAnimationLoop(A){const{width:t,height:i,gl:n,glOptions:r,debug:o,onError:s,onBeforeRender:a,onAfterRender:g,useDevicePixels:I}=A;return new u5({width:t,height:i,useDevicePixels:I,autoResizeViewport:!1,gl:n,onCreateContext:l=>QL({...r,...l,canvas:this.canvas,debug:o,onContextLost:()=>this._onContextLost()}),onInitialize:l=>this._setGLContext(l.gl),onRender:this._onRenderFrame.bind(this),onBeforeRender:a,onAfterRender:g,onError:s})}_getViewState(){return this.props.viewState||this.viewState}_getViews(){let A=this.props.views||[new wb({id:"default-view"})];return A=Array.isArray(A)?A:[A],A.length&&this.props.controller&&(A[0].props.controller=this.props.controller),A}_onContextLost(){const{onError:A}=this.props;this.animationLoop&&A&&A(new Error("WebGL context is lost"))}_pickAndCallback(){const{_pickRequest:A}=this;if(A.event){const{result:i,emptyInfo:n}=this._pick("pickObject","pickObject Time",A);this.cursorState.isHovering=i.length>0;let r=n,o=!1;for(const s of i){var t;r=s,o=((t=s.layer)===null||t===void 0?void 0:t.onHover(s,A.event))||o}if(!o&&this.props.onHover&&this.props.onHover(r,A.event),this.props.getTooltip&&this.tooltip){const s=this.props.getTooltip(r);this.tooltip.setTooltip(s,r.x,r.y)}A.event=null}}_updateCursor(){const A=this.props.parent||this.canvas;A&&(A.style.cursor=this.props.getCursor(this.cursorState))}_setGLContext(A){if(this.layerManager)return;this.canvas||(this.canvas=A.canvas,kp(A,{enable:!0,copyState:!0})),this.tooltip=new Ez(this.canvas),Pn(A,{blend:!0,blendFunc:[770,771,1,771],polygonOffsetFill:!0,depthTest:!0,depthFunc:515}),this.props.onWebGLInitialized(A);const t=new Ib;t.play(),this.animationLoop.attachTimeline(t),this.eventManager=new Xz(this.props.parent||A.canvas,{touchAction:this.props.touchAction,recognizerOptions:this.props.eventRecognizerOptions,events:{pointerdown:this._onPointerDown,pointermove:this._onPointerMove,pointerleave:this._onPointerMove}});for(const n in CD)this.eventManager.on(n,this._onEvent);this.viewManager=new LW({timeline:t,eventManager:this.eventManager,onViewStateChange:this._onViewStateChange.bind(this),onInteractionStateChange:this._onInteractionStateChange.bind(this),views:this._getViews(),viewState:this._getViewState(),width:this.width,height:this.height});const i=this.viewManager.getViewports()[0];this.layerManager=new NW(A,{deck:this,stats:this.stats,viewport:i,timeline:t}),this.effectManager=new tz,this.deckRenderer=new sz(A),this.deckPicker=new Cz(A),this.setProps(this.props),this._updateCanvasSize(),this.props.onLoad()}_drawLayers(A,t){const{gl:i}=this.layerManager.context;Pn(i,this.props.parameters),this.props.onBeforeRender({gl:i}),this.deckRenderer.renderLayers({target:this.props._framebuffer,layers:this.layerManager.getLayers(),viewports:this.viewManager.getViewports(),onViewportActive:this.layerManager.activateViewport,views:this.viewManager.getViews(),pass:"screen",redrawReason:A,effects:this.effectManager.getEffects(),...t}),this.props.onAfterRender({gl:i})}_onRenderFrame(A){this._getFrameStats(),this._metricsCounter++%60===0&&(this._getMetrics(),this.stats.reset(),Ae.table(4,this.metrics)(),this.props._onMetrics&&this.props._onMetrics(this.metrics)),this._updateCanvasSize(),this._updateCursor(),this.tooltip.isVisible&&this.viewManager.needsRedraw()&&this.tooltip.setTooltip(null),this.layerManager.updateLayers(),this._pickAndCallback(),this.redraw(),this.viewManager&&this.viewManager.updateViewStates()}_onViewStateChange(A){const t=this.props.onViewStateChange(A)||A.viewState;this.viewState&&(this.viewState={...this.viewState,[A.viewId]:t},this.props.viewState||this.viewManager&&this.viewManager.setProps({viewState:this.viewState}))}_onInteractionStateChange(A){this.cursorState.isDragging=A.isDragging||!1,this.props.onInteractionStateChange(A)}_getFrameStats(){const{stats:A}=this;A.get("frameRate").timeEnd(),A.get("frameRate").timeStart();const t=this.animationLoop.stats;A.get("GPU Time").addTime(t.get("GPU Time").lastTiming),A.get("CPU Time").addTime(t.get("CPU Time").lastTiming)}_getMetrics(){const{metrics:A,stats:t}=this;A.fps=t.get("frameRate").getHz(),A.setPropsTime=t.get("setProps Time").time,A.updateAttributesTime=t.get("Update Attributes").time,A.framesRedrawn=t.get("Redraw Count").count,A.pickTime=t.get("pickObject Time").time+t.get("pickMultipleObjects Time").time+t.get("pickObjects Time").time,A.pickCount=t.get("Pick Count").count,A.gpuTime=t.get("GPU Time").time,A.cpuTime=t.get("CPU Time").time,A.gpuTimePerFrame=t.get("GPU Time").getAverageTime(),A.cpuTimePerFrame=t.get("CPU Time").getAverageTime();const i=yo.get("Memory Usage");A.bufferMemory=i.get("Buffer Memory").count,A.textureMemory=i.get("Texture Memory").count,A.renderbufferMemory=i.get("Renderbuffer Memory").count,A.gpuMemory=i.get("GPU Memory").count}}y($E,"defaultProps",Nb);y($E,"VERSION",vO.VERSION);class ef{constructor(A,t){y(this,"opts",void 0),y(this,"source",void 0),this.opts=t,this.source=A}get value(){return this.source.value}getValue(){const A=this.source.getBuffer(),t=this.getAccessor();if(A)return[A,t];const{value:i}=this.source,{size:n}=t;let r=i;if(i&&i.length!==n){r=new Float32Array(n);const o=t.elementOffset||0;for(let s=0;s=r){const o=new Array(n).fill(1/0),s=new Array(n).fill(-1/0);for(let a=0;as[g]&&(s[g]=I)}A=[o,s]}}return this.state.bounds=A,A}setData(A){const{state:t}=this;let i;ArrayBuffer.isView(A)?i={value:A}:A instanceof we?i={buffer:A}:i=A;const n={...this.settings,...i};if(t.bufferAccessor=n,t.bounds=null,i.constant){let r=i.value;if(r=this._normalizeValue(r,[],0),this.settings.normalized&&(r=this.normalizeConstant(r)),!(!t.constant||!this._areValuesEqual(r,this.value)))return!1;t.externalBuffer=null,t.constant=!0,this.value=r}else if(i.buffer){const r=i.buffer;t.externalBuffer=r,t.constant=!1,this.value=i.value||null;const o=i.value instanceof Float64Array;n.type=i.type||r.accessor.type,n.bytesPerElement=r.accessor.BYTES_PER_ELEMENT*(o?2:1),n.stride=kC(n)}else if(i.value){this._checkExternalBuffer(i);let r=i.value;t.externalBuffer=null,t.constant=!1,this.value=r,n.bytesPerElement=r.BYTES_PER_ELEMENT,n.stride=kC(n);const{buffer:o,byteOffset:s}=this;this.doublePrecision&&r instanceof Float64Array&&(r=Zh(r,n));const a=r.byteLength+s+n.stride*2;o.byteLength(t+128)/255*2-1);case 5122:return new Float32Array(A).map(t=>(t+32768)/65535*2-1);case 5121:return new Float32Array(A).map(t=>t/255);case 5123:return new Float32Array(A).map(t=>t/65535);default:return A}}_normalizeValue(A,t,i){const{defaultValue:n,size:r}=this.settings;if(Number.isFinite(A))return t[i]=A,t;if(!A)return t[i]=n[0],t;switch(r){case 4:t[i+3]=Number.isFinite(A[3])?A[3]:n[3];case 3:t[i+2]=Number.isFinite(A[2])?A[2]:n[2];case 2:t[i+1]=Number.isFinite(A[1])?A[1]:n[1];case 1:t[i+0]=Number.isFinite(A[0])?A[0]:n[0];break;default:let o=r;for(;--o>=0;)t[i+o]=Number.isFinite(A[o])?A[o]:n[o]}return t}_areValuesEqual(A,t){if(!A||!t)return!1;const{size:i}=this;for(let n=0;n0&&(PD.length=e.length,i=PD):i=UD,(A>0||Number.isFinite(t))&&(i=(Array.isArray(i)?i:Array.from(i)).slice(A,t),n.index=A-1),{iterable:i,objectInfo:n}}function bb(e){return e&&e[Symbol.asyncIterator]}function Gb(e,A){const{size:t,stride:i,offset:n,startIndices:r,nested:o}=A,s=e.BYTES_PER_ELEMENT,a=i?i/s:t,g=n?n/s:0,I=Math.floor((e.length-g)/a);return(l,{index:c,target:C})=>{if(!r){const h=c*a+g;for(let f=0;f=A[1]))return e;const t=[],i=e.length;let n=0;for(let r=0;rA[1]?t.push(o):A=[Math.min(o[0],A[0]),Math.max(o[1],A[1])]}return t.splice(n,0,A),t}function tf(e){const{source:A,target:t,start:i=0,size:n,getData:r}=e,o=e.end||t.length,s=A.length,a=o-i;if(s>a){t.set(A.subarray(0,a),i);return}if(t.set(A,i),!r)return;let g=s;for(;gi(I+s,l)),g=Math.min(n.length,r.length);for(let I=1;Ie},spring:{stiffness:.05,damping:.5}};function _b(e,A){if(!e)return null;Number.isFinite(e)&&(e={type:"interpolation",duration:e});const t=e.type||"interpolation";return{...r7[t],...A,...e,type:t}}function Mb(e,A){const t=A.getBuffer();return t?[t,{divisor:0,size:A.size,normalized:A.settings.normalized}]:A.value}function kb(e){switch(e){case 1:return"float";case 2:return"vec2";case 3:return"vec3";case 4:return"vec4";default:throw new Error('No defined attribute type for size "'.concat(e,'"'))}}function Tb(e){e.push(e.shift())}function Ay(e,A){const{doublePrecision:t,settings:i,value:n,size:r}=e,o=t&&n instanceof Float64Array?2:1;return(i.noAlloc?n.length:A*r)*o}function Ub({buffer:e,numInstances:A,attribute:t,fromLength:i,fromStartIndices:n,getData:r=o=>o}){const o=t.doublePrecision&&t.value instanceof Float64Array?2:1,s=t.size*o,a=t.byteOffset,g=t.startIndices,I=n&&g,l=Ay(t,A),c=t.isConstant;if(!I&&i>=l)return;const C=c?t.value:t.getBuffer().getData({srcByteOffset:a});if(t.settings.normalized&&!c){const h=r;r=(f,Q)=>t.normalizeConstant(h(f,Q))}const B=c?(h,f)=>r(C,f):(h,f)=>r(C.subarray(h,h+s),f),u=e.getData({length:i}),E=new Float32Array(l);n7({source:u,target:E,sourceStartIndices:n,targetStartIndices:g,size:s,getData:B}),e.byteLengthA[r])]:A[t];return _b(n,i)}setNeedsUpdate(A=this.id,t){if(this.state.needsUpdate=this.state.needsUpdate||A,this.setNeedsRedraw(A),t){const{startRow:i=0,endRow:n=1/0}=t;this.state.updateRanges=i7(this.state.updateRanges,[i,n])}else this.state.updateRanges=TC}clearNeedsUpdate(){this.state.needsUpdate=!1,this.state.updateRanges=t7}setNeedsRedraw(A=this.id){this.state.needsRedraw=this.state.needsRedraw||A}allocate(A){const{state:t,settings:i}=this;return i.noAlloc?!1:i.update?(super.allocate(A,t.updateRanges!==TC),!0):!1}updateBuffer({numInstances:A,data:t,props:i,context:n}){if(!this.needsUpdate())return!1;const{state:{updateRanges:r},settings:{update:o,noAlloc:s}}=this;let a=!0;if(o){for(const[g,I]of r)o.call(n,this,{data:t,startRow:g,endRow:I,props:i,numInstances:A});if(this.value)if(this.constant||this.buffer.byteLengthI?g.set(Q,u):(A._normalizeValue(Q,h.target,0),SW({target:g,source:h.target,start:u,count:d}));u+=d*I}else A._normalizeValue(Q,g,u),u+=I}}_validateAttributeUpdaters(){const{settings:A}=this;if(!(A.noAlloc||typeof A.update=="function"))throw new Error("Attribute ".concat(this.id," missing update or accessor"))}_checkAttributeArray(){const{value:A}=this,t=Math.min(4,this.size);if(A&&A.length>=t){let i=!0;switch(t){case 4:i=i&&Number.isFinite(A[3]);case 3:i=i&&Number.isFinite(A[2]);case 2:i=i&&Number.isFinite(A[1]);case 1:i=i&&Number.isFinite(A[0]);break;default:i=!1}if(!i)throw new Error("Illegal attribute generated for ".concat(this.id))}}}class o7{constructor({gl:A,attribute:t,timeline:i}){y(this,"gl",void 0),y(this,"type","interpolation"),y(this,"attributeInTransition",void 0),y(this,"settings",void 0),y(this,"attribute",void 0),y(this,"transition",void 0),y(this,"currentStartIndices",void 0),y(this,"currentLength",void 0),y(this,"transform",void 0),y(this,"buffers",void 0),this.gl=A,this.transition=new Hl(i),this.attribute=t,this.attributeInTransition=new ey(A,t.settings),this.currentStartIndices=t.startIndices,this.currentLength=0,this.transform=a7(A,t);const n={byteLength:0,usage:35050};this.buffers=[new we(A,n),new we(A,n)]}get inProgress(){return this.transition.inProgress}start(A,t){if(A.duration<=0){this.transition.cancel();return}this.settings=A;const{gl:i,buffers:n,attribute:r}=this;Tb(n);const o={numInstances:t,attribute:r,fromLength:this.currentLength,fromStartIndices:this.currentStartIndices,getData:A.enter};for(const s of n)Ub({buffer:s,...o});this.currentStartIndices=r.startIndices,this.currentLength=Ay(r,t),this.attributeInTransition.setData({buffer:n[1],value:r.value}),this.transition.start(A),this.transform.update({elementCount:Math.floor(this.currentLength/r.size),sourceBuffers:{aFrom:n[0],aTo:Mb(i,r)},feedbackBuffers:{vCurrent:n[1]}})}update(){const A=this.transition.update();if(A){const{duration:t,easing:i}=this.settings,{time:n}=this.transition;let r=n/t;i&&(r=i(r)),this.transform.run({uniforms:{time:r}})}return A}cancel(){this.transition.cancel(),this.transform.delete();for(const A of this.buffers)A.delete();this.buffers.length=0}}const s7=` +`;return function(){var nA=new Error("get-stack-trace"),uA=nA&&nA.stack?nA.stack.replace(/^[^\(]+?[\n$]/gm,"").replace(/^\s+at\s+/gm,"").replace(/^Object.\s*\(/gm,"{anonymous}()@"):"Unknown Stack Trace",oe=A.console&&(A.console.warn||A.console.log);return oe&&oe.call(A.console,K,uA),S.apply(this,arguments)}}var u;typeof Object.assign!="function"?u=function(R){if(R===n||R===null)throw new TypeError("Cannot convert undefined or null to object");for(var b=Object(R),K=1;K-1}function F(S){return S.trim().split(/\s+/g)}function N(S,R,b){if(S.indexOf&&!b)return S.indexOf(R);for(var K=0;K_t[R]}):K=K.sort()),K}function P(S,R){for(var b,K,nA=R[0].toUpperCase()+R.slice(1),uA=0;uA1&&!b.firstMultiple?b.firstMultiple=_e(R):nA===1&&(b.firstMultiple=!1);var uA=b.firstInput,oe=b.firstMultiple,nt=oe?oe.center:uA.center,ct=R.center=WA(K);R.timeStamp=I(),R.deltaTime=R.timeStamp-uA.timeStamp,R.angle=JA(nt,ct),R.distance=se(nt,ct),re(b,R),R.offsetDirection=xe(R.deltaX,R.deltaY);var _t=qA(R.deltaTime,R.deltaX,R.deltaY);R.overallVelocityX=_t.x,R.overallVelocityY=_t.y,R.overallVelocity=g(_t.x)>g(_t.y)?_t.x:_t.y,R.scale=oe?Be(oe.pointers,K):1,R.rotation=oe?xA(oe.pointers,K):0,R.maxPointers=b.prevInput?R.pointers.length>b.prevInput.maxPointers?R.pointers.length:b.prevInput.maxPointers:R.pointers.length,VA(b,R);var Ji=S.element;x(R.srcEvent.target,Ji)&&(Ji=R.srcEvent.target),R.target=Ji}function re(S,R){var b=R.center,K=S.offsetDelta||{},nA=S.prevDelta||{},uA=S.prevInput||{};(R.eventType===sA||uA.eventType===IA)&&(nA=S.prevDelta={x:uA.deltaX||0,y:uA.deltaY||0},K=S.offsetDelta={x:b.x,y:b.y}),R.deltaX=nA.x+(b.x-K.x),R.deltaY=nA.y+(b.y-K.y)}function VA(S,R){var b=S.lastInterval||R,K=R.timeStamp-b.timeStamp,nA,uA,oe,nt;if(R.eventType!=bA&&(K>gA||b.velocity===n)){var ct=R.deltaX-b.deltaX,_t=R.deltaY-b.deltaY,Ji=qA(K,ct,_t);uA=Ji.x,oe=Ji.y,nA=g(Ji.x)>g(Ji.y)?Ji.x:Ji.y,nt=xe(ct,_t),S.lastInterval=R}else nA=b.velocity,uA=b.velocityX,oe=b.velocityY,nt=b.direction;R.velocity=nA,R.velocityX=uA,R.velocityY=oe,R.direction=nt}function _e(S){for(var R=[],b=0;b=g(R)?S<0?QA:TA:R<0?RA:UA}function se(S,R,b){b||(b=ne);var K=R[b[0]]-S[b[0]],nA=R[b[1]]-S[b[1]];return Math.sqrt(K*K+nA*nA)}function JA(S,R,b){b||(b=ne);var K=R[b[0]]-S[b[0]],nA=R[b[1]]-S[b[1]];return Math.atan2(nA,K)*180/Math.PI}function xA(S,R){return JA(R[1],R[0],Ie)+JA(S[1],S[0],Ie)}function Be(S,R){return se(R[0],R[1],Ie)/se(S[0],S[1],Ie)}var ue={mousedown:sA,mousemove:BA,mouseup:IA},PA="mousedown",rA="mousemove mouseup";function GA(){this.evEl=PA,this.evWin=rA,this.pressed=!1,KA.apply(this,arguments)}f(GA,KA,{handler:function(R){var b=ue[R.type];b&sA&&R.button===0&&(this.pressed=!0),b&BA&&R.which!==1&&(b=IA),this.pressed&&(b&IA&&(this.pressed=!1),this.callback(this.manager,b,{pointers:[R],changedPointers:[R],pointerType:AA,srcEvent:R}))}});var ve={pointerdown:sA,pointermove:BA,pointerup:IA,pointercancel:bA,pointerout:bA},pe={2:q,3:j,4:AA,5:iA},Fe="pointerdown",Ne="pointermove pointerup pointercancel";A.MSPointerEvent&&!A.PointerEvent&&(Fe="MSPointerDown",Ne="MSPointerMove MSPointerUp MSPointerCancel");function Xe(){this.evEl=Fe,this.evWin=Ne,KA.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}f(Xe,KA,{handler:function(R){var b=this.store,K=!1,nA=R.type.toLowerCase().replace("ms",""),uA=ve[nA],oe=pe[R.pointerType]||R.pointerType,nt=oe==q,ct=N(b,R.pointerId,"pointerId");uA&sA&&(R.button===0||nt)?ct<0&&(b.push(R),ct=b.length-1):uA&(IA|bA)&&(K=!0),!(ct<0)&&(b[ct]=R,this.callback(this.manager,uA,{pointers:b,changedPointers:[R],pointerType:oe,srcEvent:R}),K&&b.splice(ct,1))}});var it={touchstart:sA,touchmove:BA,touchend:IA,touchcancel:bA},Ar="touchstart",ls="touchstart touchmove touchend touchcancel";function fn(){this.evTarget=Ar,this.evWin=ls,this.started=!1,KA.apply(this,arguments)}f(fn,KA,{handler:function(R){var b=it[R.type];if(b===sA&&(this.started=!0),!!this.started){var K=rg.call(this,R,b);b&(IA|bA)&&K[0].length-K[1].length===0&&(this.started=!1),this.callback(this.manager,b,{pointers:K[0],changedPointers:K[1],pointerType:q,srcEvent:R})}}});function rg(S,R){var b=M(S.touches),K=M(S.changedTouches);return R&(IA|bA)&&(b=U(b.concat(K),"identifier",!0)),[b,K]}var cs={touchstart:sA,touchmove:BA,touchend:IA,touchcancel:bA},wA="touchstart touchmove touchend touchcancel";function LA(){this.evTarget=wA,this.targetIds={},KA.apply(this,arguments)}f(LA,KA,{handler:function(R){var b=cs[R.type],K=Se.call(this,R,b);!K||this.callback(this.manager,b,{pointers:K[0],changedPointers:K[1],pointerType:q,srcEvent:R})}});function Se(S,R){var b=M(S.touches),K=this.targetIds;if(R&(sA|BA)&&b.length===1)return K[b[0].identifier]=!0,[b,b];var nA,uA,oe=M(S.changedTouches),nt=[],ct=this.target;if(uA=b.filter(function(_t){return x(_t.target,ct)}),R===sA)for(nA=0;nA-1&&K.splice(uA,1)};setTimeout(nA,ye)}}function L(S){for(var R=S.srcEvent.clientX,b=S.srcEvent.clientY,K=0;K-1&&this.requireFail.splice(R,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(S){return!!this.simultaneous[S.id]},emit:function(S){var R=this,b=this.state;function K(nA){R.manager.emit(nA,S)}b=wt&&K(R.options.event+Ym(b))},tryEmit:function(S){if(this.canEmit())return this.emit(S);this.state=qi},canEmit:function(){for(var S=0;SR.threshold&&nA&R.direction},attrTest:function(S){return vi.prototype.attrTest.call(this,S)&&(this.state&kA||!(this.state&kA)&&this.directionTest(S))},emit:function(S){this.pX=S.deltaX,this.pY=S.deltaY;var R=Km(S.direction);R&&(S.additionalEvent=this.options.event+R),this._super.emit.call(this,S)}});function Nu(){vi.apply(this,arguments)}f(Nu,vi,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[dA]},attrTest:function(S){return this._super.attrTest.call(this,S)&&(Math.abs(S.scale-1)>this.options.threshold||this.state&kA)},emit:function(S){if(S.scale!==1){var R=S.scale<1?"in":"out";S.additionalEvent=this.options.event+R}this._super.emit.call(this,S)}});function Lu(){dn.apply(this,arguments),this._timer=null,this._input=null}f(Lu,dn,{defaults:{event:"press",pointers:1,time:251,threshold:9},getTouchAction:function(){return[X]},process:function(S){var R=this.options,b=S.pointers.length===R.pointers,K=S.distanceR.time;if(this._input=S,!K||!b||S.eventType&(IA|bA)&&!nA)this.reset();else if(S.eventType&sA)this.reset(),this._timer=l(function(){this.state=vt,this.tryEmit()},R.time,this);else if(S.eventType&IA)return vt;return qi},reset:function(){clearTimeout(this._timer)},emit:function(S){this.state===vt&&(S&&S.eventType&IA?this.manager.emit(this.options.event+"up",S):(this._input.timeStamp=I(),this.manager.emit(this.options.event,this._input)))}});function bu(){vi.apply(this,arguments)}f(bu,vi,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[dA]},attrTest:function(S){return this._super.attrTest.call(this,S)&&(Math.abs(S.rotation)>this.options.threshold||this.state&kA)}});function Gu(){vi.apply(this,arguments)}f(Gu,vi,{defaults:{event:"swipe",threshold:10,velocity:.3,direction:fA|NA,pointers:1},getTouchAction:function(){return sc.prototype.getTouchAction.call(this)},attrTest:function(S){var R=this.options.direction,b;return R&(fA|NA)?b=S.overallVelocity:R&fA?b=S.overallVelocityX:R&NA&&(b=S.overallVelocityY),this._super.attrTest.call(this,S)&&R&S.offsetDirection&&S.distance>this.options.threshold&&S.maxPointers==this.options.pointers&&g(b)>this.options.velocity&&S.eventType&IA},emit:function(S){var R=Km(S.offsetDirection);R&&this.manager.emit(this.options.event+R,S),this.manager.emit(this.options.event,S)}});function ac(){dn.apply(this,arguments),this.pTime=!1,this.pCenter=!1,this._timer=null,this._input=null,this.count=0}f(ac,dn,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},getTouchAction:function(){return[tA]},process:function(S){var R=this.options,b=S.pointers.length===R.pointers,K=S.distance0&&i.type==="pointerdown"&&(pz(n,r=>r.pointerId===i.pointerId)||n.push(i)),A.call(this,i)}}function mz(e){e.prototype.handler=function(t){let i=dz[t.type];i&Lb&&t.button>=0&&(this.pressed=!0),i&bb&&t.which===0&&(i=fd),this.pressed&&(i&fd&&(this.pressed=!1),this.callback(this.manager,i,{pointers:[t],changedPointers:[t],pointerType:"mouse",srcEvent:t}))}}yz(Ua.exports.PointerEventInput);mz(Ua.exports.MouseInput);const wz=Ua.exports.Manager;class ZE{constructor(A,t,i){this.element=A,this.callback=t,this.options={enable:!0,...i}}}const vz=Yi?[[Yi.Pan,{event:"tripan",pointers:3,threshold:0,enable:!1}],[Yi.Rotate,{enable:!1}],[Yi.Pinch,{enable:!1}],[Yi.Swipe,{enable:!1}],[Yi.Pan,{threshold:0,enable:!1}],[Yi.Press,{enable:!1}],[Yi.Tap,{event:"doubletap",taps:2,enable:!1}],[Yi.Tap,{event:"anytap",enable:!1}],[Yi.Tap,{enable:!1}]]:null,RD={tripan:["rotate","pinch","pan"],rotate:["pinch"],pinch:["pan"],pan:["press","doubletap","anytap","tap"],doubletap:["anytap"],anytap:["tap"]},Sz={doubletap:["tap"]},Dz={pointerdown:"pointerdown",pointermove:"pointermove",pointerup:"pointerup",touchstart:"pointerdown",touchmove:"pointermove",touchend:"pointerup",mousedown:"pointerdown",mousemove:"pointermove",mouseup:"pointerup"},Ay={KEY_EVENTS:["keydown","keyup"],MOUSE_EVENTS:["mousedown","mousemove","mouseup","mouseover","mouseout","mouseleave"],WHEEL_EVENTS:["wheel","mousewheel"]},Rz={tap:"tap",anytap:"anytap",doubletap:"doubletap",press:"press",pinch:"pinch",pinchin:"pinch",pinchout:"pinch",pinchstart:"pinch",pinchmove:"pinch",pinchend:"pinch",pinchcancel:"pinch",rotate:"rotate",rotatestart:"rotate",rotatemove:"rotate",rotateend:"rotate",rotatecancel:"rotate",tripan:"tripan",tripanstart:"tripan",tripanmove:"tripan",tripanup:"tripan",tripandown:"tripan",tripanleft:"tripan",tripanright:"tripan",tripanend:"tripan",tripancancel:"tripan",pan:"pan",panstart:"pan",panmove:"pan",panup:"pan",pandown:"pan",panleft:"pan",panright:"pan",panend:"pan",pancancel:"pan",swipe:"swipe",swipeleft:"swipe",swiperight:"swipe",swipeup:"swipe",swipedown:"swipe"},xD={click:"tap",anyclick:"anytap",dblclick:"doubletap",mousedown:"pointerdown",mousemove:"pointermove",mouseup:"pointerup",mouseover:"pointerover",mouseout:"pointerout",mouseleave:"pointerleave"},xz=typeof navigator!="undefined"&&navigator.userAgent?navigator.userAgent.toLowerCase():"",Hs=typeof window!="undefined"?window:global;let Qd=!1;try{const e={get passive(){return Qd=!0,!0}};Hs.addEventListener("test",null,e),Hs.removeEventListener("test",null)}catch{Qd=!1}const Fz=xz.indexOf("firefox")!==-1,{WHEEL_EVENTS:Nz}=Ay,FD="wheel",ND=4.000244140625,Lz=40,bz=.25;class Gz extends ZE{constructor(A,t,i){super(A,t,i),this.handleEvent=n=>{if(!this.options.enable)return;let r=n.deltaY;Hs.WheelEvent&&(Fz&&n.deltaMode===Hs.WheelEvent.DOM_DELTA_PIXEL&&(r/=Hs.devicePixelRatio),n.deltaMode===Hs.WheelEvent.DOM_DELTA_LINE&&(r*=Lz)),r!==0&&r%ND===0&&(r=Math.floor(r/ND)),n.shiftKey&&r&&(r=r*bz),this.callback({type:FD,center:{x:n.clientX,y:n.clientY},delta:-r,srcEvent:n,pointerType:"mouse",target:n.target})},this.events=(this.options.events||[]).concat(Nz),this.events.forEach(n=>A.addEventListener(n,this.handleEvent,Qd?{passive:!1}:!1))}destroy(){this.events.forEach(A=>this.element.removeEventListener(A,this.handleEvent))}enableEventType(A,t){A===FD&&(this.options.enable=t)}}const{MOUSE_EVENTS:_z}=Ay,LD="pointermove",bD="pointerover",GD="pointerout",_D="pointerenter",MD="pointerleave";class Mz extends ZE{constructor(A,t,i){super(A,t,i),this.handleEvent=r=>{this.handleOverEvent(r),this.handleOutEvent(r),this.handleEnterEvent(r),this.handleLeaveEvent(r),this.handleMoveEvent(r)},this.pressed=!1;const{enable:n}=this.options;this.enableMoveEvent=n,this.enableLeaveEvent=n,this.enableEnterEvent=n,this.enableOutEvent=n,this.enableOverEvent=n,this.events=(this.options.events||[]).concat(_z),this.events.forEach(r=>A.addEventListener(r,this.handleEvent))}destroy(){this.events.forEach(A=>this.element.removeEventListener(A,this.handleEvent))}enableEventType(A,t){A===LD&&(this.enableMoveEvent=t),A===bD&&(this.enableOverEvent=t),A===GD&&(this.enableOutEvent=t),A===_D&&(this.enableEnterEvent=t),A===MD&&(this.enableLeaveEvent=t)}handleOverEvent(A){this.enableOverEvent&&A.type==="mouseover"&&this._emit(bD,A)}handleOutEvent(A){this.enableOutEvent&&A.type==="mouseout"&&this._emit(GD,A)}handleEnterEvent(A){this.enableEnterEvent&&A.type==="mouseenter"&&this._emit(_D,A)}handleLeaveEvent(A){this.enableLeaveEvent&&A.type==="mouseleave"&&this._emit(MD,A)}handleMoveEvent(A){if(this.enableMoveEvent)switch(A.type){case"mousedown":A.button>=0&&(this.pressed=!0);break;case"mousemove":A.which===0&&(this.pressed=!1),this.pressed||this._emit(LD,A);break;case"mouseup":this.pressed=!1;break}}_emit(A,t){this.callback({type:A,center:{x:t.clientX,y:t.clientY},srcEvent:t,pointerType:"mouse",target:t.target})}}const{KEY_EVENTS:kz}=Ay,kD="keydown",TD="keyup";class Tz extends ZE{constructor(A,t,i){super(A,t,i),this.handleEvent=n=>{const r=n.target||n.srcElement;r.tagName==="INPUT"&&r.type==="text"||r.tagName==="TEXTAREA"||(this.enableDownEvent&&n.type==="keydown"&&this.callback({type:kD,srcEvent:n,key:n.key,target:n.target}),this.enableUpEvent&&n.type==="keyup"&&this.callback({type:TD,srcEvent:n,key:n.key,target:n.target}))},this.enableDownEvent=this.options.enable,this.enableUpEvent=this.options.enable,this.events=(this.options.events||[]).concat(kz),A.tabIndex=this.options.tabIndex||0,A.style.outline="none",this.events.forEach(n=>A.addEventListener(n,this.handleEvent))}destroy(){this.events.forEach(A=>this.element.removeEventListener(A,this.handleEvent))}enableEventType(A,t){A===kD&&(this.enableDownEvent=t),A===TD&&(this.enableUpEvent=t)}}const UD="contextmenu";class Uz extends ZE{constructor(A,t,i){super(A,t,i),this.handleEvent=n=>{!this.options.enable||this.callback({type:UD,center:{x:n.clientX,y:n.clientY},srcEvent:n,pointerType:"mouse",target:n.target})},A.addEventListener("contextmenu",this.handleEvent)}destroy(){this.element.removeEventListener("contextmenu",this.handleEvent)}enableEventType(A,t){A===UD&&(this.options.enable=t)}}const dd=1,PB=2,pd=4,Pz={pointerdown:dd,pointermove:PB,pointerup:pd,mousedown:dd,mousemove:PB,mouseup:pd},Hz=1,qz=2,Jz=3,Oz=0,Yz=1,Kz=2,Vz=1,Wz=2,zz=4;function jz(e){const A=Pz[e.srcEvent.type];if(!A)return null;const{buttons:t,button:i,which:n}=e.srcEvent;let r=!1,o=!1,s=!1;return A===pd||A===PB&&!Number.isFinite(t)?(r=n===Hz,o=n===qz,s=n===Jz):A===PB?(r=Boolean(t&Vz),o=Boolean(t&zz),s=Boolean(t&Wz)):A===dd&&(r=i===Oz,o=i===Yz,s=i===Kz),{leftButton:r,middleButton:o,rightButton:s}}function Xz(e,A){const t=e.center;if(!t)return null;const i=A.getBoundingClientRect(),n=i.width/A.offsetWidth||1,r=i.height/A.offsetHeight||1,o={x:(t.x-i.left-A.clientLeft)/n,y:(t.y-i.top-A.clientTop)/r};return{center:t,offsetCenter:o}}const Af={srcElement:"root",priority:0};class Zz{constructor(A){this.handleEvent=t=>{if(this.isEmpty())return;const i=this._normalizeEvent(t);let n=t.srcEvent.target;for(;n&&n!==i.rootElement;){if(this._emit(i,n),i.handled)return;n=n.parentNode}this._emit(i,"root")},this.eventManager=A,this.handlers=[],this.handlersByElement=new Map,this._active=!1}isEmpty(){return!this._active}add(A,t,i,n=!1,r=!1){const{handlers:o,handlersByElement:s}=this;let a=Af;typeof i=="string"||i&&i.addEventListener?a={...Af,srcElement:i}:i&&(a={...Af,...i});let g=s.get(a.srcElement);g||(g=[],s.set(a.srcElement,g));const I={type:A,handler:t,srcElement:a.srcElement,priority:a.priority};n&&(I.once=!0),r&&(I.passive=!0),o.push(I),this._active=this._active||!I.passive;let l=g.length-1;for(;l>=0&&!(g[l].priority>=I.priority);)l--;g.splice(l+1,0,I)}remove(A,t){const{handlers:i,handlersByElement:n}=this;for(let r=i.length-1;r>=0;r--){const o=i[r];if(o.type===A&&o.handler===t){i.splice(r,1);const s=n.get(o.srcElement);s.splice(s.indexOf(o),1),s.length===0&&n.delete(o.srcElement)}}this._active=i.some(r=>!r.passive)}_emit(A,t){const i=this.handlersByElement.get(t);if(i){let n=!1;const r=()=>{A.handled=!0},o=()=>{A.handled=!0,n=!0},s=[];for(let a=0;a{A.srcEvent.preventDefault()},stopImmediatePropagation:null,stopPropagation:null,handled:!1,rootElement:t}}}const $z={events:null,recognizers:null,recognizerOptions:{},Manager:wz,touchAction:"none",tabIndex:0};class A7{constructor(A=null,t){this._onBasicInput=n=>{const{srcEvent:r}=n,o=Dz[r.type];o&&this.manager.emit(o,n)},this._onOtherEvent=n=>{this.manager.emit(n.type,n)},this.options={...$z,...t},this.events=new Map,this.setElement(A);const{events:i}=this.options;i&&this.on(i)}getElement(){return this.element}setElement(A){if(this.element&&this.destroy(),this.element=A,!A)return;const{options:t}=this,i=t.Manager;this.manager=new i(A,{touchAction:t.touchAction,recognizers:t.recognizers||vz}).on("hammer.input",this._onBasicInput),t.recognizers||Object.keys(RD).forEach(n=>{const r=this.manager.get(n);r&&RD[n].forEach(o=>{r.recognizeWith(o)})});for(const n in t.recognizerOptions){const r=this.manager.get(n);if(r){const o=t.recognizerOptions[n];delete o.enable,r.set(o)}}this.wheelInput=new Gz(A,this._onOtherEvent,{enable:!1}),this.moveInput=new Mz(A,this._onOtherEvent,{enable:!1}),this.keyInput=new Tz(A,this._onOtherEvent,{enable:!1,tabIndex:t.tabIndex}),this.contextmenuInput=new Uz(A,this._onOtherEvent,{enable:!1});for(const[n,r]of this.events)r.isEmpty()||(this._toggleRecognizer(r.recognizerName,!0),this.manager.on(n,r.handleEvent))}destroy(){this.element&&(this.wheelInput.destroy(),this.moveInput.destroy(),this.keyInput.destroy(),this.contextmenuInput.destroy(),this.manager.destroy(),this.wheelInput=null,this.moveInput=null,this.keyInput=null,this.contextmenuInput=null,this.manager=null,this.element=null)}on(A,t,i){this._addEventHandler(A,t,i,!1)}once(A,t,i){this._addEventHandler(A,t,i,!0)}watch(A,t,i){this._addEventHandler(A,t,i,!1,!0)}off(A,t){this._removeEventHandler(A,t)}_toggleRecognizer(A,t){const{manager:i}=this;if(!i)return;const n=i.get(A);if(n&&n.options.enable!==t){n.set({enable:t});const r=Sz[A];r&&!this.options.recognizers&&r.forEach(o=>{const s=i.get(o);t?(s.requireFailure(A),n.dropRequireFailure(o)):s.dropRequireFailure(A)})}this.wheelInput.enableEventType(A,t),this.moveInput.enableEventType(A,t),this.keyInput.enableEventType(A,t),this.contextmenuInput.enableEventType(A,t)}_addEventHandler(A,t,i,n,r){if(typeof A!="string"){i=t;for(const I in A)this._addEventHandler(I,A[I],i,n,r);return}const{manager:o,events:s}=this,a=xD[A]||A;let g=s.get(a);g||(g=new Zz(this),s.set(a,g),g.recognizerName=Rz[a]||a,o&&o.on(a,g.handleEvent)),g.add(A,t,i,n,r),g.isEmpty()||this._toggleRecognizer(g.recognizerName,!0)}_removeEventHandler(A,t){if(typeof A!="string"){for(const o in A)this._removeEventHandler(o,A[o]);return}const{events:i}=this,n=xD[A]||A,r=i.get(n);if(!!r&&(r.remove(A,t),r.isEmpty())){const{recognizerName:o}=r;let s=!1;for(const a of i.values())if(a.recognizerName===o&&!a.isEmpty()){s=!0;break}s||this._toggleRecognizer(o,!1)}}}function so(){}const e7=({isDragging:e})=>e?"grabbing":"grab",Gb={id:"",width:"100%",height:"100%",style:null,viewState:null,initialViewState:null,pickingRadius:0,layerFilter:null,glOptions:{},parameters:{},parent:null,gl:null,canvas:null,layers:[],effects:[],views:null,controller:null,useDevicePixels:!0,touchAction:"none",eventRecognizerOptions:{},_framebuffer:null,_animate:!1,_pickable:!0,_typedArrayManagerProps:{},_customRender:null,onWebGLInitialized:so,onResize:so,onViewStateChange:so,onInteractionStateChange:so,onBeforeRender:so,onAfterRender:so,onLoad:so,onError:e=>Ae.error(e.message)(),onHover:null,onClick:null,onDragStart:null,onDrag:null,onDragEnd:null,_onMetrics:null,getCursor:e7,getTooltip:null,debug:!1,drawPickingColors:!1};class $E{constructor(A){y(this,"props",void 0),y(this,"width",0),y(this,"height",0),y(this,"userData",{}),y(this,"canvas",null),y(this,"viewManager",null),y(this,"layerManager",null),y(this,"effectManager",null),y(this,"deckRenderer",null),y(this,"deckPicker",null),y(this,"eventManager",null),y(this,"tooltip",null),y(this,"metrics",void 0),y(this,"animationLoop",void 0),y(this,"stats",void 0),y(this,"viewState",void 0),y(this,"cursorState",void 0),y(this,"_needsRedraw",void 0),y(this,"_pickRequest",void 0),y(this,"_lastPointerDownInfo",null),y(this,"_metricsCounter",void 0),y(this,"_onPointerMove",t=>{const{_pickRequest:i}=this;if(t.type==="pointerleave")i.x=-1,i.y=-1,i.radius=0;else{if(t.leftButton||t.rightButton)return;{const n=t.offsetCenter;if(!n)return;i.x=n.x,i.y=n.y,i.radius=this.props.pickingRadius}}this.layerManager&&(this.layerManager.context.mousePosition={x:i.x,y:i.y}),i.event=t}),y(this,"_onEvent",t=>{const i=BD[t.type],n=t.offsetCenter;if(!i||!n||!this.layerManager)return;const r=this.layerManager.getLayers(),o=this.deckPicker.getLastPickedObject({x:n.x,y:n.y,layers:r,viewports:this.getViewports(n)},this._lastPointerDownInfo),{layer:s}=o,a=s&&(s[i.handler]||s.props[i.handler]),g=this.props[i.handler];let I=!1;a&&(I=a.call(s,o,t)),!I&&g&&g(o,t)}),y(this,"_onPointerDown",t=>{const i=t.offsetCenter,n=this._pick("pickObject","pickObject Time",{x:i.x,y:i.y,radius:this.props.pickingRadius});this._lastPointerDownInfo=n.result[0]||n.emptyInfo}),this.props={...Gb,...A},A=this.props,this._needsRedraw="Initial render",this._pickRequest={mode:"hover",x:-1,y:-1,radius:0,event:null},this.cursorState={isHovering:!1,isDragging:!1},A.viewState&&A.initialViewState&&Ae.warn("View state tracking is disabled. Use either `initialViewState` for auto update or `viewState` for manual update.")(),tL()==="IE"&&Ae.warn("IE 11 is not supported")(),this.viewState=A.initialViewState,A.gl||typeof document!="undefined"&&(this.canvas=this._createCanvas(A)),this.animationLoop=this._createAnimationLoop(A),this.stats=new JE({id:"deck.gl"}),this.metrics={fps:0,setPropsTime:0,updateAttributesTime:0,framesRedrawn:0,pickTime:0,pickCount:0,gpuTime:0,gpuTimePerFrame:0,cpuTime:0,cpuTimePerFrame:0,bufferMemory:0,textureMemory:0,renderbufferMemory:0,gpuMemory:0},this._metricsCounter=0,this.setProps(A),A._typedArrayManagerProps&&da.setOptions(A._typedArrayManagerProps),this.animationLoop.start()}finalize(){var A,t,i,n,r,o,s;if(this.animationLoop.stop(),this.animationLoop=null,this._lastPointerDownInfo=null,(A=this.layerManager)===null||A===void 0||A.finalize(),this.layerManager=null,(t=this.viewManager)===null||t===void 0||t.finalize(),this.viewManager=null,(i=this.effectManager)===null||i===void 0||i.finalize(),this.effectManager=null,(n=this.deckRenderer)===null||n===void 0||n.finalize(),this.deckRenderer=null,(r=this.deckPicker)===null||r===void 0||r.finalize(),this.deckPicker=null,(o=this.eventManager)===null||o===void 0||o.destroy(),this.eventManager=null,(s=this.tooltip)===null||s===void 0||s.remove(),this.tooltip=null,!this.props.canvas&&!this.props.gl&&this.canvas){var a;(a=this.canvas.parentElement)===null||a===void 0||a.removeChild(this.canvas),this.canvas=null}}setProps(A){this.stats.get("setProps Time").timeStart(),"onLayerHover"in A&&Ae.removed("onLayerHover","onHover")(),"onLayerClick"in A&&Ae.removed("onLayerClick","onClick")(),A.initialViewState&&!os(this.props.initialViewState,A.initialViewState)&&(this.viewState=A.initialViewState),Object.assign(this.props,A),this._setCanvasSize(this.props);const t=Object.create(this.props);Object.assign(t,{views:this._getViews(),width:this.width,height:this.height,viewState:this._getViewState()}),this.animationLoop.setProps(t),this.layerManager&&(this.viewManager.setProps(t),this.layerManager.activateViewport(this.getViewports()[0]),this.layerManager.setProps(t),this.effectManager.setProps(t),this.deckRenderer.setProps(t),this.deckPicker.setProps(t)),this.stats.get("setProps Time").timeEnd()}needsRedraw(A={clearRedrawFlags:!1}){if(!this.layerManager)return!1;if(this.props._animate)return"Deck._animate";let t=this._needsRedraw;A.clearRedrawFlags&&(this._needsRedraw=!1);const i=this.viewManager.needsRedraw(A),n=this.layerManager.needsRedraw(A),r=this.effectManager.needsRedraw(A),o=this.deckRenderer.needsRedraw(A);return t=t||i||n||r||o,t}redraw(A){if(!this.layerManager)return;let t=this.needsRedraw({clearRedrawFlags:!0});t=A||t,t&&(this.stats.get("Redraw Count").incrementCount(),this.props._customRender?this.props._customRender(t):this._drawLayers(t))}get isInitialized(){return this.viewManager!==null}getViews(){return at(this.viewManager),this.viewManager.views}getViewports(A){return at(this.viewManager),this.viewManager.getViewports(A)}pickObject(A){const t=this._pick("pickObject","pickObject Time",A).result;return t.length?t[0]:null}pickMultipleObjects(A){return A.depth=A.depth||10,this._pick("pickObject","pickMultipleObjects Time",A).result}pickObjects(A){return this._pick("pickObjects","pickObjects Time",A)}_addResources(A,t=!1){for(const i in A)this.layerManager.resourceManager.add({resourceId:i,data:A[i],forceUpdate:t})}_removeResources(A){for(const t of A)this.layerManager.resourceManager.remove(t)}_pick(A,t,i){at(this.deckPicker);const{stats:n}=this;n.get("Pick Count").incrementCount(),n.get(t).timeStart();const r=this.deckPicker[A]({layers:this.layerManager.getLayers(i),views:this.viewManager.getViews(),viewports:this.getViewports(i),onViewportActive:this.layerManager.activateViewport,effects:this.effectManager.getEffects(),...i});return n.get(t).timeEnd(),r}_createCanvas(A){let t=A.canvas;return typeof t=="string"&&(t=document.getElementById(t),at(t)),t||(t=document.createElement("canvas"),t.id=A.id||"deckgl-overlay",(A.parent||document.body).appendChild(t)),Object.assign(t.style,A.style),t}_setCanvasSize(A){if(!this.canvas)return;const{width:t,height:i}=A;if(t||t===0){const r=Number.isFinite(t)?"".concat(t,"px"):t;this.canvas.style.width=r}if(i||i===0){var n;const r=Number.isFinite(i)?"".concat(i,"px"):i;this.canvas.style.position=((n=A.style)===null||n===void 0?void 0:n.position)||"absolute",this.canvas.style.height=r}}_updateCanvasSize(){const{canvas:A}=this;if(!A)return;const t=A.clientWidth||A.width,i=A.clientHeight||A.height;if(t!==this.width||i!==this.height){var n;this.width=t,this.height=i,(n=this.viewManager)===null||n===void 0||n.setProps({width:t,height:i}),this.props.onResize({width:t,height:i})}}_createAnimationLoop(A){const{width:t,height:i,gl:n,glOptions:r,debug:o,onError:s,onBeforeRender:a,onAfterRender:g,useDevicePixels:I}=A;return new Q5({width:t,height:i,useDevicePixels:I,autoResizeViewport:!1,gl:n,onCreateContext:l=>yL({...r,...l,canvas:this.canvas,debug:o,onContextLost:()=>this._onContextLost()}),onInitialize:l=>this._setGLContext(l.gl),onRender:this._onRenderFrame.bind(this),onBeforeRender:a,onAfterRender:g,onError:s})}_getViewState(){return this.props.viewState||this.viewState}_getViews(){let A=this.props.views||[new Db({id:"default-view"})];return A=Array.isArray(A)?A:[A],A.length&&this.props.controller&&(A[0].props.controller=this.props.controller),A}_onContextLost(){const{onError:A}=this.props;this.animationLoop&&A&&A(new Error("WebGL context is lost"))}_pickAndCallback(){const{_pickRequest:A}=this;if(A.event){const{result:i,emptyInfo:n}=this._pick("pickObject","pickObject Time",A);this.cursorState.isHovering=i.length>0;let r=n,o=!1;for(const s of i){var t;r=s,o=((t=s.layer)===null||t===void 0?void 0:t.onHover(s,A.event))||o}if(!o&&this.props.onHover&&this.props.onHover(r,A.event),this.props.getTooltip&&this.tooltip){const s=this.props.getTooltip(r);this.tooltip.setTooltip(s,r.x,r.y)}A.event=null}}_updateCursor(){const A=this.props.parent||this.canvas;A&&(A.style.cursor=this.props.getCursor(this.cursorState))}_setGLContext(A){if(this.layerManager)return;this.canvas||(this.canvas=A.canvas,Tp(A,{enable:!0,copyState:!0})),this.tooltip=new fz(this.canvas),Pn(A,{blend:!0,blendFunc:[770,771,1,771],polygonOffsetFill:!0,depthTest:!0,depthFunc:515}),this.props.onWebGLInitialized(A);const t=new Cb;t.play(),this.animationLoop.attachTimeline(t),this.eventManager=new A7(this.props.parent||A.canvas,{touchAction:this.props.touchAction,recognizerOptions:this.props.eventRecognizerOptions,events:{pointerdown:this._onPointerDown,pointermove:this._onPointerMove,pointerleave:this._onPointerMove}});for(const n in BD)this.eventManager.on(n,this._onEvent);this.viewManager=new _W({timeline:t,eventManager:this.eventManager,onViewStateChange:this._onViewStateChange.bind(this),onInteractionStateChange:this._onInteractionStateChange.bind(this),views:this._getViews(),viewState:this._getViewState(),width:this.width,height:this.height});const i=this.viewManager.getViewports()[0];this.layerManager=new GW(A,{deck:this,stats:this.stats,viewport:i,timeline:t}),this.effectManager=new rz,this.deckRenderer=new Iz(A),this.deckPicker=new uz(A),this.setProps(this.props),this._updateCanvasSize(),this.props.onLoad()}_drawLayers(A,t){const{gl:i}=this.layerManager.context;Pn(i,this.props.parameters),this.props.onBeforeRender({gl:i}),this.deckRenderer.renderLayers({target:this.props._framebuffer,layers:this.layerManager.getLayers(),viewports:this.viewManager.getViewports(),onViewportActive:this.layerManager.activateViewport,views:this.viewManager.getViews(),pass:"screen",redrawReason:A,effects:this.effectManager.getEffects(),...t}),this.props.onAfterRender({gl:i})}_onRenderFrame(A){this._getFrameStats(),this._metricsCounter++%60===0&&(this._getMetrics(),this.stats.reset(),Ae.table(4,this.metrics)(),this.props._onMetrics&&this.props._onMetrics(this.metrics)),this._updateCanvasSize(),this._updateCursor(),this.tooltip.isVisible&&this.viewManager.needsRedraw()&&this.tooltip.setTooltip(null),this.layerManager.updateLayers(),this._pickAndCallback(),this.redraw(),this.viewManager&&this.viewManager.updateViewStates()}_onViewStateChange(A){const t=this.props.onViewStateChange(A)||A.viewState;this.viewState&&(this.viewState={...this.viewState,[A.viewId]:t},this.props.viewState||this.viewManager&&this.viewManager.setProps({viewState:this.viewState}))}_onInteractionStateChange(A){this.cursorState.isDragging=A.isDragging||!1,this.props.onInteractionStateChange(A)}_getFrameStats(){const{stats:A}=this;A.get("frameRate").timeEnd(),A.get("frameRate").timeStart();const t=this.animationLoop.stats;A.get("GPU Time").addTime(t.get("GPU Time").lastTiming),A.get("CPU Time").addTime(t.get("CPU Time").lastTiming)}_getMetrics(){const{metrics:A,stats:t}=this;A.fps=t.get("frameRate").getHz(),A.setPropsTime=t.get("setProps Time").time,A.updateAttributesTime=t.get("Update Attributes").time,A.framesRedrawn=t.get("Redraw Count").count,A.pickTime=t.get("pickObject Time").time+t.get("pickMultipleObjects Time").time+t.get("pickObjects Time").time,A.pickCount=t.get("Pick Count").count,A.gpuTime=t.get("GPU Time").time,A.cpuTime=t.get("CPU Time").time,A.gpuTimePerFrame=t.get("GPU Time").getAverageTime(),A.cpuTimePerFrame=t.get("CPU Time").getAverageTime();const i=po.get("Memory Usage");A.bufferMemory=i.get("Buffer Memory").count,A.textureMemory=i.get("Texture Memory").count,A.renderbufferMemory=i.get("Renderbuffer Memory").count,A.gpuMemory=i.get("GPU Memory").count}}y($E,"defaultProps",Gb);y($E,"VERSION",RO.VERSION);class ef{constructor(A,t){y(this,"opts",void 0),y(this,"source",void 0),this.opts=t,this.source=A}get value(){return this.source.value}getValue(){const A=this.source.getBuffer(),t=this.getAccessor();if(A)return[A,t];const{value:i}=this.source,{size:n}=t;let r=i;if(i&&i.length!==n){r=new Float32Array(n);const o=t.elementOffset||0;for(let s=0;s=r){const o=new Array(n).fill(1/0),s=new Array(n).fill(-1/0);for(let a=0;as[g]&&(s[g]=I)}A=[o,s]}}return this.state.bounds=A,A}setData(A){const{state:t}=this;let i;ArrayBuffer.isView(A)?i={value:A}:A instanceof we?i={buffer:A}:i=A;const n={...this.settings,...i};if(t.bufferAccessor=n,t.bounds=null,i.constant){let r=i.value;if(r=this._normalizeValue(r,[],0),this.settings.normalized&&(r=this.normalizeConstant(r)),!(!t.constant||!this._areValuesEqual(r,this.value)))return!1;t.externalBuffer=null,t.constant=!0,this.value=r}else if(i.buffer){const r=i.buffer;t.externalBuffer=r,t.constant=!1,this.value=i.value||null;const o=i.value instanceof Float64Array;n.type=i.type||r.accessor.type,n.bytesPerElement=r.accessor.BYTES_PER_ELEMENT*(o?2:1),n.stride=kC(n)}else if(i.value){this._checkExternalBuffer(i);let r=i.value;t.externalBuffer=null,t.constant=!1,this.value=r,n.bytesPerElement=r.BYTES_PER_ELEMENT,n.stride=kC(n);const{buffer:o,byteOffset:s}=this;this.doublePrecision&&r instanceof Float64Array&&(r=Zh(r,n));const a=r.byteLength+s+n.stride*2;o.byteLength(t+128)/255*2-1);case 5122:return new Float32Array(A).map(t=>(t+32768)/65535*2-1);case 5121:return new Float32Array(A).map(t=>t/255);case 5123:return new Float32Array(A).map(t=>t/65535);default:return A}}_normalizeValue(A,t,i){const{defaultValue:n,size:r}=this.settings;if(Number.isFinite(A))return t[i]=A,t;if(!A)return t[i]=n[0],t;switch(r){case 4:t[i+3]=Number.isFinite(A[3])?A[3]:n[3];case 3:t[i+2]=Number.isFinite(A[2])?A[2]:n[2];case 2:t[i+1]=Number.isFinite(A[1])?A[1]:n[1];case 1:t[i+0]=Number.isFinite(A[0])?A[0]:n[0];break;default:let o=r;for(;--o>=0;)t[i+o]=Number.isFinite(A[o])?A[o]:n[o]}return t}_areValuesEqual(A,t){if(!A||!t)return!1;const{size:i}=this;for(let n=0;n0&&(HD.length=e.length,i=HD):i=PD,(A>0||Number.isFinite(t))&&(i=(Array.isArray(i)?i:Array.from(i)).slice(A,t),n.index=A-1),{iterable:i,objectInfo:n}}function Mb(e){return e&&e[Symbol.asyncIterator]}function kb(e,A){const{size:t,stride:i,offset:n,startIndices:r,nested:o}=A,s=e.BYTES_PER_ELEMENT,a=i?i/s:t,g=n?n/s:0,I=Math.floor((e.length-g)/a);return(l,{index:c,target:C})=>{if(!r){const h=c*a+g;for(let f=0;f=A[1]))return e;const t=[],i=e.length;let n=0;for(let r=0;rA[1]?t.push(o):A=[Math.min(o[0],A[0]),Math.max(o[1],A[1])]}return t.splice(n,0,A),t}function tf(e){const{source:A,target:t,start:i=0,size:n,getData:r}=e,o=e.end||t.length,s=A.length,a=o-i;if(s>a){t.set(A.subarray(0,a),i);return}if(t.set(A,i),!r)return;let g=s;for(;gi(I+s,l)),g=Math.min(n.length,r.length);for(let I=1;Ie},spring:{stiffness:.05,damping:.5}};function Tb(e,A){if(!e)return null;Number.isFinite(e)&&(e={type:"interpolation",duration:e});const t=e.type||"interpolation";return{...a7[t],...A,...e,type:t}}function Ub(e,A){const t=A.getBuffer();return t?[t,{divisor:0,size:A.size,normalized:A.settings.normalized}]:A.value}function Pb(e){switch(e){case 1:return"float";case 2:return"vec2";case 3:return"vec3";case 4:return"vec4";default:throw new Error('No defined attribute type for size "'.concat(e,'"'))}}function Hb(e){e.push(e.shift())}function ey(e,A){const{doublePrecision:t,settings:i,value:n,size:r}=e,o=t&&n instanceof Float64Array?2:1;return(i.noAlloc?n.length:A*r)*o}function qb({buffer:e,numInstances:A,attribute:t,fromLength:i,fromStartIndices:n,getData:r=o=>o}){const o=t.doublePrecision&&t.value instanceof Float64Array?2:1,s=t.size*o,a=t.byteOffset,g=t.startIndices,I=n&&g,l=ey(t,A),c=t.isConstant;if(!I&&i>=l)return;const C=c?t.value:t.getBuffer().getData({srcByteOffset:a});if(t.settings.normalized&&!c){const h=r;r=(f,Q)=>t.normalizeConstant(h(f,Q))}const B=c?(h,f)=>r(C,f):(h,f)=>r(C.subarray(h,h+s),f),u=e.getData({length:i}),E=new Float32Array(l);s7({source:u,target:E,sourceStartIndices:n,targetStartIndices:g,size:s,getData:B}),e.byteLengthA[r])]:A[t];return Tb(n,i)}setNeedsUpdate(A=this.id,t){if(this.state.needsUpdate=this.state.needsUpdate||A,this.setNeedsRedraw(A),t){const{startRow:i=0,endRow:n=1/0}=t;this.state.updateRanges=o7(this.state.updateRanges,[i,n])}else this.state.updateRanges=TC}clearNeedsUpdate(){this.state.needsUpdate=!1,this.state.updateRanges=r7}setNeedsRedraw(A=this.id){this.state.needsRedraw=this.state.needsRedraw||A}allocate(A){const{state:t,settings:i}=this;return i.noAlloc?!1:i.update?(super.allocate(A,t.updateRanges!==TC),!0):!1}updateBuffer({numInstances:A,data:t,props:i,context:n}){if(!this.needsUpdate())return!1;const{state:{updateRanges:r},settings:{update:o,noAlloc:s}}=this;let a=!0;if(o){for(const[g,I]of r)o.call(n,this,{data:t,startRow:g,endRow:I,props:i,numInstances:A});if(this.value)if(this.constant||this.buffer.byteLengthI?g.set(Q,u):(A._normalizeValue(Q,h.target,0),xW({target:g,source:h.target,start:u,count:d}));u+=d*I}else A._normalizeValue(Q,g,u),u+=I}}_validateAttributeUpdaters(){const{settings:A}=this;if(!(A.noAlloc||typeof A.update=="function"))throw new Error("Attribute ".concat(this.id," missing update or accessor"))}_checkAttributeArray(){const{value:A}=this,t=Math.min(4,this.size);if(A&&A.length>=t){let i=!0;switch(t){case 4:i=i&&Number.isFinite(A[3]);case 3:i=i&&Number.isFinite(A[2]);case 2:i=i&&Number.isFinite(A[1]);case 1:i=i&&Number.isFinite(A[0]);break;default:i=!1}if(!i)throw new Error("Illegal attribute generated for ".concat(this.id))}}}class g7{constructor({gl:A,attribute:t,timeline:i}){y(this,"gl",void 0),y(this,"type","interpolation"),y(this,"attributeInTransition",void 0),y(this,"settings",void 0),y(this,"attribute",void 0),y(this,"transition",void 0),y(this,"currentStartIndices",void 0),y(this,"currentLength",void 0),y(this,"transform",void 0),y(this,"buffers",void 0),this.gl=A,this.transition=new Hl(i),this.attribute=t,this.attributeInTransition=new ty(A,t.settings),this.currentStartIndices=t.startIndices,this.currentLength=0,this.transform=l7(A,t);const n={byteLength:0,usage:35050};this.buffers=[new we(A,n),new we(A,n)]}get inProgress(){return this.transition.inProgress}start(A,t){if(A.duration<=0){this.transition.cancel();return}this.settings=A;const{gl:i,buffers:n,attribute:r}=this;Hb(n);const o={numInstances:t,attribute:r,fromLength:this.currentLength,fromStartIndices:this.currentStartIndices,getData:A.enter};for(const s of n)qb({buffer:s,...o});this.currentStartIndices=r.startIndices,this.currentLength=ey(r,t),this.attributeInTransition.setData({buffer:n[1],value:r.value}),this.transition.start(A),this.transform.update({elementCount:Math.floor(this.currentLength/r.size),sourceBuffers:{aFrom:n[0],aTo:Ub(i,r)},feedbackBuffers:{vCurrent:n[1]}})}update(){const A=this.transition.update();if(A){const{duration:t,easing:i}=this.settings,{time:n}=this.transition;let r=n/t;i&&(r=i(r)),this.transform.run({uniforms:{time:r}})}return A}cancel(){this.transition.cancel(),this.transform.delete();for(const A of this.buffers)A.delete();this.buffers.length=0}}const I7=` #define SHADER_NAME interpolation-transition-vertex-shader uniform float time; @@ -979,7 +979,7 @@ void main(void) { vCurrent = mix(aFrom, aTo, time); gl_Position = vec4(0.0); } -`;function a7(e,A){const t=kb(A.size);return new zp(e,{vs:s7,defines:{ATTRIBUTE_TYPE:t},varyings:["vCurrent"]})}class g7{constructor({gl:A,attribute:t,timeline:i}){y(this,"gl",void 0),y(this,"type","spring"),y(this,"attributeInTransition",void 0),y(this,"settings",void 0),y(this,"attribute",void 0),y(this,"transition",void 0),y(this,"currentStartIndices",void 0),y(this,"currentLength",void 0),y(this,"texture",void 0),y(this,"framebuffer",void 0),y(this,"transform",void 0),y(this,"buffers",void 0),this.gl=A,this.type="spring",this.transition=new Hl(i),this.attribute=t,this.attributeInTransition=new ey(A,{...t.settings,normalized:!1}),this.currentStartIndices=t.startIndices,this.currentLength=0,this.texture=l7(A),this.framebuffer=c7(A,this.texture),this.transform=I7(A,t,this.framebuffer);const n={byteLength:0,usage:35050};this.buffers=[new we(A,n),new we(A,n),new we(A,n)]}get inProgress(){return this.transition.inProgress}start(A,t){const{gl:i,buffers:n,attribute:r}=this,o={numInstances:t,attribute:r,fromLength:this.currentLength,fromStartIndices:this.currentStartIndices,getData:A.enter};for(const s of n)Ub({buffer:s,...o});this.settings=A,this.currentStartIndices=r.startIndices,this.currentLength=Ay(r,t),this.attributeInTransition.setData({buffer:n[1],value:r.value}),this.transition.start({...A,duration:1/0}),this.transform.update({elementCount:Math.floor(this.currentLength/r.size),sourceBuffers:{aTo:Mb(i,r)}})}update(){const{buffers:A,transform:t,framebuffer:i,transition:n}=this;if(!n.update())return!1;const o=this.settings;return t.update({sourceBuffers:{aPrev:A[0],aCur:A[1]},feedbackBuffers:{vNext:A[2]}}),t.run({framebuffer:i,discard:!1,clearRenderTarget:!0,uniforms:{stiffness:o.stiffness,damping:o.damping},parameters:{depthTest:!1,blend:!0,viewport:[0,0,1,1],blendFunc:[1,1],blendEquation:[32776,32776]}}),Tb(A),this.attributeInTransition.setData({buffer:A[1],value:this.attribute.value}),VE(i)[0]>0||n.end(),!0}cancel(){this.transition.cancel(),this.transform.delete();for(const A of this.buffers)A.delete();this.buffers.length=0,this.texture.delete(),this.framebuffer.delete()}}function I7(e,A,t){const i=kb(A.size);return new zp(e,{framebuffer:t,vs:` +`;function l7(e,A){const t=Pb(A.size);return new jp(e,{vs:I7,defines:{ATTRIBUTE_TYPE:t},varyings:["vCurrent"]})}class c7{constructor({gl:A,attribute:t,timeline:i}){y(this,"gl",void 0),y(this,"type","spring"),y(this,"attributeInTransition",void 0),y(this,"settings",void 0),y(this,"attribute",void 0),y(this,"transition",void 0),y(this,"currentStartIndices",void 0),y(this,"currentLength",void 0),y(this,"texture",void 0),y(this,"framebuffer",void 0),y(this,"transform",void 0),y(this,"buffers",void 0),this.gl=A,this.type="spring",this.transition=new Hl(i),this.attribute=t,this.attributeInTransition=new ty(A,{...t.settings,normalized:!1}),this.currentStartIndices=t.startIndices,this.currentLength=0,this.texture=B7(A),this.framebuffer=E7(A,this.texture),this.transform=C7(A,t,this.framebuffer);const n={byteLength:0,usage:35050};this.buffers=[new we(A,n),new we(A,n),new we(A,n)]}get inProgress(){return this.transition.inProgress}start(A,t){const{gl:i,buffers:n,attribute:r}=this,o={numInstances:t,attribute:r,fromLength:this.currentLength,fromStartIndices:this.currentStartIndices,getData:A.enter};for(const s of n)qb({buffer:s,...o});this.settings=A,this.currentStartIndices=r.startIndices,this.currentLength=ey(r,t),this.attributeInTransition.setData({buffer:n[1],value:r.value}),this.transition.start({...A,duration:1/0}),this.transform.update({elementCount:Math.floor(this.currentLength/r.size),sourceBuffers:{aTo:Ub(i,r)}})}update(){const{buffers:A,transform:t,framebuffer:i,transition:n}=this;if(!n.update())return!1;const o=this.settings;return t.update({sourceBuffers:{aPrev:A[0],aCur:A[1]},feedbackBuffers:{vNext:A[2]}}),t.run({framebuffer:i,discard:!1,clearRenderTarget:!0,uniforms:{stiffness:o.stiffness,damping:o.damping},parameters:{depthTest:!1,blend:!0,viewport:[0,0,1,1],blendFunc:[1,1],blendEquation:[32776,32776]}}),Hb(A),this.attributeInTransition.setData({buffer:A[1],value:this.attribute.value}),VE(i)[0]>0||n.end(),!0}cancel(){this.transition.cancel(),this.transform.delete();for(const A of this.buffers)A.delete();this.buffers.length=0,this.texture.delete(),this.framebuffer.delete()}}function C7(e,A,t){const i=Pb(A.size);return new jp(e,{framebuffer:t,vs:` #define SHADER_NAME spring-transition-vertex-shader #define EPSILON 0.00001 @@ -1018,7 +1018,7 @@ void main(void) { discard; } gl_FragColor = vec4(1.0); -}`,defines:{ATTRIBUTE_TYPE:i},varyings:["vNext"]})}function l7(e){return new Pt(e,{data:new Uint8Array(4),format:6408,type:5121,border:0,mipmaps:!1,dataFormat:6408,width:1,height:1})}function c7(e,A){return new $e(e,{id:"spring-transition-is-transitioning-framebuffer",width:1,height:1,attachments:{[36064]:A}})}const C7={interpolation:o7,spring:g7};class B7{constructor(A,{id:t,timeline:i}){y(this,"id",void 0),y(this,"isSupported",void 0),y(this,"gl",void 0),y(this,"timeline",void 0),y(this,"transitions",void 0),y(this,"needsRedraw",void 0),y(this,"numInstances",void 0),this.id=t,this.gl=A,this.timeline=i,this.transitions={},this.needsRedraw=!1,this.numInstances=1,this.isSupported=zp.isSupported(A)}finalize(){for(const A in this.transitions)this._removeTransition(A)}update({attributes:A,transitions:t,numInstances:i}){this.numInstances=i||1;for(const n in A){const r=A[n],o=r.getTransitionSetting(t);!o||this._updateAttribute(n,r,o)}for(const n in this.transitions){const r=A[n];(!r||!r.getTransitionSetting(t))&&this._removeTransition(n)}}hasAttribute(A){const t=this.transitions[A];return t&&t.inProgress}getAttributes(){const A={};for(const t in this.transitions){const i=this.transitions[t];i.inProgress&&(A[t]=i.attributeInTransition)}return A}run(){if(!this.isSupported||this.numInstances===0)return!1;for(const t in this.transitions)this.transitions[t].update()&&(this.needsRedraw=!0);const A=this.needsRedraw;return this.needsRedraw=!1,A}_removeTransition(A){this.transitions[A].cancel(),delete this.transitions[A]}_updateAttribute(A,t,i){const n=this.transitions[A];let r=!n||n.type!==i.type;if(r){if(!this.isSupported){Ae.warn("WebGL2 not supported by this browser. Transition for ".concat(A," is disabled."))();return}n&&this._removeTransition(A);const o=C7[i.type];o?this.transitions[A]=new o({attribute:t,timeline:this.timeline,gl:this.gl}):(Ae.error("unsupported transition type '".concat(i.type,"'"))(),r=!1)}(r||t.needsRedraw())&&(this.needsRedraw=!0,this.transitions[A].start(i,this.numInstances))}}const HD="attributeManager.invalidate",E7="attributeManager.updateStart",u7="attributeManager.updateEnd",h7="attribute.updateStart",f7="attribute.allocate",Q7="attribute.updateEnd";class d7{constructor(A,{id:t="attribute-manager",stats:i,timeline:n}={}){y(this,"id",void 0),y(this,"gl",void 0),y(this,"attributes",void 0),y(this,"updateTriggers",void 0),y(this,"needsRedraw",void 0),y(this,"userData",void 0),y(this,"stats",void 0),y(this,"attributeTransitionManager",void 0),this.id=t,this.gl=A,this.attributes={},this.updateTriggers={},this.needsRedraw=!0,this.userData={},this.stats=i,this.attributeTransitionManager=new B7(A,{id:"".concat(t,"-transitions"),timeline:n}),Object.seal(this)}finalize(){for(const A in this.attributes)this.attributes[A].delete();this.attributeTransitionManager.finalize()}getNeedsRedraw(A={clearRedrawFlags:!1}){const t=this.needsRedraw;return this.needsRedraw=this.needsRedraw&&!A.clearRedrawFlags,t&&this.id}setNeedsRedraw(){this.needsRedraw=!0}add(A){this._add(A)}addInstanced(A){this._add(A,{instanced:1})}remove(A){for(const t of A)this.attributes[t]!==void 0&&(this.attributes[t].delete(),delete this.attributes[t])}invalidate(A,t){const i=this._invalidateTrigger(A,t);Rt(HD,this,A,i)}invalidateAll(A){for(const t in this.attributes)this.attributes[t].setNeedsUpdate(t,A);Rt(HD,this,"all")}update({data:A,numInstances:t,startIndices:i=null,transitions:n,props:r={},buffers:o={},context:s={}}){let a=!1;Rt(E7,this),this.stats&&this.stats.get("Update Attributes").timeStart();for(const g in this.attributes){const I=this.attributes[g],l=I.settings.accessor;I.startIndices=i,I.numInstances=t,r[g]&&Ae.removed("props.".concat(g),"data.attributes.".concat(g))(),I.setExternalBuffer(o[g])||I.setBinaryValue(typeof l=="string"?o[l]:void 0,A.startIndices)||typeof l=="string"&&!o[l]&&I.setConstantValue(r[l])||I.needsUpdate()&&(a=!0,this._updateAttribute({attribute:I,numInstances:t,data:A,props:r,context:s})),this.needsRedraw=this.needsRedraw||I.needsRedraw()}a&&Rt(u7,this,t),this.stats&&this.stats.get("Update Attributes").timeEnd(),this.attributeTransitionManager.update({attributes:this.attributes,numInstances:t,transitions:n})}updateTransition(){const{attributeTransitionManager:A}=this,t=A.run();return this.needsRedraw=this.needsRedraw||t,t}getAttributes(){return this.attributes}getChangedAttributes(A={clearChangedFlags:!1}){const{attributes:t,attributeTransitionManager:i}=this,n={...i.getAttributes()};for(const r in t){const o=t[r];o.needsRedraw(A)&&!i.hasAttribute(r)&&(n[r]=o)}return n}getShaderAttributes(A,t={}){A||(A=this.getAttributes());const i={};for(const n in A)t[n]||Object.assign(i,A[n].getShaderAttributes());return i}_add(A,t={}){for(const i in A){const n=A[i];this.attributes[i]=this._createAttribute(i,n,t)}this._mapUpdateTriggersToAttributes()}_createAttribute(A,t,i){const n={...t,id:A,size:t.isIndexed&&1||t.size||1,divisor:i.instanced?1:t.divisor||0};return new ey(this.gl,n)}_mapUpdateTriggersToAttributes(){const A={};for(const t in this.attributes)this.attributes[t].getUpdateTriggers().forEach(n=>{A[n]||(A[n]=[]),A[n].push(t)});this.updateTriggers=A}_invalidateTrigger(A,t){const{attributes:i,updateTriggers:n}=this,r=n[A];return r&&r.forEach(o=>{const s=i[o];s&&s.setNeedsUpdate(s.id,t)}),r}_updateAttribute(A){const{attribute:t,numInstances:i}=A;if(Rt(h7,t),t.constant){t.setConstantValue(t.value);return}t.allocate(i)&&Rt(f7,t,i),t.updateBuffer(A)&&(this.needsRedraw=!0,Rt(Q7,t,i))}}class p7 extends Hl{get value(){return this._value}_onUpdate(){const{time:A,settings:{fromValue:t,toValue:i,duration:n,easing:r}}=this,o=r(A/n);this._value=xo(t,i,o)}}const qD=1e-5;function JD(e,A,t,i,n){const r=A-e,s=(t-A)*n,a=-r*i;return s+a+r+A}function y7(e,A,t,i,n){if(Array.isArray(t)){const r=[];for(let o=0;o0}add(A,t,i,n){const{transitions:r}=this;if(r.has(A)){const a=r.get(A),{value:g=a.settings.fromValue}=a;t=g,this.remove(A)}if(n=_b(n),!n)return;const o=w7[n.type];if(!o){Ae.error("unsupported transition type '".concat(n.type,"'"))();return}const s=new o(this.timeline);s.start({...n,fromValue:t,toValue:i}),r.set(A,s)}remove(A){const{transitions:t}=this;t.has(A)&&(t.get(A).cancel(),t.delete(A))}update(){const A={};for(const[t,i]of this.transitions)i.update(),A[t]=i.value,i.inProgress||this.remove(t);return A}clear(){for(const A of this.transitions.keys())this.remove(A)}}function S7(e){const A=ty(e);for(const t in A){const i=A[t],{validate:n}=i;if(n&&!n(e[t],i))throw new Error("Invalid prop ".concat(t,": ").concat(e[t]))}}function D7(e,A){const t=Pb({newProps:e,oldProps:A,propTypes:ty(e),ignoreProps:{data:null,updateTriggers:null,extensions:null,transitions:null}}),i=x7(e,A);let n=!1;return i||(n=F7(e,A)),{dataChanged:i,propsChanged:t,updateTriggersChanged:n,extensionsChanged:N7(e,A),transitionsChanged:R7(e,A)}}function R7(e,A){if(!e.transitions)return!1;const t={},i=ty(e);let n=!1;for(const r in e.transitions){const o=i[r],s=o&&o.type;(s==="number"||s==="color"||s==="array")&&pd(e[r],A[r],o)&&(t[r]=!0,n=!0)}return n?t:!1}function Pb({newProps:e,oldProps:A,ignoreProps:t={},propTypes:i={},triggerName:n="props"}){if(A===e)return!1;if(typeof e!="object"||e===null||typeof A!="object"||A===null)return"".concat(n," changed shallowly");for(const r of Object.keys(e))if(!(r in t)){if(!(r in A))return"".concat(n,".").concat(r," added");const o=pd(e[r],A[r],i[r]);if(o)return"".concat(n,".").concat(r," ").concat(o)}for(const r of Object.keys(A))if(!(r in t)){if(!(r in e))return"".concat(n,".").concat(r," dropped");if(!Object.hasOwnProperty.call(e,r)){const o=pd(e[r],A[r],i[r]);if(o)return"".concat(n,".").concat(r," ").concat(o)}}return!1}function pd(e,A,t){let i=t&&t.equal;return i&&!i(e,A,t)||!i&&(i=e&&A&&e.equals,i&&!i.call(e,A))?"changed deeply":!i&&A!==e?"changed shallowly":null}function x7(e,A){if(A===null)return"oldProps is null, initial diff";let t=!1;const{dataComparator:i,_dataDiff:n}=e;return i?i(e.data,A.data)||(t="Data comparator detected a change"):e.data!==A.data&&(t="A new data container was supplied"),t&&n&&(t=n(e.data,A.data)||t),t}function F7(e,A){if(A===null)return{all:!0};if("all"in e.updateTriggers&&YD(e,A,"all"))return{all:!0};const t={};let i=!1;for(const n in e.updateTriggers)n!=="all"&&YD(e,A,n)&&(t[n]=!0,i=!0);return i?t:!1}function N7(e,A){if(A===null)return!0;const t=A.extensions,{extensions:i}=e;if(i===t)return!1;if(!t||!i||i.length!==t.length)return!0;for(let n=0;ni.name==="project64"))){const i=t.modules.findIndex(n=>n.name==="project32");i>=0&&t.modules.splice(i,1)}if("inject"in A)if(!e.inject)t.inject=A.inject;else{const i={...e.inject};for(const n in A.inject)i[n]=(i[n]||"")+A.inject[n];t.inject=i}return t}const T7={[10241]:9987,[10240]:9729,[10242]:33071,[10243]:33071},yd={};function U7(e,A){const t=e.context&&e.context.gl;if(!t||!A)return null;if(A instanceof Pt)return A;A.constructor&&A.constructor.name!=="Object"&&(A={data:A});let i=null;A.compressed&&(i={[10241]:A.data.length>1?9985:9729});const n=new Pt(t,{...A,parameters:{...T7,...i,...e.props.textureParameters}});return yd[n.id]=!0,n}function P7(e){!e||!(e instanceof Pt)||yd[e.id]&&(e.delete(),delete yd[e.id])}const H7={boolean:{validate(e,A){return!0},equal(e,A,t){return Boolean(e)===Boolean(A)}},number:{validate(e,A){return Number.isFinite(e)&&(!("max"in A)||e<=A.max)&&(!("min"in A)||e>=A.min)}},color:{validate(e,A){return A.optional&&!e||ZI(e)&&(e.length===3||e.length===4)},equal(e,A,t){return nf(e,A)}},accessor:{validate(e,A){const t=HB(e);return t==="function"||t===HB(A.value)},equal(e,A,t){return typeof A=="function"?!0:nf(e,A)}},array:{validate(e,A){return A.optional&&!e||ZI(e)},equal(e,A,t){return t.compare?nf(e,A):e===A}},object:{equal(e,A,t){return t.compare?ss(e,A):e===A}},function:{validate(e,A){return A.optional&&!e||typeof e=="function"},equal(e,A,t){return!t.compare||e===A}},data:{transform:(e,A,t)=>{const{dataTransform:i}=t.props;return i&&e?i(e):e}},image:{transform:(e,A,t)=>U7(t,e),release:e=>{P7(e)}}};function nf(e,A){if(e===A)return!0;if(!ZI(e)||!ZI(A))return!1;const t=e.length;if(t!==A.length)return!1;for(let i=0;i{},this.oldProps=null,this.oldAsyncProps=null}finalize(){for(const A in this.asyncProps){const t=this.asyncProps[A];t&&t.type&&t.type.release&&t.type.release(t.resolvedValue,t.type,this.component)}}getOldProps(){return this.oldAsyncProps||this.oldProps||Z7}resetOldProps(){this.oldAsyncProps=null,this.oldProps=this.component.props}hasAsyncProp(A){return A in this.asyncProps}getAsyncProp(A){const t=this.asyncProps[A];return t&&t.resolvedValue}isAsyncPropLoading(A){if(A){const t=this.asyncProps[A];return Boolean(t&&t.pendingLoadCount>0&&t.pendingLoadCount!==t.resolvedLoadCount)}for(const t in this.asyncProps)if(this.isAsyncPropLoading(t))return!0;return!1}reloadAsyncProp(A,t){this._watchPromise(A,Promise.resolve(t))}setAsyncProps(A){const t=A[Qr]||{},i=A[Uo]||A,n=A[oa]||{};for(const r in t){const o=t[r];this._createAsyncPropData(r,n[r]),this._updateAsyncProp(r,o),t[r]=this.getAsyncProp(r)}for(const r in i){const o=i[r];this._createAsyncPropData(r,n[r]),this._updateAsyncProp(r,o)}}_fetch(A,t){return null}_onResolve(A,t){}_onError(A,t){}_updateAsyncProp(A,t){if(!!this._didAsyncInputValueChange(A,t)){if(typeof t=="string"&&(t=this._fetch(A,t)),t instanceof Promise){this._watchPromise(A,t);return}if(bb(t)){this._resolveAsyncIterable(A,t);return}this._setPropValue(A,t)}}_freezeAsyncOldProps(){if(!this.oldAsyncProps&&this.oldProps){this.oldAsyncProps=Object.create(this.oldProps);for(const A in this.asyncProps)Object.defineProperty(this.oldAsyncProps,A,{enumerable:!0,value:this.oldProps[A]})}}_didAsyncInputValueChange(A,t){const i=this.asyncProps[A];return t===i.resolvedValue||t===i.lastValue?!1:(i.lastValue=t,!0)}_setPropValue(A,t){this._freezeAsyncOldProps();const i=this.asyncProps[A];i&&(t=this._postProcessValue(i,t),i.resolvedValue=t,i.pendingLoadCount++,i.resolvedLoadCount=i.pendingLoadCount)}_setAsyncPropValue(A,t,i){const n=this.asyncProps[A];n&&i>=n.resolvedLoadCount&&t!==void 0&&(this._freezeAsyncOldProps(),n.resolvedValue=t,n.resolvedLoadCount=i,this.onAsyncPropUpdated(A,t))}_watchPromise(A,t){const i=this.asyncProps[A];if(i){i.pendingLoadCount++;const n=i.pendingLoadCount;t.then(r=>{r=this._postProcessValue(i,r),this._setAsyncPropValue(A,r,n),this._onResolve(A,r)}).catch(r=>{this._onError(A,r)})}}async _resolveAsyncIterable(A,t){if(A!=="data"){this._setPropValue(A,t);return}const i=this.asyncProps[A];if(!i)return;i.pendingLoadCount++;const n=i.pendingLoadCount;let r=[],o=0;for await(const s of t){const{dataTransform:a}=this.component.props;a?r=a(s,r):r=r.concat(s),Object.defineProperty(r,"__diff",{enumerable:!1,value:[{startRow:o,endRow:r.length}]}),o=r.length,this._setAsyncPropValue(A,r,n)}this._onResolve(A,r)}_postProcessValue(A,t){const i=A.type;return i&&(i.release&&i.release(A.resolvedValue,i,this.component),i.transform)?i.transform(t,i,this.component):t}_createAsyncPropData(A,t){if(!this.asyncProps[A]){const n=this.component&&this.component.constructor._propTypes;this.asyncProps[A]={type:n&&n[A],lastValue:null,resolvedValue:t,pendingLoadCount:0,resolvedLoadCount:0}}}}class Aj extends $7{constructor({attributeManager:A,layer:t}){super(t),y(this,"attributeManager",void 0),y(this,"needsRedraw",void 0),y(this,"needsUpdate",void 0),y(this,"subLayers",void 0),y(this,"usesPickingColorCache",void 0),y(this,"changeFlags",void 0),y(this,"viewport",void 0),y(this,"uniformTransitions",void 0),y(this,"propsInTransition",void 0),this.attributeManager=A,this.needsRedraw=!0,this.needsUpdate=!0,this.subLayers=null,this.usesPickingColorCache=!1}get layer(){return this.component}set layer(A){this.component=A}_fetch(A,t){const i=this.component.props.fetch;return i?i(t,{propName:A,layer:this.layer}):super._fetch(A,t)}_onResolve(A,t){const i=this.component.props.onDataLoad;A==="data"&&i&&i(t,{propName:A,layer:this.layer})}_onError(A,t){this.layer.raiseError(t,"loading ".concat(A," of ").concat(this.layer))}}const ej="layer.changeFlag",tj="layer.initialize",ij="layer.update",nj="layer.finalize",rj="layer.matched",KD=2**24-1,oj=Object.freeze([]),sj=Ul(({oldViewport:e,viewport:A})=>e.equals(A));let Ki=new Uint8ClampedArray(0);const aj={data:{type:"data",value:oj,async:!0},dataComparator:{type:"function",value:null,compare:!1,optional:!0},_dataDiff:{type:"function",value:e=>e&&e.__diff,compare:!1,optional:!0},dataTransform:{type:"function",value:null,compare:!1,optional:!0},onDataLoad:{type:"function",value:null,compare:!1,optional:!0},onError:{type:"function",value:null,compare:!1,optional:!0},fetch:{type:"function",value:(e,{propName:A,layer:t,loaders:i,loadOptions:n,signal:r})=>{const{resourceManager:o}=t.context;if(n=n||t.getLoadOptions(),i=i||t.props.loaders,r){var s;n={...n,fetch:{...(s=n)===null||s===void 0?void 0:s.fetch,signal:r}}}let a=o.contains(e);return!a&&!n&&(o.add({resourceId:e,data:LB(e,i),persistent:!1}),a=!0),a?o.subscribe({resourceId:e,onChange:g=>{var I;return(I=t.internalState)===null||I===void 0?void 0:I.reloadAsyncProp(A,g)},consumerId:t.id,requestId:A}):LB(e,i,n)},compare:!1},updateTriggers:{},visible:!0,pickable:!1,opacity:{type:"number",min:0,max:1,value:1},operation:Tl.DRAW,onHover:{type:"function",value:null,compare:!1,optional:!0},onClick:{type:"function",value:null,compare:!1,optional:!0},onDragStart:{type:"function",value:null,compare:!1,optional:!0},onDrag:{type:"function",value:null,compare:!1,optional:!0},onDragEnd:{type:"function",value:null,compare:!1,optional:!0},coordinateSystem:HA.DEFAULT,coordinateOrigin:{type:"array",value:[0,0,0],compare:!0},modelMatrix:{type:"array",value:null,compare:!0,optional:!0},wrapLongitude:!1,positionFormat:"XYZ",colorFormat:"RGBA",parameters:{type:"object",value:{},optional:!0,compare:!0},transitions:null,extensions:[],loaders:{type:"array",value:[],optional:!0,compare:!0},getPolygonOffset:{type:"function",value:({layerIndex:e})=>[0,-e*100],compare:!1},highlightedObjectIndex:null,autoHighlight:!1,highlightColor:{type:"accessor",value:[0,0,128,128]}};class gi extends iy{constructor(...A){super(...A),y(this,"internalState",null),y(this,"lifecycle",Ns.NO_STATE),y(this,"context",void 0),y(this,"state",void 0),y(this,"parent",null)}get root(){let A=this;for(;A.parent;)A=A.parent;return A}toString(){const A=this.constructor.layerName||this.constructor.name;return"".concat(A,"({id: '").concat(this.props.id,"'})")}project(A){at(this.internalState);const t=this.internalState.viewport||this.context.viewport,i=pb(A,{viewport:t,modelMatrix:this.props.modelMatrix,coordinateOrigin:this.props.coordinateOrigin,coordinateSystem:this.props.coordinateSystem}),[n,r,o]=hb(i,t.pixelProjectionMatrix);return A.length===2?[n,r]:[n,r,o]}unproject(A){return at(this.internalState),(this.internalState.viewport||this.context.viewport).unproject(A)}projectPosition(A,t){at(this.internalState);const i=this.internalState.viewport||this.context.viewport;return vW(A,{viewport:i,modelMatrix:this.props.modelMatrix,coordinateOrigin:this.props.coordinateOrigin,coordinateSystem:this.props.coordinateSystem,...t})}get isComposite(){return!1}setState(A){this.setChangeFlags({stateChanged:!0}),Object.assign(this.state,A),this.setNeedsRedraw()}setNeedsRedraw(){this.internalState&&(this.internalState.needsRedraw=!0)}setNeedsUpdate(){this.internalState&&(this.context.layerManager.setNeedsUpdate(String(this)),this.internalState.needsUpdate=!0)}get isLoaded(){return this.internalState?!this.internalState.isAsyncPropLoading():!1}get wrapLongitude(){return this.props.wrapLongitude}isPickable(){return this.props.pickable&&this.props.visible}getModels(){return this.state&&(this.state.models||this.state.model&&[this.state.model])||[]}setModuleParameters(A){for(const t of this.getModels())t.updateModuleSettings(A)}getAttributeManager(){return this.internalState&&this.internalState.attributeManager}getCurrentLayer(){return this.internalState&&this.internalState.layer}getLoadOptions(){return this.props.loadOptions}use64bitPositions(){const{coordinateSystem:A}=this.props;return A===HA.DEFAULT||A===HA.LNGLAT||A===HA.CARTESIAN}onHover(A,t){return this.props.onHover&&this.props.onHover(A,t)||!1}onClick(A,t){return this.props.onClick&&this.props.onClick(A,t)||!1}nullPickingColor(){return[0,0,0]}encodePickingColor(A,t=[]){return t[0]=A+1&255,t[1]=A+1>>8&255,t[2]=A+1>>8>>8&255,t}decodePickingColor(A){at(A instanceof Uint8Array);const[t,i,n]=A;return t+i*256+n*65536-1}getNumInstances(){return Number.isFinite(this.props.numInstances)?this.props.numInstances:this.state&&this.state.numInstances!==void 0?this.state.numInstances:G7(this.props.data)}getStartIndices(){return this.props.startIndices?this.props.startIndices:this.state&&this.state.startIndices?this.state.startIndices:null}getBounds(){var A;const t=this.getAttributeManager();if(!t)return null;const{positions:i,instancePositions:n}=t.attributes;return(A=i||n)===null||A===void 0?void 0:A.getBounds()}getShaders(A){for(const t of this.props.extensions)A=k7(A,t.getShaders.call(this,t));return A}shouldUpdateState(A){return A.changeFlags.propsOrDataChanged}updateState(A){const t=this.getAttributeManager(),{dataChanged:i}=A.changeFlags;if(i&&t)if(Array.isArray(i))for(const a of i)t.invalidateAll(a);else t.invalidateAll();const{props:n,oldProps:r}=A,o=Number.isInteger(r.highlightedObjectIndex)||r.pickable,s=Number.isInteger(n.highlightedObjectIndex)||n.pickable;if(o!==s&&t){const{pickingColors:a,instancePickingColors:g}=t.attributes,I=a||g;I&&(s&&I.constant&&(I.constant=!1,t.invalidate(I.id)),!I.value&&!s&&(I.constant=!0,I.value=[0,0,0]))}}finalizeState(A){for(const i of this.getModels())i.delete();const t=this.getAttributeManager();t&&t.finalize(),this.context&&this.context.resourceManager.unsubscribe({consumerId:this.id}),this.internalState&&(this.internalState.uniformTransitions.clear(),this.internalState.finalize())}draw(A){for(const t of this.getModels())t.draw(A)}getPickingInfo({info:A,mode:t,sourceLayer:i}){const{index:n}=A;return n>=0&&Array.isArray(this.props.data)&&(A.object=this.props.data[n]),A}raiseError(A,t){var i,n;if(t&&(A.message="".concat(t,": ").concat(A.message)),!((i=(n=this.props).onError)!==null&&i!==void 0&&i.call(n,A))){var r,o;(r=this.context)===null||r===void 0||(o=r.onError)===null||o===void 0||o.call(r,A,this)}}getNeedsRedraw(A={clearRedrawFlags:!1}){return this._getNeedsRedraw(A)}needsUpdate(){return this.internalState?this.internalState.needsUpdate||this.hasUniformTransition()||this.shouldUpdateState(this._getUpdateParams()):!1}hasUniformTransition(){var A;return((A=this.internalState)===null||A===void 0?void 0:A.uniformTransitions.active)||!1}activateViewport(A){if(!this.internalState)return;const t=this.internalState.viewport;this.internalState.viewport=A,(!t||!sj({oldViewport:t,viewport:A}))&&(this.setChangeFlags({viewportChanged:!0}),this.isComposite?this.needsUpdate()&&this.setNeedsUpdate():this._update())}invalidateAttribute(A="all"){const t=this.getAttributeManager();!t||(A==="all"?t.invalidateAll():t.invalidate(A))}updateAttributes(A){for(const t of this.getModels())this._setModelAttributes(t,A)}_updateAttributes(){const A=this.getAttributeManager();if(!A)return;const t=this.props,i=this.getNumInstances(),n=this.getStartIndices();A.update({data:t.data,numInstances:i,startIndices:n,props:t,transitions:t.transitions,buffers:t.data.attributes,context:this});const r=A.getChangedAttributes({clearChangedFlags:!0});this.updateAttributes(r)}_updateAttributeTransition(){const A=this.getAttributeManager();A&&A.updateTransition()}_updateUniformTransition(){const{uniformTransitions:A}=this.internalState;if(A.active){const t=A.update(),i=Object.create(this.props);for(const n in t)Object.defineProperty(i,n,{value:t[n]});return i}return this.props}calculateInstancePickingColors(A,{numInstances:t}){if(A.constant)return;const i=Math.floor(Ki.length/3);if(this.internalState.usesPickingColorCache=!0,iKD&&Ae.warn("Layer has too many data objects. Picking might not be able to distinguish all objects.")(),Ki=pa.allocate(Ki,t,{size:3,copy:!0,maxCount:Math.max(t,KD)});const n=Math.floor(Ki.length/3),r=[];for(let o=i;o(Ae.deprecated("layer.state.attributeManager","layer.getAttributeManager()")(),A)}),this.internalState.layer=this,this.internalState.uniformTransitions=new v7(this.context.timeline),this.internalState.onAsyncPropUpdated=this._onAsyncPropUpdated.bind(this),this.internalState.setAsyncProps(this.props),this.initializeState(this.context);for(const t of this.props.extensions)t.initializeState.call(this,this.context,t);this.setChangeFlags({dataChanged:"init",propsChanged:"init",viewportChanged:!0,extensionsChanged:!0}),this._update()}_transferState(A){Rt(rj,this,this===A);const{state:t,internalState:i}=A;this!==A&&(this.internalState=i,this.internalState.layer=this,this.state=t,this.internalState.setAsyncProps(this.props),this._diffProps(this.props,this.internalState.getOldProps()))}_update(){const A=this.needsUpdate();if(Rt(ij,this,A),!A)return;const t=this.props,i=this.context,n=this.internalState,r=i.viewport,o=this._updateUniformTransition();n.propsInTransition=o,i.viewport=n.viewport||r,this.props=o;try{const s=this._getUpdateParams(),a=this.getModels();if(i.gl)this.updateState(s);else try{this.updateState(s)}catch{}for(const I of this.props.extensions)I.updateState.call(this,s,I);const g=this.getModels()[0]!==a[0];this._postUpdate(s,g)}finally{i.viewport=r,this.props=t,this._clearChangeFlags(),n.needsUpdate=!1,n.resetOldProps()}}_finalize(){Rt(nj,this),this.finalizeState(this.context);for(const A of this.props.extensions)A.finalizeState.call(this,A)}_drawLayer({moduleParameters:A=null,uniforms:t={},parameters:i={}}){this._updateAttributeTransition();const n=this.props,r=this.context;this.props=this.internalState.propsInTransition||n;const o=this.props.opacity;t.opacity=Math.pow(o,1/2.2);try{A&&this.setModuleParameters(A);const{getPolygonOffset:s}=this.props,a=s&&s(t)||[0,0];Pn(r.gl,{polygonOffset:a}),ui(r.gl,i,()=>{const g={moduleParameters:A,uniforms:t,parameters:i,context:r};for(const I of this.props.extensions)I.draw.call(this,g,I);this.draw(g)})}finally{this.props=n}}getChangeFlags(){var A;return(A=this.internalState)===null||A===void 0?void 0:A.changeFlags}setChangeFlags(A){if(!this.internalState)return;const{changeFlags:t}=this.internalState;for(const n in A)if(A[n]){let r=!1;switch(n){case"dataChanged":const o=A[n],s=t[n];o&&Array.isArray(s)&&(t.dataChanged=Array.isArray(o)?s.concat(o):o,r=!0);default:t[n]||(t[n]=A[n],r=!0)}r&&Rt(ej,this,n,A)}const i=Boolean(t.dataChanged||t.updateTriggersChanged||t.propsChanged||t.extensionsChanged);t.propsOrDataChanged=i,t.somethingChanged=i||t.viewportChanged||t.stateChanged}_clearChangeFlags(){this.internalState.changeFlags={dataChanged:!1,propsChanged:!1,updateTriggersChanged:!1,viewportChanged:!1,stateChanged:!1,extensionsChanged:!1,propsOrDataChanged:!1,somethingChanged:!1}}_diffProps(A,t){const i=D7(A,t);if(i.updateTriggersChanged)for(const r in i.updateTriggersChanged)i.updateTriggersChanged[r]&&this.invalidateAttribute(r);if(i.transitionsChanged)for(const r in i.transitionsChanged){var n;this.internalState.uniformTransitions.add(r,t[r],A[r],(n=A.transitions)===null||n===void 0?void 0:n[r])}return this.setChangeFlags(i)}validateProps(){S7(this.props)}updateAutoHighlight(A){this.props.autoHighlight&&!Number.isInteger(this.props.highlightedObjectIndex)&&this._updateAutoHighlight(A)}_updateAutoHighlight(A){const t={pickingSelectedColor:A.picked?A.color:null},{highlightColor:i}=this.props;A.picked&&typeof i=="function"&&(t.pickingHighlightColor=i(A)),this.setModuleParameters(t),this.setNeedsRedraw()}_getAttributeManager(){const A=this.context;return new d7(A.gl,{id:this.props.id,stats:A.stats,timeline:A.timeline})}_postUpdate(A,t){const{props:i,oldProps:n}=A;this.setNeedsRedraw(),this._updateAttributes();const{model:r}=this.state;r==null||r.setInstanceCount(this.getNumInstances());const{autoHighlight:o,highlightedObjectIndex:s,highlightColor:a}=i;if(t||n.autoHighlight!==o||n.highlightedObjectIndex!==s||n.highlightColor!==a){const g={};o||(g.pickingSelectedColor=null),Array.isArray(a)&&(g.pickingHighlightColor=a),Number.isInteger(s)&&(g.pickingSelectedColor=Number.isFinite(s)&&s>=0?this.encodePickingColor(s):null),this.setModuleParameters(g)}}_getUpdateParams(){return{props:this.props,oldProps:this.internalState.getOldProps(),context:this.context,changeFlags:this.internalState.changeFlags}}_getNeedsRedraw(A){if(!this.internalState)return!1;let t=!1;t=t||this.internalState.needsRedraw&&this.id,this.internalState.needsRedraw=this.internalState.needsRedraw&&!A.clearRedrawFlags;const i=this.getAttributeManager(),n=i?i.getNeedsRedraw(A):!1;return t=t||n,t}_onAsyncPropUpdated(){this._diffProps(this.props,this.internalState.getOldProps()),this.setNeedsUpdate()}}y(gi,"defaultProps",aj);y(gi,"layerName","Layer");const gj="compositeLayer.renderLayers";class Ui extends gi{get isComposite(){return!0}get isLoaded(){return super.isLoaded&&this.getSubLayers().every(A=>A.isLoaded)}getSubLayers(){return this.internalState&&this.internalState.subLayers||[]}initializeState(A){}setState(A){super.setState(A),this.setNeedsUpdate()}getPickingInfo({info:A}){const{object:t}=A;return t&&t.__source&&t.__source.parent&&t.__source.parent.id===this.id&&(A.object=t.__source.object,A.index=t.__source.index),A}filterSubLayer(A){return!0}shouldRenderSubLayer(A,t){return t&&t.length}getSubLayerClass(A,t){const{_subLayerProps:i}=this.props;return i&&i[A]&&i[A].type||t}getSubLayerRow(A,t,i){return A.__source={parent:this,object:t,index:i},A}getSubLayerAccessor(A){if(typeof A=="function"){const t={index:-1,data:this.props.data,target:[]};return(i,n)=>i&&i.__source?(t.index=i.__source.index,A(i.__source.object,t)):A(i,n)}return A}getSubLayerProps(A={}){var t;const{opacity:i,pickable:n,visible:r,parameters:o,getPolygonOffset:s,highlightedObjectIndex:a,autoHighlight:g,highlightColor:I,coordinateSystem:l,coordinateOrigin:c,wrapLongitude:C,positionFormat:B,modelMatrix:u,extensions:E,fetch:h,operation:f,_subLayerProps:Q}=this.props,d={id:"",updateTriggers:{},opacity:i,pickable:n,visible:r,parameters:o,getPolygonOffset:s,highlightedObjectIndex:a,autoHighlight:g,highlightColor:I,coordinateSystem:l,coordinateOrigin:c,wrapLongitude:C,positionFormat:B,modelMatrix:u,extensions:E,fetch:h,operation:f},w=Q&&A.id&&Q[A.id],m=w&&w.updateTriggers,v=A.id||"sublayer";if(w){const x=this.constructor._propTypes,D=A.type?A.type._propTypes:{};for(const F in w){const N=D[F]||x[F];N&&N.type==="accessor"&&(w[F]=this.getSubLayerAccessor(w[F]))}}Object.assign(d,A,w),d.id="".concat(this.props.id,"-").concat(v),d.updateTriggers={all:(t=this.props.updateTriggers)===null||t===void 0?void 0:t.all,...A.updateTriggers,...m};for(const x of E){const D=x.getSubLayerProps.call(this,x);D&&Object.assign(d,D,{updateTriggers:Object.assign(d.updateTriggers,D.updateTriggers)})}return d}_updateAutoHighlight(A){for(const t of this.getSubLayers())t.updateAutoHighlight(A)}_getAttributeManager(){return null}_postUpdate(A,t){let i=this.internalState.subLayers;const n=!i||this.needsUpdate();if(n){const r=this.renderLayers();i=zE(r,Boolean),this.internalState.subLayers=i}Rt(gj,this,n,i);for(const r of i)r.parent=this}}y(Ui,"layerName","CompositeLayer");const Tc=Math.PI/180,VD=180/Math.PI,UC=6370972,Js=256;function Ij(){const e=Js/UC,A=Math.PI/180*Js;return{unitsPerMeter:[e,e,e],unitsPerMeter2:[0,0,0],metersPerUnit:[1/e,1/e,1/e],unitsPerDegree:[A,A,e],unitsPerDegree2:[0,0,0],degreesPerUnit:[1/A,1/A,1/e]}}class lj extends Wn{constructor(A={}){const{latitude:t=0,longitude:i=0,zoom:n=0,nearZMultiplier:r=.1,farZMultiplier:o=2,resolution:s=10}=A;let{height:a,altitude:g=1.5}=A;a=a||1,g=Math.max(.75,g);const I=new fe().lookAt({eye:[0,-g,0],up:[0,0,1]}),l=Math.pow(2,n);I.rotateX(t*Tc),I.rotateZ(-i*Tc),I.scale(l/a);const c=Math.atan(.5/g),C=Js*2*l/a;super({...A,height:a,viewMatrix:I,longitude:i,latitude:t,zoom:n,distanceScales:Ij(),fovyRadians:c*2,focalDistance:g,near:r,far:Math.min(2,1/C+1)*g*o}),y(this,"longitude",void 0),y(this,"latitude",void 0),y(this,"resolution",void 0),this.latitude=t,this.longitude=i,this.resolution=s}get projectionMode(){return Ni.GLOBE}getDistanceScales(){return this.distanceScales}getBounds(A={}){const t={targetZ:A.z||0},i=this.unproject([0,this.height/2],t),n=this.unproject([this.width/2,0],t),r=this.unproject([this.width,this.height/2],t),o=this.unproject([this.width/2,this.height],t);return r[0]this.longitude&&(i[0]-=360),[Math.min(i[0],r[0],n[0],o[0]),Math.min(i[1],r[1],n[1],o[1]),Math.max(i[0],r[0],n[0],o[0]),Math.max(i[1],r[1],n[1],o[1])]}unproject(A,{topLeft:t=!0,targetZ:i}={}){const[n,r,o]=A,s=t?r:this.height-r,{pixelUnprojectionMatrix:a}=this;let g;if(Number.isFinite(o))g=rf(a,[n,s,o,1]);else{const C=rf(a,[n,s,-1,1]),B=rf(a,[n,s,1,1]),u=((i||0)/UC+1)*Js,E=Kh(Ab([],C,B)),h=Kh(C),f=Kh(B),Q=(4*h*f-(E-h-f)**2)/16,d=4*Q/E,w=Math.sqrt(h-d),m=Math.sqrt(Math.max(0,u*u-d)),v=(w-m)/Math.sqrt(E);g=v6([],C,B,v)}const[I,l,c]=this.unprojectPosition(g);return Number.isFinite(o)?[I,l,c]:Number.isFinite(i)?[I,l,i]:[I,l]}projectPosition(A){const[t,i,n=0]=A,r=t*Tc,o=i*Tc,s=Math.cos(o),a=(n/UC+1)*Js;return[Math.sin(r)*s*a,-Math.cos(r)*s*a,Math.sin(o)*a]}unprojectPosition(A){const[t,i,n]=A,r=eb(A),o=Math.asin(n/r),a=Math.atan2(t,-i)*VD,g=o*VD,I=(r/Js-1)*UC;return[a,g,I]}projectFlat(A){return A}unprojectFlat(A){return A}panByPosition(A,t){const i=this.unproject(t);return{longitude:A[0]-i[0]+this.longitude,latitude:A[1]-i[1]+this.latitude}}}function rf(e,A){const t=Ua([],A,e);return Wp(t,t,1/t[3]),t}const of=Math.PI/180;function cj({height:e,focalDistance:A,orbitAxis:t,rotationX:i,rotationOrbit:n,zoom:r}){const o=t==="Z"?[0,0,1]:[0,1,0],s=t==="Z"?[0,-A,0]:[0,0,A],a=new fe().lookAt({eye:s,up:o});a.rotateX(i*of),t==="Z"?a.rotateZ(n*of):a.rotateY(n*of);const g=Math.pow(2,r)/e;return a.scale(g),a}class Cj extends Wn{constructor(A){const{height:t,projectionMatrix:i,fovy:n=50,orbitAxis:r="Z",target:o=[0,0,0],rotationX:s=0,rotationOrbit:a=0,zoom:g=0}=A,I=i?i[5]/2:Zp(n);super({...A,longitude:void 0,viewMatrix:cj({height:t||1,focalDistance:I,orbitAxis:r,rotationX:s,rotationOrbit:a,zoom:g}),fovy:n,focalDistance:I,position:o,zoom:g}),y(this,"projectedCenter",void 0),this.projectedCenter=this.project(this.center)}unproject(A,{topLeft:t=!0}={}){const[i,n,r=this.projectedCenter[2]]=A,o=t?n:this.height-n,[s,a,g]=Pl([i,o,r],this.pixelUnprojectionMatrix);return[s,a,g]}panByPosition(A,t){const i=this.project(A),n=[this.width/2+i[0]-t[0],this.height/2+i[1]-t[1],this.projectedCenter[2]];return{target:this.unproject(n)}}}class Jb extends Kr{constructor(A={}){super(A),this.props.orbitAxis=A.orbitAxis||"Z"}get ViewportType(){return Cj}get ControllerType(){return WW}}y(Jb,"displayName","OrbitView");class Ha{constructor(A){y(this,"opts",void 0),A&&(this.opts=A)}equals(A){return this===A?!0:this.constructor===A.constructor&&ss(this.opts,A.opts)}getShaders(A){return null}getSubLayerProps(A){const{defaultProps:t}=A.constructor,i={updateTriggers:{}};for(const n in t)if(n in this.props){const r=t[n],o=this.props[n];i[n]=o,r&&r.type==="accessor"&&(i.updateTriggers[n]=this.props.updateTriggers[n],typeof o=="function"&&(i[n]=this.getSubLayerAccessor(o)))}return i}initializeState(A,t){}updateState(A,t){}draw(A,t){}finalizeState(A,t){}}y(Ha,"defaultProps",{});class Ob{constructor(A){y(this,"opts",void 0),y(this,"typedArrayManager",void 0),y(this,"indexStarts",[0]),y(this,"vertexStarts",[0]),y(this,"vertexCount",0),y(this,"instanceCount",0),y(this,"attributes",void 0),y(this,"_attributeDefs",void 0),y(this,"data",void 0),y(this,"getGeometry",void 0),y(this,"geometryBuffer",void 0),y(this,"buffers",void 0),y(this,"positionSize",void 0),y(this,"normalize",void 0);const{attributes:t={}}=A;this.typedArrayManager=pa,this.attributes={},this._attributeDefs=t,this.opts=A,this.updateGeometry(A)}updateGeometry(A){Object.assign(this.opts,A);const{data:t,buffers:i={},getGeometry:n,geometryBuffer:r,positionFormat:o,dataChanged:s,normalize:a=!0}=this.opts;if(this.data=t,this.getGeometry=n,this.positionSize=r&&r.size||(o==="XY"?2:3),this.buffers=i,this.normalize=a,r&&(at(t.startIndices),this.getGeometry=this.getGeometryFromBuffer(r),a||(i.positions=r)),this.geometryBuffer=i.positions,Array.isArray(s))for(const g of s)this._rebuildGeometry(g);else this._rebuildGeometry()}updatePartialGeometry({startRow:A,endRow:t}){this._rebuildGeometry({startRow:A,endRow:t})}getGeometryFromBuffer(A){const t=A.value||A;return ArrayBuffer.isView(t)?Gb(t,{size:this.positionSize,offset:A.offset,stride:A.stride,startIndices:this.data.startIndices}):null}_allocate(A,t){const{attributes:i,buffers:n,_attributeDefs:r,typedArrayManager:o}=this;for(const s in r)if(s in n)o.release(i[s]),i[s]=null;else{const a=r[s];a.copy=t,i[s]=o.allocate(i[s],A,a)}}_forEachGeometry(A,t,i){const{data:n,getGeometry:r}=this,{iterable:o,objectInfo:s}=Jl(n,t,i);for(const a of o){s.index++;const g=r?r(a,s):null;A(g,s.index)}}_rebuildGeometry(A){if(!this.data)return;let{indexStarts:t,vertexStarts:i,instanceCount:n}=this;const{data:r,geometryBuffer:o}=this,{startRow:s=0,endRow:a=1/0}=A||{},g={};if(A||(t=[0],i=[0]),this.normalize||!o)this._forEachGeometry((l,c)=>{const C=l&&this.normalizeGeometry(l);g[c]=C,i[c+1]=i[c]+(C?this.getGeometrySize(C):0)},s,a),n=i[i.length-1];else if(i=r.startIndices,n=i[r.length]||0,ArrayBuffer.isView(o))n=n||o.length/this.positionSize;else if(o instanceof we){const l=o.accessor.stride||this.positionSize*4;n=n||o.byteLength/l}else if(o.buffer){const l=o.stride||this.positionSize*4;n=n||o.buffer.byteLength/l}else if(o.value){const l=o.value,c=o.stride/l.BYTES_PER_ELEMENT||this.positionSize;n=n||l.length/c}this._allocate(n,Boolean(A)),this.indexStarts=t,this.vertexStarts=i,this.instanceCount=n;const I={};this._forEachGeometry((l,c)=>{const C=g[c]||l;I.vertexStart=i[c],I.indexStart=t[c];const B=c0&&B>0&&(s[l++]=I-r,s[l++]=I-r-1,s[l++]=I-1,s[l++]=I-r,s[l++]=I-1,s[l++]=I),I++}}return{vertexCount:o,positions:g,indices:s,texCoords:a}}function hj(e){const A=new Float64Array(12);for(let t=0;t{A[n]||(A[n]=[]),A[n].push(t)});this.updateTriggers=A}_invalidateTrigger(A,t){const{attributes:i,updateTriggers:n}=this,r=n[A];return r&&r.forEach(o=>{const s=i[o];s&&s.setNeedsUpdate(s.id,t)}),r}_updateAttribute(A){const{attribute:t,numInstances:i}=A;if(Rt(d7,t),t.constant){t.setConstantValue(t.value);return}t.allocate(i)&&Rt(p7,t,i),t.updateBuffer(A)&&(this.needsRedraw=!0,Rt(y7,t,i))}}class w7 extends Hl{get value(){return this._value}_onUpdate(){const{time:A,settings:{fromValue:t,toValue:i,duration:n,easing:r}}=this,o=r(A/n);this._value=Ro(t,i,o)}}const JD=1e-5;function OD(e,A,t,i,n){const r=A-e,s=(t-A)*n,a=-r*i;return s+a+r+A}function v7(e,A,t,i,n){if(Array.isArray(t)){const r=[];for(let o=0;o0}add(A,t,i,n){const{transitions:r}=this;if(r.has(A)){const a=r.get(A),{value:g=a.settings.fromValue}=a;t=g,this.remove(A)}if(n=Tb(n),!n)return;const o=D7[n.type];if(!o){Ae.error("unsupported transition type '".concat(n.type,"'"))();return}const s=new o(this.timeline);s.start({...n,fromValue:t,toValue:i}),r.set(A,s)}remove(A){const{transitions:t}=this;t.has(A)&&(t.get(A).cancel(),t.delete(A))}update(){const A={};for(const[t,i]of this.transitions)i.update(),A[t]=i.value,i.inProgress||this.remove(t);return A}clear(){for(const A of this.transitions.keys())this.remove(A)}}function x7(e){const A=iy(e);for(const t in A){const i=A[t],{validate:n}=i;if(n&&!n(e[t],i))throw new Error("Invalid prop ".concat(t,": ").concat(e[t]))}}function F7(e,A){const t=Jb({newProps:e,oldProps:A,propTypes:iy(e),ignoreProps:{data:null,updateTriggers:null,extensions:null,transitions:null}}),i=L7(e,A);let n=!1;return i||(n=b7(e,A)),{dataChanged:i,propsChanged:t,updateTriggersChanged:n,extensionsChanged:G7(e,A),transitionsChanged:N7(e,A)}}function N7(e,A){if(!e.transitions)return!1;const t={},i=iy(e);let n=!1;for(const r in e.transitions){const o=i[r],s=o&&o.type;(s==="number"||s==="color"||s==="array")&&yd(e[r],A[r],o)&&(t[r]=!0,n=!0)}return n?t:!1}function Jb({newProps:e,oldProps:A,ignoreProps:t={},propTypes:i={},triggerName:n="props"}){if(A===e)return!1;if(typeof e!="object"||e===null||typeof A!="object"||A===null)return"".concat(n," changed shallowly");for(const r of Object.keys(e))if(!(r in t)){if(!(r in A))return"".concat(n,".").concat(r," added");const o=yd(e[r],A[r],i[r]);if(o)return"".concat(n,".").concat(r," ").concat(o)}for(const r of Object.keys(A))if(!(r in t)){if(!(r in e))return"".concat(n,".").concat(r," dropped");if(!Object.hasOwnProperty.call(e,r)){const o=yd(e[r],A[r],i[r]);if(o)return"".concat(n,".").concat(r," ").concat(o)}}return!1}function yd(e,A,t){let i=t&&t.equal;return i&&!i(e,A,t)||!i&&(i=e&&A&&e.equals,i&&!i.call(e,A))?"changed deeply":!i&&A!==e?"changed shallowly":null}function L7(e,A){if(A===null)return"oldProps is null, initial diff";let t=!1;const{dataComparator:i,_dataDiff:n}=e;return i?i(e.data,A.data)||(t="Data comparator detected a change"):e.data!==A.data&&(t="A new data container was supplied"),t&&n&&(t=n(e.data,A.data)||t),t}function b7(e,A){if(A===null)return{all:!0};if("all"in e.updateTriggers&&KD(e,A,"all"))return{all:!0};const t={};let i=!1;for(const n in e.updateTriggers)n!=="all"&&KD(e,A,n)&&(t[n]=!0,i=!0);return i?t:!1}function G7(e,A){if(A===null)return!0;const t=A.extensions,{extensions:i}=e;if(i===t)return!1;if(!t||!i||i.length!==t.length)return!0;for(let n=0;ni.name==="project64"))){const i=t.modules.findIndex(n=>n.name==="project32");i>=0&&t.modules.splice(i,1)}if("inject"in A)if(!e.inject)t.inject=A.inject;else{const i={...e.inject};for(const n in A.inject)i[n]=(i[n]||"")+A.inject[n];t.inject=i}return t}const H7={[10241]:9987,[10240]:9729,[10242]:33071,[10243]:33071},md={};function q7(e,A){const t=e.context&&e.context.gl;if(!t||!A)return null;if(A instanceof Pt)return A;A.constructor&&A.constructor.name!=="Object"&&(A={data:A});let i=null;A.compressed&&(i={[10241]:A.data.length>1?9985:9729});const n=new Pt(t,{...A,parameters:{...H7,...i,...e.props.textureParameters}});return md[n.id]=!0,n}function J7(e){!e||!(e instanceof Pt)||md[e.id]&&(e.delete(),delete md[e.id])}const O7={boolean:{validate(e,A){return!0},equal(e,A,t){return Boolean(e)===Boolean(A)}},number:{validate(e,A){return Number.isFinite(e)&&(!("max"in A)||e<=A.max)&&(!("min"in A)||e>=A.min)}},color:{validate(e,A){return A.optional&&!e||XI(e)&&(e.length===3||e.length===4)},equal(e,A,t){return nf(e,A)}},accessor:{validate(e,A){const t=HB(e);return t==="function"||t===HB(A.value)},equal(e,A,t){return typeof A=="function"?!0:nf(e,A)}},array:{validate(e,A){return A.optional&&!e||XI(e)},equal(e,A,t){return t.compare?nf(e,A):e===A}},object:{equal(e,A,t){return t.compare?os(e,A):e===A}},function:{validate(e,A){return A.optional&&!e||typeof e=="function"},equal(e,A,t){return!t.compare||e===A}},data:{transform:(e,A,t)=>{const{dataTransform:i}=t.props;return i&&e?i(e):e}},image:{transform:(e,A,t)=>q7(t,e),release:e=>{J7(e)}}};function nf(e,A){if(e===A)return!0;if(!XI(e)||!XI(A))return!1;const t=e.length;if(t!==A.length)return!1;for(let i=0;i{},this.oldProps=null,this.oldAsyncProps=null}finalize(){for(const A in this.asyncProps){const t=this.asyncProps[A];t&&t.type&&t.type.release&&t.type.release(t.resolvedValue,t.type,this.component)}}getOldProps(){return this.oldAsyncProps||this.oldProps||ej}resetOldProps(){this.oldAsyncProps=null,this.oldProps=this.component.props}hasAsyncProp(A){return A in this.asyncProps}getAsyncProp(A){const t=this.asyncProps[A];return t&&t.resolvedValue}isAsyncPropLoading(A){if(A){const t=this.asyncProps[A];return Boolean(t&&t.pendingLoadCount>0&&t.pendingLoadCount!==t.resolvedLoadCount)}for(const t in this.asyncProps)if(this.isAsyncPropLoading(t))return!0;return!1}reloadAsyncProp(A,t){this._watchPromise(A,Promise.resolve(t))}setAsyncProps(A){const t=A[fr]||{},i=A[To]||A,n=A[ra]||{};for(const r in t){const o=t[r];this._createAsyncPropData(r,n[r]),this._updateAsyncProp(r,o),t[r]=this.getAsyncProp(r)}for(const r in i){const o=i[r];this._createAsyncPropData(r,n[r]),this._updateAsyncProp(r,o)}}_fetch(A,t){return null}_onResolve(A,t){}_onError(A,t){}_updateAsyncProp(A,t){if(!!this._didAsyncInputValueChange(A,t)){if(typeof t=="string"&&(t=this._fetch(A,t)),t instanceof Promise){this._watchPromise(A,t);return}if(Mb(t)){this._resolveAsyncIterable(A,t);return}this._setPropValue(A,t)}}_freezeAsyncOldProps(){if(!this.oldAsyncProps&&this.oldProps){this.oldAsyncProps=Object.create(this.oldProps);for(const A in this.asyncProps)Object.defineProperty(this.oldAsyncProps,A,{enumerable:!0,value:this.oldProps[A]})}}_didAsyncInputValueChange(A,t){const i=this.asyncProps[A];return t===i.resolvedValue||t===i.lastValue?!1:(i.lastValue=t,!0)}_setPropValue(A,t){this._freezeAsyncOldProps();const i=this.asyncProps[A];i&&(t=this._postProcessValue(i,t),i.resolvedValue=t,i.pendingLoadCount++,i.resolvedLoadCount=i.pendingLoadCount)}_setAsyncPropValue(A,t,i){const n=this.asyncProps[A];n&&i>=n.resolvedLoadCount&&t!==void 0&&(this._freezeAsyncOldProps(),n.resolvedValue=t,n.resolvedLoadCount=i,this.onAsyncPropUpdated(A,t))}_watchPromise(A,t){const i=this.asyncProps[A];if(i){i.pendingLoadCount++;const n=i.pendingLoadCount;t.then(r=>{r=this._postProcessValue(i,r),this._setAsyncPropValue(A,r,n),this._onResolve(A,r)}).catch(r=>{this._onError(A,r)})}}async _resolveAsyncIterable(A,t){if(A!=="data"){this._setPropValue(A,t);return}const i=this.asyncProps[A];if(!i)return;i.pendingLoadCount++;const n=i.pendingLoadCount;let r=[],o=0;for await(const s of t){const{dataTransform:a}=this.component.props;a?r=a(s,r):r=r.concat(s),Object.defineProperty(r,"__diff",{enumerable:!1,value:[{startRow:o,endRow:r.length}]}),o=r.length,this._setAsyncPropValue(A,r,n)}this._onResolve(A,r)}_postProcessValue(A,t){const i=A.type;return i&&(i.release&&i.release(A.resolvedValue,i,this.component),i.transform)?i.transform(t,i,this.component):t}_createAsyncPropData(A,t){if(!this.asyncProps[A]){const n=this.component&&this.component.constructor._propTypes;this.asyncProps[A]={type:n&&n[A],lastValue:null,resolvedValue:t,pendingLoadCount:0,resolvedLoadCount:0}}}}class ij extends tj{constructor({attributeManager:A,layer:t}){super(t),y(this,"attributeManager",void 0),y(this,"needsRedraw",void 0),y(this,"needsUpdate",void 0),y(this,"subLayers",void 0),y(this,"usesPickingColorCache",void 0),y(this,"changeFlags",void 0),y(this,"viewport",void 0),y(this,"uniformTransitions",void 0),y(this,"propsInTransition",void 0),this.attributeManager=A,this.needsRedraw=!0,this.needsUpdate=!0,this.subLayers=null,this.usesPickingColorCache=!1}get layer(){return this.component}set layer(A){this.component=A}_fetch(A,t){const i=this.component.props.fetch;return i?i(t,{propName:A,layer:this.layer}):super._fetch(A,t)}_onResolve(A,t){const i=this.component.props.onDataLoad;A==="data"&&i&&i(t,{propName:A,layer:this.layer})}_onError(A,t){this.layer.raiseError(t,"loading ".concat(A," of ").concat(this.layer))}}const nj="layer.changeFlag",rj="layer.initialize",oj="layer.update",sj="layer.finalize",aj="layer.matched",VD=2**24-1,gj=Object.freeze([]),Ij=Ul(({oldViewport:e,viewport:A})=>e.equals(A));let Ki=new Uint8ClampedArray(0);const lj={data:{type:"data",value:gj,async:!0},dataComparator:{type:"function",value:null,compare:!1,optional:!0},_dataDiff:{type:"function",value:e=>e&&e.__diff,compare:!1,optional:!0},dataTransform:{type:"function",value:null,compare:!1,optional:!0},onDataLoad:{type:"function",value:null,compare:!1,optional:!0},onError:{type:"function",value:null,compare:!1,optional:!0},fetch:{type:"function",value:(e,{propName:A,layer:t,loaders:i,loadOptions:n,signal:r})=>{const{resourceManager:o}=t.context;if(n=n||t.getLoadOptions(),i=i||t.props.loaders,r){var s;n={...n,fetch:{...(s=n)===null||s===void 0?void 0:s.fetch,signal:r}}}let a=o.contains(e);return!a&&!n&&(o.add({resourceId:e,data:LB(e,i),persistent:!1}),a=!0),a?o.subscribe({resourceId:e,onChange:g=>{var I;return(I=t.internalState)===null||I===void 0?void 0:I.reloadAsyncProp(A,g)},consumerId:t.id,requestId:A}):LB(e,i,n)},compare:!1},updateTriggers:{},visible:!0,pickable:!1,opacity:{type:"number",min:0,max:1,value:1},operation:Tl.DRAW,onHover:{type:"function",value:null,compare:!1,optional:!0},onClick:{type:"function",value:null,compare:!1,optional:!0},onDragStart:{type:"function",value:null,compare:!1,optional:!0},onDrag:{type:"function",value:null,compare:!1,optional:!0},onDragEnd:{type:"function",value:null,compare:!1,optional:!0},coordinateSystem:HA.DEFAULT,coordinateOrigin:{type:"array",value:[0,0,0],compare:!0},modelMatrix:{type:"array",value:null,compare:!0,optional:!0},wrapLongitude:!1,positionFormat:"XYZ",colorFormat:"RGBA",parameters:{type:"object",value:{},optional:!0,compare:!0},transitions:null,extensions:[],loaders:{type:"array",value:[],optional:!0,compare:!0},getPolygonOffset:{type:"function",value:({layerIndex:e})=>[0,-e*100],compare:!1},highlightedObjectIndex:null,autoHighlight:!1,highlightColor:{type:"accessor",value:[0,0,128,128]}};class gi extends ny{constructor(...A){super(...A),y(this,"internalState",null),y(this,"lifecycle",Fs.NO_STATE),y(this,"context",void 0),y(this,"state",void 0),y(this,"parent",null)}get root(){let A=this;for(;A.parent;)A=A.parent;return A}toString(){const A=this.constructor.layerName||this.constructor.name;return"".concat(A,"({id: '").concat(this.props.id,"'})")}project(A){at(this.internalState);const t=this.internalState.viewport||this.context.viewport,i=wb(A,{viewport:t,modelMatrix:this.props.modelMatrix,coordinateOrigin:this.props.coordinateOrigin,coordinateSystem:this.props.coordinateSystem}),[n,r,o]=db(i,t.pixelProjectionMatrix);return A.length===2?[n,r]:[n,r,o]}unproject(A){return at(this.internalState),(this.internalState.viewport||this.context.viewport).unproject(A)}projectPosition(A,t){at(this.internalState);const i=this.internalState.viewport||this.context.viewport;return RW(A,{viewport:i,modelMatrix:this.props.modelMatrix,coordinateOrigin:this.props.coordinateOrigin,coordinateSystem:this.props.coordinateSystem,...t})}get isComposite(){return!1}setState(A){this.setChangeFlags({stateChanged:!0}),Object.assign(this.state,A),this.setNeedsRedraw()}setNeedsRedraw(){this.internalState&&(this.internalState.needsRedraw=!0)}setNeedsUpdate(){this.internalState&&(this.context.layerManager.setNeedsUpdate(String(this)),this.internalState.needsUpdate=!0)}get isLoaded(){return this.internalState?!this.internalState.isAsyncPropLoading():!1}get wrapLongitude(){return this.props.wrapLongitude}isPickable(){return this.props.pickable&&this.props.visible}getModels(){return this.state&&(this.state.models||this.state.model&&[this.state.model])||[]}setModuleParameters(A){for(const t of this.getModels())t.updateModuleSettings(A)}getAttributeManager(){return this.internalState&&this.internalState.attributeManager}getCurrentLayer(){return this.internalState&&this.internalState.layer}getLoadOptions(){return this.props.loadOptions}use64bitPositions(){const{coordinateSystem:A}=this.props;return A===HA.DEFAULT||A===HA.LNGLAT||A===HA.CARTESIAN}onHover(A,t){return this.props.onHover&&this.props.onHover(A,t)||!1}onClick(A,t){return this.props.onClick&&this.props.onClick(A,t)||!1}nullPickingColor(){return[0,0,0]}encodePickingColor(A,t=[]){return t[0]=A+1&255,t[1]=A+1>>8&255,t[2]=A+1>>8>>8&255,t}decodePickingColor(A){at(A instanceof Uint8Array);const[t,i,n]=A;return t+i*256+n*65536-1}getNumInstances(){return Number.isFinite(this.props.numInstances)?this.props.numInstances:this.state&&this.state.numInstances!==void 0?this.state.numInstances:k7(this.props.data)}getStartIndices(){return this.props.startIndices?this.props.startIndices:this.state&&this.state.startIndices?this.state.startIndices:null}getBounds(){var A;const t=this.getAttributeManager();if(!t)return null;const{positions:i,instancePositions:n}=t.attributes;return(A=i||n)===null||A===void 0?void 0:A.getBounds()}getShaders(A){for(const t of this.props.extensions)A=P7(A,t.getShaders.call(this,t));return A}shouldUpdateState(A){return A.changeFlags.propsOrDataChanged}updateState(A){const t=this.getAttributeManager(),{dataChanged:i}=A.changeFlags;if(i&&t)if(Array.isArray(i))for(const a of i)t.invalidateAll(a);else t.invalidateAll();const{props:n,oldProps:r}=A,o=Number.isInteger(r.highlightedObjectIndex)||r.pickable,s=Number.isInteger(n.highlightedObjectIndex)||n.pickable;if(o!==s&&t){const{pickingColors:a,instancePickingColors:g}=t.attributes,I=a||g;I&&(s&&I.constant&&(I.constant=!1,t.invalidate(I.id)),!I.value&&!s&&(I.constant=!0,I.value=[0,0,0]))}}finalizeState(A){for(const i of this.getModels())i.delete();const t=this.getAttributeManager();t&&t.finalize(),this.context&&this.context.resourceManager.unsubscribe({consumerId:this.id}),this.internalState&&(this.internalState.uniformTransitions.clear(),this.internalState.finalize())}draw(A){for(const t of this.getModels())t.draw(A)}getPickingInfo({info:A,mode:t,sourceLayer:i}){const{index:n}=A;return n>=0&&Array.isArray(this.props.data)&&(A.object=this.props.data[n]),A}raiseError(A,t){var i,n;if(t&&(A.message="".concat(t,": ").concat(A.message)),!((i=(n=this.props).onError)!==null&&i!==void 0&&i.call(n,A))){var r,o;(r=this.context)===null||r===void 0||(o=r.onError)===null||o===void 0||o.call(r,A,this)}}getNeedsRedraw(A={clearRedrawFlags:!1}){return this._getNeedsRedraw(A)}needsUpdate(){return this.internalState?this.internalState.needsUpdate||this.hasUniformTransition()||this.shouldUpdateState(this._getUpdateParams()):!1}hasUniformTransition(){var A;return((A=this.internalState)===null||A===void 0?void 0:A.uniformTransitions.active)||!1}activateViewport(A){if(!this.internalState)return;const t=this.internalState.viewport;this.internalState.viewport=A,(!t||!Ij({oldViewport:t,viewport:A}))&&(this.setChangeFlags({viewportChanged:!0}),this.isComposite?this.needsUpdate()&&this.setNeedsUpdate():this._update())}invalidateAttribute(A="all"){const t=this.getAttributeManager();!t||(A==="all"?t.invalidateAll():t.invalidate(A))}updateAttributes(A){for(const t of this.getModels())this._setModelAttributes(t,A)}_updateAttributes(){const A=this.getAttributeManager();if(!A)return;const t=this.props,i=this.getNumInstances(),n=this.getStartIndices();A.update({data:t.data,numInstances:i,startIndices:n,props:t,transitions:t.transitions,buffers:t.data.attributes,context:this});const r=A.getChangedAttributes({clearChangedFlags:!0});this.updateAttributes(r)}_updateAttributeTransition(){const A=this.getAttributeManager();A&&A.updateTransition()}_updateUniformTransition(){const{uniformTransitions:A}=this.internalState;if(A.active){const t=A.update(),i=Object.create(this.props);for(const n in t)Object.defineProperty(i,n,{value:t[n]});return i}return this.props}calculateInstancePickingColors(A,{numInstances:t}){if(A.constant)return;const i=Math.floor(Ki.length/3);if(this.internalState.usesPickingColorCache=!0,iVD&&Ae.warn("Layer has too many data objects. Picking might not be able to distinguish all objects.")(),Ki=da.allocate(Ki,t,{size:3,copy:!0,maxCount:Math.max(t,VD)});const n=Math.floor(Ki.length/3),r=[];for(let o=i;o(Ae.deprecated("layer.state.attributeManager","layer.getAttributeManager()")(),A)}),this.internalState.layer=this,this.internalState.uniformTransitions=new R7(this.context.timeline),this.internalState.onAsyncPropUpdated=this._onAsyncPropUpdated.bind(this),this.internalState.setAsyncProps(this.props),this.initializeState(this.context);for(const t of this.props.extensions)t.initializeState.call(this,this.context,t);this.setChangeFlags({dataChanged:"init",propsChanged:"init",viewportChanged:!0,extensionsChanged:!0}),this._update()}_transferState(A){Rt(aj,this,this===A);const{state:t,internalState:i}=A;this!==A&&(this.internalState=i,this.internalState.layer=this,this.state=t,this.internalState.setAsyncProps(this.props),this._diffProps(this.props,this.internalState.getOldProps()))}_update(){const A=this.needsUpdate();if(Rt(oj,this,A),!A)return;const t=this.props,i=this.context,n=this.internalState,r=i.viewport,o=this._updateUniformTransition();n.propsInTransition=o,i.viewport=n.viewport||r,this.props=o;try{const s=this._getUpdateParams(),a=this.getModels();if(i.gl)this.updateState(s);else try{this.updateState(s)}catch{}for(const I of this.props.extensions)I.updateState.call(this,s,I);const g=this.getModels()[0]!==a[0];this._postUpdate(s,g)}finally{i.viewport=r,this.props=t,this._clearChangeFlags(),n.needsUpdate=!1,n.resetOldProps()}}_finalize(){Rt(sj,this),this.finalizeState(this.context);for(const A of this.props.extensions)A.finalizeState.call(this,A)}_drawLayer({moduleParameters:A=null,uniforms:t={},parameters:i={}}){this._updateAttributeTransition();const n=this.props,r=this.context;this.props=this.internalState.propsInTransition||n;const o=this.props.opacity;t.opacity=Math.pow(o,1/2.2);try{A&&this.setModuleParameters(A);const{getPolygonOffset:s}=this.props,a=s&&s(t)||[0,0];Pn(r.gl,{polygonOffset:a}),ui(r.gl,i,()=>{const g={moduleParameters:A,uniforms:t,parameters:i,context:r};for(const I of this.props.extensions)I.draw.call(this,g,I);this.draw(g)})}finally{this.props=n}}getChangeFlags(){var A;return(A=this.internalState)===null||A===void 0?void 0:A.changeFlags}setChangeFlags(A){if(!this.internalState)return;const{changeFlags:t}=this.internalState;for(const n in A)if(A[n]){let r=!1;switch(n){case"dataChanged":const o=A[n],s=t[n];o&&Array.isArray(s)&&(t.dataChanged=Array.isArray(o)?s.concat(o):o,r=!0);default:t[n]||(t[n]=A[n],r=!0)}r&&Rt(nj,this,n,A)}const i=Boolean(t.dataChanged||t.updateTriggersChanged||t.propsChanged||t.extensionsChanged);t.propsOrDataChanged=i,t.somethingChanged=i||t.viewportChanged||t.stateChanged}_clearChangeFlags(){this.internalState.changeFlags={dataChanged:!1,propsChanged:!1,updateTriggersChanged:!1,viewportChanged:!1,stateChanged:!1,extensionsChanged:!1,propsOrDataChanged:!1,somethingChanged:!1}}_diffProps(A,t){const i=F7(A,t);if(i.updateTriggersChanged)for(const r in i.updateTriggersChanged)i.updateTriggersChanged[r]&&this.invalidateAttribute(r);if(i.transitionsChanged)for(const r in i.transitionsChanged){var n;this.internalState.uniformTransitions.add(r,t[r],A[r],(n=A.transitions)===null||n===void 0?void 0:n[r])}return this.setChangeFlags(i)}validateProps(){x7(this.props)}updateAutoHighlight(A){this.props.autoHighlight&&!Number.isInteger(this.props.highlightedObjectIndex)&&this._updateAutoHighlight(A)}_updateAutoHighlight(A){const t={pickingSelectedColor:A.picked?A.color:null},{highlightColor:i}=this.props;A.picked&&typeof i=="function"&&(t.pickingHighlightColor=i(A)),this.setModuleParameters(t),this.setNeedsRedraw()}_getAttributeManager(){const A=this.context;return new m7(A.gl,{id:this.props.id,stats:A.stats,timeline:A.timeline})}_postUpdate(A,t){const{props:i,oldProps:n}=A;this.setNeedsRedraw(),this._updateAttributes();const{model:r}=this.state;r==null||r.setInstanceCount(this.getNumInstances());const{autoHighlight:o,highlightedObjectIndex:s,highlightColor:a}=i;if(t||n.autoHighlight!==o||n.highlightedObjectIndex!==s||n.highlightColor!==a){const g={};o||(g.pickingSelectedColor=null),Array.isArray(a)&&(g.pickingHighlightColor=a),Number.isInteger(s)&&(g.pickingSelectedColor=Number.isFinite(s)&&s>=0?this.encodePickingColor(s):null),this.setModuleParameters(g)}}_getUpdateParams(){return{props:this.props,oldProps:this.internalState.getOldProps(),context:this.context,changeFlags:this.internalState.changeFlags}}_getNeedsRedraw(A){if(!this.internalState)return!1;let t=!1;t=t||this.internalState.needsRedraw&&this.id,this.internalState.needsRedraw=this.internalState.needsRedraw&&!A.clearRedrawFlags;const i=this.getAttributeManager(),n=i?i.getNeedsRedraw(A):!1;return t=t||n,t}_onAsyncPropUpdated(){this._diffProps(this.props,this.internalState.getOldProps()),this.setNeedsUpdate()}}y(gi,"defaultProps",lj);y(gi,"layerName","Layer");const cj="compositeLayer.renderLayers";class Ui extends gi{get isComposite(){return!0}get isLoaded(){return super.isLoaded&&this.getSubLayers().every(A=>A.isLoaded)}getSubLayers(){return this.internalState&&this.internalState.subLayers||[]}initializeState(A){}setState(A){super.setState(A),this.setNeedsUpdate()}getPickingInfo({info:A}){const{object:t}=A;return t&&t.__source&&t.__source.parent&&t.__source.parent.id===this.id&&(A.object=t.__source.object,A.index=t.__source.index),A}filterSubLayer(A){return!0}shouldRenderSubLayer(A,t){return t&&t.length}getSubLayerClass(A,t){const{_subLayerProps:i}=this.props;return i&&i[A]&&i[A].type||t}getSubLayerRow(A,t,i){return A.__source={parent:this,object:t,index:i},A}getSubLayerAccessor(A){if(typeof A=="function"){const t={index:-1,data:this.props.data,target:[]};return(i,n)=>i&&i.__source?(t.index=i.__source.index,A(i.__source.object,t)):A(i,n)}return A}getSubLayerProps(A={}){var t;const{opacity:i,pickable:n,visible:r,parameters:o,getPolygonOffset:s,highlightedObjectIndex:a,autoHighlight:g,highlightColor:I,coordinateSystem:l,coordinateOrigin:c,wrapLongitude:C,positionFormat:B,modelMatrix:u,extensions:E,fetch:h,operation:f,_subLayerProps:Q}=this.props,d={id:"",updateTriggers:{},opacity:i,pickable:n,visible:r,parameters:o,getPolygonOffset:s,highlightedObjectIndex:a,autoHighlight:g,highlightColor:I,coordinateSystem:l,coordinateOrigin:c,wrapLongitude:C,positionFormat:B,modelMatrix:u,extensions:E,fetch:h,operation:f},w=Q&&A.id&&Q[A.id],m=w&&w.updateTriggers,v=A.id||"sublayer";if(w){const x=this.constructor._propTypes,D=A.type?A.type._propTypes:{};for(const F in w){const N=D[F]||x[F];N&&N.type==="accessor"&&(w[F]=this.getSubLayerAccessor(w[F]))}}Object.assign(d,A,w),d.id="".concat(this.props.id,"-").concat(v),d.updateTriggers={all:(t=this.props.updateTriggers)===null||t===void 0?void 0:t.all,...A.updateTriggers,...m};for(const x of E){const D=x.getSubLayerProps.call(this,x);D&&Object.assign(d,D,{updateTriggers:Object.assign(d.updateTriggers,D.updateTriggers)})}return d}_updateAutoHighlight(A){for(const t of this.getSubLayers())t.updateAutoHighlight(A)}_getAttributeManager(){return null}_postUpdate(A,t){let i=this.internalState.subLayers;const n=!i||this.needsUpdate();if(n){const r=this.renderLayers();i=zE(r,Boolean),this.internalState.subLayers=i}Rt(cj,this,n,i);for(const r of i)r.parent=this}}y(Ui,"layerName","CompositeLayer");const Tc=Math.PI/180,WD=180/Math.PI,UC=6370972,qs=256;function Cj(){const e=qs/UC,A=Math.PI/180*qs;return{unitsPerMeter:[e,e,e],unitsPerMeter2:[0,0,0],metersPerUnit:[1/e,1/e,1/e],unitsPerDegree:[A,A,e],unitsPerDegree2:[0,0,0],degreesPerUnit:[1/A,1/A,1/e]}}class Bj extends Vn{constructor(A={}){const{latitude:t=0,longitude:i=0,zoom:n=0,nearZMultiplier:r=.1,farZMultiplier:o=2,resolution:s=10}=A;let{height:a,altitude:g=1.5}=A;a=a||1,g=Math.max(.75,g);const I=new fe().lookAt({eye:[0,-g,0],up:[0,0,1]}),l=Math.pow(2,n);I.rotateX(t*Tc),I.rotateZ(-i*Tc),I.scale(l/a);const c=Math.atan(.5/g),C=qs*2*l/a;super({...A,height:a,viewMatrix:I,longitude:i,latitude:t,zoom:n,distanceScales:Cj(),fovyRadians:c*2,focalDistance:g,near:r,far:Math.min(2,1/C+1)*g*o}),y(this,"longitude",void 0),y(this,"latitude",void 0),y(this,"resolution",void 0),this.latitude=t,this.longitude=i,this.resolution=s}get projectionMode(){return Ni.GLOBE}getDistanceScales(){return this.distanceScales}getBounds(A={}){const t={targetZ:A.z||0},i=this.unproject([0,this.height/2],t),n=this.unproject([this.width/2,0],t),r=this.unproject([this.width,this.height/2],t),o=this.unproject([this.width/2,this.height],t);return r[0]this.longitude&&(i[0]-=360),[Math.min(i[0],r[0],n[0],o[0]),Math.min(i[1],r[1],n[1],o[1]),Math.max(i[0],r[0],n[0],o[0]),Math.max(i[1],r[1],n[1],o[1])]}unproject(A,{topLeft:t=!0,targetZ:i}={}){const[n,r,o]=A,s=t?r:this.height-r,{pixelUnprojectionMatrix:a}=this;let g;if(Number.isFinite(o))g=rf(a,[n,s,o,1]);else{const C=rf(a,[n,s,-1,1]),B=rf(a,[n,s,1,1]),u=((i||0)/UC+1)*qs,E=Kh(ib([],C,B)),h=Kh(C),f=Kh(B),Q=(4*h*f-(E-h-f)**2)/16,d=4*Q/E,w=Math.sqrt(h-d),m=Math.sqrt(Math.max(0,u*u-d)),v=(w-m)/Math.sqrt(E);g=R6([],C,B,v)}const[I,l,c]=this.unprojectPosition(g);return Number.isFinite(o)?[I,l,c]:Number.isFinite(i)?[I,l,i]:[I,l]}projectPosition(A){const[t,i,n=0]=A,r=t*Tc,o=i*Tc,s=Math.cos(o),a=(n/UC+1)*qs;return[Math.sin(r)*s*a,-Math.cos(r)*s*a,Math.sin(o)*a]}unprojectPosition(A){const[t,i,n]=A,r=nb(A),o=Math.asin(n/r),a=Math.atan2(t,-i)*WD,g=o*WD,I=(r/qs-1)*UC;return[a,g,I]}projectFlat(A){return A}unprojectFlat(A){return A}panByPosition(A,t){const i=this.unproject(t);return{longitude:A[0]-i[0]+this.longitude,latitude:A[1]-i[1]+this.latitude}}}function rf(e,A){const t=Ta([],A,e);return zp(t,t,1/t[3]),t}const of=Math.PI/180;function Ej({height:e,focalDistance:A,orbitAxis:t,rotationX:i,rotationOrbit:n,zoom:r}){const o=t==="Z"?[0,0,1]:[0,1,0],s=t==="Z"?[0,-A,0]:[0,0,A],a=new fe().lookAt({eye:s,up:o});a.rotateX(i*of),t==="Z"?a.rotateZ(n*of):a.rotateY(n*of);const g=Math.pow(2,r)/e;return a.scale(g),a}class uj extends Vn{constructor(A){const{height:t,projectionMatrix:i,fovy:n=50,orbitAxis:r="Z",target:o=[0,0,0],rotationX:s=0,rotationOrbit:a=0,zoom:g=0}=A,I=i?i[5]/2:$p(n);super({...A,longitude:void 0,viewMatrix:Ej({height:t||1,focalDistance:I,orbitAxis:r,rotationX:s,rotationOrbit:a,zoom:g}),fovy:n,focalDistance:I,position:o,zoom:g}),y(this,"projectedCenter",void 0),this.projectedCenter=this.project(this.center)}unproject(A,{topLeft:t=!0}={}){const[i,n,r=this.projectedCenter[2]]=A,o=t?n:this.height-n,[s,a,g]=Pl([i,o,r],this.pixelUnprojectionMatrix);return[s,a,g]}panByPosition(A,t){const i=this.project(A),n=[this.width/2+i[0]-t[0],this.height/2+i[1]-t[1],this.projectedCenter[2]];return{target:this.unproject(n)}}}class Kb extends Yr{constructor(A={}){super(A),this.props.orbitAxis=A.orbitAxis||"Z"}get ViewportType(){return uj}get ControllerType(){return XW}}y(Kb,"displayName","OrbitView");class Pa{constructor(A){y(this,"opts",void 0),A&&(this.opts=A)}equals(A){return this===A?!0:this.constructor===A.constructor&&os(this.opts,A.opts)}getShaders(A){return null}getSubLayerProps(A){const{defaultProps:t}=A.constructor,i={updateTriggers:{}};for(const n in t)if(n in this.props){const r=t[n],o=this.props[n];i[n]=o,r&&r.type==="accessor"&&(i.updateTriggers[n]=this.props.updateTriggers[n],typeof o=="function"&&(i[n]=this.getSubLayerAccessor(o)))}return i}initializeState(A,t){}updateState(A,t){}draw(A,t){}finalizeState(A,t){}}y(Pa,"defaultProps",{});class Vb{constructor(A){y(this,"opts",void 0),y(this,"typedArrayManager",void 0),y(this,"indexStarts",[0]),y(this,"vertexStarts",[0]),y(this,"vertexCount",0),y(this,"instanceCount",0),y(this,"attributes",void 0),y(this,"_attributeDefs",void 0),y(this,"data",void 0),y(this,"getGeometry",void 0),y(this,"geometryBuffer",void 0),y(this,"buffers",void 0),y(this,"positionSize",void 0),y(this,"normalize",void 0);const{attributes:t={}}=A;this.typedArrayManager=da,this.attributes={},this._attributeDefs=t,this.opts=A,this.updateGeometry(A)}updateGeometry(A){Object.assign(this.opts,A);const{data:t,buffers:i={},getGeometry:n,geometryBuffer:r,positionFormat:o,dataChanged:s,normalize:a=!0}=this.opts;if(this.data=t,this.getGeometry=n,this.positionSize=r&&r.size||(o==="XY"?2:3),this.buffers=i,this.normalize=a,r&&(at(t.startIndices),this.getGeometry=this.getGeometryFromBuffer(r),a||(i.positions=r)),this.geometryBuffer=i.positions,Array.isArray(s))for(const g of s)this._rebuildGeometry(g);else this._rebuildGeometry()}updatePartialGeometry({startRow:A,endRow:t}){this._rebuildGeometry({startRow:A,endRow:t})}getGeometryFromBuffer(A){const t=A.value||A;return ArrayBuffer.isView(t)?kb(t,{size:this.positionSize,offset:A.offset,stride:A.stride,startIndices:this.data.startIndices}):null}_allocate(A,t){const{attributes:i,buffers:n,_attributeDefs:r,typedArrayManager:o}=this;for(const s in r)if(s in n)o.release(i[s]),i[s]=null;else{const a=r[s];a.copy=t,i[s]=o.allocate(i[s],A,a)}}_forEachGeometry(A,t,i){const{data:n,getGeometry:r}=this,{iterable:o,objectInfo:s}=Jl(n,t,i);for(const a of o){s.index++;const g=r?r(a,s):null;A(g,s.index)}}_rebuildGeometry(A){if(!this.data)return;let{indexStarts:t,vertexStarts:i,instanceCount:n}=this;const{data:r,geometryBuffer:o}=this,{startRow:s=0,endRow:a=1/0}=A||{},g={};if(A||(t=[0],i=[0]),this.normalize||!o)this._forEachGeometry((l,c)=>{const C=l&&this.normalizeGeometry(l);g[c]=C,i[c+1]=i[c]+(C?this.getGeometrySize(C):0)},s,a),n=i[i.length-1];else if(i=r.startIndices,n=i[r.length]||0,ArrayBuffer.isView(o))n=n||o.length/this.positionSize;else if(o instanceof we){const l=o.accessor.stride||this.positionSize*4;n=n||o.byteLength/l}else if(o.buffer){const l=o.stride||this.positionSize*4;n=n||o.buffer.byteLength/l}else if(o.value){const l=o.value,c=o.stride/l.BYTES_PER_ELEMENT||this.positionSize;n=n||l.length/c}this._allocate(n,Boolean(A)),this.indexStarts=t,this.vertexStarts=i,this.instanceCount=n;const I={};this._forEachGeometry((l,c)=>{const C=g[c]||l;I.vertexStart=i[c],I.indexStart=t[c];const B=c0&&B>0&&(s[l++]=I-r,s[l++]=I-r-1,s[l++]=I-1,s[l++]=I-r,s[l++]=I-1,s[l++]=I),I++}}return{vertexCount:o,positions:g,indices:s,texCoords:a}}function dj(e){const A=new Float64Array(12);for(let t=0;ti.value=this.state.mesh.indices,noAlloc:t},positions:{size:3,type:5130,fp64:this.use64bitPositions(),update:i=>i.value=this.state.mesh.positions,noAlloc:t},texCoords:{size:2,update:i=>i.value=this.state.mesh.texCoords,noAlloc:t}})}updateState({props:A,oldProps:t,changeFlags:i}){const n=this.getAttributeManager();if(i.extensionsChanged){var r;const{gl:o}=this.context;(r=this.state.model)===null||r===void 0||r.delete(),this.state.model=this._getModel(o),n.invalidateAll()}if(A.bounds!==t.bounds){const o=this.state.mesh,s=this._createMesh();this.state.model.setVertexCount(s.vertexCount);for(const a in s)o&&o[a]!==s[a]&&n.invalidate(a);this.setState({mesh:s,...this._getCoordinateUniforms()})}else A._imageCoordinateSystem!==t._imageCoordinateSystem&&this.setState(this._getCoordinateUniforms())}getPickingInfo(A){const{image:t}=this.props,i=A.info;if(!i.color||!t)return i.bitmap=null,i;const{width:n,height:r}=t;i.index=0;const o=mj(i.color),s=[Math.floor(o[0]*n),Math.floor(o[1]*r)];return i.bitmap={size:{width:n,height:r},uv:o,pixel:s},i}disablePickingIndex(){this.setState({disablePicking:!0})}restorePickingColors(){this.setState({disablePicking:!1})}_updateAutoHighlight(A){super._updateAutoHighlight({...A,color:this.encodePickingColor(0)})}_createMesh(){const{bounds:A}=this.props;let t=A;return WD(A)&&(t=[[A[0],A[1]],[A[0],A[3]],[A[2],A[3]],[A[2],A[1]]]),uj(t,this.context.viewport.resolution)}_getModel(A){return A?new di(A,{...this.getShaders(),id:this.props.id,geometry:new En({drawMode:4,vertexCount:6}),isInstanced:!1}):null}draw(A){const{uniforms:t,moduleParameters:i}=A,{model:n,coordinateConversion:r,bounds:o,disablePicking:s}=this.state,{image:a,desaturate:g,transparentColor:I,tintColor:l}=this.props;i.pickingActive&&s||a&&n&&n.setUniforms(t).setUniforms({bitmapTexture:a,desaturate:g,transparentColor:I.map(c=>c/255),tintColor:l.slice(0,3).map(c=>c/255),coordinateConversion:r,bounds:o}).draw()}_getCoordinateUniforms(){const{LNGLAT:A,CARTESIAN:t,DEFAULT:i}=HA;let{_imageCoordinateSystem:n}=this.props;if(n!==i){const{bounds:r}=this.props;if(!WD(r))throw new Error("_imageCoordinateSystem only supports rectangular bounds");const o=this.context.viewport.resolution?A:t;if(n=n===A?A:t,n===A&&o===t)return{coordinateConversion:-1,bounds:r};if(n===t&&o===A){const s=Yr([r[0],r[1]]),a=Yr([r[2],r[3]]);return{coordinateConversion:1,bounds:[s[0],s[1],a[0],a[1]]}}}return{coordinateConversion:0,bounds:[0,0,0,0]}}}y(Au,"layerName","BitmapLayer");y(Au,"defaultProps",yj);function mj(e){const[A,t,i]=e,n=(i&240)/256,r=(i&15)/16;return[(A+r)/256,(t+n)/256]}function WD(e){return Number.isFinite(e[0])}var wj=`#define SHADER_NAME icon-layer-vertex-shader +`);const vj={image:{type:"image",value:null,async:!0},bounds:{type:"array",value:[1,0,0,1],compare:!0},_imageCoordinateSystem:HA.DEFAULT,desaturate:{type:"number",min:0,max:1,value:0},transparentColor:{type:"color",value:[0,0,0,0]},tintColor:{type:"color",value:[255,255,255]}};class Au extends gi{constructor(...A){super(...A),y(this,"state",void 0)}getShaders(){return super.getShaders({vs:yj,fs:wj,modules:[eo,to]})}initializeState(){const A=this.getAttributeManager();A.remove(["instancePickingColors"]);const t=!0;A.add({indices:{size:1,isIndexed:!0,update:i=>i.value=this.state.mesh.indices,noAlloc:t},positions:{size:3,type:5130,fp64:this.use64bitPositions(),update:i=>i.value=this.state.mesh.positions,noAlloc:t},texCoords:{size:2,update:i=>i.value=this.state.mesh.texCoords,noAlloc:t}})}updateState({props:A,oldProps:t,changeFlags:i}){const n=this.getAttributeManager();if(i.extensionsChanged){var r;const{gl:o}=this.context;(r=this.state.model)===null||r===void 0||r.delete(),this.state.model=this._getModel(o),n.invalidateAll()}if(A.bounds!==t.bounds){const o=this.state.mesh,s=this._createMesh();this.state.model.setVertexCount(s.vertexCount);for(const a in s)o&&o[a]!==s[a]&&n.invalidate(a);this.setState({mesh:s,...this._getCoordinateUniforms()})}else A._imageCoordinateSystem!==t._imageCoordinateSystem&&this.setState(this._getCoordinateUniforms())}getPickingInfo(A){const{image:t}=this.props,i=A.info;if(!i.color||!t)return i.bitmap=null,i;const{width:n,height:r}=t;i.index=0;const o=Sj(i.color),s=[Math.floor(o[0]*n),Math.floor(o[1]*r)];return i.bitmap={size:{width:n,height:r},uv:o,pixel:s},i}disablePickingIndex(){this.setState({disablePicking:!0})}restorePickingColors(){this.setState({disablePicking:!1})}_updateAutoHighlight(A){super._updateAutoHighlight({...A,color:this.encodePickingColor(0)})}_createMesh(){const{bounds:A}=this.props;let t=A;return zD(A)&&(t=[[A[0],A[1]],[A[0],A[3]],[A[2],A[3]],[A[2],A[1]]]),Qj(t,this.context.viewport.resolution)}_getModel(A){return A?new di(A,{...this.getShaders(),id:this.props.id,geometry:new En({drawMode:4,vertexCount:6}),isInstanced:!1}):null}draw(A){const{uniforms:t,moduleParameters:i}=A,{model:n,coordinateConversion:r,bounds:o,disablePicking:s}=this.state,{image:a,desaturate:g,transparentColor:I,tintColor:l}=this.props;i.pickingActive&&s||a&&n&&n.setUniforms(t).setUniforms({bitmapTexture:a,desaturate:g,transparentColor:I.map(c=>c/255),tintColor:l.slice(0,3).map(c=>c/255),coordinateConversion:r,bounds:o}).draw()}_getCoordinateUniforms(){const{LNGLAT:A,CARTESIAN:t,DEFAULT:i}=HA;let{_imageCoordinateSystem:n}=this.props;if(n!==i){const{bounds:r}=this.props;if(!zD(r))throw new Error("_imageCoordinateSystem only supports rectangular bounds");const o=this.context.viewport.resolution?A:t;if(n=n===A?A:t,n===A&&o===t)return{coordinateConversion:-1,bounds:r};if(n===t&&o===A){const s=Or([r[0],r[1]]),a=Or([r[2],r[3]]);return{coordinateConversion:1,bounds:[s[0],s[1],a[0],a[1]]}}}return{coordinateConversion:0,bounds:[0,0,0,0]}}}y(Au,"layerName","BitmapLayer");y(Au,"defaultProps",vj);function Sj(e){const[A,t,i]=e,n=(i&240)/256,r=(i&15)/16;return[(A+r)/256,(t+n)/256]}function zD(e){return Number.isFinite(e[0])}var Dj=`#define SHADER_NAME icon-layer-vertex-shader attribute vec2 positions; @@ -1240,7 +1240,7 @@ void main(void) { vColorMode = instanceColorModes; } -`,vj=`#define SHADER_NAME icon-layer-fragment-shader +`,Rj=`#define SHADER_NAME icon-layer-fragment-shader precision highp float; @@ -1271,7 +1271,7 @@ void main(void) { gl_FragColor = vec4(color, a); DECKGL_FILTER_COLOR(gl_FragColor, geometry); } -`;const Sj=1024,Dj=4,zD=()=>{},Rj={[10241]:9987,[10240]:9729,[10242]:33071,[10243]:33071};function xj(e){return Math.pow(2,Math.ceil(Math.log2(e)))}function Fj(e,A,t,i){return t===A.width&&i===A.height?A:(e.canvas.height=i,e.canvas.width=t,e.clearRect(0,0,e.canvas.width,e.canvas.height),e.drawImage(A,0,0,A.width,A.height,0,0,t,i),e.canvas)}function $I(e){return e&&(e.id||e.url)}function Nj(e,A,t){const i=e.width,n=e.height,r=NL(e,{width:A,height:t});return OY(e,r,{targetY:0,width:i,height:n}),e.delete(),r}function jD(e,A,t){for(let i=0;io&&(jD(t,s,n),i=0,n=r+n+A,r=0,s=[]),s.push({icon:g,xOffset:i}),i=i+c+A,r=Math.max(r,l)}}return s.length>0&&jD(t,s,n),{mapping:t,rowHeight:r,xOffset:i,yOffset:n,canvasWidth:o,canvasHeight:xj(r+n+A)}}function bj(e,A,t){if(!e||!A)return null;t=t||{};const i={},{iterable:n,objectInfo:r}=Jl(e);for(const o of n){r.index++;const s=A(o,r),a=$I(s);if(!s)throw new Error("Icon is missing.");if(!s.url)throw new Error("Icon url is missing.");!i[a]&&(!t[a]||s.url!==t[a].url)&&(i[a]={...s,source:o,sourceIndex:r.index})}return i}class Gj{constructor(A,{onUpdate:t=zD,onError:i=zD}){y(this,"gl",void 0),y(this,"onUpdate",void 0),y(this,"onError",void 0),y(this,"_loadOptions",null),y(this,"_texture",null),y(this,"_externalTexture",null),y(this,"_mapping",{}),y(this,"_textureParameters",null),y(this,"_pendingCount",0),y(this,"_autoPacking",!1),y(this,"_xOffset",0),y(this,"_yOffset",0),y(this,"_rowHeight",0),y(this,"_buffer",Dj),y(this,"_canvasWidth",Sj),y(this,"_canvasHeight",0),y(this,"_canvas",null),this.gl=A,this.onUpdate=t,this.onError=i}finalize(){var A;(A=this._texture)===null||A===void 0||A.delete()}getTexture(){return this._texture||this._externalTexture}getIconMapping(A){const t=this._autoPacking?$I(A):A;return this._mapping[t]||{}}setProps({loadOptions:A,autoPacking:t,iconAtlas:i,iconMapping:n,textureParameters:r}){if(A&&(this._loadOptions=A),t!==void 0&&(this._autoPacking=t),n&&(this._mapping=n),i){var o;(o=this._texture)===null||o===void 0||o.delete(),this._texture=null,this._externalTexture=i}r&&(this._textureParameters=r)}get isLoaded(){return this._pendingCount===0}packIcons(A,t){if(!this._autoPacking||typeof document=="undefined")return;const i=Object.values(bj(A,t,this._mapping)||{});if(i.length>0){const{mapping:n,xOffset:r,yOffset:o,rowHeight:s,canvasHeight:a}=Lj({icons:i,buffer:this._buffer,canvasWidth:this._canvasWidth,mapping:this._mapping,rowHeight:this._rowHeight,xOffset:this._xOffset,yOffset:this._yOffset});this._rowHeight=s,this._mapping=n,this._xOffset=r,this._yOffset=o,this._canvasHeight=a,this._texture||(this._texture=new Pt(this.gl,{width:this._canvasWidth,height:this._canvasHeight,parameters:this._textureParameters||Rj})),this._texture.height!==this._canvasHeight&&(this._texture=Nj(this._texture,this._canvasWidth,this._canvasHeight)),this.onUpdate(),this._canvas=this._canvas||document.createElement("canvas"),this._loadIcons(i)}}_loadIcons(A){const t=this._canvas.getContext("2d");for(const i of A)this._pendingCount++,LB(i.url,CL,this._loadOptions).then(n=>{const r=$I(i),{x:o,y:s,width:a,height:g}=this._mapping[r],I=Fj(t,n,a,g);this._texture.setSubImageData({data:I,x:o,y:s,width:a,height:g}),this._texture.generateMipmap(),this.onUpdate()}).catch(n=>{this.onError({url:i.url,source:i.source,sourceIndex:i.sourceIndex,loadOptions:this._loadOptions,error:n})}).finally(()=>{this._pendingCount--})}}const Yb=[0,0,0,255],_j={iconAtlas:{type:"image",value:null,async:!0},iconMapping:{type:"object",value:{},async:!0},sizeScale:{type:"number",value:1,min:0},billboard:!0,sizeUnits:"pixels",sizeMinPixels:{type:"number",min:0,value:0},sizeMaxPixels:{type:"number",min:0,value:Number.MAX_SAFE_INTEGER},alphaCutoff:{type:"number",value:.05,min:0,max:1},getPosition:{type:"accessor",value:e=>e.position},getIcon:{type:"accessor",value:e=>e.icon},getColor:{type:"accessor",value:Yb},getSize:{type:"accessor",value:1},getAngle:{type:"accessor",value:0},getPixelOffset:{type:"accessor",value:[0,0]},onIconError:{type:"function",value:null,compare:!1,optional:!0}};class eu extends gi{constructor(...A){super(...A),y(this,"state",void 0)}getShaders(){return super.getShaders({vs:wj,fs:vj,modules:[to,io]})}initializeState(){this.state={iconManager:new Gj(this.context.gl,{onUpdate:this._onUpdate.bind(this),onError:this._onError.bind(this)})},this.getAttributeManager().addInstanced({instancePositions:{size:3,type:5130,fp64:this.use64bitPositions(),transition:!0,accessor:"getPosition"},instanceSizes:{size:1,transition:!0,accessor:"getSize",defaultValue:1},instanceOffsets:{size:2,accessor:"getIcon",transform:this.getInstanceOffset},instanceIconFrames:{size:4,accessor:"getIcon",transform:this.getInstanceIconFrame},instanceColorModes:{size:1,type:5121,accessor:"getIcon",transform:this.getInstanceColorMode},instanceColors:{size:this.props.colorFormat.length,type:5121,normalized:!0,transition:!0,accessor:"getColor",defaultValue:Yb},instanceAngles:{size:1,transition:!0,accessor:"getAngle"},instancePixelOffset:{size:2,transition:!0,accessor:"getPixelOffset"}})}updateState(A){super.updateState(A);const{props:t,oldProps:i,changeFlags:n}=A,r=this.getAttributeManager(),{iconAtlas:o,iconMapping:s,data:a,getIcon:g,textureParameters:I}=t,{iconManager:l}=this.state,c=o||this.internalState.isAsyncPropLoading("iconAtlas");if(l.setProps({loadOptions:t.loadOptions,autoPacking:!c,iconAtlas:o,iconMapping:c?s:null,textureParameters:I}),c?i.iconMapping!==t.iconMapping&&r.invalidate("getIcon"):(n.dataChanged||n.updateTriggersChanged&&(n.updateTriggersChanged.all||n.updateTriggersChanged.getIcon))&&l.packIcons(a,g),n.extensionsChanged){var C;const{gl:B}=this.context;(C=this.state.model)===null||C===void 0||C.delete(),this.state.model=this._getModel(B),r.invalidateAll()}}get isLoaded(){return super.isLoaded&&this.state.iconManager.isLoaded}finalizeState(A){super.finalizeState(A),this.state.iconManager.finalize()}draw({uniforms:A}){const{sizeScale:t,sizeMinPixels:i,sizeMaxPixels:n,sizeUnits:r,billboard:o,alphaCutoff:s}=this.props,{iconManager:a}=this.state,g=a.getTexture();g&&this.state.model.setUniforms(A).setUniforms({iconsTexture:g,iconsTextureDim:[g.width,g.height],sizeUnits:Or[r],sizeScale:t,sizeMinPixels:i,sizeMaxPixels:n,billboard:o,alphaCutoff:s}).draw()}_getModel(A){const t=[-1,-1,-1,1,1,1,1,-1];return new di(A,{...this.getShaders(),id:this.props.id,geometry:new En({drawMode:6,attributes:{positions:{size:2,value:new Float32Array(t)}}}),isInstanced:!0})}_onUpdate(){this.setNeedsRedraw()}_onError(A){var t;const i=(t=this.getCurrentLayer())===null||t===void 0?void 0:t.props.onIconError;i?i(A):Ae.error(A.error.message)()}getInstanceOffset(A){const{width:t,height:i,anchorX:n=t/2,anchorY:r=i/2}=this.state.iconManager.getIconMapping(A);return[t/2-n,i/2-r]}getInstanceColorMode(A){return this.state.iconManager.getIconMapping(A).mask?1:0}getInstanceIconFrame(A){const{x:t,y:i,width:n,height:r}=this.state.iconManager.getIconMapping(A);return[t,i,n,r]}}y(eu,"defaultProps",_j);y(eu,"layerName","IconLayer");var Mj=`#define SHADER_NAME line-layer-vertex-shader +`;const xj=1024,Fj=4,jD=()=>{},Nj={[10241]:9987,[10240]:9729,[10242]:33071,[10243]:33071};function Lj(e){return Math.pow(2,Math.ceil(Math.log2(e)))}function bj(e,A,t,i){return t===A.width&&i===A.height?A:(e.canvas.height=i,e.canvas.width=t,e.clearRect(0,0,e.canvas.width,e.canvas.height),e.drawImage(A,0,0,A.width,A.height,0,0,t,i),e.canvas)}function ZI(e){return e&&(e.id||e.url)}function Gj(e,A,t){const i=e.width,n=e.height,r=GL(e,{width:A,height:t});return VY(e,r,{targetY:0,width:i,height:n}),e.delete(),r}function XD(e,A,t){for(let i=0;io&&(XD(t,s,n),i=0,n=r+n+A,r=0,s=[]),s.push({icon:g,xOffset:i}),i=i+c+A,r=Math.max(r,l)}}return s.length>0&&XD(t,s,n),{mapping:t,rowHeight:r,xOffset:i,yOffset:n,canvasWidth:o,canvasHeight:Lj(r+n+A)}}function Mj(e,A,t){if(!e||!A)return null;t=t||{};const i={},{iterable:n,objectInfo:r}=Jl(e);for(const o of n){r.index++;const s=A(o,r),a=ZI(s);if(!s)throw new Error("Icon is missing.");if(!s.url)throw new Error("Icon url is missing.");!i[a]&&(!t[a]||s.url!==t[a].url)&&(i[a]={...s,source:o,sourceIndex:r.index})}return i}class kj{constructor(A,{onUpdate:t=jD,onError:i=jD}){y(this,"gl",void 0),y(this,"onUpdate",void 0),y(this,"onError",void 0),y(this,"_loadOptions",null),y(this,"_texture",null),y(this,"_externalTexture",null),y(this,"_mapping",{}),y(this,"_textureParameters",null),y(this,"_pendingCount",0),y(this,"_autoPacking",!1),y(this,"_xOffset",0),y(this,"_yOffset",0),y(this,"_rowHeight",0),y(this,"_buffer",Fj),y(this,"_canvasWidth",xj),y(this,"_canvasHeight",0),y(this,"_canvas",null),this.gl=A,this.onUpdate=t,this.onError=i}finalize(){var A;(A=this._texture)===null||A===void 0||A.delete()}getTexture(){return this._texture||this._externalTexture}getIconMapping(A){const t=this._autoPacking?ZI(A):A;return this._mapping[t]||{}}setProps({loadOptions:A,autoPacking:t,iconAtlas:i,iconMapping:n,textureParameters:r}){if(A&&(this._loadOptions=A),t!==void 0&&(this._autoPacking=t),n&&(this._mapping=n),i){var o;(o=this._texture)===null||o===void 0||o.delete(),this._texture=null,this._externalTexture=i}r&&(this._textureParameters=r)}get isLoaded(){return this._pendingCount===0}packIcons(A,t){if(!this._autoPacking||typeof document=="undefined")return;const i=Object.values(Mj(A,t,this._mapping)||{});if(i.length>0){const{mapping:n,xOffset:r,yOffset:o,rowHeight:s,canvasHeight:a}=_j({icons:i,buffer:this._buffer,canvasWidth:this._canvasWidth,mapping:this._mapping,rowHeight:this._rowHeight,xOffset:this._xOffset,yOffset:this._yOffset});this._rowHeight=s,this._mapping=n,this._xOffset=r,this._yOffset=o,this._canvasHeight=a,this._texture||(this._texture=new Pt(this.gl,{width:this._canvasWidth,height:this._canvasHeight,parameters:this._textureParameters||Nj})),this._texture.height!==this._canvasHeight&&(this._texture=Gj(this._texture,this._canvasWidth,this._canvasHeight)),this.onUpdate(),this._canvas=this._canvas||document.createElement("canvas"),this._loadIcons(i)}}_loadIcons(A){const t=this._canvas.getContext("2d");for(const i of A)this._pendingCount++,LB(i.url,uL,this._loadOptions).then(n=>{const r=ZI(i),{x:o,y:s,width:a,height:g}=this._mapping[r],I=bj(t,n,a,g);this._texture.setSubImageData({data:I,x:o,y:s,width:a,height:g}),this._texture.generateMipmap(),this.onUpdate()}).catch(n=>{this.onError({url:i.url,source:i.source,sourceIndex:i.sourceIndex,loadOptions:this._loadOptions,error:n})}).finally(()=>{this._pendingCount--})}}const Wb=[0,0,0,255],Tj={iconAtlas:{type:"image",value:null,async:!0},iconMapping:{type:"object",value:{},async:!0},sizeScale:{type:"number",value:1,min:0},billboard:!0,sizeUnits:"pixels",sizeMinPixels:{type:"number",min:0,value:0},sizeMaxPixels:{type:"number",min:0,value:Number.MAX_SAFE_INTEGER},alphaCutoff:{type:"number",value:.05,min:0,max:1},getPosition:{type:"accessor",value:e=>e.position},getIcon:{type:"accessor",value:e=>e.icon},getColor:{type:"accessor",value:Wb},getSize:{type:"accessor",value:1},getAngle:{type:"accessor",value:0},getPixelOffset:{type:"accessor",value:[0,0]},onIconError:{type:"function",value:null,compare:!1,optional:!0}};class eu extends gi{constructor(...A){super(...A),y(this,"state",void 0)}getShaders(){return super.getShaders({vs:Dj,fs:Rj,modules:[eo,to]})}initializeState(){this.state={iconManager:new kj(this.context.gl,{onUpdate:this._onUpdate.bind(this),onError:this._onError.bind(this)})},this.getAttributeManager().addInstanced({instancePositions:{size:3,type:5130,fp64:this.use64bitPositions(),transition:!0,accessor:"getPosition"},instanceSizes:{size:1,transition:!0,accessor:"getSize",defaultValue:1},instanceOffsets:{size:2,accessor:"getIcon",transform:this.getInstanceOffset},instanceIconFrames:{size:4,accessor:"getIcon",transform:this.getInstanceIconFrame},instanceColorModes:{size:1,type:5121,accessor:"getIcon",transform:this.getInstanceColorMode},instanceColors:{size:this.props.colorFormat.length,type:5121,normalized:!0,transition:!0,accessor:"getColor",defaultValue:Wb},instanceAngles:{size:1,transition:!0,accessor:"getAngle"},instancePixelOffset:{size:2,transition:!0,accessor:"getPixelOffset"}})}updateState(A){super.updateState(A);const{props:t,oldProps:i,changeFlags:n}=A,r=this.getAttributeManager(),{iconAtlas:o,iconMapping:s,data:a,getIcon:g,textureParameters:I}=t,{iconManager:l}=this.state,c=o||this.internalState.isAsyncPropLoading("iconAtlas");if(l.setProps({loadOptions:t.loadOptions,autoPacking:!c,iconAtlas:o,iconMapping:c?s:null,textureParameters:I}),c?i.iconMapping!==t.iconMapping&&r.invalidate("getIcon"):(n.dataChanged||n.updateTriggersChanged&&(n.updateTriggersChanged.all||n.updateTriggersChanged.getIcon))&&l.packIcons(a,g),n.extensionsChanged){var C;const{gl:B}=this.context;(C=this.state.model)===null||C===void 0||C.delete(),this.state.model=this._getModel(B),r.invalidateAll()}}get isLoaded(){return super.isLoaded&&this.state.iconManager.isLoaded}finalizeState(A){super.finalizeState(A),this.state.iconManager.finalize()}draw({uniforms:A}){const{sizeScale:t,sizeMinPixels:i,sizeMaxPixels:n,sizeUnits:r,billboard:o,alphaCutoff:s}=this.props,{iconManager:a}=this.state,g=a.getTexture();g&&this.state.model.setUniforms(A).setUniforms({iconsTexture:g,iconsTextureDim:[g.width,g.height],sizeUnits:Jr[r],sizeScale:t,sizeMinPixels:i,sizeMaxPixels:n,billboard:o,alphaCutoff:s}).draw()}_getModel(A){const t=[-1,-1,-1,1,1,1,1,-1];return new di(A,{...this.getShaders(),id:this.props.id,geometry:new En({drawMode:6,attributes:{positions:{size:2,value:new Float32Array(t)}}}),isInstanced:!0})}_onUpdate(){this.setNeedsRedraw()}_onError(A){var t;const i=(t=this.getCurrentLayer())===null||t===void 0?void 0:t.props.onIconError;i?i(A):Ae.error(A.error.message)()}getInstanceOffset(A){const{width:t,height:i,anchorX:n=t/2,anchorY:r=i/2}=this.state.iconManager.getIconMapping(A);return[t/2-n,i/2-r]}getInstanceColorMode(A){return this.state.iconManager.getIconMapping(A).mask?1:0}getInstanceIconFrame(A){const{x:t,y:i,width:n,height:r}=this.state.iconManager.getIconMapping(A);return[t,i,n,r]}}y(eu,"defaultProps",Tj);y(eu,"layerName","IconLayer");var Uj=`#define SHADER_NAME line-layer-vertex-shader attribute vec3 positions; attribute vec3 instanceSourcePositions; @@ -1369,7 +1369,7 @@ void main(void) { vColor = vec4(instanceColors.rgb, instanceColors.a * opacity); DECKGL_FILTER_COLOR(vColor, geometry); } -`,kj=`#define SHADER_NAME line-layer-fragment-shader +`,Pj=`#define SHADER_NAME line-layer-fragment-shader precision highp float; @@ -1383,7 +1383,7 @@ void main(void) { DECKGL_FILTER_COLOR(gl_FragColor, geometry); } -`;const Tj=[0,0,0,255],Uj={getSourcePosition:{type:"accessor",value:e=>e.sourcePosition},getTargetPosition:{type:"accessor",value:e=>e.targetPosition},getColor:{type:"accessor",value:Tj},getWidth:{type:"accessor",value:1},widthUnits:"pixels",widthScale:{type:"number",value:1,min:0},widthMinPixels:{type:"number",value:0,min:0},widthMaxPixels:{type:"number",value:Number.MAX_SAFE_INTEGER,min:0}};class fI extends gi{getShaders(){return super.getShaders({vs:Mj,fs:kj,modules:[to,io]})}get wrapLongitude(){return!1}initializeState(){this.getAttributeManager().addInstanced({instanceSourcePositions:{size:3,type:5130,fp64:this.use64bitPositions(),transition:!0,accessor:"getSourcePosition"},instanceTargetPositions:{size:3,type:5130,fp64:this.use64bitPositions(),transition:!0,accessor:"getTargetPosition"},instanceColors:{size:this.props.colorFormat.length,type:5121,normalized:!0,transition:!0,accessor:"getColor",defaultValue:[0,0,0,255]},instanceWidths:{size:1,transition:!0,accessor:"getWidth",defaultValue:1}})}updateState(A){if(super.updateState(A),A.changeFlags.extensionsChanged){var t;const{gl:i}=this.context;(t=this.state.model)===null||t===void 0||t.delete(),this.state.model=this._getModel(i),this.getAttributeManager().invalidateAll()}}draw({uniforms:A}){const{widthUnits:t,widthScale:i,widthMinPixels:n,widthMaxPixels:r,wrapLongitude:o}=this.props;this.state.model.setUniforms(A).setUniforms({widthUnits:Or[t],widthScale:i,widthMinPixels:n,widthMaxPixels:r,useShortestPath:o?1:0}).draw(),o&&this.state.model.setUniforms({useShortestPath:-1}).draw()}_getModel(A){const t=[0,-1,0,0,1,0,1,-1,0,1,1,0];return new di(A,{...this.getShaders(),id:this.props.id,geometry:new En({drawMode:5,attributes:{positions:new Float32Array(t)}}),isInstanced:!0})}}y(fI,"layerName","LineLayer");y(fI,"defaultProps",Uj);var Pj=`#define SHADER_NAME scatterplot-layer-vertex-shader +`;const Hj=[0,0,0,255],qj={getSourcePosition:{type:"accessor",value:e=>e.sourcePosition},getTargetPosition:{type:"accessor",value:e=>e.targetPosition},getColor:{type:"accessor",value:Hj},getWidth:{type:"accessor",value:1},widthUnits:"pixels",widthScale:{type:"number",value:1,min:0},widthMinPixels:{type:"number",value:0,min:0},widthMaxPixels:{type:"number",value:Number.MAX_SAFE_INTEGER,min:0}};class hI extends gi{getShaders(){return super.getShaders({vs:Uj,fs:Pj,modules:[eo,to]})}get wrapLongitude(){return!1}initializeState(){this.getAttributeManager().addInstanced({instanceSourcePositions:{size:3,type:5130,fp64:this.use64bitPositions(),transition:!0,accessor:"getSourcePosition"},instanceTargetPositions:{size:3,type:5130,fp64:this.use64bitPositions(),transition:!0,accessor:"getTargetPosition"},instanceColors:{size:this.props.colorFormat.length,type:5121,normalized:!0,transition:!0,accessor:"getColor",defaultValue:[0,0,0,255]},instanceWidths:{size:1,transition:!0,accessor:"getWidth",defaultValue:1}})}updateState(A){if(super.updateState(A),A.changeFlags.extensionsChanged){var t;const{gl:i}=this.context;(t=this.state.model)===null||t===void 0||t.delete(),this.state.model=this._getModel(i),this.getAttributeManager().invalidateAll()}}draw({uniforms:A}){const{widthUnits:t,widthScale:i,widthMinPixels:n,widthMaxPixels:r,wrapLongitude:o}=this.props;this.state.model.setUniforms(A).setUniforms({widthUnits:Jr[t],widthScale:i,widthMinPixels:n,widthMaxPixels:r,useShortestPath:o?1:0}).draw(),o&&this.state.model.setUniforms({useShortestPath:-1}).draw()}_getModel(A){const t=[0,-1,0,0,1,0,1,-1,0,1,1,0];return new di(A,{...this.getShaders(),id:this.props.id,geometry:new En({drawMode:5,attributes:{positions:new Float32Array(t)}}),isInstanced:!0})}}y(hI,"layerName","LineLayer");y(hI,"defaultProps",qj);var Jj=`#define SHADER_NAME scatterplot-layer-vertex-shader attribute vec3 positions; @@ -1463,7 +1463,7 @@ void main(void) { vLineColor = vec4(instanceLineColors.rgb, instanceLineColors.a * opacity); DECKGL_FILTER_COLOR(vLineColor, geometry); } -`,Hj=`#define SHADER_NAME scatterplot-layer-fragment-shader +`,Oj=`#define SHADER_NAME scatterplot-layer-fragment-shader precision highp float; @@ -1511,7 +1511,7 @@ void main(void) { gl_FragColor.a *= inCircle; DECKGL_FILTER_COLOR(gl_FragColor, geometry); } -`;const XD=[0,0,0,255],qj={radiusUnits:"meters",radiusScale:{type:"number",min:0,value:1},radiusMinPixels:{type:"number",min:0,value:0},radiusMaxPixels:{type:"number",min:0,value:Number.MAX_SAFE_INTEGER},lineWidthUnits:"meters",lineWidthScale:{type:"number",min:0,value:1},lineWidthMinPixels:{type:"number",min:0,value:0},lineWidthMaxPixels:{type:"number",min:0,value:Number.MAX_SAFE_INTEGER},stroked:!1,filled:!0,billboard:!1,antialiasing:!0,getPosition:{type:"accessor",value:e=>e.position},getRadius:{type:"accessor",value:1},getFillColor:{type:"accessor",value:XD},getLineColor:{type:"accessor",value:XD},getLineWidth:{type:"accessor",value:1},strokeWidth:{deprecatedFor:"getLineWidth"},outline:{deprecatedFor:"stroked"},getColor:{deprecatedFor:["getFillColor","getLineColor"]}};class ny extends gi{getShaders(){return super.getShaders({vs:Pj,fs:Hj,modules:[to,io]})}initializeState(){this.getAttributeManager().addInstanced({instancePositions:{size:3,type:5130,fp64:this.use64bitPositions(),transition:!0,accessor:"getPosition"},instanceRadius:{size:1,transition:!0,accessor:"getRadius",defaultValue:1},instanceFillColors:{size:this.props.colorFormat.length,transition:!0,normalized:!0,type:5121,accessor:"getFillColor",defaultValue:[0,0,0,255]},instanceLineColors:{size:this.props.colorFormat.length,transition:!0,normalized:!0,type:5121,accessor:"getLineColor",defaultValue:[0,0,0,255]},instanceLineWidths:{size:1,transition:!0,accessor:"getLineWidth",defaultValue:1}})}updateState(A){if(super.updateState(A),A.changeFlags.extensionsChanged){var t;const{gl:i}=this.context;(t=this.state.model)===null||t===void 0||t.delete(),this.state.model=this._getModel(i),this.getAttributeManager().invalidateAll()}}draw({uniforms:A}){const{radiusUnits:t,radiusScale:i,radiusMinPixels:n,radiusMaxPixels:r,stroked:o,filled:s,billboard:a,antialiasing:g,lineWidthUnits:I,lineWidthScale:l,lineWidthMinPixels:c,lineWidthMaxPixels:C}=this.props;this.state.model.setUniforms(A).setUniforms({stroked:o?1:0,filled:s,billboard:a,antialiasing:g,radiusUnits:Or[t],radiusScale:i,radiusMinPixels:n,radiusMaxPixels:r,lineWidthUnits:Or[I],lineWidthScale:l,lineWidthMinPixels:c,lineWidthMaxPixels:C}).draw()}_getModel(A){const t=[-1,-1,0,1,-1,0,1,1,0,-1,1,0];return new di(A,{...this.getShaders(),id:this.props.id,geometry:new En({drawMode:6,vertexCount:4,attributes:{positions:{size:3,value:new Float32Array(t)}}}),isInstanced:!0})}}y(ny,"defaultProps",qj);y(ny,"layerName","ScatterplotLayer");const Kb={CLOCKWISE:1,COUNTER_CLOCKWISE:-1};function Vb(e,A,t={}){return Jj(e,t)!==A?(Yj(e,t),!0):!1}function Jj(e,A={}){return Math.sign(Oj(e,A))}function Oj(e,A={}){const{start:t=0,end:i=e.length}=A,n=A.size||2;let r=0;for(let o=t,s=i-n;o0){let n=!0;for(let r=0;rA[2]&&(t|=2),e[1]A[3]&&(t|=8),t}function Wb(e,A){const{size:t=2,broken:i=!1,gridResolution:n=10,gridOffset:r=[0,0],startIndex:o=0,endIndex:s=e.length}=A||{},a=(s-o)/t;let g=[];const I=[g],l=Al(e,0,t,o);let c,C;const B=jb(l,n,r,[]),u=[];bi(g,l);for(let E=1;Et&&(g=[],I.push(g),bi(g,l)),C=PC(c,B)}bi(g,c),md(l,c)}return i?I:I[0]}const ZD=0,Kj=1;function Uc(e,A){for(let t=0;t=0?(bi(g,C)&&l.push(u),d+=B):l.length&&(l[l.length-1]=ZD),md(E,C),h=B,f=u;return[Q?{pos:a,types:A&&I}:null,d?{pos:g,types:A&&l}:null]}function jb(e,A,t,i){const n=Math.floor((e[0]-t[0])/A)*A+t[0],r=Math.floor((e[1]-t[1])/A)*A+t[1];return i[0]=n,i[1]=r,i[2]=n+A,i[3]=r+A,i}function Vj(e,A,t){t&8?(e[1]+=A,e[3]+=A):t&4?(e[1]-=A,e[3]-=A):t&2?(e[0]+=A,e[2]+=A):t&1&&(e[0]-=A,e[2]-=A)}function Wj(e,A,t,i){let n=1/0,r=-1/0,o=1/0,s=-1/0;for(let a=0;ar?g:r,o=Is?I:s}return i[0][0]=n,i[0][1]=o,i[1][0]=r,i[1][1]=s,i}const zj=85.051129;function jj(e,A){const{size:t=2,startIndex:i=0,endIndex:n=e.length,normalize:r=!0}=A||{},o=e.slice(i,n);Xb(o,t,0,n-i);const s=Wb(o,{size:t,broken:!0,gridResolution:360,gridOffset:[-180,-180]});if(r)for(const a of s)Zb(a,t);return s}function Xj(e,A=null,t){const{size:i=2,normalize:n=!0,edgeTypes:r=!1}=t||{};A=A||[];const o=[],s=[];let a=0,g=0;for(let l=0;l<=A.length;l++){const c=A[l]||e.length,C=g,B=Zj(e,i,a,c);for(let u=B;un&&(n=s,r=o-1)}return r}function $j(e,A,t,i,n=zj){const r=e[t],o=e[i-A];if(Math.abs(r-o)>180){const s=Al(e,0,A,t);s[0]+=Math.round((o-r)/360)*360,bi(e,s),s[1]=Math.sign(s[1])*n,bi(e,s),s[0]=r,bi(e,s)}}function Xb(e,A,t,i){let n=e[0],r;for(let o=t;o180||s<-180)&&(r-=Math.round(s/360)*360),e[o]=n=r}}function Zb(e,A){let t;const i=e.length/A;for(let r=0;r=A.length&&(t+=1-A.length/n);const r=t*n;return i[0]=A[r],i[1]=A[r+1],i[2]=n===3&&A[r+2]||0,i}isClosed(A){if(!this.normalize)return Boolean(this.opts.loop);const{positionSize:t}=this,i=A.length-t;return A[0]===A[i]&&A[1]===A[i+1]&&(t===2||A[2]===A[i+2])}}function AR(e){return Array.isArray(e[0])}var nX=`#define SHADER_NAME path-layer-vertex-shader +`;const ZD=[0,0,0,255],Yj={radiusUnits:"meters",radiusScale:{type:"number",min:0,value:1},radiusMinPixels:{type:"number",min:0,value:0},radiusMaxPixels:{type:"number",min:0,value:Number.MAX_SAFE_INTEGER},lineWidthUnits:"meters",lineWidthScale:{type:"number",min:0,value:1},lineWidthMinPixels:{type:"number",min:0,value:0},lineWidthMaxPixels:{type:"number",min:0,value:Number.MAX_SAFE_INTEGER},stroked:!1,filled:!0,billboard:!1,antialiasing:!0,getPosition:{type:"accessor",value:e=>e.position},getRadius:{type:"accessor",value:1},getFillColor:{type:"accessor",value:ZD},getLineColor:{type:"accessor",value:ZD},getLineWidth:{type:"accessor",value:1},strokeWidth:{deprecatedFor:"getLineWidth"},outline:{deprecatedFor:"stroked"},getColor:{deprecatedFor:["getFillColor","getLineColor"]}};class ry extends gi{getShaders(){return super.getShaders({vs:Jj,fs:Oj,modules:[eo,to]})}initializeState(){this.getAttributeManager().addInstanced({instancePositions:{size:3,type:5130,fp64:this.use64bitPositions(),transition:!0,accessor:"getPosition"},instanceRadius:{size:1,transition:!0,accessor:"getRadius",defaultValue:1},instanceFillColors:{size:this.props.colorFormat.length,transition:!0,normalized:!0,type:5121,accessor:"getFillColor",defaultValue:[0,0,0,255]},instanceLineColors:{size:this.props.colorFormat.length,transition:!0,normalized:!0,type:5121,accessor:"getLineColor",defaultValue:[0,0,0,255]},instanceLineWidths:{size:1,transition:!0,accessor:"getLineWidth",defaultValue:1}})}updateState(A){if(super.updateState(A),A.changeFlags.extensionsChanged){var t;const{gl:i}=this.context;(t=this.state.model)===null||t===void 0||t.delete(),this.state.model=this._getModel(i),this.getAttributeManager().invalidateAll()}}draw({uniforms:A}){const{radiusUnits:t,radiusScale:i,radiusMinPixels:n,radiusMaxPixels:r,stroked:o,filled:s,billboard:a,antialiasing:g,lineWidthUnits:I,lineWidthScale:l,lineWidthMinPixels:c,lineWidthMaxPixels:C}=this.props;this.state.model.setUniforms(A).setUniforms({stroked:o?1:0,filled:s,billboard:a,antialiasing:g,radiusUnits:Jr[t],radiusScale:i,radiusMinPixels:n,radiusMaxPixels:r,lineWidthUnits:Jr[I],lineWidthScale:l,lineWidthMinPixels:c,lineWidthMaxPixels:C}).draw()}_getModel(A){const t=[-1,-1,0,1,-1,0,1,1,0,-1,1,0];return new di(A,{...this.getShaders(),id:this.props.id,geometry:new En({drawMode:6,vertexCount:4,attributes:{positions:{size:3,value:new Float32Array(t)}}}),isInstanced:!0})}}y(ry,"defaultProps",Yj);y(ry,"layerName","ScatterplotLayer");const zb={CLOCKWISE:1,COUNTER_CLOCKWISE:-1};function jb(e,A,t={}){return Kj(e,t)!==A?(Wj(e,t),!0):!1}function Kj(e,A={}){return Math.sign(Vj(e,A))}function Vj(e,A={}){const{start:t=0,end:i=e.length}=A,n=A.size||2;let r=0;for(let o=t,s=i-n;o0){let n=!0;for(let r=0;rA[2]&&(t|=2),e[1]A[3]&&(t|=8),t}function Xb(e,A){const{size:t=2,broken:i=!1,gridResolution:n=10,gridOffset:r=[0,0],startIndex:o=0,endIndex:s=e.length}=A||{},a=(s-o)/t;let g=[];const I=[g],l=$I(e,0,t,o);let c,C;const B=$b(l,n,r,[]),u=[];bi(g,l);for(let E=1;Et&&(g=[],I.push(g),bi(g,l)),C=PC(c,B)}bi(g,c),wd(l,c)}return i?I:I[0]}const $D=0,zj=1;function Uc(e,A){for(let t=0;t=0?(bi(g,C)&&l.push(u),d+=B):l.length&&(l[l.length-1]=$D),wd(E,C),h=B,f=u;return[Q?{pos:a,types:A&&I}:null,d?{pos:g,types:A&&l}:null]}function $b(e,A,t,i){const n=Math.floor((e[0]-t[0])/A)*A+t[0],r=Math.floor((e[1]-t[1])/A)*A+t[1];return i[0]=n,i[1]=r,i[2]=n+A,i[3]=r+A,i}function jj(e,A,t){t&8?(e[1]+=A,e[3]+=A):t&4?(e[1]-=A,e[3]-=A):t&2?(e[0]+=A,e[2]+=A):t&1&&(e[0]-=A,e[2]-=A)}function Xj(e,A,t,i){let n=1/0,r=-1/0,o=1/0,s=-1/0;for(let a=0;ar?g:r,o=Is?I:s}return i[0][0]=n,i[0][1]=o,i[1][0]=r,i[1][1]=s,i}const Zj=85.051129;function $j(e,A){const{size:t=2,startIndex:i=0,endIndex:n=e.length,normalize:r=!0}=A||{},o=e.slice(i,n);AG(o,t,0,n-i);const s=Xb(o,{size:t,broken:!0,gridResolution:360,gridOffset:[-180,-180]});if(r)for(const a of s)eG(a,t);return s}function AX(e,A=null,t){const{size:i=2,normalize:n=!0,edgeTypes:r=!1}=t||{};A=A||[];const o=[],s=[];let a=0,g=0;for(let l=0;l<=A.length;l++){const c=A[l]||e.length,C=g,B=eX(e,i,a,c);for(let u=B;un&&(n=s,r=o-1)}return r}function tX(e,A,t,i,n=Zj){const r=e[t],o=e[i-A];if(Math.abs(r-o)>180){const s=$I(e,0,A,t);s[0]+=Math.round((o-r)/360)*360,bi(e,s),s[1]=Math.sign(s[1])*n,bi(e,s),s[0]=r,bi(e,s)}}function AG(e,A,t,i){let n=e[0],r;for(let o=t;o180||s<-180)&&(r-=Math.round(s/360)*360),e[o]=n=r}}function eG(e,A){let t;const i=e.length/A;for(let r=0;r=A.length&&(t+=1-A.length/n);const r=t*n;return i[0]=A[r],i[1]=A[r+1],i[2]=n===3&&A[r+2]||0,i}isClosed(A){if(!this.normalize)return Boolean(this.opts.loop);const{positionSize:t}=this,i=A.length-t;return A[0]===A[i]&&A[1]===A[i+1]&&(t===2||A[2]===A[i+2])}}function eR(e){return Array.isArray(e[0])}var sX=`#define SHADER_NAME path-layer-vertex-shader attribute vec2 positions; @@ -1724,7 +1724,7 @@ void main() { DECKGL_FILTER_GL_POSITION(gl_Position, geometry); DECKGL_FILTER_COLOR(vColor, geometry); } -`,rX=`#define SHADER_NAME path-layer-fragment-shader +`,aX=`#define SHADER_NAME path-layer-fragment-shader precision highp float; @@ -1759,7 +1759,7 @@ void main(void) { DECKGL_FILTER_COLOR(gl_FragColor, geometry); } -`;const $b=[0,0,0,255],oX={widthUnits:"meters",widthScale:{type:"number",min:0,value:1},widthMinPixels:{type:"number",min:0,value:0},widthMaxPixels:{type:"number",min:0,value:Number.MAX_SAFE_INTEGER},jointRounded:!1,capRounded:!1,miterLimit:{type:"number",min:0,value:4},billboard:!1,_pathType:null,getPath:{type:"accessor",value:e=>e.path},getColor:{type:"accessor",value:$b},getWidth:{type:"accessor",value:1},rounded:{deprecatedFor:["jointRounded","capRounded"]}},af={enter:(e,A)=>A.length?A.subarray(A.length-e.length):e};class tu extends gi{constructor(...A){super(...A),y(this,"state",void 0)}getShaders(){return super.getShaders({vs:nX,fs:rX,modules:[to,io]})}get wrapLongitude(){return!1}initializeState(){this.getAttributeManager().addInstanced({positions:{size:3,vertexOffset:1,type:5130,fp64:this.use64bitPositions(),transition:af,accessor:"getPath",update:this.calculatePositions,noAlloc:!0,shaderAttributes:{instanceLeftPositions:{vertexOffset:0},instanceStartPositions:{vertexOffset:1},instanceEndPositions:{vertexOffset:2},instanceRightPositions:{vertexOffset:3}}},instanceTypes:{size:1,type:5121,update:this.calculateSegmentTypes,noAlloc:!0},instanceStrokeWidths:{size:1,accessor:"getWidth",transition:af,defaultValue:1},instanceColors:{size:this.props.colorFormat.length,type:5121,normalized:!0,accessor:"getColor",transition:af,defaultValue:$b},instancePickingColors:{size:3,type:5121,accessor:(i,{index:n,target:r})=>this.encodePickingColor(i&&i.__source?i.__source.index:n,r)}}),this.setState({pathTesselator:new iX({fp64:this.use64bitPositions()})})}updateState(A){super.updateState(A);const{props:t,changeFlags:i}=A,n=this.getAttributeManager();if(i.dataChanged||i.updateTriggersChanged&&(i.updateTriggersChanged.all||i.updateTriggersChanged.getPath)){const{pathTesselator:s}=this.state,a=t.data.attributes||{};s.updateGeometry({data:t.data,geometryBuffer:a.getPath,buffers:a,normalize:!t._pathType,loop:t._pathType==="loop",getGeometry:t.getPath,positionFormat:t.positionFormat,wrapLongitude:t.wrapLongitude,resolution:this.context.viewport.resolution,dataChanged:i.dataChanged}),this.setState({numInstances:s.instanceCount,startIndices:s.vertexStarts}),i.dataChanged||n.invalidateAll()}if(i.extensionsChanged){var o;const{gl:s}=this.context;(o=this.state.model)===null||o===void 0||o.delete(),this.state.model=this._getModel(s),n.invalidateAll()}}getPickingInfo(A){const t=super.getPickingInfo(A),{index:i}=t,{data:n}=this.props;return n[0]&&n[0].__source&&(t.object=n.find(r=>r.__source.index===i)),t}disablePickingIndex(A){const{data:t}=this.props;if(t[0]&&t[0].__source)for(let i=0;i80*t){s=g=e[0],a=I=e[1];for(var B=t;Bg&&(g=l),c>I&&(I=c);C=Math.max(g-s,I-a),C=C!==0?32767/C:0}return el(r,o,t,s,a,C,0),o}function AG(e,A,t,i,n){var r,o;if(n===Dd(e,A,t,i)>0)for(r=A;r=A;r-=i)o=eR(r,e[r],e[r+1],o);return o&&nu(o,o.next)&&(il(o),o=o.next),o}function Po(e,A){if(!e)return e;A||(A=e);var t=e,i;do if(i=!1,!t.steiner&&(nu(t,t.next)||Ye(t.prev,t,t.next)===0)){if(il(t),t=A=t.prev,t===t.next)break;i=!0}else t=t.next;while(i||t!==A);return A}function el(e,A,t,i,n,r,o){if(!!e){!o&&r&&uX(e,i,n,r);for(var s=e,a,g;e.prev!==e.next;){if(a=e.prev,g=e.next,r?aX(e,i,n,r):sX(e)){A.push(a.i/t|0),A.push(e.i/t|0),A.push(g.i/t|0),il(e),e=g.next,s=g.next;continue}if(e=g,e===s){o?o===1?(e=gX(Po(e),A,t),el(e,A,t,i,n,r,2)):o===2&&IX(e,A,t,i,n,r):el(Po(e),A,t,i,n,r,1);break}}}}function sX(e){var A=e.prev,t=e,i=e.next;if(Ye(A,t,i)>=0)return!1;for(var n=A.x,r=t.x,o=i.x,s=A.y,a=t.y,g=i.y,I=nr?n>o?n:o:r>o?r:o,C=s>a?s>g?s:g:a>g?a:g,B=i.next;B!==A;){if(B.x>=I&&B.x<=c&&B.y>=l&&B.y<=C&&Os(n,s,r,a,o,g,B.x,B.y)&&Ye(B.prev,B,B.next)>=0)return!1;B=B.next}return!0}function aX(e,A,t,i){var n=e.prev,r=e,o=e.next;if(Ye(n,r,o)>=0)return!1;for(var s=n.x,a=r.x,g=o.x,I=n.y,l=r.y,c=o.y,C=sa?s>g?s:g:a>g?a:g,E=I>l?I>c?I:c:l>c?l:c,h=vd(C,B,A,t,i),f=vd(u,E,A,t,i),Q=e.prevZ,d=e.nextZ;Q&&Q.z>=h&&d&&d.z<=f;){if(Q.x>=C&&Q.x<=u&&Q.y>=B&&Q.y<=E&&Q!==n&&Q!==o&&Os(s,I,a,l,g,c,Q.x,Q.y)&&Ye(Q.prev,Q,Q.next)>=0||(Q=Q.prevZ,d.x>=C&&d.x<=u&&d.y>=B&&d.y<=E&&d!==n&&d!==o&&Os(s,I,a,l,g,c,d.x,d.y)&&Ye(d.prev,d,d.next)>=0))return!1;d=d.nextZ}for(;Q&&Q.z>=h;){if(Q.x>=C&&Q.x<=u&&Q.y>=B&&Q.y<=E&&Q!==n&&Q!==o&&Os(s,I,a,l,g,c,Q.x,Q.y)&&Ye(Q.prev,Q,Q.next)>=0)return!1;Q=Q.prevZ}for(;d&&d.z<=f;){if(d.x>=C&&d.x<=u&&d.y>=B&&d.y<=E&&d!==n&&d!==o&&Os(s,I,a,l,g,c,d.x,d.y)&&Ye(d.prev,d,d.next)>=0)return!1;d=d.nextZ}return!0}function gX(e,A,t){var i=e;do{var n=i.prev,r=i.next.next;!nu(n,r)&&eG(n,i,i.next,r)&&tl(n,r)&&tl(r,n)&&(A.push(n.i/t|0),A.push(i.i/t|0),A.push(r.i/t|0),il(i),il(i.next),i=e=r),i=i.next}while(i!==e);return Po(i)}function IX(e,A,t,i,n,r){var o=e;do{for(var s=o.next.next;s!==o.prev;){if(o.i!==s.i&&QX(o,s)){var a=tG(o,s);o=Po(o,o.next),a=Po(a,a.next),el(o,A,t,i,n,r,0),el(a,A,t,i,n,r,0);return}s=s.next}o=o.next}while(o!==e)}function lX(e,A,t,i){var n=[],r,o,s,a,g;for(r=0,o=A.length;r=t.next.y&&t.next.y!==t.y){var s=t.x+(n-t.y)*(t.next.x-t.x)/(t.next.y-t.y);if(s<=i&&s>r&&(r=s,o=t.x=t.x&&t.x>=g&&i!==t.x&&Os(no.x||t.x===o.x&&EX(o,t)))&&(o=t,l=c)),t=t.next;while(t!==a);return o}function EX(e,A){return Ye(e.prev,e,A.prev)<0&&Ye(A.next,e,e.next)<0}function uX(e,A,t,i){var n=e;do n.z===0&&(n.z=vd(n.x,n.y,A,t,i)),n.prevZ=n.prev,n.nextZ=n.next,n=n.next;while(n!==e);n.prevZ.nextZ=null,n.prevZ=null,hX(n)}function hX(e){var A,t,i,n,r,o,s,a,g=1;do{for(t=e,e=null,r=null,o=0;t;){for(o++,i=t,s=0,A=0;A0||a>0&&i;)s!==0&&(a===0||!i||t.z<=i.z)?(n=t,t=t.nextZ,s--):(n=i,i=i.nextZ,a--),r?r.nextZ=n:e=n,n.prevZ=r,r=n;t=i}r.nextZ=null,g*=2}while(o>1);return e}function vd(e,A,t,i,n){return e=(e-t)*n|0,A=(A-i)*n|0,e=(e|e<<8)&16711935,e=(e|e<<4)&252645135,e=(e|e<<2)&858993459,e=(e|e<<1)&1431655765,A=(A|A<<8)&16711935,A=(A|A<<4)&252645135,A=(A|A<<2)&858993459,A=(A|A<<1)&1431655765,e|A<<1}function fX(e){var A=e,t=e;do(A.x=(e-o)*(r-s)&&(e-o)*(i-s)>=(t-o)*(A-s)&&(t-o)*(r-s)>=(n-o)*(i-s)}function QX(e,A){return e.next.i!==A.i&&e.prev.i!==A.i&&!dX(e,A)&&(tl(e,A)&&tl(A,e)&&pX(e,A)&&(Ye(e.prev,e,A.prev)||Ye(e,A.prev,A))||nu(e,A)&&Ye(e.prev,e,e.next)>0&&Ye(A.prev,A,A.next)>0)}function Ye(e,A,t){return(A.y-e.y)*(t.x-A.x)-(A.x-e.x)*(t.y-A.y)}function nu(e,A){return e.x===A.x&&e.y===A.y}function eG(e,A,t,i){var n=Hc(Ye(e,A,t)),r=Hc(Ye(e,A,i)),o=Hc(Ye(t,i,e)),s=Hc(Ye(t,i,A));return!!(n!==r&&o!==s||n===0&&Pc(e,t,A)||r===0&&Pc(e,i,A)||o===0&&Pc(t,e,i)||s===0&&Pc(t,A,i))}function Pc(e,A,t){return A.x<=Math.max(e.x,t.x)&&A.x>=Math.min(e.x,t.x)&&A.y<=Math.max(e.y,t.y)&&A.y>=Math.min(e.y,t.y)}function Hc(e){return e>0?1:e<0?-1:0}function dX(e,A){var t=e;do{if(t.i!==e.i&&t.next.i!==e.i&&t.i!==A.i&&t.next.i!==A.i&&eG(t,t.next,e,A))return!0;t=t.next}while(t!==e);return!1}function tl(e,A){return Ye(e.prev,e,e.next)<0?Ye(e,A,e.next)>=0&&Ye(e,e.prev,A)>=0:Ye(e,A,e.prev)<0||Ye(e,e.next,A)<0}function pX(e,A){var t=e,i=!1,n=(e.x+A.x)/2,r=(e.y+A.y)/2;do t.y>r!=t.next.y>r&&t.next.y!==t.y&&n<(t.next.x-t.x)*(r-t.y)/(t.next.y-t.y)+t.x&&(i=!i),t=t.next;while(t!==e);return i}function tG(e,A){var t=new Sd(e.i,e.x,e.y),i=new Sd(A.i,A.x,A.y),n=e.next,r=A.prev;return e.next=A,A.prev=e,t.next=n,n.prev=t,i.next=t,t.prev=i,r.next=i,i.prev=r,i}function eR(e,A,t,i){var n=new Sd(e,A,t);return i?(n.next=i.next,n.prev=i,i.next.prev=n,i.next=n):(n.prev=n,n.next=n),n}function il(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 Sd(e,A,t){this.i=e,this.x=A,this.y=t,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}iu.deviation=function(e,A,t,i){var n=A&&A.length,r=n?A[0]*t:e.length,o=Math.abs(Dd(e,0,r,t));if(n)for(var s=0,a=A.length;s0&&(i+=e[n-1].length,t.holes.push(i))}return t};var yX=ry.exports;const qc=Kb.CLOCKWISE,tR=Kb.COUNTER_CLOCKWISE,dr={isClosed:!0};function mX(e){if(e=e&&e.positions||e,!Array.isArray(e)&&!ArrayBuffer.isView(e))throw new Error("invalid polygon")}function Kg(e){return"positions"in e?e.positions:e}function HC(e){return"holeIndices"in e?e.holeIndices:null}function wX(e){return Array.isArray(e[0])}function vX(e){return e.length>=1&&e[0].length>=2&&Number.isFinite(e[0][0])}function SX(e){const A=e[0],t=e[e.length-1];return A[0]===t[0]&&A[1]===t[1]&&A[2]===t[2]}function DX(e,A,t,i){for(let n=0;nr/A));let n=Kg(e);if(t){const r=n.length;n=n.slice();const o=[];for(let s=0;s2?o[a*r+2]:0;n[s*3]=g,n[s*3+1]=I,n[s*3+2]=l}}_updateVertexValid(A,{vertexStart:t,geometrySize:i}){const{positionSize:n}=this,r=this.attributes.vertexValid,o=A&&HC(A);if(A&&A.edgeTypes?r.set(A.edgeTypes,t):r.fill(1,t,t+i),o)for(let s=0;s0&&!Number.isFinite(e[0])}var nG=` +`;const tG=[0,0,0,255],gX={widthUnits:"meters",widthScale:{type:"number",min:0,value:1},widthMinPixels:{type:"number",min:0,value:0},widthMaxPixels:{type:"number",min:0,value:Number.MAX_SAFE_INTEGER},jointRounded:!1,capRounded:!1,miterLimit:{type:"number",min:0,value:4},billboard:!1,_pathType:null,getPath:{type:"accessor",value:e=>e.path},getColor:{type:"accessor",value:tG},getWidth:{type:"accessor",value:1},rounded:{deprecatedFor:["jointRounded","capRounded"]}},af={enter:(e,A)=>A.length?A.subarray(A.length-e.length):e};class tu extends gi{constructor(...A){super(...A),y(this,"state",void 0)}getShaders(){return super.getShaders({vs:sX,fs:aX,modules:[eo,to]})}get wrapLongitude(){return!1}initializeState(){this.getAttributeManager().addInstanced({positions:{size:3,vertexOffset:1,type:5130,fp64:this.use64bitPositions(),transition:af,accessor:"getPath",update:this.calculatePositions,noAlloc:!0,shaderAttributes:{instanceLeftPositions:{vertexOffset:0},instanceStartPositions:{vertexOffset:1},instanceEndPositions:{vertexOffset:2},instanceRightPositions:{vertexOffset:3}}},instanceTypes:{size:1,type:5121,update:this.calculateSegmentTypes,noAlloc:!0},instanceStrokeWidths:{size:1,accessor:"getWidth",transition:af,defaultValue:1},instanceColors:{size:this.props.colorFormat.length,type:5121,normalized:!0,accessor:"getColor",transition:af,defaultValue:tG},instancePickingColors:{size:3,type:5121,accessor:(i,{index:n,target:r})=>this.encodePickingColor(i&&i.__source?i.__source.index:n,r)}}),this.setState({pathTesselator:new oX({fp64:this.use64bitPositions()})})}updateState(A){super.updateState(A);const{props:t,changeFlags:i}=A,n=this.getAttributeManager();if(i.dataChanged||i.updateTriggersChanged&&(i.updateTriggersChanged.all||i.updateTriggersChanged.getPath)){const{pathTesselator:s}=this.state,a=t.data.attributes||{};s.updateGeometry({data:t.data,geometryBuffer:a.getPath,buffers:a,normalize:!t._pathType,loop:t._pathType==="loop",getGeometry:t.getPath,positionFormat:t.positionFormat,wrapLongitude:t.wrapLongitude,resolution:this.context.viewport.resolution,dataChanged:i.dataChanged}),this.setState({numInstances:s.instanceCount,startIndices:s.vertexStarts}),i.dataChanged||n.invalidateAll()}if(i.extensionsChanged){var o;const{gl:s}=this.context;(o=this.state.model)===null||o===void 0||o.delete(),this.state.model=this._getModel(s),n.invalidateAll()}}getPickingInfo(A){const t=super.getPickingInfo(A),{index:i}=t,{data:n}=this.props;return n[0]&&n[0].__source&&(t.object=n.find(r=>r.__source.index===i)),t}disablePickingIndex(A){const{data:t}=this.props;if(t[0]&&t[0].__source)for(let i=0;i80*t){s=g=e[0],a=I=e[1];for(var B=t;Bg&&(g=l),c>I&&(I=c);C=Math.max(g-s,I-a),C=C!==0?32767/C:0}return Al(r,o,t,s,a,C,0),o}function iG(e,A,t,i,n){var r,o;if(n===Rd(e,A,t,i)>0)for(r=A;r=A;r-=i)o=tR(r,e[r],e[r+1],o);return o&&nu(o,o.next)&&(tl(o),o=o.next),o}function Uo(e,A){if(!e)return e;A||(A=e);var t=e,i;do if(i=!1,!t.steiner&&(nu(t,t.next)||Ye(t.prev,t,t.next)===0)){if(tl(t),t=A=t.prev,t===t.next)break;i=!0}else t=t.next;while(i||t!==A);return A}function Al(e,A,t,i,n,r,o){if(!!e){!o&&r&&QX(e,i,n,r);for(var s=e,a,g;e.prev!==e.next;){if(a=e.prev,g=e.next,r?lX(e,i,n,r):IX(e)){A.push(a.i/t|0),A.push(e.i/t|0),A.push(g.i/t|0),tl(e),e=g.next,s=g.next;continue}if(e=g,e===s){o?o===1?(e=cX(Uo(e),A,t),Al(e,A,t,i,n,r,2)):o===2&&CX(e,A,t,i,n,r):Al(Uo(e),A,t,i,n,r,1);break}}}}function IX(e){var A=e.prev,t=e,i=e.next;if(Ye(A,t,i)>=0)return!1;for(var n=A.x,r=t.x,o=i.x,s=A.y,a=t.y,g=i.y,I=nr?n>o?n:o:r>o?r:o,C=s>a?s>g?s:g:a>g?a:g,B=i.next;B!==A;){if(B.x>=I&&B.x<=c&&B.y>=l&&B.y<=C&&Js(n,s,r,a,o,g,B.x,B.y)&&Ye(B.prev,B,B.next)>=0)return!1;B=B.next}return!0}function lX(e,A,t,i){var n=e.prev,r=e,o=e.next;if(Ye(n,r,o)>=0)return!1;for(var s=n.x,a=r.x,g=o.x,I=n.y,l=r.y,c=o.y,C=sa?s>g?s:g:a>g?a:g,E=I>l?I>c?I:c:l>c?l:c,h=Sd(C,B,A,t,i),f=Sd(u,E,A,t,i),Q=e.prevZ,d=e.nextZ;Q&&Q.z>=h&&d&&d.z<=f;){if(Q.x>=C&&Q.x<=u&&Q.y>=B&&Q.y<=E&&Q!==n&&Q!==o&&Js(s,I,a,l,g,c,Q.x,Q.y)&&Ye(Q.prev,Q,Q.next)>=0||(Q=Q.prevZ,d.x>=C&&d.x<=u&&d.y>=B&&d.y<=E&&d!==n&&d!==o&&Js(s,I,a,l,g,c,d.x,d.y)&&Ye(d.prev,d,d.next)>=0))return!1;d=d.nextZ}for(;Q&&Q.z>=h;){if(Q.x>=C&&Q.x<=u&&Q.y>=B&&Q.y<=E&&Q!==n&&Q!==o&&Js(s,I,a,l,g,c,Q.x,Q.y)&&Ye(Q.prev,Q,Q.next)>=0)return!1;Q=Q.prevZ}for(;d&&d.z<=f;){if(d.x>=C&&d.x<=u&&d.y>=B&&d.y<=E&&d!==n&&d!==o&&Js(s,I,a,l,g,c,d.x,d.y)&&Ye(d.prev,d,d.next)>=0)return!1;d=d.nextZ}return!0}function cX(e,A,t){var i=e;do{var n=i.prev,r=i.next.next;!nu(n,r)&&nG(n,i,i.next,r)&&el(n,r)&&el(r,n)&&(A.push(n.i/t|0),A.push(i.i/t|0),A.push(r.i/t|0),tl(i),tl(i.next),i=e=r),i=i.next}while(i!==e);return Uo(i)}function CX(e,A,t,i,n,r){var o=e;do{for(var s=o.next.next;s!==o.prev;){if(o.i!==s.i&&yX(o,s)){var a=rG(o,s);o=Uo(o,o.next),a=Uo(a,a.next),Al(o,A,t,i,n,r,0),Al(a,A,t,i,n,r,0);return}s=s.next}o=o.next}while(o!==e)}function BX(e,A,t,i){var n=[],r,o,s,a,g;for(r=0,o=A.length;r=t.next.y&&t.next.y!==t.y){var s=t.x+(n-t.y)*(t.next.x-t.x)/(t.next.y-t.y);if(s<=i&&s>r&&(r=s,o=t.x=t.x&&t.x>=g&&i!==t.x&&Js(no.x||t.x===o.x&&fX(o,t)))&&(o=t,l=c)),t=t.next;while(t!==a);return o}function fX(e,A){return Ye(e.prev,e,A.prev)<0&&Ye(A.next,e,e.next)<0}function QX(e,A,t,i){var n=e;do n.z===0&&(n.z=Sd(n.x,n.y,A,t,i)),n.prevZ=n.prev,n.nextZ=n.next,n=n.next;while(n!==e);n.prevZ.nextZ=null,n.prevZ=null,dX(n)}function dX(e){var A,t,i,n,r,o,s,a,g=1;do{for(t=e,e=null,r=null,o=0;t;){for(o++,i=t,s=0,A=0;A0||a>0&&i;)s!==0&&(a===0||!i||t.z<=i.z)?(n=t,t=t.nextZ,s--):(n=i,i=i.nextZ,a--),r?r.nextZ=n:e=n,n.prevZ=r,r=n;t=i}r.nextZ=null,g*=2}while(o>1);return e}function Sd(e,A,t,i,n){return e=(e-t)*n|0,A=(A-i)*n|0,e=(e|e<<8)&16711935,e=(e|e<<4)&252645135,e=(e|e<<2)&858993459,e=(e|e<<1)&1431655765,A=(A|A<<8)&16711935,A=(A|A<<4)&252645135,A=(A|A<<2)&858993459,A=(A|A<<1)&1431655765,e|A<<1}function pX(e){var A=e,t=e;do(A.x=(e-o)*(r-s)&&(e-o)*(i-s)>=(t-o)*(A-s)&&(t-o)*(r-s)>=(n-o)*(i-s)}function yX(e,A){return e.next.i!==A.i&&e.prev.i!==A.i&&!mX(e,A)&&(el(e,A)&&el(A,e)&&wX(e,A)&&(Ye(e.prev,e,A.prev)||Ye(e,A.prev,A))||nu(e,A)&&Ye(e.prev,e,e.next)>0&&Ye(A.prev,A,A.next)>0)}function Ye(e,A,t){return(A.y-e.y)*(t.x-A.x)-(A.x-e.x)*(t.y-A.y)}function nu(e,A){return e.x===A.x&&e.y===A.y}function nG(e,A,t,i){var n=Hc(Ye(e,A,t)),r=Hc(Ye(e,A,i)),o=Hc(Ye(t,i,e)),s=Hc(Ye(t,i,A));return!!(n!==r&&o!==s||n===0&&Pc(e,t,A)||r===0&&Pc(e,i,A)||o===0&&Pc(t,e,i)||s===0&&Pc(t,A,i))}function Pc(e,A,t){return A.x<=Math.max(e.x,t.x)&&A.x>=Math.min(e.x,t.x)&&A.y<=Math.max(e.y,t.y)&&A.y>=Math.min(e.y,t.y)}function Hc(e){return e>0?1:e<0?-1:0}function mX(e,A){var t=e;do{if(t.i!==e.i&&t.next.i!==e.i&&t.i!==A.i&&t.next.i!==A.i&&nG(t,t.next,e,A))return!0;t=t.next}while(t!==e);return!1}function el(e,A){return Ye(e.prev,e,e.next)<0?Ye(e,A,e.next)>=0&&Ye(e,e.prev,A)>=0:Ye(e,A,e.prev)<0||Ye(e,e.next,A)<0}function wX(e,A){var t=e,i=!1,n=(e.x+A.x)/2,r=(e.y+A.y)/2;do t.y>r!=t.next.y>r&&t.next.y!==t.y&&n<(t.next.x-t.x)*(r-t.y)/(t.next.y-t.y)+t.x&&(i=!i),t=t.next;while(t!==e);return i}function rG(e,A){var t=new Dd(e.i,e.x,e.y),i=new Dd(A.i,A.x,A.y),n=e.next,r=A.prev;return e.next=A,A.prev=e,t.next=n,n.prev=t,i.next=t,t.prev=i,r.next=i,i.prev=r,i}function tR(e,A,t,i){var n=new Dd(e,A,t);return i?(n.next=i.next,n.prev=i,i.next.prev=n,i.next=n):(n.prev=n,n.next=n),n}function tl(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 Dd(e,A,t){this.i=e,this.x=A,this.y=t,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}iu.deviation=function(e,A,t,i){var n=A&&A.length,r=n?A[0]*t:e.length,o=Math.abs(Rd(e,0,r,t));if(n)for(var s=0,a=A.length;s0&&(i+=e[n-1].length,t.holes.push(i))}return t};var vX=oy.exports;const qc=zb.CLOCKWISE,iR=zb.COUNTER_CLOCKWISE,Qr={isClosed:!0};function SX(e){if(e=e&&e.positions||e,!Array.isArray(e)&&!ArrayBuffer.isView(e))throw new Error("invalid polygon")}function Yg(e){return"positions"in e?e.positions:e}function HC(e){return"holeIndices"in e?e.holeIndices:null}function DX(e){return Array.isArray(e[0])}function RX(e){return e.length>=1&&e[0].length>=2&&Number.isFinite(e[0][0])}function xX(e){const A=e[0],t=e[e.length-1];return A[0]===t[0]&&A[1]===t[1]&&A[2]===t[2]}function FX(e,A,t,i){for(let n=0;nr/A));let n=Yg(e);if(t){const r=n.length;n=n.slice();const o=[];for(let s=0;s2?o[a*r+2]:0;n[s*3]=g,n[s*3+1]=I,n[s*3+2]=l}}_updateVertexValid(A,{vertexStart:t,geometrySize:i}){const{positionSize:n}=this,r=this.attributes.vertexValid,o=A&&HC(A);if(A&&A.edgeTypes?r.set(A.edgeTypes,t):r.fill(1,t,t+i),o)for(let s=0;s0&&!Number.isFinite(e[0])}var sG=` attribute vec2 vertexPositions; attribute float vertexValid; @@ -1840,7 +1840,7 @@ void calculatePosition(PolygonProps props) { } DECKGL_FILTER_COLOR(vColor, geometry); } -`,FX=`#define SHADER_NAME solid-polygon-layer-vertex-shader +`,bX=`#define SHADER_NAME solid-polygon-layer-vertex-shader attribute vec3 positions; attribute vec3 positions64Low; @@ -1849,7 +1849,7 @@ attribute vec4 fillColors; attribute vec4 lineColors; attribute vec3 pickingColors; -`.concat(nG,` +`.concat(sG,` void main(void) { PolygonProps props; @@ -1863,7 +1863,7 @@ void main(void) { calculatePosition(props); } -`),NX=`#define SHADER_NAME solid-polygon-layer-vertex-shader-side +`),GX=`#define SHADER_NAME solid-polygon-layer-vertex-shader-side #define IS_SIDE_VERTEX @@ -1876,7 +1876,7 @@ attribute vec4 instanceFillColors; attribute vec4 instanceLineColors; attribute vec3 instancePickingColors; -`.concat(nG,` +`.concat(sG,` void main(void) { PolygonProps props; @@ -1899,7 +1899,7 @@ void main(void) { calculatePosition(props); } -`),LX=`#define SHADER_NAME solid-polygon-layer-fragment-shader +`),_X=`#define SHADER_NAME solid-polygon-layer-fragment-shader precision highp float; @@ -1910,7 +1910,7 @@ void main(void) { DECKGL_FILTER_COLOR(gl_FragColor, geometry); } -`;const JB=[0,0,0,255],bX={filled:!0,extruded:!1,wireframe:!1,_normalize:!0,_windingOrder:"CW",elevationScale:{type:"number",min:0,value:1},getPolygon:{type:"accessor",value:e=>e.polygon},getElevation:{type:"accessor",value:1e3},getFillColor:{type:"accessor",value:JB},getLineColor:{type:"accessor",value:JB},material:!0},Jc={enter:(e,A)=>A.length?A.subarray(A.length-e.length):e};class ru extends gi{constructor(...A){super(...A),y(this,"state",void 0)}getShaders(A){return super.getShaders({vs:A==="top"?FX:NX,fs:LX,defines:{RING_WINDING_ORDER_CW:!this.props._normalize&&this.props._windingOrder==="CCW"?0:1},modules:[to,H9,io]})}get wrapLongitude(){return!1}initializeState(){const{gl:A,viewport:t}=this.context;let{coordinateSystem:i}=this.props;t.isGeospatial&&i===HA.DEFAULT&&(i=HA.LNGLAT),this.setState({numInstances:0,polygonTesselator:new xX({preproject:i===HA.LNGLAT&&t.projectFlat.bind(t),fp64:this.use64bitPositions(),IndexType:!A||Pp(A,De.ELEMENT_INDEX_UINT32)?Uint32Array:Uint16Array})});const n=this.getAttributeManager(),r=!0;n.remove(["instancePickingColors"]),n.add({indices:{size:1,isIndexed:!0,update:this.calculateIndices,noAlloc:r},positions:{size:3,type:5130,fp64:this.use64bitPositions(),transition:Jc,accessor:"getPolygon",update:this.calculatePositions,noAlloc:r,shaderAttributes:{positions:{vertexOffset:0,divisor:0},instancePositions:{vertexOffset:0,divisor:1},nextPositions:{vertexOffset:1,divisor:1}}},vertexValid:{size:1,divisor:1,type:5121,update:this.calculateVertexValid,noAlloc:r},elevations:{size:1,transition:Jc,accessor:"getElevation",shaderAttributes:{elevations:{divisor:0},instanceElevations:{divisor:1}}},fillColors:{size:this.props.colorFormat.length,type:5121,normalized:!0,transition:Jc,accessor:"getFillColor",defaultValue:JB,shaderAttributes:{fillColors:{divisor:0},instanceFillColors:{divisor:1}}},lineColors:{size:this.props.colorFormat.length,type:5121,normalized:!0,transition:Jc,accessor:"getLineColor",defaultValue:JB,shaderAttributes:{lineColors:{divisor:0},instanceLineColors:{divisor:1}}},pickingColors:{size:3,type:5121,accessor:(o,{index:s,target:a})=>this.encodePickingColor(o&&o.__source?o.__source.index:s,a),shaderAttributes:{pickingColors:{divisor:0},instancePickingColors:{divisor:1}}}})}getPickingInfo(A){const t=super.getPickingInfo(A),{index:i}=t,{data:n}=this.props;return n[0]&&n[0].__source&&(t.object=n.find(r=>r.__source.index===i)),t}disablePickingIndex(A){const{data:t}=this.props;if(t[0]&&t[0].__source)for(let i=0;ia.delete()),this.setState(this._getModels(this.context.gl)),r.invalidateAll()}}updateGeometry({props:A,oldProps:t,changeFlags:i}){if(i.dataChanged||i.updateTriggersChanged&&(i.updateTriggersChanged.all||i.updateTriggersChanged.getPolygon)){const{polygonTesselator:r}=this.state,o=A.data.attributes||{};r.updateGeometry({data:A.data,normalize:A._normalize,geometryBuffer:o.getPolygon,buffers:o,getGeometry:A.getPolygon,positionFormat:A.positionFormat,wrapLongitude:A.wrapLongitude,resolution:this.context.viewport.resolution,fp64:this.use64bitPositions(),dataChanged:i.dataChanged}),this.setState({numInstances:r.instanceCount,startIndices:r.vertexStarts}),i.dataChanged||this.getAttributeManager().invalidateAll()}}_getModels(A){const{id:t,filled:i,extruded:n}=this.props;let r,o;if(i){const s=this.getShaders("top");s.defines.NON_INSTANCED_MODEL=1,r=new di(A,{...s,id:"".concat(t,"-top"),drawMode:4,attributes:{vertexPositions:new Float32Array([0,1])},uniforms:{isWireframe:!1,isSideVertex:!1},vertexCount:0,isIndexed:!0})}return n&&(o=new di(A,{...this.getShaders("side"),id:"".concat(t,"-side"),geometry:new En({drawMode:1,vertexCount:4,attributes:{vertexPositions:{size:2,value:new Float32Array([1,0,0,0,0,1,1,1])}}}),instanceCount:0,isInstanced:1}),o.userData.excludeAttributes={indices:!0}),{models:[o,r].filter(Boolean),topModel:r,sideModel:o}}calculateIndices(A){const{polygonTesselator:t}=this.state;A.startIndices=t.indexStarts,A.value=t.get("indices")}calculatePositions(A){const{polygonTesselator:t}=this.state;A.startIndices=t.vertexStarts,A.value=t.get("positions")}calculateVertexValid(A){A.value=this.state.polygonTesselator.get("vertexValid")}}y(ru,"defaultProps",bX);y(ru,"layerName","SolidPolygonLayer");function rG({data:e,getIndex:A,dataRange:t,replace:i}){const{startRow:n=0,endRow:r=1/0}=t,o=e.length;let s=o,a=o;for(let c=0;cc&&C>=n&&(s=c),C>=r){a=c;break}}let g=s;const l=a-s!==i.length?e.slice(a):void 0;for(let c=0;ce.polygon},getFillColor:{type:"accessor",value:GX},getLineColor:{type:"accessor",value:oG},getLineWidth:{type:"accessor",value:1},getElevation:{type:"accessor",value:1e3},material:!0};class nl extends Ui{initializeState(){this.state={paths:[]},this.props.getLineDashArray&&Ae.removed("getLineDashArray","PathStyleExtension")()}updateState({changeFlags:A}){const t=A.dataChanged||A.updateTriggersChanged&&(A.updateTriggersChanged.all||A.updateTriggersChanged.getPolygon);if(t&&Array.isArray(A.dataChanged)){const i=this.state.paths.slice(),n=A.dataChanged.map(r=>rG({data:i,getIndex:o=>o.__source.index,dataRange:r,replace:this._getPaths(r)}));this.setState({paths:i,pathsDiff:n})}else t&&this.setState({paths:this._getPaths(),pathsDiff:null})}_getPaths(A={}){const{data:t,getPolygon:i,positionFormat:n,_normalize:r}=this.props,o=[],s=n==="XY"?2:3,{startRow:a,endRow:g}=A,{iterable:I,objectInfo:l}=Jl(t,a,g);for(const c of I){l.index++;let C=i(c,l);r&&(C=iG(C,s));const{holeIndices:B}=C,u=C.positions||C;if(B)for(let E=0;E<=B.length;E++){const h=u.slice(B[E-1]||0,B[E]||u.length);o.push(this.getSubLayerRow({path:h},c,l.index))}else o.push(this.getSubLayerRow({path:u},c,l.index))}return o}renderLayers(){const{data:A,_dataDiff:t,stroked:i,filled:n,extruded:r,wireframe:o,_normalize:s,_windingOrder:a,elevationScale:g,transitions:I,positionFormat:l}=this.props,{lineWidthUnits:c,lineWidthScale:C,lineWidthMinPixels:B,lineWidthMaxPixels:u,lineJointRounded:E,lineMiterLimit:h,lineDashJustified:f}=this.props,{getFillColor:Q,getLineColor:d,getLineWidth:w,getLineDashArray:m,getElevation:v,getPolygon:x,updateTriggers:D,material:F}=this.props,{paths:N,pathsDiff:M}=this.state,U=this.getSubLayerClass("fill",ru),P=this.getSubLayerClass("stroke",tu),W=this.shouldRenderSubLayer("fill",N)&&new U({_dataDiff:t,extruded:r,elevationScale:g,filled:n,wireframe:o,_normalize:s,_windingOrder:a,getElevation:v,getFillColor:Q,getLineColor:r&&o?d:oG,material:F,transitions:I},this.getSubLayerProps({id:"fill",updateTriggers:D&&{getPolygon:D.getPolygon,getElevation:D.getElevation,getFillColor:D.getFillColor,lineColors:r&&o,getLineColor:D.getLineColor}}),{data:A,positionFormat:l,getPolygon:x}),J=!r&&i&&this.shouldRenderSubLayer("stroke",N)&&new P({_dataDiff:M&&(()=>M),widthUnits:c,widthScale:C,widthMinPixels:B,widthMaxPixels:u,jointRounded:E,miterLimit:h,dashJustified:f,_pathType:"loop",transitions:I&&{getWidth:I.getLineWidth,getColor:I.getLineColor,getPath:I.getPolygon},getColor:this.getSubLayerAccessor(d),getWidth:this.getSubLayerAccessor(w),getDashArray:this.getSubLayerAccessor(m)},this.getSubLayerProps({id:"stroke",updateTriggers:D&&{getWidth:D.getLineWidth,getColor:D.getLineColor,getDashArray:D.getLineDashArray}}),{data:N,positionFormat:l,getPath:Z=>Z.path});return[!r&&W,J,r&&W]}}y(nl,"layerName","PolygonLayer");y(nl,"defaultProps",_X);function MX(e,A){if(!e)return null;const t="startIndices"in e?e.startIndices[A]:A,i=e.featureIds.value[t];return t!==-1?kX(e,i,t):null}function kX(e,A,t){const i={properties:{...e.properties[A]}};for(const n in e.numericProps)i.properties[n]=e.numericProps[n].value[t];return i}function TX(e,A){const t={points:null,lines:null,polygons:null};for(const i in t){const n=e[i].globalFeatureIds.value;t[i]=new Uint8ClampedArray(n.length*3);const r=[];for(let o=0;oe.polygon},getElevation:{type:"accessor",value:1e3},getFillColor:{type:"accessor",value:JB},getLineColor:{type:"accessor",value:JB},material:!0},Jc={enter:(e,A)=>A.length?A.subarray(A.length-e.length):e};class ru extends gi{constructor(...A){super(...A),y(this,"state",void 0)}getShaders(A){return super.getShaders({vs:A==="top"?bX:GX,fs:_X,defines:{RING_WINDING_ORDER_CW:!this.props._normalize&&this.props._windingOrder==="CCW"?0:1},modules:[eo,O9,to]})}get wrapLongitude(){return!1}initializeState(){const{gl:A,viewport:t}=this.context;let{coordinateSystem:i}=this.props;t.isGeospatial&&i===HA.DEFAULT&&(i=HA.LNGLAT),this.setState({numInstances:0,polygonTesselator:new LX({preproject:i===HA.LNGLAT&&t.projectFlat.bind(t),fp64:this.use64bitPositions(),IndexType:!A||Hp(A,De.ELEMENT_INDEX_UINT32)?Uint32Array:Uint16Array})});const n=this.getAttributeManager(),r=!0;n.remove(["instancePickingColors"]),n.add({indices:{size:1,isIndexed:!0,update:this.calculateIndices,noAlloc:r},positions:{size:3,type:5130,fp64:this.use64bitPositions(),transition:Jc,accessor:"getPolygon",update:this.calculatePositions,noAlloc:r,shaderAttributes:{positions:{vertexOffset:0,divisor:0},instancePositions:{vertexOffset:0,divisor:1},nextPositions:{vertexOffset:1,divisor:1}}},vertexValid:{size:1,divisor:1,type:5121,update:this.calculateVertexValid,noAlloc:r},elevations:{size:1,transition:Jc,accessor:"getElevation",shaderAttributes:{elevations:{divisor:0},instanceElevations:{divisor:1}}},fillColors:{size:this.props.colorFormat.length,type:5121,normalized:!0,transition:Jc,accessor:"getFillColor",defaultValue:JB,shaderAttributes:{fillColors:{divisor:0},instanceFillColors:{divisor:1}}},lineColors:{size:this.props.colorFormat.length,type:5121,normalized:!0,transition:Jc,accessor:"getLineColor",defaultValue:JB,shaderAttributes:{lineColors:{divisor:0},instanceLineColors:{divisor:1}}},pickingColors:{size:3,type:5121,accessor:(o,{index:s,target:a})=>this.encodePickingColor(o&&o.__source?o.__source.index:s,a),shaderAttributes:{pickingColors:{divisor:0},instancePickingColors:{divisor:1}}}})}getPickingInfo(A){const t=super.getPickingInfo(A),{index:i}=t,{data:n}=this.props;return n[0]&&n[0].__source&&(t.object=n.find(r=>r.__source.index===i)),t}disablePickingIndex(A){const{data:t}=this.props;if(t[0]&&t[0].__source)for(let i=0;ia.delete()),this.setState(this._getModels(this.context.gl)),r.invalidateAll()}}updateGeometry({props:A,oldProps:t,changeFlags:i}){if(i.dataChanged||i.updateTriggersChanged&&(i.updateTriggersChanged.all||i.updateTriggersChanged.getPolygon)){const{polygonTesselator:r}=this.state,o=A.data.attributes||{};r.updateGeometry({data:A.data,normalize:A._normalize,geometryBuffer:o.getPolygon,buffers:o,getGeometry:A.getPolygon,positionFormat:A.positionFormat,wrapLongitude:A.wrapLongitude,resolution:this.context.viewport.resolution,fp64:this.use64bitPositions(),dataChanged:i.dataChanged}),this.setState({numInstances:r.instanceCount,startIndices:r.vertexStarts}),i.dataChanged||this.getAttributeManager().invalidateAll()}}_getModels(A){const{id:t,filled:i,extruded:n}=this.props;let r,o;if(i){const s=this.getShaders("top");s.defines.NON_INSTANCED_MODEL=1,r=new di(A,{...s,id:"".concat(t,"-top"),drawMode:4,attributes:{vertexPositions:new Float32Array([0,1])},uniforms:{isWireframe:!1,isSideVertex:!1},vertexCount:0,isIndexed:!0})}return n&&(o=new di(A,{...this.getShaders("side"),id:"".concat(t,"-side"),geometry:new En({drawMode:1,vertexCount:4,attributes:{vertexPositions:{size:2,value:new Float32Array([1,0,0,0,0,1,1,1])}}}),instanceCount:0,isInstanced:1}),o.userData.excludeAttributes={indices:!0}),{models:[o,r].filter(Boolean),topModel:r,sideModel:o}}calculateIndices(A){const{polygonTesselator:t}=this.state;A.startIndices=t.indexStarts,A.value=t.get("indices")}calculatePositions(A){const{polygonTesselator:t}=this.state;A.startIndices=t.vertexStarts,A.value=t.get("positions")}calculateVertexValid(A){A.value=this.state.polygonTesselator.get("vertexValid")}}y(ru,"defaultProps",MX);y(ru,"layerName","SolidPolygonLayer");function aG({data:e,getIndex:A,dataRange:t,replace:i}){const{startRow:n=0,endRow:r=1/0}=t,o=e.length;let s=o,a=o;for(let c=0;cc&&C>=n&&(s=c),C>=r){a=c;break}}let g=s;const l=a-s!==i.length?e.slice(a):void 0;for(let c=0;ce.polygon},getFillColor:{type:"accessor",value:kX},getLineColor:{type:"accessor",value:gG},getLineWidth:{type:"accessor",value:1},getElevation:{type:"accessor",value:1e3},material:!0};class il extends Ui{initializeState(){this.state={paths:[]},this.props.getLineDashArray&&Ae.removed("getLineDashArray","PathStyleExtension")()}updateState({changeFlags:A}){const t=A.dataChanged||A.updateTriggersChanged&&(A.updateTriggersChanged.all||A.updateTriggersChanged.getPolygon);if(t&&Array.isArray(A.dataChanged)){const i=this.state.paths.slice(),n=A.dataChanged.map(r=>aG({data:i,getIndex:o=>o.__source.index,dataRange:r,replace:this._getPaths(r)}));this.setState({paths:i,pathsDiff:n})}else t&&this.setState({paths:this._getPaths(),pathsDiff:null})}_getPaths(A={}){const{data:t,getPolygon:i,positionFormat:n,_normalize:r}=this.props,o=[],s=n==="XY"?2:3,{startRow:a,endRow:g}=A,{iterable:I,objectInfo:l}=Jl(t,a,g);for(const c of I){l.index++;let C=i(c,l);r&&(C=oG(C,s));const{holeIndices:B}=C,u=C.positions||C;if(B)for(let E=0;E<=B.length;E++){const h=u.slice(B[E-1]||0,B[E]||u.length);o.push(this.getSubLayerRow({path:h},c,l.index))}else o.push(this.getSubLayerRow({path:u},c,l.index))}return o}renderLayers(){const{data:A,_dataDiff:t,stroked:i,filled:n,extruded:r,wireframe:o,_normalize:s,_windingOrder:a,elevationScale:g,transitions:I,positionFormat:l}=this.props,{lineWidthUnits:c,lineWidthScale:C,lineWidthMinPixels:B,lineWidthMaxPixels:u,lineJointRounded:E,lineMiterLimit:h,lineDashJustified:f}=this.props,{getFillColor:Q,getLineColor:d,getLineWidth:w,getLineDashArray:m,getElevation:v,getPolygon:x,updateTriggers:D,material:F}=this.props,{paths:N,pathsDiff:M}=this.state,U=this.getSubLayerClass("fill",ru),P=this.getSubLayerClass("stroke",tu),W=this.shouldRenderSubLayer("fill",N)&&new U({_dataDiff:t,extruded:r,elevationScale:g,filled:n,wireframe:o,_normalize:s,_windingOrder:a,getElevation:v,getFillColor:Q,getLineColor:r&&o?d:gG,material:F,transitions:I},this.getSubLayerProps({id:"fill",updateTriggers:D&&{getPolygon:D.getPolygon,getElevation:D.getElevation,getFillColor:D.getFillColor,lineColors:r&&o,getLineColor:D.getLineColor}}),{data:A,positionFormat:l,getPolygon:x}),J=!r&&i&&this.shouldRenderSubLayer("stroke",N)&&new P({_dataDiff:M&&(()=>M),widthUnits:c,widthScale:C,widthMinPixels:B,widthMaxPixels:u,jointRounded:E,miterLimit:h,dashJustified:f,_pathType:"loop",transitions:I&&{getWidth:I.getLineWidth,getColor:I.getLineColor,getPath:I.getPolygon},getColor:this.getSubLayerAccessor(d),getWidth:this.getSubLayerAccessor(w),getDashArray:this.getSubLayerAccessor(m)},this.getSubLayerProps({id:"stroke",updateTriggers:D&&{getWidth:D.getLineWidth,getColor:D.getLineColor,getDashArray:D.getLineDashArray}}),{data:N,positionFormat:l,getPath:Z=>Z.path});return[!r&&W,J,r&&W]}}y(il,"layerName","PolygonLayer");y(il,"defaultProps",TX);function UX(e,A){if(!e)return null;const t="startIndices"in e?e.startIndices[A]:A,i=e.featureIds.value[t];return t!==-1?PX(e,i,t):null}function PX(e,A,t){const i={properties:{...e.properties[A]}};for(const n in e.numericProps)i.properties[n]=e.numericProps[n].value[t];return i}function HX(e,A){const t={points:null,lines:null,polygons:null};for(const i in t){const n=e[i].globalFeatureIds.value;t[i]=new Uint8ClampedArray(n.length*3);const r=[];for(let o=0;oe.offsets},alphaCutoff:.001,smoothing:.1,outlineWidth:0,outlineColor:{type:"color",value:[0,0,0,255]}};class oy extends eu{constructor(...A){super(...A),y(this,"state",void 0)}getShaders(){return{...super.getShaders(),fs:UX}}initializeState(){super.initializeState(),this.getAttributeManager().addInstanced({instanceOffsets:{size:2,accessor:"getIconOffsets"},instancePickingColors:{type:5121,size:3,accessor:(t,{index:i,target:n})=>this.encodePickingColor(i,n)}})}updateState(A){super.updateState(A);const{props:t,oldProps:i}=A;let{outlineColor:n}=t;n!==i.outlineColor&&(n=n.map(r=>r/255),n[3]=Number.isFinite(n[3])?n[3]:1,this.setState({outlineColor:n})),!t.sdf&&t.outlineWidth&&Ae.warn("".concat(this.id,": fontSettings.sdf is required to render outline"))()}draw(A){const{sdf:t,smoothing:i,outlineWidth:n}=this.props,{outlineColor:r}=this.state;A.uniforms={...A.uniforms,buffer:oR,outlineBuffer:n?Math.max(i,oR*(1-n)):-1,gamma:i,sdf:Boolean(t),outlineColor:r},super.draw(A)}getInstanceOffset(A){return A?Array.from(A).flatMap(t=>super.getInstanceOffset(t)):sR}getInstanceColorMode(A){return 1}getInstanceIconFrame(A){return A?Array.from(A).flatMap(t=>super.getInstanceIconFrame(t)):sR}}y(oy,"defaultProps",PX);y(oy,"layerName","MultiIconLayer");var sy={exports:{}};sy.exports=Ol;sy.exports.default=Ol;var sa=1e20;function Ol(e,A,t,i,n,r){this.fontSize=e||24,this.buffer=A===void 0?3:A,this.cutoff=i||.25,this.fontFamily=n||"sans-serif",this.fontWeight=r||"normal",this.radius=t||8;var o=this.size=this.fontSize+this.buffer*2,s=o+this.buffer*2;this.canvas=document.createElement("canvas"),this.canvas.width=this.canvas.height=o,this.ctx=this.canvas.getContext("2d"),this.ctx.font=this.fontWeight+" "+this.fontSize+"px "+this.fontFamily,this.ctx.textAlign="left",this.ctx.fillStyle="black",this.gridOuter=new Float64Array(s*s),this.gridInner=new Float64Array(s*s),this.f=new Float64Array(s),this.z=new Float64Array(s+1),this.v=new Uint16Array(s),this.useMetrics=this.ctx.measureText("A").actualBoundingBoxLeft!==void 0,this.middle=Math.round(o/2*(navigator.userAgent.indexOf("Gecko/")>=0?1.2:1))}function HX(e,A,t,i,n,r,o){r.fill(sa,0,A*t),o.fill(0,0,A*t);for(var s=(A-i)/2,a=0;a-1);a++,r[a]=s,o[a]=g,o[a+1]=sa}for(s=0,a=0;sn&&(g=0,a++),r[l]={x:g+i,y:s+a*(t+i*2)+i,width:c,height:t},g+=c+i*2}const I=t+i*2;return{mapping:r,xOffset:g,yOffset:s+a*I,canvasHeight:KX(s+(a+1)*I)}}function sG(e,A,t,i){let n=0;for(let o=A;oi&&(os){let l=sG(e,s,a,n);g+l>i&&(oi&&(l=aG(e,s,a,i,n,r),o=r[r.length-1])),s=a,g+=l}return g}function zX(e,A,t,i,n=0,r){r===void 0&&(r=e.length);const o=[];return A==="break-all"?aG(e,n,r,t,i,o):WX(e,n,r,t,i,o),o}function jX(e,A,t,i,n,r){let o=0,s=0;for(let a=A;a0,l=[0,0],c=[0,0];let C=0,B=0,u=0;for(let E=0;E<=o;E++){const h=r[E];if((h===` -`||E===o)&&(u=E),u>B){const f=I?zX(r,t,i,n,B,u):YX;for(let Q=0;Q<=f.length;Q++){const d=Q===0?B:f[Q-1],w=Q1||a>0){const C=e.constructor;c=new C(g);for(let B=0;B=0&&this._order.splice(t,1)}_appendOrder(A){this._order.push(A)}}function ZX(){const e=[];for(let A=32;A<128;A++)e.push(String.fromCharCode(A));return e}const QI={fontFamily:"Monaco, monospace",fontWeight:"normal",characterSet:ZX(),fontSize:64,buffer:4,sdf:!1,cutoff:.25,radius:12,smoothing:.1},lR=1024,$X=.9,cR=1.2,IG=3;let OB=new gG(IG);function AZ(e,A){let t;typeof A=="string"?t=new Set(Array.from(A)):t=new Set(A);const i=OB.get(e);if(!i)return t;for(const n in i.mapping)t.has(n)&&t.delete(n);return t}function eZ(e,A){for(let t=0;t=IG,"Invalid cache limit"),OB=new gG(e)}class iZ{constructor(){y(this,"props",{...QI}),y(this,"_key",void 0),y(this,"_atlas",void 0)}get texture(){return this._atlas}get mapping(){return this._atlas&&this._atlas.mapping}get scale(){return cR}setProps(A={}){Object.assign(this.props,A);const t=this._key;this._key=this._getKey();const i=AZ(this._key,this.props.characterSet),n=OB.get(this._key);if(n&&i.size===0){this._key!==t&&(this._atlas=n);return}const r=this._generateFontAtlas(this._key,i,n);this._atlas=r,OB.set(this._key,r)}_generateFontAtlas(A,t,i){const{fontFamily:n,fontWeight:r,fontSize:o,buffer:s,sdf:a,radius:g,cutoff:I}=this.props;let l=i&&i.data;l||(l=document.createElement("canvas"),l.width=lR);const c=l.getContext("2d");CR(c,n,o,r);const{mapping:C,canvasHeight:B,xOffset:u,yOffset:E}=VX({getFontWidth:h=>c.measureText(h).width,fontHeight:o*cR,buffer:s,characterSet:t,maxCanvasWidth:lR,...i&&{mapping:i.mapping,xOffset:i.xOffset,yOffset:i.yOffset}});if(l.height!==B){const h=c.getImageData(0,0,l.width,l.height);l.height=B,c.putImageData(h,0,0)}if(CR(c,n,o,r),a){const h=new JX(o,s,g,I,n,r),f=c.getImageData(0,0,h.size,h.size);for(const Q of t)eZ(h.draw(Q),f),c.putImageData(f,C[Q].x-s,C[Q].y+s)}else for(const h of t)c.fillText(h,C[h].x,C[h].y+o*$X);return{xOffset:u,yOffset:E,mapping:C,data:l,width:l.width,height:l.height}}_getKey(){const{fontFamily:A,fontWeight:t,fontSize:i,buffer:n,sdf:r,radius:o,cutoff:s}=this.props;return r?"".concat(A," ").concat(t," ").concat(i," ").concat(n," ").concat(o," ").concat(s):"".concat(A," ").concat(t," ").concat(i," ").concat(n)}}var nZ=`#define SHADER_NAME text-background-layer-vertex-shader +`;const sR=192/256,aR=[],JX={getIconOffsets:{type:"accessor",value:e=>e.offsets},alphaCutoff:.001,smoothing:.1,outlineWidth:0,outlineColor:{type:"color",value:[0,0,0,255]}};class sy extends eu{constructor(...A){super(...A),y(this,"state",void 0)}getShaders(){return{...super.getShaders(),fs:qX}}initializeState(){super.initializeState(),this.getAttributeManager().addInstanced({instanceOffsets:{size:2,accessor:"getIconOffsets"},instancePickingColors:{type:5121,size:3,accessor:(t,{index:i,target:n})=>this.encodePickingColor(i,n)}})}updateState(A){super.updateState(A);const{props:t,oldProps:i}=A;let{outlineColor:n}=t;n!==i.outlineColor&&(n=n.map(r=>r/255),n[3]=Number.isFinite(n[3])?n[3]:1,this.setState({outlineColor:n})),!t.sdf&&t.outlineWidth&&Ae.warn("".concat(this.id,": fontSettings.sdf is required to render outline"))()}draw(A){const{sdf:t,smoothing:i,outlineWidth:n}=this.props,{outlineColor:r}=this.state;A.uniforms={...A.uniforms,buffer:sR,outlineBuffer:n?Math.max(i,sR*(1-n)):-1,gamma:i,sdf:Boolean(t),outlineColor:r},super.draw(A)}getInstanceOffset(A){return A?Array.from(A).flatMap(t=>super.getInstanceOffset(t)):aR}getInstanceColorMode(A){return 1}getInstanceIconFrame(A){return A?Array.from(A).flatMap(t=>super.getInstanceIconFrame(t)):aR}}y(sy,"defaultProps",JX);y(sy,"layerName","MultiIconLayer");var ay={exports:{}};ay.exports=Ol;ay.exports.default=Ol;var oa=1e20;function Ol(e,A,t,i,n,r){this.fontSize=e||24,this.buffer=A===void 0?3:A,this.cutoff=i||.25,this.fontFamily=n||"sans-serif",this.fontWeight=r||"normal",this.radius=t||8;var o=this.size=this.fontSize+this.buffer*2,s=o+this.buffer*2;this.canvas=document.createElement("canvas"),this.canvas.width=this.canvas.height=o,this.ctx=this.canvas.getContext("2d"),this.ctx.font=this.fontWeight+" "+this.fontSize+"px "+this.fontFamily,this.ctx.textAlign="left",this.ctx.fillStyle="black",this.gridOuter=new Float64Array(s*s),this.gridInner=new Float64Array(s*s),this.f=new Float64Array(s),this.z=new Float64Array(s+1),this.v=new Uint16Array(s),this.useMetrics=this.ctx.measureText("A").actualBoundingBoxLeft!==void 0,this.middle=Math.round(o/2*(navigator.userAgent.indexOf("Gecko/")>=0?1.2:1))}function OX(e,A,t,i,n,r,o){r.fill(oa,0,A*t),o.fill(0,0,A*t);for(var s=(A-i)/2,a=0;a-1);a++,r[a]=s,o[a]=g,o[a+1]=oa}for(s=0,a=0;sn&&(g=0,a++),r[l]={x:g+i,y:s+a*(t+i*2)+i,width:c,height:t},g+=c+i*2}const I=t+i*2;return{mapping:r,xOffset:g,yOffset:s+a*I,canvasHeight:zX(s+(a+1)*I)}}function IG(e,A,t,i){let n=0;for(let o=A;oi&&(os){let l=IG(e,s,a,n);g+l>i&&(oi&&(l=lG(e,s,a,i,n,r),o=r[r.length-1])),s=a,g+=l}return g}function ZX(e,A,t,i,n=0,r){r===void 0&&(r=e.length);const o=[];return A==="break-all"?lG(e,n,r,t,i,o):XX(e,n,r,t,i,o),o}function $X(e,A,t,i,n,r){let o=0,s=0;for(let a=A;a0,l=[0,0],c=[0,0];let C=0,B=0,u=0;for(let E=0;E<=o;E++){const h=r[E];if((h===` +`||E===o)&&(u=E),u>B){const f=I?ZX(r,t,i,n,B,u):WX;for(let Q=0;Q<=f.length;Q++){const d=Q===0?B:f[Q-1],w=Q1||a>0){const C=e.constructor;c=new C(g);for(let B=0;B=0&&this._order.splice(t,1)}_appendOrder(A){this._order.push(A)}}function eZ(){const e=[];for(let A=32;A<128;A++)e.push(String.fromCharCode(A));return e}const fI={fontFamily:"Monaco, monospace",fontWeight:"normal",characterSet:eZ(),fontSize:64,buffer:4,sdf:!1,cutoff:.25,radius:12,smoothing:.1},cR=1024,tZ=.9,CR=1.2,CG=3;let OB=new cG(CG);function iZ(e,A){let t;typeof A=="string"?t=new Set(Array.from(A)):t=new Set(A);const i=OB.get(e);if(!i)return t;for(const n in i.mapping)t.has(n)&&t.delete(n);return t}function nZ(e,A){for(let t=0;t=CG,"Invalid cache limit"),OB=new cG(e)}class oZ{constructor(){y(this,"props",{...fI}),y(this,"_key",void 0),y(this,"_atlas",void 0)}get texture(){return this._atlas}get mapping(){return this._atlas&&this._atlas.mapping}get scale(){return CR}setProps(A={}){Object.assign(this.props,A);const t=this._key;this._key=this._getKey();const i=iZ(this._key,this.props.characterSet),n=OB.get(this._key);if(n&&i.size===0){this._key!==t&&(this._atlas=n);return}const r=this._generateFontAtlas(this._key,i,n);this._atlas=r,OB.set(this._key,r)}_generateFontAtlas(A,t,i){const{fontFamily:n,fontWeight:r,fontSize:o,buffer:s,sdf:a,radius:g,cutoff:I}=this.props;let l=i&&i.data;l||(l=document.createElement("canvas"),l.width=cR);const c=l.getContext("2d");BR(c,n,o,r);const{mapping:C,canvasHeight:B,xOffset:u,yOffset:E}=jX({getFontWidth:h=>c.measureText(h).width,fontHeight:o*CR,buffer:s,characterSet:t,maxCanvasWidth:cR,...i&&{mapping:i.mapping,xOffset:i.xOffset,yOffset:i.yOffset}});if(l.height!==B){const h=c.getImageData(0,0,l.width,l.height);l.height=B,c.putImageData(h,0,0)}if(BR(c,n,o,r),a){const h=new KX(o,s,g,I,n,r),f=c.getImageData(0,0,h.size,h.size);for(const Q of t)nZ(h.draw(Q),f),c.putImageData(f,C[Q].x-s,C[Q].y+s)}else for(const h of t)c.fillText(h,C[h].x,C[h].y+o*tZ);return{xOffset:u,yOffset:E,mapping:C,data:l,width:l.width,height:l.height}}_getKey(){const{fontFamily:A,fontWeight:t,fontSize:i,buffer:n,sdf:r,radius:o,cutoff:s}=this.props;return r?"".concat(A," ").concat(t," ").concat(i," ").concat(n," ").concat(o," ").concat(s):"".concat(A," ").concat(t," ").concat(i," ").concat(n)}}var sZ=`#define SHADER_NAME text-background-layer-vertex-shader attribute vec2 positions; @@ -2038,7 +2038,7 @@ void main(void) { vLineColor = vec4(instanceLineColors.rgb, instanceLineColors.a * opacity); DECKGL_FILTER_COLOR(vLineColor, geometry); } -`,rZ=`#define SHADER_NAME text-background-layer-fragment-shader +`,aZ=`#define SHADER_NAME text-background-layer-fragment-shader precision highp float; @@ -2067,39 +2067,39 @@ void main(void) { DECKGL_FILTER_COLOR(gl_FragColor, geometry); } -`;const oZ={billboard:!0,sizeScale:1,sizeUnits:"pixels",sizeMinPixels:0,sizeMaxPixels:Number.MAX_SAFE_INTEGER,padding:{type:"array",value:[0,0,0,0]},getPosition:{type:"accessor",value:e=>e.position},getSize:{type:"accessor",value:1},getAngle:{type:"accessor",value:0},getPixelOffset:{type:"accessor",value:[0,0]},getBoundingRect:{type:"accessor",value:[0,0,0,0]},getFillColor:{type:"accessor",value:[0,0,0,255]},getLineColor:{type:"accessor",value:[0,0,0,255]},getLineWidth:{type:"accessor",value:1}};class ay extends gi{constructor(...A){super(...A),y(this,"state",void 0)}getShaders(){return super.getShaders({vs:nZ,fs:rZ,modules:[to,io]})}initializeState(){this.getAttributeManager().addInstanced({instancePositions:{size:3,type:5130,fp64:this.use64bitPositions(),transition:!0,accessor:"getPosition"},instanceSizes:{size:1,transition:!0,accessor:"getSize",defaultValue:1},instanceAngles:{size:1,transition:!0,accessor:"getAngle"},instanceRects:{size:4,accessor:"getBoundingRect"},instancePixelOffsets:{size:2,transition:!0,accessor:"getPixelOffset"},instanceFillColors:{size:4,transition:!0,normalized:!0,type:5121,accessor:"getFillColor",defaultValue:[0,0,0,255]},instanceLineColors:{size:4,transition:!0,normalized:!0,type:5121,accessor:"getLineColor",defaultValue:[0,0,0,255]},instanceLineWidths:{size:1,transition:!0,accessor:"getLineWidth",defaultValue:1}})}updateState(A){super.updateState(A);const{changeFlags:t}=A;if(t.extensionsChanged){var i;const{gl:n}=this.context;(i=this.state.model)===null||i===void 0||i.delete(),this.state.model=this._getModel(n),this.getAttributeManager().invalidateAll()}}draw({uniforms:A}){const{billboard:t,sizeScale:i,sizeUnits:n,sizeMinPixels:r,sizeMaxPixels:o,getLineWidth:s}=this.props;let{padding:a}=this.props;a.length<4&&(a=[a[0],a[1],a[0],a[1]]),this.state.model.setUniforms(A).setUniforms({billboard:t,stroked:Boolean(s),padding:a,sizeUnits:Or[n],sizeScale:i,sizeMinPixels:r,sizeMaxPixels:o}).draw()}_getModel(A){const t=[0,0,1,0,1,1,0,1];return new di(A,{...this.getShaders(),id:this.props.id,geometry:new En({drawMode:6,vertexCount:4,attributes:{positions:{size:2,value:new Float32Array(t)}}}),isInstanced:!0})}}y(ay,"defaultProps",oZ);y(ay,"layerName","TextBackgroundLayer");const BR={start:1,middle:0,end:-1},ER={top:1,center:0,bottom:-1},gf=[0,0,0,255],sZ=1,aZ={billboard:!0,sizeScale:1,sizeUnits:"pixels",sizeMinPixels:0,sizeMaxPixels:Number.MAX_SAFE_INTEGER,background:!1,getBackgroundColor:{type:"accessor",value:[255,255,255,255]},getBorderColor:{type:"accessor",value:gf},getBorderWidth:{type:"accessor",value:0},backgroundPadding:{type:"array",value:[0,0,0,0]},characterSet:{type:"object",value:QI.characterSet},fontFamily:QI.fontFamily,fontWeight:QI.fontWeight,lineHeight:sZ,outlineWidth:{type:"number",value:0,min:0},outlineColor:{type:"color",value:gf},fontSettings:{},wordBreak:"break-word",maxWidth:{type:"number",value:-1},getText:{type:"accessor",value:e=>e.text},getPosition:{type:"accessor",value:e=>e.position},getColor:{type:"accessor",value:gf},getSize:{type:"accessor",value:32},getAngle:{type:"accessor",value:0},getTextAnchor:{type:"accessor",value:"middle"},getAlignmentBaseline:{type:"accessor",value:"center"},getPixelOffset:{type:"accessor",value:[0,0]},backgroundColor:{deprecatedFor:["background","getBackgroundColor"]}};class Yl extends Ui{constructor(...A){super(...A),y(this,"state",void 0),y(this,"getBoundingRect",(t,i)=>{const n=this.state.fontAtlasManager.mapping,r=this.state.getText,{wordBreak:o,maxWidth:s,lineHeight:a,getTextAnchor:g,getAlignmentBaseline:I}=this.props,l=r(t,i)||"",{size:[c,C]}=IR(l,a,o,s,n),B=BR[typeof g=="function"?g(t,i):g],u=ER[typeof I=="function"?I(t,i):I];return[(B-1)*c/2,(u-1)*C/2,c,C]}),y(this,"getIconOffsets",(t,i)=>{const n=this.state.fontAtlasManager.mapping,r=this.state.getText,{wordBreak:o,maxWidth:s,lineHeight:a,getTextAnchor:g,getAlignmentBaseline:I}=this.props,l=r(t,i)||"",{x:c,y:C,rowWidth:B,size:[u,E]}=IR(l,a,o,s,n),h=BR[typeof g=="function"?g(t,i):g],f=ER[typeof I=="function"?I(t,i):I],Q=c.length,d=new Array(Q*2);let w=0;for(let m=0;m=0?this.props.data[A.index]:null,A}_updateFontAtlas(){const{fontSettings:A,fontFamily:t,fontWeight:i}=this.props,{fontAtlasManager:n,characterSet:r}=this.state,o={...A,characterSet:r,fontFamily:t,fontWeight:i};if(!n.mapping)return n.setProps(o),!0;for(const s in o)if(o[s]!==n.props[s])return n.setProps(o),!0;return!1}_updateText(){var A;const{data:t,characterSet:i}=this.props,n=(A=t.attributes)===null||A===void 0?void 0:A.getText;let{getText:r}=this.props,o=t.startIndices,s;const a=i==="auto"&&new Set;if(n&&o){const{texts:g,characterCount:I}=XX({...ArrayBuffer.isView(n)?{value:n}:n,length:t.length,startIndices:o,characterSet:a});s=I,r=(l,{index:c})=>g[c]}else{const{iterable:g,objectInfo:I}=Jl(t);o=[0],s=0;for(const l of g){I.index++;const c=Array.from(r(l,I)||"");a&&c.forEach(a.add,a),s+=c.length,o.push(s)}}this.setState({getText:r,startIndices:o,numInstances:s,characterSet:a||i})}renderLayers(){const{startIndices:A,numInstances:t,getText:i,fontAtlasManager:{scale:n,texture:r,mapping:o},styleVersion:s}=this.state,{data:a,_dataDiff:g,getPosition:I,getColor:l,getSize:c,getAngle:C,getPixelOffset:B,getBackgroundColor:u,getBorderColor:E,getBorderWidth:h,backgroundPadding:f,background:Q,billboard:d,fontSettings:w,outlineWidth:m,outlineColor:v,sizeScale:x,sizeUnits:D,sizeMinPixels:F,sizeMaxPixels:N,transitions:M,updateTriggers:U}=this.props,P=this.getSubLayerClass("characters",oy),W=this.getSubLayerClass("background",ay);return[Q&&new W({getFillColor:u,getLineColor:E,getLineWidth:h,padding:f,getPosition:I,getSize:c,getAngle:C,getPixelOffset:B,billboard:d,sizeScale:x/this.state.fontAtlasManager.props.fontSize,sizeUnits:D,sizeMinPixels:F,sizeMaxPixels:N,transitions:M&&{getPosition:M.getPosition,getAngle:M.getAngle,getSize:M.getSize,getFillColor:M.getBackgroundColor,getLineColor:M.getBorderColor,getLineWidth:M.getBorderWidth,getPixelOffset:M.getPixelOffset}},this.getSubLayerProps({id:"background",updateTriggers:{getPosition:U.getPosition,getAngle:U.getAngle,getSize:U.getSize,getFillColor:U.getBackgroundColor,getLineColor:U.getBorderColor,getLineWidth:U.getBorderWidth,getPixelOffset:U.getPixelOffset,getBoundingRect:{getText:U.getText,getTextAnchor:U.getTextAnchor,getAlignmentBaseline:U.getAlignmentBaseline,styleVersion:s}}}),{data:a.attributes&&a.attributes.background?{length:a.length,attributes:a.attributes.background}:a,_dataDiff:g,autoHighlight:!1,getBoundingRect:this.getBoundingRect}),new P({sdf:w.sdf,smoothing:Number.isFinite(w.smoothing)?w.smoothing:QI.smoothing,outlineWidth:m,outlineColor:v,iconAtlas:r,iconMapping:o,getPosition:I,getColor:l,getSize:c,getAngle:C,getPixelOffset:B,billboard:d,sizeScale:x*n,sizeUnits:D,sizeMinPixels:F*n,sizeMaxPixels:N*n,transitions:M&&{getPosition:M.getPosition,getAngle:M.getAngle,getColor:M.getColor,getSize:M.getSize,getPixelOffset:M.getPixelOffset}},this.getSubLayerProps({id:"characters",updateTriggers:{getIcon:U.getText,getPosition:U.getPosition,getAngle:U.getAngle,getColor:U.getColor,getSize:U.getSize,getPixelOffset:U.getPixelOffset,getIconOffsets:{getText:U.getText,getTextAnchor:U.getTextAnchor,getAlignmentBaseline:U.getAlignmentBaseline,styleVersion:s}}}),{data:a,_dataDiff:g,startIndices:A,numInstances:t,getIconOffsets:this.getIconOffsets,getIcon:i})]}static set fontAtlasCacheLimit(A){tZ(A)}}y(Yl,"defaultProps",aZ);y(Yl,"layerName","TextLayer");const qC={circle:{type:ny,props:{filled:"filled",stroked:"stroked",lineWidthMaxPixels:"lineWidthMaxPixels",lineWidthMinPixels:"lineWidthMinPixels",lineWidthScale:"lineWidthScale",lineWidthUnits:"lineWidthUnits",pointRadiusMaxPixels:"radiusMaxPixels",pointRadiusMinPixels:"radiusMinPixels",pointRadiusScale:"radiusScale",pointRadiusUnits:"radiusUnits",pointAntialiasing:"antialiasing",pointBillboard:"billboard",getFillColor:"getFillColor",getLineColor:"getLineColor",getLineWidth:"getLineWidth",getPointRadius:"getRadius"}},icon:{type:eu,props:{iconAtlas:"iconAtlas",iconMapping:"iconMapping",iconSizeMaxPixels:"sizeMaxPixels",iconSizeMinPixels:"sizeMinPixels",iconSizeScale:"sizeScale",iconSizeUnits:"sizeUnits",iconAlphaCutoff:"alphaCutoff",iconBillboard:"billboard",getIcon:"getIcon",getIconAngle:"getAngle",getIconColor:"getColor",getIconPixelOffset:"getPixelOffset",getIconSize:"getSize"}},text:{type:Yl,props:{textSizeMaxPixels:"sizeMaxPixels",textSizeMinPixels:"sizeMinPixels",textSizeScale:"sizeScale",textSizeUnits:"sizeUnits",textBackground:"background",textBackgroundPadding:"backgroundPadding",textFontFamily:"fontFamily",textFontWeight:"fontWeight",textLineHeight:"lineHeight",textMaxWidth:"maxWidth",textOutlineColor:"outlineColor",textOutlineWidth:"outlineWidth",textWordBreak:"wordBreak",textCharacterSet:"characterSet",textBillboard:"billboard",textFontSettings:"fontSettings",getText:"getText",getTextAngle:"getAngle",getTextColor:"getColor",getTextPixelOffset:"getPixelOffset",getTextSize:"getSize",getTextAnchor:"getTextAnchor",getTextAlignmentBaseline:"getAlignmentBaseline",getTextBackgroundColor:"getBackgroundColor",getTextBorderColor:"getBorderColor",getTextBorderWidth:"getBorderWidth"}}},JC={type:tu,props:{lineWidthUnits:"widthUnits",lineWidthScale:"widthScale",lineWidthMinPixels:"widthMinPixels",lineWidthMaxPixels:"widthMaxPixels",lineJointRounded:"jointRounded",lineCapRounded:"capRounded",lineMiterLimit:"miterLimit",lineBillboard:"billboard",getLineColor:"getColor",getLineWidth:"getWidth"}},Rd={type:ru,props:{extruded:"extruded",filled:"filled",wireframe:"wireframe",elevationScale:"elevationScale",material:"material",getElevation:"getElevation",getFillColor:"getFillColor",getLineColor:"getLineColor"}};function Dg({type:e,props:A}){const t={};for(const i in A)t[i]=e.defaultProps[A[i]];return t}function If(e,A){const{transitions:t,updateTriggers:i}=e.props,n={updateTriggers:{},transitions:t&&{getPosition:t.geometry}};for(const r in A){const o=A[r];let s=e.props[r];r.startsWith("get")&&(s=e.getSubLayerAccessor(s),n.updateTriggers[o]=i[r],t&&(n.transitions[o]=t[r])),n[o]=s}return n}function gZ(e){if(Array.isArray(e))return e;switch(Ae.assert(e.type,"GeoJSON does not have type"),e.type){case"Feature":return[e];case"FeatureCollection":return Ae.assert(Array.isArray(e.features),"GeoJSON does not have features array"),e.features;default:return[{geometry:e}]}}function uR(e,A,t={}){const i={pointFeatures:[],lineFeatures:[],polygonFeatures:[],polygonOutlineFeatures:[]},{startRow:n=0,endRow:r=e.length}=t;for(let o=n;o{s.push(t({geometry:{type:"Point",coordinates:l}},i,n))});break;case"LineString":a.push(t({geometry:e},i,n));break;case"MultiLineString":o.forEach(l=>{a.push(t({geometry:{type:"LineString",coordinates:l}},i,n))});break;case"Polygon":g.push(t({geometry:e},i,n)),o.forEach(l=>{I.push(t({geometry:{type:"LineString",coordinates:l}},i,n))});break;case"MultiPolygon":o.forEach(l=>{g.push(t({geometry:{type:"Polygon",coordinates:l}},i,n)),l.forEach(c=>{I.push(t({geometry:{type:"LineString",coordinates:c}},i,n))})});break}}const IZ={Point:1,MultiPoint:2,LineString:2,MultiLineString:3,Polygon:3,MultiPolygon:4};function lZ(e,A){let t=IZ[e];for(Ae.assert(t,"Unknown GeoJSON type ".concat(e));A&&--t>0;)A=A[0];return A&&Number.isFinite(A[0])}function lG(){return{points:{},lines:{},polygons:{},polygonsOutline:{}}}function Oc(e){return e.geometry.coordinates}function cZ(e,A){const t=lG(),{pointFeatures:i,lineFeatures:n,polygonFeatures:r,polygonOutlineFeatures:o}=e;return t.points.data=i,t.points._dataDiff=A.pointFeatures&&(()=>A.pointFeatures),t.points.getPosition=Oc,t.lines.data=n,t.lines._dataDiff=A.lineFeatures&&(()=>A.lineFeatures),t.lines.getPath=Oc,t.polygons.data=r,t.polygons._dataDiff=A.polygonFeatures&&(()=>A.polygonFeatures),t.polygons.getPolygon=Oc,t.polygonsOutline.data=o,t.polygonsOutline._dataDiff=A.polygonOutlineFeatures&&(()=>A.polygonOutlineFeatures),t.polygonsOutline.getPath=Oc,t}function CZ(e,A){const t=lG(),{points:i,lines:n,polygons:r}=e,o=TX(e,A);return t.points.data={length:i.positions.value.length/i.positions.size,attributes:{...i.attributes,getPosition:i.positions,instancePickingColors:{size:3,value:o.points}},properties:i.properties,numericProps:i.numericProps,featureIds:i.featureIds},t.lines.data={length:n.pathIndices.value.length-1,startIndices:n.pathIndices.value,attributes:{...n.attributes,getPath:n.positions,instancePickingColors:{size:3,value:o.lines}},properties:n.properties,numericProps:n.numericProps,featureIds:n.featureIds},t.lines._pathType="open",t.polygons.data={length:r.polygonIndices.value.length-1,startIndices:r.polygonIndices.value,attributes:{...r.attributes,getPolygon:r.positions,pickingColors:{size:3,value:o.polygons}},properties:r.properties,numericProps:r.numericProps,featureIds:r.featureIds},t.polygons._normalize=!1,r.triangles&&(t.polygons.data.attributes.indices=r.triangles.value),t.polygonsOutline.data={length:r.primitivePolygonIndices.value.length-1,startIndices:r.primitivePolygonIndices.value,attributes:{...r.attributes,getPath:r.positions,instancePickingColors:{size:3,value:o.polygons}},properties:r.properties,numericProps:r.numericProps,featureIds:r.featureIds},t.polygonsOutline._pathType="open",t}const BZ=["points","linestrings","polygons"],EZ={...Dg(qC.circle),...Dg(qC.icon),...Dg(qC.text),...Dg(JC),...Dg(Rd),stroked:!0,filled:!0,extruded:!1,wireframe:!1,iconAtlas:{type:"object",value:null},iconMapping:{type:"object",value:{}},getIcon:{type:"accessor",value:e=>e.properties.icon},getText:{type:"accessor",value:e=>e.properties.text},pointType:"circle",getRadius:{deprecatedFor:"getPointRadius"}};class gy extends Ui{initializeState(){this.state={layerProps:{},features:{}}}updateState({props:A,changeFlags:t}){if(!t.dataChanged)return;const{data:i}=this.props,n=i&&"points"in i&&"polygons"in i&&"lines"in i;this.setState({binary:n}),n?this._updateStateBinary({props:A,changeFlags:t}):this._updateStateJSON({props:A,changeFlags:t})}_updateStateBinary({props:A,changeFlags:t}){const i=CZ(A.data,this.encodePickingColor);this.setState({layerProps:i})}_updateStateJSON({props:A,changeFlags:t}){const i=gZ(A.data),n=this.getSubLayerRow.bind(this);let r={};const o={};if(Array.isArray(t.dataChanged)){const a=this.state.features;for(const g in a)r[g]=a[g].slice(),o[g]=[];for(const g of t.dataChanged){const I=uR(i,n,g);for(const l in a)o[l].push(rG({data:r[l],getIndex:c=>c.__source.index,dataRange:g,replace:I[l]}))}}else r=uR(i,n);const s=cZ(r,o);this.setState({features:r,featuresDiff:o,layerProps:s})}getPickingInfo(A){const t=super.getPickingInfo(A),{index:i,sourceLayer:n}=t;return t.featureType=BZ.find(r=>n.id.startsWith("".concat(this.id,"-").concat(r,"-"))),i>=0&&n.id.startsWith("".concat(this.id,"-points-text"))&&this.state.binary&&(t.index=this.props.data.points.globalFeatureIds.value[i]),t}_updateAutoHighlight(A){const t="".concat(this.id,"-points-"),i=A.featureType==="points";for(const n of this.getSubLayers())n.id.startsWith(t)===i&&n.updateAutoHighlight(A)}_renderPolygonLayer(){const{extruded:A,wireframe:t}=this.props,{layerProps:i}=this.state,n="polygons-fill",r=this.shouldRenderSubLayer(n,i.polygons.data)&&this.getSubLayerClass(n,Rd.type);if(r){const o=If(this,Rd.props),s=A&&t;return s||delete o.getLineColor,o.updateTriggers.lineColors=s,new r(o,this.getSubLayerProps({id:n,updateTriggers:o.updateTriggers}),i.polygons)}return null}_renderLineLayers(){const{extruded:A,stroked:t}=this.props,{layerProps:i}=this.state,n="polygons-stroke",r="linestrings",o=!A&&t&&this.shouldRenderSubLayer(n,i.polygonsOutline.data)&&this.getSubLayerClass(n,JC.type),s=this.shouldRenderSubLayer(r,i.lines.data)&&this.getSubLayerClass(r,JC.type);if(o||s){const a=If(this,JC.props);return[o&&new o(a,this.getSubLayerProps({id:n,updateTriggers:a.updateTriggers}),i.polygonsOutline),s&&new s(a,this.getSubLayerProps({id:r,updateTriggers:a.updateTriggers}),i.lines)]}return null}_renderPointLayers(){const{pointType:A}=this.props,{layerProps:t,binary:i}=this.state;let{highlightedObjectIndex:n}=this.props;!i&&Number.isFinite(n)&&(n=t.points.data.findIndex(s=>s.__source.index===n));const r=new Set(A.split("+")),o=[];for(const s of r){const a="points-".concat(s),g=qC[s],I=g&&this.shouldRenderSubLayer(a,t.points.data)&&this.getSubLayerClass(a,g.type);if(I){const l=If(this,g.props);let c=t.points;if(s==="text"&&i){const{instancePickingColors:C,...B}=c.data.attributes;c={...c,data:{...c.data,attributes:B}}}o.push(new I(l,this.getSubLayerProps({id:a,updateTriggers:l.updateTriggers,highlightedObjectIndex:n}),c))}}return o}renderLayers(){const{extruded:A}=this.props,t=this._renderPolygonLayer(),i=this._renderLineLayers(),n=this._renderPointLayers();return[!A&&t,i,n,A&&t]}getSubLayerAccessor(A){const{binary:t}=this.state;return!t||typeof A!="function"?super.getSubLayerAccessor(A):(i,n)=>{const{data:r,index:o}=n,s=MX(r,o);return A(s,n)}}}y(gy,"layerName","GeoJsonLayer");y(gy,"defaultProps",EZ);class uZ{constructor(A){y(this,"index",void 0),y(this,"isVisible",void 0),y(this,"isSelected",void 0),y(this,"parent",void 0),y(this,"children",void 0),y(this,"content",void 0),y(this,"state",void 0),y(this,"layers",void 0),y(this,"id",void 0),y(this,"bbox",void 0),y(this,"zoom",void 0),y(this,"userData",void 0),y(this,"_abortController",void 0),y(this,"_loader",void 0),y(this,"_loaderId",void 0),y(this,"_isLoaded",void 0),y(this,"_isCancelled",void 0),y(this,"_needsReload",void 0),this.index=A,this.isVisible=!1,this.isSelected=!1,this.parent=null,this.children=[],this.content=null,this._loader=void 0,this._abortController=null,this._loaderId=0,this._isLoaded=!1,this._isCancelled=!1,this._needsReload=!1}get data(){return this.isLoading&&this._loader?this._loader.then(()=>this.data):this.content}get isLoaded(){return this._isLoaded&&!this._needsReload}get isLoading(){return Boolean(this._loader)&&!this._isCancelled}get needsReload(){return this._needsReload||this._isCancelled}get byteLength(){const A=this.content?this.content.byteLength:0;return Number.isFinite(A)||Ae.error("byteLength not defined in tile data")(),A}async _loadData({getData:A,requestScheduler:t,onLoad:i,onError:n}){const{index:r,id:o,bbox:s,userData:a,zoom:g}=this,I=this._loaderId;this._abortController=new AbortController;const{signal:l}=this._abortController,c=await t.scheduleRequest(this,u=>u.isSelected?1:-1);if(!c){this._isCancelled=!0;return}if(this._isCancelled){c.done();return}let C=null,B;try{C=await A({index:r,id:o,bbox:s,userData:a,zoom:g,signal:l})}catch(u){B=u||!0}finally{c.done()}if(I===this._loaderId){if(this._loader=void 0,this.content=C,this._isCancelled&&!C){this._isLoaded=!1;return}this._isLoaded=!0,this._isCancelled=!1,B?n(B,this):i(this)}}loadData(A){return this._isLoaded=!1,this._isCancelled=!1,this._needsReload=!1,this._loaderId++,this._loader=this._loadData(A),this._loader}setNeedsReload(){this.isLoading&&(this.abort(),this._loader=void 0),this._needsReload=!0}abort(){var A;this.isLoaded||(this._isCancelled=!0,(A=this._abortController)===null||A===void 0||A.abort())}}const xt={OUTSIDE:-1,INTERSECTING:0,INSIDE:1},fR=new hA,hZ=new hA;class Iy{constructor(A=[0,0,0],t=[0,0,0],i){y(this,"center",void 0),y(this,"halfDiagonal",void 0),y(this,"minimum",void 0),y(this,"maximum",void 0),i=i||fR.copy(A).add(t).scale(.5),this.center=new hA(i),this.halfDiagonal=new hA(t).subtract(this.center),this.minimum=new hA(A),this.maximum=new hA(t)}clone(){return new Iy(this.minimum,this.maximum,this.center)}equals(A){return this===A||Boolean(A)&&this.minimum.equals(A.minimum)&&this.maximum.equals(A.maximum)}transform(A){return this.center.transformAsPoint(A),this.halfDiagonal.transform(A),this.minimum.transform(A),this.maximum.transform(A),this}intersectPlane(A){const{halfDiagonal:t}=this,i=hZ.from(A.normal),n=t.x*Math.abs(i.x)+t.y*Math.abs(i.y)+t.z*Math.abs(i.z),r=this.center.dot(i)+A.distance;return r-n>0?xt.INSIDE:r+n<0?xt.OUTSIDE:xt.INTERSECTING}distanceTo(A){return Math.sqrt(this.distanceSquaredTo(A))}distanceSquaredTo(A){const t=fR.from(A).subtract(this.center),{halfDiagonal:i}=this;let n=0,r;return r=Math.abs(t.x)-i.x,r>0&&(n+=r*r),r=Math.abs(t.y)-i.y,r>0&&(n+=r*r),r=Math.abs(t.z)-i.z,r>0&&(n+=r*r),n}}const Rg=new hA,QR=new hA;class ly{constructor(A=[0,0,0],t=0){y(this,"center",void 0),y(this,"radius",void 0),this.radius=-0,this.center=new hA,this.fromCenterRadius(A,t)}fromCenterRadius(A,t){return this.center.from(A),this.radius=t,this}fromCornerPoints(A,t){return t=Rg.from(t),this.center=new hA().from(A).add(t).scale(.5),this.radius=this.center.distance(t),this}equals(A){return this===A||Boolean(A)&&this.center.equals(A.center)&&this.radius===A.radius}clone(){return new ly(this.center,this.radius)}union(A){const t=this.center,i=this.radius,n=A.center,r=A.radius,o=Rg.copy(n).subtract(t),s=o.magnitude();if(i>=s+r)return this.clone();if(r>=s+i)return A.clone();const a=(i+s+r)*.5;return QR.copy(o).scale((-i+a)/s).add(t),this.center.copy(QR),this.radius=a,this}expand(A){const i=Rg.from(A).subtract(this.center).magnitude();return i>this.radius&&(this.radius=i),this}transform(A){this.center.transform(A);const t=Y6(Rg,A);return this.radius=Math.max(t[0],Math.max(t[1],t[2]))*this.radius,this}distanceSquaredTo(A){const t=this.distanceTo(A);return t*t}distanceTo(A){const i=Rg.from(A).subtract(this.center);return Math.max(0,i.len()-this.radius)}intersectPlane(A){const t=this.center,i=this.radius,r=A.normal.dot(t)+A.distance;return r<-i?xt.OUTSIDE:r=a?xt.INSIDE:xt.INTERSECTING}distanceTo(A){return Math.sqrt(this.distanceSquaredTo(A))}distanceSquaredTo(A){const t=QZ.from(A).subtract(this.center),i=this.halfAxes,n=i.getColumn(0,Yc),r=i.getColumn(1,Kc),o=i.getColumn(2,Vc),s=n.magnitude(),a=r.magnitude(),g=o.magnitude();n.normalize(),r.normalize(),o.normalize();let I=0,l;return l=Math.abs(t.dot(n))-s,l>0&&(I+=l*l),l=Math.abs(t.dot(r))-a,l>0&&(I+=l*l),l=Math.abs(t.dot(o))-g,l>0&&(I+=l*l),I}computePlaneDistances(A,t,i=[-0,-0]){let n=Number.POSITIVE_INFINITY,r=Number.NEGATIVE_INFINITY;const o=this.center,s=this.halfAxes,a=s.getColumn(0,Yc),g=s.getColumn(1,Kc),I=s.getColumn(2,Vc),l=dZ.copy(a).add(g).add(I).add(o),c=pZ.copy(l).subtract(A);let C=t.dot(c);return n=Math.min(C,n),r=Math.max(C,r),l.copy(o).add(a).add(g).subtract(I),c.copy(l).subtract(A),C=t.dot(c),n=Math.min(C,n),r=Math.max(C,r),l.copy(o).add(a).subtract(g).add(I),c.copy(l).subtract(A),C=t.dot(c),n=Math.min(C,n),r=Math.max(C,r),l.copy(o).add(a).subtract(g).subtract(I),c.copy(l).subtract(A),C=t.dot(c),n=Math.min(C,n),r=Math.max(C,r),o.copy(l).subtract(a).add(g).add(I),c.copy(l).subtract(A),C=t.dot(c),n=Math.min(C,n),r=Math.max(C,r),o.copy(l).subtract(a).add(g).subtract(I),c.copy(l).subtract(A),C=t.dot(c),n=Math.min(C,n),r=Math.max(C,r),o.copy(l).subtract(a).subtract(g).add(I),c.copy(l).subtract(A),C=t.dot(c),n=Math.min(C,n),r=Math.max(C,r),o.copy(l).subtract(a).subtract(g).subtract(I),c.copy(l).subtract(A),C=t.dot(c),n=Math.min(C,n),r=Math.max(C,r),i[0]=n,i[1]=r,i}transform(A){this.center.transformAsPoint(A);const t=this.halfAxes.getColumn(0,Yc);t.transformAsPoint(A);const i=this.halfAxes.getColumn(1,Kc);i.transformAsPoint(A);const n=this.halfAxes.getColumn(2,Vc);return n.transformAsPoint(A),this.halfAxes=new Qt([...t,...i,...n]),this}getTransform(){throw new Error("not implemented")}}const dR=new hA,pR=new hA;class Ho{constructor(A=[0,0,1],t=0){y(this,"normal",void 0),y(this,"distance",void 0),this.normal=new hA,this.distance=-0,this.fromNormalDistance(A,t)}fromNormalDistance(A,t){return jI(Number.isFinite(t)),this.normal.from(A).normalize(),this.distance=t,this}fromPointNormal(A,t){A=dR.from(A),this.normal.from(t).normalize();const i=-this.normal.dot(A);return this.distance=i,this}fromCoefficients(A,t,i,n){return this.normal.set(A,t,i),jI(ln(this.normal.len(),1)),this.distance=n,this}clone(){return new Ho(this.normal,this.distance)}equals(A){return ln(this.distance,A.distance)&&ln(this.normal,A.normal)}getPointDistance(A){return this.normal.dot(A)+this.distance}transform(A){const t=pR.copy(this.normal).transformAsVector(A).normalize(),i=this.normal.scale(-this.distance).transform(A);return this.fromPointNormal(i,t)}projectPointOntoPlane(A,t=[0,0,0]){A=dR.from(A);const i=this.getPointDistance(A),n=pR.copy(this.normal).scale(i);return A.subtract(n).to(t)}}const yR=[new hA([1,0,0]),new hA([0,1,0]),new hA([0,0,1])],mR=new hA,yZ=new hA;new Ho(new hA(1,0,0),0);class Gn{constructor(A=[]){y(this,"planes",void 0),this.planes=A}fromBoundingSphere(A){this.planes.length=2*yR.length;const t=A.center,i=A.radius;let n=0;for(const r of yR){let o=this.planes[n],s=this.planes[n+1];o||(o=this.planes[n]=new Ho),s||(s=this.planes[n+1]=new Ho);const a=mR.copy(r).scale(-i).add(t);-r.dot(a),o.fromPointNormal(a,r);const g=mR.copy(r).scale(i).add(t),I=yZ.copy(r).negate();-I.dot(g),s.fromPointNormal(g,I),n+=2}return this}computeVisibility(A){let t=xt.INSIDE;for(const i of this.planes)switch(A.intersectPlane(i)){case xt.OUTSIDE:return xt.OUTSIDE;case xt.INTERSECTING:t=xt.INTERSECTING;break}return t}computeVisibilityWithPlaneMask(A,t){if(jI(Number.isFinite(t),"parentPlaneMask is required."),t===Gn.MASK_OUTSIDE||t===Gn.MASK_INSIDE)return t;let i=Gn.MASK_INSIDE;const n=this.planes;for(let r=0;ra;)RZ(s,Wc),wR.copy(Wc).transpose(),s.multiplyRight(Wc),s.multiplyLeft(wR),o.multiplyRight(Wc),++n>2&&(++r,n=0);return A.unitary=o.toTarget(A.unitary),A.diagonal=s.toTarget(A.diagonal),A}function SZ(e){let A=0;for(let t=0;t<9;++t){const i=e[t];A+=i*i}return Math.sqrt(A)}const xd=[1,0,0],Fd=[2,2,1];function DZ(e){let A=0;for(let t=0;t<3;++t){const i=e[Zi.getElementIndex(Fd[t],xd[t])];A+=2*i*i}return Math.sqrt(A)}function RZ(e,A){const t=ab.EPSILON15;let i=0,n=1;for(let g=0;g<3;++g){const I=Math.abs(e[Zi.getElementIndex(Fd[g],xd[g])]);I>i&&(n=g,i=I)}const r=xd[n],o=Fd[n];let s=1,a=0;if(Math.abs(e[Zi.getElementIndex(o,r)])>t){const g=e[Zi.getElementIndex(o,o)],I=e[Zi.getElementIndex(r,r)],l=e[Zi.getElementIndex(o,r)],c=(g-I)/2/l;let C;c<0?C=-1/(-c+Math.sqrt(1+c*c)):C=1/(c+Math.sqrt(1+c*c)),s=1/Math.sqrt(1+C*C),a=C*s}return Qt.IDENTITY.to(A),A[Zi.getElementIndex(r,r)]=A[Zi.getElementIndex(o,o)]=s,A[Zi.getElementIndex(o,r)]=a,A[Zi.getElementIndex(r,o)]=-a,A}const gr=new hA,xZ=new hA,FZ=new hA,NZ=new hA,LZ=new hA,bZ=new Qt,GZ={diagonal:new Qt,unitary:new Qt};function _Z(e,A=new cy){if(!e||e.length===0)return A.halfAxes=new Qt([0,0,0,0,0,0,0,0,0]),A.center=new hA,A;const t=e.length,i=new hA(0,0,0);for(const D of e)i.add(D);const n=1/t;i.multiplyByScalar(n);let r=0,o=0,s=0,a=0,g=0,I=0;for(const D of e){const F=gr.copy(D).subtract(i);r+=F.x*F.x,o+=F.x*F.y,s+=F.x*F.z,a+=F.y*F.y,g+=F.y*F.z,I+=F.z*F.z}r*=n,o*=n,s*=n,a*=n,g*=n,I*=n;const l=bZ;l[0]=r,l[1]=o,l[2]=s,l[3]=o,l[4]=a,l[5]=g,l[6]=s,l[7]=g,l[8]=I;const{unitary:c}=vZ(l,GZ),C=A.halfAxes.copy(c);let B=C.getColumn(0,FZ),u=C.getColumn(1,NZ),E=C.getColumn(2,LZ),h=-Number.MAX_VALUE,f=-Number.MAX_VALUE,Q=-Number.MAX_VALUE,d=Number.MAX_VALUE,w=Number.MAX_VALUE,m=Number.MAX_VALUE;for(const D of e)gr.copy(D),h=Math.max(gr.dot(B),h),f=Math.max(gr.dot(u),f),Q=Math.max(gr.dot(E),Q),d=Math.min(gr.dot(B),d),w=Math.min(gr.dot(u),w),m=Math.min(gr.dot(E),m);B=B.multiplyByScalar(.5*(d+h)),u=u.multiplyByScalar(.5*(w+f)),E=E.multiplyByScalar(.5*(m+Q)),A.center.copy(B).add(u).add(E);const v=xZ.set(h-d,f-w,Q-m).multiplyByScalar(.5),x=new Qt([v[0],0,0,0,v[1],0,0,0,v[2]]);return A.halfAxes.multiplyRight(x),A}const Ys=512,vR=3,cG=[[.5,.5],[0,0],[0,1],[1,0],[1,1]],CG=cG.concat([[0,.5],[.5,0],[1,.5],[.5,1]]),MZ=CG.concat([[.25,.5],[.75,.5]]);class Ks{constructor(A,t,i){y(this,"x",void 0),y(this,"y",void 0),y(this,"z",void 0),y(this,"childVisible",void 0),y(this,"selected",void 0),y(this,"_children",void 0),this.x=A,this.y=t,this.z=i}get children(){if(!this._children){const A=this.x*2,t=this.y*2,i=this.z+1;this._children=[new Ks(A,t,i),new Ks(A,t+1,i),new Ks(A+1,t,i),new Ks(A+1,t+1,i)]}return this._children}update(A){const{viewport:t,cullingVolume:i,elevationBounds:n,minZ:r,maxZ:o,bounds:s,offset:a,project:g}=A,I=this.getBoundingVolume(n,a,g);if(s&&!this.insideBounds(s)||i.computeVisibility(I)<0)return!1;if(!this.childVisible){let{z:c}=this;if(c=r){const C=I.distanceTo(t.cameraPosition)*t.scale/t.height;c+=Math.floor(Math.log2(C))}if(c>=o)return this.selected=!0,!0}this.selected=!1,this.childVisible=!0;for(const c of this.children)c.update(A);return!0}getSelected(A=[]){if(this.selected&&A.push(this),this._children)for(const t of this._children)t.getSelected(A);return A}insideBounds([A,t,i,n]){const r=Math.pow(2,this.z),o=Ys/r;return this.x*oA&&(this.y+1)*o>t}getBoundingVolume(A,t,i){if(i){const a=this.z<1?MZ:this.z<2?CG:cG,g=[];for(const I of a){const l=Nd(this.x+I[0],this.y+I[1],this.z);l[2]=A[0],g.push(i(l)),A[0]!==A[1]&&(l[2]=A[1],g.push(i(l)))}return _Z(g)}const n=Math.pow(2,this.z),r=Ys/n,o=this.x*r+t*Ys,s=Ys-(this.y+1)*r;return new Iy([o,s,A[0]],[o+r,s+r,A[1]])}}function kZ(e,A,t,i){const n=e instanceof lj&&e.resolution?e.projectPosition:null,r=Object.values(e.getFrustumPlanes()).map(({normal:C,distance:B})=>new Ho(C.clone().negate(),B)),o=new Gn(r),s=e.distanceScales.unitsPerMeter[2],a=t&&t[0]*s||0,g=t&&t[1]*s||0,I=e instanceof Cn&&e.pitch<=60?A:0;if(i){const[C,B,u,E]=i,h=Yr([C,E]),f=Yr([u,B]);i=[h[0],Ys-h[1],f[0],Ys-f[1]]}const l=new Ks(0,0,0),c={viewport:e,project:n,cullingVolume:o,elevationBounds:[a,g],minZ:I,maxZ:A,bounds:i,offset:0};if(l.update(c),e instanceof Cn&&e.subViewports&&e.subViewports.length>1){for(c.offset=-1;l.update(c)&&!(--c.offset<-vR););for(c.offset=1;l.update(c)&&!(++c.offset>vR););}return l.getSelected()}const qn=512,TZ=[-1/0,-1/0,1/0,1/0],UZ={type:"url",value:null,validate:(e,A)=>A.optional&&e===null||typeof e=="string"||Array.isArray(e)&&e.every(t=>typeof t=="string"),equals:(e,A)=>{if(e===A)return!0;if(!Array.isArray(e)||!Array.isArray(A))return!1;const t=e.length;if(t!==A.length)return!1;for(let i=0;in[0])),Math.min(...t.map(n=>n[1])),Math.max(...t.map(n=>n[0])),Math.max(...t.map(n=>n[1]))]}function PZ(e){return Math.abs(e.split("").reduce((A,t)=>(A<<5)-A+t.charCodeAt(0)|0,0))}function HZ(e,A){if(!e||!e.length)return null;const{index:t,id:i}=A;if(Array.isArray(e)){const r=PZ(i)%e.length;e=e[r]}let n=e;for(const r of Object.keys(t)){const o=new RegExp("{".concat(r,"}"),"g");n=n.replace(o,String(t[r]))}return Number.isInteger(t.y)&&Number.isInteger(t.z)&&(n=n.replace(/\{-y\}/g,String(Math.pow(2,t.z)-t.y-1))),n}function qZ(e,A,t){let i;if(A&&A.length===2){const[n,r]=A,o=e.getBounds({z:n}),s=e.getBounds({z:r});i=[Math.min(o[0],s[0]),Math.min(o[1],s[1]),Math.max(o[2],s[2]),Math.max(o[3],s[3])]}else i=e.getBounds();return e.isGeospatial?[Math.max(i[0],t[0]),Math.max(i[1],t[1]),Math.min(i[2],t[2]),Math.min(i[3],t[3])]:[Math.max(Math.min(i[0],t[2]),t[0]),Math.max(Math.min(i[1],t[3]),t[1]),Math.min(Math.max(i[2],t[0]),t[2]),Math.min(Math.max(i[3],t[1]),t[3])]}function YB({viewport:e,z:A,cullRect:t}){const i=t.x-e.x,n=t.y-e.y,{width:r,height:o}=t;if(!Array.isArray(A)){const g={targetZ:A||0},I=e.unproject([i,n],g),l=e.unproject([i+r,n],g),c=e.unproject([i,n+o],g),C=e.unproject([i+r,n+o],g);return[Math.min(I[0],l[0],c[0],C[0]),Math.min(I[1],l[1],c[1],C[1]),Math.max(I[0],l[0],c[0],C[0]),Math.max(I[1],l[1],c[1],C[1])]}const s=YB({viewport:e,z:A[0],cullRect:t}),a=YB({viewport:e,z:A[1],cullRect:t});return[Math.min(s[0],a[0]),Math.min(s[1],a[1]),Math.max(s[2],a[2]),Math.max(s[3],a[3])]}function JZ(e,A,t){return t?BG(e,t).map(n=>n*A/qn):e.map(i=>i*A/qn)}function Cy(e,A){return Math.pow(2,e)*qn/A}function Nd(e,A,t){const i=Cy(t,qn),n=e/i*360-180,r=Math.PI-2*Math.PI*A/i,o=180/Math.PI*Math.atan(.5*(Math.exp(r)-Math.exp(-r)));return[n,o]}function SR(e,A,t,i){const n=Cy(t,i);return[e/n*qn,A/n*qn]}function OZ(e,A,t,i,n=qn){if(e.isGeospatial){const[g,I]=Nd(A,t,i),[l,c]=Nd(A+1,t+1,i);return{west:g,north:I,east:l,south:c}}const[r,o]=SR(A,t,i,n),[s,a]=SR(A+1,t+1,i,n);return{left:r,top:o,right:s,bottom:a}}function YZ(e,A,t,i,n){const r=qZ(e,null,i),o=Cy(A,t),[s,a,g,I]=JZ(r,o,n),l=[];for(let c=Math.floor(s);cA&&(g=A);let I=n;return o&&s&&n&&!e.isGeospatial&&(I=BG(n,o)),e.isGeospatial?kZ(e,g,i,n):YZ(e,g,r,I||TZ,s)}const DR=1,ou=2,VZ="never",WZ="no-overlap",By="best-available",zZ=5,jZ={[By]:ZZ,[WZ]:$Z,[VZ]:()=>{}};class XZ{constructor(A){y(this,"opts",void 0),y(this,"_requestScheduler",void 0),y(this,"_cache",void 0),y(this,"_dirty",void 0),y(this,"_tiles",void 0),y(this,"_cacheByteSize",void 0),y(this,"_viewport",void 0),y(this,"_zRange",void 0),y(this,"_selectedTiles",void 0),y(this,"_frameNumber",void 0),y(this,"_modelMatrix",void 0),y(this,"_modelMatrixInverse",void 0),y(this,"_maxZoom",void 0),y(this,"_minZoom",void 0),y(this,"onTileLoad",void 0),y(this,"_getCullBounds",Ul(YB)),this.opts=A,this.onTileLoad=t=>{this.opts.onTileLoad(t),this.opts.maxCacheByteSize&&(this._cacheByteSize+=t.byteLength,this._resizeCache())},this._requestScheduler=new Uq({maxRequests:A.maxRequests,throttleRequests:A.maxRequests>0}),this._cache=new Map,this._tiles=[],this._dirty=!1,this._cacheByteSize=0,this._viewport=null,this._selectedTiles=null,this._frameNumber=0,this._modelMatrix=new fe,this._modelMatrixInverse=new fe,this.setOptions(A)}get tiles(){return this._tiles}get selectedTiles(){return this._selectedTiles}get isLoaded(){return this._selectedTiles!==null&&this._selectedTiles.every(A=>A.isLoaded)}get needsReload(){return this._selectedTiles!==null&&this._selectedTiles.some(A=>A.needsReload)}setOptions(A){Object.assign(this.opts,A),Number.isFinite(A.maxZoom)&&(this._maxZoom=Math.floor(A.maxZoom)),Number.isFinite(A.minZoom)&&(this._minZoom=Math.ceil(A.minZoom))}finalize(){for(const A of this._cache.values())A.isLoading&&A.abort();this._cache.clear(),this._tiles=[],this._selectedTiles=null}reloadAll(){for(const A of this._cache.keys()){const t=this._cache.get(A);!this._selectedTiles||!this._selectedTiles.includes(t)?this._cache.delete(A):t.setNeedsReload()}}update(A,{zRange:t,modelMatrix:i}={}){const n=new fe(i),r=!n.equals(this._modelMatrix);if(!this._viewport||!A.equals(this._viewport)||!ln(this._zRange,t)||r){r&&(this._modelMatrixInverse=n.clone().invert(),this._modelMatrix=n),this._viewport=A,this._zRange=t;const s=this.getTileIndices({viewport:A,maxZoom:this._maxZoom,minZoom:this._minZoom,zRange:t,modelMatrix:this._modelMatrix,modelMatrixInverse:this._modelMatrixInverse});this._selectedTiles=s.map(a=>this._getTile(a,!0)),this._dirty&&this._rebuildTree()}else this.needsReload&&(this._selectedTiles=this._selectedTiles.map(s=>this._getTile(s.index,!0)));const o=this.updateTileStates();return this._pruneRequests(),this._dirty&&this._resizeCache(),o&&this._frameNumber++,this._frameNumber}isTileVisible(A,t){if(!A.isVisible)return!1;if(t&&this._viewport){const[i,n,r,o]=YB({viewport:this._viewport,z:this._zRange,cullRect:t}),{bbox:s}=A;if("west"in s)return s.westi&&s.southn;const a=Math.min(s.top,s.bottom),g=Math.max(s.top,s.bottom);return s.lefti&&an}return!0}getTileIndices({viewport:A,maxZoom:t,minZoom:i,zRange:n,modelMatrix:r,modelMatrixInverse:o}){const{tileSize:s,extent:a,zoomOffset:g}=this.opts;return KZ({viewport:A,maxZoom:t,minZoom:i,zRange:n,tileSize:s,extent:a,modelMatrix:r,modelMatrixInverse:o,zoomOffset:g})}getTileId(A){return"".concat(A.x,"-").concat(A.y,"-").concat(A.z)}getTileZoom(A){return A.z}getTileMetadata(A){const{tileSize:t}=this.opts;return{bbox:OZ(this._viewport,A.x,A.y,A.z,t)}}getParentIndex(A){const t=Math.floor(A.x/2),i=Math.floor(A.y/2),n=A.z-1;return{x:t,y:i,z:n}}updateTileStates(){const A=this.opts.refinementStrategy||By,t=new Array(this._cache.size);let i=0;for(const n of this._cache.values())t[i++]=n.isVisible,n.isSelected=!1,n.isVisible=!1;for(const n of this._selectedTiles)n.isSelected=!0,n.isVisible=!0;(typeof A=="function"?A:jZ[A])(Array.from(this._cache.values())),i=0;for(const n of this._cache.values())if(t[i++]!==n.isVisible)return!0;return!1}_pruneRequests(){const{maxRequests:A}=this.opts,t=[];let i=0;for(const n of this._cache.values())n.isLoading&&(i++,!n.isSelected&&!n.isVisible&&t.push(n));for(;A>0&&i>A&&t.length>0;)t.shift().abort(),i--}_rebuildTree(){const{_cache:A}=this;for(const t of A.values())t.parent=null,t.children&&(t.children.length=0);for(const t of A.values()){const i=this._getNearestAncestor(t);t.parent=i,i!=null&&i.children&&i.children.push(t)}}_resizeCache(){const{_cache:A,opts:t}=this,i=t.maxCacheSize||(t.maxCacheByteSize?1/0:zZ*this.selectedTiles.length),n=t.maxCacheByteSize||1/0;if(A.size>i||this._cacheByteSize>n){for(const[o,s]of A)if(s.isVisible||(this._cacheByteSize-=t.maxCacheByteSize?s.byteLength:0,A.delete(o),this.opts.onTileUnload(s)),A.size<=i&&this._cacheByteSize<=n)break;this._rebuildTree(),this._dirty=!0}this._dirty&&(this._tiles=Array.from(this._cache.values()).sort((o,s)=>o.zoom-s.zoom),this._dirty=!1)}_getTile(A,t){const i=this.getTileId(A);let n=this._cache.get(i),r=!1;return!n&&t?(n=new uZ(A),Object.assign(n,this.getTileMetadata(n.index)),Object.assign(n,{id:i,zoom:this.getTileZoom(n.index)}),r=!0,this._cache.set(i,n),this._dirty=!0):n&&n.needsReload&&(r=!0),n&&r&&n.loadData({getData:this.opts.getTileData,requestScheduler:this._requestScheduler,onLoad:this.onTileLoad,onError:this.opts.onTileError}),n}_getNearestAncestor(A){const{_minZoom:t=0}=this;let i=A.index;for(;this.getTileZoom(i)>t;){i=this.getParentIndex(i);const n=this._getTile(i);if(n)return n}return null}}function ZZ(e){for(const A of e)A.state=0;for(const A of e)A.isSelected&&!EG(A)&&Ey(A);for(const A of e)A.isVisible=Boolean(A.state&ou)}function $Z(e){for(const t of e)t.state=0;for(const t of e)t.isSelected&&EG(t);const A=Array.from(e).sort((t,i)=>t.zoom-i.zoom);for(const t of A)if(t.isVisible=Boolean(t.state&ou),t.children&&(t.isVisible||t.state&DR))for(const i of t.children)i.state=DR;else t.isSelected&&Ey(t)}function EG(e){let A=e;for(;A;){if(A.isLoaded||A.content)return A.state|=ou,!0;A=A.parent}return!1}function Ey(e){for(const A of e.children)A.isLoaded||A.content?A.state|=ou:Ey(A)}const A$={TilesetClass:XZ,data:{type:"data",value:[]},dataComparator:UZ.equals,renderSubLayers:{type:"function",value:e=>new gy(e),compare:!1},getTileData:{type:"function",optional:!0,value:null,compare:!1},onViewportLoad:{type:"function",optional:!0,value:null,compare:!1},onTileLoad:{type:"function",value:e=>{},compare:!1},onTileUnload:{type:"function",value:e=>{},compare:!1},onTileError:{type:"function",value:e=>console.error(e),compare:!1},extent:{type:"array",optional:!0,value:null,compare:!0},tileSize:512,maxZoom:null,minZoom:0,maxCacheSize:null,maxCacheByteSize:null,refinementStrategy:By,zRange:null,maxRequests:6,zoomOffset:0};class uy extends Ui{initializeState(){this.state={tileset:null,isLoaded:!1}}finalizeState(){var A,t;(A=this.state)===null||A===void 0||(t=A.tileset)===null||t===void 0||t.finalize()}get isLoaded(){var A,t;return(A=this.state)===null||A===void 0||(t=A.tileset)===null||t===void 0?void 0:t.selectedTiles.every(i=>i.isLoaded&&i.layers&&i.layers.every(n=>n.isLoaded))}shouldUpdateState({changeFlags:A}){return A.somethingChanged}updateState({changeFlags:A}){let{tileset:t}=this.state;const i=A.propsOrDataChanged||A.updateTriggersChanged,n=A.dataChanged||A.updateTriggersChanged&&(A.updateTriggersChanged.all||A.updateTriggersChanged.getTileData);t?i&&(t.setOptions(this._getTilesetOptions()),n?t.reloadAll():this.state.tileset.tiles.forEach(r=>{r.layers=null})):(t=new this.props.TilesetClass(this._getTilesetOptions()),this.setState({tileset:t})),this._updateTileset()}_getTilesetOptions(){const{tileSize:A,maxCacheSize:t,maxCacheByteSize:i,refinementStrategy:n,extent:r,maxZoom:o,minZoom:s,maxRequests:a,zoomOffset:g}=this.props;return{maxCacheSize:t,maxCacheByteSize:i,maxZoom:o,minZoom:s,tileSize:A,refinementStrategy:n,extent:r,maxRequests:a,zoomOffset:g,getTileData:this.getTileData.bind(this),onTileLoad:this._onTileLoad.bind(this),onTileError:this._onTileError.bind(this),onTileUnload:this._onTileUnload.bind(this)}}_updateTileset(){const{tileset:A}=this.state,{zRange:t,modelMatrix:i}=this.props,n=A.update(this.context.viewport,{zRange:t,modelMatrix:i}),{isLoaded:r}=A,o=this.state.isLoaded!==r,s=this.state.frameNumber!==n;r&&(o||s)&&this._onViewportLoad(),s&&this.setState({frameNumber:n}),this.state.isLoaded=r}_onViewportLoad(){const{tileset:A}=this.state,{onViewportLoad:t}=this.props;t&&t(A.selectedTiles)}_onTileLoad(A){this.props.onTileLoad(A),A.layers=null,this.setNeedsUpdate()}_onTileError(A,t){this.props.onTileError(A),t.layers=null,this.setNeedsUpdate()}_onTileUnload(A){this.props.onTileUnload(A)}getTileData(A){const{data:t,getTileData:i,fetch:n}=this.props,{signal:r}=A;return A.url=typeof t=="string"||Array.isArray(t)?HZ(t,A):null,i?i(A):n&&A.url?n(A.url,{propName:"data",layer:this,signal:r}):null}renderSubLayers(A){return this.props.renderSubLayers(A)}getSubLayerPropsByTile(A){return null}getPickingInfo({info:A,sourceLayer:t}){return A.tile=t.props.tile,A}_updateAutoHighlight(A){A.sourceLayer&&A.sourceLayer.updateAutoHighlight(A)}renderLayers(){return this.state.tileset.tiles.map(A=>{const t=this.getSubLayerPropsByTile(A);if(!(!A.isLoaded&&!A.content))if(A.layers)t&&A.layers[0]&&Object.keys(t).some(i=>A.layers[0].props[i]!==t[i])&&(A.layers=A.layers.map(i=>i.clone(t)));else{const i=this.renderSubLayers({...this.props,id:"".concat(this.id,"-").concat(A.id),data:A.content,_offset:0,tile:A});A.layers=zE(i,Boolean).map(n=>n.clone({tile:A,...t}))}return A.layers})}filterSubLayer({layer:A,cullRect:t}){const{tile:i}=A.props;return this.state.tileset.isTileVisible(i,t)}}y(uy,"defaultProps",A$);y(uy,"layerName","TileLayer");function mt(e){return(A,...t)=>e$(e,A,t)}function qa(e,A){return mt(uG(e,A).get)}const{apply:e$,construct:BuA,defineProperty:EuA,get:uuA,getOwnPropertyDescriptor:uG,getPrototypeOf:hy,has:huA,ownKeys:t$,set:fuA,setPrototypeOf:QuA}=Reflect,{iterator:Kl,species:duA,toStringTag:i$,for:puA}=Symbol,n$=Object,{create:fy,defineProperty:r$,freeze:yuA,is:muA}=n$,o$=Array,s$=o$.prototype,hG=s$[Kl],a$=mt(hG),fG=ArrayBuffer,g$=fG.prototype;qa(g$,"byteLength");const RR=typeof SharedArrayBuffer!="undefined"?SharedArrayBuffer:null;RR&&qa(RR.prototype,"byteLength");const QG=hy(Uint8Array);QG.from;const qt=QG.prototype;qt[Kl];mt(qt.keys);mt(qt.values);mt(qt.entries);mt(qt.set);mt(qt.reverse);mt(qt.fill);mt(qt.copyWithin);mt(qt.sort);mt(qt.slice);mt(qt.subarray);qa(qt,"buffer");qa(qt,"byteOffset");qa(qt,"length");qa(qt,i$);const Ja=Uint32Array,I$=Float32Array,KB=hy([][Kl]()),l$=mt(KB.next),c$=mt(function*(){}().next),C$=hy(KB),B$=DataView.prototype,E$=mt(B$.getUint16),Qy=WeakMap,dG=Qy.prototype,pG=mt(dG.get),u$=mt(dG.set),yG=new Qy,h$=fy(null,{next:{value:function(){const A=pG(yG,this);return l$(A)}},[Kl]:{value:function(){return this}}});function f$(e){if(e[Kl]===hG)return e;const A=fy(h$);return u$(yG,A,a$(e)),A}const Q$=new Qy,d$=fy(C$,{next:{value:function(){const A=pG(Q$,this);return c$(A)},writable:!0,configurable:!0}});for(const e of t$(KB))e!=="next"&&r$(d$,e,uG(KB,e));const mG=new fG(4),p$=new I$(mG),y$=new Ja(mG),Vi=new Ja(512),Wi=new Ja(512);for(let e=0;e<256;++e){const A=e-127;A<-27?(Vi[e]=0,Vi[e|256]=32768,Wi[e]=24,Wi[e|256]=24):A<-14?(Vi[e]=1024>>-A-14,Vi[e|256]=1024>>-A-14|32768,Wi[e]=-A-1,Wi[e|256]=-A-1):A<=15?(Vi[e]=A+15<<10,Vi[e|256]=A+15<<10|32768,Wi[e]=13,Wi[e|256]=13):A<128?(Vi[e]=31744,Vi[e|256]=64512,Wi[e]=24,Wi[e|256]=24):(Vi[e]=31744,Vi[e|256]=64512,Wi[e]=13,Wi[e|256]=13)}const dy=new Ja(2048),Oa=new Ja(64),wG=new Ja(64);for(let e=1;e<1024;++e){let A=e<<13,t=0;for(;(A&8388608)===0;)A<<=1,t-=8388608;A&=-8388609,t+=947912704,dy[e]=A|t}for(let e=1024;e<2048;++e)dy[e]=939524096+(e-1024<<13);for(let e=1;e<31;++e)Oa[e]=e<<23;Oa[31]=1199570944;Oa[32]=2147483648;for(let e=33;e<63;++e)Oa[e]=2147483648+(e-32<<23);Oa[63]=3347054592;for(let e=1;e<64;++e)e!==32&&(wG[e]=1024);function m$(e){const A=e>>10;return y$[0]=dy[wG[A]+(e&1023)]+Oa[A],p$[0]}function vG(e,A,...t){return m$(E$(e,A,...f$(t)))}var py={exports:{}};function SG(e,A,t){const i=t&&t.debug||!1;i&&console.log("getting "+A+" in "+e);const n=typeof e=="object"?e.outer:e,r=`${A}\\="([^"]*)"`;i&&console.log("pattern:",r);const s=new RegExp(r).exec(n);if(i&&console.log("match:",s),s)return s[1]}py.exports=SG;py.exports.default=SG;var lf=py.exports,yy={exports:{}},my={exports:{}},wy={exports:{}};function DG(e,A,t){const n=new RegExp(A).exec(e.slice(t));return n?t+n.index:-1}wy.exports=DG;wy.exports.default=DG;var vy={exports:{}};function RG(e,A,t){const n=new RegExp(A).exec(e.slice(t));return n?t+n.index+n[0].length-1:-1}vy.exports=RG;vy.exports.default=RG;var Sy={exports:{}};function xG(e,A){const t=new RegExp(A,"g"),i=e.match(t);return i?i.length:0}Sy.exports=xG;Sy.exports.default=xG;const w$=wy.exports,cf=vy.exports,xR=Sy.exports;function FG(e,A,t){const i=t&&t.debug||!1,n=!(t&&typeof t.nested===!1),r=t&&t.startIndex||0;i&&console.log("[xml-utils] starting findTagByName with",A," and ",t);const o=w$(e,`<${A}[ >/]`,r);if(i&&console.log("[xml-utils] start:",o),o===-1)return;const s=e.slice(o+A.length);let a=cf(s,"^[^<]*[ /]>",0);const g=a!==-1&&s[a-1]==="/";if(i&&console.log("[xml-utils] selfClosing:",g),g===!1)if(n){let C=0,B=1,u=0;for(;(a=cf(s,"[ /]"+A+">",C))!==-1;){const E=s.substring(C,a+1);if(B+=xR(E,"<"+A),u+=xR(E,"/"+A+">"),u>=B)break;C=a}}else a=cf(s,"[ /]"+A+">",0);const I=o+A.length+a+1;if(i&&console.log("[xml-utils] end:",I),I===-1)return;const l=e.slice(o,I);let c;return g?c=null:c=l.slice(l.indexOf(">")+1,l.lastIndexOf("<")),{inner:c,outer:l,start:o,end:I}}my.exports=FG;my.exports.default=FG;const v$=my.exports;function NG(e,A,t){const i=[],n=t&&t.debug||!1,r=t&&typeof t.nested=="boolean"?t.nested:!0;let o=t&&t.startIndex||0,s;for(;s=v$(e,A,{debug:n,startIndex:o});)r?o=s.start+1+A.length:o=s.end,i.push(s);return n&&console.log("findTagsByName found",i.length,"tags"),i}yy.exports=NG;yy.exports.default=NG;var S$=yy.exports;const dI={315:"Artist",258:"BitsPerSample",265:"CellLength",264:"CellWidth",320:"ColorMap",259:"Compression",33432:"Copyright",306:"DateTime",338:"ExtraSamples",266:"FillOrder",289:"FreeByteCounts",288:"FreeOffsets",291:"GrayResponseCurve",290:"GrayResponseUnit",316:"HostComputer",270:"ImageDescription",257:"ImageLength",256:"ImageWidth",271:"Make",281:"MaxSampleValue",280:"MinSampleValue",272:"Model",254:"NewSubfileType",274:"Orientation",262:"PhotometricInterpretation",284:"PlanarConfiguration",296:"ResolutionUnit",278:"RowsPerStrip",277:"SamplesPerPixel",305:"Software",279:"StripByteCounts",273:"StripOffsets",255:"SubfileType",263:"Threshholding",282:"XResolution",283:"YResolution",326:"BadFaxLines",327:"CleanFaxData",343:"ClipPath",328:"ConsecutiveBadFaxLines",433:"Decode",434:"DefaultImageColor",269:"DocumentName",336:"DotRange",321:"HalftoneHints",346:"Indexed",347:"JPEGTables",285:"PageName",297:"PageNumber",317:"Predictor",319:"PrimaryChromaticities",532:"ReferenceBlackWhite",339:"SampleFormat",340:"SMinSampleValue",341:"SMaxSampleValue",559:"StripRowCounts",330:"SubIFDs",292:"T4Options",293:"T6Options",325:"TileByteCounts",323:"TileLength",324:"TileOffsets",322:"TileWidth",301:"TransferFunction",318:"WhitePoint",344:"XClipPathUnits",286:"XPosition",529:"YCbCrCoefficients",531:"YCbCrPositioning",530:"YCbCrSubSampling",345:"YClipPathUnits",287:"YPosition",37378:"ApertureValue",40961:"ColorSpace",36868:"DateTimeDigitized",36867:"DateTimeOriginal",34665:"Exif IFD",36864:"ExifVersion",33434:"ExposureTime",41728:"FileSource",37385:"Flash",40960:"FlashpixVersion",33437:"FNumber",42016:"ImageUniqueID",37384:"LightSource",37500:"MakerNote",37377:"ShutterSpeedValue",37510:"UserComment",33723:"IPTC",34675:"ICC Profile",700:"XMP",42112:"GDAL_METADATA",42113:"GDAL_NODATA",34377:"Photoshop",33550:"ModelPixelScale",33922:"ModelTiepoint",34264:"ModelTransformation",34735:"GeoKeyDirectory",34736:"GeoDoubleParams",34737:"GeoAsciiParams",50674:"LercParameters"},$i={};for(const e in dI)dI.hasOwnProperty(e)&&($i[dI[e]]=parseInt(e,10));const D$=[$i.BitsPerSample,$i.ExtraSamples,$i.SampleFormat,$i.StripByteCounts,$i.StripOffsets,$i.StripRowCounts,$i.TileByteCounts,$i.TileOffsets,$i.SubIFDs],Cf={1:"BYTE",2:"ASCII",3:"SHORT",4:"LONG",5:"RATIONAL",6:"SBYTE",7:"UNDEFINED",8:"SSHORT",9:"SLONG",10:"SRATIONAL",11:"FLOAT",12:"DOUBLE",13:"IFD",16:"LONG8",17:"SLONG8",18:"IFD8"},jA={};for(const e in Cf)Cf.hasOwnProperty(e)&&(jA[Cf[e]]=parseInt(e,10));const $t={WhiteIsZero:0,BlackIsZero:1,RGB:2,Palette:3,TransparencyMask:4,CMYK:5,YCbCr:6,CIELab:8,ICCLab:9},R$={Unspecified:0,Assocalpha:1,Unassalpha:2},wuA={Version:0,AddCompression:1},vuA={None:0,Deflate:1},x$={1024:"GTModelTypeGeoKey",1025:"GTRasterTypeGeoKey",1026:"GTCitationGeoKey",2048:"GeographicTypeGeoKey",2049:"GeogCitationGeoKey",2050:"GeogGeodeticDatumGeoKey",2051:"GeogPrimeMeridianGeoKey",2052:"GeogLinearUnitsGeoKey",2053:"GeogLinearUnitSizeGeoKey",2054:"GeogAngularUnitsGeoKey",2055:"GeogAngularUnitSizeGeoKey",2056:"GeogEllipsoidGeoKey",2057:"GeogSemiMajorAxisGeoKey",2058:"GeogSemiMinorAxisGeoKey",2059:"GeogInvFlatteningGeoKey",2060:"GeogAzimuthUnitsGeoKey",2061:"GeogPrimeMeridianLongGeoKey",2062:"GeogTOWGS84GeoKey",3072:"ProjectedCSTypeGeoKey",3073:"PCSCitationGeoKey",3074:"ProjectionGeoKey",3075:"ProjCoordTransGeoKey",3076:"ProjLinearUnitsGeoKey",3077:"ProjLinearUnitSizeGeoKey",3078:"ProjStdParallel1GeoKey",3079:"ProjStdParallel2GeoKey",3080:"ProjNatOriginLongGeoKey",3081:"ProjNatOriginLatGeoKey",3082:"ProjFalseEastingGeoKey",3083:"ProjFalseNorthingGeoKey",3084:"ProjFalseOriginLongGeoKey",3085:"ProjFalseOriginLatGeoKey",3086:"ProjFalseOriginEastingGeoKey",3087:"ProjFalseOriginNorthingGeoKey",3088:"ProjCenterLongGeoKey",3089:"ProjCenterLatGeoKey",3090:"ProjCenterEastingGeoKey",3091:"ProjCenterNorthingGeoKey",3092:"ProjScaleAtNatOriginGeoKey",3093:"ProjScaleAtCenterGeoKey",3094:"ProjAzimuthAngleGeoKey",3095:"ProjStraightVertPoleLongGeoKey",3096:"ProjRectifiedGridAngleGeoKey",4096:"VerticalCSTypeGeoKey",4097:"VerticalCitationGeoKey",4098:"VerticalDatumGeoKey",4099:"VerticalUnitsGeoKey"};function F$(e,A){const{width:t,height:i}=e,n=new Uint8Array(t*i*3);let r;for(let o=0,s=0;o>24,a=e[n+2]<<24>>24;let g=(o+16)/116,I=s/500+g,l=g-a/200,c,C,B;I=_$*(I*I*I>.008856?I*I*I:(I-16/116)/7.787),g=M$*(g*g*g>.008856?g*g*g:(g-16/116)/7.787),l=k$*(l*l*l>.008856?l*l*l:(l-16/116)/7.787),c=I*3.2406+g*-1.5372+l*-.4986,C=I*-.9689+g*1.8758+l*.0415,B=I*.0557+g*-.204+l*1.057,c=c>.0031308?1.055*c**(1/2.4)-.055:12.92*c,C=C>.0031308?1.055*C**(1/2.4)-.055:12.92*C,B=B>.0031308?1.055*B**(1/2.4)-.055:12.92*B,i[r]=Math.max(0,Math.min(1,c))*255,i[r+1]=Math.max(0,Math.min(1,C))*255,i[r+2]=Math.max(0,Math.min(1,B))*255}return i}const U$="modulepreload",FR={},P$="/",as=function(A,t){return!t||t.length===0?A():Promise.all(t.map(i=>{if(i=`${P$}${i}`,i in FR)return;FR[i]=!0;const n=i.endsWith(".css"),r=n?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${i}"]${r}`))return;const o=document.createElement("link");if(o.rel=n?"stylesheet":U$,n||(o.as="script",o.crossOrigin=""),o.href=i,document.head.appendChild(o),n)return new Promise((s,a)=>{o.addEventListener("load",s),o.addEventListener("error",()=>a(new Error(`Unable to preload CSS for ${i}`)))})})).then(()=>A())},LG=new Map;function zn(e,A){Array.isArray(e)||(e=[e]),e.forEach(t=>LG.set(t,A))}async function H$(e){const A=LG.get(e.Compression);if(!A)throw new Error(`Unknown compression method identifier: ${e.Compression}`);const t=await A();return new t(e)}zn([void 0,1],()=>as(()=>import("./raw.48044029.js"),[]).then(e=>e.default));zn(5,()=>as(()=>import("./lzw.dead4eb4.js"),[]).then(e=>e.default));zn(6,()=>{throw new Error("old style JPEG compression is not supported.")});zn(7,()=>as(()=>import("./jpeg.6dba04cc.js"),[]).then(e=>e.default));zn([8,32946],()=>as(()=>import("./deflate.2ed660a4.js"),["assets/deflate.2ed660a4.js","assets/pako.esm.343ed2eb.js"]).then(e=>e.default));zn(32773,()=>as(()=>import("./packbits.ba6d8eef.js"),[]).then(e=>e.default));zn(34887,()=>as(()=>import("./lerc.596660d9.js"),["assets/lerc.596660d9.js","assets/pako.esm.343ed2eb.js"]).then(e=>e.default));zn(50001,()=>as(()=>import("./webimage.f97817fa.js"),[]).then(e=>e.default));function su(e,A,t,i=1){return new(Object.getPrototypeOf(e)).constructor(A*t*i)}function q$(e,A,t,i,n){const r=A/i,o=t/n;return e.map(s=>{const a=su(s,i,n);for(let g=0;g{const a=su(s,i,n);for(let g=0;g>8-n-m&l;else if(m+n<=16)I[d]=s.getUint16(w)>>16-n-m&l;else if(m+n<=24){const v=s.getUint16(w)<<8|s.getUint8(w+2);I[d]=v>>24-n-m&l}else I[d]=s.getUint32(w)>>32-n-m&l}}}}return I.buffer}class X${constructor(A,t,i,n,r,o){this.fileDirectory=A,this.geoKeys=t,this.dataView=i,this.littleEndian=n,this.tiles=r?{}:null,this.isTiled=!A.StripOffsets;const s=A.PlanarConfiguration;if(this.planarConfiguration=typeof s=="undefined"?1:s,this.planarConfiguration!==1&&this.planarConfiguration!==2)throw new Error("Invalid planar configuration.");this.source=o}getFileDirectory(){return this.fileDirectory}getGeoKeys(){return this.geoKeys}getWidth(){return this.fileDirectory.ImageWidth}getHeight(){return this.fileDirectory.ImageLength}getSamplesPerPixel(){return typeof this.fileDirectory.SamplesPerPixel!="undefined"?this.fileDirectory.SamplesPerPixel:1}getTileWidth(){return this.isTiled?this.fileDirectory.TileWidth:this.getWidth()}getTileHeight(){return this.isTiled?this.fileDirectory.TileLength:typeof this.fileDirectory.RowsPerStrip!="undefined"?Math.min(this.fileDirectory.RowsPerStrip,this.getHeight()):this.getHeight()}getBlockWidth(){return this.getTileWidth()}getBlockHeight(A){return this.isTiled||(A+1)*this.getTileHeight()<=this.getHeight()?this.getTileHeight():this.getHeight()-A*this.getTileHeight()}getBytesPerPixel(){let A=0;for(let t=0;t=this.fileDirectory.BitsPerSample.length)throw new RangeError(`Sample index ${A} is out of range.`);return Math.ceil(this.fileDirectory.BitsPerSample[A]/8)}getReaderForSample(A){const t=this.fileDirectory.SampleFormat?this.fileDirectory.SampleFormat[A]:1,i=this.fileDirectory.BitsPerSample[A];switch(t){case 1:if(i<=8)return DataView.prototype.getUint8;if(i<=16)return DataView.prototype.getUint16;if(i<=32)return DataView.prototype.getUint32;break;case 2:if(i<=8)return DataView.prototype.getInt8;if(i<=16)return DataView.prototype.getInt16;if(i<=32)return DataView.prototype.getInt32;break;case 3:switch(i){case 16:return function(n,r){return vG(this,n,r)};case 32:return DataView.prototype.getFloat32;case 64:return DataView.prototype.getFloat64}break}throw Error("Unsupported data format/bitsPerSample")}getSampleFormat(A=0){return this.fileDirectory.SampleFormat?this.fileDirectory.SampleFormat[A]:1}getBitsPerSample(A=0){return this.fileDirectory.BitsPerSample[A]}getArrayForSample(A,t){const i=this.getSampleFormat(A),n=this.getBitsPerSample(A);return Ld(i,n,t)}async getTileOrStrip(A,t,i,n,r){const o=Math.ceil(this.getWidth()/this.getTileWidth()),s=Math.ceil(this.getHeight()/this.getTileHeight());let a;const{tiles:g}=this;this.planarConfiguration===1?a=t*o+A:this.planarConfiguration===2&&(a=i*o*s+t*o+A);let I,l;this.isTiled?(I=this.fileDirectory.TileOffsets[a],l=this.fileDirectory.TileByteCounts[a]):(I=this.fileDirectory.StripOffsets[a],l=this.fileDirectory.StripByteCounts[a]);const c=(await this.source.fetch([{offset:I,length:l}],r))[0];let C;return g===null||!g[a]?(C=(async()=>{let B=await n.decode(this.fileDirectory,c);const u=this.getSampleFormat(),E=this.getBitsPerSample();return z$(u,E)&&(B=j$(B,u,this.planarConfiguration,this.getSamplesPerPixel(),E,this.getTileWidth(),this.getBlockHeight(t))),B})(),g!==null&&(g[a]=C)):C=g[a],{x:A,y:t,sample:i,data:await C}}async _readRaster(A,t,i,n,r,o,s,a,g){const I=this.getTileWidth(),l=this.getTileHeight(),c=this.getWidth(),C=this.getHeight(),B=Math.max(Math.floor(A[0]/I),0),u=Math.min(Math.ceil(A[2]/I),Math.ceil(c/I)),E=Math.max(Math.floor(A[1]/l),0),h=Math.min(Math.ceil(A[3]/l),Math.ceil(C/l)),f=A[2]-A[0];let Q=this.getBytesPerPixel();const d=[],w=[];for(let x=0;x{const W=P.data,J=new DataView(W),Z=this.getBlockHeight(P.y),z=P.y*l,O=P.x*I,Y=z+Z,k=(P.x+1)*I,q=w[N],j=Math.min(Z,Z-(Y-A[3]),C-z),AA=Math.min(I,I-(k-A[2]),c-O);for(let iA=Math.max(0,A[1]-z);iAI[2]||I[1]>I[3])throw new Error("Invalid subsets");const l=I[2]-I[0],c=I[3]-I[1],C=l*c,B=this.getSamplesPerPixel();if(!t||!t.length)for(let f=0;f=B)return Promise.reject(new RangeError(`Invalid sample index '${t[f]}'.`));let u;if(i){const f=this.fileDirectory.SampleFormat?Math.max.apply(null,this.fileDirectory.SampleFormat):1,Q=Math.max.apply(null,this.fileDirectory.BitsPerSample);u=Ld(f,Q,C*t.length),a&&u.fill(a)}else{u=[];for(let f=0;fg[2]||g[1]>g[3])throw new Error("Invalid subsets");const I=this.fileDirectory.PhotometricInterpretation;if(I===$t.RGB){let h=[0,1,2];if(this.fileDirectory.ExtraSamples!==R$.Unspecified&&s){h=[];for(let f=0;flf(r,"sample")===void 0):n=n.filter(r=>Number(lf(r,"sample"))===A);for(let r=0;r0;let r=!0;for(let o=0;o<8;o++){let s=this._dataView.getUint8(A+(t?o:7-o));n&&(r?s!==0&&(s=~(s-1)&255,r=!1):s=~s&255),i+=s*256**o}return n&&(i=-i),i}getUint8(A,t){return this._dataView.getUint8(A,t)}getInt8(A,t){return this._dataView.getInt8(A,t)}getUint16(A,t){return this._dataView.getUint16(A,t)}getInt16(A,t){return this._dataView.getInt16(A,t)}getUint32(A,t){return this._dataView.getUint32(A,t)}getInt32(A,t){return this._dataView.getInt32(A,t)}getFloat16(A,t){return vG(this._dataView,A,t)}getFloat32(A,t){return this._dataView.getFloat32(A,t)}getFloat64(A,t){return this._dataView.getFloat64(A,t)}}class $${constructor(A,t,i,n){this._dataView=new DataView(A),this._sliceOffset=t,this._littleEndian=i,this._bigTiff=n}get sliceOffset(){return this._sliceOffset}get sliceTop(){return this._sliceOffset+this.buffer.byteLength}get littleEndian(){return this._littleEndian}get bigTiff(){return this._bigTiff}get buffer(){return this._dataView.buffer}covers(A,t){return this.sliceOffset<=A&&this.sliceTop>=A+t}readUint8(A){return this._dataView.getUint8(A-this._sliceOffset,this._littleEndian)}readInt8(A){return this._dataView.getInt8(A-this._sliceOffset,this._littleEndian)}readUint16(A){return this._dataView.getUint16(A-this._sliceOffset,this._littleEndian)}readInt16(A){return this._dataView.getInt16(A-this._sliceOffset,this._littleEndian)}readUint32(A){return this._dataView.getUint32(A-this._sliceOffset,this._littleEndian)}readInt32(A){return this._dataView.getInt32(A-this._sliceOffset,this._littleEndian)}readFloat32(A){return this._dataView.getFloat32(A-this._sliceOffset,this._littleEndian)}readFloat64(A){return this._dataView.getFloat64(A-this._sliceOffset,this._littleEndian)}readUint64(A){const t=this.readUint32(A),i=this.readUint32(A+4);let n;if(this._littleEndian){if(n=t+2**32*i,!Number.isSafeInteger(n))throw new Error(`${n} exceeds MAX_SAFE_INTEGER. Precision may be lost. Please report if you get this message to https://github.com/geotiffjs/geotiff.js/issues`);return n}if(n=2**32*t+i,!Number.isSafeInteger(n))throw new Error(`${n} exceeds MAX_SAFE_INTEGER. Precision may be lost. Please report if you get this message to https://github.com/geotiffjs/geotiff.js/issues`);return n}readInt64(A){let t=0;const i=(this._dataView.getUint8(A+(this._littleEndian?7:0))&128)>0;let n=!0;for(let r=0;r<8;r++){let o=this._dataView.getUint8(A+(this._littleEndian?r:7-r));i&&(n?o!==0&&(o=~(o-1)&255,n=!1):o=~o&255),t+=o*256**r}return i&&(t=-t),t}readOffset(A){return this._bigTiff?this.readUint64(A):this.readUint32(A)}}const NR=`\r +`;const gZ={billboard:!0,sizeScale:1,sizeUnits:"pixels",sizeMinPixels:0,sizeMaxPixels:Number.MAX_SAFE_INTEGER,padding:{type:"array",value:[0,0,0,0]},getPosition:{type:"accessor",value:e=>e.position},getSize:{type:"accessor",value:1},getAngle:{type:"accessor",value:0},getPixelOffset:{type:"accessor",value:[0,0]},getBoundingRect:{type:"accessor",value:[0,0,0,0]},getFillColor:{type:"accessor",value:[0,0,0,255]},getLineColor:{type:"accessor",value:[0,0,0,255]},getLineWidth:{type:"accessor",value:1}};class gy extends gi{constructor(...A){super(...A),y(this,"state",void 0)}getShaders(){return super.getShaders({vs:sZ,fs:aZ,modules:[eo,to]})}initializeState(){this.getAttributeManager().addInstanced({instancePositions:{size:3,type:5130,fp64:this.use64bitPositions(),transition:!0,accessor:"getPosition"},instanceSizes:{size:1,transition:!0,accessor:"getSize",defaultValue:1},instanceAngles:{size:1,transition:!0,accessor:"getAngle"},instanceRects:{size:4,accessor:"getBoundingRect"},instancePixelOffsets:{size:2,transition:!0,accessor:"getPixelOffset"},instanceFillColors:{size:4,transition:!0,normalized:!0,type:5121,accessor:"getFillColor",defaultValue:[0,0,0,255]},instanceLineColors:{size:4,transition:!0,normalized:!0,type:5121,accessor:"getLineColor",defaultValue:[0,0,0,255]},instanceLineWidths:{size:1,transition:!0,accessor:"getLineWidth",defaultValue:1}})}updateState(A){super.updateState(A);const{changeFlags:t}=A;if(t.extensionsChanged){var i;const{gl:n}=this.context;(i=this.state.model)===null||i===void 0||i.delete(),this.state.model=this._getModel(n),this.getAttributeManager().invalidateAll()}}draw({uniforms:A}){const{billboard:t,sizeScale:i,sizeUnits:n,sizeMinPixels:r,sizeMaxPixels:o,getLineWidth:s}=this.props;let{padding:a}=this.props;a.length<4&&(a=[a[0],a[1],a[0],a[1]]),this.state.model.setUniforms(A).setUniforms({billboard:t,stroked:Boolean(s),padding:a,sizeUnits:Jr[n],sizeScale:i,sizeMinPixels:r,sizeMaxPixels:o}).draw()}_getModel(A){const t=[0,0,1,0,1,1,0,1];return new di(A,{...this.getShaders(),id:this.props.id,geometry:new En({drawMode:6,vertexCount:4,attributes:{positions:{size:2,value:new Float32Array(t)}}}),isInstanced:!0})}}y(gy,"defaultProps",gZ);y(gy,"layerName","TextBackgroundLayer");const ER={start:1,middle:0,end:-1},uR={top:1,center:0,bottom:-1},gf=[0,0,0,255],IZ=1,lZ={billboard:!0,sizeScale:1,sizeUnits:"pixels",sizeMinPixels:0,sizeMaxPixels:Number.MAX_SAFE_INTEGER,background:!1,getBackgroundColor:{type:"accessor",value:[255,255,255,255]},getBorderColor:{type:"accessor",value:gf},getBorderWidth:{type:"accessor",value:0},backgroundPadding:{type:"array",value:[0,0,0,0]},characterSet:{type:"object",value:fI.characterSet},fontFamily:fI.fontFamily,fontWeight:fI.fontWeight,lineHeight:IZ,outlineWidth:{type:"number",value:0,min:0},outlineColor:{type:"color",value:gf},fontSettings:{},wordBreak:"break-word",maxWidth:{type:"number",value:-1},getText:{type:"accessor",value:e=>e.text},getPosition:{type:"accessor",value:e=>e.position},getColor:{type:"accessor",value:gf},getSize:{type:"accessor",value:32},getAngle:{type:"accessor",value:0},getTextAnchor:{type:"accessor",value:"middle"},getAlignmentBaseline:{type:"accessor",value:"center"},getPixelOffset:{type:"accessor",value:[0,0]},backgroundColor:{deprecatedFor:["background","getBackgroundColor"]}};class Yl extends Ui{constructor(...A){super(...A),y(this,"state",void 0),y(this,"getBoundingRect",(t,i)=>{const n=this.state.fontAtlasManager.mapping,r=this.state.getText,{wordBreak:o,maxWidth:s,lineHeight:a,getTextAnchor:g,getAlignmentBaseline:I}=this.props,l=r(t,i)||"",{size:[c,C]}=lR(l,a,o,s,n),B=ER[typeof g=="function"?g(t,i):g],u=uR[typeof I=="function"?I(t,i):I];return[(B-1)*c/2,(u-1)*C/2,c,C]}),y(this,"getIconOffsets",(t,i)=>{const n=this.state.fontAtlasManager.mapping,r=this.state.getText,{wordBreak:o,maxWidth:s,lineHeight:a,getTextAnchor:g,getAlignmentBaseline:I}=this.props,l=r(t,i)||"",{x:c,y:C,rowWidth:B,size:[u,E]}=lR(l,a,o,s,n),h=ER[typeof g=="function"?g(t,i):g],f=uR[typeof I=="function"?I(t,i):I],Q=c.length,d=new Array(Q*2);let w=0;for(let m=0;m=0?this.props.data[A.index]:null,A}_updateFontAtlas(){const{fontSettings:A,fontFamily:t,fontWeight:i}=this.props,{fontAtlasManager:n,characterSet:r}=this.state,o={...A,characterSet:r,fontFamily:t,fontWeight:i};if(!n.mapping)return n.setProps(o),!0;for(const s in o)if(o[s]!==n.props[s])return n.setProps(o),!0;return!1}_updateText(){var A;const{data:t,characterSet:i}=this.props,n=(A=t.attributes)===null||A===void 0?void 0:A.getText;let{getText:r}=this.props,o=t.startIndices,s;const a=i==="auto"&&new Set;if(n&&o){const{texts:g,characterCount:I}=AZ({...ArrayBuffer.isView(n)?{value:n}:n,length:t.length,startIndices:o,characterSet:a});s=I,r=(l,{index:c})=>g[c]}else{const{iterable:g,objectInfo:I}=Jl(t);o=[0],s=0;for(const l of g){I.index++;const c=Array.from(r(l,I)||"");a&&c.forEach(a.add,a),s+=c.length,o.push(s)}}this.setState({getText:r,startIndices:o,numInstances:s,characterSet:a||i})}renderLayers(){const{startIndices:A,numInstances:t,getText:i,fontAtlasManager:{scale:n,texture:r,mapping:o},styleVersion:s}=this.state,{data:a,_dataDiff:g,getPosition:I,getColor:l,getSize:c,getAngle:C,getPixelOffset:B,getBackgroundColor:u,getBorderColor:E,getBorderWidth:h,backgroundPadding:f,background:Q,billboard:d,fontSettings:w,outlineWidth:m,outlineColor:v,sizeScale:x,sizeUnits:D,sizeMinPixels:F,sizeMaxPixels:N,transitions:M,updateTriggers:U}=this.props,P=this.getSubLayerClass("characters",sy),W=this.getSubLayerClass("background",gy);return[Q&&new W({getFillColor:u,getLineColor:E,getLineWidth:h,padding:f,getPosition:I,getSize:c,getAngle:C,getPixelOffset:B,billboard:d,sizeScale:x/this.state.fontAtlasManager.props.fontSize,sizeUnits:D,sizeMinPixels:F,sizeMaxPixels:N,transitions:M&&{getPosition:M.getPosition,getAngle:M.getAngle,getSize:M.getSize,getFillColor:M.getBackgroundColor,getLineColor:M.getBorderColor,getLineWidth:M.getBorderWidth,getPixelOffset:M.getPixelOffset}},this.getSubLayerProps({id:"background",updateTriggers:{getPosition:U.getPosition,getAngle:U.getAngle,getSize:U.getSize,getFillColor:U.getBackgroundColor,getLineColor:U.getBorderColor,getLineWidth:U.getBorderWidth,getPixelOffset:U.getPixelOffset,getBoundingRect:{getText:U.getText,getTextAnchor:U.getTextAnchor,getAlignmentBaseline:U.getAlignmentBaseline,styleVersion:s}}}),{data:a.attributes&&a.attributes.background?{length:a.length,attributes:a.attributes.background}:a,_dataDiff:g,autoHighlight:!1,getBoundingRect:this.getBoundingRect}),new P({sdf:w.sdf,smoothing:Number.isFinite(w.smoothing)?w.smoothing:fI.smoothing,outlineWidth:m,outlineColor:v,iconAtlas:r,iconMapping:o,getPosition:I,getColor:l,getSize:c,getAngle:C,getPixelOffset:B,billboard:d,sizeScale:x*n,sizeUnits:D,sizeMinPixels:F*n,sizeMaxPixels:N*n,transitions:M&&{getPosition:M.getPosition,getAngle:M.getAngle,getColor:M.getColor,getSize:M.getSize,getPixelOffset:M.getPixelOffset}},this.getSubLayerProps({id:"characters",updateTriggers:{getIcon:U.getText,getPosition:U.getPosition,getAngle:U.getAngle,getColor:U.getColor,getSize:U.getSize,getPixelOffset:U.getPixelOffset,getIconOffsets:{getText:U.getText,getTextAnchor:U.getTextAnchor,getAlignmentBaseline:U.getAlignmentBaseline,styleVersion:s}}}),{data:a,_dataDiff:g,startIndices:A,numInstances:t,getIconOffsets:this.getIconOffsets,getIcon:i})]}static set fontAtlasCacheLimit(A){rZ(A)}}y(Yl,"defaultProps",lZ);y(Yl,"layerName","TextLayer");const qC={circle:{type:ry,props:{filled:"filled",stroked:"stroked",lineWidthMaxPixels:"lineWidthMaxPixels",lineWidthMinPixels:"lineWidthMinPixels",lineWidthScale:"lineWidthScale",lineWidthUnits:"lineWidthUnits",pointRadiusMaxPixels:"radiusMaxPixels",pointRadiusMinPixels:"radiusMinPixels",pointRadiusScale:"radiusScale",pointRadiusUnits:"radiusUnits",pointAntialiasing:"antialiasing",pointBillboard:"billboard",getFillColor:"getFillColor",getLineColor:"getLineColor",getLineWidth:"getLineWidth",getPointRadius:"getRadius"}},icon:{type:eu,props:{iconAtlas:"iconAtlas",iconMapping:"iconMapping",iconSizeMaxPixels:"sizeMaxPixels",iconSizeMinPixels:"sizeMinPixels",iconSizeScale:"sizeScale",iconSizeUnits:"sizeUnits",iconAlphaCutoff:"alphaCutoff",iconBillboard:"billboard",getIcon:"getIcon",getIconAngle:"getAngle",getIconColor:"getColor",getIconPixelOffset:"getPixelOffset",getIconSize:"getSize"}},text:{type:Yl,props:{textSizeMaxPixels:"sizeMaxPixels",textSizeMinPixels:"sizeMinPixels",textSizeScale:"sizeScale",textSizeUnits:"sizeUnits",textBackground:"background",textBackgroundPadding:"backgroundPadding",textFontFamily:"fontFamily",textFontWeight:"fontWeight",textLineHeight:"lineHeight",textMaxWidth:"maxWidth",textOutlineColor:"outlineColor",textOutlineWidth:"outlineWidth",textWordBreak:"wordBreak",textCharacterSet:"characterSet",textBillboard:"billboard",textFontSettings:"fontSettings",getText:"getText",getTextAngle:"getAngle",getTextColor:"getColor",getTextPixelOffset:"getPixelOffset",getTextSize:"getSize",getTextAnchor:"getTextAnchor",getTextAlignmentBaseline:"getAlignmentBaseline",getTextBackgroundColor:"getBackgroundColor",getTextBorderColor:"getBorderColor",getTextBorderWidth:"getBorderWidth"}}},JC={type:tu,props:{lineWidthUnits:"widthUnits",lineWidthScale:"widthScale",lineWidthMinPixels:"widthMinPixels",lineWidthMaxPixels:"widthMaxPixels",lineJointRounded:"jointRounded",lineCapRounded:"capRounded",lineMiterLimit:"miterLimit",lineBillboard:"billboard",getLineColor:"getColor",getLineWidth:"getWidth"}},xd={type:ru,props:{extruded:"extruded",filled:"filled",wireframe:"wireframe",elevationScale:"elevationScale",material:"material",getElevation:"getElevation",getFillColor:"getFillColor",getLineColor:"getLineColor"}};function Sg({type:e,props:A}){const t={};for(const i in A)t[i]=e.defaultProps[A[i]];return t}function If(e,A){const{transitions:t,updateTriggers:i}=e.props,n={updateTriggers:{},transitions:t&&{getPosition:t.geometry}};for(const r in A){const o=A[r];let s=e.props[r];r.startsWith("get")&&(s=e.getSubLayerAccessor(s),n.updateTriggers[o]=i[r],t&&(n.transitions[o]=t[r])),n[o]=s}return n}function cZ(e){if(Array.isArray(e))return e;switch(Ae.assert(e.type,"GeoJSON does not have type"),e.type){case"Feature":return[e];case"FeatureCollection":return Ae.assert(Array.isArray(e.features),"GeoJSON does not have features array"),e.features;default:return[{geometry:e}]}}function hR(e,A,t={}){const i={pointFeatures:[],lineFeatures:[],polygonFeatures:[],polygonOutlineFeatures:[]},{startRow:n=0,endRow:r=e.length}=t;for(let o=n;o{s.push(t({geometry:{type:"Point",coordinates:l}},i,n))});break;case"LineString":a.push(t({geometry:e},i,n));break;case"MultiLineString":o.forEach(l=>{a.push(t({geometry:{type:"LineString",coordinates:l}},i,n))});break;case"Polygon":g.push(t({geometry:e},i,n)),o.forEach(l=>{I.push(t({geometry:{type:"LineString",coordinates:l}},i,n))});break;case"MultiPolygon":o.forEach(l=>{g.push(t({geometry:{type:"Polygon",coordinates:l}},i,n)),l.forEach(c=>{I.push(t({geometry:{type:"LineString",coordinates:c}},i,n))})});break}}const CZ={Point:1,MultiPoint:2,LineString:2,MultiLineString:3,Polygon:3,MultiPolygon:4};function BZ(e,A){let t=CZ[e];for(Ae.assert(t,"Unknown GeoJSON type ".concat(e));A&&--t>0;)A=A[0];return A&&Number.isFinite(A[0])}function BG(){return{points:{},lines:{},polygons:{},polygonsOutline:{}}}function Oc(e){return e.geometry.coordinates}function EZ(e,A){const t=BG(),{pointFeatures:i,lineFeatures:n,polygonFeatures:r,polygonOutlineFeatures:o}=e;return t.points.data=i,t.points._dataDiff=A.pointFeatures&&(()=>A.pointFeatures),t.points.getPosition=Oc,t.lines.data=n,t.lines._dataDiff=A.lineFeatures&&(()=>A.lineFeatures),t.lines.getPath=Oc,t.polygons.data=r,t.polygons._dataDiff=A.polygonFeatures&&(()=>A.polygonFeatures),t.polygons.getPolygon=Oc,t.polygonsOutline.data=o,t.polygonsOutline._dataDiff=A.polygonOutlineFeatures&&(()=>A.polygonOutlineFeatures),t.polygonsOutline.getPath=Oc,t}function uZ(e,A){const t=BG(),{points:i,lines:n,polygons:r}=e,o=HX(e,A);return t.points.data={length:i.positions.value.length/i.positions.size,attributes:{...i.attributes,getPosition:i.positions,instancePickingColors:{size:3,value:o.points}},properties:i.properties,numericProps:i.numericProps,featureIds:i.featureIds},t.lines.data={length:n.pathIndices.value.length-1,startIndices:n.pathIndices.value,attributes:{...n.attributes,getPath:n.positions,instancePickingColors:{size:3,value:o.lines}},properties:n.properties,numericProps:n.numericProps,featureIds:n.featureIds},t.lines._pathType="open",t.polygons.data={length:r.polygonIndices.value.length-1,startIndices:r.polygonIndices.value,attributes:{...r.attributes,getPolygon:r.positions,pickingColors:{size:3,value:o.polygons}},properties:r.properties,numericProps:r.numericProps,featureIds:r.featureIds},t.polygons._normalize=!1,r.triangles&&(t.polygons.data.attributes.indices=r.triangles.value),t.polygonsOutline.data={length:r.primitivePolygonIndices.value.length-1,startIndices:r.primitivePolygonIndices.value,attributes:{...r.attributes,getPath:r.positions,instancePickingColors:{size:3,value:o.polygons}},properties:r.properties,numericProps:r.numericProps,featureIds:r.featureIds},t.polygonsOutline._pathType="open",t}const hZ=["points","linestrings","polygons"],fZ={...Sg(qC.circle),...Sg(qC.icon),...Sg(qC.text),...Sg(JC),...Sg(xd),stroked:!0,filled:!0,extruded:!1,wireframe:!1,iconAtlas:{type:"object",value:null},iconMapping:{type:"object",value:{}},getIcon:{type:"accessor",value:e=>e.properties.icon},getText:{type:"accessor",value:e=>e.properties.text},pointType:"circle",getRadius:{deprecatedFor:"getPointRadius"}};class Iy extends Ui{initializeState(){this.state={layerProps:{},features:{}}}updateState({props:A,changeFlags:t}){if(!t.dataChanged)return;const{data:i}=this.props,n=i&&"points"in i&&"polygons"in i&&"lines"in i;this.setState({binary:n}),n?this._updateStateBinary({props:A,changeFlags:t}):this._updateStateJSON({props:A,changeFlags:t})}_updateStateBinary({props:A,changeFlags:t}){const i=uZ(A.data,this.encodePickingColor);this.setState({layerProps:i})}_updateStateJSON({props:A,changeFlags:t}){const i=cZ(A.data),n=this.getSubLayerRow.bind(this);let r={};const o={};if(Array.isArray(t.dataChanged)){const a=this.state.features;for(const g in a)r[g]=a[g].slice(),o[g]=[];for(const g of t.dataChanged){const I=hR(i,n,g);for(const l in a)o[l].push(aG({data:r[l],getIndex:c=>c.__source.index,dataRange:g,replace:I[l]}))}}else r=hR(i,n);const s=EZ(r,o);this.setState({features:r,featuresDiff:o,layerProps:s})}getPickingInfo(A){const t=super.getPickingInfo(A),{index:i,sourceLayer:n}=t;return t.featureType=hZ.find(r=>n.id.startsWith("".concat(this.id,"-").concat(r,"-"))),i>=0&&n.id.startsWith("".concat(this.id,"-points-text"))&&this.state.binary&&(t.index=this.props.data.points.globalFeatureIds.value[i]),t}_updateAutoHighlight(A){const t="".concat(this.id,"-points-"),i=A.featureType==="points";for(const n of this.getSubLayers())n.id.startsWith(t)===i&&n.updateAutoHighlight(A)}_renderPolygonLayer(){const{extruded:A,wireframe:t}=this.props,{layerProps:i}=this.state,n="polygons-fill",r=this.shouldRenderSubLayer(n,i.polygons.data)&&this.getSubLayerClass(n,xd.type);if(r){const o=If(this,xd.props),s=A&&t;return s||delete o.getLineColor,o.updateTriggers.lineColors=s,new r(o,this.getSubLayerProps({id:n,updateTriggers:o.updateTriggers}),i.polygons)}return null}_renderLineLayers(){const{extruded:A,stroked:t}=this.props,{layerProps:i}=this.state,n="polygons-stroke",r="linestrings",o=!A&&t&&this.shouldRenderSubLayer(n,i.polygonsOutline.data)&&this.getSubLayerClass(n,JC.type),s=this.shouldRenderSubLayer(r,i.lines.data)&&this.getSubLayerClass(r,JC.type);if(o||s){const a=If(this,JC.props);return[o&&new o(a,this.getSubLayerProps({id:n,updateTriggers:a.updateTriggers}),i.polygonsOutline),s&&new s(a,this.getSubLayerProps({id:r,updateTriggers:a.updateTriggers}),i.lines)]}return null}_renderPointLayers(){const{pointType:A}=this.props,{layerProps:t,binary:i}=this.state;let{highlightedObjectIndex:n}=this.props;!i&&Number.isFinite(n)&&(n=t.points.data.findIndex(s=>s.__source.index===n));const r=new Set(A.split("+")),o=[];for(const s of r){const a="points-".concat(s),g=qC[s],I=g&&this.shouldRenderSubLayer(a,t.points.data)&&this.getSubLayerClass(a,g.type);if(I){const l=If(this,g.props);let c=t.points;if(s==="text"&&i){const{instancePickingColors:C,...B}=c.data.attributes;c={...c,data:{...c.data,attributes:B}}}o.push(new I(l,this.getSubLayerProps({id:a,updateTriggers:l.updateTriggers,highlightedObjectIndex:n}),c))}}return o}renderLayers(){const{extruded:A}=this.props,t=this._renderPolygonLayer(),i=this._renderLineLayers(),n=this._renderPointLayers();return[!A&&t,i,n,A&&t]}getSubLayerAccessor(A){const{binary:t}=this.state;return!t||typeof A!="function"?super.getSubLayerAccessor(A):(i,n)=>{const{data:r,index:o}=n,s=UX(r,o);return A(s,n)}}}y(Iy,"layerName","GeoJsonLayer");y(Iy,"defaultProps",fZ);class QZ{constructor(A){y(this,"index",void 0),y(this,"isVisible",void 0),y(this,"isSelected",void 0),y(this,"parent",void 0),y(this,"children",void 0),y(this,"content",void 0),y(this,"state",void 0),y(this,"layers",void 0),y(this,"id",void 0),y(this,"bbox",void 0),y(this,"zoom",void 0),y(this,"userData",void 0),y(this,"_abortController",void 0),y(this,"_loader",void 0),y(this,"_loaderId",void 0),y(this,"_isLoaded",void 0),y(this,"_isCancelled",void 0),y(this,"_needsReload",void 0),this.index=A,this.isVisible=!1,this.isSelected=!1,this.parent=null,this.children=[],this.content=null,this._loader=void 0,this._abortController=null,this._loaderId=0,this._isLoaded=!1,this._isCancelled=!1,this._needsReload=!1}get data(){return this.isLoading&&this._loader?this._loader.then(()=>this.data):this.content}get isLoaded(){return this._isLoaded&&!this._needsReload}get isLoading(){return Boolean(this._loader)&&!this._isCancelled}get needsReload(){return this._needsReload||this._isCancelled}get byteLength(){const A=this.content?this.content.byteLength:0;return Number.isFinite(A)||Ae.error("byteLength not defined in tile data")(),A}async _loadData({getData:A,requestScheduler:t,onLoad:i,onError:n}){const{index:r,id:o,bbox:s,userData:a,zoom:g}=this,I=this._loaderId;this._abortController=new AbortController;const{signal:l}=this._abortController,c=await t.scheduleRequest(this,u=>u.isSelected?1:-1);if(!c){this._isCancelled=!0;return}if(this._isCancelled){c.done();return}let C=null,B;try{C=await A({index:r,id:o,bbox:s,userData:a,zoom:g,signal:l})}catch(u){B=u||!0}finally{c.done()}if(I===this._loaderId){if(this._loader=void 0,this.content=C,this._isCancelled&&!C){this._isLoaded=!1;return}this._isLoaded=!0,this._isCancelled=!1,B?n(B,this):i(this)}}loadData(A){return this._isLoaded=!1,this._isCancelled=!1,this._needsReload=!1,this._loaderId++,this._loader=this._loadData(A),this._loader}setNeedsReload(){this.isLoading&&(this.abort(),this._loader=void 0),this._needsReload=!0}abort(){var A;this.isLoaded||(this._isCancelled=!0,(A=this._abortController)===null||A===void 0||A.abort())}}const xt={OUTSIDE:-1,INTERSECTING:0,INSIDE:1},QR=new hA,dZ=new hA;class ly{constructor(A=[0,0,0],t=[0,0,0],i){y(this,"center",void 0),y(this,"halfDiagonal",void 0),y(this,"minimum",void 0),y(this,"maximum",void 0),i=i||QR.copy(A).add(t).scale(.5),this.center=new hA(i),this.halfDiagonal=new hA(t).subtract(this.center),this.minimum=new hA(A),this.maximum=new hA(t)}clone(){return new ly(this.minimum,this.maximum,this.center)}equals(A){return this===A||Boolean(A)&&this.minimum.equals(A.minimum)&&this.maximum.equals(A.maximum)}transform(A){return this.center.transformAsPoint(A),this.halfDiagonal.transform(A),this.minimum.transform(A),this.maximum.transform(A),this}intersectPlane(A){const{halfDiagonal:t}=this,i=dZ.from(A.normal),n=t.x*Math.abs(i.x)+t.y*Math.abs(i.y)+t.z*Math.abs(i.z),r=this.center.dot(i)+A.distance;return r-n>0?xt.INSIDE:r+n<0?xt.OUTSIDE:xt.INTERSECTING}distanceTo(A){return Math.sqrt(this.distanceSquaredTo(A))}distanceSquaredTo(A){const t=QR.from(A).subtract(this.center),{halfDiagonal:i}=this;let n=0,r;return r=Math.abs(t.x)-i.x,r>0&&(n+=r*r),r=Math.abs(t.y)-i.y,r>0&&(n+=r*r),r=Math.abs(t.z)-i.z,r>0&&(n+=r*r),n}}const Dg=new hA,dR=new hA;class cy{constructor(A=[0,0,0],t=0){y(this,"center",void 0),y(this,"radius",void 0),this.radius=-0,this.center=new hA,this.fromCenterRadius(A,t)}fromCenterRadius(A,t){return this.center.from(A),this.radius=t,this}fromCornerPoints(A,t){return t=Dg.from(t),this.center=new hA().from(A).add(t).scale(.5),this.radius=this.center.distance(t),this}equals(A){return this===A||Boolean(A)&&this.center.equals(A.center)&&this.radius===A.radius}clone(){return new cy(this.center,this.radius)}union(A){const t=this.center,i=this.radius,n=A.center,r=A.radius,o=Dg.copy(n).subtract(t),s=o.magnitude();if(i>=s+r)return this.clone();if(r>=s+i)return A.clone();const a=(i+s+r)*.5;return dR.copy(o).scale((-i+a)/s).add(t),this.center.copy(dR),this.radius=a,this}expand(A){const i=Dg.from(A).subtract(this.center).magnitude();return i>this.radius&&(this.radius=i),this}transform(A){this.center.transform(A);const t=W6(Dg,A);return this.radius=Math.max(t[0],Math.max(t[1],t[2]))*this.radius,this}distanceSquaredTo(A){const t=this.distanceTo(A);return t*t}distanceTo(A){const i=Dg.from(A).subtract(this.center);return Math.max(0,i.len()-this.radius)}intersectPlane(A){const t=this.center,i=this.radius,r=A.normal.dot(t)+A.distance;return r<-i?xt.OUTSIDE:r=a?xt.INSIDE:xt.INTERSECTING}distanceTo(A){return Math.sqrt(this.distanceSquaredTo(A))}distanceSquaredTo(A){const t=yZ.from(A).subtract(this.center),i=this.halfAxes,n=i.getColumn(0,Yc),r=i.getColumn(1,Kc),o=i.getColumn(2,Vc),s=n.magnitude(),a=r.magnitude(),g=o.magnitude();n.normalize(),r.normalize(),o.normalize();let I=0,l;return l=Math.abs(t.dot(n))-s,l>0&&(I+=l*l),l=Math.abs(t.dot(r))-a,l>0&&(I+=l*l),l=Math.abs(t.dot(o))-g,l>0&&(I+=l*l),I}computePlaneDistances(A,t,i=[-0,-0]){let n=Number.POSITIVE_INFINITY,r=Number.NEGATIVE_INFINITY;const o=this.center,s=this.halfAxes,a=s.getColumn(0,Yc),g=s.getColumn(1,Kc),I=s.getColumn(2,Vc),l=mZ.copy(a).add(g).add(I).add(o),c=wZ.copy(l).subtract(A);let C=t.dot(c);return n=Math.min(C,n),r=Math.max(C,r),l.copy(o).add(a).add(g).subtract(I),c.copy(l).subtract(A),C=t.dot(c),n=Math.min(C,n),r=Math.max(C,r),l.copy(o).add(a).subtract(g).add(I),c.copy(l).subtract(A),C=t.dot(c),n=Math.min(C,n),r=Math.max(C,r),l.copy(o).add(a).subtract(g).subtract(I),c.copy(l).subtract(A),C=t.dot(c),n=Math.min(C,n),r=Math.max(C,r),o.copy(l).subtract(a).add(g).add(I),c.copy(l).subtract(A),C=t.dot(c),n=Math.min(C,n),r=Math.max(C,r),o.copy(l).subtract(a).add(g).subtract(I),c.copy(l).subtract(A),C=t.dot(c),n=Math.min(C,n),r=Math.max(C,r),o.copy(l).subtract(a).subtract(g).add(I),c.copy(l).subtract(A),C=t.dot(c),n=Math.min(C,n),r=Math.max(C,r),o.copy(l).subtract(a).subtract(g).subtract(I),c.copy(l).subtract(A),C=t.dot(c),n=Math.min(C,n),r=Math.max(C,r),i[0]=n,i[1]=r,i}transform(A){this.center.transformAsPoint(A);const t=this.halfAxes.getColumn(0,Yc);t.transformAsPoint(A);const i=this.halfAxes.getColumn(1,Kc);i.transformAsPoint(A);const n=this.halfAxes.getColumn(2,Vc);return n.transformAsPoint(A),this.halfAxes=new Qt([...t,...i,...n]),this}getTransform(){throw new Error("not implemented")}}const pR=new hA,yR=new hA;class Po{constructor(A=[0,0,1],t=0){y(this,"normal",void 0),y(this,"distance",void 0),this.normal=new hA,this.distance=-0,this.fromNormalDistance(A,t)}fromNormalDistance(A,t){return zI(Number.isFinite(t)),this.normal.from(A).normalize(),this.distance=t,this}fromPointNormal(A,t){A=pR.from(A),this.normal.from(t).normalize();const i=-this.normal.dot(A);return this.distance=i,this}fromCoefficients(A,t,i,n){return this.normal.set(A,t,i),zI(ln(this.normal.len(),1)),this.distance=n,this}clone(){return new Po(this.normal,this.distance)}equals(A){return ln(this.distance,A.distance)&&ln(this.normal,A.normal)}getPointDistance(A){return this.normal.dot(A)+this.distance}transform(A){const t=yR.copy(this.normal).transformAsVector(A).normalize(),i=this.normal.scale(-this.distance).transform(A);return this.fromPointNormal(i,t)}projectPointOntoPlane(A,t=[0,0,0]){A=pR.from(A);const i=this.getPointDistance(A),n=yR.copy(this.normal).scale(i);return A.subtract(n).to(t)}}const mR=[new hA([1,0,0]),new hA([0,1,0]),new hA([0,0,1])],wR=new hA,vZ=new hA;new Po(new hA(1,0,0),0);class Gn{constructor(A=[]){y(this,"planes",void 0),this.planes=A}fromBoundingSphere(A){this.planes.length=2*mR.length;const t=A.center,i=A.radius;let n=0;for(const r of mR){let o=this.planes[n],s=this.planes[n+1];o||(o=this.planes[n]=new Po),s||(s=this.planes[n+1]=new Po);const a=wR.copy(r).scale(-i).add(t);-r.dot(a),o.fromPointNormal(a,r);const g=wR.copy(r).scale(i).add(t),I=vZ.copy(r).negate();-I.dot(g),s.fromPointNormal(g,I),n+=2}return this}computeVisibility(A){let t=xt.INSIDE;for(const i of this.planes)switch(A.intersectPlane(i)){case xt.OUTSIDE:return xt.OUTSIDE;case xt.INTERSECTING:t=xt.INTERSECTING;break}return t}computeVisibilityWithPlaneMask(A,t){if(zI(Number.isFinite(t),"parentPlaneMask is required."),t===Gn.MASK_OUTSIDE||t===Gn.MASK_INSIDE)return t;let i=Gn.MASK_INSIDE;const n=this.planes;for(let r=0;ra;)NZ(s,Wc),vR.copy(Wc).transpose(),s.multiplyRight(Wc),s.multiplyLeft(vR),o.multiplyRight(Wc),++n>2&&(++r,n=0);return A.unitary=o.toTarget(A.unitary),A.diagonal=s.toTarget(A.diagonal),A}function xZ(e){let A=0;for(let t=0;t<9;++t){const i=e[t];A+=i*i}return Math.sqrt(A)}const Fd=[1,0,0],Nd=[2,2,1];function FZ(e){let A=0;for(let t=0;t<3;++t){const i=e[Zi.getElementIndex(Nd[t],Fd[t])];A+=2*i*i}return Math.sqrt(A)}function NZ(e,A){const t=lb.EPSILON15;let i=0,n=1;for(let g=0;g<3;++g){const I=Math.abs(e[Zi.getElementIndex(Nd[g],Fd[g])]);I>i&&(n=g,i=I)}const r=Fd[n],o=Nd[n];let s=1,a=0;if(Math.abs(e[Zi.getElementIndex(o,r)])>t){const g=e[Zi.getElementIndex(o,o)],I=e[Zi.getElementIndex(r,r)],l=e[Zi.getElementIndex(o,r)],c=(g-I)/2/l;let C;c<0?C=-1/(-c+Math.sqrt(1+c*c)):C=1/(c+Math.sqrt(1+c*c)),s=1/Math.sqrt(1+C*C),a=C*s}return Qt.IDENTITY.to(A),A[Zi.getElementIndex(r,r)]=A[Zi.getElementIndex(o,o)]=s,A[Zi.getElementIndex(o,r)]=a,A[Zi.getElementIndex(r,o)]=-a,A}const ar=new hA,LZ=new hA,bZ=new hA,GZ=new hA,_Z=new hA,MZ=new Qt,kZ={diagonal:new Qt,unitary:new Qt};function TZ(e,A=new Cy){if(!e||e.length===0)return A.halfAxes=new Qt([0,0,0,0,0,0,0,0,0]),A.center=new hA,A;const t=e.length,i=new hA(0,0,0);for(const D of e)i.add(D);const n=1/t;i.multiplyByScalar(n);let r=0,o=0,s=0,a=0,g=0,I=0;for(const D of e){const F=ar.copy(D).subtract(i);r+=F.x*F.x,o+=F.x*F.y,s+=F.x*F.z,a+=F.y*F.y,g+=F.y*F.z,I+=F.z*F.z}r*=n,o*=n,s*=n,a*=n,g*=n,I*=n;const l=MZ;l[0]=r,l[1]=o,l[2]=s,l[3]=o,l[4]=a,l[5]=g,l[6]=s,l[7]=g,l[8]=I;const{unitary:c}=RZ(l,kZ),C=A.halfAxes.copy(c);let B=C.getColumn(0,bZ),u=C.getColumn(1,GZ),E=C.getColumn(2,_Z),h=-Number.MAX_VALUE,f=-Number.MAX_VALUE,Q=-Number.MAX_VALUE,d=Number.MAX_VALUE,w=Number.MAX_VALUE,m=Number.MAX_VALUE;for(const D of e)ar.copy(D),h=Math.max(ar.dot(B),h),f=Math.max(ar.dot(u),f),Q=Math.max(ar.dot(E),Q),d=Math.min(ar.dot(B),d),w=Math.min(ar.dot(u),w),m=Math.min(ar.dot(E),m);B=B.multiplyByScalar(.5*(d+h)),u=u.multiplyByScalar(.5*(w+f)),E=E.multiplyByScalar(.5*(m+Q)),A.center.copy(B).add(u).add(E);const v=LZ.set(h-d,f-w,Q-m).multiplyByScalar(.5),x=new Qt([v[0],0,0,0,v[1],0,0,0,v[2]]);return A.halfAxes.multiplyRight(x),A}const Os=512,SR=3,EG=[[.5,.5],[0,0],[0,1],[1,0],[1,1]],uG=EG.concat([[0,.5],[.5,0],[1,.5],[.5,1]]),UZ=uG.concat([[.25,.5],[.75,.5]]);class Ys{constructor(A,t,i){y(this,"x",void 0),y(this,"y",void 0),y(this,"z",void 0),y(this,"childVisible",void 0),y(this,"selected",void 0),y(this,"_children",void 0),this.x=A,this.y=t,this.z=i}get children(){if(!this._children){const A=this.x*2,t=this.y*2,i=this.z+1;this._children=[new Ys(A,t,i),new Ys(A,t+1,i),new Ys(A+1,t,i),new Ys(A+1,t+1,i)]}return this._children}update(A){const{viewport:t,cullingVolume:i,elevationBounds:n,minZ:r,maxZ:o,bounds:s,offset:a,project:g}=A,I=this.getBoundingVolume(n,a,g);if(s&&!this.insideBounds(s)||i.computeVisibility(I)<0)return!1;if(!this.childVisible){let{z:c}=this;if(c=r){const C=I.distanceTo(t.cameraPosition)*t.scale/t.height;c+=Math.floor(Math.log2(C))}if(c>=o)return this.selected=!0,!0}this.selected=!1,this.childVisible=!0;for(const c of this.children)c.update(A);return!0}getSelected(A=[]){if(this.selected&&A.push(this),this._children)for(const t of this._children)t.getSelected(A);return A}insideBounds([A,t,i,n]){const r=Math.pow(2,this.z),o=Os/r;return this.x*oA&&(this.y+1)*o>t}getBoundingVolume(A,t,i){if(i){const a=this.z<1?UZ:this.z<2?uG:EG,g=[];for(const I of a){const l=Ld(this.x+I[0],this.y+I[1],this.z);l[2]=A[0],g.push(i(l)),A[0]!==A[1]&&(l[2]=A[1],g.push(i(l)))}return TZ(g)}const n=Math.pow(2,this.z),r=Os/n,o=this.x*r+t*Os,s=Os-(this.y+1)*r;return new ly([o,s,A[0]],[o+r,s+r,A[1]])}}function PZ(e,A,t,i){const n=e instanceof Bj&&e.resolution?e.projectPosition:null,r=Object.values(e.getFrustumPlanes()).map(({normal:C,distance:B})=>new Po(C.clone().negate(),B)),o=new Gn(r),s=e.distanceScales.unitsPerMeter[2],a=t&&t[0]*s||0,g=t&&t[1]*s||0,I=e instanceof Cn&&e.pitch<=60?A:0;if(i){const[C,B,u,E]=i,h=Or([C,E]),f=Or([u,B]);i=[h[0],Os-h[1],f[0],Os-f[1]]}const l=new Ys(0,0,0),c={viewport:e,project:n,cullingVolume:o,elevationBounds:[a,g],minZ:I,maxZ:A,bounds:i,offset:0};if(l.update(c),e instanceof Cn&&e.subViewports&&e.subViewports.length>1){for(c.offset=-1;l.update(c)&&!(--c.offset<-SR););for(c.offset=1;l.update(c)&&!(++c.offset>SR););}return l.getSelected()}const qn=512,HZ=[-1/0,-1/0,1/0,1/0],qZ={type:"url",value:null,validate:(e,A)=>A.optional&&e===null||typeof e=="string"||Array.isArray(e)&&e.every(t=>typeof t=="string"),equals:(e,A)=>{if(e===A)return!0;if(!Array.isArray(e)||!Array.isArray(A))return!1;const t=e.length;if(t!==A.length)return!1;for(let i=0;in[0])),Math.min(...t.map(n=>n[1])),Math.max(...t.map(n=>n[0])),Math.max(...t.map(n=>n[1]))]}function JZ(e){return Math.abs(e.split("").reduce((A,t)=>(A<<5)-A+t.charCodeAt(0)|0,0))}function OZ(e,A){if(!e||!e.length)return null;const{index:t,id:i}=A;if(Array.isArray(e)){const r=JZ(i)%e.length;e=e[r]}let n=e;for(const r of Object.keys(t)){const o=new RegExp("{".concat(r,"}"),"g");n=n.replace(o,String(t[r]))}return Number.isInteger(t.y)&&Number.isInteger(t.z)&&(n=n.replace(/\{-y\}/g,String(Math.pow(2,t.z)-t.y-1))),n}function YZ(e,A,t){let i;if(A&&A.length===2){const[n,r]=A,o=e.getBounds({z:n}),s=e.getBounds({z:r});i=[Math.min(o[0],s[0]),Math.min(o[1],s[1]),Math.max(o[2],s[2]),Math.max(o[3],s[3])]}else i=e.getBounds();return e.isGeospatial?[Math.max(i[0],t[0]),Math.max(i[1],t[1]),Math.min(i[2],t[2]),Math.min(i[3],t[3])]:[Math.max(Math.min(i[0],t[2]),t[0]),Math.max(Math.min(i[1],t[3]),t[1]),Math.min(Math.max(i[2],t[0]),t[2]),Math.min(Math.max(i[3],t[1]),t[3])]}function YB({viewport:e,z:A,cullRect:t}){const i=t.x-e.x,n=t.y-e.y,{width:r,height:o}=t;if(!Array.isArray(A)){const g={targetZ:A||0},I=e.unproject([i,n],g),l=e.unproject([i+r,n],g),c=e.unproject([i,n+o],g),C=e.unproject([i+r,n+o],g);return[Math.min(I[0],l[0],c[0],C[0]),Math.min(I[1],l[1],c[1],C[1]),Math.max(I[0],l[0],c[0],C[0]),Math.max(I[1],l[1],c[1],C[1])]}const s=YB({viewport:e,z:A[0],cullRect:t}),a=YB({viewport:e,z:A[1],cullRect:t});return[Math.min(s[0],a[0]),Math.min(s[1],a[1]),Math.max(s[2],a[2]),Math.max(s[3],a[3])]}function KZ(e,A,t){return t?hG(e,t).map(n=>n*A/qn):e.map(i=>i*A/qn)}function By(e,A){return Math.pow(2,e)*qn/A}function Ld(e,A,t){const i=By(t,qn),n=e/i*360-180,r=Math.PI-2*Math.PI*A/i,o=180/Math.PI*Math.atan(.5*(Math.exp(r)-Math.exp(-r)));return[n,o]}function DR(e,A,t,i){const n=By(t,i);return[e/n*qn,A/n*qn]}function VZ(e,A,t,i,n=qn){if(e.isGeospatial){const[g,I]=Ld(A,t,i),[l,c]=Ld(A+1,t+1,i);return{west:g,north:I,east:l,south:c}}const[r,o]=DR(A,t,i,n),[s,a]=DR(A+1,t+1,i,n);return{left:r,top:o,right:s,bottom:a}}function WZ(e,A,t,i,n){const r=YZ(e,null,i),o=By(A,t),[s,a,g,I]=KZ(r,o,n),l=[];for(let c=Math.floor(s);cA&&(g=A);let I=n;return o&&s&&n&&!e.isGeospatial&&(I=hG(n,o)),e.isGeospatial?PZ(e,g,i,n):WZ(e,g,r,I||HZ,s)}const RR=1,ou=2,jZ="never",XZ="no-overlap",Ey="best-available",ZZ=5,$Z={[Ey]:e$,[XZ]:t$,[jZ]:()=>{}};class A${constructor(A){y(this,"opts",void 0),y(this,"_requestScheduler",void 0),y(this,"_cache",void 0),y(this,"_dirty",void 0),y(this,"_tiles",void 0),y(this,"_cacheByteSize",void 0),y(this,"_viewport",void 0),y(this,"_zRange",void 0),y(this,"_selectedTiles",void 0),y(this,"_frameNumber",void 0),y(this,"_modelMatrix",void 0),y(this,"_modelMatrixInverse",void 0),y(this,"_maxZoom",void 0),y(this,"_minZoom",void 0),y(this,"onTileLoad",void 0),y(this,"_getCullBounds",Ul(YB)),this.opts=A,this.onTileLoad=t=>{this.opts.onTileLoad(t),this.opts.maxCacheByteSize&&(this._cacheByteSize+=t.byteLength,this._resizeCache())},this._requestScheduler=new qq({maxRequests:A.maxRequests,throttleRequests:A.maxRequests>0}),this._cache=new Map,this._tiles=[],this._dirty=!1,this._cacheByteSize=0,this._viewport=null,this._selectedTiles=null,this._frameNumber=0,this._modelMatrix=new fe,this._modelMatrixInverse=new fe,this.setOptions(A)}get tiles(){return this._tiles}get selectedTiles(){return this._selectedTiles}get isLoaded(){return this._selectedTiles!==null&&this._selectedTiles.every(A=>A.isLoaded)}get needsReload(){return this._selectedTiles!==null&&this._selectedTiles.some(A=>A.needsReload)}setOptions(A){Object.assign(this.opts,A),Number.isFinite(A.maxZoom)&&(this._maxZoom=Math.floor(A.maxZoom)),Number.isFinite(A.minZoom)&&(this._minZoom=Math.ceil(A.minZoom))}finalize(){for(const A of this._cache.values())A.isLoading&&A.abort();this._cache.clear(),this._tiles=[],this._selectedTiles=null}reloadAll(){for(const A of this._cache.keys()){const t=this._cache.get(A);!this._selectedTiles||!this._selectedTiles.includes(t)?this._cache.delete(A):t.setNeedsReload()}}update(A,{zRange:t,modelMatrix:i}={}){const n=new fe(i),r=!n.equals(this._modelMatrix);if(!this._viewport||!A.equals(this._viewport)||!ln(this._zRange,t)||r){r&&(this._modelMatrixInverse=n.clone().invert(),this._modelMatrix=n),this._viewport=A,this._zRange=t;const s=this.getTileIndices({viewport:A,maxZoom:this._maxZoom,minZoom:this._minZoom,zRange:t,modelMatrix:this._modelMatrix,modelMatrixInverse:this._modelMatrixInverse});this._selectedTiles=s.map(a=>this._getTile(a,!0)),this._dirty&&this._rebuildTree()}else this.needsReload&&(this._selectedTiles=this._selectedTiles.map(s=>this._getTile(s.index,!0)));const o=this.updateTileStates();return this._pruneRequests(),this._dirty&&this._resizeCache(),o&&this._frameNumber++,this._frameNumber}isTileVisible(A,t){if(!A.isVisible)return!1;if(t&&this._viewport){const[i,n,r,o]=YB({viewport:this._viewport,z:this._zRange,cullRect:t}),{bbox:s}=A;if("west"in s)return s.westi&&s.southn;const a=Math.min(s.top,s.bottom),g=Math.max(s.top,s.bottom);return s.lefti&&an}return!0}getTileIndices({viewport:A,maxZoom:t,minZoom:i,zRange:n,modelMatrix:r,modelMatrixInverse:o}){const{tileSize:s,extent:a,zoomOffset:g}=this.opts;return zZ({viewport:A,maxZoom:t,minZoom:i,zRange:n,tileSize:s,extent:a,modelMatrix:r,modelMatrixInverse:o,zoomOffset:g})}getTileId(A){return"".concat(A.x,"-").concat(A.y,"-").concat(A.z)}getTileZoom(A){return A.z}getTileMetadata(A){const{tileSize:t}=this.opts;return{bbox:VZ(this._viewport,A.x,A.y,A.z,t)}}getParentIndex(A){const t=Math.floor(A.x/2),i=Math.floor(A.y/2),n=A.z-1;return{x:t,y:i,z:n}}updateTileStates(){const A=this.opts.refinementStrategy||Ey,t=new Array(this._cache.size);let i=0;for(const n of this._cache.values())t[i++]=n.isVisible,n.isSelected=!1,n.isVisible=!1;for(const n of this._selectedTiles)n.isSelected=!0,n.isVisible=!0;(typeof A=="function"?A:$Z[A])(Array.from(this._cache.values())),i=0;for(const n of this._cache.values())if(t[i++]!==n.isVisible)return!0;return!1}_pruneRequests(){const{maxRequests:A}=this.opts,t=[];let i=0;for(const n of this._cache.values())n.isLoading&&(i++,!n.isSelected&&!n.isVisible&&t.push(n));for(;A>0&&i>A&&t.length>0;)t.shift().abort(),i--}_rebuildTree(){const{_cache:A}=this;for(const t of A.values())t.parent=null,t.children&&(t.children.length=0);for(const t of A.values()){const i=this._getNearestAncestor(t);t.parent=i,i!=null&&i.children&&i.children.push(t)}}_resizeCache(){const{_cache:A,opts:t}=this,i=t.maxCacheSize||(t.maxCacheByteSize?1/0:ZZ*this.selectedTiles.length),n=t.maxCacheByteSize||1/0;if(A.size>i||this._cacheByteSize>n){for(const[o,s]of A)if(s.isVisible||(this._cacheByteSize-=t.maxCacheByteSize?s.byteLength:0,A.delete(o),this.opts.onTileUnload(s)),A.size<=i&&this._cacheByteSize<=n)break;this._rebuildTree(),this._dirty=!0}this._dirty&&(this._tiles=Array.from(this._cache.values()).sort((o,s)=>o.zoom-s.zoom),this._dirty=!1)}_getTile(A,t){const i=this.getTileId(A);let n=this._cache.get(i),r=!1;return!n&&t?(n=new QZ(A),Object.assign(n,this.getTileMetadata(n.index)),Object.assign(n,{id:i,zoom:this.getTileZoom(n.index)}),r=!0,this._cache.set(i,n),this._dirty=!0):n&&n.needsReload&&(r=!0),n&&r&&n.loadData({getData:this.opts.getTileData,requestScheduler:this._requestScheduler,onLoad:this.onTileLoad,onError:this.opts.onTileError}),n}_getNearestAncestor(A){const{_minZoom:t=0}=this;let i=A.index;for(;this.getTileZoom(i)>t;){i=this.getParentIndex(i);const n=this._getTile(i);if(n)return n}return null}}function e$(e){for(const A of e)A.state=0;for(const A of e)A.isSelected&&!fG(A)&&uy(A);for(const A of e)A.isVisible=Boolean(A.state&ou)}function t$(e){for(const t of e)t.state=0;for(const t of e)t.isSelected&&fG(t);const A=Array.from(e).sort((t,i)=>t.zoom-i.zoom);for(const t of A)if(t.isVisible=Boolean(t.state&ou),t.children&&(t.isVisible||t.state&RR))for(const i of t.children)i.state=RR;else t.isSelected&&uy(t)}function fG(e){let A=e;for(;A;){if(A.isLoaded||A.content)return A.state|=ou,!0;A=A.parent}return!1}function uy(e){for(const A of e.children)A.isLoaded||A.content?A.state|=ou:uy(A)}const i$={TilesetClass:A$,data:{type:"data",value:[]},dataComparator:qZ.equals,renderSubLayers:{type:"function",value:e=>new Iy(e),compare:!1},getTileData:{type:"function",optional:!0,value:null,compare:!1},onViewportLoad:{type:"function",optional:!0,value:null,compare:!1},onTileLoad:{type:"function",value:e=>{},compare:!1},onTileUnload:{type:"function",value:e=>{},compare:!1},onTileError:{type:"function",value:e=>console.error(e),compare:!1},extent:{type:"array",optional:!0,value:null,compare:!0},tileSize:512,maxZoom:null,minZoom:0,maxCacheSize:null,maxCacheByteSize:null,refinementStrategy:Ey,zRange:null,maxRequests:6,zoomOffset:0};class hy extends Ui{initializeState(){this.state={tileset:null,isLoaded:!1}}finalizeState(){var A,t;(A=this.state)===null||A===void 0||(t=A.tileset)===null||t===void 0||t.finalize()}get isLoaded(){var A,t;return(A=this.state)===null||A===void 0||(t=A.tileset)===null||t===void 0?void 0:t.selectedTiles.every(i=>i.isLoaded&&i.layers&&i.layers.every(n=>n.isLoaded))}shouldUpdateState({changeFlags:A}){return A.somethingChanged}updateState({changeFlags:A}){let{tileset:t}=this.state;const i=A.propsOrDataChanged||A.updateTriggersChanged,n=A.dataChanged||A.updateTriggersChanged&&(A.updateTriggersChanged.all||A.updateTriggersChanged.getTileData);t?i&&(t.setOptions(this._getTilesetOptions()),n?t.reloadAll():this.state.tileset.tiles.forEach(r=>{r.layers=null})):(t=new this.props.TilesetClass(this._getTilesetOptions()),this.setState({tileset:t})),this._updateTileset()}_getTilesetOptions(){const{tileSize:A,maxCacheSize:t,maxCacheByteSize:i,refinementStrategy:n,extent:r,maxZoom:o,minZoom:s,maxRequests:a,zoomOffset:g}=this.props;return{maxCacheSize:t,maxCacheByteSize:i,maxZoom:o,minZoom:s,tileSize:A,refinementStrategy:n,extent:r,maxRequests:a,zoomOffset:g,getTileData:this.getTileData.bind(this),onTileLoad:this._onTileLoad.bind(this),onTileError:this._onTileError.bind(this),onTileUnload:this._onTileUnload.bind(this)}}_updateTileset(){const{tileset:A}=this.state,{zRange:t,modelMatrix:i}=this.props,n=A.update(this.context.viewport,{zRange:t,modelMatrix:i}),{isLoaded:r}=A,o=this.state.isLoaded!==r,s=this.state.frameNumber!==n;r&&(o||s)&&this._onViewportLoad(),s&&this.setState({frameNumber:n}),this.state.isLoaded=r}_onViewportLoad(){const{tileset:A}=this.state,{onViewportLoad:t}=this.props;t&&t(A.selectedTiles)}_onTileLoad(A){this.props.onTileLoad(A),A.layers=null,this.setNeedsUpdate()}_onTileError(A,t){this.props.onTileError(A),t.layers=null,this.setNeedsUpdate()}_onTileUnload(A){this.props.onTileUnload(A)}getTileData(A){const{data:t,getTileData:i,fetch:n}=this.props,{signal:r}=A;return A.url=typeof t=="string"||Array.isArray(t)?OZ(t,A):null,i?i(A):n&&A.url?n(A.url,{propName:"data",layer:this,signal:r}):null}renderSubLayers(A){return this.props.renderSubLayers(A)}getSubLayerPropsByTile(A){return null}getPickingInfo({info:A,sourceLayer:t}){return A.tile=t.props.tile,A}_updateAutoHighlight(A){A.sourceLayer&&A.sourceLayer.updateAutoHighlight(A)}renderLayers(){return this.state.tileset.tiles.map(A=>{const t=this.getSubLayerPropsByTile(A);if(!(!A.isLoaded&&!A.content))if(A.layers)t&&A.layers[0]&&Object.keys(t).some(i=>A.layers[0].props[i]!==t[i])&&(A.layers=A.layers.map(i=>i.clone(t)));else{const i=this.renderSubLayers({...this.props,id:"".concat(this.id,"-").concat(A.id),data:A.content,_offset:0,tile:A});A.layers=zE(i,Boolean).map(n=>n.clone({tile:A,...t}))}return A.layers})}filterSubLayer({layer:A,cullRect:t}){const{tile:i}=A.props;return this.state.tileset.isTileVisible(i,t)}}y(hy,"defaultProps",i$);y(hy,"layerName","TileLayer");function mt(e){return(A,...t)=>n$(e,A,t)}function Ha(e,A){return mt(QG(e,A).get)}const{apply:n$,construct:huA,defineProperty:fuA,get:QuA,getOwnPropertyDescriptor:QG,getPrototypeOf:fy,has:duA,ownKeys:r$,set:puA,setPrototypeOf:yuA}=Reflect,{iterator:Kl,species:muA,toStringTag:o$,for:wuA}=Symbol,s$=Object,{create:Qy,defineProperty:a$,freeze:vuA,is:SuA}=s$,g$=Array,I$=g$.prototype,dG=I$[Kl],l$=mt(dG),pG=ArrayBuffer,c$=pG.prototype;Ha(c$,"byteLength");const xR=typeof SharedArrayBuffer!="undefined"?SharedArrayBuffer:null;xR&&Ha(xR.prototype,"byteLength");const yG=fy(Uint8Array);yG.from;const qt=yG.prototype;qt[Kl];mt(qt.keys);mt(qt.values);mt(qt.entries);mt(qt.set);mt(qt.reverse);mt(qt.fill);mt(qt.copyWithin);mt(qt.sort);mt(qt.slice);mt(qt.subarray);Ha(qt,"buffer");Ha(qt,"byteOffset");Ha(qt,"length");Ha(qt,o$);const qa=Uint32Array,C$=Float32Array,KB=fy([][Kl]()),B$=mt(KB.next),E$=mt(function*(){}().next),u$=fy(KB),h$=DataView.prototype,f$=mt(h$.getUint16),dy=WeakMap,mG=dy.prototype,wG=mt(mG.get),Q$=mt(mG.set),vG=new dy,d$=Qy(null,{next:{value:function(){const A=wG(vG,this);return B$(A)}},[Kl]:{value:function(){return this}}});function p$(e){if(e[Kl]===dG)return e;const A=Qy(d$);return Q$(vG,A,l$(e)),A}const y$=new dy,m$=Qy(u$,{next:{value:function(){const A=wG(y$,this);return E$(A)},writable:!0,configurable:!0}});for(const e of r$(KB))e!=="next"&&a$(m$,e,QG(KB,e));const SG=new pG(4),w$=new C$(SG),v$=new qa(SG),Vi=new qa(512),Wi=new qa(512);for(let e=0;e<256;++e){const A=e-127;A<-27?(Vi[e]=0,Vi[e|256]=32768,Wi[e]=24,Wi[e|256]=24):A<-14?(Vi[e]=1024>>-A-14,Vi[e|256]=1024>>-A-14|32768,Wi[e]=-A-1,Wi[e|256]=-A-1):A<=15?(Vi[e]=A+15<<10,Vi[e|256]=A+15<<10|32768,Wi[e]=13,Wi[e|256]=13):A<128?(Vi[e]=31744,Vi[e|256]=64512,Wi[e]=24,Wi[e|256]=24):(Vi[e]=31744,Vi[e|256]=64512,Wi[e]=13,Wi[e|256]=13)}const py=new qa(2048),Ja=new qa(64),DG=new qa(64);for(let e=1;e<1024;++e){let A=e<<13,t=0;for(;(A&8388608)===0;)A<<=1,t-=8388608;A&=-8388609,t+=947912704,py[e]=A|t}for(let e=1024;e<2048;++e)py[e]=939524096+(e-1024<<13);for(let e=1;e<31;++e)Ja[e]=e<<23;Ja[31]=1199570944;Ja[32]=2147483648;for(let e=33;e<63;++e)Ja[e]=2147483648+(e-32<<23);Ja[63]=3347054592;for(let e=1;e<64;++e)e!==32&&(DG[e]=1024);function S$(e){const A=e>>10;return v$[0]=py[DG[A]+(e&1023)]+Ja[A],w$[0]}function RG(e,A,...t){return S$(f$(e,A,...p$(t)))}var yy={exports:{}};function xG(e,A,t){const i=t&&t.debug||!1;i&&console.log("getting "+A+" in "+e);const n=typeof e=="object"?e.outer:e,r=`${A}\\="([^"]*)"`;i&&console.log("pattern:",r);const s=new RegExp(r).exec(n);if(i&&console.log("match:",s),s)return s[1]}yy.exports=xG;yy.exports.default=xG;var lf=yy.exports,my={exports:{}},wy={exports:{}},vy={exports:{}};function FG(e,A,t){const n=new RegExp(A).exec(e.slice(t));return n?t+n.index:-1}vy.exports=FG;vy.exports.default=FG;var Sy={exports:{}};function NG(e,A,t){const n=new RegExp(A).exec(e.slice(t));return n?t+n.index+n[0].length-1:-1}Sy.exports=NG;Sy.exports.default=NG;var Dy={exports:{}};function LG(e,A){const t=new RegExp(A,"g"),i=e.match(t);return i?i.length:0}Dy.exports=LG;Dy.exports.default=LG;const D$=vy.exports,cf=Sy.exports,FR=Dy.exports;function bG(e,A,t){const i=t&&t.debug||!1,n=!(t&&typeof t.nested===!1),r=t&&t.startIndex||0;i&&console.log("[xml-utils] starting findTagByName with",A," and ",t);const o=D$(e,`<${A}[ >/]`,r);if(i&&console.log("[xml-utils] start:",o),o===-1)return;const s=e.slice(o+A.length);let a=cf(s,"^[^<]*[ /]>",0);const g=a!==-1&&s[a-1]==="/";if(i&&console.log("[xml-utils] selfClosing:",g),g===!1)if(n){let C=0,B=1,u=0;for(;(a=cf(s,"[ /]"+A+">",C))!==-1;){const E=s.substring(C,a+1);if(B+=FR(E,"<"+A),u+=FR(E,"/"+A+">"),u>=B)break;C=a}}else a=cf(s,"[ /]"+A+">",0);const I=o+A.length+a+1;if(i&&console.log("[xml-utils] end:",I),I===-1)return;const l=e.slice(o,I);let c;return g?c=null:c=l.slice(l.indexOf(">")+1,l.lastIndexOf("<")),{inner:c,outer:l,start:o,end:I}}wy.exports=bG;wy.exports.default=bG;const R$=wy.exports;function GG(e,A,t){const i=[],n=t&&t.debug||!1,r=t&&typeof t.nested=="boolean"?t.nested:!0;let o=t&&t.startIndex||0,s;for(;s=R$(e,A,{debug:n,startIndex:o});)r?o=s.start+1+A.length:o=s.end,i.push(s);return n&&console.log("findTagsByName found",i.length,"tags"),i}my.exports=GG;my.exports.default=GG;var x$=my.exports;const QI={315:"Artist",258:"BitsPerSample",265:"CellLength",264:"CellWidth",320:"ColorMap",259:"Compression",33432:"Copyright",306:"DateTime",338:"ExtraSamples",266:"FillOrder",289:"FreeByteCounts",288:"FreeOffsets",291:"GrayResponseCurve",290:"GrayResponseUnit",316:"HostComputer",270:"ImageDescription",257:"ImageLength",256:"ImageWidth",271:"Make",281:"MaxSampleValue",280:"MinSampleValue",272:"Model",254:"NewSubfileType",274:"Orientation",262:"PhotometricInterpretation",284:"PlanarConfiguration",296:"ResolutionUnit",278:"RowsPerStrip",277:"SamplesPerPixel",305:"Software",279:"StripByteCounts",273:"StripOffsets",255:"SubfileType",263:"Threshholding",282:"XResolution",283:"YResolution",326:"BadFaxLines",327:"CleanFaxData",343:"ClipPath",328:"ConsecutiveBadFaxLines",433:"Decode",434:"DefaultImageColor",269:"DocumentName",336:"DotRange",321:"HalftoneHints",346:"Indexed",347:"JPEGTables",285:"PageName",297:"PageNumber",317:"Predictor",319:"PrimaryChromaticities",532:"ReferenceBlackWhite",339:"SampleFormat",340:"SMinSampleValue",341:"SMaxSampleValue",559:"StripRowCounts",330:"SubIFDs",292:"T4Options",293:"T6Options",325:"TileByteCounts",323:"TileLength",324:"TileOffsets",322:"TileWidth",301:"TransferFunction",318:"WhitePoint",344:"XClipPathUnits",286:"XPosition",529:"YCbCrCoefficients",531:"YCbCrPositioning",530:"YCbCrSubSampling",345:"YClipPathUnits",287:"YPosition",37378:"ApertureValue",40961:"ColorSpace",36868:"DateTimeDigitized",36867:"DateTimeOriginal",34665:"Exif IFD",36864:"ExifVersion",33434:"ExposureTime",41728:"FileSource",37385:"Flash",40960:"FlashpixVersion",33437:"FNumber",42016:"ImageUniqueID",37384:"LightSource",37500:"MakerNote",37377:"ShutterSpeedValue",37510:"UserComment",33723:"IPTC",34675:"ICC Profile",700:"XMP",42112:"GDAL_METADATA",42113:"GDAL_NODATA",34377:"Photoshop",33550:"ModelPixelScale",33922:"ModelTiepoint",34264:"ModelTransformation",34735:"GeoKeyDirectory",34736:"GeoDoubleParams",34737:"GeoAsciiParams",50674:"LercParameters"},$i={};for(const e in QI)QI.hasOwnProperty(e)&&($i[QI[e]]=parseInt(e,10));const F$=[$i.BitsPerSample,$i.ExtraSamples,$i.SampleFormat,$i.StripByteCounts,$i.StripOffsets,$i.StripRowCounts,$i.TileByteCounts,$i.TileOffsets,$i.SubIFDs],Cf={1:"BYTE",2:"ASCII",3:"SHORT",4:"LONG",5:"RATIONAL",6:"SBYTE",7:"UNDEFINED",8:"SSHORT",9:"SLONG",10:"SRATIONAL",11:"FLOAT",12:"DOUBLE",13:"IFD",16:"LONG8",17:"SLONG8",18:"IFD8"},jA={};for(const e in Cf)Cf.hasOwnProperty(e)&&(jA[Cf[e]]=parseInt(e,10));const $t={WhiteIsZero:0,BlackIsZero:1,RGB:2,Palette:3,TransparencyMask:4,CMYK:5,YCbCr:6,CIELab:8,ICCLab:9},N$={Unspecified:0,Assocalpha:1,Unassalpha:2},DuA={Version:0,AddCompression:1},RuA={None:0,Deflate:1},L$={1024:"GTModelTypeGeoKey",1025:"GTRasterTypeGeoKey",1026:"GTCitationGeoKey",2048:"GeographicTypeGeoKey",2049:"GeogCitationGeoKey",2050:"GeogGeodeticDatumGeoKey",2051:"GeogPrimeMeridianGeoKey",2052:"GeogLinearUnitsGeoKey",2053:"GeogLinearUnitSizeGeoKey",2054:"GeogAngularUnitsGeoKey",2055:"GeogAngularUnitSizeGeoKey",2056:"GeogEllipsoidGeoKey",2057:"GeogSemiMajorAxisGeoKey",2058:"GeogSemiMinorAxisGeoKey",2059:"GeogInvFlatteningGeoKey",2060:"GeogAzimuthUnitsGeoKey",2061:"GeogPrimeMeridianLongGeoKey",2062:"GeogTOWGS84GeoKey",3072:"ProjectedCSTypeGeoKey",3073:"PCSCitationGeoKey",3074:"ProjectionGeoKey",3075:"ProjCoordTransGeoKey",3076:"ProjLinearUnitsGeoKey",3077:"ProjLinearUnitSizeGeoKey",3078:"ProjStdParallel1GeoKey",3079:"ProjStdParallel2GeoKey",3080:"ProjNatOriginLongGeoKey",3081:"ProjNatOriginLatGeoKey",3082:"ProjFalseEastingGeoKey",3083:"ProjFalseNorthingGeoKey",3084:"ProjFalseOriginLongGeoKey",3085:"ProjFalseOriginLatGeoKey",3086:"ProjFalseOriginEastingGeoKey",3087:"ProjFalseOriginNorthingGeoKey",3088:"ProjCenterLongGeoKey",3089:"ProjCenterLatGeoKey",3090:"ProjCenterEastingGeoKey",3091:"ProjCenterNorthingGeoKey",3092:"ProjScaleAtNatOriginGeoKey",3093:"ProjScaleAtCenterGeoKey",3094:"ProjAzimuthAngleGeoKey",3095:"ProjStraightVertPoleLongGeoKey",3096:"ProjRectifiedGridAngleGeoKey",4096:"VerticalCSTypeGeoKey",4097:"VerticalCitationGeoKey",4098:"VerticalDatumGeoKey",4099:"VerticalUnitsGeoKey"};function b$(e,A){const{width:t,height:i}=e,n=new Uint8Array(t*i*3);let r;for(let o=0,s=0;o>24,a=e[n+2]<<24>>24;let g=(o+16)/116,I=s/500+g,l=g-a/200,c,C,B;I=T$*(I*I*I>.008856?I*I*I:(I-16/116)/7.787),g=U$*(g*g*g>.008856?g*g*g:(g-16/116)/7.787),l=P$*(l*l*l>.008856?l*l*l:(l-16/116)/7.787),c=I*3.2406+g*-1.5372+l*-.4986,C=I*-.9689+g*1.8758+l*.0415,B=I*.0557+g*-.204+l*1.057,c=c>.0031308?1.055*c**(1/2.4)-.055:12.92*c,C=C>.0031308?1.055*C**(1/2.4)-.055:12.92*C,B=B>.0031308?1.055*B**(1/2.4)-.055:12.92*B,i[r]=Math.max(0,Math.min(1,c))*255,i[r+1]=Math.max(0,Math.min(1,C))*255,i[r+2]=Math.max(0,Math.min(1,B))*255}return i}const q$="modulepreload",NR={},J$="/",ss=function(A,t){return!t||t.length===0?A():Promise.all(t.map(i=>{if(i=`${J$}${i}`,i in NR)return;NR[i]=!0;const n=i.endsWith(".css"),r=n?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${i}"]${r}`))return;const o=document.createElement("link");if(o.rel=n?"stylesheet":q$,n||(o.as="script",o.crossOrigin=""),o.href=i,document.head.appendChild(o),n)return new Promise((s,a)=>{o.addEventListener("load",s),o.addEventListener("error",()=>a(new Error(`Unable to preload CSS for ${i}`)))})})).then(()=>A())},_G=new Map;function Wn(e,A){Array.isArray(e)||(e=[e]),e.forEach(t=>_G.set(t,A))}async function O$(e){const A=_G.get(e.Compression);if(!A)throw new Error(`Unknown compression method identifier: ${e.Compression}`);const t=await A();return new t(e)}Wn([void 0,1],()=>ss(()=>import("./raw.db67f73b.js"),[]).then(e=>e.default));Wn(5,()=>ss(()=>import("./lzw.0d287a28.js"),[]).then(e=>e.default));Wn(6,()=>{throw new Error("old style JPEG compression is not supported.")});Wn(7,()=>ss(()=>import("./jpeg.b48bde09.js"),[]).then(e=>e.default));Wn([8,32946],()=>ss(()=>import("./deflate.148275c2.js"),["assets/deflate.148275c2.js","assets/pako.esm.343ed2eb.js"]).then(e=>e.default));Wn(32773,()=>ss(()=>import("./packbits.14d99599.js"),[]).then(e=>e.default));Wn(34887,()=>ss(()=>import("./lerc.b5f6acc6.js"),["assets/lerc.b5f6acc6.js","assets/pako.esm.343ed2eb.js"]).then(e=>e.default));Wn(50001,()=>ss(()=>import("./webimage.dbd54e7c.js"),[]).then(e=>e.default));function su(e,A,t,i=1){return new(Object.getPrototypeOf(e)).constructor(A*t*i)}function Y$(e,A,t,i,n){const r=A/i,o=t/n;return e.map(s=>{const a=su(s,i,n);for(let g=0;g{const a=su(s,i,n);for(let g=0;g>8-n-m&l;else if(m+n<=16)I[d]=s.getUint16(w)>>16-n-m&l;else if(m+n<=24){const v=s.getUint16(w)<<8|s.getUint8(w+2);I[d]=v>>24-n-m&l}else I[d]=s.getUint32(w)>>32-n-m&l}}}}return I.buffer}class AAA{constructor(A,t,i,n,r,o){this.fileDirectory=A,this.geoKeys=t,this.dataView=i,this.littleEndian=n,this.tiles=r?{}:null,this.isTiled=!A.StripOffsets;const s=A.PlanarConfiguration;if(this.planarConfiguration=typeof s=="undefined"?1:s,this.planarConfiguration!==1&&this.planarConfiguration!==2)throw new Error("Invalid planar configuration.");this.source=o}getFileDirectory(){return this.fileDirectory}getGeoKeys(){return this.geoKeys}getWidth(){return this.fileDirectory.ImageWidth}getHeight(){return this.fileDirectory.ImageLength}getSamplesPerPixel(){return typeof this.fileDirectory.SamplesPerPixel!="undefined"?this.fileDirectory.SamplesPerPixel:1}getTileWidth(){return this.isTiled?this.fileDirectory.TileWidth:this.getWidth()}getTileHeight(){return this.isTiled?this.fileDirectory.TileLength:typeof this.fileDirectory.RowsPerStrip!="undefined"?Math.min(this.fileDirectory.RowsPerStrip,this.getHeight()):this.getHeight()}getBlockWidth(){return this.getTileWidth()}getBlockHeight(A){return this.isTiled||(A+1)*this.getTileHeight()<=this.getHeight()?this.getTileHeight():this.getHeight()-A*this.getTileHeight()}getBytesPerPixel(){let A=0;for(let t=0;t=this.fileDirectory.BitsPerSample.length)throw new RangeError(`Sample index ${A} is out of range.`);return Math.ceil(this.fileDirectory.BitsPerSample[A]/8)}getReaderForSample(A){const t=this.fileDirectory.SampleFormat?this.fileDirectory.SampleFormat[A]:1,i=this.fileDirectory.BitsPerSample[A];switch(t){case 1:if(i<=8)return DataView.prototype.getUint8;if(i<=16)return DataView.prototype.getUint16;if(i<=32)return DataView.prototype.getUint32;break;case 2:if(i<=8)return DataView.prototype.getInt8;if(i<=16)return DataView.prototype.getInt16;if(i<=32)return DataView.prototype.getInt32;break;case 3:switch(i){case 16:return function(n,r){return RG(this,n,r)};case 32:return DataView.prototype.getFloat32;case 64:return DataView.prototype.getFloat64}break}throw Error("Unsupported data format/bitsPerSample")}getSampleFormat(A=0){return this.fileDirectory.SampleFormat?this.fileDirectory.SampleFormat[A]:1}getBitsPerSample(A=0){return this.fileDirectory.BitsPerSample[A]}getArrayForSample(A,t){const i=this.getSampleFormat(A),n=this.getBitsPerSample(A);return bd(i,n,t)}async getTileOrStrip(A,t,i,n,r){const o=Math.ceil(this.getWidth()/this.getTileWidth()),s=Math.ceil(this.getHeight()/this.getTileHeight());let a;const{tiles:g}=this;this.planarConfiguration===1?a=t*o+A:this.planarConfiguration===2&&(a=i*o*s+t*o+A);let I,l;this.isTiled?(I=this.fileDirectory.TileOffsets[a],l=this.fileDirectory.TileByteCounts[a]):(I=this.fileDirectory.StripOffsets[a],l=this.fileDirectory.StripByteCounts[a]);const c=(await this.source.fetch([{offset:I,length:l}],r))[0];let C;return g===null||!g[a]?(C=(async()=>{let B=await n.decode(this.fileDirectory,c);const u=this.getSampleFormat(),E=this.getBitsPerSample();return Z$(u,E)&&(B=$$(B,u,this.planarConfiguration,this.getSamplesPerPixel(),E,this.getTileWidth(),this.getBlockHeight(t))),B})(),g!==null&&(g[a]=C)):C=g[a],{x:A,y:t,sample:i,data:await C}}async _readRaster(A,t,i,n,r,o,s,a,g){const I=this.getTileWidth(),l=this.getTileHeight(),c=this.getWidth(),C=this.getHeight(),B=Math.max(Math.floor(A[0]/I),0),u=Math.min(Math.ceil(A[2]/I),Math.ceil(c/I)),E=Math.max(Math.floor(A[1]/l),0),h=Math.min(Math.ceil(A[3]/l),Math.ceil(C/l)),f=A[2]-A[0];let Q=this.getBytesPerPixel();const d=[],w=[];for(let x=0;x{const W=P.data,J=new DataView(W),Z=this.getBlockHeight(P.y),z=P.y*l,O=P.x*I,Y=z+Z,k=(P.x+1)*I,q=w[N],j=Math.min(Z,Z-(Y-A[3]),C-z),AA=Math.min(I,I-(k-A[2]),c-O);for(let iA=Math.max(0,A[1]-z);iAI[2]||I[1]>I[3])throw new Error("Invalid subsets");const l=I[2]-I[0],c=I[3]-I[1],C=l*c,B=this.getSamplesPerPixel();if(!t||!t.length)for(let f=0;f=B)return Promise.reject(new RangeError(`Invalid sample index '${t[f]}'.`));let u;if(i){const f=this.fileDirectory.SampleFormat?Math.max.apply(null,this.fileDirectory.SampleFormat):1,Q=Math.max.apply(null,this.fileDirectory.BitsPerSample);u=bd(f,Q,C*t.length),a&&u.fill(a)}else{u=[];for(let f=0;fg[2]||g[1]>g[3])throw new Error("Invalid subsets");const I=this.fileDirectory.PhotometricInterpretation;if(I===$t.RGB){let h=[0,1,2];if(this.fileDirectory.ExtraSamples!==N$.Unspecified&&s){h=[];for(let f=0;flf(r,"sample")===void 0):n=n.filter(r=>Number(lf(r,"sample"))===A);for(let r=0;r0;let r=!0;for(let o=0;o<8;o++){let s=this._dataView.getUint8(A+(t?o:7-o));n&&(r?s!==0&&(s=~(s-1)&255,r=!1):s=~s&255),i+=s*256**o}return n&&(i=-i),i}getUint8(A,t){return this._dataView.getUint8(A,t)}getInt8(A,t){return this._dataView.getInt8(A,t)}getUint16(A,t){return this._dataView.getUint16(A,t)}getInt16(A,t){return this._dataView.getInt16(A,t)}getUint32(A,t){return this._dataView.getUint32(A,t)}getInt32(A,t){return this._dataView.getInt32(A,t)}getFloat16(A,t){return RG(this._dataView,A,t)}getFloat32(A,t){return this._dataView.getFloat32(A,t)}getFloat64(A,t){return this._dataView.getFloat64(A,t)}}class tAA{constructor(A,t,i,n){this._dataView=new DataView(A),this._sliceOffset=t,this._littleEndian=i,this._bigTiff=n}get sliceOffset(){return this._sliceOffset}get sliceTop(){return this._sliceOffset+this.buffer.byteLength}get littleEndian(){return this._littleEndian}get bigTiff(){return this._bigTiff}get buffer(){return this._dataView.buffer}covers(A,t){return this.sliceOffset<=A&&this.sliceTop>=A+t}readUint8(A){return this._dataView.getUint8(A-this._sliceOffset,this._littleEndian)}readInt8(A){return this._dataView.getInt8(A-this._sliceOffset,this._littleEndian)}readUint16(A){return this._dataView.getUint16(A-this._sliceOffset,this._littleEndian)}readInt16(A){return this._dataView.getInt16(A-this._sliceOffset,this._littleEndian)}readUint32(A){return this._dataView.getUint32(A-this._sliceOffset,this._littleEndian)}readInt32(A){return this._dataView.getInt32(A-this._sliceOffset,this._littleEndian)}readFloat32(A){return this._dataView.getFloat32(A-this._sliceOffset,this._littleEndian)}readFloat64(A){return this._dataView.getFloat64(A-this._sliceOffset,this._littleEndian)}readUint64(A){const t=this.readUint32(A),i=this.readUint32(A+4);let n;if(this._littleEndian){if(n=t+2**32*i,!Number.isSafeInteger(n))throw new Error(`${n} exceeds MAX_SAFE_INTEGER. Precision may be lost. Please report if you get this message to https://github.com/geotiffjs/geotiff.js/issues`);return n}if(n=2**32*t+i,!Number.isSafeInteger(n))throw new Error(`${n} exceeds MAX_SAFE_INTEGER. Precision may be lost. Please report if you get this message to https://github.com/geotiffjs/geotiff.js/issues`);return n}readInt64(A){let t=0;const i=(this._dataView.getUint8(A+(this._littleEndian?7:0))&128)>0;let n=!0;for(let r=0;r<8;r++){let o=this._dataView.getUint8(A+(this._littleEndian?r:7-r));i&&(n?o!==0&&(o=~(o-1)&255,n=!1):o=~o&255),t+=o*256**r}return i&&(t=-t),t}readOffset(A){return this._bigTiff?this.readUint64(A):this.readUint32(A)}}const LR=`\r \r -`;function GG(e){if(typeof Object.fromEntries!="undefined")return Object.fromEntries(e);const A={};for(const[t,i]of e)A[t.toLowerCase()]=i;return A}function AAA(e){const A=e.split(`\r -`).map(t=>{const i=t.split(":").map(n=>n.trim());return i[0]=i[0].toLowerCase(),i});return GG(A)}function eAA(e){const[A,...t]=e.split(";").map(n=>n.trim()),i=t.map(n=>n.split("="));return{type:A,params:GG(i)}}function bd(e){let A,t,i;return e&&([,A,t,i]=e.match(/bytes (\d+)-(\d+)\/(\d+)/),A=parseInt(A,10),t=parseInt(t,10),i=parseInt(i,10)),{start:A,end:t,total:i}}function tAA(e,A){let t=null;const i=new TextDecoder("ascii"),n=[],r=`--${A}`,o=`${r}--`;for(let s=0;s<10;++s)i.decode(new Uint8Array(e,s,r.length))===r&&(t=s);if(t===null)throw new Error("Could not find initial boundary");for(;tthis.fetchSlice(i,t)))}async fetchSlice(A){throw new Error(`fetching of slice ${A} not possible, not implemented`)}get fileSize(){return null}async close(){}}class iAA extends Map{constructor(A={}){if(super(),!(A.maxSize&&A.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");if(typeof A.maxAge=="number"&&A.maxAge===0)throw new TypeError("`maxAge` must be a number greater than 0");this.maxSize=A.maxSize,this.maxAge=A.maxAge||Number.POSITIVE_INFINITY,this.onEviction=A.onEviction,this.cache=new Map,this.oldCache=new Map,this._size=0}_emitEvictions(A){if(typeof this.onEviction=="function")for(const[t,i]of A)this.onEviction(t,i.value)}_deleteIfExpired(A,t){return typeof t.expiry=="number"&&t.expiry<=Date.now()?(typeof this.onEviction=="function"&&this.onEviction(A,t.value),this.delete(A)):!1}_getOrDeleteIfExpired(A,t){if(this._deleteIfExpired(A,t)===!1)return t.value}_getItemValue(A,t){return t.expiry?this._getOrDeleteIfExpired(A,t):t.value}_peek(A,t){const i=t.get(A);return this._getItemValue(A,i)}_set(A,t){this.cache.set(A,t),this._size++,this._size>=this.maxSize&&(this._size=0,this._emitEvictions(this.oldCache),this.oldCache=this.cache,this.cache=new Map)}_moveToRecent(A,t){this.oldCache.delete(A),this._set(A,t)}*_entriesAscending(){for(const A of this.oldCache){const[t,i]=A;this.cache.has(t)||this._deleteIfExpired(t,i)===!1&&(yield A)}for(const A of this.cache){const[t,i]=A;this._deleteIfExpired(t,i)===!1&&(yield A)}}get(A){if(this.cache.has(A)){const t=this.cache.get(A);return this._getItemValue(A,t)}if(this.oldCache.has(A)){const t=this.oldCache.get(A);if(this._deleteIfExpired(A,t)===!1)return this._moveToRecent(A,t),t.value}}set(A,t,{maxAge:i=this.maxAge}={}){const n=typeof i=="number"&&i!==Number.POSITIVE_INFINITY?Date.now()+i:void 0;this.cache.has(A)?this.cache.set(A,{value:t,expiry:n}):this._set(A,{value:t,expiry:n})}has(A){return this.cache.has(A)?!this._deleteIfExpired(A,this.cache.get(A)):this.oldCache.has(A)?!this._deleteIfExpired(A,this.oldCache.get(A)):!1}peek(A){if(this.cache.has(A))return this._peek(A,this.cache);if(this.oldCache.has(A))return this._peek(A,this.oldCache)}delete(A){const t=this.cache.delete(A);return t&&this._size--,this.oldCache.delete(A)||t}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}resize(A){if(!(A&&A>0))throw new TypeError("`maxSize` must be a number greater than 0");const t=[...this._entriesAscending()],i=t.length-A;i<0?(this.cache=new Map(t),this.oldCache=new Map,this._size=t.length):(i>0&&this._emitEvictions(t.slice(0,i)),this.oldCache=new Map(t.slice(i)),this.cache=new Map,this._size=0),this.maxSize=A}*keys(){for(const[A]of this)yield A}*values(){for(const[,A]of this)yield A}*[Symbol.iterator](){for(const A of this.cache){const[t,i]=A;this._deleteIfExpired(t,i)===!1&&(yield[t,i.value])}for(const A of this.oldCache){const[t,i]=A;this.cache.has(t)||this._deleteIfExpired(t,i)===!1&&(yield[t,i.value])}}*entriesDescending(){let A=[...this.cache];for(let t=A.length-1;t>=0;--t){const i=A[t],[n,r]=i;this._deleteIfExpired(n,r)===!1&&(yield[n,r.value])}A=[...this.oldCache];for(let t=A.length-1;t>=0;--t){const i=A[t],[n,r]=i;this.cache.has(n)||this._deleteIfExpired(n,r)===!1&&(yield[n,r.value])}}*entriesAscending(){for(const[A,t]of this._entriesAscending())yield[A,t.value]}get size(){if(!this._size)return this.oldCache.size;let A=0;for(const t of this.oldCache.keys())this.cache.has(t)||A++;return Math.min(this._size+A,this.maxSize)}entries(){return this.entriesAscending()}forEach(A,t=this){for(const[i,n]of this.entriesAscending())A.call(t,n,i,this)}get[Symbol.toStringTag](){return JSON.stringify([...this.entriesAscending()])}}async function nAA(e){return new Promise(A=>setTimeout(A,e))}function rAA(e,A){const t=Array.isArray(e)?e:Array.from(e),i=Array.isArray(A)?A:Array.from(A);return t.map((n,r)=>[n,i[r]])}class ya extends Error{constructor(A){super(A),Error.captureStackTrace&&Error.captureStackTrace(this,ya),this.name="AbortError"}}class oAA extends Error{constructor(A,t){super(t),this.errors=A,this.message=t,this.name="AggregateError"}}const sAA=oAA;class aAA{constructor(A,t,i=null){this.offset=A,this.length=t,this.data=i}get top(){return this.offset+this.length}}class LR{constructor(A,t,i){this.offset=A,this.length=t,this.blockIds=i}}class gAA extends au{constructor(A,{blockSize:t=65536,cacheSize:i=100}={}){super(),this.source=A,this.blockSize=t,this.blockCache=new iAA({maxSize:i}),this.blockRequests=new Map,this.blockIdsToFetch=new Set,this.abortedBlockIds=new Set}get fileSize(){return this.source.fileSize}async fetch(A,t){const i=[],n=[],r=[];for(const{offset:c,length:C}of A){let B=c+C;const{fileSize:u}=this;u!==null&&(B=Math.min(B,u));const E=Math.floor(c/this.blockSize)*this.blockSize;for(let h=E;hthis.abortedBlockIds.has(c)||!this.blockCache.has(c));if(a.forEach(c=>this.blockIdsToFetch.add(c)),a.length>0&&t&&!t.aborted){this.fetchBlocks(null);for(const c of a){const C=this.blockRequests.get(c);if(!C)throw new Error(`Block ${c} is not in the block requests`);s.push(C)}await Promise.allSettled(s)}if(t&&t.aborted)throw new ya("Request was aborted");const g=r.map(c=>this.blockCache.get(c)),I=g.filter(c=>!c);if(I.length)throw new sAA(I,"Request failed");const l=new Map(rAA(r,g));return this.readSliceData(A,l)}fetchBlocks(A){if(this.blockIdsToFetch.size>0){const t=this.groupBlocks(this.blockIdsToFetch),i=this.source.fetch(t,A);for(let n=0;n{try{const s=(await i)[n],a=o*this.blockSize,g=a-s.offset,I=Math.min(g+this.blockSize,s.data.byteLength),l=s.data.slice(g,I),c=new aAA(a,l.byteLength,l,o);this.blockCache.set(o,c),this.abortedBlockIds.delete(o)}catch(s){if(s.name==="AbortError")s.signal=A,this.blockCache.delete(o),this.abortedBlockIds.add(o);else throw s}finally{this.blockRequests.delete(o)}})())}this.blockIdsToFetch.clear()}}groupBlocks(A){const t=Array.from(A).sort((o,s)=>o-s);if(t.length===0)return[];let i=[],n=null;const r=[];for(const o of t)n===null||n+1===o?(i.push(o),n=o):(r.push(new LR(i[0]*this.blockSize,i.length*this.blockSize,i)),i=[o],n=o);return r.push(new LR(i[0]*this.blockSize,i.length*this.blockSize,i)),r}readSliceData(A,t){return A.map(i=>{let n=i.offset+i.length;this.fileSize!==null&&(n=Math.min(this.fileSize,n));const r=Math.floor(i.offset/this.blockSize),o=Math.floor(n/this.blockSize),s=new ArrayBuffer(i.length),a=new Uint8Array(s);for(let g=r;g<=o;++g){const I=t.get(g),l=I.offset-i.offset,c=I.top-n;let C=0,B=0,u;l<0?C=-l:l>0&&(B=l),c<0?u=I.length-C:u=n-I.offset-C;const E=new Uint8Array(I.data,C,u);a.set(E,B)}return s})}}class Dy{get ok(){return this.status>=200&&this.status<=299}get status(){throw new Error("not implemented")}getHeader(A){throw new Error("not implemented")}async getData(){throw new Error("not implemented")}}class Ry{constructor(A){this.url=A}async request({headers:A,credentials:t,signal:i}={}){throw new Error("request is not implemented")}}class IAA extends Dy{constructor(A){super(),this.response=A}get status(){return this.response.status}getHeader(A){return this.response.headers.get(A)}async getData(){return this.response.arrayBuffer?await this.response.arrayBuffer():(await this.response.buffer()).buffer}}class lAA extends Ry{constructor(A,t){super(A),this.credentials=t}async request({headers:A,credentials:t,signal:i}={}){const n=await fetch(this.url,{headers:A,credentials:t,signal:i});return new IAA(n)}}class cAA extends Dy{constructor(A,t){super(),this.xhr=A,this.data=t}get status(){return this.xhr.status}getHeader(A){return this.xhr.getResponseHeader(A)}async getData(){return this.data}}class CAA extends Ry{constructRequest(A,t){return new Promise((i,n)=>{const r=new XMLHttpRequest;r.open("GET",this.url),r.responseType="arraybuffer";for(const[o,s]of Object.entries(A))r.setRequestHeader(o,s);r.onload=()=>{const o=r.response;i(new cAA(r,o))},r.onerror=n,r.onabort=()=>n(new ya("Request aborted")),r.send(),t&&(t.aborted&&r.abort(),t.addEventListener("abort",()=>r.abort()))})}async request({headers:A,signal:t}={}){return await this.constructRequest(A,t)}}class BAA extends Dy{constructor(A,t){super(),this.response=A,this.dataPromise=t}get status(){return this.response.statusCode}getHeader(A){return this.response.headers[A]}async getData(){return await this.dataPromise}}class EAA extends Ry{constructor(A){super(A),this.parsedUrl=na.parse(this.url),this.httpApi=(this.parsedUrl.protocol==="http:",na)}constructRequest(A,t){return new Promise((i,n)=>{const r=this.httpApi.get({...this.parsedUrl,headers:A},o=>{const s=new Promise(a=>{const g=[];o.on("data",I=>{g.push(I)}),o.on("end",()=>{const I=Buffer.concat(g).buffer;a(I)}),o.on("error",n)});i(new BAA(o,s))});r.on("error",n),t&&(t.aborted&&r.destroy(new ya("Request aborted")),t.addEventListener("abort",()=>r.destroy(new ya("Request aborted"))))})}async request({headers:A,signal:t}={}){return await this.constructRequest(A,t)}}class xy extends au{constructor(A,t,i,n){super(),this.client=A,this.headers=t,this.maxRanges=i,this.allowFullFile=n,this._fileSize=null}async fetch(A,t){return this.maxRanges>=A.length?this.fetchSlices(A,t):(this.maxRanges>0&&A.length>1,Promise.all(A.map(i=>this.fetchSlice(i,t))))}async fetchSlices(A,t){const i=await this.client.request({headers:{...this.headers,Range:`bytes=${A.map(({offset:n,length:r})=>`${n}-${n+r}`).join(",")}`},signal:t});if(i.ok)if(i.status===206){const{type:n,params:r}=eAA(i.getHeader("content-type"));if(n==="multipart/byteranges"){const l=tAA(await i.getData(),r.boundary);return this._fileSize=l[0].fileSize||null,l}const o=await i.getData(),{start:s,end:a,total:g}=bd(i.getHeader("content-range"));this._fileSize=g||null;const I=[{data:o,offset:s,length:a-s}];if(A.length>1){const l=await Promise.all(A.slice(1).map(c=>this.fetchSlice(c,t)));return I.concat(l)}return I}else{if(!this.allowFullFile)throw new Error("Server responded with full file");const n=await i.getData();return this._fileSize=n.byteLength,[{data:n,offset:0,length:n.byteLength}]}else throw new Error("Error fetching data.")}async fetchSlice(A,t){const{offset:i,length:n}=A,r=await this.client.request({headers:{...this.headers,Range:`bytes=${i}-${i+n}`},signal:t});if(r.ok)if(r.status===206){const o=await r.getData(),{total:s}=bd(r.getHeader("content-range"));return this._fileSize=s||null,{data:o,offset:i,length:n}}else{if(!this.allowFullFile)throw new Error("Server responded with full file");const o=await r.getData();return this._fileSize=o.byteLength,{data:o,offset:0,length:o.byteLength}}else throw new Error("Error fetching data.")}get fileSize(){return this._fileSize}}function Fy(e,{blockSize:A,cacheSize:t}){return A===null?e:new gAA(e,{blockSize:A,cacheSize:t})}function uAA(e,{headers:A={},credentials:t,maxRanges:i=0,allowFullFile:n=!1,...r}={}){const o=new lAA(e,t),s=new xy(o,A,i,n);return Fy(s,r)}function hAA(e,{headers:A={},maxRanges:t=0,allowFullFile:i=!1,...n}={}){const r=new CAA(e),o=new xy(r,A,t,i);return Fy(o,n)}function fAA(e,{headers:A={},maxRanges:t=0,allowFullFile:i=!1,...n}={}){const r=new EAA(e),o=new xy(r,A,t,i);return Fy(o,n)}function QAA(e,{forceXHR:A=!1,...t}={}){return typeof fetch=="function"&&!A?uAA(e,t):typeof XMLHttpRequest!="undefined"?hAA(e,t):fAA(e,t)}class dAA extends au{constructor(A){super(),this.file=A}async fetchSlice(A,t){return new Promise((i,n)=>{const r=this.file.slice(A.offset,A.offset+A.length),o=new FileReader;o.onload=s=>i(s.target.result),o.onerror=n,o.onabort=n,o.readAsArrayBuffer(r),t&&t.addEventListener("abort",()=>o.abort())})}}function pAA(e){return new dAA(e)}function yAA(e){return new Promise((A,t)=>{na.close(e,i=>{i?t(i):A()})})}function mAA(e,A,t=void 0){return new Promise((i,n)=>{na.open(e,A,t,(r,o)=>{r?n(r):i(o)})})}function wAA(...e){return new Promise((A,t)=>{na.read(...e,(i,n,r)=>{i?t(i):A({bytesRead:n,buffer:r})})})}class vAA extends au{constructor(A){super(),this.path=A,this.openRequest=mAA(A,"r")}async fetchSlice(A){const t=await this.openRequest,{buffer:i}=await wAA(t,Buffer.alloc(A.length),0,A.length,A.offset);return i.buffer}async close(){const A=await this.openRequest;await yAA(A)}}function SAA(e){return new vAA(e)}function DAA(e,A){let t=e.length-A,i=0;do{for(let n=A;n>0;n--)e[i+A]+=e[i],i++;t-=A}while(t>0)}function RAA(e,A,t){let i=0,n=e.length;const r=n/t;for(;n>A;){for(let s=A;s>0;--s)e[i+A]+=e[i],++i;n-=A}const o=e.slice();for(let s=0;s=e.byteLength);++a){let g;if(A===2){switch(n[0]){case 8:g=new Uint8Array(e,a*s*t*o,s*t*o);break;case 16:g=new Uint16Array(e,a*s*t*o,s*t*o/2);break;case 32:g=new Uint32Array(e,a*s*t*o,s*t*o/4);break;default:throw new Error(`Predictor 2 not allowed with ${n[0]} bits per sample.`)}DAA(g,s)}else A===3&&(g=new Uint8Array(e,a*s*t*o,s*t*o),RAA(g,s,o))}return e}class FAA{async decode(A,t){const i=await this.decodeBlock(t),n=A.Predictor||1;if(n!==1){const r=!A.StripOffsets,o=r?A.TileWidth:A.ImageWidth,s=r?A.TileLength:A.RowsPerStrip||A.ImageLength;return xAA(i,n,o,s,A.BitsPerSample,A.PlanarConfiguration)}return i}}function Gd(e){switch(e){case jA.BYTE:case jA.ASCII:case jA.SBYTE:case jA.UNDEFINED:return 1;case jA.SHORT:case jA.SSHORT:return 2;case jA.LONG:case jA.SLONG:case jA.FLOAT:case jA.IFD:return 4;case jA.RATIONAL:case jA.SRATIONAL:case jA.DOUBLE:case jA.LONG8:case jA.SLONG8:case jA.IFD8:return 8;default:throw new RangeError(`Invalid field type: ${e}`)}}function NAA(e){const A=e.GeoKeyDirectory;if(!A)return null;const t={};for(let i=4;i<=A[3]*4;i+=4){const n=x$[A[i]],r=A[i+1]?dI[A[i+1]]:null,o=A[i+2],s=A[i+3];let a=null;if(!r)a=s;else{if(a=e[r],typeof a=="undefined"||a===null)throw new Error(`Could not get value of geoKey '${n}'.`);typeof a=="string"?a=a.substring(s,s+o-1):a.subarray&&(a=a.subarray(s,s+o),o===1&&(a=a[0]))}t[n]=a}return t}function ms(e,A,t,i){let n=null,r=null;const o=Gd(A);switch(A){case jA.BYTE:case jA.ASCII:case jA.UNDEFINED:n=new Uint8Array(t),r=e.readUint8;break;case jA.SBYTE:n=new Int8Array(t),r=e.readInt8;break;case jA.SHORT:n=new Uint16Array(t),r=e.readUint16;break;case jA.SSHORT:n=new Int16Array(t),r=e.readInt16;break;case jA.LONG:case jA.IFD:n=new Uint32Array(t),r=e.readUint32;break;case jA.SLONG:n=new Int32Array(t),r=e.readInt32;break;case jA.LONG8:case jA.IFD8:n=new Array(t),r=e.readUint64;break;case jA.SLONG8:n=new Array(t),r=e.readInt64;break;case jA.RATIONAL:n=new Uint32Array(t*2),r=e.readUint32;break;case jA.SRATIONAL:n=new Int32Array(t*2),r=e.readInt32;break;case jA.FLOAT:n=new Float32Array(t),r=e.readFloat32;break;case jA.DOUBLE:n=new Float64Array(t),r=e.readFloat64;break;default:throw new RangeError(`Invalid field type: ${A}`)}if(A===jA.RATIONAL||A===jA.SRATIONAL)for(let s=0;sB.getWidth()-u.getWidth());for(let B=0;BE||o&&o>h)break}}let c=t;if(s){const[C,B]=a.getOrigin(),[u,E]=g.getResolution(a);c=[Math.round((s[0]-C)/u),Math.round((s[1]-B)/E),Math.round((s[2]-C)/u),Math.round((s[3]-B)/E)],c=[Math.min(c[0],c[2]),Math.min(c[1],c[3]),Math.max(c[0],c[2]),Math.max(c[1],c[3])]}return g.readRasters({...A,window:c})}}class Vl extends bAA{constructor(A,t,i,n,r={}){super(),this.source=A,this.littleEndian=t,this.bigTiff=i,this.firstIFDOffset=n,this.cache=r.cache||!1,this.ifdRequests=[],this.ghostValues=null}async getSlice(A,t){const i=this.bigTiff?4048:1024;return new $$((await this.source.fetch([{offset:A,length:typeof t!="undefined"?t:i}]))[0],A,this.littleEndian,this.bigTiff)}async parseFileDirectoryAt(A){const t=this.bigTiff?20:12,i=this.bigTiff?8:2;let n=await this.getSlice(A);const r=this.bigTiff?n.readUint64(A):n.readUint16(A),o=r*t+(this.bigTiff?16:6);n.covers(A,o)||(n=await this.getSlice(A,o));const s={};let a=A+(this.bigTiff?8:2);for(let l=0;l{const t=await this.ifdRequests[A-1];if(t.nextIFDByteOffset===0)throw new zc(A);return this.parseFileDirectoryAt(t.nextIFDByteOffset)})(),this.ifdRequests[A]}async getImage(A=0){const t=await this.requestIFD(A);return new bG(t.fileDirectory,t.geoKeyDirectory,this.dataView,this.littleEndian,this.cache,this.source)}async getImageCount(){let A=0,t=!0;for(;t;)try{await this.requestIFD(A),++A}catch(i){if(i instanceof zc)t=!1;else throw i}return A}async getGhostValues(){const A=this.bigTiff?16:8;if(this.ghostValues)return this.ghostValues;const t="GDAL_STRUCTURAL_METADATA_SIZE=",i=t.length+100;let n=await this.getSlice(A,i);if(t===ms(n,jA.ASCII,t.length,A)){const o=ms(n,jA.ASCII,i,A).split(` -`)[0],s=Number(o.split("=")[1].split(" ")[0])+o.length;s>i&&(n=await this.getSlice(A,s));const a=ms(n,jA.ASCII,s,A);this.ghostValues={},a.split(` -`).filter(g=>g.length>0).map(g=>g.split("=")).forEach(([g,I])=>{this.ghostValues[g]=I})}return this.ghostValues}static async fromSource(A,t,i){const n=(await A.fetch([{offset:0,length:1024}],i))[0],r=new Z$(n),o=r.getUint16(0,0);let s;if(o===18761)s=!0;else if(o===19789)s=!1;else throw new TypeError("Invalid byte order value.");const a=r.getUint16(2,s);let g;if(a===42)g=!1;else if(a===43){if(g=!0,r.getUint16(4,s)!==8)throw new Error("Unsupported offset byte-size.")}else throw new TypeError("Invalid magic number.");const I=g?r.getUint64(8,s):r.getUint32(4,s);return new Vl(A,s,g,I,t)}close(){return typeof this.source.close=="function"?this.source.close():!1}}async function gu(e,A={},t){return Vl.fromSource(QAA(e,A),t)}async function _G(e,A){return Vl.fromSource(SAA(e),A)}async function Iu(e,A){return Vl.fromSource(pAA(e),A)}const GAA="__viv",MG=`${GAA}-offsets`;function _AA(e){MAA(e,MG)||console.warn("GeoTIFF source is missing offsets proxy.")}function MAA(e,A){return e[A]}function kAA(e,A){const t=(i,n)=>n==="getImage"?r=>{if(!(r in i.ifdRequests)&&r in A){const o=A[r];i.ifdRequests[r]=i.parseFileDirectoryAt(o)}return i.getImage(r)}:n===MG?!0:Reflect.get(i,n);return new Proxy(e,{get:t})}let xi,jc=null;function bR(){return jc!==null&&jc.buffer===xi.memory.buffer||(jc=new Uint8Array(xi.memory.buffer)),jc}let GR=0,Xc=null;function _R(){return Xc!==null&&Xc.buffer===xi.memory.buffer||(Xc=new Int32Array(xi.memory.buffer)),Xc}async function Ny(e){e===void 0&&(e="".replace(/\.js$/,"_bg.wasm")),(typeof e=="string"||typeof Request=="function"&&e instanceof Request||typeof URL=="function"&&e instanceof URL)&&(e=fetch(e));const{instance:A,module:t}=await async function(i,n){if(typeof Response=="function"&&i instanceof Response){if(typeof WebAssembly.instantiateStreaming=="function")try{return await WebAssembly.instantiateStreaming(i,n)}catch(o){if(i.headers.get("Content-Type")=="application/wasm")throw o;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",o)}const r=await i.arrayBuffer();return await WebAssembly.instantiate(r,n)}{const r=await WebAssembly.instantiate(i,n);return r instanceof WebAssembly.Instance?{instance:r,module:i}:r}}(await e,{});return xi=A.exports,Ny.__wbindgen_wasm_module=t,xi}var TAA=Object.freeze({__proto__:null,decompress:function(e,A){try{const g=xi.__wbindgen_add_to_stack_pointer(-16);var t=function(I,l){const c=l(1*I.length);return bR().set(I,c/1),GR=I.length,c}(e,xi.__wbindgen_malloc),i=GR;xi.decompress(g,t,i,A);var n=_R()[g/4+0],r=_R()[g/4+1],o=(s=n,a=r,bR().subarray(s/1,s/1+a)).slice();return xi.__wbindgen_free(n,1*r),o}finally{xi.__wbindgen_add_to_stack_pointer(16)}var s,a},default:Ny});const UAA=[62,0,0,0,63,52,53,54,55,56,57,58,59,60,61,0,0,0,0,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,0,0,0,0,0,0,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51];function Zc(e){return UAA[e-43]}const PAA=function(e){let A,t=e.endsWith("==")?2:e.endsWith("=")?1:0,i=e.length,n=new Uint8Array(i/4*3);for(let r=0,o=0;r>16,n[o+1]=A>>8&255,n[o+2]=255&A;return n.subarray(0,n.length-t)}("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NwMAIANBEGokAA8LIARBCEHYhcAAEDcACyACQQhByIXAABA3AAuqAgEDfyMAQYABayIEJAACQAJAAn8CQCABKAIAIgNBEHFFBEAgACgCACECIANBIHENASACrSABEBUMAgsgACgCACECQQAhAANAIAAgBGpB/wBqIAJBD3EiA0EwciADQdcAaiADQQpJGzoAACAAQX9qIQAgAkEEdiICDQALIABBgAFqIgJBgQFPDQIgAUGkjsAAQQIgACAEakGAAWpBACAAaxAIDAELQQAhAANAIAAgBGpB/wBqIAJBD3EiA0EwciADQTdqIANBCkkbOgAAIABBf2ohACACQQR2IgINAAsgAEGAAWoiAkGBAU8NAiABQaSOwABBAiAAIARqQYABakEAIABrEAgLIARBgAFqJAAPCyACQYABQZSOwAAQOQALIAJBgAFBlI7AABA5AAuxAgEEfyMAQUBqIgIkACABKAIEIgNFBEAgAUEEaiEDIAEoAgAhBCACQQA2AiAgAkIBNwMYIAIgAkEYajYCJCACQThqIARBEGopAgA3AwAgAkEwaiAEQQhqKQIANwMAIAIgBCkCADcDKCACQSRqQdiJwAAgAkEoahAJGiACQRBqIgQgAigCIDYCACACIAIpAxg3AwgCQCABKAIEIgVFDQAgAUEIaigCAEUNACAFEAQLIAMgAikDCDcCACADQQhqIAQoAgA2AgAgAygCACEDCyABQQE2AgQgAUEMaigCACEEIAFBCGoiASgCACEFIAFCADcCAEEMQQQQWSIBRQRAQQxBBBBjAAsgASAENgIIIAEgBTYCBCABIAM2AgAgAEGQi8AANgIEIAAgATYCACACQUBrJAAL/AEBAn8jAEEQayICJAAgACgCACACQQA2AgwCfwJAAkAgAUGAAU8EQCABQYAQSQ0BIAJBDGohACABQYCABE8NAiACIAFBP3FBgAFyOgAOIAIgAUEMdkHgAXI6AAwgAiABQQZ2QT9xQYABcjoADUEDDAMLIAIgAToADCACQQxqIQBBAQwCCyACIAFBP3FBgAFyOgANIAIgAUEGdkHAAXI6AAwgAkEMaiEAQQIMAQsgAiABQT9xQYABcjoADyACIAFBEnZB8AFyOgAMIAIgAUEGdkE/cUGAAXI6AA4gAiABQQx2QT9xQYABcjoADUEECyEBIAAgARALIAJBEGokAAv5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QSxqQQI2AgAgAUE8akEhNgIAIAFCAjcCHCABQayMwAA2AhggAUEdNgI0IAEgAUEwajYCKCABIAFBEGo2AjggASABQQhqNgIwIAFBGGpB8IDAABBRAAtxAQN/IwBBIGsiAiQAAkAgACABEBkNACABQRxqKAIAIQMgASgCGCACQRxqQQA2AgAgAkHwi8AANgIYIAJCATcCDCACQfSLwAA2AgggAyACQQhqEAkNACAAQQRqIAEQGSACQSBqJAAPCyACQSBqJABBAQswAQF/AkACQEGAwABBAhBZIgENAQwAC0GAwABBAhBjAAsgACABNgIAIABBgCA2AgQLewECfwJAAkAgACgCBCIBBEAgACgCDCICIAFPDQEgACgCACIBIAJqIAEtAAA6AAAgAEEANgIIIAAgACgCDEEBajYCDCAAKAIERQ0CIAAoAgAtAAAPC0EAQQBBiIbAABA2AAsgAiABQZiGwAAQNgALQQBBAEGohsAAEDYAC2gBAn8gACAALQBGIgFBAWoiAjoACiAAQQEgAUEPcXRBAmoiATsBQCAAQX8gAkEPcXRBf3M7AQggAEEYaigCACABQf//A3EiAU8EQCAAIAE2AhgLIABBJGooAgAgAU8EQCAAIAE2AiQLC1ABAX8gAEEUaigCACIBRSABQQJ0RXJFBEAgACgCEBAECyAAQSBqKAIAIgFFIAFBAXRFckUEQCAAKAIcEAQLIABBLGooAgAEQCAAKAIoEAQLC2wBAX8jAEEwayIDJAAgAyABNgIEIAMgADYCACADQRxqQQI2AgAgA0EsakEcNgIAIANCAjcCDCADQYCNwAA2AgggA0EcNgIkIAMgA0EgajYCGCADIAM2AiggAyADQQRqNgIgIANBCGogAhBRAAtsAQF/IwBBMGsiAyQAIAMgATYCBCADIAA2AgAgA0EcakECNgIAIANBLGpBHDYCACADQgI3AgwgA0HMkcAANgIIIANBHDYCJCADIANBIGo2AhggAyADQQRqNgIoIAMgAzYCICADQQhqIAIQUQALbAEBfyMAQTBrIgMkACADIAE2AgQgAyAANgIAIANBHGpBAjYCACADQSxqQRw2AgAgA0ICNwIMIANBgJLAADYCCCADQRw2AiQgAyADQSBqNgIYIAMgA0EEajYCKCADIAM2AiAgA0EIaiACEFEAC2wBAX8jAEEwayIDJAAgAyABNgIEIAMgADYCACADQRxqQQI2AgAgA0EsakEcNgIAIANCAjcCDCADQayRwAA2AgggA0EcNgIkIAMgA0EgajYCGCADIANBBGo2AiggAyADNgIgIANBCGogAhBRAAtcAQF/IwBBEGsiAyQAAkAgACgCBCABayACTwRAIANBADYCAAwBCyADIAAgASACEBYgAygCAEEBRw0AIANBCGooAgAiAARAIAMoAgQgABBjAAsQXQALIANBEGokAAtaAQF/IwBBEGsiAiQAAkAgACgCBCABa0EBTwRAIAJBADYCAAwBCyACIAAgARAeIAIoAgBBAUcNACACQQhqKAIAIgAEQCACKAIEIAAQYwALEF0ACyACQRBqJAALWgEBfyMAQRBrIgIkAAJAIAAoAgQgAWtBAU8EQCACQQA2AgAMAQsgAiAAIAEQHSACKAIAQQFHDQAgAkEIaigCACIABEAgAigCBCAAEGMACxBdAAsgAkEQaiQAC1kBAX8jAEEgayICJAAgAiAAKAIANgIEIAJBGGogAUEQaikCADcDACACQRBqIAFBCGopAgA3AwAgAiABKQIANwMIIAJBBGpB2InAACACQQhqEAkgAkEgaiQAC0YAAkBBCCACSQRAAn9BCCACSQRAIAIgAxAQDAELIAMQAAsiAg0BQQAPCyAAIAMQCg8LIAIgACADIAEgASADSxsQSyAAEAQLWQEBfyMAQSBrIgIkACACIAAoAgA2AgQgAkEYaiABQRBqKQIANwMAIAJBEGogAUEIaikCADcDACACIAEpAgA3AwggAkEEakHwj8AAIAJBCGoQCSACQSBqJAALWQACQAJAAkAgAUF/SgRAAkAgAgRAIAENAQwECyABRQ0DIAFBARBZIgINBAwCCyABEEciAkUNAQwDCxBdAAsgAUEBEGMAC0EBIQILIAAgATYCBCAAIAI2AgALVgEBfyMAQSBrIgIkACACIAA2AgQgAkEYaiABQRBqKQIANwMAIAJBEGogAUEIaikCADcDACACIAEpAgA3AwggAkEEakHwj8AAIAJBCGoQCSACQSBqJAALWQEDfwJAIAEoAgwiAiABKAIIIgNPBEAgASgCBCIEIAJJDQEgASgCACEBIAAgAiADazYCBCAAIAEgA2o2AgAPCyADIAJB2IbAABA4AAsgAiAEQdiGwAAQNwALVQEBfyAAQRBqIAAt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");let Bf;async function HAA(e,A){Bf||(Bf=await(async()=>(await Ny(PAA),TAA))());const t=Bf.decompress(e,A);if(t.length===0)throw Error("Failed to decode with LZW decoder.");return t}class qAA extends FAA{constructor(A){super();const t=A.TileWidth||A.ImageWidth,i=A.TileLength||A.ImageLength,n=A.BitsPerSample[0]/8;this.maxUncompressedSize=t*i*n}async decodeBlock(A){const t=new Uint8Array(A);return(await HAA(t,this.maxUncompressedSize)).buffer}}function xg(e,A,t,i,n){kG(e,A,t||0,i||e.length-1,n||JAA)}function kG(e,A,t,i,n){for(;i>t;){if(i-t>600){var r=i-t+1,o=A-t+1,s=Math.log(r),a=.5*Math.exp(2*s/3),g=.5*Math.sqrt(s*a*(r-a)/r)*(o-r/2<0?-1:1),I=Math.max(t,Math.floor(A-o*a/r+g)),l=Math.min(i,Math.floor(A+(r-o)*a/r+g));kG(e,A,I,l,n)}var c=e[A],C=t,B=i;for(Fg(e,t,A),n(e[i],c)>0&&Fg(e,t,i);C0;)B--}n(e[t],c)===0?Fg(e,t,B):(B++,Fg(e,B,i)),B<=A&&(t=B+1),A<=B&&(i=B-1)}}function Fg(e,A,t){var i=e[A];e[A]=e[t],e[t]=i}function JAA(e,A){return eA?1:0}const Di={uint8:"Uint8",uint16:"Uint16",uint32:"Uint32",float:"Float32",double:"Float64",int8:"Int8",int16:"Int16",int32:"Int32"};function OC(e){let A=e.length,t=1/0,i=-1/0,n=0;for(;A--;)e[A]i&&(i=e[A]),n+=e[A];const r=n/e.length;A=e.length;let o=0;for(;A--;)o+=(e[A]-r)**2;const s=(o/e.length)**.5,a=Math.floor(e.length/2),g=Math.floor(e.length/4),I=3*Math.floor(e.length/4);xg(e,a);const l=e[a];xg(e,g,0,a);const c=e[g];xg(e,I,a,e.length-1);const C=e[I],B=e.filter(Q=>Q>0),u=5e-4,E=Math.floor(B.length*(1-u)),h=Math.floor(B.length*u);xg(B,E),xg(B,h,0,E);const f=[B[h]||0,B[E]||0];return{mean:r,sd:s,q1:c,q3:C,median:l,domain:[t,i],contrastLimits:f}}function MR(e){return Array.isArray(e)?e:[e]}function OAA(e){if(!Number.isInteger(e))throw Error("Not an integer.");const A=new ArrayBuffer(4);new DataView(A).setInt32(0,e,!1);const i=new Uint8Array(A);return Array.from(i)}function Vr(e){const A=e[e.length-1];return A===3||A===4}function VB(e){return e.toLowerCase().split("").reverse()}function TG(e){const A=new Map(e.map((t,i)=>[t,i]));if(A.size!==e.length)throw Error("Labels must be unique, found duplicated label.");return t=>{const i=A.get(t);if(i===void 0)throw Error("Invalid dimension.");return i}}function no(e){const A=Vr(e.shape),[t,i]=e.shape.slice(A?-3:-2);return{height:t,width:i}}function UG(e){return 2**Math.floor(Math.log2(e))}const Ly="__vivSignalAborted";function PG(e){const A=e.getTileWidth(),t=e.getTileHeight(),i=Math.min(A,t);return UG(i)}function YAA({Pixels:e}){const A=VB(e.DimensionOrder),t=TG(A),i=Array(A.length).fill(0);i[t("t")]=e.SizeT,i[t("c")]=e.SizeC,i[t("z")]=e.SizeZ,e.Interleaved&&(A.push("_c"),i.push(3));const n=o=>{const s=[...i];return s[t("x")]=e.SizeX>>o,s[t("y")]=e.SizeY>>o,s};if(!(e.Type in Di))throw Error(`Pixel type ${e.Type} not supported.`);const r=Di[e.Type];if(e.PhysicalSizeX&&e.PhysicalSizeY){const o={x:{size:e.PhysicalSizeX,unit:e.PhysicalSizeXUnit},y:{size:e.PhysicalSizeY,unit:e.PhysicalSizeYUnit}};return e.PhysicalSizeZ&&(o.z={size:e.PhysicalSizeZ,unit:e.PhysicalSizeZUnit}),{labels:A,getShape:n,physicalSizes:o,dtype:r}}return{labels:A,getShape:n,dtype:r}}function KAA(e){const t=e.fileDirectory.SampleFormat?e.fileDirectory.SampleFormat[0]:1,i=e.fileDirectory.BitsPerSample[0];switch(t){case 1:if(i<=8)return Di.uint8;if(i<=16)return Di.uint16;if(i<=32)return Di.uint32;break;case 2:if(i<=8)return Di.int8;if(i<=16)return Di.int16;if(i<=32)return Di.int32;break;case 3:switch(i){case 16:return Di.float;case 32:return Di.float;case 64:return Di.double}break}throw Error("Unsupported data format/bitsPerSample")}function HG(e){let[A,t,i]=[0,0,0];for(const r of e)A=Math.max(A,r.selection.c),t=Math.max(t,r.selection.z),i=Math.max(i,r.selection.t);const n=e[0].tiff;return{x:n.getWidth(),y:n.getHeight(),z:t+1,c:A+1,t:i+1}}function VAA(e,A){const t=Array(A).fill(0);for(const i of e){const n=i.selection.c,r=i.tiff.getSamplesPerPixel(),o=t[n];if(o&&o!=r)throw Error("Channel samples per pixel mismatch");t[n]=r}return t}function WAA(e,A){const t=A[0].tiff,i=HG(A),n=[];for(const s of e.toLowerCase())n.unshift(i[s]);const r=VB(e),o=KAA(t);return{shape:n,labels:r,dtype:o}}function zAA(e,A,t,i,n,r,o){const s=[];for(let a=0;a({"Acquisition Date":s,"Dimensions (XY)":`${g.x} x ${g.y}`,PixelsType:n,"Z-sections/Timepoints":`${g.z} x ${g.t}`,Channels:g.c})}}function kR(e){const A={},t=e.split("/").pop(),i=t==null?void 0:t.split(".");return i&&(A.name=i.slice(0,-1).join("."),[,A.extension]=i),A}var qG={},JG={},un={};(function(e){const A=":A-Za-z_\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD",t=A+"\\-.\\d\\u00B7\\u0300-\\u036F\\u203F-\\u2040",i="["+A+"]["+t+"]*",n=new RegExp("^"+i+"$"),r=function(s,a){const g=[];let I=a.exec(s);for(;I;){const l=[];l.startIndex=a.lastIndex-I[0].length;const c=I.length;for(let C=0;C1){i[o]=[];for(let s in e.child[o])e.child[o].hasOwnProperty(s)&&i[o].push(_d(e.child[o][s],A,o))}else{const s=_d(e.child[o][0],A,o),a=A.arrayMode===!0&&typeof s=="object"||go.isTagNameInArrayMode(o,A.arrayMode,t);i[o]=a?[s]:s}}return i};JG.convertToJson=_d;var qo={},XAA=function(e,A,t){this.tagname=e,this.parent=A,this.child={},this.attrsMap={},this.val=t,this.addChild=function(i){Array.isArray(this.child[i.tagname])?this.child[i.tagname].push(i):this.child[i.tagname]=[i]}};const ZAA=/^[-+]?0x[a-fA-F0-9]+$/,$AA=/^([\-\+])?(0*)(\.[0-9]+([eE]\-?[0-9]+)?|[0-9]+(\.[0-9]+([eE]\-?[0-9]+)?)?)$/;!Number.parseInt&&window.parseInt&&(Number.parseInt=window.parseInt);!Number.parseFloat&&window.parseFloat&&(Number.parseFloat=window.parseFloat);const AeA={hex:!0,leadingZeros:!0,decimalPoint:".",eNotation:!0};function eeA(e,A={}){if(A=Object.assign({},AeA,A),!e||typeof e!="string")return e;let t=e.trim();if(A.skipLike!==void 0&&A.skipLike.test(t))return e;if(A.hex&&ZAA.test(t))return Number.parseInt(t,16);{const i=$AA.exec(t);if(i){const n=i[1],r=i[2];let o=teA(i[3]);const s=i[4]||i[6];if(!A.leadingZeros&&r.length>0&&n&&t[2]!==".")return e;if(!A.leadingZeros&&r.length>0&&!n&&t[1]!==".")return e;{const a=Number(t),g=""+a;return g.search(/[eE]/)!==-1||s?A.eNotation?a:e:t.indexOf(".")!==-1?g==="0"&&o===""||g===o||n&&g==="-"+o?a:e:r?o===g||n+o===g?a:e:t===g||t===n+g?a:e}}else return e}}function teA(e){return e&&e.indexOf(".")!==-1&&(e=e.replace(/0+$/,""),e==="."?e="0":e[0]==="."?e="0"+e:e[e.length-1]==="."&&(e=e.substr(0,e.length-1))),e}var ieA=eeA;const mo=un,neA=un.buildOptions,$c=XAA,reA=ieA;"<((!\\[CDATA\\[([\\s\\S]*?)(]]>))|((NAME:)?(NAME))([^>]*)>|((\\/)(NAME)\\s*>))([^<]*)".replace(/NAME/g,mo.nameRegexp);!Number.parseInt&&window.parseInt&&(Number.parseInt=window.parseInt);!Number.parseFloat&&window.parseFloat&&(Number.parseFloat=window.parseFloat);const OG={attributeNamePrefix:"@_",attrNodeName:!1,textNodeName:"#text",ignoreAttributes:!0,ignoreNameSpace:!1,allowBooleanAttributes:!1,parseNodeValue:!0,parseAttributeValue:!1,arrayMode:!1,trimValues:!0,cdataTagName:!1,cdataPositionChar:"\\c",numParseOptions:{hex:!0,leadingZeros:!0},tagValueProcessor:function(e,A){return e},attrValueProcessor:function(e,A){return e},stopNodes:[],alwaysCreateTextNode:!1};qo.defaultOptions=OG;const YG=["attributeNamePrefix","attrNodeName","textNodeName","ignoreAttributes","ignoreNameSpace","allowBooleanAttributes","parseNodeValue","parseAttributeValue","arrayMode","trimValues","cdataTagName","cdataPositionChar","tagValueProcessor","attrValueProcessor","parseTrueNumberOnly","numParseOptions","stopNodes","alwaysCreateTextNode"];qo.props=YG;function AC(e,A,t){return A&&(t.trimValues&&(A=A.trim()),A=t.tagValueProcessor(A,e),A=KG(A,t.parseNodeValue,t.numParseOptions)),A}function oeA(e,A){if(A.ignoreNameSpace){const t=e.split(":"),i=e.charAt(0)==="/"?"/":"";if(t[0]==="xmlns")return"";t.length===2&&(e=i+t[1])}return e}function KG(e,A,t){if(A&&typeof e=="string"){const i=e.trim();return i==="true"?!0:i==="false"?!1:reA(e,t)}else return mo.isExist(e)?e:""}const seA=new RegExp(`([^\\s=]+)\\s*(=\\s*(['"])(.*?)\\3)?`,"g");function TR(e,A){if(!A.ignoreAttributes&&typeof e=="string"){e=e.replace(/\r?\n/g," ");const t=mo.getAllMatches(e,seA),i=t.length,n={};for(let r=0;r",r,"Closing Tag is not closed.");let a=e.substring(r+2,s).trim();if(A.ignoreNameSpace){const g=a.indexOf(":");g!==-1&&(a=a.substr(g+1))}i&&(i.val?i.val=mo.getValue(i.val)+""+AC(a,n,A):i.val=AC(a,n,A)),A.stopNodes.length&&A.stopNodes.includes(i.tagname)&&(i.child=[],i.attrsMap==null&&(i.attrsMap={}),i.val=e.substr(i.startIndex+1,r-i.startIndex-1)),i=i.parent,n="",r=s}else if(e[r+1]==="?")r=Ng(e,"?>",r,"Pi Tag is not closed.");else if(e.substr(r+1,3)==="!--")r=Ng(e,"-->",r,"Comment is not closed.");else if(e.substr(r+1,2)==="!D"){const s=Ng(e,">",r,"DOCTYPE is not closed.");e.substring(r,s).indexOf("[")>=0?r=e.indexOf("]>",r)+1:r=s}else if(e.substr(r+1,2)==="!["){const s=Ng(e,"]]>",r,"CDATA is not closed.")-2,a=e.substring(r+9,s);if(n&&(i.val=mo.getValue(i.val)+""+AC(i.tagname,n,A),n=""),A.cdataTagName){const g=new $c(A.cdataTagName,i,a);i.addChild(g),i.val=mo.getValue(i.val)+A.cdataPositionChar,a&&(g.val=a)}else i.val=(i.val||"")+(a||"");r=s+2}else{const s=geA(e,r+1);let a=s.data;const g=s.index,I=a.indexOf(" ");let l=a,c=!0;if(I!==-1&&(l=a.substr(0,I).replace(/\s\s*$/,""),a=a.substr(I+1)),A.ignoreNameSpace){const C=l.indexOf(":");C!==-1&&(l=l.substr(C+1),c=l!==s.data.substr(C+1))}if(i&&n&&i.tagname!=="!xml"&&(i.val=mo.getValue(i.val)+""+AC(i.tagname,n,A)),a.length>0&&a.lastIndexOf("/")===a.length-1){l[l.length-1]==="/"?(l=l.substr(0,l.length-1),a=l):a=a.substr(0,a.length-1);const C=new $c(l,i,"");l!==a&&(C.attrsMap=TR(a,A)),i.addChild(C)}else{const C=new $c(l,i);A.stopNodes.length&&A.stopNodes.includes(C.tagname)&&(C.startIndex=g),l!==a&&c&&(C.attrsMap=TR(a,A)),i.addChild(C),i=C}n="",r=g}else n+=e[r];return t};function geA(e,A){let t,i="";for(let n=A;n")return{data:i,index:n};r===" "&&(r=" ")}i+=r}}function Ng(e,A,t,i){const n=e.indexOf(A,t);if(n===-1)throw new Error(i);return n+A.length-1}qo.getTraversalObj=aeA;var VG={};const lu=un,IeA={allowBooleanAttributes:!1},leA=["allowBooleanAttributes"];VG.validate=function(e,A){A=lu.buildOptions(A,IeA,leA);const t=[];let i=!1,n=!1;e[0]==="\uFEFF"&&(e=e.substr(1));for(let r=0;r"&&e[r]!==" "&&e[r]!==" "&&e[r]!==` -`&&e[r]!=="\r";r++)a+=e[r];if(a=a.trim(),a[a.length-1]==="/"&&(a=a.substring(0,a.length-1),r--),!QeA(a)){let l;return a.trim().length===0?l="Invalid space after '<'.":l="Tag '"+a+"' is an invalid name.",ot("InvalidTag",l,Ai(e,r))}const g=BeA(e,r);if(g===!1)return ot("InvalidAttr","Attributes for '"+a+"' have open quote.",Ai(e,r));let I=g.value;if(r=g.index,I[I.length-1]==="/"){const l=r-I.length;I=I.substring(0,I.length-1);const c=HR(I,A);if(c===!0)i=!0;else return ot(c.err.code,c.err.msg,Ai(e,l+c.err.line))}else if(s)if(g.tagClosed){if(I.trim().length>0)return ot("InvalidTag","Closing tag '"+a+"' can't have attributes or invalid starting.",Ai(e,o));{const l=t.pop();if(a!==l.tagName){let c=Ai(e,l.tagStartPos);return ot("InvalidTag","Expected closing tag '"+l.tagName+"' (opened in line "+c.line+", col "+c.col+") instead of closing tag '"+a+"'.",Ai(e,o))}t.length==0&&(n=!0)}}else return ot("InvalidTag","Closing tag '"+a+"' doesn't have proper closing.",Ai(e,r));else{const l=HR(I,A);if(l!==!0)return ot(l.err.code,l.err.msg,Ai(e,r-I.length+l.err.line));if(n===!0)return ot("InvalidXml","Multiple possible root nodes found.",Ai(e,r));t.push({tagName:a,tagStartPos:o}),i=!0}for(r++;r0)return ot("InvalidXml","Invalid '"+JSON.stringify(t.map(r=>r.tagName),null,4).replace(/\r?\n/g,"")+"' found.",{line:1,col:1})}else return ot("InvalidXml","Start tag expected.",1);return!0};function UR(e,A){const t=A;for(;A5&&i==="xml")return ot("InvalidXml","XML declaration allowed only at the start of the document.",Ai(e,A));if(e[A]=="?"&&e[A+1]==">"){A++;break}else continue}return A}function PR(e,A){if(e.length>A+5&&e[A+1]==="-"&&e[A+2]==="-"){for(A+=3;A"){A+=2;break}}else if(e.length>A+8&&e[A+1]==="D"&&e[A+2]==="O"&&e[A+3]==="C"&&e[A+4]==="T"&&e[A+5]==="Y"&&e[A+6]==="P"&&e[A+7]==="E"){let t=1;for(A+=8;A"&&(t--,t===0))break}else if(e.length>A+9&&e[A+1]==="["&&e[A+2]==="C"&&e[A+3]==="D"&&e[A+4]==="A"&&e[A+5]==="T"&&e[A+6]==="A"&&e[A+7]==="["){for(A+=8;A"){A+=2;break}}return A}const ceA='"',CeA="'";function BeA(e,A){let t="",i="",n=!1;for(;A"&&i===""){n=!0;break}t+=e[A]}return i!==""?!1:{value:t,index:A,tagClosed:n}}const EeA=new RegExp(`(\\s*)([^\\s=]+)(\\s*=)?(\\s*(['"])(([\\s\\S])*?)\\5)?`,"g");function HR(e,A){const t=lu.getAllMatches(e,EeA),i={};for(let n=0;n1){i+='"'+o+'" : [ ';for(let s in e.child[o])i+=Md(e.child[o][s],A)+" , ";i=i.substr(0,i.length-1)+" ] "}else i+='"'+o+'" : '+Md(e.child[o][0],A)+" ,"}return tC.merge(i,e.attrsMap),tC.isEmptyObject(i)?tC.isExist(e.val)?e.val:"":(tC.isExist(e.val)&&(typeof e.val=="string"&&(e.val===""||e.val===A.cdataPositionChar)||(i+='"'+A.textNodeName+'" : '+SeA(e.val))),i[i.length-1]===","&&(i=i.substr(0,i.length-2)),i+"}")};function SeA(e){return e===!0||e===!1||!isNaN(e)?e:'"'+e+'"'}zG.convertToJsonString=veA;const DeA=un.buildOptions,ReA={attributeNamePrefix:"@_",attrNodeName:!1,textNodeName:"#text",ignoreAttributes:!0,cdataTagName:!1,cdataPositionChar:"\\c",format:!1,indentBy:" ",supressEmptyNode:!1,tagValueProcessor:function(e){return e},attrValueProcessor:function(e){return e}},xeA=["attributeNamePrefix","attrNodeName","textNodeName","ignoreAttributes","cdataTagName","cdataPositionChar","format","indentBy","supressEmptyNode","tagValueProcessor","attrValueProcessor","rootNodeName"];function by(e){this.options=DeA(e,ReA,xeA),this.options.ignoreAttributes||this.options.attrNodeName?this.isAttribute=function(){return!1}:(this.attrPrefixLen=this.options.attributeNamePrefix.length,this.isAttribute=MeA),this.options.cdataTagName?this.isCDATA=keA:this.isCDATA=function(){return!1},this.replaceCDATAstr=NeA,this.replaceCDATAarr=LeA,this.processTextOrObjNode=FeA,this.options.format?(this.indentate=_eA,this.tagEndChar=`> +`;function kG(e){if(typeof Object.fromEntries!="undefined")return Object.fromEntries(e);const A={};for(const[t,i]of e)A[t.toLowerCase()]=i;return A}function iAA(e){const A=e.split(`\r +`).map(t=>{const i=t.split(":").map(n=>n.trim());return i[0]=i[0].toLowerCase(),i});return kG(A)}function nAA(e){const[A,...t]=e.split(";").map(n=>n.trim()),i=t.map(n=>n.split("="));return{type:A,params:kG(i)}}function Gd(e){let A,t,i;return e&&([,A,t,i]=e.match(/bytes (\d+)-(\d+)\/(\d+)/),A=parseInt(A,10),t=parseInt(t,10),i=parseInt(i,10)),{start:A,end:t,total:i}}function rAA(e,A){let t=null;const i=new TextDecoder("ascii"),n=[],r=`--${A}`,o=`${r}--`;for(let s=0;s<10;++s)i.decode(new Uint8Array(e,s,r.length))===r&&(t=s);if(t===null)throw new Error("Could not find initial boundary");for(;tthis.fetchSlice(i,t)))}async fetchSlice(A){throw new Error(`fetching of slice ${A} not possible, not implemented`)}get fileSize(){return null}async close(){}}class oAA extends Map{constructor(A={}){if(super(),!(A.maxSize&&A.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");if(typeof A.maxAge=="number"&&A.maxAge===0)throw new TypeError("`maxAge` must be a number greater than 0");this.maxSize=A.maxSize,this.maxAge=A.maxAge||Number.POSITIVE_INFINITY,this.onEviction=A.onEviction,this.cache=new Map,this.oldCache=new Map,this._size=0}_emitEvictions(A){if(typeof this.onEviction=="function")for(const[t,i]of A)this.onEviction(t,i.value)}_deleteIfExpired(A,t){return typeof t.expiry=="number"&&t.expiry<=Date.now()?(typeof this.onEviction=="function"&&this.onEviction(A,t.value),this.delete(A)):!1}_getOrDeleteIfExpired(A,t){if(this._deleteIfExpired(A,t)===!1)return t.value}_getItemValue(A,t){return t.expiry?this._getOrDeleteIfExpired(A,t):t.value}_peek(A,t){const i=t.get(A);return this._getItemValue(A,i)}_set(A,t){this.cache.set(A,t),this._size++,this._size>=this.maxSize&&(this._size=0,this._emitEvictions(this.oldCache),this.oldCache=this.cache,this.cache=new Map)}_moveToRecent(A,t){this.oldCache.delete(A),this._set(A,t)}*_entriesAscending(){for(const A of this.oldCache){const[t,i]=A;this.cache.has(t)||this._deleteIfExpired(t,i)===!1&&(yield A)}for(const A of this.cache){const[t,i]=A;this._deleteIfExpired(t,i)===!1&&(yield A)}}get(A){if(this.cache.has(A)){const t=this.cache.get(A);return this._getItemValue(A,t)}if(this.oldCache.has(A)){const t=this.oldCache.get(A);if(this._deleteIfExpired(A,t)===!1)return this._moveToRecent(A,t),t.value}}set(A,t,{maxAge:i=this.maxAge}={}){const n=typeof i=="number"&&i!==Number.POSITIVE_INFINITY?Date.now()+i:void 0;this.cache.has(A)?this.cache.set(A,{value:t,expiry:n}):this._set(A,{value:t,expiry:n})}has(A){return this.cache.has(A)?!this._deleteIfExpired(A,this.cache.get(A)):this.oldCache.has(A)?!this._deleteIfExpired(A,this.oldCache.get(A)):!1}peek(A){if(this.cache.has(A))return this._peek(A,this.cache);if(this.oldCache.has(A))return this._peek(A,this.oldCache)}delete(A){const t=this.cache.delete(A);return t&&this._size--,this.oldCache.delete(A)||t}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}resize(A){if(!(A&&A>0))throw new TypeError("`maxSize` must be a number greater than 0");const t=[...this._entriesAscending()],i=t.length-A;i<0?(this.cache=new Map(t),this.oldCache=new Map,this._size=t.length):(i>0&&this._emitEvictions(t.slice(0,i)),this.oldCache=new Map(t.slice(i)),this.cache=new Map,this._size=0),this.maxSize=A}*keys(){for(const[A]of this)yield A}*values(){for(const[,A]of this)yield A}*[Symbol.iterator](){for(const A of this.cache){const[t,i]=A;this._deleteIfExpired(t,i)===!1&&(yield[t,i.value])}for(const A of this.oldCache){const[t,i]=A;this.cache.has(t)||this._deleteIfExpired(t,i)===!1&&(yield[t,i.value])}}*entriesDescending(){let A=[...this.cache];for(let t=A.length-1;t>=0;--t){const i=A[t],[n,r]=i;this._deleteIfExpired(n,r)===!1&&(yield[n,r.value])}A=[...this.oldCache];for(let t=A.length-1;t>=0;--t){const i=A[t],[n,r]=i;this.cache.has(n)||this._deleteIfExpired(n,r)===!1&&(yield[n,r.value])}}*entriesAscending(){for(const[A,t]of this._entriesAscending())yield[A,t.value]}get size(){if(!this._size)return this.oldCache.size;let A=0;for(const t of this.oldCache.keys())this.cache.has(t)||A++;return Math.min(this._size+A,this.maxSize)}entries(){return this.entriesAscending()}forEach(A,t=this){for(const[i,n]of this.entriesAscending())A.call(t,n,i,this)}get[Symbol.toStringTag](){return JSON.stringify([...this.entriesAscending()])}}async function sAA(e){return new Promise(A=>setTimeout(A,e))}function aAA(e,A){const t=Array.isArray(e)?e:Array.from(e),i=Array.isArray(A)?A:Array.from(A);return t.map((n,r)=>[n,i[r]])}class pa extends Error{constructor(A){super(A),Error.captureStackTrace&&Error.captureStackTrace(this,pa),this.name="AbortError"}}class gAA extends Error{constructor(A,t){super(t),this.errors=A,this.message=t,this.name="AggregateError"}}const IAA=gAA;class lAA{constructor(A,t,i=null){this.offset=A,this.length=t,this.data=i}get top(){return this.offset+this.length}}class bR{constructor(A,t,i){this.offset=A,this.length=t,this.blockIds=i}}class cAA extends au{constructor(A,{blockSize:t=65536,cacheSize:i=100}={}){super(),this.source=A,this.blockSize=t,this.blockCache=new oAA({maxSize:i}),this.blockRequests=new Map,this.blockIdsToFetch=new Set,this.abortedBlockIds=new Set}get fileSize(){return this.source.fileSize}async fetch(A,t){const i=[],n=[],r=[];for(const{offset:c,length:C}of A){let B=c+C;const{fileSize:u}=this;u!==null&&(B=Math.min(B,u));const E=Math.floor(c/this.blockSize)*this.blockSize;for(let h=E;hthis.abortedBlockIds.has(c)||!this.blockCache.has(c));if(a.forEach(c=>this.blockIdsToFetch.add(c)),a.length>0&&t&&!t.aborted){this.fetchBlocks(null);for(const c of a){const C=this.blockRequests.get(c);if(!C)throw new Error(`Block ${c} is not in the block requests`);s.push(C)}await Promise.allSettled(s)}if(t&&t.aborted)throw new pa("Request was aborted");const g=r.map(c=>this.blockCache.get(c)),I=g.filter(c=>!c);if(I.length)throw new IAA(I,"Request failed");const l=new Map(aAA(r,g));return this.readSliceData(A,l)}fetchBlocks(A){if(this.blockIdsToFetch.size>0){const t=this.groupBlocks(this.blockIdsToFetch),i=this.source.fetch(t,A);for(let n=0;n{try{const s=(await i)[n],a=o*this.blockSize,g=a-s.offset,I=Math.min(g+this.blockSize,s.data.byteLength),l=s.data.slice(g,I),c=new lAA(a,l.byteLength,l,o);this.blockCache.set(o,c),this.abortedBlockIds.delete(o)}catch(s){if(s.name==="AbortError")s.signal=A,this.blockCache.delete(o),this.abortedBlockIds.add(o);else throw s}finally{this.blockRequests.delete(o)}})())}this.blockIdsToFetch.clear()}}groupBlocks(A){const t=Array.from(A).sort((o,s)=>o-s);if(t.length===0)return[];let i=[],n=null;const r=[];for(const o of t)n===null||n+1===o?(i.push(o),n=o):(r.push(new bR(i[0]*this.blockSize,i.length*this.blockSize,i)),i=[o],n=o);return r.push(new bR(i[0]*this.blockSize,i.length*this.blockSize,i)),r}readSliceData(A,t){return A.map(i=>{let n=i.offset+i.length;this.fileSize!==null&&(n=Math.min(this.fileSize,n));const r=Math.floor(i.offset/this.blockSize),o=Math.floor(n/this.blockSize),s=new ArrayBuffer(i.length),a=new Uint8Array(s);for(let g=r;g<=o;++g){const I=t.get(g),l=I.offset-i.offset,c=I.top-n;let C=0,B=0,u;l<0?C=-l:l>0&&(B=l),c<0?u=I.length-C:u=n-I.offset-C;const E=new Uint8Array(I.data,C,u);a.set(E,B)}return s})}}class Ry{get ok(){return this.status>=200&&this.status<=299}get status(){throw new Error("not implemented")}getHeader(A){throw new Error("not implemented")}async getData(){throw new Error("not implemented")}}class xy{constructor(A){this.url=A}async request({headers:A,credentials:t,signal:i}={}){throw new Error("request is not implemented")}}class CAA extends Ry{constructor(A){super(),this.response=A}get status(){return this.response.status}getHeader(A){return this.response.headers.get(A)}async getData(){return this.response.arrayBuffer?await this.response.arrayBuffer():(await this.response.buffer()).buffer}}class BAA extends xy{constructor(A,t){super(A),this.credentials=t}async request({headers:A,credentials:t,signal:i}={}){const n=await fetch(this.url,{headers:A,credentials:t,signal:i});return new CAA(n)}}class EAA extends Ry{constructor(A,t){super(),this.xhr=A,this.data=t}get status(){return this.xhr.status}getHeader(A){return this.xhr.getResponseHeader(A)}async getData(){return this.data}}class uAA extends xy{constructRequest(A,t){return new Promise((i,n)=>{const r=new XMLHttpRequest;r.open("GET",this.url),r.responseType="arraybuffer";for(const[o,s]of Object.entries(A))r.setRequestHeader(o,s);r.onload=()=>{const o=r.response;i(new EAA(r,o))},r.onerror=n,r.onabort=()=>n(new pa("Request aborted")),r.send(),t&&(t.aborted&&r.abort(),t.addEventListener("abort",()=>r.abort()))})}async request({headers:A,signal:t}={}){return await this.constructRequest(A,t)}}class hAA extends Ry{constructor(A,t){super(),this.response=A,this.dataPromise=t}get status(){return this.response.statusCode}getHeader(A){return this.response.headers[A]}async getData(){return await this.dataPromise}}class fAA extends xy{constructor(A){super(A),this.parsedUrl=ia.parse(this.url),this.httpApi=(this.parsedUrl.protocol==="http:",ia)}constructRequest(A,t){return new Promise((i,n)=>{const r=this.httpApi.get({...this.parsedUrl,headers:A},o=>{const s=new Promise(a=>{const g=[];o.on("data",I=>{g.push(I)}),o.on("end",()=>{const I=Buffer.concat(g).buffer;a(I)}),o.on("error",n)});i(new hAA(o,s))});r.on("error",n),t&&(t.aborted&&r.destroy(new pa("Request aborted")),t.addEventListener("abort",()=>r.destroy(new pa("Request aborted"))))})}async request({headers:A,signal:t}={}){return await this.constructRequest(A,t)}}class Fy extends au{constructor(A,t,i,n){super(),this.client=A,this.headers=t,this.maxRanges=i,this.allowFullFile=n,this._fileSize=null}async fetch(A,t){return this.maxRanges>=A.length?this.fetchSlices(A,t):(this.maxRanges>0&&A.length>1,Promise.all(A.map(i=>this.fetchSlice(i,t))))}async fetchSlices(A,t){const i=await this.client.request({headers:{...this.headers,Range:`bytes=${A.map(({offset:n,length:r})=>`${n}-${n+r}`).join(",")}`},signal:t});if(i.ok)if(i.status===206){const{type:n,params:r}=nAA(i.getHeader("content-type"));if(n==="multipart/byteranges"){const l=rAA(await i.getData(),r.boundary);return this._fileSize=l[0].fileSize||null,l}const o=await i.getData(),{start:s,end:a,total:g}=Gd(i.getHeader("content-range"));this._fileSize=g||null;const I=[{data:o,offset:s,length:a-s}];if(A.length>1){const l=await Promise.all(A.slice(1).map(c=>this.fetchSlice(c,t)));return I.concat(l)}return I}else{if(!this.allowFullFile)throw new Error("Server responded with full file");const n=await i.getData();return this._fileSize=n.byteLength,[{data:n,offset:0,length:n.byteLength}]}else throw new Error("Error fetching data.")}async fetchSlice(A,t){const{offset:i,length:n}=A,r=await this.client.request({headers:{...this.headers,Range:`bytes=${i}-${i+n}`},signal:t});if(r.ok)if(r.status===206){const o=await r.getData(),{total:s}=Gd(r.getHeader("content-range"));return this._fileSize=s||null,{data:o,offset:i,length:n}}else{if(!this.allowFullFile)throw new Error("Server responded with full file");const o=await r.getData();return this._fileSize=o.byteLength,{data:o,offset:0,length:o.byteLength}}else throw new Error("Error fetching data.")}get fileSize(){return this._fileSize}}function Ny(e,{blockSize:A,cacheSize:t}){return A===null?e:new cAA(e,{blockSize:A,cacheSize:t})}function QAA(e,{headers:A={},credentials:t,maxRanges:i=0,allowFullFile:n=!1,...r}={}){const o=new BAA(e,t),s=new Fy(o,A,i,n);return Ny(s,r)}function dAA(e,{headers:A={},maxRanges:t=0,allowFullFile:i=!1,...n}={}){const r=new uAA(e),o=new Fy(r,A,t,i);return Ny(o,n)}function pAA(e,{headers:A={},maxRanges:t=0,allowFullFile:i=!1,...n}={}){const r=new fAA(e),o=new Fy(r,A,t,i);return Ny(o,n)}function yAA(e,{forceXHR:A=!1,...t}={}){return typeof fetch=="function"&&!A?QAA(e,t):typeof XMLHttpRequest!="undefined"?dAA(e,t):pAA(e,t)}class mAA extends au{constructor(A){super(),this.file=A}async fetchSlice(A,t){return new Promise((i,n)=>{const r=this.file.slice(A.offset,A.offset+A.length),o=new FileReader;o.onload=s=>i(s.target.result),o.onerror=n,o.onabort=n,o.readAsArrayBuffer(r),t&&t.addEventListener("abort",()=>o.abort())})}}function wAA(e){return new mAA(e)}function vAA(e){return new Promise((A,t)=>{ia.close(e,i=>{i?t(i):A()})})}function SAA(e,A,t=void 0){return new Promise((i,n)=>{ia.open(e,A,t,(r,o)=>{r?n(r):i(o)})})}function DAA(...e){return new Promise((A,t)=>{ia.read(...e,(i,n,r)=>{i?t(i):A({bytesRead:n,buffer:r})})})}class RAA extends au{constructor(A){super(),this.path=A,this.openRequest=SAA(A,"r")}async fetchSlice(A){const t=await this.openRequest,{buffer:i}=await DAA(t,Buffer.alloc(A.length),0,A.length,A.offset);return i.buffer}async close(){const A=await this.openRequest;await vAA(A)}}function xAA(e){return new RAA(e)}function FAA(e,A){let t=e.length-A,i=0;do{for(let n=A;n>0;n--)e[i+A]+=e[i],i++;t-=A}while(t>0)}function NAA(e,A,t){let i=0,n=e.length;const r=n/t;for(;n>A;){for(let s=A;s>0;--s)e[i+A]+=e[i],++i;n-=A}const o=e.slice();for(let s=0;s=e.byteLength);++a){let g;if(A===2){switch(n[0]){case 8:g=new Uint8Array(e,a*s*t*o,s*t*o);break;case 16:g=new Uint16Array(e,a*s*t*o,s*t*o/2);break;case 32:g=new Uint32Array(e,a*s*t*o,s*t*o/4);break;default:throw new Error(`Predictor 2 not allowed with ${n[0]} bits per sample.`)}FAA(g,s)}else A===3&&(g=new Uint8Array(e,a*s*t*o,s*t*o),NAA(g,s,o))}return e}class bAA{async decode(A,t){const i=await this.decodeBlock(t),n=A.Predictor||1;if(n!==1){const r=!A.StripOffsets,o=r?A.TileWidth:A.ImageWidth,s=r?A.TileLength:A.RowsPerStrip||A.ImageLength;return LAA(i,n,o,s,A.BitsPerSample,A.PlanarConfiguration)}return i}}function _d(e){switch(e){case jA.BYTE:case jA.ASCII:case jA.SBYTE:case jA.UNDEFINED:return 1;case jA.SHORT:case jA.SSHORT:return 2;case jA.LONG:case jA.SLONG:case jA.FLOAT:case jA.IFD:return 4;case jA.RATIONAL:case jA.SRATIONAL:case jA.DOUBLE:case jA.LONG8:case jA.SLONG8:case jA.IFD8:return 8;default:throw new RangeError(`Invalid field type: ${e}`)}}function GAA(e){const A=e.GeoKeyDirectory;if(!A)return null;const t={};for(let i=4;i<=A[3]*4;i+=4){const n=L$[A[i]],r=A[i+1]?QI[A[i+1]]:null,o=A[i+2],s=A[i+3];let a=null;if(!r)a=s;else{if(a=e[r],typeof a=="undefined"||a===null)throw new Error(`Could not get value of geoKey '${n}'.`);typeof a=="string"?a=a.substring(s,s+o-1):a.subarray&&(a=a.subarray(s,s+o),o===1&&(a=a[0]))}t[n]=a}return t}function ys(e,A,t,i){let n=null,r=null;const o=_d(A);switch(A){case jA.BYTE:case jA.ASCII:case jA.UNDEFINED:n=new Uint8Array(t),r=e.readUint8;break;case jA.SBYTE:n=new Int8Array(t),r=e.readInt8;break;case jA.SHORT:n=new Uint16Array(t),r=e.readUint16;break;case jA.SSHORT:n=new Int16Array(t),r=e.readInt16;break;case jA.LONG:case jA.IFD:n=new Uint32Array(t),r=e.readUint32;break;case jA.SLONG:n=new Int32Array(t),r=e.readInt32;break;case jA.LONG8:case jA.IFD8:n=new Array(t),r=e.readUint64;break;case jA.SLONG8:n=new Array(t),r=e.readInt64;break;case jA.RATIONAL:n=new Uint32Array(t*2),r=e.readUint32;break;case jA.SRATIONAL:n=new Int32Array(t*2),r=e.readInt32;break;case jA.FLOAT:n=new Float32Array(t),r=e.readFloat32;break;case jA.DOUBLE:n=new Float64Array(t),r=e.readFloat64;break;default:throw new RangeError(`Invalid field type: ${A}`)}if(A===jA.RATIONAL||A===jA.SRATIONAL)for(let s=0;sB.getWidth()-u.getWidth());for(let B=0;BE||o&&o>h)break}}let c=t;if(s){const[C,B]=a.getOrigin(),[u,E]=g.getResolution(a);c=[Math.round((s[0]-C)/u),Math.round((s[1]-B)/E),Math.round((s[2]-C)/u),Math.round((s[3]-B)/E)],c=[Math.min(c[0],c[2]),Math.min(c[1],c[3]),Math.max(c[0],c[2]),Math.max(c[1],c[3])]}return g.readRasters({...A,window:c})}}class Vl extends MAA{constructor(A,t,i,n,r={}){super(),this.source=A,this.littleEndian=t,this.bigTiff=i,this.firstIFDOffset=n,this.cache=r.cache||!1,this.ifdRequests=[],this.ghostValues=null}async getSlice(A,t){const i=this.bigTiff?4048:1024;return new tAA((await this.source.fetch([{offset:A,length:typeof t!="undefined"?t:i}]))[0],A,this.littleEndian,this.bigTiff)}async parseFileDirectoryAt(A){const t=this.bigTiff?20:12,i=this.bigTiff?8:2;let n=await this.getSlice(A);const r=this.bigTiff?n.readUint64(A):n.readUint16(A),o=r*t+(this.bigTiff?16:6);n.covers(A,o)||(n=await this.getSlice(A,o));const s={};let a=A+(this.bigTiff?8:2);for(let l=0;l{const t=await this.ifdRequests[A-1];if(t.nextIFDByteOffset===0)throw new zc(A);return this.parseFileDirectoryAt(t.nextIFDByteOffset)})(),this.ifdRequests[A]}async getImage(A=0){const t=await this.requestIFD(A);return new MG(t.fileDirectory,t.geoKeyDirectory,this.dataView,this.littleEndian,this.cache,this.source)}async getImageCount(){let A=0,t=!0;for(;t;)try{await this.requestIFD(A),++A}catch(i){if(i instanceof zc)t=!1;else throw i}return A}async getGhostValues(){const A=this.bigTiff?16:8;if(this.ghostValues)return this.ghostValues;const t="GDAL_STRUCTURAL_METADATA_SIZE=",i=t.length+100;let n=await this.getSlice(A,i);if(t===ys(n,jA.ASCII,t.length,A)){const o=ys(n,jA.ASCII,i,A).split(` +`)[0],s=Number(o.split("=")[1].split(" ")[0])+o.length;s>i&&(n=await this.getSlice(A,s));const a=ys(n,jA.ASCII,s,A);this.ghostValues={},a.split(` +`).filter(g=>g.length>0).map(g=>g.split("=")).forEach(([g,I])=>{this.ghostValues[g]=I})}return this.ghostValues}static async fromSource(A,t,i){const n=(await A.fetch([{offset:0,length:1024}],i))[0],r=new eAA(n),o=r.getUint16(0,0);let s;if(o===18761)s=!0;else if(o===19789)s=!1;else throw new TypeError("Invalid byte order value.");const a=r.getUint16(2,s);let g;if(a===42)g=!1;else if(a===43){if(g=!0,r.getUint16(4,s)!==8)throw new Error("Unsupported offset byte-size.")}else throw new TypeError("Invalid magic number.");const I=g?r.getUint64(8,s):r.getUint32(4,s);return new Vl(A,s,g,I,t)}close(){return typeof this.source.close=="function"?this.source.close():!1}}async function gu(e,A={},t){return Vl.fromSource(yAA(e,A),t)}async function TG(e,A){return Vl.fromSource(xAA(e),A)}async function Iu(e,A){return Vl.fromSource(wAA(e),A)}const kAA="__viv",UG=`${kAA}-offsets`;function TAA(e){UAA(e,UG)||console.warn("GeoTIFF source is missing offsets proxy.")}function UAA(e,A){return e[A]}function PAA(e,A){const t=(i,n)=>n==="getImage"?r=>{if(!(r in i.ifdRequests)&&r in A){const o=A[r];i.ifdRequests[r]=i.parseFileDirectoryAt(o)}return i.getImage(r)}:n===UG?!0:Reflect.get(i,n);return new Proxy(e,{get:t})}let xi,jc=null;function GR(){return jc!==null&&jc.buffer===xi.memory.buffer||(jc=new Uint8Array(xi.memory.buffer)),jc}let _R=0,Xc=null;function MR(){return Xc!==null&&Xc.buffer===xi.memory.buffer||(Xc=new Int32Array(xi.memory.buffer)),Xc}async function Ly(e){e===void 0&&(e="".replace(/\.js$/,"_bg.wasm")),(typeof e=="string"||typeof Request=="function"&&e instanceof Request||typeof URL=="function"&&e instanceof URL)&&(e=fetch(e));const{instance:A,module:t}=await async function(i,n){if(typeof Response=="function"&&i instanceof Response){if(typeof WebAssembly.instantiateStreaming=="function")try{return await WebAssembly.instantiateStreaming(i,n)}catch(o){if(i.headers.get("Content-Type")=="application/wasm")throw o;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",o)}const r=await i.arrayBuffer();return await WebAssembly.instantiate(r,n)}{const r=await WebAssembly.instantiate(i,n);return r instanceof WebAssembly.Instance?{instance:r,module:i}:r}}(await e,{});return xi=A.exports,Ly.__wbindgen_wasm_module=t,xi}var HAA=Object.freeze({__proto__:null,decompress:function(e,A){try{const g=xi.__wbindgen_add_to_stack_pointer(-16);var t=function(I,l){const c=l(1*I.length);return GR().set(I,c/1),_R=I.length,c}(e,xi.__wbindgen_malloc),i=_R;xi.decompress(g,t,i,A);var n=MR()[g/4+0],r=MR()[g/4+1],o=(s=n,a=r,GR().subarray(s/1,s/1+a)).slice();return xi.__wbindgen_free(n,1*r),o}finally{xi.__wbindgen_add_to_stack_pointer(16)}var s,a},default:Ly});const qAA=[62,0,0,0,63,52,53,54,55,56,57,58,59,60,61,0,0,0,0,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,0,0,0,0,0,0,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51];function Zc(e){return qAA[e-43]}const JAA=function(e){let A,t=e.endsWith("==")?2:e.endsWith("=")?1:0,i=e.length,n=new Uint8Array(i/4*3);for(let r=0,o=0;r>16,n[o+1]=A>>8&255,n[o+2]=255&A;return n.subarray(0,n.length-t)}("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NwMAIANBEGokAA8LIARBCEHYhcAAEDcACyACQQhByIXAABA3AAuqAgEDfyMAQYABayIEJAACQAJAAn8CQCABKAIAIgNBEHFFBEAgACgCACECIANBIHENASACrSABEBUMAgsgACgCACECQQAhAANAIAAgBGpB/wBqIAJBD3EiA0EwciADQdcAaiADQQpJGzoAACAAQX9qIQAgAkEEdiICDQALIABBgAFqIgJBgQFPDQIgAUGkjsAAQQIgACAEakGAAWpBACAAaxAIDAELQQAhAANAIAAgBGpB/wBqIAJBD3EiA0EwciADQTdqIANBCkkbOgAAIABBf2ohACACQQR2IgINAAsgAEGAAWoiAkGBAU8NAiABQaSOwABBAiAAIARqQYABakEAIABrEAgLIARBgAFqJAAPCyACQYABQZSOwAAQOQALIAJBgAFBlI7AABA5AAuxAgEEfyMAQUBqIgIkACABKAIEIgNFBEAgAUEEaiEDIAEoAgAhBCACQQA2AiAgAkIBNwMYIAIgAkEYajYCJCACQThqIARBEGopAgA3AwAgAkEwaiAEQQhqKQIANwMAIAIgBCkCADcDKCACQSRqQdiJwAAgAkEoahAJGiACQRBqIgQgAigCIDYCACACIAIpAxg3AwgCQCABKAIEIgVFDQAgAUEIaigCAEUNACAFEAQLIAMgAikDCDcCACADQQhqIAQoAgA2AgAgAygCACEDCyABQQE2AgQgAUEMaigCACEEIAFBCGoiASgCACEFIAFCADcCAEEMQQQQWSIBRQRAQQxBBBBjAAsgASAENgIIIAEgBTYCBCABIAM2AgAgAEGQi8AANgIEIAAgATYCACACQUBrJAAL/AEBAn8jAEEQayICJAAgACgCACACQQA2AgwCfwJAAkAgAUGAAU8EQCABQYAQSQ0BIAJBDGohACABQYCABE8NAiACIAFBP3FBgAFyOgAOIAIgAUEMdkHgAXI6AAwgAiABQQZ2QT9xQYABcjoADUEDDAMLIAIgAToADCACQQxqIQBBAQwCCyACIAFBP3FBgAFyOgANIAIgAUEGdkHAAXI6AAwgAkEMaiEAQQIMAQsgAiABQT9xQYABcjoADyACIAFBEnZB8AFyOgAMIAIgAUEGdkE/cUGAAXI6AA4gAiABQQx2QT9xQYABcjoADUEECyEBIAAgARALIAJBEGokAAv5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QSxqQQI2AgAgAUE8akEhNgIAIAFCAjcCHCABQayMwAA2AhggAUEdNgI0IAEgAUEwajYCKCABIAFBEGo2AjggASABQQhqNgIwIAFBGGpB8IDAABBRAAtxAQN/IwBBIGsiAiQAAkAgACABEBkNACABQRxqKAIAIQMgASgCGCACQRxqQQA2AgAgAkHwi8AANgIYIAJCATcCDCACQfSLwAA2AgggAyACQQhqEAkNACAAQQRqIAEQGSACQSBqJAAPCyACQSBqJABBAQswAQF/AkACQEGAwABBAhBZIgENAQwAC0GAwABBAhBjAAsgACABNgIAIABBgCA2AgQLewECfwJAAkAgACgCBCIBBEAgACgCDCICIAFPDQEgACgCACIBIAJqIAEtAAA6AAAgAEEANgIIIAAgACgCDEEBajYCDCAAKAIERQ0CIAAoAgAtAAAPC0EAQQBBiIbAABA2AAsgAiABQZiGwAAQNgALQQBBAEGohsAAEDYAC2gBAn8gACAALQBGIgFBAWoiAjoACiAAQQEgAUEPcXRBAmoiATsBQCAAQX8gAkEPcXRBf3M7AQggAEEYaigCACABQf//A3EiAU8EQCAAIAE2AhgLIABBJGooAgAgAU8EQCAAIAE2AiQLC1ABAX8gAEEUaigCACIBRSABQQJ0RXJFBEAgACgCEBAECyAAQSBqKAIAIgFFIAFBAXRFckUEQCAAKAIcEAQLIABBLGooAgAEQCAAKAIoEAQLC2wBAX8jAEEwayIDJAAgAyABNgIEIAMgADYCACADQRxqQQI2AgAgA0EsakEcNgIAIANCAjcCDCADQYCNwAA2AgggA0EcNgIkIAMgA0EgajYCGCADIAM2AiggAyADQQRqNgIgIANBCGogAhBRAAtsAQF/IwBBMGsiAyQAIAMgATYCBCADIAA2AgAgA0EcakECNgIAIANBLGpBHDYCACADQgI3AgwgA0HMkcAANgIIIANBHDYCJCADIANBIGo2AhggAyADQQRqNgIoIAMgAzYCICADQQhqIAIQUQALbAEBfyMAQTBrIgMkACADIAE2AgQgAyAANgIAIANBHGpBAjYCACADQSxqQRw2AgAgA0ICNwIMIANBgJLAADYCCCADQRw2AiQgAyADQSBqNgIYIAMgA0EEajYCKCADIAM2AiAgA0EIaiACEFEAC2wBAX8jAEEwayIDJAAgAyABNgIEIAMgADYCACADQRxqQQI2AgAgA0EsakEcNgIAIANCAjcCDCADQayRwAA2AgggA0EcNgIkIAMgA0EgajYCGCADIANBBGo2AiggAyADNgIgIANBCGogAhBRAAtcAQF/IwBBEGsiAyQAAkAgACgCBCABayACTwRAIANBADYCAAwBCyADIAAgASACEBYgAygCAEEBRw0AIANBCGooAgAiAARAIAMoAgQgABBjAAsQXQALIANBEGokAAtaAQF/IwBBEGsiAiQAAkAgACgCBCABa0EBTwRAIAJBADYCAAwBCyACIAAgARAeIAIoAgBBAUcNACACQQhqKAIAIgAEQCACKAIEIAAQYwALEF0ACyACQRBqJAALWgEBfyMAQRBrIgIkAAJAIAAoAgQgAWtBAU8EQCACQQA2AgAMAQsgAiAAIAEQHSACKAIAQQFHDQAgAkEIaigCACIABEAgAigCBCAAEGMACxBdAAsgAkEQaiQAC1kBAX8jAEEgayICJAAgAiAAKAIANgIEIAJBGGogAUEQaikCADcDACACQRBqIAFBCGopAgA3AwAgAiABKQIANwMIIAJBBGpB2InAACACQQhqEAkgAkEgaiQAC0YAAkBBCCACSQRAAn9BCCACSQRAIAIgAxAQDAELIAMQAAsiAg0BQQAPCyAAIAMQCg8LIAIgACADIAEgASADSxsQSyAAEAQLWQEBfyMAQSBrIgIkACACIAAoAgA2AgQgAkEYaiABQRBqKQIANwMAIAJBEGogAUEIaikCADcDACACIAEpAgA3AwggAkEEakHwj8AAIAJBCGoQCSACQSBqJAALWQACQAJAAkAgAUF/SgRAAkAgAgRAIAENAQwECyABRQ0DIAFBARBZIgINBAwCCyABEEciAkUNAQwDCxBdAAsgAUEBEGMAC0EBIQILIAAgATYCBCAAIAI2AgALVgEBfyMAQSBrIgIkACACIAA2AgQgAkEYaiABQRBqKQIANwMAIAJBEGogAUEIaikCADcDACACIAEpAgA3AwggAkEEakHwj8AAIAJBCGoQCSACQSBqJAALWQEDfwJAIAEoAgwiAiABKAIIIgNPBEAgASgCBCIEIAJJDQEgASgCACEBIAAgAiADazYCBCAAIAEgA2o2AgAPCyADIAJB2IbAABA4AAsgAiAEQdiGwAAQNwALVQEBfyAAQRBqIAAt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");let Bf;async function OAA(e,A){Bf||(Bf=await(async()=>(await Ly(JAA),HAA))());const t=Bf.decompress(e,A);if(t.length===0)throw Error("Failed to decode with LZW decoder.");return t}class YAA extends bAA{constructor(A){super();const t=A.TileWidth||A.ImageWidth,i=A.TileLength||A.ImageLength,n=A.BitsPerSample[0]/8;this.maxUncompressedSize=t*i*n}async decodeBlock(A){const t=new Uint8Array(A);return(await OAA(t,this.maxUncompressedSize)).buffer}}function Rg(e,A,t,i,n){PG(e,A,t||0,i||e.length-1,n||KAA)}function PG(e,A,t,i,n){for(;i>t;){if(i-t>600){var r=i-t+1,o=A-t+1,s=Math.log(r),a=.5*Math.exp(2*s/3),g=.5*Math.sqrt(s*a*(r-a)/r)*(o-r/2<0?-1:1),I=Math.max(t,Math.floor(A-o*a/r+g)),l=Math.min(i,Math.floor(A+(r-o)*a/r+g));PG(e,A,I,l,n)}var c=e[A],C=t,B=i;for(xg(e,t,A),n(e[i],c)>0&&xg(e,t,i);C0;)B--}n(e[t],c)===0?xg(e,t,B):(B++,xg(e,B,i)),B<=A&&(t=B+1),A<=B&&(i=B-1)}}function xg(e,A,t){var i=e[A];e[A]=e[t],e[t]=i}function KAA(e,A){return eA?1:0}const Di={uint8:"Uint8",uint16:"Uint16",uint32:"Uint32",float:"Float32",double:"Float64",int8:"Int8",int16:"Int16",int32:"Int32"};function OC(e){let A=e.length,t=1/0,i=-1/0,n=0;for(;A--;)e[A]i&&(i=e[A]),n+=e[A];const r=n/e.length;A=e.length;let o=0;for(;A--;)o+=(e[A]-r)**2;const s=(o/e.length)**.5,a=Math.floor(e.length/2),g=Math.floor(e.length/4),I=3*Math.floor(e.length/4);Rg(e,a);const l=e[a];Rg(e,g,0,a);const c=e[g];Rg(e,I,a,e.length-1);const C=e[I],B=e.filter(Q=>Q>0),u=5e-4,E=Math.floor(B.length*(1-u)),h=Math.floor(B.length*u);Rg(B,E),Rg(B,h,0,E);const f=[B[h]||0,B[E]||0];return{mean:r,sd:s,q1:c,q3:C,median:l,domain:[t,i],contrastLimits:f}}function kR(e){return Array.isArray(e)?e:[e]}function VAA(e){if(!Number.isInteger(e))throw Error("Not an integer.");const A=new ArrayBuffer(4);new DataView(A).setInt32(0,e,!1);const i=new Uint8Array(A);return Array.from(i)}function Kr(e){const A=e[e.length-1];return A===3||A===4}function VB(e){return e.toLowerCase().split("").reverse()}function HG(e){const A=new Map(e.map((t,i)=>[t,i]));if(A.size!==e.length)throw Error("Labels must be unique, found duplicated label.");return t=>{const i=A.get(t);if(i===void 0)throw Error("Invalid dimension.");return i}}function io(e){const A=Kr(e.shape),[t,i]=e.shape.slice(A?-3:-2);return{height:t,width:i}}function qG(e){return 2**Math.floor(Math.log2(e))}const by="__vivSignalAborted";function JG(e){const A=e.getTileWidth(),t=e.getTileHeight(),i=Math.min(A,t);return qG(i)}function WAA({Pixels:e}){const A=VB(e.DimensionOrder),t=HG(A),i=Array(A.length).fill(0);i[t("t")]=e.SizeT,i[t("c")]=e.SizeC,i[t("z")]=e.SizeZ,e.Interleaved&&(A.push("_c"),i.push(3));const n=o=>{const s=[...i];return s[t("x")]=e.SizeX>>o,s[t("y")]=e.SizeY>>o,s};if(!(e.Type in Di))throw Error(`Pixel type ${e.Type} not supported.`);const r=Di[e.Type];if(e.PhysicalSizeX&&e.PhysicalSizeY){const o={x:{size:e.PhysicalSizeX,unit:e.PhysicalSizeXUnit},y:{size:e.PhysicalSizeY,unit:e.PhysicalSizeYUnit}};return e.PhysicalSizeZ&&(o.z={size:e.PhysicalSizeZ,unit:e.PhysicalSizeZUnit}),{labels:A,getShape:n,physicalSizes:o,dtype:r}}return{labels:A,getShape:n,dtype:r}}function zAA(e){const t=e.fileDirectory.SampleFormat?e.fileDirectory.SampleFormat[0]:1,i=e.fileDirectory.BitsPerSample[0];switch(t){case 1:if(i<=8)return Di.uint8;if(i<=16)return Di.uint16;if(i<=32)return Di.uint32;break;case 2:if(i<=8)return Di.int8;if(i<=16)return Di.int16;if(i<=32)return Di.int32;break;case 3:switch(i){case 16:return Di.float;case 32:return Di.float;case 64:return Di.double}break}throw Error("Unsupported data format/bitsPerSample")}function OG(e){let[A,t,i]=[0,0,0];for(const r of e)A=Math.max(A,r.selection.c),t=Math.max(t,r.selection.z),i=Math.max(i,r.selection.t);const n=e[0].tiff;return{x:n.getWidth(),y:n.getHeight(),z:t+1,c:A+1,t:i+1}}function jAA(e,A){const t=Array(A).fill(0);for(const i of e){const n=i.selection.c,r=i.tiff.getSamplesPerPixel(),o=t[n];if(o&&o!=r)throw Error("Channel samples per pixel mismatch");t[n]=r}return t}function XAA(e,A){const t=A[0].tiff,i=OG(A),n=[];for(const s of e.toLowerCase())n.unshift(i[s]);const r=VB(e),o=zAA(t);return{shape:n,labels:r,dtype:o}}function ZAA(e,A,t,i,n,r,o){const s=[];for(let a=0;a({"Acquisition Date":s,"Dimensions (XY)":`${g.x} x ${g.y}`,PixelsType:n,"Z-sections/Timepoints":`${g.z} x ${g.t}`,Channels:g.c})}}function TR(e){const A={},t=e.split("/").pop(),i=t==null?void 0:t.split(".");return i&&(A.name=i.slice(0,-1).join("."),[,A.extension]=i),A}var YG={},KG={},un={};(function(e){const A=":A-Za-z_\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD",t=A+"\\-.\\d\\u00B7\\u0300-\\u036F\\u203F-\\u2040",i="["+A+"]["+t+"]*",n=new RegExp("^"+i+"$"),r=function(s,a){const g=[];let I=a.exec(s);for(;I;){const l=[];l.startIndex=a.lastIndex-I[0].length;const c=I.length;for(let C=0;C1){i[o]=[];for(let s in e.child[o])e.child[o].hasOwnProperty(s)&&i[o].push(Md(e.child[o][s],A,o))}else{const s=Md(e.child[o][0],A,o),a=A.arrayMode===!0&&typeof s=="object"||ao.isTagNameInArrayMode(o,A.arrayMode,t);i[o]=a?[s]:s}}return i};KG.convertToJson=Md;var Ho={},AeA=function(e,A,t){this.tagname=e,this.parent=A,this.child={},this.attrsMap={},this.val=t,this.addChild=function(i){Array.isArray(this.child[i.tagname])?this.child[i.tagname].push(i):this.child[i.tagname]=[i]}};const eeA=/^[-+]?0x[a-fA-F0-9]+$/,teA=/^([\-\+])?(0*)(\.[0-9]+([eE]\-?[0-9]+)?|[0-9]+(\.[0-9]+([eE]\-?[0-9]+)?)?)$/;!Number.parseInt&&window.parseInt&&(Number.parseInt=window.parseInt);!Number.parseFloat&&window.parseFloat&&(Number.parseFloat=window.parseFloat);const ieA={hex:!0,leadingZeros:!0,decimalPoint:".",eNotation:!0};function neA(e,A={}){if(A=Object.assign({},ieA,A),!e||typeof e!="string")return e;let t=e.trim();if(A.skipLike!==void 0&&A.skipLike.test(t))return e;if(A.hex&&eeA.test(t))return Number.parseInt(t,16);{const i=teA.exec(t);if(i){const n=i[1],r=i[2];let o=reA(i[3]);const s=i[4]||i[6];if(!A.leadingZeros&&r.length>0&&n&&t[2]!==".")return e;if(!A.leadingZeros&&r.length>0&&!n&&t[1]!==".")return e;{const a=Number(t),g=""+a;return g.search(/[eE]/)!==-1||s?A.eNotation?a:e:t.indexOf(".")!==-1?g==="0"&&o===""||g===o||n&&g==="-"+o?a:e:r?o===g||n+o===g?a:e:t===g||t===n+g?a:e}}else return e}}function reA(e){return e&&e.indexOf(".")!==-1&&(e=e.replace(/0+$/,""),e==="."?e="0":e[0]==="."?e="0"+e:e[e.length-1]==="."&&(e=e.substr(0,e.length-1))),e}var oeA=neA;const yo=un,seA=un.buildOptions,$c=AeA,aeA=oeA;"<((!\\[CDATA\\[([\\s\\S]*?)(]]>))|((NAME:)?(NAME))([^>]*)>|((\\/)(NAME)\\s*>))([^<]*)".replace(/NAME/g,yo.nameRegexp);!Number.parseInt&&window.parseInt&&(Number.parseInt=window.parseInt);!Number.parseFloat&&window.parseFloat&&(Number.parseFloat=window.parseFloat);const VG={attributeNamePrefix:"@_",attrNodeName:!1,textNodeName:"#text",ignoreAttributes:!0,ignoreNameSpace:!1,allowBooleanAttributes:!1,parseNodeValue:!0,parseAttributeValue:!1,arrayMode:!1,trimValues:!0,cdataTagName:!1,cdataPositionChar:"\\c",numParseOptions:{hex:!0,leadingZeros:!0},tagValueProcessor:function(e,A){return e},attrValueProcessor:function(e,A){return e},stopNodes:[],alwaysCreateTextNode:!1};Ho.defaultOptions=VG;const WG=["attributeNamePrefix","attrNodeName","textNodeName","ignoreAttributes","ignoreNameSpace","allowBooleanAttributes","parseNodeValue","parseAttributeValue","arrayMode","trimValues","cdataTagName","cdataPositionChar","tagValueProcessor","attrValueProcessor","parseTrueNumberOnly","numParseOptions","stopNodes","alwaysCreateTextNode"];Ho.props=WG;function AC(e,A,t){return A&&(t.trimValues&&(A=A.trim()),A=t.tagValueProcessor(A,e),A=zG(A,t.parseNodeValue,t.numParseOptions)),A}function geA(e,A){if(A.ignoreNameSpace){const t=e.split(":"),i=e.charAt(0)==="/"?"/":"";if(t[0]==="xmlns")return"";t.length===2&&(e=i+t[1])}return e}function zG(e,A,t){if(A&&typeof e=="string"){const i=e.trim();return i==="true"?!0:i==="false"?!1:aeA(e,t)}else return yo.isExist(e)?e:""}const IeA=new RegExp(`([^\\s=]+)\\s*(=\\s*(['"])(.*?)\\3)?`,"g");function UR(e,A){if(!A.ignoreAttributes&&typeof e=="string"){e=e.replace(/\r?\n/g," ");const t=yo.getAllMatches(e,IeA),i=t.length,n={};for(let r=0;r",r,"Closing Tag is not closed.");let a=e.substring(r+2,s).trim();if(A.ignoreNameSpace){const g=a.indexOf(":");g!==-1&&(a=a.substr(g+1))}i&&(i.val?i.val=yo.getValue(i.val)+""+AC(a,n,A):i.val=AC(a,n,A)),A.stopNodes.length&&A.stopNodes.includes(i.tagname)&&(i.child=[],i.attrsMap==null&&(i.attrsMap={}),i.val=e.substr(i.startIndex+1,r-i.startIndex-1)),i=i.parent,n="",r=s}else if(e[r+1]==="?")r=Fg(e,"?>",r,"Pi Tag is not closed.");else if(e.substr(r+1,3)==="!--")r=Fg(e,"-->",r,"Comment is not closed.");else if(e.substr(r+1,2)==="!D"){const s=Fg(e,">",r,"DOCTYPE is not closed.");e.substring(r,s).indexOf("[")>=0?r=e.indexOf("]>",r)+1:r=s}else if(e.substr(r+1,2)==="!["){const s=Fg(e,"]]>",r,"CDATA is not closed.")-2,a=e.substring(r+9,s);if(n&&(i.val=yo.getValue(i.val)+""+AC(i.tagname,n,A),n=""),A.cdataTagName){const g=new $c(A.cdataTagName,i,a);i.addChild(g),i.val=yo.getValue(i.val)+A.cdataPositionChar,a&&(g.val=a)}else i.val=(i.val||"")+(a||"");r=s+2}else{const s=ceA(e,r+1);let a=s.data;const g=s.index,I=a.indexOf(" ");let l=a,c=!0;if(I!==-1&&(l=a.substr(0,I).replace(/\s\s*$/,""),a=a.substr(I+1)),A.ignoreNameSpace){const C=l.indexOf(":");C!==-1&&(l=l.substr(C+1),c=l!==s.data.substr(C+1))}if(i&&n&&i.tagname!=="!xml"&&(i.val=yo.getValue(i.val)+""+AC(i.tagname,n,A)),a.length>0&&a.lastIndexOf("/")===a.length-1){l[l.length-1]==="/"?(l=l.substr(0,l.length-1),a=l):a=a.substr(0,a.length-1);const C=new $c(l,i,"");l!==a&&(C.attrsMap=UR(a,A)),i.addChild(C)}else{const C=new $c(l,i);A.stopNodes.length&&A.stopNodes.includes(C.tagname)&&(C.startIndex=g),l!==a&&c&&(C.attrsMap=UR(a,A)),i.addChild(C),i=C}n="",r=g}else n+=e[r];return t};function ceA(e,A){let t,i="";for(let n=A;n")return{data:i,index:n};r===" "&&(r=" ")}i+=r}}function Fg(e,A,t,i){const n=e.indexOf(A,t);if(n===-1)throw new Error(i);return n+A.length-1}Ho.getTraversalObj=leA;var jG={};const lu=un,CeA={allowBooleanAttributes:!1},BeA=["allowBooleanAttributes"];jG.validate=function(e,A){A=lu.buildOptions(A,CeA,BeA);const t=[];let i=!1,n=!1;e[0]==="\uFEFF"&&(e=e.substr(1));for(let r=0;r"&&e[r]!==" "&&e[r]!==" "&&e[r]!==` +`&&e[r]!=="\r";r++)a+=e[r];if(a=a.trim(),a[a.length-1]==="/"&&(a=a.substring(0,a.length-1),r--),!yeA(a)){let l;return a.trim().length===0?l="Invalid space after '<'.":l="Tag '"+a+"' is an invalid name.",ot("InvalidTag",l,Ai(e,r))}const g=heA(e,r);if(g===!1)return ot("InvalidAttr","Attributes for '"+a+"' have open quote.",Ai(e,r));let I=g.value;if(r=g.index,I[I.length-1]==="/"){const l=r-I.length;I=I.substring(0,I.length-1);const c=qR(I,A);if(c===!0)i=!0;else return ot(c.err.code,c.err.msg,Ai(e,l+c.err.line))}else if(s)if(g.tagClosed){if(I.trim().length>0)return ot("InvalidTag","Closing tag '"+a+"' can't have attributes or invalid starting.",Ai(e,o));{const l=t.pop();if(a!==l.tagName){let c=Ai(e,l.tagStartPos);return ot("InvalidTag","Expected closing tag '"+l.tagName+"' (opened in line "+c.line+", col "+c.col+") instead of closing tag '"+a+"'.",Ai(e,o))}t.length==0&&(n=!0)}}else return ot("InvalidTag","Closing tag '"+a+"' doesn't have proper closing.",Ai(e,r));else{const l=qR(I,A);if(l!==!0)return ot(l.err.code,l.err.msg,Ai(e,r-I.length+l.err.line));if(n===!0)return ot("InvalidXml","Multiple possible root nodes found.",Ai(e,r));t.push({tagName:a,tagStartPos:o}),i=!0}for(r++;r0)return ot("InvalidXml","Invalid '"+JSON.stringify(t.map(r=>r.tagName),null,4).replace(/\r?\n/g,"")+"' found.",{line:1,col:1})}else return ot("InvalidXml","Start tag expected.",1);return!0};function PR(e,A){const t=A;for(;A5&&i==="xml")return ot("InvalidXml","XML declaration allowed only at the start of the document.",Ai(e,A));if(e[A]=="?"&&e[A+1]==">"){A++;break}else continue}return A}function HR(e,A){if(e.length>A+5&&e[A+1]==="-"&&e[A+2]==="-"){for(A+=3;A"){A+=2;break}}else if(e.length>A+8&&e[A+1]==="D"&&e[A+2]==="O"&&e[A+3]==="C"&&e[A+4]==="T"&&e[A+5]==="Y"&&e[A+6]==="P"&&e[A+7]==="E"){let t=1;for(A+=8;A"&&(t--,t===0))break}else if(e.length>A+9&&e[A+1]==="["&&e[A+2]==="C"&&e[A+3]==="D"&&e[A+4]==="A"&&e[A+5]==="T"&&e[A+6]==="A"&&e[A+7]==="["){for(A+=8;A"){A+=2;break}}return A}const EeA='"',ueA="'";function heA(e,A){let t="",i="",n=!1;for(;A"&&i===""){n=!0;break}t+=e[A]}return i!==""?!1:{value:t,index:A,tagClosed:n}}const feA=new RegExp(`(\\s*)([^\\s=]+)(\\s*=)?(\\s*(['"])(([\\s\\S])*?)\\5)?`,"g");function qR(e,A){const t=lu.getAllMatches(e,feA),i={};for(let n=0;n1){i+='"'+o+'" : [ ';for(let s in e.child[o])i+=kd(e.child[o][s],A)+" , ";i=i.substr(0,i.length-1)+" ] "}else i+='"'+o+'" : '+kd(e.child[o][0],A)+" ,"}return tC.merge(i,e.attrsMap),tC.isEmptyObject(i)?tC.isExist(e.val)?e.val:"":(tC.isExist(e.val)&&(typeof e.val=="string"&&(e.val===""||e.val===A.cdataPositionChar)||(i+='"'+A.textNodeName+'" : '+xeA(e.val))),i[i.length-1]===","&&(i=i.substr(0,i.length-2)),i+"}")};function xeA(e){return e===!0||e===!1||!isNaN(e)?e:'"'+e+'"'}ZG.convertToJsonString=ReA;const FeA=un.buildOptions,NeA={attributeNamePrefix:"@_",attrNodeName:!1,textNodeName:"#text",ignoreAttributes:!0,cdataTagName:!1,cdataPositionChar:"\\c",format:!1,indentBy:" ",supressEmptyNode:!1,tagValueProcessor:function(e){return e},attrValueProcessor:function(e){return e}},LeA=["attributeNamePrefix","attrNodeName","textNodeName","ignoreAttributes","cdataTagName","cdataPositionChar","format","indentBy","supressEmptyNode","tagValueProcessor","attrValueProcessor","rootNodeName"];function Gy(e){this.options=FeA(e,NeA,LeA),this.options.ignoreAttributes||this.options.attrNodeName?this.isAttribute=function(){return!1}:(this.attrPrefixLen=this.options.attributeNamePrefix.length,this.isAttribute=UeA),this.options.cdataTagName?this.isCDATA=PeA:this.isCDATA=function(){return!1},this.replaceCDATAstr=GeA,this.replaceCDATAarr=_eA,this.processTextOrObjNode=beA,this.options.format?(this.indentate=TeA,this.tagEndChar=`> `,this.newLine=` -`):(this.indentate=function(){return""},this.tagEndChar=">",this.newLine=""),this.options.supressEmptyNode?(this.buildTextNode=GeA,this.buildObjNode=beA):(this.buildTextNode=KR,this.buildObjNode=YR),this.buildTextValNode=KR,this.buildObjectNode=YR}by.prototype.parse=function(e){return Array.isArray(e)&&this.options.rootNodeName&&this.options.rootNodeName.length>1&&(e={[this.options.rootNodeName]:e}),this.j2x(e,0).val};by.prototype.j2x=function(e,A){let t="",i="";for(let n in e)if(typeof e[n]!="undefined")if(e[n]===null)i+=this.indentate(A)+"<"+n+"/"+this.tagEndChar;else if(e[n]instanceof Date)i+=this.buildTextNode(e[n],n,"",A);else if(typeof e[n]!="object"){const r=this.isAttribute(n);r?t+=" "+r+'="'+this.options.attrValueProcessor(""+e[n])+'"':this.isCDATA(n)?e[this.options.textNodeName]?i+=this.replaceCDATAstr(e[this.options.textNodeName],e[n]):i+=this.replaceCDATAstr("",e[n]):n===this.options.textNodeName?e[this.options.cdataTagName]||(i+=this.options.tagValueProcessor(""+e[n])):i+=this.buildTextNode(e[n],n,"",A)}else if(Array.isArray(e[n]))if(this.isCDATA(n))i+=this.indentate(A),e[this.options.textNodeName]?i+=this.replaceCDATAarr(e[this.options.textNodeName],e[n]):i+=this.replaceCDATAarr("",e[n]);else{const r=e[n].length;for(let o=0;o");return e+this.newLine}function YR(e,A,t,i){return t&&e.indexOf("<")===-1?this.indentate(i)+"<"+A+t+">"+e+""+this.options.tagValueProcessor(e)+"qG.parse(e,UeA);function jG(e){const A=PeA(e);if(!A.OME)throw Error("Failed to parse OME-XML metadata.");return MR(A.OME.Image).map(t=>{const i=MR(t.Pixels.Channel).map(s=>"Color"in s.attr?{...s.attr,Color:OAA(s.attr.Color)}:{...s.attr}),{AquisitionDate:n="",Description:r=""}=t,o={...t.attr,AquisitionDate:n,Description:r,Pixels:{...t.Pixels.attr,Channels:i}};return{...o,format(){const{Pixels:s}=o,a=["X","Y","Z"].map(g=>{const I=s[`PhysicalSize${g}`],l=s[`PhysicalSize${g}Unit`];return I&&l?`${I} ${l}`:"-"}).join(" x ");return{"Acquisition Date":o.AquisitionDate,"Dimensions (XY)":`${s.SizeX} x ${s.SizeY}`,"Pixels Type":s.Type,"Pixels Size (XYZ)":a,"Z-sections/Timepoints":`${s.SizeZ} x ${s.SizeT}`,Channels:s.SizeC}}}})}class XG{constructor(A,t,i,n,r,o,s){this.dtype=t,this.tileSize=i,this.shape=n,this.labels=r,this.meta=o,this.pool=s,this._indexer=A}async getRaster({selection:A,signal:t}){const i=await this._indexer(A);return this._readRasters(i,{signal:t})}async getTile({x:A,y:t,selection:i,signal:n}){const{height:r,width:o}=this._getTileExtent(A,t),s=A*this.tileSize,a=t*this.tileSize,g=[s,a,s+o,a+r],I=await this._indexer(i);return this._readRasters(I,{window:g,width:o,height:r,signal:n})}async _readRasters(A,t){var o;const i=Vr(this.shape),n=await A.readRasters({interleave:i,...t,pool:this.pool});if((o=t==null?void 0:t.signal)!=null&&o.aborted)throw Ly;return{data:i?n:n[0],width:n.width,height:n.height}}_getTileExtent(A,t){const{height:i,width:n}=no(this);let r=this.tileSize,o=this.tileSize;const s=Math.floor(n/this.tileSize),a=Math.floor(i/this.tileSize);return A===s&&(o=n%this.tileSize),t===a&&(r=i%this.tileSize),{height:r,width:o}}onTileError(A){console.error(A)}}function HeA(e,A){const{SizeT:t,SizeC:i,SizeZ:n}=A[0].Pixels,r=ZG(A,0);return(o,s)=>{const a=r(o),g=s*n*t*i;return e.getImage(a+g)}}function qeA(e,A,t=0){const i=ZG(A,t),n=new Map;return async(r,o)=>{const s=i(r),a=await e.getImage(s);if(o===0)return a;const{SubIFDs:g}=a.fileDirectory;if(!g)throw Error("Indexing Error: OME-TIFF is missing SubIFDs.");const I=`${r.t}-${r.c}-${r.z}-${o}`;if(!n.has(I)){const c=g[o-1];n.set(I,e.parseFileDirectoryAt(c))}const l=await n.get(I);return new bG(l.fileDirectory,l.geoKeyDirectory,a.dataView,e.littleEndian,e.cache,e.source)}}function ZG(e,A=0){const{SizeC:t,SizeZ:i,SizeT:n,DimensionOrder:r}=e[A].Pixels;let o=0;if(A>0)for(let s=0;so+s*i*t+a*i+g;case"XYZTC":return({t:s,c:a,z:g})=>o+a*i*n+s*i+g;case"XYCTZ":return({t:s,c:a,z:g})=>o+g*t*n+s*t+a;case"XYCZT":return({t:s,c:a,z:g})=>o+s*t*i+g*t+a;case"XYTCZ":return({t:s,c:a,z:g})=>o+g*n*t+a*n+s;case"XYTZC":return({t:s,c:a,z:g})=>o+a*n*i+g*n+s;default:throw new Error(`Invalid OME-XML DimensionOrder, got ${r}.`)}}function JeA(e){function A({c:i=0,t:n=0,z:r=0}){return`${i}-${n}-${r}`}const t=new Map(e.map(({selection:i,tiff:n})=>[A(i),n]));return async i=>{const n=A(i),r=t.get(n);if(!r)throw new Error(`No image available for selection ${n}`);return r}}function OeA(e,A,t,i){return t?qeA(e,A,i):HeA(e,A)}async function YeA(e,A){const t=await e.getImage(0),{ImageDescription:i,SubIFDs:n,PhotometricInterpretation:r}=t.fileDirectory,o=jG(i);let s=o,a;n?a=n.length+1:(a=o.length,s=[o[0]]);const g=(I,l,c)=>{const{labels:C,getShape:B,physicalSizes:u,dtype:E}=YAA(c),h=PG(t),f={photometricInterpretation:r,physicalSizes:u},Q=B(I),d=m=>l(m,I);return new XG(d,E,h,Q,C,f,A)};return s.map((I,l)=>{const c=OeA(e,o,n,l);return{data:Array.from({length:a}).map((B,u)=>g(u,c,I)),metadata:I}})}function KeA(e){const A=e[0].tiff.getWidth(),t=e[0].tiff.getHeight();for(const i of e)if(i.tiff.getWidth()!==A||i.tiff.getHeight()!==t)throw new Error("All images must have the same width and height")}async function VeA(e,A){for(let t=0;t<=Math.max(...e.map(i=>i.selection.t));t+=1)for(let i=0;i<=Math.max(...e.map(n=>n.selection.c));i+=1)for(let n=0;n<=Math.max(...e.map(r=>r.selection.z));n+=1)await A({t,c:i,z:n})}async function WeA(e,A,t,i){KeA(A);const n=A[0].tiff,{PhotometricInterpretation:r}=n.fileDirectory,o="XYZCT",s=PG(n),a={photometricInterpretation:r},g=JeA(A),{shape:I,labels:l,dtype:c}=WAA(o,A),C=jAA(e,A,t,o,c);return await VeA(A,g),{data:[new XG(g,c,s,I,l,a,i)],metadata:C}}zn(5,()=>qAA);const WB="file://";async function VR(e,A={}){const{headers:t={},offsets:i,pool:n,images:r="first"}=A;let o;typeof e=="string"?e.startsWith(WB)?o=await _G(e.slice(WB.length)):o=await gu(e,{headers:t,cacheSize:1/0}):o=await Iu(e),i&&(o=kAA(o,i)),_AA(o);const s=await YeA(o,n);return r==="all"?s:s[0]}function WR(e,A,t){return t.length===1?e:e+`_${A.toString()}`}async function zeA(e,A={}){var s;const{pool:t,headers:i={},name:n="MultiTiff"}=A,r=[],o=[];for(const a of e){const[g,I]=a,l=Array.isArray(g)?g:[g];if(typeof I=="string"){const c=kR(I),C=(s=c.extension)==null?void 0:s.toLowerCase();if(C==="tif"||C==="tiff"){const B=c.name;if(B){let u;I.startsWith(WB)?u=await _G(I.slice(WB.length)):u=await gu(I,{headers:i,cacheSize:1/0});for(let E=0;E0)return WeA(n,r,A.channelNames||o,t);throw new Error("Unable to load image from provided TiffFolder source.")}const kd=new Map;function Gy(e,A){kd.set(e,A)}async function jeA(e){if(!kd.has(e.id))throw new Error(`Compression codec ${e.id} is not supported by Zarr.js yet.`);return(await kd.get(e.id)()).fromConfig(e)}function _y(e){return new Proxy(e,{set(A,t,i,n){return A.setItem(t,i)},get(A,t,i){return A.getItem(t)},deleteProperty(A,t){return A.deleteItem(t)},has(A,t){return A.containsItem(t)}})}function XeA(e){return typeof e=="object"&&e!==null&&"__zarr__"in e}function hf(e){return XeA(e)&&e.__zarr__==="KeyError"}class br extends Error{constructor(A){super(`path ${A} contains an array`),this.__zarr__="ContainsArrayError",Object.setPrototypeOf(this,br.prototype)}}class Ya extends Error{constructor(A){super(`path ${A} contains a group`),this.__zarr__="ContainsGroupError",Object.setPrototypeOf(this,Ya.prototype)}}class cu extends Error{constructor(A){super(`ground not found at path ${A}`),this.__zarr__="GroupNotFoundError",Object.setPrototypeOf(this,cu.prototype)}}class Mt extends Error{constructor(A){super(A),this.__zarr__="PermissionError",Object.setPrototypeOf(this,Mt.prototype)}}class Ka extends Error{constructor(A){super(`key ${A} not present`),this.__zarr__="KeyError",Object.setPrototypeOf(this,Ka.prototype)}}class My extends RangeError{constructor(A,t){super(`too many indices for array; expected ${t.length}, got ${A.length}`),this.__zarr__="TooManyIndicesError",Object.setPrototypeOf(this,My.prototype)}}class Jo extends RangeError{constructor(A){super(A),this.__zarr__="BoundsCheckError",Object.setPrototypeOf(this,Jo.prototype)}}class zB extends RangeError{constructor(A,t,i,n){super(`slice arguments slice(${A}, ${t}, ${i}) invalid: ${n}`),this.__zarr__="InvalidSliceError",Object.setPrototypeOf(this,zB.prototype)}}class ky extends Error{constructor(){super("Negative step size is not supported when indexing."),this.__zarr__="NegativeStepError",Object.setPrototypeOf(this,ky.prototype)}}class oi extends Error{constructor(A){super(A),this.__zarr__="ValueError",Object.setPrototypeOf(this,oi.prototype)}}class Ty extends Error{constructor(A){super(A),this.__zarr__="HTTPError",Object.setPrototypeOf(this,Ty.prototype)}}function Jn(e,A=void 0,t=null){if(e===void 0)throw new zB(e,A,t,"The first argument must not be undefined");if(typeof e=="string"&&e!==":"||typeof A=="string"&&A!==":")throw new zB(e,A,t,'Arguments can only be integers, ":" or null');return A===void 0&&(A=e,e=null),{start:e===":"?null:e,stop:A===":"?null:A,step:t,_slice:!0}}function ZeA(e,A,t,i){if(e<0?(e+=i,e<0&&(e=t<0?-1:0)):e>=i&&(e=t<0?i-1:i),A<0?(A+=i,A<0&&(A=t<0?-1:0)):A>=i&&(A=t<0?i-1:i),t<0){if(AA.length)throw new My(e,A)}function Oo(e,A){const t=[],i=[];for(let n=0;n1)throw new RangeError("an index can only have a single ellipsis ('...')");if(i===1){const n=t,r=e.length-(n+1),o=e.length-1;if(o>=A.length)e=e.filter(s=>s!=="...");else{const s=A.length-o;let a=e.slice(0,n).concat(new Array(s).fill(null));r>0&&(a=a.concat(e.slice(e.length-r))),e=a}}if(e.length=A||e<0)throw new Jo(`index out of bounds for dimension with length ${A}`);return e}function etA(e){return typeof e=="number"}function e_(e){if(!Array.isArray(e))return!1;for(const A of e)if(typeof A!="number")return!1;return!0}function Py(e){return e!==null&&e._slice===!0}function ttA(e){return Py(e)&&(e.step===null||e.step===1)}function itA(e){e=A_(e);for(let A=0;Ai()),t=A.map(i=>i.next());for(let i=0;;){if(t[i].done){if(A[i]=e[i](),t[i]=A[i].next(),++i>=A.length)return}else yield t.map(({value:n})=>n),i=0;t[i]=A[i].next()}}class zR{constructor(A,t){A=Wr(A,t.shape),this.dimIndexers=[];const i=t.shape;for(let n=0;n()=>i.iter()),t=ntA(...A);for(const i of t){const n=[],r=[],o=[];for(const s of i)n.push(s.dimChunkIndex),r.push(s.dimChunkSelection),s.dimOutSelection!==null&&o.push(s.dimOutSelection);yield{chunkCoords:n,chunkSelection:r,outSelection:o}}}}class rtA{constructor(A,t,i){A=Uy(A,t),this.dimSelection=A,this.dimLength=t,this.dimChunkLength=i,this.numItems=1}*iter(){const A=Math.floor(this.dimSelection/this.dimChunkLength),t=A*this.dimChunkLength,i=this.dimSelection-t;yield{dimChunkIndex:A,dimChunkSelection:i,dimOutSelection:null}}}class jR{constructor(A,t,i){const[n,r,o]=$G(A,t);if(this.start=n,this.stop=r,this.step=o,this.step<1)throw new ky;this.dimLength=t,this.dimChunkLength=i,this.numItems=Math.max(0,Math.ceil((this.stop-this.start)/this.step)),this.numChunks=Math.ceil(this.dimLength/this.dimChunkLength)}*iter(){const A=Math.floor(this.start/this.dimChunkLength),t=Math.ceil(this.stop/this.dimChunkLength);for(let i=A;i0&&(s+=this.step-C),g=Math.ceil((n-this.start)/this.step)}else s=this.start-n,g=0;this.stop>r?a=o:a=this.stop-n;const I=Jn(s,a,this.step),l=Math.ceil((a-s)/this.step),c=Jn(g,g+l);yield{dimChunkIndex:i,dimChunkSelection:I,dimOutSelection:c}}}}const Va=typeof process!="undefined"&&process.versions&&process.versions.node;function XR(){}function _i(e){if(e===null)return"";for(e instanceof String&&(e=e.valueOf()),e=e.replace(/\\/g,"/");e.length>0&&e[0]==="/";)e=e.slice(1);for(;e.length>0&&e[e.length-1]==="/";)e=e.slice(0,e.length-1);e=e.replace(/\/\/+/g,"/");const A=e.split("/");for(const t of A)if(t==="."||t==="..")throw Error("path containing '.' or '..' segment not allowed");return e}function Hy(e){return typeof e=="number"&&(e=[e]),e.map(A=>Math.floor(A))}function otA(e,A){if(e===null||e===!0)throw new Error("Chunk guessing is not supported yet");return e===!1?A:(typeof e=="number"&&(e=[e]),e.lengtht===-1||t===null?A[i]:Math.floor(t)))}function stA(e){return e=e.toUpperCase(),e}function ZR(e,A){if(e===null)return!0;Array.isArray(e)||(e=[e]);for(let t=0;t=0;n--)t[n]=i,i*=e[n];return t}function ff(e,A){const t=typeof e=="string"?new URL(e):e;t.pathname.endsWith("/")||(t.pathname+="/");const i=new URL(A,t);return i.search=t.search,i.href}function t_(e){const A=e.BYTES_PER_ELEMENT;if(A===1)return;if(Va){const o=Buffer.from(e.buffer,e.byteOffset,e.length*A);A===2&&o.swap16(),A===4&&o.swap32(),A===8&&o.swap64();return}const t=new Uint8Array(e.buffer,e.byteOffset,e.length*A),i=A/2,n=A-1;let r;for(let o=0;os*a),r=t.map((s,a)=>a+1===i?1:t.slice(a+1).reduce((g,I)=>g*I,1)),o=Array(i).fill(0);for(let s=0;s0?e+"/":""}async function n_(e,A,t,i){if(A.length===0)return;const n=A.split("/");let r="";for(const o of n.slice(0,n.length-1))r+=o,await kn(e,r)?await Td(e,r,i):await cn(e,r)||await Td(e,r),r+="/"}async function Td(e,A=null,t=!1){if(A=_i(A),t)throw Error("Group overwriting not implemented yet :(");if(await kn(e,A))throw new br(A);if(await cn(e,A))throw new Ya(A);const i={zarr_format:2},n=zr(A)+Jy;await e.setItem(n,JSON.stringify(i))}async function pI(e,A=null,t=null,i=!1){A=_i(A),await n_(e,A,t,i),await Td(e,A,i)}async function htA(e,A,t,i,n,r,o,s,a,g,I,l){if(a)throw Error("Array overwriting not implemented yet :(");if(await kn(e,n))throw new br(n);if(await cn(e,n))throw new Ya(n);if(i=i,A=Hy(A),t=otA(t,A),s=stA(s),o=o,I!==null&&I.length>0)throw Error("Filters are not supported yet");let c=o;typeof o=="number"&&(Number.isNaN(o)&&(c="NaN"),Number.POSITIVE_INFINITY===o&&(c="Infinity"),Number.NEGATIVE_INFINITY===o&&(c="-Infinity")),I=null;const C={zarr_format:2,shape:A,chunks:t,dtype:i,fill_value:c,order:s,compressor:r,filters:I};l&&(C.dimension_separator=l);const B=zr(n)+jB;await e.setItem(B,JSON.stringify(C))}async function ftA(e,A,t,i,n=null,r=null,o=null,s="C",a=!1,g=null,I=null,l){n=_i(n),await n_(e,n,g,a),await htA(e,A,t,i,n,r,o,s,a,g,I,l)}function XB(e){if(typeof e!="string"){if(Va&&Buffer.isBuffer(e))return JSON.parse(e.toString());if(qy(e)){const A=new TextDecoder,t=new Uint8Array(e);return JSON.parse(A.decode(t))}else return e}return JSON.parse(e)}class r_{constructor(A,t,i,n=!0){this.store=A,this.key=t,this.readOnly=i,this.cache=n,this.cachedValue=null}async asObject(){if(this.cache&&this.cachedValue!==null)return this.cachedValue;const A=await this.getNoSync();return this.cache&&(this.cachedValue=A),A}async getNoSync(){try{const A=await this.store.getItem(this.key);return XB(A)}catch{return{}}}async setNoSync(A,t){const i=await this.getNoSync();return i[A]=t,await this.putNoSync(i),!0}async putNoSync(A){await this.store.setItem(this.key,JSON.stringify(A)),this.cache&&(this.cachedValue=A)}async delNoSync(A){const t=await this.getNoSync();return delete t[A],await this.putNoSync(t),!0}async put(A){if(this.readOnly)throw new Mt("attributes are read-only");return this.putNoSync(A)}async setItem(A,t){if(this.readOnly)throw new Mt("attributes are read-only");return this.setNoSync(A,t)}async getItem(A){return(await this.asObject())[A]}async deleteItem(A){if(this.readOnly)throw new Mt("attributes are read-only");return this.delNoSync(A)}async containsItem(A){return(await this.asObject())[A]!==void 0}proxy(){return _y(this)}}const QtA={"|b":Int8Array,"|B":Uint8Array,"|u1":Uint8Array,"|i1":Int8Array,"b":Int8Array,">B":Uint8Array,">u1":Uint8Array,">i1":Int8Array,">u2":Uint16Array,">i2":Int16Array,">u4":Uint32Array,">i4":Int32Array,">f4":Float32Array,">f8":Float64Array};function an(e){const A=QtA[e];if(!A)throw Error(`Dtype not recognized or not supported in zarr.js, got ${e}.`);return A}function o_(e){if(e instanceof Uint8Array)return"|u1";if(e instanceof Int8Array)return"|i1";if(e instanceof Uint16Array)return"0&&typeof a[0]=="number"&&(a=e[0].constructor.from(a)),a}function ptA(e,A,t,i){const n=Wr(i,t,!0),[r,o]=Oo(n,t);Yy(e,A,t,r)}function ytA(e,A,t,i,n){const r=Wr(n,t,!1),[o,s]=Oo(r,t);if(JSON.stringify(s)!==JSON.stringify(i))throw new oi(`Shape mismatch in target and source NestedArray: ${s} and ${i}`);Pd(e,A,t,o)}function Pd(e,A,t,i){const n=i[0];if(typeof A=="number"){Yy(e,A,t,i.map(g=>typeof g=="number"?[g,g+1,1,1]:g));return}if(typeof n=="number"){Pd(e[n],A,t.slice(1),i.slice(1));return}const[r,o,s,a]=n;if(t.length===1){if(s===1)e.set(A,r);else for(let g=0;gr*o,1),n=new t(i);return s_(e,A,n,0),n}function s_(e,A,t,i){if(A.length===1){t.set(e,i);return}if(A.length===2){for(let o=0;oo*s,1);for(let o=0;oa*g,1);A===null&&(A=new ArrayBuffer(r*parseInt(i[i.length-1],10)));const o=A.byteLength/parseInt(i[i.length-1],10);if(r!==o)throw new Error(`Buffer has ${o} of dtype ${i}, shape is too large or small ${t} (flat=${r})`);const s=an(i);this.data=a_(A,s,t)}else this.data=A}get(A){const[t,i]=dtA(this.data,this.shape,A);return i.length===0?t:new Nn(t,i,this.dtype)}set(A=null,t){A===null&&(A=[Jn(null)]),typeof t=="number"?this.shape.length===0?this.data[0]=t:ptA(this.data,t,this.shape,A):ytA(this.data,t.data,this.shape,t.shape,A)}flatten(){return this.shape.length===1?this.data:mtA(this.data,this.shape,an(this.dtype))}static arange(A,t="n*r,1),i=new A(t);return i.set([...Array(t).keys()]),i}function a_(e,A,t,i=0){if(t.length===1)return new A(e.slice(i,i+t[0]*A.BYTES_PER_ELEMENT));const n=new Array(t[0]);if(t.length===2){for(let s=0;ss*a,1);for(let s=0;sg*I,1);A===null&&(A=new ArrayBuffer(o*parseInt(i[i.length-1],10)));const s=A.byteLength/parseInt(i[i.length-1],10);if(o!==s)throw new Error(`Buffer has ${s} of dtype ${i}, shape is too large or small ${t} (flat=${o})`);const a=an(i);this.data=new a(A)}else this.data=A}set(A=null,t,i){A===null&&(A=[Jn(null)]),typeof t=="number"?this.shape.length===0?this.data[0]=t:vtA(this.data,this.strides,this.shape,A,t):t instanceof Eo&&i?DtA(this.data,this.strides,this.shape,A,t.data,t.strides,t.shape,i):StA(this.data,this.strides,this.shape,A,t.data,t.strides,t.shape)}}var I_={exports:{}};(function(e){var A=Object.prototype.hasOwnProperty,t="~";function i(){}Object.create&&(i.prototype=Object.create(null),new i().__proto__||(t=!1));function n(a,g,I){this.fn=a,this.context=g,this.once=I||!1}function r(a,g,I,l,c){if(typeof I!="function")throw new TypeError("The listener must be a function");var C=new n(I,l||a,c),B=t?t+g:g;return a._events[B]?a._events[B].fn?a._events[B]=[a._events[B],C]:a._events[B].push(C):(a._events[B]=C,a._eventsCount++),a}function o(a,g){--a._eventsCount===0?a._events=new i:delete a._events[g]}function s(){this._events=new i,this._eventsCount=0}s.prototype.eventNames=function(){var g=[],I,l;if(this._eventsCount===0)return g;for(l in I=this._events)A.call(I,l)&&g.push(t?l.slice(1):l);return Object.getOwnPropertySymbols?g.concat(Object.getOwnPropertySymbols(I)):g},s.prototype.listeners=function(g){var I=t?t+g:g,l=this._events[I];if(!l)return[];if(l.fn)return[l.fn];for(var c=0,C=l.length,B=new Array(C);c{if(typeof A!="number"||A<0)throw new TypeError("Expected `milliseconds` to be a positive number");if(A===Number.POSITIVE_INFINITY){o(e);return}i={customTimers:{setTimeout,clearTimeout},...i},n=i.customTimers.setTimeout.call(void 0,()=>{if(typeof t=="function"){try{o(t())}catch(I){s(I)}return}const a=typeof t=="string"?t:`Promise timed out after ${A} milliseconds`,g=t instanceof Error?t:new l_(a);typeof e.cancel=="function"&&e.cancel(),s(g)},A),(async()=>{try{o(await e)}catch(a){s(a)}finally{i.customTimers.clearTimeout.call(void 0,n)}})()});return r.clear=()=>{clearTimeout(n),n=void 0},r}function FtA(e,A,t){let i=0,n=e.length;for(;n>0;){const r=Math.trunc(n/2);let o=i+r;t(e[o],A)<=0?(i=++o,n-=r+1):n=r}return i}class NtA{constructor(){Object.defineProperty(this,"_queue",{enumerable:!0,configurable:!0,writable:!0,value:[]})}enqueue(A,t){var i;t={priority:0,...t};const n={priority:t.priority,run:A};if(this.size&&((i=this._queue[this.size-1])===null||i===void 0?void 0:i.priority)>=t.priority){this._queue.push(n);return}const r=FtA(this._queue,n,(o,s)=>s.priority-o.priority);this._queue.splice(r,0,n)}dequeue(){const A=this._queue.shift();return A==null?void 0:A.run}filter(A){return this._queue.filter(t=>t.priority===A.priority).map(t=>t.run)}get size(){return this._queue.length}}const iC=()=>{},LtA=new l_;class $R extends RtA{constructor(A){var t,i,n,r;if(super(),Object.defineProperty(this,"_carryoverConcurrencyCount",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_isIntervalIgnored",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_intervalCount",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_intervalCap",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_interval",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_intervalEnd",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_intervalId",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_timeoutId",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_queue",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_queueClass",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_pendingCount",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_concurrency",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_isPaused",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_resolveEmpty",{enumerable:!0,configurable:!0,writable:!0,value:iC}),Object.defineProperty(this,"_resolveIdle",{enumerable:!0,configurable:!0,writable:!0,value:iC}),Object.defineProperty(this,"_timeout",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_throwOnTimeout",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),A={carryoverConcurrencyCount:!1,intervalCap:Number.POSITIVE_INFINITY,interval:0,concurrency:Number.POSITIVE_INFINITY,autoStart:!0,queueClass:NtA,...A},!(typeof A.intervalCap=="number"&&A.intervalCap>=1))throw new TypeError(`Expected \`intervalCap\` to be a number from 1 and up, got \`${(i=(t=A.intervalCap)===null||t===void 0?void 0:t.toString())!==null&&i!==void 0?i:""}\` (${typeof A.intervalCap})`);if(A.interval===void 0||!(Number.isFinite(A.interval)&&A.interval>=0))throw new TypeError(`Expected \`interval\` to be a finite number >= 0, got \`${(r=(n=A.interval)===null||n===void 0?void 0:n.toString())!==null&&r!==void 0?r:""}\` (${typeof A.interval})`);this._carryoverConcurrencyCount=A.carryoverConcurrencyCount,this._isIntervalIgnored=A.intervalCap===Number.POSITIVE_INFINITY||A.interval===0,this._intervalCap=A.intervalCap,this._interval=A.interval,this._queue=new A.queueClass,this._queueClass=A.queueClass,this.concurrency=A.concurrency,this._timeout=A.timeout,this._throwOnTimeout=A.throwOnTimeout===!0,this._isPaused=A.autoStart===!1}get _doesIntervalAllowAnother(){return this._isIntervalIgnored||this._intervalCount{this._onResumeInterval()},t)),!0}return!1}_tryToStartAnother(){if(this._queue.size===0)return this._intervalId&&clearInterval(this._intervalId),this._intervalId=void 0,this._resolvePromises(),!1;if(!this._isPaused){const A=!this._isIntervalPaused();if(this._doesIntervalAllowAnother&&this._doesConcurrentAllowAnother){const t=this._queue.dequeue();return t?(this.emit("active"),t(),A&&this._initializeIntervalIfNeeded(),!0):!1}}return!1}_initializeIntervalIfNeeded(){this._isIntervalIgnored||this._intervalId!==void 0||(this._intervalId=setInterval(()=>{this._onInterval()},this._interval),this._intervalEnd=Date.now()+this._interval)}_onInterval(){this._intervalCount===0&&this._pendingCount===0&&this._intervalId&&(clearInterval(this._intervalId),this._intervalId=void 0),this._intervalCount=this._carryoverConcurrencyCount?this._pendingCount:0,this._processQueue()}_processQueue(){for(;this._tryToStartAnother(););}get concurrency(){return this._concurrency}set concurrency(A){if(!(typeof A=="number"&&A>=1))throw new TypeError(`Expected \`concurrency\` to be a number from 1 and up, got \`${A}\` (${typeof A})`);this._concurrency=A,this._processQueue()}async add(A,t={}){return new Promise((i,n)=>{const r=async()=>{this._pendingCount++,this._intervalCount++;try{const s=await(this._timeout===void 0&&t.timeout===void 0?A():xtA(Promise.resolve(A()),t.timeout===void 0?this._timeout:t.timeout,()=>{(t.throwOnTimeout===void 0?this._throwOnTimeout:t.throwOnTimeout)&&n(LtA)}));i(s),this.emit("completed",s)}catch(o){n(o),this.emit("error",o)}this._next()};this._queue.enqueue(r,t),this._tryToStartAnother(),this.emit("add")})}async addAll(A,t){return Promise.all(A.map(async i=>this.add(i,t)))}start(){return this._isPaused?(this._isPaused=!1,this._processQueue(),this):this}pause(){this._isPaused=!0}clear(){this._queue=new this._queueClass}async onEmpty(){if(this._queue.size!==0)return new Promise(A=>{const t=this._resolveEmpty;this._resolveEmpty=()=>{t(),A()}})}async onSizeLessThan(A){if(!(this._queue.size{const i=()=>{this._queue.size{const t=this._resolveIdle;this._resolveIdle=()=>{t(),A()}})}get size(){return this._queue.size}sizeBy(A){return this._queue.filter(A).length}get pending(){return this._pendingCount}get isPaused(){return this._isPaused}get timeout(){return this._timeout}set timeout(A){this._timeout=A}}class Cu{constructor(A,t=null,i,n=!1,r=null,o=!0,s=!0){this.store=A,this._chunkStore=r,this.path=_i(t),this.keyPrefix=zr(this.path),this.readOnly=n,this.cacheMetadata=o,this.cacheAttrs=s,this.meta=i,this.meta.compressor!==null?this.compressor=jeA(this.meta.compressor):this.compressor=null;const a=this.keyPrefix+i_;this.attrs=new r_(this.store,a,this.readOnly,s)}get chunkStore(){return this._chunkStore?this._chunkStore:this.store}get name(){return this.path.length>0?this.path[0]!=="/"?"/"+this.path:this.path:null}get basename(){const A=this.name;if(A===null)return null;const t=A.split("/");return t[t.length-1]}get shape(){return this.meta.shape}get chunks(){return this.meta.chunks}get chunkSize(){return this.chunks.reduce((A,t)=>A*t,1)}get dtype(){return this.meta.dtype}get fillValue(){const A=this.meta.fill_value;return A==="NaN"?NaN:A==="Infinity"?1/0:A==="-Infinity"?-1/0:this.meta.fill_value}get nDims(){return this.meta.shape.length}get size(){return this.meta.shape.reduce((A,t)=>A*t,1)}get length(){return this.shape[0]}get _chunkDataShape(){if(this.shape.length===0)return[1];{const A=[];for(let t=0;tA*t,1)}static async create(A,t=null,i=!1,n=null,r=!0,o=!0){const s=await this.loadMetadataForConstructor(A,t);return new Cu(A,t,s,i,n,r,o)}static async loadMetadataForConstructor(A,t){try{t=_i(t);const i=zr(t),n=await A.getItem(i+jB);return XB(n)}catch(i){throw await cn(A,t)?new Ya(t!=null?t:""):new Error("Failed to load metadata for ZarrArray:"+i.toString())}}async reloadMetadata(){const A=this.keyPrefix+jB,t=this.store.getItem(A);return this.meta=XB(await t),this.meta}async refreshMetadata(){this.cacheMetadata||await this.reloadMetadata()}get(A=null,t={}){return this.getBasicSelection(A,!1,t)}getRaw(A=null,t={}){return this.getBasicSelection(A,!0,t)}async getBasicSelection(A,t=!1,{concurrencyLimit:i=10,progressCallback:n}={}){if(this.cacheMetadata||await this.reloadMetadata(),this.shape.length===0)throw new Error("Shape [] indexing is not supported yet");return this.getBasicSelectionND(A,t,i,n)}getBasicSelectionND(A,t,i,n){const r=new zR(A,this);return this.getSelection(r,t,i,n)}async getSelection(A,t,i,n){const r=this.dtype,o=A.shape,s=A.shape.reduce((I,l)=>I*l,1);if(t&&s===this.chunkSize){const I=A.iter(),l=I.next();if(l.done===!1&&I.next().done===!0){const c=l.value;return await this.decodeDirectToRawArray(c,o,s)}}const a=t?new Eo(null,o,r):new Nn(null,o,r);if(s===0)return a;const g=new $R({concurrency:i});if(n){let I=0,l=0;for(const c of A.iter())l+=1;n({progress:0,queueSize:l});for(const c of A.iter())(async()=>(await g.add(()=>this.chunkGetItem(c.chunkCoords,c.chunkSelection,a,c.outSelection,A.dropAxes)),I+=1,n({progress:I,queueSize:l})))()}else for(const I of A.iter())g.add(()=>this.chunkGetItem(I.chunkCoords,I.chunkSelection,a,I.outSelection,A.dropAxes));return await g.onIdle(),a.shape.length===0?a.data[0]:a}async chunkGetItem(A,t,i,n,r){if(A.length!==this._chunkDataShape.length)throw new oi(`Inconsistent shapes: chunkCoordsLength: ${A.length}, cDataShapeLength: ${this.chunkDataShape.length}`);const o=this.chunkKey(A);try{const s=await this.chunkStore.getItem(o),a=await this.decodeChunk(s);if(i instanceof Nn){if(itA(n)&&ZR(t,this.chunks)&&!this.meta.filters){i.set(n,this.toNestedArray(a));return}const I=this.toNestedArray(a).get(t);if(r!==null)throw new Error("Drop axes is not supported yet");i.set(n,I)}else i.set(n,this.chunkBufferToRawArray(a),t)}catch(s){if(hf(s))this.fillValue!==null&&i.set(n,this.fillValue);else throw s}}async getRawChunk(A,t){if(A.length!==this.shape.length)throw new Error(`Chunk coordinates ${A.join(".")} do not correspond to shape ${this.shape}.`);try{for(let s=0;ss!==1);return new Eo(r,o,this.dtype)}chunkKey(A){var t;const i=(t=this.meta.dimension_separator)!==null&&t!==void 0?t:".";return this.keyPrefix+A.join(i)}ensureByteArray(A){return typeof A=="string"?new Uint8Array(Buffer.from(A).buffer):new Uint8Array(A)}toTypedArray(A){return new(an(this.dtype))(A)}toNestedArray(A){const t=this.ensureByteArray(A).buffer;return new Nn(t,this.chunks,this.dtype)}async decodeChunk(A){let t=this.ensureByteArray(A);if(this.compressor!==null&&(t=await(await this.compressor).decode(t)),this.dtype.includes(">")&&t_(this.toTypedArray(t.buffer)),this.meta.order==="F"&&this.nDims>1){const i=this.toTypedArray(t.buffer),n=new(an(this.dtype))(i.length);return utA(i,n,this.chunks),n.buffer}return t.buffer}chunkBufferToRawArray(A){return new Eo(A,this.chunks,this.dtype)}async decodeDirectToRawArray({chunkCoords:A},t,i){const n=this.chunkKey(A);try{const r=await this.chunkStore.getItem(n);return new Eo(await this.decodeChunk(r),t,this.dtype)}catch(r){if(hf(r)){const o=new(an(this.dtype))(i);return new Eo(o.fill(this.fillValue),t)}else throw r}}async set(A=null,t,i={}){await this.setBasicSelection(A,t,i)}async setBasicSelection(A,t,{concurrencyLimit:i=10,progressCallback:n}={}){if(this.readOnly)throw new Mt("Object is read only");if(this.cacheMetadata||await this.reloadMetadata(),this.shape.length===0)throw new Error("Shape [] indexing is not supported yet");await this.setBasicSelectionND(A,t,i,n)}async setBasicSelectionND(A,t,i,n){const r=new zR(A,this);await this.setSelection(r,t,i,n)}getChunkValue(A,t,i,n){let r;if(n.length===0)r=i;else if(typeof i=="number")r=i;else if(r=i.get(A.outSelection),t.dropAxes!==null)throw new Error("Handling drop axes not supported yet");return r}async setSelection(A,t,i,n){const r=A.shape;if(r.length!==0){if(typeof t!="number")if(t instanceof Nn){if(!atA(t.shape,r))throw new oi(`Shape mismatch in source NestedArray and set selection: ${t.shape} and ${r}`)}else throw new Error("Unknown data type for setting :(")}const o=new $R({concurrency:i});if(n){let s=0;for(const g of A.iter())s+=1;let a=0;n({progress:0,queueSize:s});for(const g of A.iter()){const I=this.getChunkValue(g,A,t,r);(async()=>(await o.add(()=>this.chunkSetItem(g.chunkCoords,g.chunkSelection,I)),a+=1,n({progress:a,queueSize:s})))()}}else for(const s of A.iter()){const a=this.getChunkValue(s,A,t,r);o.add(()=>this.chunkSetItem(s.chunkCoords,s.chunkSelection,a))}await o.onIdle()}async chunkSetItem(A,t,i){if(this.meta.order==="F"&&this.nDims>1)throw new Error("Setting content for arrays in F-order is not supported.");const n=this.chunkKey(A);let r=null;const o=an(this.dtype),s=this.chunkSize;if(ZR(t,this.chunks))typeof i=="number"?(r=new o(s),r.fill(i)):r=i.flatten();else{let g;try{const l=await this.chunkStore.getItem(n),c=await this.decodeChunk(l);g=this.toTypedArray(c)}catch(l){if(hf(l))g=new o(s),this.fillValue!==null&&g.fill(this.fillValue);else throw l}const I=new Nn(g,this.chunks,this.dtype);I.set(t,i),r=I.flatten()}const a=await this.encodeChunk(r);this.chunkStore.setItem(n,a)}async encodeChunk(A){if(this.dtype.includes(">")&&(A=ItA(A)),this.compressor!==null){const t=new Uint8Array(A.buffer);return(await(await this.compressor).encode(t)).buffer}return A.buffer}}class btA{constructor(A={}){this.root=A}proxy(){return _y(this)}getParent(A){let t=this.root;const i=A.split("/");for(const n of i.slice(0,i.length-1))if(t=t[n],!t)throw Error(A);return[t,i[i.length-1]]}requireParent(A){let t=this.root;const i=A.split("/");for(const n of i.slice(0,i.length-1))t[n]===void 0&&(t[n]={}),t=t[n];return[t,i[i.length-1]]}getItem(A){const[t,i]=this.getParent(A),n=t[i];if(n===void 0)throw new Ka(A);return n}setItem(A,t){const[i,n]=this.requireParent(A);return i[n]=t,!0}deleteItem(A){const[t,i]=this.getParent(A);return delete t[i]}containsItem(A){try{return this.getItem(A)!==void 0}catch{return!1}}keys(){throw new Error("Method not implemented.")}}var en;(function(e){e.HEAD="HEAD",e.GET="GET",e.PUT="PUT"})(en||(en={}));const GtA=[en.HEAD,en.GET,en.PUT];class Ky{constructor(A,t={}){this.url=A;const{fetchOptions:i={},supportedMethods:n=GtA}=t;this.fetchOptions=i,this.supportedMethods=new Set(n)}keys(){throw new Error("Method not implemented.")}async getItem(A,t){const i=ff(this.url,A),n=await fetch(i,{...this.fetchOptions,...t});if(n.status===404)throw new Ka(A);if(n.status!==200)throw new Ty(String(n.status));return Va?Buffer.from(await n.arrayBuffer()):n.arrayBuffer()}async setItem(A,t){if(!this.supportedMethods.has(en.PUT))throw new Error("HTTP PUT no a supported method for store.");const i=ff(this.url,A);return typeof t=="string"&&(t=new TextEncoder().encode(t).buffer),(await fetch(i,{...this.fetchOptions,method:en.PUT,body:t})).status.toString()[0]==="2"}deleteItem(A){throw new Error("Method not implemented.")}async containsItem(A){const t=ff(this.url,A),i=this.supportedMethods.has(en.HEAD)?en.HEAD:en.GET;return(await fetch(t,{...this.fetchOptions,method:i})).status===200}}async function Wa({shape:e,chunks:A=!0,dtype:t="0?this.path[0]!=="/"?"/"+this.path:this.path:"/"}get basename(){const A=this.name.split("/");return A[A.length-1]}get chunkStore(){return this._chunkStore?this._chunkStore:this.store}static async create(A,t=null,i=!1,n=null,r=!0){const o=await this.loadMetadataForConstructor(A,t);return new Vs(A,t,o,i,n,r)}static async loadMetadataForConstructor(A,t){t=_i(t);const i=zr(t);try{const n=await A.getItem(i+Jy);return XB(n)}catch{throw await kn(A,t)?new br(t):new cu(t)}}itemPath(A){const t=typeof A=="string"&&A.length>0&&A[0]==="/",i=_i(A);return!t&&this.path.length>0?this.keyPrefix+i:i}async createGroup(A,t=!1){if(this.readOnly)throw new Mt("group is read only");const i=this.itemPath(A);return await pI(this.store,i,this._chunkStore,t),Vs.create(this.store,i,this.readOnly,this._chunkStore,this.attrs.cache)}async requireGroup(A,t=!1){if(this.readOnly)throw new Mt("group is read only");const i=this.itemPath(A);return await cn(this.store,i)||await pI(this.store,i,this._chunkStore,t),Vs.create(this.store,i,this.readOnly,this._chunkStore,this.attrs.cache)}getOptsForArrayCreation(A,t={}){const i=this.itemPath(A);return t.path=i,t.cacheAttrs===void 0&&(t.cacheAttrs=this.attrs.cache),t.store=this.store,t.chunkStore=this.chunkStore,t}array(A,t,i,n){if(this.readOnly)throw new Mt("group is read only");return i=this.getOptsForArrayCreation(A,i),i.overwrite=n===void 0?i.overwrite:n,A1(t,i)}empty(A,t,i={}){if(this.readOnly)throw new Mt("group is read only");return i=this.getOptsForArrayCreation(A,i),_tA(t,i)}zeros(A,t,i={}){if(this.readOnly)throw new Mt("group is read only");return i=this.getOptsForArrayCreation(A,i),MtA(t,i)}ones(A,t,i={}){if(this.readOnly)throw new Mt("group is read only");return i=this.getOptsForArrayCreation(A,i),ktA(t,i)}full(A,t,i,n={}){if(this.readOnly)throw new Mt("group is read only");return n=this.getOptsForArrayCreation(A,n),TtA(t,i,n)}createDataset(A,t,i,n){if(this.readOnly)throw new Mt("group is read only");n=this.getOptsForArrayCreation(A,n);let r;if(i===void 0){if(t===void 0)throw new oi("Shape must be set if no data is passed to CreateDataset");r=Wa({shape:t,...n})}else r=A1(i,n);return r}async getItem(A){const t=this.itemPath(A);if(await kn(this.store,t))return Cu.create(this.store,t,this.readOnly,this.chunkStore,void 0,this.attrs.cache);if(await cn(this.store,t))return Vs.create(this.store,t,this.readOnly,this._chunkStore,this.attrs.cache);throw new Ka(A)}async setItem(A,t){return await this.array(A,t,{},!0),!0}async deleteItem(A){throw this.readOnly?new Mt("group is read only"):new Error("Method not implemented.")}async containsItem(A){const t=this.itemPath(A);return await kn(this.store,t)||cn(this.store,t)}proxy(){return _y(this)}}async function UtA(e,A=null,t="a",i,n=!0){if(e=Jd(e),i!==void 0&&(i=Jd(e)),A=_i(A),t==="r"||t==="r+"){if(!await cn(e,A))throw await kn(e,A)?new br(A):new cu(A)}else if(t==="w")await pI(e,A,i,!0);else if(t==="a"){if(!await cn(e,A)){if(await kn(e,A))throw new br(A);await pI(e,A,i)}}else if(t==="w-"||t==="x"){if(await kn(e,A))throw new br(A);if(await cn(e,A))throw new Ya(A);await pI(e,A,i)}else throw new oi(`Invalid mode argument: ${t}`);const r=t==="r";return Vs.create(e,A,r,i,n)}/*! pako 2.0.3 https://github.com/nodeca/pako @license (MIT AND Zlib) */const PtA=4,e1=0,t1=1,HtA=2;function za(e){let A=e.length;for(;--A>=0;)e[A]=0}const qtA=0,c_=1,JtA=2,OtA=3,YtA=258,Vy=29,Wl=256,rl=Wl+1+Vy,ga=30,Wy=19,C_=2*rl+1,wo=15,Qf=16,KtA=7,zy=256,B_=16,E_=17,u_=18,Od=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]),YC=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]),VtA=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),h_=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),WtA=512,Dn=new Array((rl+2)*2);za(Dn);const yI=new Array(ga*2);za(yI);const ol=new Array(WtA);za(ol);const sl=new Array(YtA-OtA+1);za(sl);const jy=new Array(Vy);za(jy);const ZB=new Array(ga);za(ZB);function df(e,A,t,i,n){this.static_tree=e,this.extra_bits=A,this.extra_base=t,this.elems=i,this.max_length=n,this.has_stree=e&&e.length}let f_,Q_,d_;function pf(e,A){this.dyn_tree=e,this.max_code=0,this.stat_desc=A}const p_=e=>e<256?ol[e]:ol[256+(e>>>7)],al=(e,A)=>{e.pending_buf[e.pending++]=A&255,e.pending_buf[e.pending++]=A>>>8&255},Vt=(e,A,t)=>{e.bi_valid>Qf-t?(e.bi_buf|=A<>Qf-e.bi_valid,e.bi_valid+=t-Qf):(e.bi_buf|=A<{Vt(e,t[A*2],t[A*2+1])},y_=(e,A)=>{let t=0;do t|=e&1,e>>>=1,t<<=1;while(--A>0);return t>>>1},ztA=e=>{e.bi_valid===16?(al(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):e.bi_valid>=8&&(e.pending_buf[e.pending++]=e.bi_buf&255,e.bi_buf>>=8,e.bi_valid-=8)},jtA=(e,A)=>{const t=A.dyn_tree,i=A.max_code,n=A.stat_desc.static_tree,r=A.stat_desc.has_stree,o=A.stat_desc.extra_bits,s=A.stat_desc.extra_base,a=A.stat_desc.max_length;let g,I,l,c,C,B,u=0;for(c=0;c<=wo;c++)e.bl_count[c]=0;for(t[e.heap[e.heap_max]*2+1]=0,g=e.heap_max+1;ga&&(c=a,u++),t[I*2+1]=c,!(I>i)&&(e.bl_count[c]++,C=0,I>=s&&(C=o[I-s]),B=t[I*2],e.opt_len+=B*(c+C),r&&(e.static_len+=B*(n[I*2+1]+C)));if(u!==0){do{for(c=a-1;e.bl_count[c]===0;)c--;e.bl_count[c]--,e.bl_count[c+1]+=2,e.bl_count[a]--,u-=2}while(u>0);for(c=a;c!==0;c--)for(I=e.bl_count[c];I!==0;)l=e.heap[--g],!(l>i)&&(t[l*2+1]!==c&&(e.opt_len+=(c-t[l*2+1])*t[l*2],t[l*2+1]=c),I--)}},m_=(e,A,t)=>{const i=new Array(wo+1);let n=0,r,o;for(r=1;r<=wo;r++)i[r]=n=n+t[r-1]<<1;for(o=0;o<=A;o++){let s=e[o*2+1];s!==0&&(e[o*2]=y_(i[s]++,s))}},XtA=()=>{let e,A,t,i,n;const r=new Array(wo+1);for(t=0,i=0;i>=7;i{let A;for(A=0;A{e.bi_valid>8?al(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0},ZtA=(e,A,t,i)=>{v_(e),i&&(al(e,t),al(e,~t)),e.pending_buf.set(e.window.subarray(A,A+t),e.pending),e.pending+=t},i1=(e,A,t,i)=>{const n=A*2,r=t*2;return e[n]{const i=e.heap[t];let n=t<<1;for(;n<=e.heap_len&&(n{let i,n,r=0,o,s;if(e.last_lit!==0)do i=e.pending_buf[e.d_buf+r*2]<<8|e.pending_buf[e.d_buf+r*2+1],n=e.pending_buf[e.l_buf+r],r++,i===0?tn(e,n,A):(o=sl[n],tn(e,o+Wl+1,A),s=Od[o],s!==0&&(n-=jy[o],Vt(e,n,s)),i--,o=p_(i),tn(e,o,t),s=YC[o],s!==0&&(i-=ZB[o],Vt(e,i,s)));while(r{const t=A.dyn_tree,i=A.stat_desc.static_tree,n=A.stat_desc.has_stree,r=A.stat_desc.elems;let o,s,a=-1,g;for(e.heap_len=0,e.heap_max=C_,o=0;o>1;o>=1;o--)yf(e,t,o);g=r;do o=e.heap[1],e.heap[1]=e.heap[e.heap_len--],yf(e,t,1),s=e.heap[1],e.heap[--e.heap_max]=o,e.heap[--e.heap_max]=s,t[g*2]=t[o*2]+t[s*2],e.depth[g]=(e.depth[o]>=e.depth[s]?e.depth[o]:e.depth[s])+1,t[o*2+1]=t[s*2+1]=g,e.heap[1]=g++,yf(e,t,1);while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],jtA(e,A),m_(t,a,e.bl_count)},r1=(e,A,t)=>{let i,n=-1,r,o=A[0*2+1],s=0,a=7,g=4;for(o===0&&(a=138,g=3),A[(t+1)*2+1]=65535,i=0;i<=t;i++)r=o,o=A[(i+1)*2+1],!(++s{let i,n=-1,r,o=A[0*2+1],s=0,a=7,g=4;for(o===0&&(a=138,g=3),i=0;i<=t;i++)if(r=o,o=A[(i+1)*2+1],!(++s{let A;for(r1(e,e.dyn_ltree,e.l_desc.max_code),r1(e,e.dyn_dtree,e.d_desc.max_code),Yd(e,e.bl_desc),A=Wy-1;A>=3&&e.bl_tree[h_[A]*2+1]===0;A--);return e.opt_len+=3*(A+1)+5+5+4,A},AiA=(e,A,t,i)=>{let n;for(Vt(e,A-257,5),Vt(e,t-1,5),Vt(e,i-4,4),n=0;n{let A=4093624447,t;for(t=0;t<=31;t++,A>>>=1)if(A&1&&e.dyn_ltree[t*2]!==0)return e1;if(e.dyn_ltree[9*2]!==0||e.dyn_ltree[10*2]!==0||e.dyn_ltree[13*2]!==0)return t1;for(t=32;t{s1||(XtA(),s1=!0),e.l_desc=new pf(e.dyn_ltree,f_),e.d_desc=new pf(e.dyn_dtree,Q_),e.bl_desc=new pf(e.bl_tree,d_),e.bi_buf=0,e.bi_valid=0,w_(e)},S_=(e,A,t,i)=>{Vt(e,(qtA<<1)+(i?1:0),3),ZtA(e,A,t,!0)},iiA=e=>{Vt(e,c_<<1,3),tn(e,zy,Dn),ztA(e)},niA=(e,A,t,i)=>{let n,r,o=0;e.level>0?(e.strm.data_type===HtA&&(e.strm.data_type=eiA(e)),Yd(e,e.l_desc),Yd(e,e.d_desc),o=$tA(e),n=e.opt_len+3+7>>>3,r=e.static_len+3+7>>>3,r<=n&&(n=r)):n=r=t+5,t+4<=n&&A!==-1?S_(e,A,t,i):e.strategy===PtA||r===n?(Vt(e,(c_<<1)+(i?1:0),3),n1(e,Dn,yI)):(Vt(e,(JtA<<1)+(i?1:0),3),AiA(e,e.l_desc.max_code+1,e.d_desc.max_code+1,o+1),n1(e,e.dyn_ltree,e.dyn_dtree)),w_(e),i&&v_(e)},riA=(e,A,t)=>(e.pending_buf[e.d_buf+e.last_lit*2]=A>>>8&255,e.pending_buf[e.d_buf+e.last_lit*2+1]=A&255,e.pending_buf[e.l_buf+e.last_lit]=t&255,e.last_lit++,A===0?e.dyn_ltree[t*2]++:(e.matches++,A--,e.dyn_ltree[(sl[t]+Wl+1)*2]++,e.dyn_dtree[p_(A)*2]++),e.last_lit===e.lit_bufsize-1);var oiA=tiA,siA=S_,aiA=niA,giA=riA,IiA=iiA,liA={_tr_init:oiA,_tr_stored_block:siA,_tr_flush_block:aiA,_tr_tally:giA,_tr_align:IiA};const ciA=(e,A,t,i)=>{let n=e&65535|0,r=e>>>16&65535|0,o=0;for(;t!==0;){o=t>2e3?2e3:t,t-=o;do n=n+A[i++]|0,r=r+n|0;while(--o);n%=65521,r%=65521}return n|r<<16|0};var gl=ciA;const CiA=()=>{let e,A=[];for(var t=0;t<256;t++){e=t;for(var i=0;i<8;i++)e=e&1?3988292384^e>>>1:e>>>1;A[t]=e}return A},BiA=new Uint32Array(CiA()),EiA=(e,A,t,i)=>{const n=BiA,r=i+t;e^=-1;for(let o=i;o>>8^n[(e^A[o])&255];return e^-1};var st=EiA,Yo={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"},gs={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8};const{_tr_init:uiA,_tr_stored_block:hiA,_tr_flush_block:fiA,_tr_tally:Gr,_tr_align:QiA}=liA,{Z_NO_FLUSH:Is,Z_PARTIAL_FLUSH:diA,Z_FULL_FLUSH:piA,Z_FINISH:_r,Z_BLOCK:a1,Z_OK:nn,Z_STREAM_END:g1,Z_STREAM_ERROR:hi,Z_DATA_ERROR:yiA,Z_BUF_ERROR:mf,Z_DEFAULT_COMPRESSION:miA,Z_FILTERED:wiA,Z_HUFFMAN_ONLY:nC,Z_RLE:viA,Z_FIXED:SiA,Z_DEFAULT_STRATEGY:DiA,Z_UNKNOWN:RiA,Z_DEFLATED:Bu}=gs,xiA=9,FiA=15,NiA=8,LiA=29,biA=256,Kd=biA+1+LiA,GiA=30,_iA=19,MiA=2*Kd+1,kiA=15,ge=3,pr=258,Mi=pr+ge+1,TiA=32,Eu=42,Vd=69,KC=73,VC=91,WC=103,vo=113,Wg=666,et=1,zl=2,Ko=3,ja=4,UiA=3,yr=(e,A)=>(e.msg=Yo[A],A),I1=e=>(e<<1)-(e>4?9:0),Er=e=>{let A=e.length;for(;--A>=0;)e[A]=0};let PiA=(e,A,t)=>(A<{const A=e.state;let t=A.pending;t>e.avail_out&&(t=e.avail_out),t!==0&&(e.output.set(A.pending_buf.subarray(A.pending_out,A.pending_out+t),e.next_out),e.next_out+=t,A.pending_out+=t,e.total_out+=t,e.avail_out-=t,A.pending-=t,A.pending===0&&(A.pending_out=0))},dt=(e,A)=>{fiA(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,A),e.block_start=e.strstart,cr(e.strm)},Ce=(e,A)=>{e.pending_buf[e.pending++]=A},Lg=(e,A)=>{e.pending_buf[e.pending++]=A>>>8&255,e.pending_buf[e.pending++]=A&255},HiA=(e,A,t,i)=>{let n=e.avail_in;return n>i&&(n=i),n===0?0:(e.avail_in-=n,A.set(e.input.subarray(e.next_in,e.next_in+n),t),e.state.wrap===1?e.adler=gl(e.adler,A,n,t):e.state.wrap===2&&(e.adler=st(e.adler,A,n,t)),e.next_in+=n,e.total_in+=n,n)},D_=(e,A)=>{let t=e.max_chain_length,i=e.strstart,n,r,o=e.prev_length,s=e.nice_match;const a=e.strstart>e.w_size-Mi?e.strstart-(e.w_size-Mi):0,g=e.window,I=e.w_mask,l=e.prev,c=e.strstart+pr;let C=g[i+o-1],B=g[i+o];e.prev_length>=e.good_match&&(t>>=2),s>e.lookahead&&(s=e.lookahead);do if(n=A,!(g[n+o]!==B||g[n+o-1]!==C||g[n]!==g[i]||g[++n]!==g[i+1])){i+=2,n++;do;while(g[++i]===g[++n]&&g[++i]===g[++n]&&g[++i]===g[++n]&&g[++i]===g[++n]&&g[++i]===g[++n]&&g[++i]===g[++n]&&g[++i]===g[++n]&&g[++i]===g[++n]&&io){if(e.match_start=A,o=r,r>=s)break;C=g[i+o-1],B=g[i+o]}}while((A=l[A&I])>a&&--t!==0);return o<=e.lookahead?o:e.lookahead},Vo=e=>{const A=e.w_size;let t,i,n,r,o;do{if(r=e.window_size-e.lookahead-e.strstart,e.strstart>=A+(A-Mi)){e.window.set(e.window.subarray(A,A+A),0),e.match_start-=A,e.strstart-=A,e.block_start-=A,i=e.hash_size,t=i;do n=e.head[--t],e.head[t]=n>=A?n-A:0;while(--i);i=A,t=i;do n=e.prev[--t],e.prev[t]=n>=A?n-A:0;while(--i);r+=A}if(e.strm.avail_in===0)break;if(i=HiA(e.strm,e.window,e.strstart+e.lookahead,r),e.lookahead+=i,e.lookahead+e.insert>=ge)for(o=e.strstart-e.insert,e.ins_h=e.window[o],e.ins_h=Mr(e,e.ins_h,e.window[o+1]);e.insert&&(e.ins_h=Mr(e,e.ins_h,e.window[o+ge-1]),e.prev[o&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=o,o++,e.insert--,!(e.lookahead+e.insert{let t=65535;for(t>e.pending_buf_size-5&&(t=e.pending_buf_size-5);;){if(e.lookahead<=1){if(Vo(e),e.lookahead===0&&A===Is)return et;if(e.lookahead===0)break}e.strstart+=e.lookahead,e.lookahead=0;const i=e.block_start+t;if((e.strstart===0||e.strstart>=i)&&(e.lookahead=e.strstart-i,e.strstart=i,dt(e,!1),e.strm.avail_out===0)||e.strstart-e.block_start>=e.w_size-Mi&&(dt(e,!1),e.strm.avail_out===0))return et}return e.insert=0,A===_r?(dt(e,!0),e.strm.avail_out===0?Ko:ja):(e.strstart>e.block_start&&(dt(e,!1),e.strm.avail_out===0),et)},wf=(e,A)=>{let t,i;for(;;){if(e.lookahead=ge&&(e.ins_h=Mr(e,e.ins_h,e.window[e.strstart+ge-1]),t=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),t!==0&&e.strstart-t<=e.w_size-Mi&&(e.match_length=D_(e,t)),e.match_length>=ge)if(i=Gr(e,e.strstart-e.match_start,e.match_length-ge),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=ge){e.match_length--;do e.strstart++,e.ins_h=Mr(e,e.ins_h,e.window[e.strstart+ge-1]),t=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart;while(--e.match_length!==0);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=Mr(e,e.ins_h,e.window[e.strstart+1]);else i=Gr(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(i&&(dt(e,!1),e.strm.avail_out===0))return et}return e.insert=e.strstart{let t,i,n;for(;;){if(e.lookahead=ge&&(e.ins_h=Mr(e,e.ins_h,e.window[e.strstart+ge-1]),t=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=ge-1,t!==0&&e.prev_length4096)&&(e.match_length=ge-1)),e.prev_length>=ge&&e.match_length<=e.prev_length){n=e.strstart+e.lookahead-ge,i=Gr(e,e.strstart-1-e.prev_match,e.prev_length-ge),e.lookahead-=e.prev_length-1,e.prev_length-=2;do++e.strstart<=n&&(e.ins_h=Mr(e,e.ins_h,e.window[e.strstart+ge-1]),t=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart);while(--e.prev_length!==0);if(e.match_available=0,e.match_length=ge-1,e.strstart++,i&&(dt(e,!1),e.strm.avail_out===0))return et}else if(e.match_available){if(i=Gr(e,0,e.window[e.strstart-1]),i&&dt(e,!1),e.strstart++,e.lookahead--,e.strm.avail_out===0)return et}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(i=Gr(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart{let t,i,n,r;const o=e.window;for(;;){if(e.lookahead<=pr){if(Vo(e),e.lookahead<=pr&&A===Is)return et;if(e.lookahead===0)break}if(e.match_length=0,e.lookahead>=ge&&e.strstart>0&&(n=e.strstart-1,i=o[n],i===o[++n]&&i===o[++n]&&i===o[++n])){r=e.strstart+pr;do;while(i===o[++n]&&i===o[++n]&&i===o[++n]&&i===o[++n]&&i===o[++n]&&i===o[++n]&&i===o[++n]&&i===o[++n]&&ne.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=ge?(t=Gr(e,1,e.match_length-ge),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(t=Gr(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),t&&(dt(e,!1),e.strm.avail_out===0))return et}return e.insert=0,A===_r?(dt(e,!0),e.strm.avail_out===0?Ko:ja):e.last_lit&&(dt(e,!1),e.strm.avail_out===0)?et:zl},OiA=(e,A)=>{let t;for(;;){if(e.lookahead===0&&(Vo(e),e.lookahead===0)){if(A===Is)return et;break}if(e.match_length=0,t=Gr(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,t&&(dt(e,!1),e.strm.avail_out===0))return et}return e.insert=0,A===_r?(dt(e,!0),e.strm.avail_out===0?Ko:ja):e.last_lit&&(dt(e,!1),e.strm.avail_out===0)?et:zl};function ji(e,A,t,i,n){this.good_length=e,this.max_lazy=A,this.nice_length=t,this.max_chain=i,this.func=n}const zg=[new ji(0,0,0,0,qiA),new ji(4,4,8,4,wf),new ji(4,5,16,8,wf),new ji(4,6,32,32,wf),new ji(4,4,16,16,ws),new ji(8,16,32,32,ws),new ji(8,16,128,128,ws),new ji(8,32,128,256,ws),new ji(32,128,258,1024,ws),new ji(32,258,258,4096,ws)],YiA=e=>{e.window_size=2*e.w_size,Er(e.head),e.max_lazy_match=zg[e.level].max_lazy,e.good_match=zg[e.level].good_length,e.nice_match=zg[e.level].nice_length,e.max_chain_length=zg[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=ge-1,e.match_available=0,e.ins_h=0};function KiA(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=Bu,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(MiA*2),this.dyn_dtree=new Uint16Array((2*GiA+1)*2),this.bl_tree=new Uint16Array((2*_iA+1)*2),Er(this.dyn_ltree),Er(this.dyn_dtree),Er(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(kiA+1),this.heap=new Uint16Array(2*Kd+1),Er(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(2*Kd+1),Er(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}const R_=e=>{if(!e||!e.state)return yr(e,hi);e.total_in=e.total_out=0,e.data_type=RiA;const A=e.state;return A.pending=0,A.pending_out=0,A.wrap<0&&(A.wrap=-A.wrap),A.status=A.wrap?Eu:vo,e.adler=A.wrap===2?0:1,A.last_flush=Is,uiA(A),nn},x_=e=>{const A=R_(e);return A===nn&&YiA(e.state),A},ViA=(e,A)=>!e||!e.state||e.state.wrap!==2?hi:(e.state.gzhead=A,nn),F_=(e,A,t,i,n,r)=>{if(!e)return hi;let o=1;if(A===miA&&(A=6),i<0?(o=0,i=-i):i>15&&(o=2,i-=16),n<1||n>xiA||t!==Bu||i<8||i>15||A<0||A>9||r<0||r>SiA)return yr(e,hi);i===8&&(i=9);const s=new KiA;return e.state=s,s.strm=e,s.wrap=o,s.gzhead=null,s.w_bits=i,s.w_size=1<F_(e,A,Bu,FiA,NiA,DiA),ziA=(e,A)=>{let t,i;if(!e||!e.state||A>a1||A<0)return e?yr(e,hi):hi;const n=e.state;if(!e.output||!e.input&&e.avail_in!==0||n.status===Wg&&A!==_r)return yr(e,e.avail_out===0?mf:hi);n.strm=e;const r=n.last_flush;if(n.last_flush=A,n.status===Eu)if(n.wrap===2)e.adler=0,Ce(n,31),Ce(n,139),Ce(n,8),n.gzhead?(Ce(n,(n.gzhead.text?1:0)+(n.gzhead.hcrc?2:0)+(n.gzhead.extra?4:0)+(n.gzhead.name?8:0)+(n.gzhead.comment?16:0)),Ce(n,n.gzhead.time&255),Ce(n,n.gzhead.time>>8&255),Ce(n,n.gzhead.time>>16&255),Ce(n,n.gzhead.time>>24&255),Ce(n,n.level===9?2:n.strategy>=nC||n.level<2?4:0),Ce(n,n.gzhead.os&255),n.gzhead.extra&&n.gzhead.extra.length&&(Ce(n,n.gzhead.extra.length&255),Ce(n,n.gzhead.extra.length>>8&255)),n.gzhead.hcrc&&(e.adler=st(e.adler,n.pending_buf,n.pending,0)),n.gzindex=0,n.status=Vd):(Ce(n,0),Ce(n,0),Ce(n,0),Ce(n,0),Ce(n,0),Ce(n,n.level===9?2:n.strategy>=nC||n.level<2?4:0),Ce(n,UiA),n.status=vo);else{let o=Bu+(n.w_bits-8<<4)<<8,s=-1;n.strategy>=nC||n.level<2?s=0:n.level<6?s=1:n.level===6?s=2:s=3,o|=s<<6,n.strstart!==0&&(o|=TiA),o+=31-o%31,n.status=vo,Lg(n,o),n.strstart!==0&&(Lg(n,e.adler>>>16),Lg(n,e.adler&65535)),e.adler=1}if(n.status===Vd)if(n.gzhead.extra){for(t=n.pending;n.gzindex<(n.gzhead.extra.length&65535)&&!(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>t&&(e.adler=st(e.adler,n.pending_buf,n.pending-t,t)),cr(e),t=n.pending,n.pending===n.pending_buf_size));)Ce(n,n.gzhead.extra[n.gzindex]&255),n.gzindex++;n.gzhead.hcrc&&n.pending>t&&(e.adler=st(e.adler,n.pending_buf,n.pending-t,t)),n.gzindex===n.gzhead.extra.length&&(n.gzindex=0,n.status=KC)}else n.status=KC;if(n.status===KC)if(n.gzhead.name){t=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>t&&(e.adler=st(e.adler,n.pending_buf,n.pending-t,t)),cr(e),t=n.pending,n.pending===n.pending_buf_size)){i=1;break}n.gzindext&&(e.adler=st(e.adler,n.pending_buf,n.pending-t,t)),i===0&&(n.gzindex=0,n.status=VC)}else n.status=VC;if(n.status===VC)if(n.gzhead.comment){t=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>t&&(e.adler=st(e.adler,n.pending_buf,n.pending-t,t)),cr(e),t=n.pending,n.pending===n.pending_buf_size)){i=1;break}n.gzindext&&(e.adler=st(e.adler,n.pending_buf,n.pending-t,t)),i===0&&(n.status=WC)}else n.status=WC;if(n.status===WC&&(n.gzhead.hcrc?(n.pending+2>n.pending_buf_size&&cr(e),n.pending+2<=n.pending_buf_size&&(Ce(n,e.adler&255),Ce(n,e.adler>>8&255),e.adler=0,n.status=vo)):n.status=vo),n.pending!==0){if(cr(e),e.avail_out===0)return n.last_flush=-1,nn}else if(e.avail_in===0&&I1(A)<=I1(r)&&A!==_r)return yr(e,mf);if(n.status===Wg&&e.avail_in!==0)return yr(e,mf);if(e.avail_in!==0||n.lookahead!==0||A!==Is&&n.status!==Wg){let o=n.strategy===nC?OiA(n,A):n.strategy===viA?JiA(n,A):zg[n.level].func(n,A);if((o===Ko||o===ja)&&(n.status=Wg),o===et||o===Ko)return e.avail_out===0&&(n.last_flush=-1),nn;if(o===zl&&(A===diA?QiA(n):A!==a1&&(hiA(n,0,0,!1),A===piA&&(Er(n.head),n.lookahead===0&&(n.strstart=0,n.block_start=0,n.insert=0))),cr(e),e.avail_out===0))return n.last_flush=-1,nn}return A!==_r?nn:n.wrap<=0?g1:(n.wrap===2?(Ce(n,e.adler&255),Ce(n,e.adler>>8&255),Ce(n,e.adler>>16&255),Ce(n,e.adler>>24&255),Ce(n,e.total_in&255),Ce(n,e.total_in>>8&255),Ce(n,e.total_in>>16&255),Ce(n,e.total_in>>24&255)):(Lg(n,e.adler>>>16),Lg(n,e.adler&65535)),cr(e),n.wrap>0&&(n.wrap=-n.wrap),n.pending!==0?nn:g1)},jiA=e=>{if(!e||!e.state)return hi;const A=e.state.status;return A!==Eu&&A!==Vd&&A!==KC&&A!==VC&&A!==WC&&A!==vo&&A!==Wg?yr(e,hi):(e.state=null,A===vo?yr(e,yiA):nn)},XiA=(e,A)=>{let t=A.length;if(!e||!e.state)return hi;const i=e.state,n=i.wrap;if(n===2||n===1&&i.status!==Eu||i.lookahead)return hi;if(n===1&&(e.adler=gl(e.adler,A,t,0)),i.wrap=0,t>=i.w_size){n===0&&(Er(i.head),i.strstart=0,i.block_start=0,i.insert=0);let a=new Uint8Array(i.w_size);a.set(A.subarray(t-i.w_size,t),0),A=a,t=i.w_size}const r=e.avail_in,o=e.next_in,s=e.input;for(e.avail_in=t,e.next_in=0,e.input=A,Vo(i);i.lookahead>=ge;){let a=i.strstart,g=i.lookahead-(ge-1);do i.ins_h=Mr(i,i.ins_h,i.window[a+ge-1]),i.prev[a&i.w_mask]=i.head[i.ins_h],i.head[i.ins_h]=a,a++;while(--g);i.strstart=a,i.lookahead=ge-1,Vo(i)}return i.strstart+=i.lookahead,i.block_start=i.strstart,i.insert=i.lookahead,i.lookahead=0,i.match_length=i.prev_length=ge-1,i.match_available=0,e.next_in=o,e.input=s,e.avail_in=r,i.wrap=n,nn};var ZiA=WiA,$iA=F_,AnA=x_,enA=R_,tnA=ViA,inA=ziA,nnA=jiA,rnA=XiA,onA="pako deflate (from Nodeca project)",mI={deflateInit:ZiA,deflateInit2:$iA,deflateReset:AnA,deflateResetKeep:enA,deflateSetHeader:tnA,deflate:inA,deflateEnd:nnA,deflateSetDictionary:rnA,deflateInfo:onA};const snA=(e,A)=>Object.prototype.hasOwnProperty.call(e,A);var anA=function(e){const A=Array.prototype.slice.call(arguments,1);for(;A.length;){const t=A.shift();if(!!t){if(typeof t!="object")throw new TypeError(t+"must be non-object");for(const i in t)snA(t,i)&&(e[i]=t[i])}}return e},gnA=e=>{let A=0;for(let i=0,n=e.length;i=252?6:e>=248?5:e>=240?4:e>=224?3:e>=192?2:1;Il[254]=Il[254]=1;var InA=e=>{let A,t,i,n,r,o=e.length,s=0;for(n=0;n>>6,A[r++]=128|t&63):t<65536?(A[r++]=224|t>>>12,A[r++]=128|t>>>6&63,A[r++]=128|t&63):(A[r++]=240|t>>>18,A[r++]=128|t>>>12&63,A[r++]=128|t>>>6&63,A[r++]=128|t&63);return A};const lnA=(e,A)=>{if(A<65534&&e.subarray&&N_)return String.fromCharCode.apply(null,e.length===A?e:e.subarray(0,A));let t="";for(let i=0;i{let t,i;const n=A||e.length,r=new Array(n*2);for(i=0,t=0;t4){r[i++]=65533,t+=s-1;continue}for(o&=s===2?31:s===3?15:7;s>1&&t1){r[i++]=65533;continue}o<65536?r[i++]=o:(o-=65536,r[i++]=55296|o>>10&1023,r[i++]=56320|o&1023)}return lnA(r,i)},CnA=(e,A)=>{A=A||e.length,A>e.length&&(A=e.length);let t=A-1;for(;t>=0&&(e[t]&192)===128;)t--;return t<0||t===0?A:t+Il[e[t]]>A?t:A},ll={string2buf:InA,buf2string:cnA,utf8border:CnA};function BnA(){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}var L_=BnA;const b_=Object.prototype.toString,{Z_NO_FLUSH:EnA,Z_SYNC_FLUSH:unA,Z_FULL_FLUSH:hnA,Z_FINISH:fnA,Z_OK:$B,Z_STREAM_END:QnA,Z_DEFAULT_COMPRESSION:dnA,Z_DEFAULT_STRATEGY:pnA,Z_DEFLATED:ynA}=gs;function jl(e){this.options=uu.assign({level:dnA,method:ynA,chunkSize:16384,windowBits:15,memLevel:8,strategy:pnA},e||{});let A=this.options;A.raw&&A.windowBits>0?A.windowBits=-A.windowBits:A.gzip&&A.windowBits>0&&A.windowBits<16&&(A.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new L_,this.strm.avail_out=0;let t=mI.deflateInit2(this.strm,A.level,A.method,A.windowBits,A.memLevel,A.strategy);if(t!==$B)throw new Error(Yo[t]);if(A.header&&mI.deflateSetHeader(this.strm,A.header),A.dictionary){let i;if(typeof A.dictionary=="string"?i=ll.string2buf(A.dictionary):b_.call(A.dictionary)==="[object ArrayBuffer]"?i=new Uint8Array(A.dictionary):i=A.dictionary,t=mI.deflateSetDictionary(this.strm,i),t!==$B)throw new Error(Yo[t]);this._dict_set=!0}}jl.prototype.push=function(e,A){const t=this.strm,i=this.options.chunkSize;let n,r;if(this.ended)return!1;for(A===~~A?r=A:r=A===!0?fnA:EnA,typeof e=="string"?t.input=ll.string2buf(e):b_.call(e)==="[object ArrayBuffer]"?t.input=new Uint8Array(e):t.input=e,t.next_in=0,t.avail_in=t.input.length;;){if(t.avail_out===0&&(t.output=new Uint8Array(i),t.next_out=0,t.avail_out=i),(r===unA||r===hnA)&&t.avail_out<=6){this.onData(t.output.subarray(0,t.next_out)),t.avail_out=0;continue}if(n=mI.deflate(t,r),n===QnA)return t.next_out>0&&this.onData(t.output.subarray(0,t.next_out)),n=mI.deflateEnd(this.strm),this.onEnd(n),this.ended=!0,n===$B;if(t.avail_out===0){this.onData(t.output);continue}if(r>0&&t.next_out>0){this.onData(t.output.subarray(0,t.next_out)),t.avail_out=0;continue}if(t.avail_in===0)break}return!0};jl.prototype.onData=function(e){this.chunks.push(e)};jl.prototype.onEnd=function(e){e===$B&&(this.result=uu.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function Xy(e,A){const t=new jl(A);if(t.push(e,!0),t.err)throw t.msg||Yo[t.err];return t.result}function mnA(e,A){return A=A||{},A.raw=!0,Xy(e,A)}function wnA(e,A){return A=A||{},A.gzip=!0,Xy(e,A)}var vnA=jl,SnA=Xy,DnA=mnA,RnA=wnA,xnA=gs,FnA={Deflate:vnA,deflate:SnA,deflateRaw:DnA,gzip:RnA,constants:xnA};const rC=30,NnA=12;var LnA=function(A,t){let i,n,r,o,s,a,g,I,l,c,C,B,u,E,h,f,Q,d,w,m,v,x,D,F;const N=A.state;i=A.next_in,D=A.input,n=i+(A.avail_in-5),r=A.next_out,F=A.output,o=r-(t-A.avail_out),s=r+(A.avail_out-257),a=N.dmax,g=N.wsize,I=N.whave,l=N.wnext,c=N.window,C=N.hold,B=N.bits,u=N.lencode,E=N.distcode,h=(1<>>24,C>>>=d,B-=d,d=Q>>>16&255,d===0)F[r++]=Q&65535;else if(d&16){w=Q&65535,d&=15,d&&(B>>=d,B-=d),B<15&&(C+=D[i++]<>>24,C>>>=d,B-=d,d=Q>>>16&255,d&16){if(m=Q&65535,d&=15,Ba){A.msg="invalid distance too far back",N.mode=rC;break A}if(C>>>=d,B-=d,d=r-o,m>d){if(d=m-d,d>I&&N.sane){A.msg="invalid distance too far back",N.mode=rC;break A}if(v=0,x=c,l===0){if(v+=g-d,d2;)F[r++]=x[v++],F[r++]=x[v++],F[r++]=x[v++],w-=3;w&&(F[r++]=x[v++],w>1&&(F[r++]=x[v++]))}else{v=r-m;do F[r++]=F[v++],F[r++]=F[v++],F[r++]=F[v++],w-=3;while(w>2);w&&(F[r++]=F[v++],w>1&&(F[r++]=F[v++]))}}else if((d&64)===0){Q=E[(Q&65535)+(C&(1<>3,i-=w,B-=w<<3,C&=(1<{const a=s.bits;let g=0,I=0,l=0,c=0,C=0,B=0,u=0,E=0,h=0,f=0,Q,d,w,m,v,x=null,D=0,F;const N=new Uint16Array(vs+1),M=new Uint16Array(vs+1);let U=null,P=0,W,J,Z;for(g=0;g<=vs;g++)N[g]=0;for(I=0;I=1&&N[c]===0;c--);if(C>c&&(C=c),c===0)return n[r++]=1<<24|64<<16|0,n[r++]=1<<24|64<<16|0,s.bits=1,0;for(l=1;l0&&(e===C1||c!==1))return-1;for(M[1]=0,g=1;gl1||e===B1&&h>c1)return 1;for(;;){W=g-u,o[I]F?(J=U[P+o[I]],Z=x[D+o[I]]):(J=32+64,Z=0),Q=1<>u)+d]=W<<24|J<<16|Z|0;while(d!==0);for(Q=1<>=1;if(Q!==0?(f&=Q-1,f+=Q):f=0,I++,--N[g]===0){if(g===c)break;g=A[t+o[I]]}if(g>C&&(f&m)!==w){for(u===0&&(u=C),v+=l,B=g-u,E=1<l1||e===B1&&h>c1)return 1;w=f&m,n[w]=C<<24|B<<16|v-r|0}}return f!==0&&(n[v+f]=g-u<<24|64<<16|0),s.bits=C,0};var wI=knA;const TnA=0,G_=1,__=2,{Z_FINISH:E1,Z_BLOCK:UnA,Z_TREES:oC,Z_OK:Wo,Z_STREAM_END:PnA,Z_NEED_DICT:HnA,Z_STREAM_ERROR:pi,Z_DATA_ERROR:M_,Z_MEM_ERROR:k_,Z_BUF_ERROR:qnA,Z_DEFLATED:u1}=gs,T_=1,h1=2,f1=3,Q1=4,d1=5,p1=6,y1=7,m1=8,w1=9,v1=10,AE=11,wn=12,Sf=13,S1=14,Df=15,D1=16,R1=17,x1=18,F1=19,sC=20,aC=21,N1=22,L1=23,b1=24,G1=25,_1=26,Rf=27,M1=28,k1=29,He=30,U_=31,JnA=32,OnA=852,YnA=592,KnA=15,VnA=KnA,T1=e=>(e>>>24&255)+(e>>>8&65280)+((e&65280)<<8)+((e&255)<<24);function WnA(){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}const P_=e=>{if(!e||!e.state)return pi;const A=e.state;return e.total_in=e.total_out=A.total=0,e.msg="",A.wrap&&(e.adler=A.wrap&1),A.mode=T_,A.last=0,A.havedict=0,A.dmax=32768,A.head=null,A.hold=0,A.bits=0,A.lencode=A.lendyn=new Int32Array(OnA),A.distcode=A.distdyn=new Int32Array(YnA),A.sane=1,A.back=-1,Wo},H_=e=>{if(!e||!e.state)return pi;const A=e.state;return A.wsize=0,A.whave=0,A.wnext=0,P_(e)},q_=(e,A)=>{let t;if(!e||!e.state)return pi;const i=e.state;return A<0?(t=0,A=-A):(t=(A>>4)+1,A<48&&(A&=15)),A&&(A<8||A>15)?pi:(i.window!==null&&i.wbits!==A&&(i.window=null),i.wrap=t,i.wbits=A,H_(e))},J_=(e,A)=>{if(!e)return pi;const t=new WnA;e.state=t,t.window=null;const i=q_(e,A);return i!==Wo&&(e.state=null),i},znA=e=>J_(e,VnA);let U1=!0,xf,Ff;const jnA=e=>{if(U1){xf=new Int32Array(512),Ff=new Int32Array(32);let A=0;for(;A<144;)e.lens[A++]=8;for(;A<256;)e.lens[A++]=9;for(;A<280;)e.lens[A++]=7;for(;A<288;)e.lens[A++]=8;for(wI(G_,e.lens,0,288,xf,0,e.work,{bits:9}),A=0;A<32;)e.lens[A++]=5;wI(__,e.lens,0,32,Ff,0,e.work,{bits:5}),U1=!1}e.lencode=xf,e.lenbits=9,e.distcode=Ff,e.distbits=5},O_=(e,A,t,i)=>{let n;const r=e.state;return r.window===null&&(r.wsize=1<=r.wsize?(r.window.set(A.subarray(t-r.wsize,t),0),r.wnext=0,r.whave=r.wsize):(n=r.wsize-r.wnext,n>i&&(n=i),r.window.set(A.subarray(t-i,t-i+n),r.wnext),i-=n,i?(r.window.set(A.subarray(t-i,t),0),r.wnext=i,r.whave=r.wsize):(r.wnext+=n,r.wnext===r.wsize&&(r.wnext=0),r.whave{let t,i,n,r,o,s,a,g,I,l,c,C,B,u,E=0,h,f,Q,d,w,m,v,x;const D=new Uint8Array(4);let F,N;const M=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(!e||!e.state||!e.output||!e.input&&e.avail_in!==0)return pi;t=e.state,t.mode===wn&&(t.mode=Sf),o=e.next_out,n=e.output,a=e.avail_out,r=e.next_in,i=e.input,s=e.avail_in,g=t.hold,I=t.bits,l=s,c=a,x=Wo;A:for(;;)switch(t.mode){case T_:if(t.wrap===0){t.mode=Sf;break}for(;I<16;){if(s===0)break A;s--,g+=i[r++]<>>8&255,t.check=st(t.check,D,2,0),g=0,I=0,t.mode=h1;break}if(t.flags=0,t.head&&(t.head.done=!1),!(t.wrap&1)||(((g&255)<<8)+(g>>8))%31){e.msg="incorrect header check",t.mode=He;break}if((g&15)!==u1){e.msg="unknown compression method",t.mode=He;break}if(g>>>=4,I-=4,v=(g&15)+8,t.wbits===0)t.wbits=v;else if(v>t.wbits){e.msg="invalid window size",t.mode=He;break}t.dmax=1<>8&1),t.flags&512&&(D[0]=g&255,D[1]=g>>>8&255,t.check=st(t.check,D,2,0)),g=0,I=0,t.mode=f1;case f1:for(;I<32;){if(s===0)break A;s--,g+=i[r++]<>>8&255,D[2]=g>>>16&255,D[3]=g>>>24&255,t.check=st(t.check,D,4,0)),g=0,I=0,t.mode=Q1;case Q1:for(;I<16;){if(s===0)break A;s--,g+=i[r++]<>8),t.flags&512&&(D[0]=g&255,D[1]=g>>>8&255,t.check=st(t.check,D,2,0)),g=0,I=0,t.mode=d1;case d1:if(t.flags&1024){for(;I<16;){if(s===0)break A;s--,g+=i[r++]<>>8&255,t.check=st(t.check,D,2,0)),g=0,I=0}else t.head&&(t.head.extra=null);t.mode=p1;case p1:if(t.flags&1024&&(C=t.length,C>s&&(C=s),C&&(t.head&&(v=t.head.extra_len-t.length,t.head.extra||(t.head.extra=new Uint8Array(t.head.extra_len)),t.head.extra.set(i.subarray(r,r+C),v)),t.flags&512&&(t.check=st(t.check,i,C,r)),s-=C,r+=C,t.length-=C),t.length))break A;t.length=0,t.mode=y1;case y1:if(t.flags&2048){if(s===0)break A;C=0;do v=i[r+C++],t.head&&v&&t.length<65536&&(t.head.name+=String.fromCharCode(v));while(v&&C>9&1,t.head.done=!0),e.adler=t.check=0,t.mode=wn;break;case v1:for(;I<32;){if(s===0)break A;s--,g+=i[r++]<>>=I&7,I-=I&7,t.mode=Rf;break}for(;I<3;){if(s===0)break A;s--,g+=i[r++]<>>=1,I-=1,g&3){case 0:t.mode=S1;break;case 1:if(jnA(t),t.mode=sC,A===oC){g>>>=2,I-=2;break A}break;case 2:t.mode=R1;break;case 3:e.msg="invalid block type",t.mode=He}g>>>=2,I-=2;break;case S1:for(g>>>=I&7,I-=I&7;I<32;){if(s===0)break A;s--,g+=i[r++]<>>16^65535)){e.msg="invalid stored block lengths",t.mode=He;break}if(t.length=g&65535,g=0,I=0,t.mode=Df,A===oC)break A;case Df:t.mode=D1;case D1:if(C=t.length,C){if(C>s&&(C=s),C>a&&(C=a),C===0)break A;n.set(i.subarray(r,r+C),o),s-=C,r+=C,a-=C,o+=C,t.length-=C;break}t.mode=wn;break;case R1:for(;I<14;){if(s===0)break A;s--,g+=i[r++]<>>=5,I-=5,t.ndist=(g&31)+1,g>>>=5,I-=5,t.ncode=(g&15)+4,g>>>=4,I-=4,t.nlen>286||t.ndist>30){e.msg="too many length or distance symbols",t.mode=He;break}t.have=0,t.mode=x1;case x1:for(;t.have>>=3,I-=3}for(;t.have<19;)t.lens[M[t.have++]]=0;if(t.lencode=t.lendyn,t.lenbits=7,F={bits:t.lenbits},x=wI(TnA,t.lens,0,19,t.lencode,0,t.work,F),t.lenbits=F.bits,x){e.msg="invalid code lengths set",t.mode=He;break}t.have=0,t.mode=F1;case F1:for(;t.have>>24,f=E>>>16&255,Q=E&65535,!(h<=I);){if(s===0)break A;s--,g+=i[r++]<>>=h,I-=h,t.lens[t.have++]=Q;else{if(Q===16){for(N=h+2;I>>=h,I-=h,t.have===0){e.msg="invalid bit length repeat",t.mode=He;break}v=t.lens[t.have-1],C=3+(g&3),g>>>=2,I-=2}else if(Q===17){for(N=h+3;I>>=h,I-=h,v=0,C=3+(g&7),g>>>=3,I-=3}else{for(N=h+7;I>>=h,I-=h,v=0,C=11+(g&127),g>>>=7,I-=7}if(t.have+C>t.nlen+t.ndist){e.msg="invalid bit length repeat",t.mode=He;break}for(;C--;)t.lens[t.have++]=v}}if(t.mode===He)break;if(t.lens[256]===0){e.msg="invalid code -- missing end-of-block",t.mode=He;break}if(t.lenbits=9,F={bits:t.lenbits},x=wI(G_,t.lens,0,t.nlen,t.lencode,0,t.work,F),t.lenbits=F.bits,x){e.msg="invalid literal/lengths set",t.mode=He;break}if(t.distbits=6,t.distcode=t.distdyn,F={bits:t.distbits},x=wI(__,t.lens,t.nlen,t.ndist,t.distcode,0,t.work,F),t.distbits=F.bits,x){e.msg="invalid distances set",t.mode=He;break}if(t.mode=sC,A===oC)break A;case sC:t.mode=aC;case aC:if(s>=6&&a>=258){e.next_out=o,e.avail_out=a,e.next_in=r,e.avail_in=s,t.hold=g,t.bits=I,LnA(e,c),o=e.next_out,n=e.output,a=e.avail_out,r=e.next_in,i=e.input,s=e.avail_in,g=t.hold,I=t.bits,t.mode===wn&&(t.back=-1);break}for(t.back=0;E=t.lencode[g&(1<>>24,f=E>>>16&255,Q=E&65535,!(h<=I);){if(s===0)break A;s--,g+=i[r++]<>d)],h=E>>>24,f=E>>>16&255,Q=E&65535,!(d+h<=I);){if(s===0)break A;s--,g+=i[r++]<>>=d,I-=d,t.back+=d}if(g>>>=h,I-=h,t.back+=h,t.length=Q,f===0){t.mode=_1;break}if(f&32){t.back=-1,t.mode=wn;break}if(f&64){e.msg="invalid literal/length code",t.mode=He;break}t.extra=f&15,t.mode=N1;case N1:if(t.extra){for(N=t.extra;I>>=t.extra,I-=t.extra,t.back+=t.extra}t.was=t.length,t.mode=L1;case L1:for(;E=t.distcode[g&(1<>>24,f=E>>>16&255,Q=E&65535,!(h<=I);){if(s===0)break A;s--,g+=i[r++]<>d)],h=E>>>24,f=E>>>16&255,Q=E&65535,!(d+h<=I);){if(s===0)break A;s--,g+=i[r++]<>>=d,I-=d,t.back+=d}if(g>>>=h,I-=h,t.back+=h,f&64){e.msg="invalid distance code",t.mode=He;break}t.offset=Q,t.extra=f&15,t.mode=b1;case b1:if(t.extra){for(N=t.extra;I>>=t.extra,I-=t.extra,t.back+=t.extra}if(t.offset>t.dmax){e.msg="invalid distance too far back",t.mode=He;break}t.mode=G1;case G1:if(a===0)break A;if(C=c-a,t.offset>C){if(C=t.offset-C,C>t.whave&&t.sane){e.msg="invalid distance too far back",t.mode=He;break}C>t.wnext?(C-=t.wnext,B=t.wsize-C):B=t.wnext-C,C>t.length&&(C=t.length),u=t.window}else u=n,B=o-t.offset,C=t.length;C>a&&(C=a),a-=C,t.length-=C;do n[o++]=u[B++];while(--C);t.length===0&&(t.mode=aC);break;case _1:if(a===0)break A;n[o++]=t.length,a--,t.mode=aC;break;case Rf:if(t.wrap){for(;I<32;){if(s===0)break A;s--,g|=i[r++]<{if(!e||!e.state)return pi;let A=e.state;return A.window&&(A.window=null),e.state=null,Wo},$nA=(e,A)=>{if(!e||!e.state)return pi;const t=e.state;return(t.wrap&2)===0?pi:(t.head=A,A.done=!1,Wo)},ArA=(e,A)=>{const t=A.length;let i,n,r;return!e||!e.state||(i=e.state,i.wrap!==0&&i.mode!==AE)?pi:i.mode===AE&&(n=1,n=gl(n,A,t,0),n!==i.check)?M_:(r=O_(e,A,t,t),r?(i.mode=U_,k_):(i.havedict=1,Wo))};var erA=H_,trA=q_,irA=P_,nrA=znA,rrA=J_,orA=XnA,srA=ZnA,arA=$nA,grA=ArA,IrA="pako inflate (from Nodeca project)",Rn={inflateReset:erA,inflateReset2:trA,inflateResetKeep:irA,inflateInit:nrA,inflateInit2:rrA,inflate:orA,inflateEnd:srA,inflateGetHeader:arA,inflateSetDictionary:grA,inflateInfo:IrA};function lrA(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}var crA=lrA;const Y_=Object.prototype.toString,{Z_NO_FLUSH:CrA,Z_FINISH:BrA,Z_OK:cl,Z_STREAM_END:Nf,Z_NEED_DICT:Lf,Z_STREAM_ERROR:ErA,Z_DATA_ERROR:P1,Z_MEM_ERROR:urA}=gs;function Xl(e){this.options=uu.assign({chunkSize:1024*64,windowBits:15,to:""},e||{});const 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&&!(e&&e.windowBits)&&(A.windowBits+=32),A.windowBits>15&&A.windowBits<48&&(A.windowBits&15)===0&&(A.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new L_,this.strm.avail_out=0;let t=Rn.inflateInit2(this.strm,A.windowBits);if(t!==cl)throw new Error(Yo[t]);if(this.header=new crA,Rn.inflateGetHeader(this.strm,this.header),A.dictionary&&(typeof A.dictionary=="string"?A.dictionary=ll.string2buf(A.dictionary):Y_.call(A.dictionary)==="[object ArrayBuffer]"&&(A.dictionary=new Uint8Array(A.dictionary)),A.raw&&(t=Rn.inflateSetDictionary(this.strm,A.dictionary),t!==cl)))throw new Error(Yo[t])}Xl.prototype.push=function(e,A){const t=this.strm,i=this.options.chunkSize,n=this.options.dictionary;let r,o,s;if(this.ended)return!1;for(A===~~A?o=A:o=A===!0?BrA:CrA,Y_.call(e)==="[object ArrayBuffer]"?t.input=new Uint8Array(e):t.input=e,t.next_in=0,t.avail_in=t.input.length;;){for(t.avail_out===0&&(t.output=new Uint8Array(i),t.next_out=0,t.avail_out=i),r=Rn.inflate(t,o),r===Lf&&n&&(r=Rn.inflateSetDictionary(t,n),r===cl?r=Rn.inflate(t,o):r===P1&&(r=Lf));t.avail_in>0&&r===Nf&&t.state.wrap>0&&e[t.next_in]!==0;)Rn.inflateReset(t),r=Rn.inflate(t,o);switch(r){case ErA:case P1:case Lf:case urA:return this.onEnd(r),this.ended=!0,!1}if(s=t.avail_out,t.next_out&&(t.avail_out===0||r===Nf))if(this.options.to==="string"){let a=ll.utf8border(t.output,t.next_out),g=t.next_out-a,I=ll.buf2string(t.output,a);t.next_out=g,t.avail_out=i-g,g&&t.output.set(t.output.subarray(a,a+g),0),this.onData(I)}else this.onData(t.output.length===t.next_out?t.output:t.output.subarray(0,t.next_out));if(!(r===cl&&s===0)){if(r===Nf)return r=Rn.inflateEnd(this.strm),this.onEnd(r),this.ended=!0,!0;if(t.avail_in===0)break}}return!0};Xl.prototype.onData=function(e){this.chunks.push(e)};Xl.prototype.onEnd=function(e){e===cl&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=uu.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function Zy(e,A){const t=new Xl(A);if(t.push(e),t.err)throw t.msg||Yo[t.err];return t.result}function hrA(e,A){return A=A||{},A.raw=!0,Zy(e,A)}var frA=Xl,QrA=Zy,drA=hrA,prA=Zy,yrA=gs,mrA={Inflate:frA,inflate:QrA,inflateRaw:drA,ungzip:prA,constants:yrA};const{Deflate:wrA,deflate:vrA,deflateRaw:SrA,gzip:DrA}=FnA,{Inflate:RrA,inflate:xrA,inflateRaw:FrA,ungzip:NrA}=mrA;var LrA=wrA,brA=vrA,GrA=SrA,_rA=DrA,MrA=RrA,krA=xrA,TrA=FrA,UrA=NrA,PrA=gs,eE={Deflate:LrA,deflate:brA,deflateRaw:GrA,gzip:_rA,Inflate:MrA,inflate:krA,inflateRaw:TrA,ungzip:UrA,constants:PrA},gC;const HrA=(gC=class{constructor(e=1){if(e<0||e>9)throw new Error("Invalid gzip compression level, it should be between 0 and 9");this.level=e}static fromConfig({level:e}){return new gC(e)}encode(e){return eE.gzip(e,{level:this.level})}decode(e,A){const t=eE.ungzip(e);return A!==void 0?(A.set(t),A):t}},gC.codecId="gzip",gC);var H1=HrA,IC;const qrA=(IC=class{constructor(e=1){if(e<-1||e>9)throw new Error("Invalid zlib compression level, it should be between -1 and 9");this.level=e}static fromConfig({level:e}){return new IC(e)}encode(e){return eE.deflate(e,{level:this.level})}decode(e,A){const t=eE.inflate(e);return A!==void 0?(A.set(t),A):t}},IC.codecId="zlib",IC);var q1=qrA,JrA=function(){return typeof document!="undefined"&&document.currentScript&&document.currentScript.src,function(e){e=e||{};var A;A||(A=typeof e!="undefined"?e:{});var t,i;A.ready=new Promise(function(L,G){t=L,i=G});var n={},r;for(r in A)A.hasOwnProperty(r)&&(n[r]=A[r]);var o="./this.program",s=A.print||console.log.bind(console),a=A.printErr||console.warn.bind(console);for(r in n)n.hasOwnProperty(r)&&(A[r]=n[r]);n=null,A.thisProgram&&(o=A.thisProgram);var g;A.wasmBinary&&(g=A.wasmBinary),A.noExitRuntime&&A.noExitRuntime,typeof WebAssembly!="object"&&iA("no native wasm support detected");var I,l=!1,c=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0;function C(L,G,T){var V=G+T;for(T=G;L[T]&&!(T>=V);)++T;if(16X?V+=String.fromCharCode(X):(X-=65536,V+=String.fromCharCode(55296|X>>10,56320|X&1023))}}else V+=String.fromCharCode(X)}return V}function B(L,G,T){var V=x;if(0=tA){var dA=L.charCodeAt(++X);tA=65536+((tA&1023)<<10)|dA&1023}if(127>=tA){if(G>=T)break;V[G++]=tA}else{if(2047>=tA){if(G+1>=T)break;V[G++]=192|tA>>6}else{if(65535>=tA){if(G+2>=T)break;V[G++]=224|tA>>12}else{if(G+3>=T)break;V[G++]=240|tA>>18,V[G++]=128|tA>>12&63}V[G++]=128|tA>>6&63}V[G++]=128|tA&63}}V[G]=0}}var u=typeof TextDecoder!="undefined"?new TextDecoder("utf-16le"):void 0;function E(L,G){for(var T=L>>1,V=T+G/2;!(T>=V)&&F[T];)++T;if(T<<=1,32>1];if(X==0||T==G/2)return V;++T,V+=String.fromCharCode(X)}}function h(L,G,T){if(T===void 0&&(T=2147483647),2>T)return 0;T-=2;var V=G;T=T<2*L.length?T/2:L.length;for(var X=0;X>1]=L.charCodeAt(X),G+=2;return D[G>>1]=0,G-V}function f(L){return 2*L.length}function Q(L,G){for(var T=0,V="";!(T>=G/4);){var X=N[L+4*T>>2];if(X==0)break;++T,65536<=X?(X-=65536,V+=String.fromCharCode(55296|X>>10,56320|X&1023)):V+=String.fromCharCode(X)}return V}function d(L,G,T){if(T===void 0&&(T=2147483647),4>T)return 0;var V=G;T=V+T-4;for(var X=0;X=tA){var dA=L.charCodeAt(++X);tA=65536+((tA&1023)<<10)|dA&1023}if(N[G>>2]=tA,G+=4,G+4>T)break}return N[G>>2]=0,G-V}function w(L){for(var G=0,T=0;T=V&&++T,G+=4}return G}var m,v,x,D,F,N,M,U,P;function W(L){m=L,A.HEAP8=v=new Int8Array(L),A.HEAP16=D=new Int16Array(L),A.HEAP32=N=new Int32Array(L),A.HEAPU8=x=new Uint8Array(L),A.HEAPU16=F=new Uint16Array(L),A.HEAPU32=M=new Uint32Array(L),A.HEAPF32=U=new Float32Array(L),A.HEAPF64=P=new Float64Array(L)}var J=A.INITIAL_MEMORY||16777216;A.wasmMemory?I=A.wasmMemory:I=new WebAssembly.Memory({initial:J/65536,maximum:32768}),I&&(m=I.buffer),J=m.byteLength,W(m);var Z,z=[],O=[],Y=[],k=[];function q(){var L=A.preRun.shift();z.unshift(L)}var j=0,AA=null;A.preloadedImages={},A.preloadedAudios={};function iA(L){throw A.onAbort&&A.onAbort(L),a(L),l=!0,L=new WebAssembly.RuntimeError("abort("+L+"). Build with -s ASSERTIONS=1 for more info."),i(L),L}function gA(L){var G=BA;return String.prototype.startsWith?G.startsWith(L):G.indexOf(L)===0}function sA(){return gA("data:application/octet-stream;base64,")}var BA="blosc_codec.wasm";if(!sA()){var IA=BA;BA=A.locateFile?A.locateFile(IA,""):""+IA}function bA(){try{if(g)return new Uint8Array(g);throw"both async and sync fetching of the wasm failed"}catch(L){iA(L)}}function EA(L){for(;0>2]=G},this.X=function(G){N[this.N+0>>2]=G},this.Y=function(){N[this.N+4>>2]=0},this.W=function(){v[this.N+12>>0]=0},this.Z=function(){v[this.N+13>>0]=0},this.V=function(G,T){this.$(G),this.X(T),this.Y(),this.W(),this.Z()}}function TA(L){switch(L){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+L)}}var RA=void 0;function UA(L){for(var G="";x[L];)G+=RA[x[L++]];return G}var fA={},NA={},ZA={};function ne(L){if(L===void 0)return"_unknown";L=L.replace(/[^a-zA-Z0-9_]/g,"$");var G=L.charCodeAt(0);return 48<=G&&57>=G?"_"+L:L}function Ie(L,G){return L=ne(L),new Function("body","return function "+L+`() { +`):(this.indentate=function(){return""},this.tagEndChar=">",this.newLine=""),this.options.supressEmptyNode?(this.buildTextNode=keA,this.buildObjNode=MeA):(this.buildTextNode=VR,this.buildObjNode=KR),this.buildTextValNode=VR,this.buildObjectNode=KR}Gy.prototype.parse=function(e){return Array.isArray(e)&&this.options.rootNodeName&&this.options.rootNodeName.length>1&&(e={[this.options.rootNodeName]:e}),this.j2x(e,0).val};Gy.prototype.j2x=function(e,A){let t="",i="";for(let n in e)if(typeof e[n]!="undefined")if(e[n]===null)i+=this.indentate(A)+"<"+n+"/"+this.tagEndChar;else if(e[n]instanceof Date)i+=this.buildTextNode(e[n],n,"",A);else if(typeof e[n]!="object"){const r=this.isAttribute(n);r?t+=" "+r+'="'+this.options.attrValueProcessor(""+e[n])+'"':this.isCDATA(n)?e[this.options.textNodeName]?i+=this.replaceCDATAstr(e[this.options.textNodeName],e[n]):i+=this.replaceCDATAstr("",e[n]):n===this.options.textNodeName?e[this.options.cdataTagName]||(i+=this.options.tagValueProcessor(""+e[n])):i+=this.buildTextNode(e[n],n,"",A)}else if(Array.isArray(e[n]))if(this.isCDATA(n))i+=this.indentate(A),e[this.options.textNodeName]?i+=this.replaceCDATAarr(e[this.options.textNodeName],e[n]):i+=this.replaceCDATAarr("",e[n]);else{const r=e[n].length;for(let o=0;o");return e+this.newLine}function KR(e,A,t,i){return t&&e.indexOf("<")===-1?this.indentate(i)+"<"+A+t+">"+e+""+this.options.tagValueProcessor(e)+"YG.parse(e,qeA);function $G(e){const A=JeA(e);if(!A.OME)throw Error("Failed to parse OME-XML metadata.");return kR(A.OME.Image).map(t=>{const i=kR(t.Pixels.Channel).map(s=>"Color"in s.attr?{...s.attr,Color:VAA(s.attr.Color)}:{...s.attr}),{AquisitionDate:n="",Description:r=""}=t,o={...t.attr,AquisitionDate:n,Description:r,Pixels:{...t.Pixels.attr,Channels:i}};return{...o,format(){const{Pixels:s}=o,a=["X","Y","Z"].map(g=>{const I=s[`PhysicalSize${g}`],l=s[`PhysicalSize${g}Unit`];return I&&l?`${I} ${l}`:"-"}).join(" x ");return{"Acquisition Date":o.AquisitionDate,"Dimensions (XY)":`${s.SizeX} x ${s.SizeY}`,"Pixels Type":s.Type,"Pixels Size (XYZ)":a,"Z-sections/Timepoints":`${s.SizeZ} x ${s.SizeT}`,Channels:s.SizeC}}}})}class A_{constructor(A,t,i,n,r,o,s){this.dtype=t,this.tileSize=i,this.shape=n,this.labels=r,this.meta=o,this.pool=s,this._indexer=A}async getRaster({selection:A,signal:t}){const i=await this._indexer(A);return this._readRasters(i,{signal:t})}async getTile({x:A,y:t,selection:i,signal:n}){const{height:r,width:o}=this._getTileExtent(A,t),s=A*this.tileSize,a=t*this.tileSize,g=[s,a,s+o,a+r],I=await this._indexer(i);return this._readRasters(I,{window:g,width:o,height:r,signal:n})}async _readRasters(A,t){var o;const i=Kr(this.shape),n=await A.readRasters({interleave:i,...t,pool:this.pool});if((o=t==null?void 0:t.signal)!=null&&o.aborted)throw by;return{data:i?n:n[0],width:n.width,height:n.height}}_getTileExtent(A,t){const{height:i,width:n}=io(this);let r=this.tileSize,o=this.tileSize;const s=Math.floor(n/this.tileSize),a=Math.floor(i/this.tileSize);return A===s&&(o=n%this.tileSize),t===a&&(r=i%this.tileSize),{height:r,width:o}}onTileError(A){console.error(A)}}function OeA(e,A){const{SizeT:t,SizeC:i,SizeZ:n}=A[0].Pixels,r=e_(A,0);return(o,s)=>{const a=r(o),g=s*n*t*i;return e.getImage(a+g)}}function YeA(e,A,t=0){const i=e_(A,t),n=new Map;return async(r,o)=>{const s=i(r),a=await e.getImage(s);if(o===0)return a;const{SubIFDs:g}=a.fileDirectory;if(!g)throw Error("Indexing Error: OME-TIFF is missing SubIFDs.");const I=`${r.t}-${r.c}-${r.z}-${o}`;if(!n.has(I)){const c=g[o-1];n.set(I,e.parseFileDirectoryAt(c))}const l=await n.get(I);return new MG(l.fileDirectory,l.geoKeyDirectory,a.dataView,e.littleEndian,e.cache,e.source)}}function e_(e,A=0){const{SizeC:t,SizeZ:i,SizeT:n,DimensionOrder:r}=e[A].Pixels;let o=0;if(A>0)for(let s=0;so+s*i*t+a*i+g;case"XYZTC":return({t:s,c:a,z:g})=>o+a*i*n+s*i+g;case"XYCTZ":return({t:s,c:a,z:g})=>o+g*t*n+s*t+a;case"XYCZT":return({t:s,c:a,z:g})=>o+s*t*i+g*t+a;case"XYTCZ":return({t:s,c:a,z:g})=>o+g*n*t+a*n+s;case"XYTZC":return({t:s,c:a,z:g})=>o+a*n*i+g*n+s;default:throw new Error(`Invalid OME-XML DimensionOrder, got ${r}.`)}}function KeA(e){function A({c:i=0,t:n=0,z:r=0}){return`${i}-${n}-${r}`}const t=new Map(e.map(({selection:i,tiff:n})=>[A(i),n]));return async i=>{const n=A(i),r=t.get(n);if(!r)throw new Error(`No image available for selection ${n}`);return r}}function VeA(e,A,t,i){return t?YeA(e,A,i):OeA(e,A)}async function WeA(e,A){const t=await e.getImage(0),{ImageDescription:i,SubIFDs:n,PhotometricInterpretation:r}=t.fileDirectory,o=$G(i);let s=o,a;n?a=n.length+1:(a=o.length,s=[o[0]]);const g=(I,l,c)=>{const{labels:C,getShape:B,physicalSizes:u,dtype:E}=WAA(c),h=JG(t),f={photometricInterpretation:r,physicalSizes:u},Q=B(I),d=m=>l(m,I);return new A_(d,E,h,Q,C,f,A)};return s.map((I,l)=>{const c=VeA(e,o,n,l);return{data:Array.from({length:a}).map((B,u)=>g(u,c,I)),metadata:I}})}function zeA(e){const A=e[0].tiff.getWidth(),t=e[0].tiff.getHeight();for(const i of e)if(i.tiff.getWidth()!==A||i.tiff.getHeight()!==t)throw new Error("All images must have the same width and height")}async function jeA(e,A){for(let t=0;t<=Math.max(...e.map(i=>i.selection.t));t+=1)for(let i=0;i<=Math.max(...e.map(n=>n.selection.c));i+=1)for(let n=0;n<=Math.max(...e.map(r=>r.selection.z));n+=1)await A({t,c:i,z:n})}async function XeA(e,A,t,i){zeA(A);const n=A[0].tiff,{PhotometricInterpretation:r}=n.fileDirectory,o="XYZCT",s=JG(n),a={photometricInterpretation:r},g=KeA(A),{shape:I,labels:l,dtype:c}=XAA(o,A),C=$AA(e,A,t,o,c);return await jeA(A,g),{data:[new A_(g,c,s,I,l,a,i)],metadata:C}}Wn(5,()=>YAA);const WB="file://";async function WR(e,A={}){const{headers:t={},offsets:i,pool:n,images:r="first"}=A;let o;typeof e=="string"?e.startsWith(WB)?o=await TG(e.slice(WB.length)):o=await gu(e,{headers:t,cacheSize:1/0}):o=await Iu(e),i&&(o=PAA(o,i)),TAA(o);const s=await WeA(o,n);return r==="all"?s:s[0]}function zR(e,A,t){return t.length===1?e:e+`_${A.toString()}`}async function ZeA(e,A={}){var s;const{pool:t,headers:i={},name:n="MultiTiff"}=A,r=[],o=[];for(const a of e){const[g,I]=a,l=Array.isArray(g)?g:[g];if(typeof I=="string"){const c=TR(I),C=(s=c.extension)==null?void 0:s.toLowerCase();if(C==="tif"||C==="tiff"){const B=c.name;if(B){let u;I.startsWith(WB)?u=await TG(I.slice(WB.length)):u=await gu(I,{headers:i,cacheSize:1/0});for(let E=0;E0)return XeA(n,r,A.channelNames||o,t);throw new Error("Unable to load image from provided TiffFolder source.")}const Td=new Map;function _y(e,A){Td.set(e,A)}async function $eA(e){if(!Td.has(e.id))throw new Error(`Compression codec ${e.id} is not supported by Zarr.js yet.`);return(await Td.get(e.id)()).fromConfig(e)}function My(e){return new Proxy(e,{set(A,t,i,n){return A.setItem(t,i)},get(A,t,i){return A.getItem(t)},deleteProperty(A,t){return A.deleteItem(t)},has(A,t){return A.containsItem(t)}})}function AtA(e){return typeof e=="object"&&e!==null&&"__zarr__"in e}function hf(e){return AtA(e)&&e.__zarr__==="KeyError"}class Lr extends Error{constructor(A){super(`path ${A} contains an array`),this.__zarr__="ContainsArrayError",Object.setPrototypeOf(this,Lr.prototype)}}class Oa extends Error{constructor(A){super(`path ${A} contains a group`),this.__zarr__="ContainsGroupError",Object.setPrototypeOf(this,Oa.prototype)}}class cu extends Error{constructor(A){super(`group not found at path ${A}`),this.__zarr__="GroupNotFoundError",Object.setPrototypeOf(this,cu.prototype)}}class Mt extends Error{constructor(A){super(A),this.__zarr__="PermissionError",Object.setPrototypeOf(this,Mt.prototype)}}class Ya extends Error{constructor(A){super(`key ${A} not present`),this.__zarr__="KeyError",Object.setPrototypeOf(this,Ya.prototype)}}class ky extends RangeError{constructor(A,t){super(`too many indices for array; expected ${t.length}, got ${A.length}`),this.__zarr__="TooManyIndicesError",Object.setPrototypeOf(this,ky.prototype)}}class nl extends RangeError{constructor(A){super(A),this.__zarr__="BoundsCheckError",Object.setPrototypeOf(this,nl.prototype)}}class zB extends RangeError{constructor(A,t,i,n){super(`slice arguments slice(${A}, ${t}, ${i}) invalid: ${n}`),this.__zarr__="InvalidSliceError",Object.setPrototypeOf(this,zB.prototype)}}class Ty extends Error{constructor(){super("Negative step size is not supported when indexing."),this.__zarr__="NegativeStepError",Object.setPrototypeOf(this,Ty.prototype)}}class oi extends Error{constructor(A){super(A),this.__zarr__="ValueError",Object.setPrototypeOf(this,oi.prototype)}}class Uy extends Error{constructor(A){super(A),this.__zarr__="HTTPError",Object.setPrototypeOf(this,Uy.prototype)}}function qo(e,A=void 0,t=null){if(e===void 0)throw new zB(e,A,t,"The first argument must not be undefined");if(typeof e=="string"&&e!==":"||typeof A=="string"&&A!==":")throw new zB(e,A,t,'Arguments can only be integers, ":" or null');return A===void 0&&(A=e,e=null),{start:e===":"?null:e,stop:A===":"?null:A,step:t,_slice:!0}}function etA(e,A,t,i){if(e<0?(e+=i,e<0&&(e=t<0?-1:0)):e>=i&&(e=t<0?i-1:i),A<0?(A+=i,A<0&&(A=t<0?-1:0)):A>=i&&(A=t<0?i-1:i),t<0){if(AA.length)throw new ky(e,A)}function Jo(e,A){const t=[],i=[];for(let n=0;n1)throw new RangeError("an index can only have a single ellipsis ('...')");if(i===1){const n=t,r=e.length-(n+1),o=e.length-1;if(o>=A.length)e=e.filter(s=>s!=="...");else{const s=A.length-o;let a=e.slice(0,n).concat(new Array(s).fill(null));r>0&&(a=a.concat(e.slice(e.length-r))),e=a}}if(e.length=A||e<0)throw new nl(`index out of bounds for dimension with length ${A}`);return e}function ntA(e){return typeof e=="number"}function n_(e){if(!Array.isArray(e))return!1;for(const A of e)if(typeof A!="number")return!1;return!0}function Hy(e){return e!==null&&e._slice===!0}function rtA(e){return Hy(e)&&(e.step===null||e.step===1)}function otA(e){e=i_(e);for(let A=0;Ai()),t=A.map(i=>i.next());for(let i=0;;){if(t[i].done){if(A[i]=e[i](),t[i]=A[i].next(),++i>=A.length)return}else yield t.map(({value:n})=>n),i=0;t[i]=A[i].next()}}class jR{constructor(A,t){A=Vr(A,t.shape),this.dimIndexers=[];const i=t.shape;for(let n=0;n()=>i.iter()),t=stA(...A);for(const i of t){const n=[],r=[],o=[];for(const s of i)n.push(s.dimChunkIndex),r.push(s.dimChunkSelection),s.dimOutSelection!==null&&o.push(s.dimOutSelection);yield{chunkCoords:n,chunkSelection:r,outSelection:o}}}}class atA{constructor(A,t,i){A=Py(A,t),this.dimSelection=A,this.dimLength=t,this.dimChunkLength=i,this.numItems=1}*iter(){const A=Math.floor(this.dimSelection/this.dimChunkLength),t=A*this.dimChunkLength,i=this.dimSelection-t;yield{dimChunkIndex:A,dimChunkSelection:i,dimOutSelection:null}}}class XR{constructor(A,t,i){const[n,r,o]=t_(A,t);if(this.start=n,this.stop=r,this.step=o,this.step<1)throw new Ty;this.dimLength=t,this.dimChunkLength=i,this.numItems=Math.max(0,Math.ceil((this.stop-this.start)/this.step)),this.numChunks=Math.ceil(this.dimLength/this.dimChunkLength)}*iter(){const A=Math.floor(this.start/this.dimChunkLength),t=Math.ceil(this.stop/this.dimChunkLength);for(let i=A;i0&&(s+=this.step-C),g=Math.ceil((n-this.start)/this.step)}else s=this.start-n,g=0;this.stop>r?a=o:a=this.stop-n;const I=qo(s,a,this.step),l=Math.ceil((a-s)/this.step),c=qo(g,g+l);yield{dimChunkIndex:i,dimChunkSelection:I,dimOutSelection:c}}}}const Ka=typeof process!="undefined"&&process.versions&&process.versions.node;function ZR(){}function _i(e){if(e===null)return"";for(e instanceof String&&(e=e.valueOf()),e=e.replace(/\\/g,"/");e.length>0&&e[0]==="/";)e=e.slice(1);for(;e.length>0&&e[e.length-1]==="/";)e=e.slice(0,e.length-1);e=e.replace(/\/\/+/g,"/");const A=e.split("/");for(const t of A)if(t==="."||t==="..")throw Error("path containing '.' or '..' segment not allowed");return e}function qy(e){return typeof e=="number"&&(e=[e]),e.map(A=>Math.floor(A))}function gtA(e,A){if(e===null||e===!0)throw new Error("Chunk guessing is not supported yet");return e===!1?A:(typeof e=="number"&&(e=[e]),e.lengtht===-1||t===null?A[i]:Math.floor(t)))}function ItA(e){return e=e.toUpperCase(),e}function $R(e,A){if(e===null)return!0;Array.isArray(e)||(e=[e]);for(let t=0;t=0;n--)t[n]=i,i*=e[n];return t}function ff(e,A){const t=typeof e=="string"?new URL(e):e;t.pathname.endsWith("/")||(t.pathname+="/");const i=new URL(A,t);return i.search=t.search,i.href}function r_(e){const A=e.BYTES_PER_ELEMENT;if(A===1)return;if(Ka){const o=Buffer.from(e.buffer,e.byteOffset,e.length*A);A===2&&o.swap16(),A===4&&o.swap32(),A===8&&o.swap64();return}const t=new Uint8Array(e.buffer,e.byteOffset,e.length*A),i=A/2,n=A-1;let r;for(let o=0;os*a),r=t.map((s,a)=>a+1===i?1:t.slice(a+1).reduce((g,I)=>g*I,1)),o=Array(i).fill(0);for(let s=0;s0?e+"/":""}async function s_(e,A,t,i){if(A.length===0)return;const n=A.split("/");let r="";for(const o of n.slice(0,n.length-1))r+=o,await kn(e,r)?await Ud(e,r,i):await cn(e,r)||await Ud(e,r),r+="/"}async function Ud(e,A=null,t=!1){if(A=_i(A),t)throw Error("Group overwriting not implemented yet :(");if(await kn(e,A))throw new Lr(A);if(await cn(e,A))throw new Oa(A);const i={zarr_format:2},n=Wr(A)+Oy;await e.setItem(n,JSON.stringify(i))}async function dI(e,A=null,t=null,i=!1){A=_i(A),await s_(e,A,t,i),await Ud(e,A,i)}async function dtA(e,A,t,i,n,r,o,s,a,g,I,l){if(a)throw Error("Array overwriting not implemented yet :(");if(await kn(e,n))throw new Lr(n);if(await cn(e,n))throw new Oa(n);if(i=i,A=qy(A),t=gtA(t,A),s=ItA(s),o=o,I!==null&&I.length>0)throw Error("Filters are not supported yet");let c=o;typeof o=="number"&&(Number.isNaN(o)&&(c="NaN"),Number.POSITIVE_INFINITY===o&&(c="Infinity"),Number.NEGATIVE_INFINITY===o&&(c="-Infinity")),I=null;const C={zarr_format:2,shape:A,chunks:t,dtype:i,fill_value:c,order:s,compressor:r,filters:I};l&&(C.dimension_separator=l);const B=Wr(n)+jB;await e.setItem(B,JSON.stringify(C))}async function ptA(e,A,t,i,n=null,r=null,o=null,s="C",a=!1,g=null,I=null,l){n=_i(n),await s_(e,n,g,a),await dtA(e,A,t,i,n,r,o,s,a,g,I,l)}function XB(e){if(typeof e!="string"){if(Ka&&Buffer.isBuffer(e))return JSON.parse(e.toString());if(Jy(e)){const A=new TextDecoder,t=new Uint8Array(e);return JSON.parse(A.decode(t))}else return e}return JSON.parse(e)}class a_{constructor(A,t,i,n=!0){this.store=A,this.key=t,this.readOnly=i,this.cache=n,this.cachedValue=null}async asObject(){if(this.cache&&this.cachedValue!==null)return this.cachedValue;const A=await this.getNoSync();return this.cache&&(this.cachedValue=A),A}async getNoSync(){try{const A=await this.store.getItem(this.key);return XB(A)}catch{return{}}}async setNoSync(A,t){const i=await this.getNoSync();return i[A]=t,await this.putNoSync(i),!0}async putNoSync(A){await this.store.setItem(this.key,JSON.stringify(A)),this.cache&&(this.cachedValue=A)}async delNoSync(A){const t=await this.getNoSync();return delete t[A],await this.putNoSync(t),!0}async put(A){if(this.readOnly)throw new Mt("attributes are read-only");return this.putNoSync(A)}async setItem(A,t){if(this.readOnly)throw new Mt("attributes are read-only");return this.setNoSync(A,t)}async getItem(A){return(await this.asObject())[A]}async deleteItem(A){if(this.readOnly)throw new Mt("attributes are read-only");return this.delNoSync(A)}async containsItem(A){return(await this.asObject())[A]!==void 0}proxy(){return My(this)}}const A1=globalThis.Float16Array,ytA={"|b":Int8Array,"|b1":Uint8Array,"|B":Uint8Array,"|u1":Uint8Array,"|i1":Int8Array,"b":Int8Array,">B":Uint8Array,">u1":Uint8Array,">i1":Int8Array,">u2":Uint16Array,">i2":Int16Array,">u4":Uint32Array,">i4":Int32Array,">f4":Float32Array,">f2":A1,">f8":Float64Array};function an(e){const A=ytA[e];if(!A)throw e.slice(1)==="f2"?Error(`'${e}' is not supported natively in zarr.js. In order to access this dataset you must make Float16Array available as a global. See https://github.com/gzuidhof/zarr.js/issues/127`):Error(`Dtype not recognized or not supported in zarr.js, got ${e}.`);return A}function g_(e){if(e instanceof Uint8Array)return"|u1";if(e instanceof Int8Array)return"|i1";if(e instanceof Uint16Array)return"0&&typeof a[0]=="number"&&(a=e[0].constructor.from(a)),a}function wtA(e,A,t,i){const n=Vr(i,t,!0),[r,o]=Jo(n,t);Ky(e,A,t,r)}function vtA(e,A,t,i,n){const r=Vr(n,t,!1),[o,s]=Jo(r,t);if(JSON.stringify(s)!==JSON.stringify(i))throw new oi(`Shape mismatch in target and source NestedArray: ${s} and ${i}`);Hd(e,A,t,o)}function Hd(e,A,t,i){const n=i[0];if(typeof A=="number"){Ky(e,A,t,i.map(g=>typeof g=="number"?[g,g+1,1,1]:g));return}if(typeof n=="number"){Hd(e[n],A,t.slice(1),i.slice(1));return}const[r,o,s,a]=n;if(t.length===1){if(s===1)e.set(A,r);else for(let g=0;gr*o,1),n=new t(i);return I_(e,A,n,0),n}function I_(e,A,t,i){if(A.length===1){t.set(e,i);return}if(A.length===2){for(let o=0;oo*s,1);for(let o=0;oa*g,1);A===null&&(A=new ArrayBuffer(r*parseInt(i[i.length-1],10)));const o=A.byteLength/parseInt(i[i.length-1],10);if(r!==o)throw new Error(`Buffer has ${o} of dtype ${i}, shape is too large or small ${t} (flat=${r})`);const s=an(i);this.data=l_(A,s,t)}else this.data=A}get(A){const[t,i]=mtA(this.data,this.shape,A);return i.length===0?t:new Nn(t,i,this.dtype)}set(A=null,t){A===null&&(A=[qo(null)]),typeof t=="number"?this.shape.length===0?this.data[0]=t:wtA(this.data,t,this.shape,A):vtA(this.data,t.data,this.shape,t.shape,A)}flatten(){return this.shape.length===1?this.data:StA(this.data,this.shape,an(this.dtype))}static arange(A,t="n*r,1),i=new A(t);return i.set([...Array(t).keys()]),i}function l_(e,A,t,i=0){if(t.length===1)return new A(e.slice(i,i+t[0]*A.BYTES_PER_ELEMENT));const n=new Array(t[0]);if(t.length===2){for(let s=0;ss*a,1);for(let s=0;sg*I,1);A===null&&(A=new ArrayBuffer(o*parseInt(i[i.length-1],10)));const s=A.byteLength/parseInt(i[i.length-1],10);if(o!==s)throw new Error(`Buffer has ${s} of dtype ${i}, shape is too large or small ${t} (flat=${o})`);const a=an(i);this.data=new a(A)}else this.data=A}set(A=null,t,i){A===null&&(A=[qo(null)]),typeof t=="number"?this.shape.length===0?this.data[0]=t:RtA(this.data,this.strides,this.shape,A,t):t instanceof Bo&&i?FtA(this.data,this.strides,this.shape,A,t.data,t.strides,t.shape,i):xtA(this.data,this.strides,this.shape,A,t.data,t.strides,t.shape)}}var C_={exports:{}};(function(e){var A=Object.prototype.hasOwnProperty,t="~";function i(){}Object.create&&(i.prototype=Object.create(null),new i().__proto__||(t=!1));function n(a,g,I){this.fn=a,this.context=g,this.once=I||!1}function r(a,g,I,l,c){if(typeof I!="function")throw new TypeError("The listener must be a function");var C=new n(I,l||a,c),B=t?t+g:g;return a._events[B]?a._events[B].fn?a._events[B]=[a._events[B],C]:a._events[B].push(C):(a._events[B]=C,a._eventsCount++),a}function o(a,g){--a._eventsCount===0?a._events=new i:delete a._events[g]}function s(){this._events=new i,this._eventsCount=0}s.prototype.eventNames=function(){var g=[],I,l;if(this._eventsCount===0)return g;for(l in I=this._events)A.call(I,l)&&g.push(t?l.slice(1):l);return Object.getOwnPropertySymbols?g.concat(Object.getOwnPropertySymbols(I)):g},s.prototype.listeners=function(g){var I=t?t+g:g,l=this._events[I];if(!l)return[];if(l.fn)return[l.fn];for(var c=0,C=l.length,B=new Array(C);c{if(typeof A!="number"||A<0)throw new TypeError("Expected `milliseconds` to be a positive number");if(A===Number.POSITIVE_INFINITY){o(e);return}i={customTimers:{setTimeout,clearTimeout},...i},n=i.customTimers.setTimeout.call(void 0,()=>{if(typeof t=="function"){try{o(t())}catch(I){s(I)}return}const a=typeof t=="string"?t:`Promise timed out after ${A} milliseconds`,g=t instanceof Error?t:new B_(a);typeof e.cancel=="function"&&e.cancel(),s(g)},A),(async()=>{try{o(await e)}catch(a){s(a)}finally{i.customTimers.clearTimeout.call(void 0,n)}})()});return r.clear=()=>{clearTimeout(n),n=void 0},r}function btA(e,A,t){let i=0,n=e.length;for(;n>0;){const r=Math.trunc(n/2);let o=i+r;t(e[o],A)<=0?(i=++o,n-=r+1):n=r}return i}class GtA{constructor(){Object.defineProperty(this,"_queue",{enumerable:!0,configurable:!0,writable:!0,value:[]})}enqueue(A,t){var i;t={priority:0,...t};const n={priority:t.priority,run:A};if(this.size&&((i=this._queue[this.size-1])===null||i===void 0?void 0:i.priority)>=t.priority){this._queue.push(n);return}const r=btA(this._queue,n,(o,s)=>s.priority-o.priority);this._queue.splice(r,0,n)}dequeue(){const A=this._queue.shift();return A==null?void 0:A.run}filter(A){return this._queue.filter(t=>t.priority===A.priority).map(t=>t.run)}get size(){return this._queue.length}}const iC=()=>{},_tA=new B_;class e1 extends NtA{constructor(A){var t,i,n,r;if(super(),Object.defineProperty(this,"_carryoverConcurrencyCount",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_isIntervalIgnored",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_intervalCount",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_intervalCap",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_interval",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_intervalEnd",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_intervalId",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_timeoutId",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_queue",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_queueClass",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_pendingCount",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_concurrency",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_isPaused",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_resolveEmpty",{enumerable:!0,configurable:!0,writable:!0,value:iC}),Object.defineProperty(this,"_resolveIdle",{enumerable:!0,configurable:!0,writable:!0,value:iC}),Object.defineProperty(this,"_timeout",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_throwOnTimeout",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),A={carryoverConcurrencyCount:!1,intervalCap:Number.POSITIVE_INFINITY,interval:0,concurrency:Number.POSITIVE_INFINITY,autoStart:!0,queueClass:GtA,...A},!(typeof A.intervalCap=="number"&&A.intervalCap>=1))throw new TypeError(`Expected \`intervalCap\` to be a number from 1 and up, got \`${(i=(t=A.intervalCap)===null||t===void 0?void 0:t.toString())!==null&&i!==void 0?i:""}\` (${typeof A.intervalCap})`);if(A.interval===void 0||!(Number.isFinite(A.interval)&&A.interval>=0))throw new TypeError(`Expected \`interval\` to be a finite number >= 0, got \`${(r=(n=A.interval)===null||n===void 0?void 0:n.toString())!==null&&r!==void 0?r:""}\` (${typeof A.interval})`);this._carryoverConcurrencyCount=A.carryoverConcurrencyCount,this._isIntervalIgnored=A.intervalCap===Number.POSITIVE_INFINITY||A.interval===0,this._intervalCap=A.intervalCap,this._interval=A.interval,this._queue=new A.queueClass,this._queueClass=A.queueClass,this.concurrency=A.concurrency,this._timeout=A.timeout,this._throwOnTimeout=A.throwOnTimeout===!0,this._isPaused=A.autoStart===!1}get _doesIntervalAllowAnother(){return this._isIntervalIgnored||this._intervalCount{this._onResumeInterval()},t)),!0}return!1}_tryToStartAnother(){if(this._queue.size===0)return this._intervalId&&clearInterval(this._intervalId),this._intervalId=void 0,this._resolvePromises(),!1;if(!this._isPaused){const A=!this._isIntervalPaused();if(this._doesIntervalAllowAnother&&this._doesConcurrentAllowAnother){const t=this._queue.dequeue();return t?(this.emit("active"),t(),A&&this._initializeIntervalIfNeeded(),!0):!1}}return!1}_initializeIntervalIfNeeded(){this._isIntervalIgnored||this._intervalId!==void 0||(this._intervalId=setInterval(()=>{this._onInterval()},this._interval),this._intervalEnd=Date.now()+this._interval)}_onInterval(){this._intervalCount===0&&this._pendingCount===0&&this._intervalId&&(clearInterval(this._intervalId),this._intervalId=void 0),this._intervalCount=this._carryoverConcurrencyCount?this._pendingCount:0,this._processQueue()}_processQueue(){for(;this._tryToStartAnother(););}get concurrency(){return this._concurrency}set concurrency(A){if(!(typeof A=="number"&&A>=1))throw new TypeError(`Expected \`concurrency\` to be a number from 1 and up, got \`${A}\` (${typeof A})`);this._concurrency=A,this._processQueue()}async add(A,t={}){return new Promise((i,n)=>{const r=async()=>{this._pendingCount++,this._intervalCount++;try{const s=await(this._timeout===void 0&&t.timeout===void 0?A():LtA(Promise.resolve(A()),t.timeout===void 0?this._timeout:t.timeout,()=>{(t.throwOnTimeout===void 0?this._throwOnTimeout:t.throwOnTimeout)&&n(_tA)}));i(s),this.emit("completed",s)}catch(o){n(o),this.emit("error",o)}this._next()};this._queue.enqueue(r,t),this._tryToStartAnother(),this.emit("add")})}async addAll(A,t){return Promise.all(A.map(async i=>this.add(i,t)))}start(){return this._isPaused?(this._isPaused=!1,this._processQueue(),this):this}pause(){this._isPaused=!0}clear(){this._queue=new this._queueClass}async onEmpty(){if(this._queue.size!==0)return new Promise(A=>{const t=this._resolveEmpty;this._resolveEmpty=()=>{t(),A()}})}async onSizeLessThan(A){if(!(this._queue.size{const i=()=>{this._queue.size{const t=this._resolveIdle;this._resolveIdle=()=>{t(),A()}})}get size(){return this._queue.size}sizeBy(A){return this._queue.filter(A).length}get pending(){return this._pendingCount}get isPaused(){return this._isPaused}get timeout(){return this._timeout}set timeout(A){this._timeout=A}}class Cu{constructor(A,t=null,i,n=!1,r=null,o=!0,s=!0){this.store=A,this._chunkStore=r,this.path=_i(t),this.keyPrefix=Wr(this.path),this.readOnly=n,this.cacheMetadata=o,this.cacheAttrs=s,this.meta=i,this.meta.compressor!==null?this.compressor=$eA(this.meta.compressor):this.compressor=null;const a=this.keyPrefix+o_;this.attrs=new a_(this.store,a,this.readOnly,s)}get chunkStore(){return this._chunkStore?this._chunkStore:this.store}get name(){return this.path.length>0?this.path[0]!=="/"?"/"+this.path:this.path:null}get basename(){const A=this.name;if(A===null)return null;const t=A.split("/");return t[t.length-1]}get shape(){return this.meta.shape}get chunks(){return this.meta.chunks}get chunkSize(){return this.chunks.reduce((A,t)=>A*t,1)}get dtype(){return this.meta.dtype}get fillValue(){const A=this.meta.fill_value;return A==="NaN"?NaN:A==="Infinity"?1/0:A==="-Infinity"?-1/0:this.meta.fill_value}get nDims(){return this.meta.shape.length}get size(){return this.meta.shape.reduce((A,t)=>A*t,1)}get length(){return this.shape[0]}get _chunkDataShape(){if(this.shape.length===0)return[1];{const A=[];for(let t=0;tA*t,1)}static async create(A,t=null,i=!1,n=null,r=!0,o=!0){const s=await this.loadMetadataForConstructor(A,t);return new Cu(A,t,s,i,n,r,o)}static async loadMetadataForConstructor(A,t){try{t=_i(t);const i=Wr(t),n=await A.getItem(i+jB);return XB(n)}catch(i){throw await cn(A,t)?new Oa(t!=null?t:""):new Error("Failed to load metadata for ZarrArray:"+i.toString())}}async reloadMetadata(){const A=this.keyPrefix+jB,t=this.store.getItem(A);return this.meta=XB(await t),this.meta}async refreshMetadata(){this.cacheMetadata||await this.reloadMetadata()}get(A=null,t={}){return this.getBasicSelection(A,!1,t)}getRaw(A=null,t={}){return this.getBasicSelection(A,!0,t)}async getBasicSelection(A,t=!1,{concurrencyLimit:i=10,progressCallback:n,storeOptions:r}={}){if(this.cacheMetadata||await this.reloadMetadata(),this.shape.length===0)throw new Error("Shape [] indexing is not supported yet");return this.getBasicSelectionND(A,t,i,n,r)}getBasicSelectionND(A,t,i,n,r){const o=new jR(A,this);return this.getSelection(o,t,i,n,r)}async getSelection(A,t,i,n,r){const o=this.dtype,s=A.shape,a=A.shape.reduce((l,c)=>l*c,1);if(t&&a===this.chunkSize){const l=A.iter(),c=l.next();if(c.done===!1&&l.next().done===!0){const C=c.value;return await this.decodeDirectToRawArray(C,s,a)}}const g=t?new Bo(null,s,o):new Nn(null,s,o);if(a===0)return g;const I=new e1({concurrency:i});if(n){let l=0,c=0;for(const C of A.iter())c+=1;n({progress:0,queueSize:c});for(const C of A.iter())(async()=>(await I.add(()=>this.chunkGetItem(C.chunkCoords,C.chunkSelection,g,C.outSelection,A.dropAxes,r)),l+=1,n({progress:l,queueSize:c})))()}else for(const l of A.iter())I.add(()=>this.chunkGetItem(l.chunkCoords,l.chunkSelection,g,l.outSelection,A.dropAxes,r));return await I.onIdle(),g.shape.length===0?g.data[0]:g}async chunkGetItem(A,t,i,n,r,o){if(A.length!==this._chunkDataShape.length)throw new oi(`Inconsistent shapes: chunkCoordsLength: ${A.length}, cDataShapeLength: ${this.chunkDataShape.length}`);const s=this.chunkKey(A);try{const a=await this.chunkStore.getItem(s,o),g=await this.decodeChunk(a);if(i instanceof Nn){if(otA(n)&&$R(t,this.chunks)&&!this.meta.filters){i.set(n,this.toNestedArray(g));return}const l=this.toNestedArray(g).get(t);if(r!==null)throw new Error("Drop axes is not supported yet");i.set(n,l)}else i.set(n,this.chunkBufferToRawArray(g),t)}catch(a){if(hf(a))this.fillValue!==null&&i.set(n,this.fillValue);else throw a}}async getRawChunk(A,t){if(A.length!==this.shape.length)throw new Error(`Chunk coordinates ${A.join(".")} do not correspond to shape ${this.shape}.`);try{for(let s=0;ss!==1);return new Bo(r,o,this.dtype)}chunkKey(A){var t;const i=(t=this.meta.dimension_separator)!==null&&t!==void 0?t:".";return this.keyPrefix+A.join(i)}ensureByteArray(A){return typeof A=="string"?new Uint8Array(Buffer.from(A).buffer):new Uint8Array(A)}toTypedArray(A){return new(an(this.dtype))(A)}toNestedArray(A){const t=this.ensureByteArray(A).buffer;return new Nn(t,this.chunks,this.dtype)}async decodeChunk(A){let t=this.ensureByteArray(A);if(this.compressor!==null&&(t=await(await this.compressor).decode(t)),this.dtype.includes(">")&&r_(this.toTypedArray(t.buffer)),this.meta.order==="F"&&this.nDims>1){const i=this.toTypedArray(t.buffer),n=new(an(this.dtype))(i.length);return QtA(i,n,this.chunks),n.buffer}return t.buffer}chunkBufferToRawArray(A){return new Bo(A,this.chunks,this.dtype)}async decodeDirectToRawArray({chunkCoords:A},t,i){const n=this.chunkKey(A);try{const r=await this.chunkStore.getItem(n);return new Bo(await this.decodeChunk(r),t,this.dtype)}catch(r){if(hf(r)){const o=new(an(this.dtype))(i);return new Bo(o.fill(this.fillValue),t)}else throw r}}async set(A=null,t,i={}){await this.setBasicSelection(A,t,i)}async setBasicSelection(A,t,{concurrencyLimit:i=10,progressCallback:n}={}){if(this.readOnly)throw new Mt("Object is read only");if(this.cacheMetadata||await this.reloadMetadata(),this.shape.length===0)throw new Error("Shape [] indexing is not supported yet");await this.setBasicSelectionND(A,t,i,n)}async setBasicSelectionND(A,t,i,n){const r=new jR(A,this);await this.setSelection(r,t,i,n)}getChunkValue(A,t,i,n){let r;if(n.length===0)r=i;else if(typeof i=="number")r=i;else if(r=i.get(A.outSelection),t.dropAxes!==null)throw new Error("Handling drop axes not supported yet");return r}async setSelection(A,t,i,n){const r=A.shape;if(r.length!==0){if(typeof t!="number")if(t instanceof Nn){if(!ltA(t.shape,r))throw new oi(`Shape mismatch in source NestedArray and set selection: ${t.shape} and ${r}`)}else throw new Error("Unknown data type for setting :(")}const o=new e1({concurrency:i});if(n){let s=0;for(const g of A.iter())s+=1;let a=0;n({progress:0,queueSize:s});for(const g of A.iter()){const I=this.getChunkValue(g,A,t,r);(async()=>(await o.add(()=>this.chunkSetItem(g.chunkCoords,g.chunkSelection,I)),a+=1,n({progress:a,queueSize:s})))()}}else for(const s of A.iter()){const a=this.getChunkValue(s,A,t,r);o.add(()=>this.chunkSetItem(s.chunkCoords,s.chunkSelection,a))}await o.onIdle()}async chunkSetItem(A,t,i){if(this.meta.order==="F"&&this.nDims>1)throw new Error("Setting content for arrays in F-order is not supported.");const n=this.chunkKey(A);let r=null;const o=an(this.dtype),s=this.chunkSize;if($R(t,this.chunks))typeof i=="number"?(r=new o(s),r.fill(i)):r=i.flatten();else{let g;try{const l=await this.chunkStore.getItem(n),c=await this.decodeChunk(l);g=this.toTypedArray(c)}catch(l){if(hf(l))g=new o(s),this.fillValue!==null&&g.fill(this.fillValue);else throw l}const I=new Nn(g,this.chunks,this.dtype);I.set(t,i),r=I.flatten()}const a=await this.encodeChunk(r);this.chunkStore.setItem(n,a)}async encodeChunk(A){if(this.dtype.includes(">")&&(A=CtA(A)),this.compressor!==null){const t=new Uint8Array(A.buffer);return(await(await this.compressor).encode(t)).buffer}return A.buffer}}class MtA{constructor(A={}){this.root=A}proxy(){return My(this)}getParent(A){let t=this.root;const i=A.split("/");for(const n of i.slice(0,i.length-1))if(t=t[n],!t)throw Error(A);return[t,i[i.length-1]]}requireParent(A){let t=this.root;const i=A.split("/");for(const n of i.slice(0,i.length-1))t[n]===void 0&&(t[n]={}),t=t[n];return[t,i[i.length-1]]}getItem(A){const[t,i]=this.getParent(A),n=t[i];if(n===void 0)throw new Ya(A);return n}setItem(A,t){const[i,n]=this.requireParent(A);return i[n]=t,!0}deleteItem(A){const[t,i]=this.getParent(A);return delete t[i]}containsItem(A){try{return this.getItem(A)!==void 0}catch{return!1}}keys(){throw new Error("Method not implemented.")}}var en;(function(e){e.HEAD="HEAD",e.GET="GET",e.PUT="PUT"})(en||(en={}));const ktA=[en.HEAD,en.GET,en.PUT];class Vy{constructor(A,t={}){this.url=A;const{fetchOptions:i={},supportedMethods:n=ktA}=t;this.fetchOptions=i,this.supportedMethods=new Set(n)}keys(){throw new Error("Method not implemented.")}async getItem(A,t){const i=ff(this.url,A),n=await fetch(i,{...this.fetchOptions,...t});if(n.status===404)throw new Ya(A);if(n.status!==200)throw new Uy(String(n.status));return Ka?Buffer.from(await n.arrayBuffer()):n.arrayBuffer()}async setItem(A,t){if(!this.supportedMethods.has(en.PUT))throw new Error("HTTP PUT no a supported method for store.");const i=ff(this.url,A);return typeof t=="string"&&(t=new TextEncoder().encode(t).buffer),(await fetch(i,{...this.fetchOptions,method:en.PUT,body:t})).status.toString()[0]==="2"}deleteItem(A){throw new Error("Method not implemented.")}async containsItem(A){const t=ff(this.url,A),i=this.supportedMethods.has(en.HEAD)?en.HEAD:en.GET;return(await fetch(t,{...this.fetchOptions,method:i})).status===200}}async function Va({shape:e,chunks:A=!0,dtype:t="0?this.path[0]!=="/"?"/"+this.path:this.path:"/"}get basename(){const A=this.name.split("/");return A[A.length-1]}get chunkStore(){return this._chunkStore?this._chunkStore:this.store}static async create(A,t=null,i=!1,n=null,r=!0){const o=await this.loadMetadataForConstructor(A,t);return new Ks(A,t,o,i,n,r)}static async loadMetadataForConstructor(A,t){t=_i(t);const i=Wr(t);try{const n=await A.getItem(i+Oy);return XB(n)}catch{throw await kn(A,t)?new Lr(t):new cu(t)}}itemPath(A){const t=typeof A=="string"&&A.length>0&&A[0]==="/",i=_i(A);return!t&&this.path.length>0?this.keyPrefix+i:i}async createGroup(A,t=!1){if(this.readOnly)throw new Mt("group is read only");const i=this.itemPath(A);return await dI(this.store,i,this._chunkStore,t),Ks.create(this.store,i,this.readOnly,this._chunkStore,this.attrs.cache)}async requireGroup(A,t=!1){if(this.readOnly)throw new Mt("group is read only");const i=this.itemPath(A);return await cn(this.store,i)||await dI(this.store,i,this._chunkStore,t),Ks.create(this.store,i,this.readOnly,this._chunkStore,this.attrs.cache)}getOptsForArrayCreation(A,t={}){const i=this.itemPath(A);return t.path=i,t.cacheAttrs===void 0&&(t.cacheAttrs=this.attrs.cache),t.store=this.store,t.chunkStore=this.chunkStore,t}array(A,t,i,n){if(this.readOnly)throw new Mt("group is read only");return i=this.getOptsForArrayCreation(A,i),i.overwrite=n===void 0?i.overwrite:n,t1(t,i)}empty(A,t,i={}){if(this.readOnly)throw new Mt("group is read only");return i=this.getOptsForArrayCreation(A,i),TtA(t,i)}zeros(A,t,i={}){if(this.readOnly)throw new Mt("group is read only");return i=this.getOptsForArrayCreation(A,i),UtA(t,i)}ones(A,t,i={}){if(this.readOnly)throw new Mt("group is read only");return i=this.getOptsForArrayCreation(A,i),PtA(t,i)}full(A,t,i,n={}){if(this.readOnly)throw new Mt("group is read only");return n=this.getOptsForArrayCreation(A,n),HtA(t,i,n)}createDataset(A,t,i,n){if(this.readOnly)throw new Mt("group is read only");n=this.getOptsForArrayCreation(A,n);let r;if(i===void 0){if(t===void 0)throw new oi("Shape must be set if no data is passed to CreateDataset");r=Va({shape:t,...n})}else r=t1(i,n);return r}async getItem(A){const t=this.itemPath(A);if(await kn(this.store,t))return Cu.create(this.store,t,this.readOnly,this.chunkStore,void 0,this.attrs.cache);if(await cn(this.store,t))return Ks.create(this.store,t,this.readOnly,this._chunkStore,this.attrs.cache);throw new Ya(A)}async setItem(A,t){return await this.array(A,t,{},!0),!0}async deleteItem(A){throw this.readOnly?new Mt("group is read only"):new Error("Method not implemented.")}async containsItem(A){const t=this.itemPath(A);return await kn(this.store,t)||cn(this.store,t)}proxy(){return My(this)}}async function qtA(e,A=null,t="a",i,n=!0){if(e=Od(e),i!==void 0&&(i=Od(e)),A=_i(A),t==="r"||t==="r+"){if(!await cn(e,A))throw await kn(e,A)?new Lr(A):new cu(A)}else if(t==="w")await dI(e,A,i,!0);else if(t==="a"){if(!await cn(e,A)){if(await kn(e,A))throw new Lr(A);await dI(e,A,i)}}else if(t==="w-"||t==="x"){if(await kn(e,A))throw new Lr(A);if(await cn(e,A))throw new Oa(A);await dI(e,A,i)}else throw new oi(`Invalid mode argument: ${t}`);const r=t==="r";return Ks.create(e,A,r,i,n)}/*! pako 2.0.3 https://github.com/nodeca/pako @license (MIT AND Zlib) */const JtA=4,i1=0,n1=1,OtA=2;function Wa(e){let A=e.length;for(;--A>=0;)e[A]=0}const YtA=0,E_=1,KtA=2,VtA=3,WtA=258,Wy=29,Wl=256,rl=Wl+1+Wy,aa=30,zy=19,u_=2*rl+1,mo=15,Qf=16,ztA=7,jy=256,h_=16,f_=17,Q_=18,Yd=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]),YC=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]),jtA=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),d_=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),XtA=512,Dn=new Array((rl+2)*2);Wa(Dn);const pI=new Array(aa*2);Wa(pI);const ol=new Array(XtA);Wa(ol);const sl=new Array(WtA-VtA+1);Wa(sl);const Xy=new Array(Wy);Wa(Xy);const ZB=new Array(aa);Wa(ZB);function df(e,A,t,i,n){this.static_tree=e,this.extra_bits=A,this.extra_base=t,this.elems=i,this.max_length=n,this.has_stree=e&&e.length}let p_,y_,m_;function pf(e,A){this.dyn_tree=e,this.max_code=0,this.stat_desc=A}const w_=e=>e<256?ol[e]:ol[256+(e>>>7)],al=(e,A)=>{e.pending_buf[e.pending++]=A&255,e.pending_buf[e.pending++]=A>>>8&255},Vt=(e,A,t)=>{e.bi_valid>Qf-t?(e.bi_buf|=A<>Qf-e.bi_valid,e.bi_valid+=t-Qf):(e.bi_buf|=A<{Vt(e,t[A*2],t[A*2+1])},v_=(e,A)=>{let t=0;do t|=e&1,e>>>=1,t<<=1;while(--A>0);return t>>>1},ZtA=e=>{e.bi_valid===16?(al(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):e.bi_valid>=8&&(e.pending_buf[e.pending++]=e.bi_buf&255,e.bi_buf>>=8,e.bi_valid-=8)},$tA=(e,A)=>{const t=A.dyn_tree,i=A.max_code,n=A.stat_desc.static_tree,r=A.stat_desc.has_stree,o=A.stat_desc.extra_bits,s=A.stat_desc.extra_base,a=A.stat_desc.max_length;let g,I,l,c,C,B,u=0;for(c=0;c<=mo;c++)e.bl_count[c]=0;for(t[e.heap[e.heap_max]*2+1]=0,g=e.heap_max+1;ga&&(c=a,u++),t[I*2+1]=c,!(I>i)&&(e.bl_count[c]++,C=0,I>=s&&(C=o[I-s]),B=t[I*2],e.opt_len+=B*(c+C),r&&(e.static_len+=B*(n[I*2+1]+C)));if(u!==0){do{for(c=a-1;e.bl_count[c]===0;)c--;e.bl_count[c]--,e.bl_count[c+1]+=2,e.bl_count[a]--,u-=2}while(u>0);for(c=a;c!==0;c--)for(I=e.bl_count[c];I!==0;)l=e.heap[--g],!(l>i)&&(t[l*2+1]!==c&&(e.opt_len+=(c-t[l*2+1])*t[l*2],t[l*2+1]=c),I--)}},S_=(e,A,t)=>{const i=new Array(mo+1);let n=0,r,o;for(r=1;r<=mo;r++)i[r]=n=n+t[r-1]<<1;for(o=0;o<=A;o++){let s=e[o*2+1];s!==0&&(e[o*2]=v_(i[s]++,s))}},AiA=()=>{let e,A,t,i,n;const r=new Array(mo+1);for(t=0,i=0;i>=7;i{let A;for(A=0;A{e.bi_valid>8?al(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0},eiA=(e,A,t,i)=>{R_(e),i&&(al(e,t),al(e,~t)),e.pending_buf.set(e.window.subarray(A,A+t),e.pending),e.pending+=t},r1=(e,A,t,i)=>{const n=A*2,r=t*2;return e[n]{const i=e.heap[t];let n=t<<1;for(;n<=e.heap_len&&(n{let i,n,r=0,o,s;if(e.last_lit!==0)do i=e.pending_buf[e.d_buf+r*2]<<8|e.pending_buf[e.d_buf+r*2+1],n=e.pending_buf[e.l_buf+r],r++,i===0?tn(e,n,A):(o=sl[n],tn(e,o+Wl+1,A),s=Yd[o],s!==0&&(n-=Xy[o],Vt(e,n,s)),i--,o=w_(i),tn(e,o,t),s=YC[o],s!==0&&(i-=ZB[o],Vt(e,i,s)));while(r{const t=A.dyn_tree,i=A.stat_desc.static_tree,n=A.stat_desc.has_stree,r=A.stat_desc.elems;let o,s,a=-1,g;for(e.heap_len=0,e.heap_max=u_,o=0;o>1;o>=1;o--)yf(e,t,o);g=r;do o=e.heap[1],e.heap[1]=e.heap[e.heap_len--],yf(e,t,1),s=e.heap[1],e.heap[--e.heap_max]=o,e.heap[--e.heap_max]=s,t[g*2]=t[o*2]+t[s*2],e.depth[g]=(e.depth[o]>=e.depth[s]?e.depth[o]:e.depth[s])+1,t[o*2+1]=t[s*2+1]=g,e.heap[1]=g++,yf(e,t,1);while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],$tA(e,A),S_(t,a,e.bl_count)},s1=(e,A,t)=>{let i,n=-1,r,o=A[0*2+1],s=0,a=7,g=4;for(o===0&&(a=138,g=3),A[(t+1)*2+1]=65535,i=0;i<=t;i++)r=o,o=A[(i+1)*2+1],!(++s{let i,n=-1,r,o=A[0*2+1],s=0,a=7,g=4;for(o===0&&(a=138,g=3),i=0;i<=t;i++)if(r=o,o=A[(i+1)*2+1],!(++s{let A;for(s1(e,e.dyn_ltree,e.l_desc.max_code),s1(e,e.dyn_dtree,e.d_desc.max_code),Kd(e,e.bl_desc),A=zy-1;A>=3&&e.bl_tree[d_[A]*2+1]===0;A--);return e.opt_len+=3*(A+1)+5+5+4,A},iiA=(e,A,t,i)=>{let n;for(Vt(e,A-257,5),Vt(e,t-1,5),Vt(e,i-4,4),n=0;n{let A=4093624447,t;for(t=0;t<=31;t++,A>>>=1)if(A&1&&e.dyn_ltree[t*2]!==0)return i1;if(e.dyn_ltree[9*2]!==0||e.dyn_ltree[10*2]!==0||e.dyn_ltree[13*2]!==0)return n1;for(t=32;t{g1||(AiA(),g1=!0),e.l_desc=new pf(e.dyn_ltree,p_),e.d_desc=new pf(e.dyn_dtree,y_),e.bl_desc=new pf(e.bl_tree,m_),e.bi_buf=0,e.bi_valid=0,D_(e)},x_=(e,A,t,i)=>{Vt(e,(YtA<<1)+(i?1:0),3),eiA(e,A,t,!0)},oiA=e=>{Vt(e,E_<<1,3),tn(e,jy,Dn),ZtA(e)},siA=(e,A,t,i)=>{let n,r,o=0;e.level>0?(e.strm.data_type===OtA&&(e.strm.data_type=niA(e)),Kd(e,e.l_desc),Kd(e,e.d_desc),o=tiA(e),n=e.opt_len+3+7>>>3,r=e.static_len+3+7>>>3,r<=n&&(n=r)):n=r=t+5,t+4<=n&&A!==-1?x_(e,A,t,i):e.strategy===JtA||r===n?(Vt(e,(E_<<1)+(i?1:0),3),o1(e,Dn,pI)):(Vt(e,(KtA<<1)+(i?1:0),3),iiA(e,e.l_desc.max_code+1,e.d_desc.max_code+1,o+1),o1(e,e.dyn_ltree,e.dyn_dtree)),D_(e),i&&R_(e)},aiA=(e,A,t)=>(e.pending_buf[e.d_buf+e.last_lit*2]=A>>>8&255,e.pending_buf[e.d_buf+e.last_lit*2+1]=A&255,e.pending_buf[e.l_buf+e.last_lit]=t&255,e.last_lit++,A===0?e.dyn_ltree[t*2]++:(e.matches++,A--,e.dyn_ltree[(sl[t]+Wl+1)*2]++,e.dyn_dtree[w_(A)*2]++),e.last_lit===e.lit_bufsize-1);var giA=riA,IiA=x_,liA=siA,ciA=aiA,CiA=oiA,BiA={_tr_init:giA,_tr_stored_block:IiA,_tr_flush_block:liA,_tr_tally:ciA,_tr_align:CiA};const EiA=(e,A,t,i)=>{let n=e&65535|0,r=e>>>16&65535|0,o=0;for(;t!==0;){o=t>2e3?2e3:t,t-=o;do n=n+A[i++]|0,r=r+n|0;while(--o);n%=65521,r%=65521}return n|r<<16|0};var gl=EiA;const uiA=()=>{let e,A=[];for(var t=0;t<256;t++){e=t;for(var i=0;i<8;i++)e=e&1?3988292384^e>>>1:e>>>1;A[t]=e}return A},hiA=new Uint32Array(uiA()),fiA=(e,A,t,i)=>{const n=hiA,r=i+t;e^=-1;for(let o=i;o>>8^n[(e^A[o])&255];return e^-1};var st=fiA,Oo={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"},as={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8};const{_tr_init:QiA,_tr_stored_block:diA,_tr_flush_block:piA,_tr_tally:br,_tr_align:yiA}=BiA,{Z_NO_FLUSH:gs,Z_PARTIAL_FLUSH:miA,Z_FULL_FLUSH:wiA,Z_FINISH:Gr,Z_BLOCK:I1,Z_OK:nn,Z_STREAM_END:l1,Z_STREAM_ERROR:hi,Z_DATA_ERROR:viA,Z_BUF_ERROR:mf,Z_DEFAULT_COMPRESSION:SiA,Z_FILTERED:DiA,Z_HUFFMAN_ONLY:nC,Z_RLE:RiA,Z_FIXED:xiA,Z_DEFAULT_STRATEGY:FiA,Z_UNKNOWN:NiA,Z_DEFLATED:Bu}=as,LiA=9,biA=15,GiA=8,_iA=29,MiA=256,Vd=MiA+1+_iA,kiA=30,TiA=19,UiA=2*Vd+1,PiA=15,ge=3,dr=258,Mi=dr+ge+1,HiA=32,Eu=42,Wd=69,KC=73,VC=91,WC=103,wo=113,Vg=666,et=1,zl=2,Yo=3,za=4,qiA=3,pr=(e,A)=>(e.msg=Oo[A],A),c1=e=>(e<<1)-(e>4?9:0),Br=e=>{let A=e.length;for(;--A>=0;)e[A]=0};let JiA=(e,A,t)=>(A<{const A=e.state;let t=A.pending;t>e.avail_out&&(t=e.avail_out),t!==0&&(e.output.set(A.pending_buf.subarray(A.pending_out,A.pending_out+t),e.next_out),e.next_out+=t,A.pending_out+=t,e.total_out+=t,e.avail_out-=t,A.pending-=t,A.pending===0&&(A.pending_out=0))},dt=(e,A)=>{piA(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,A),e.block_start=e.strstart,lr(e.strm)},Ce=(e,A)=>{e.pending_buf[e.pending++]=A},Ng=(e,A)=>{e.pending_buf[e.pending++]=A>>>8&255,e.pending_buf[e.pending++]=A&255},OiA=(e,A,t,i)=>{let n=e.avail_in;return n>i&&(n=i),n===0?0:(e.avail_in-=n,A.set(e.input.subarray(e.next_in,e.next_in+n),t),e.state.wrap===1?e.adler=gl(e.adler,A,n,t):e.state.wrap===2&&(e.adler=st(e.adler,A,n,t)),e.next_in+=n,e.total_in+=n,n)},F_=(e,A)=>{let t=e.max_chain_length,i=e.strstart,n,r,o=e.prev_length,s=e.nice_match;const a=e.strstart>e.w_size-Mi?e.strstart-(e.w_size-Mi):0,g=e.window,I=e.w_mask,l=e.prev,c=e.strstart+dr;let C=g[i+o-1],B=g[i+o];e.prev_length>=e.good_match&&(t>>=2),s>e.lookahead&&(s=e.lookahead);do if(n=A,!(g[n+o]!==B||g[n+o-1]!==C||g[n]!==g[i]||g[++n]!==g[i+1])){i+=2,n++;do;while(g[++i]===g[++n]&&g[++i]===g[++n]&&g[++i]===g[++n]&&g[++i]===g[++n]&&g[++i]===g[++n]&&g[++i]===g[++n]&&g[++i]===g[++n]&&g[++i]===g[++n]&&io){if(e.match_start=A,o=r,r>=s)break;C=g[i+o-1],B=g[i+o]}}while((A=l[A&I])>a&&--t!==0);return o<=e.lookahead?o:e.lookahead},Ko=e=>{const A=e.w_size;let t,i,n,r,o;do{if(r=e.window_size-e.lookahead-e.strstart,e.strstart>=A+(A-Mi)){e.window.set(e.window.subarray(A,A+A),0),e.match_start-=A,e.strstart-=A,e.block_start-=A,i=e.hash_size,t=i;do n=e.head[--t],e.head[t]=n>=A?n-A:0;while(--i);i=A,t=i;do n=e.prev[--t],e.prev[t]=n>=A?n-A:0;while(--i);r+=A}if(e.strm.avail_in===0)break;if(i=OiA(e.strm,e.window,e.strstart+e.lookahead,r),e.lookahead+=i,e.lookahead+e.insert>=ge)for(o=e.strstart-e.insert,e.ins_h=e.window[o],e.ins_h=_r(e,e.ins_h,e.window[o+1]);e.insert&&(e.ins_h=_r(e,e.ins_h,e.window[o+ge-1]),e.prev[o&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=o,o++,e.insert--,!(e.lookahead+e.insert{let t=65535;for(t>e.pending_buf_size-5&&(t=e.pending_buf_size-5);;){if(e.lookahead<=1){if(Ko(e),e.lookahead===0&&A===gs)return et;if(e.lookahead===0)break}e.strstart+=e.lookahead,e.lookahead=0;const i=e.block_start+t;if((e.strstart===0||e.strstart>=i)&&(e.lookahead=e.strstart-i,e.strstart=i,dt(e,!1),e.strm.avail_out===0)||e.strstart-e.block_start>=e.w_size-Mi&&(dt(e,!1),e.strm.avail_out===0))return et}return e.insert=0,A===Gr?(dt(e,!0),e.strm.avail_out===0?Yo:za):(e.strstart>e.block_start&&(dt(e,!1),e.strm.avail_out===0),et)},wf=(e,A)=>{let t,i;for(;;){if(e.lookahead=ge&&(e.ins_h=_r(e,e.ins_h,e.window[e.strstart+ge-1]),t=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),t!==0&&e.strstart-t<=e.w_size-Mi&&(e.match_length=F_(e,t)),e.match_length>=ge)if(i=br(e,e.strstart-e.match_start,e.match_length-ge),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=ge){e.match_length--;do e.strstart++,e.ins_h=_r(e,e.ins_h,e.window[e.strstart+ge-1]),t=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart;while(--e.match_length!==0);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=_r(e,e.ins_h,e.window[e.strstart+1]);else i=br(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(i&&(dt(e,!1),e.strm.avail_out===0))return et}return e.insert=e.strstart{let t,i,n;for(;;){if(e.lookahead=ge&&(e.ins_h=_r(e,e.ins_h,e.window[e.strstart+ge-1]),t=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=ge-1,t!==0&&e.prev_length4096)&&(e.match_length=ge-1)),e.prev_length>=ge&&e.match_length<=e.prev_length){n=e.strstart+e.lookahead-ge,i=br(e,e.strstart-1-e.prev_match,e.prev_length-ge),e.lookahead-=e.prev_length-1,e.prev_length-=2;do++e.strstart<=n&&(e.ins_h=_r(e,e.ins_h,e.window[e.strstart+ge-1]),t=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart);while(--e.prev_length!==0);if(e.match_available=0,e.match_length=ge-1,e.strstart++,i&&(dt(e,!1),e.strm.avail_out===0))return et}else if(e.match_available){if(i=br(e,0,e.window[e.strstart-1]),i&&dt(e,!1),e.strstart++,e.lookahead--,e.strm.avail_out===0)return et}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(i=br(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart{let t,i,n,r;const o=e.window;for(;;){if(e.lookahead<=dr){if(Ko(e),e.lookahead<=dr&&A===gs)return et;if(e.lookahead===0)break}if(e.match_length=0,e.lookahead>=ge&&e.strstart>0&&(n=e.strstart-1,i=o[n],i===o[++n]&&i===o[++n]&&i===o[++n])){r=e.strstart+dr;do;while(i===o[++n]&&i===o[++n]&&i===o[++n]&&i===o[++n]&&i===o[++n]&&i===o[++n]&&i===o[++n]&&i===o[++n]&&ne.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=ge?(t=br(e,1,e.match_length-ge),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(t=br(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),t&&(dt(e,!1),e.strm.avail_out===0))return et}return e.insert=0,A===Gr?(dt(e,!0),e.strm.avail_out===0?Yo:za):e.last_lit&&(dt(e,!1),e.strm.avail_out===0)?et:zl},ViA=(e,A)=>{let t;for(;;){if(e.lookahead===0&&(Ko(e),e.lookahead===0)){if(A===gs)return et;break}if(e.match_length=0,t=br(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,t&&(dt(e,!1),e.strm.avail_out===0))return et}return e.insert=0,A===Gr?(dt(e,!0),e.strm.avail_out===0?Yo:za):e.last_lit&&(dt(e,!1),e.strm.avail_out===0)?et:zl};function ji(e,A,t,i,n){this.good_length=e,this.max_lazy=A,this.nice_length=t,this.max_chain=i,this.func=n}const Wg=[new ji(0,0,0,0,YiA),new ji(4,4,8,4,wf),new ji(4,5,16,8,wf),new ji(4,6,32,32,wf),new ji(4,4,16,16,ms),new ji(8,16,32,32,ms),new ji(8,16,128,128,ms),new ji(8,32,128,256,ms),new ji(32,128,258,1024,ms),new ji(32,258,258,4096,ms)],WiA=e=>{e.window_size=2*e.w_size,Br(e.head),e.max_lazy_match=Wg[e.level].max_lazy,e.good_match=Wg[e.level].good_length,e.nice_match=Wg[e.level].nice_length,e.max_chain_length=Wg[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=ge-1,e.match_available=0,e.ins_h=0};function ziA(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=Bu,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(UiA*2),this.dyn_dtree=new Uint16Array((2*kiA+1)*2),this.bl_tree=new Uint16Array((2*TiA+1)*2),Br(this.dyn_ltree),Br(this.dyn_dtree),Br(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(PiA+1),this.heap=new Uint16Array(2*Vd+1),Br(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(2*Vd+1),Br(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}const N_=e=>{if(!e||!e.state)return pr(e,hi);e.total_in=e.total_out=0,e.data_type=NiA;const A=e.state;return A.pending=0,A.pending_out=0,A.wrap<0&&(A.wrap=-A.wrap),A.status=A.wrap?Eu:wo,e.adler=A.wrap===2?0:1,A.last_flush=gs,QiA(A),nn},L_=e=>{const A=N_(e);return A===nn&&WiA(e.state),A},jiA=(e,A)=>!e||!e.state||e.state.wrap!==2?hi:(e.state.gzhead=A,nn),b_=(e,A,t,i,n,r)=>{if(!e)return hi;let o=1;if(A===SiA&&(A=6),i<0?(o=0,i=-i):i>15&&(o=2,i-=16),n<1||n>LiA||t!==Bu||i<8||i>15||A<0||A>9||r<0||r>xiA)return pr(e,hi);i===8&&(i=9);const s=new ziA;return e.state=s,s.strm=e,s.wrap=o,s.gzhead=null,s.w_bits=i,s.w_size=1<b_(e,A,Bu,biA,GiA,FiA),ZiA=(e,A)=>{let t,i;if(!e||!e.state||A>I1||A<0)return e?pr(e,hi):hi;const n=e.state;if(!e.output||!e.input&&e.avail_in!==0||n.status===Vg&&A!==Gr)return pr(e,e.avail_out===0?mf:hi);n.strm=e;const r=n.last_flush;if(n.last_flush=A,n.status===Eu)if(n.wrap===2)e.adler=0,Ce(n,31),Ce(n,139),Ce(n,8),n.gzhead?(Ce(n,(n.gzhead.text?1:0)+(n.gzhead.hcrc?2:0)+(n.gzhead.extra?4:0)+(n.gzhead.name?8:0)+(n.gzhead.comment?16:0)),Ce(n,n.gzhead.time&255),Ce(n,n.gzhead.time>>8&255),Ce(n,n.gzhead.time>>16&255),Ce(n,n.gzhead.time>>24&255),Ce(n,n.level===9?2:n.strategy>=nC||n.level<2?4:0),Ce(n,n.gzhead.os&255),n.gzhead.extra&&n.gzhead.extra.length&&(Ce(n,n.gzhead.extra.length&255),Ce(n,n.gzhead.extra.length>>8&255)),n.gzhead.hcrc&&(e.adler=st(e.adler,n.pending_buf,n.pending,0)),n.gzindex=0,n.status=Wd):(Ce(n,0),Ce(n,0),Ce(n,0),Ce(n,0),Ce(n,0),Ce(n,n.level===9?2:n.strategy>=nC||n.level<2?4:0),Ce(n,qiA),n.status=wo);else{let o=Bu+(n.w_bits-8<<4)<<8,s=-1;n.strategy>=nC||n.level<2?s=0:n.level<6?s=1:n.level===6?s=2:s=3,o|=s<<6,n.strstart!==0&&(o|=HiA),o+=31-o%31,n.status=wo,Ng(n,o),n.strstart!==0&&(Ng(n,e.adler>>>16),Ng(n,e.adler&65535)),e.adler=1}if(n.status===Wd)if(n.gzhead.extra){for(t=n.pending;n.gzindex<(n.gzhead.extra.length&65535)&&!(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>t&&(e.adler=st(e.adler,n.pending_buf,n.pending-t,t)),lr(e),t=n.pending,n.pending===n.pending_buf_size));)Ce(n,n.gzhead.extra[n.gzindex]&255),n.gzindex++;n.gzhead.hcrc&&n.pending>t&&(e.adler=st(e.adler,n.pending_buf,n.pending-t,t)),n.gzindex===n.gzhead.extra.length&&(n.gzindex=0,n.status=KC)}else n.status=KC;if(n.status===KC)if(n.gzhead.name){t=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>t&&(e.adler=st(e.adler,n.pending_buf,n.pending-t,t)),lr(e),t=n.pending,n.pending===n.pending_buf_size)){i=1;break}n.gzindext&&(e.adler=st(e.adler,n.pending_buf,n.pending-t,t)),i===0&&(n.gzindex=0,n.status=VC)}else n.status=VC;if(n.status===VC)if(n.gzhead.comment){t=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>t&&(e.adler=st(e.adler,n.pending_buf,n.pending-t,t)),lr(e),t=n.pending,n.pending===n.pending_buf_size)){i=1;break}n.gzindext&&(e.adler=st(e.adler,n.pending_buf,n.pending-t,t)),i===0&&(n.status=WC)}else n.status=WC;if(n.status===WC&&(n.gzhead.hcrc?(n.pending+2>n.pending_buf_size&&lr(e),n.pending+2<=n.pending_buf_size&&(Ce(n,e.adler&255),Ce(n,e.adler>>8&255),e.adler=0,n.status=wo)):n.status=wo),n.pending!==0){if(lr(e),e.avail_out===0)return n.last_flush=-1,nn}else if(e.avail_in===0&&c1(A)<=c1(r)&&A!==Gr)return pr(e,mf);if(n.status===Vg&&e.avail_in!==0)return pr(e,mf);if(e.avail_in!==0||n.lookahead!==0||A!==gs&&n.status!==Vg){let o=n.strategy===nC?ViA(n,A):n.strategy===RiA?KiA(n,A):Wg[n.level].func(n,A);if((o===Yo||o===za)&&(n.status=Vg),o===et||o===Yo)return e.avail_out===0&&(n.last_flush=-1),nn;if(o===zl&&(A===miA?yiA(n):A!==I1&&(diA(n,0,0,!1),A===wiA&&(Br(n.head),n.lookahead===0&&(n.strstart=0,n.block_start=0,n.insert=0))),lr(e),e.avail_out===0))return n.last_flush=-1,nn}return A!==Gr?nn:n.wrap<=0?l1:(n.wrap===2?(Ce(n,e.adler&255),Ce(n,e.adler>>8&255),Ce(n,e.adler>>16&255),Ce(n,e.adler>>24&255),Ce(n,e.total_in&255),Ce(n,e.total_in>>8&255),Ce(n,e.total_in>>16&255),Ce(n,e.total_in>>24&255)):(Ng(n,e.adler>>>16),Ng(n,e.adler&65535)),lr(e),n.wrap>0&&(n.wrap=-n.wrap),n.pending!==0?nn:l1)},$iA=e=>{if(!e||!e.state)return hi;const A=e.state.status;return A!==Eu&&A!==Wd&&A!==KC&&A!==VC&&A!==WC&&A!==wo&&A!==Vg?pr(e,hi):(e.state=null,A===wo?pr(e,viA):nn)},AnA=(e,A)=>{let t=A.length;if(!e||!e.state)return hi;const i=e.state,n=i.wrap;if(n===2||n===1&&i.status!==Eu||i.lookahead)return hi;if(n===1&&(e.adler=gl(e.adler,A,t,0)),i.wrap=0,t>=i.w_size){n===0&&(Br(i.head),i.strstart=0,i.block_start=0,i.insert=0);let a=new Uint8Array(i.w_size);a.set(A.subarray(t-i.w_size,t),0),A=a,t=i.w_size}const r=e.avail_in,o=e.next_in,s=e.input;for(e.avail_in=t,e.next_in=0,e.input=A,Ko(i);i.lookahead>=ge;){let a=i.strstart,g=i.lookahead-(ge-1);do i.ins_h=_r(i,i.ins_h,i.window[a+ge-1]),i.prev[a&i.w_mask]=i.head[i.ins_h],i.head[i.ins_h]=a,a++;while(--g);i.strstart=a,i.lookahead=ge-1,Ko(i)}return i.strstart+=i.lookahead,i.block_start=i.strstart,i.insert=i.lookahead,i.lookahead=0,i.match_length=i.prev_length=ge-1,i.match_available=0,e.next_in=o,e.input=s,e.avail_in=r,i.wrap=n,nn};var enA=XiA,tnA=b_,inA=L_,nnA=N_,rnA=jiA,onA=ZiA,snA=$iA,anA=AnA,gnA="pako deflate (from Nodeca project)",yI={deflateInit:enA,deflateInit2:tnA,deflateReset:inA,deflateResetKeep:nnA,deflateSetHeader:rnA,deflate:onA,deflateEnd:snA,deflateSetDictionary:anA,deflateInfo:gnA};const InA=(e,A)=>Object.prototype.hasOwnProperty.call(e,A);var lnA=function(e){const A=Array.prototype.slice.call(arguments,1);for(;A.length;){const t=A.shift();if(!!t){if(typeof t!="object")throw new TypeError(t+"must be non-object");for(const i in t)InA(t,i)&&(e[i]=t[i])}}return e},cnA=e=>{let A=0;for(let i=0,n=e.length;i=252?6:e>=248?5:e>=240?4:e>=224?3:e>=192?2:1;Il[254]=Il[254]=1;var CnA=e=>{let A,t,i,n,r,o=e.length,s=0;for(n=0;n>>6,A[r++]=128|t&63):t<65536?(A[r++]=224|t>>>12,A[r++]=128|t>>>6&63,A[r++]=128|t&63):(A[r++]=240|t>>>18,A[r++]=128|t>>>12&63,A[r++]=128|t>>>6&63,A[r++]=128|t&63);return A};const BnA=(e,A)=>{if(A<65534&&e.subarray&&G_)return String.fromCharCode.apply(null,e.length===A?e:e.subarray(0,A));let t="";for(let i=0;i{let t,i;const n=A||e.length,r=new Array(n*2);for(i=0,t=0;t4){r[i++]=65533,t+=s-1;continue}for(o&=s===2?31:s===3?15:7;s>1&&t1){r[i++]=65533;continue}o<65536?r[i++]=o:(o-=65536,r[i++]=55296|o>>10&1023,r[i++]=56320|o&1023)}return BnA(r,i)},unA=(e,A)=>{A=A||e.length,A>e.length&&(A=e.length);let t=A-1;for(;t>=0&&(e[t]&192)===128;)t--;return t<0||t===0?A:t+Il[e[t]]>A?t:A},ll={string2buf:CnA,buf2string:EnA,utf8border:unA};function hnA(){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}var __=hnA;const M_=Object.prototype.toString,{Z_NO_FLUSH:fnA,Z_SYNC_FLUSH:QnA,Z_FULL_FLUSH:dnA,Z_FINISH:pnA,Z_OK:$B,Z_STREAM_END:ynA,Z_DEFAULT_COMPRESSION:mnA,Z_DEFAULT_STRATEGY:wnA,Z_DEFLATED:vnA}=as;function jl(e){this.options=uu.assign({level:mnA,method:vnA,chunkSize:16384,windowBits:15,memLevel:8,strategy:wnA},e||{});let A=this.options;A.raw&&A.windowBits>0?A.windowBits=-A.windowBits:A.gzip&&A.windowBits>0&&A.windowBits<16&&(A.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new __,this.strm.avail_out=0;let t=yI.deflateInit2(this.strm,A.level,A.method,A.windowBits,A.memLevel,A.strategy);if(t!==$B)throw new Error(Oo[t]);if(A.header&&yI.deflateSetHeader(this.strm,A.header),A.dictionary){let i;if(typeof A.dictionary=="string"?i=ll.string2buf(A.dictionary):M_.call(A.dictionary)==="[object ArrayBuffer]"?i=new Uint8Array(A.dictionary):i=A.dictionary,t=yI.deflateSetDictionary(this.strm,i),t!==$B)throw new Error(Oo[t]);this._dict_set=!0}}jl.prototype.push=function(e,A){const t=this.strm,i=this.options.chunkSize;let n,r;if(this.ended)return!1;for(A===~~A?r=A:r=A===!0?pnA:fnA,typeof e=="string"?t.input=ll.string2buf(e):M_.call(e)==="[object ArrayBuffer]"?t.input=new Uint8Array(e):t.input=e,t.next_in=0,t.avail_in=t.input.length;;){if(t.avail_out===0&&(t.output=new Uint8Array(i),t.next_out=0,t.avail_out=i),(r===QnA||r===dnA)&&t.avail_out<=6){this.onData(t.output.subarray(0,t.next_out)),t.avail_out=0;continue}if(n=yI.deflate(t,r),n===ynA)return t.next_out>0&&this.onData(t.output.subarray(0,t.next_out)),n=yI.deflateEnd(this.strm),this.onEnd(n),this.ended=!0,n===$B;if(t.avail_out===0){this.onData(t.output);continue}if(r>0&&t.next_out>0){this.onData(t.output.subarray(0,t.next_out)),t.avail_out=0;continue}if(t.avail_in===0)break}return!0};jl.prototype.onData=function(e){this.chunks.push(e)};jl.prototype.onEnd=function(e){e===$B&&(this.result=uu.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function Zy(e,A){const t=new jl(A);if(t.push(e,!0),t.err)throw t.msg||Oo[t.err];return t.result}function SnA(e,A){return A=A||{},A.raw=!0,Zy(e,A)}function DnA(e,A){return A=A||{},A.gzip=!0,Zy(e,A)}var RnA=jl,xnA=Zy,FnA=SnA,NnA=DnA,LnA=as,bnA={Deflate:RnA,deflate:xnA,deflateRaw:FnA,gzip:NnA,constants:LnA};const rC=30,GnA=12;var _nA=function(A,t){let i,n,r,o,s,a,g,I,l,c,C,B,u,E,h,f,Q,d,w,m,v,x,D,F;const N=A.state;i=A.next_in,D=A.input,n=i+(A.avail_in-5),r=A.next_out,F=A.output,o=r-(t-A.avail_out),s=r+(A.avail_out-257),a=N.dmax,g=N.wsize,I=N.whave,l=N.wnext,c=N.window,C=N.hold,B=N.bits,u=N.lencode,E=N.distcode,h=(1<>>24,C>>>=d,B-=d,d=Q>>>16&255,d===0)F[r++]=Q&65535;else if(d&16){w=Q&65535,d&=15,d&&(B>>=d,B-=d),B<15&&(C+=D[i++]<>>24,C>>>=d,B-=d,d=Q>>>16&255,d&16){if(m=Q&65535,d&=15,Ba){A.msg="invalid distance too far back",N.mode=rC;break A}if(C>>>=d,B-=d,d=r-o,m>d){if(d=m-d,d>I&&N.sane){A.msg="invalid distance too far back",N.mode=rC;break A}if(v=0,x=c,l===0){if(v+=g-d,d2;)F[r++]=x[v++],F[r++]=x[v++],F[r++]=x[v++],w-=3;w&&(F[r++]=x[v++],w>1&&(F[r++]=x[v++]))}else{v=r-m;do F[r++]=F[v++],F[r++]=F[v++],F[r++]=F[v++],w-=3;while(w>2);w&&(F[r++]=F[v++],w>1&&(F[r++]=F[v++]))}}else if((d&64)===0){Q=E[(Q&65535)+(C&(1<>3,i-=w,B-=w<<3,C&=(1<{const a=s.bits;let g=0,I=0,l=0,c=0,C=0,B=0,u=0,E=0,h=0,f=0,Q,d,w,m,v,x=null,D=0,F;const N=new Uint16Array(ws+1),M=new Uint16Array(ws+1);let U=null,P=0,W,J,Z;for(g=0;g<=ws;g++)N[g]=0;for(I=0;I=1&&N[c]===0;c--);if(C>c&&(C=c),c===0)return n[r++]=1<<24|64<<16|0,n[r++]=1<<24|64<<16|0,s.bits=1,0;for(l=1;l0&&(e===E1||c!==1))return-1;for(M[1]=0,g=1;gC1||e===u1&&h>B1)return 1;for(;;){W=g-u,o[I]F?(J=U[P+o[I]],Z=x[D+o[I]]):(J=32+64,Z=0),Q=1<>u)+d]=W<<24|J<<16|Z|0;while(d!==0);for(Q=1<>=1;if(Q!==0?(f&=Q-1,f+=Q):f=0,I++,--N[g]===0){if(g===c)break;g=A[t+o[I]]}if(g>C&&(f&m)!==w){for(u===0&&(u=C),v+=l,B=g-u,E=1<C1||e===u1&&h>B1)return 1;w=f&m,n[w]=C<<24|B<<16|v-r|0}}return f!==0&&(n[v+f]=g-u<<24|64<<16|0),s.bits=C,0};var mI=PnA;const HnA=0,k_=1,T_=2,{Z_FINISH:h1,Z_BLOCK:qnA,Z_TREES:oC,Z_OK:Vo,Z_STREAM_END:JnA,Z_NEED_DICT:OnA,Z_STREAM_ERROR:pi,Z_DATA_ERROR:U_,Z_MEM_ERROR:P_,Z_BUF_ERROR:YnA,Z_DEFLATED:f1}=as,H_=1,Q1=2,d1=3,p1=4,y1=5,m1=6,w1=7,v1=8,S1=9,D1=10,AE=11,wn=12,Sf=13,R1=14,Df=15,x1=16,F1=17,N1=18,L1=19,sC=20,aC=21,b1=22,G1=23,_1=24,M1=25,k1=26,Rf=27,T1=28,U1=29,He=30,q_=31,KnA=32,VnA=852,WnA=592,znA=15,jnA=znA,P1=e=>(e>>>24&255)+(e>>>8&65280)+((e&65280)<<8)+((e&255)<<24);function XnA(){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}const J_=e=>{if(!e||!e.state)return pi;const A=e.state;return e.total_in=e.total_out=A.total=0,e.msg="",A.wrap&&(e.adler=A.wrap&1),A.mode=H_,A.last=0,A.havedict=0,A.dmax=32768,A.head=null,A.hold=0,A.bits=0,A.lencode=A.lendyn=new Int32Array(VnA),A.distcode=A.distdyn=new Int32Array(WnA),A.sane=1,A.back=-1,Vo},O_=e=>{if(!e||!e.state)return pi;const A=e.state;return A.wsize=0,A.whave=0,A.wnext=0,J_(e)},Y_=(e,A)=>{let t;if(!e||!e.state)return pi;const i=e.state;return A<0?(t=0,A=-A):(t=(A>>4)+1,A<48&&(A&=15)),A&&(A<8||A>15)?pi:(i.window!==null&&i.wbits!==A&&(i.window=null),i.wrap=t,i.wbits=A,O_(e))},K_=(e,A)=>{if(!e)return pi;const t=new XnA;e.state=t,t.window=null;const i=Y_(e,A);return i!==Vo&&(e.state=null),i},ZnA=e=>K_(e,jnA);let H1=!0,xf,Ff;const $nA=e=>{if(H1){xf=new Int32Array(512),Ff=new Int32Array(32);let A=0;for(;A<144;)e.lens[A++]=8;for(;A<256;)e.lens[A++]=9;for(;A<280;)e.lens[A++]=7;for(;A<288;)e.lens[A++]=8;for(mI(k_,e.lens,0,288,xf,0,e.work,{bits:9}),A=0;A<32;)e.lens[A++]=5;mI(T_,e.lens,0,32,Ff,0,e.work,{bits:5}),H1=!1}e.lencode=xf,e.lenbits=9,e.distcode=Ff,e.distbits=5},V_=(e,A,t,i)=>{let n;const r=e.state;return r.window===null&&(r.wsize=1<=r.wsize?(r.window.set(A.subarray(t-r.wsize,t),0),r.wnext=0,r.whave=r.wsize):(n=r.wsize-r.wnext,n>i&&(n=i),r.window.set(A.subarray(t-i,t-i+n),r.wnext),i-=n,i?(r.window.set(A.subarray(t-i,t),0),r.wnext=i,r.whave=r.wsize):(r.wnext+=n,r.wnext===r.wsize&&(r.wnext=0),r.whave{let t,i,n,r,o,s,a,g,I,l,c,C,B,u,E=0,h,f,Q,d,w,m,v,x;const D=new Uint8Array(4);let F,N;const M=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(!e||!e.state||!e.output||!e.input&&e.avail_in!==0)return pi;t=e.state,t.mode===wn&&(t.mode=Sf),o=e.next_out,n=e.output,a=e.avail_out,r=e.next_in,i=e.input,s=e.avail_in,g=t.hold,I=t.bits,l=s,c=a,x=Vo;A:for(;;)switch(t.mode){case H_:if(t.wrap===0){t.mode=Sf;break}for(;I<16;){if(s===0)break A;s--,g+=i[r++]<>>8&255,t.check=st(t.check,D,2,0),g=0,I=0,t.mode=Q1;break}if(t.flags=0,t.head&&(t.head.done=!1),!(t.wrap&1)||(((g&255)<<8)+(g>>8))%31){e.msg="incorrect header check",t.mode=He;break}if((g&15)!==f1){e.msg="unknown compression method",t.mode=He;break}if(g>>>=4,I-=4,v=(g&15)+8,t.wbits===0)t.wbits=v;else if(v>t.wbits){e.msg="invalid window size",t.mode=He;break}t.dmax=1<>8&1),t.flags&512&&(D[0]=g&255,D[1]=g>>>8&255,t.check=st(t.check,D,2,0)),g=0,I=0,t.mode=d1;case d1:for(;I<32;){if(s===0)break A;s--,g+=i[r++]<>>8&255,D[2]=g>>>16&255,D[3]=g>>>24&255,t.check=st(t.check,D,4,0)),g=0,I=0,t.mode=p1;case p1:for(;I<16;){if(s===0)break A;s--,g+=i[r++]<>8),t.flags&512&&(D[0]=g&255,D[1]=g>>>8&255,t.check=st(t.check,D,2,0)),g=0,I=0,t.mode=y1;case y1:if(t.flags&1024){for(;I<16;){if(s===0)break A;s--,g+=i[r++]<>>8&255,t.check=st(t.check,D,2,0)),g=0,I=0}else t.head&&(t.head.extra=null);t.mode=m1;case m1:if(t.flags&1024&&(C=t.length,C>s&&(C=s),C&&(t.head&&(v=t.head.extra_len-t.length,t.head.extra||(t.head.extra=new Uint8Array(t.head.extra_len)),t.head.extra.set(i.subarray(r,r+C),v)),t.flags&512&&(t.check=st(t.check,i,C,r)),s-=C,r+=C,t.length-=C),t.length))break A;t.length=0,t.mode=w1;case w1:if(t.flags&2048){if(s===0)break A;C=0;do v=i[r+C++],t.head&&v&&t.length<65536&&(t.head.name+=String.fromCharCode(v));while(v&&C>9&1,t.head.done=!0),e.adler=t.check=0,t.mode=wn;break;case D1:for(;I<32;){if(s===0)break A;s--,g+=i[r++]<>>=I&7,I-=I&7,t.mode=Rf;break}for(;I<3;){if(s===0)break A;s--,g+=i[r++]<>>=1,I-=1,g&3){case 0:t.mode=R1;break;case 1:if($nA(t),t.mode=sC,A===oC){g>>>=2,I-=2;break A}break;case 2:t.mode=F1;break;case 3:e.msg="invalid block type",t.mode=He}g>>>=2,I-=2;break;case R1:for(g>>>=I&7,I-=I&7;I<32;){if(s===0)break A;s--,g+=i[r++]<>>16^65535)){e.msg="invalid stored block lengths",t.mode=He;break}if(t.length=g&65535,g=0,I=0,t.mode=Df,A===oC)break A;case Df:t.mode=x1;case x1:if(C=t.length,C){if(C>s&&(C=s),C>a&&(C=a),C===0)break A;n.set(i.subarray(r,r+C),o),s-=C,r+=C,a-=C,o+=C,t.length-=C;break}t.mode=wn;break;case F1:for(;I<14;){if(s===0)break A;s--,g+=i[r++]<>>=5,I-=5,t.ndist=(g&31)+1,g>>>=5,I-=5,t.ncode=(g&15)+4,g>>>=4,I-=4,t.nlen>286||t.ndist>30){e.msg="too many length or distance symbols",t.mode=He;break}t.have=0,t.mode=N1;case N1:for(;t.have>>=3,I-=3}for(;t.have<19;)t.lens[M[t.have++]]=0;if(t.lencode=t.lendyn,t.lenbits=7,F={bits:t.lenbits},x=mI(HnA,t.lens,0,19,t.lencode,0,t.work,F),t.lenbits=F.bits,x){e.msg="invalid code lengths set",t.mode=He;break}t.have=0,t.mode=L1;case L1:for(;t.have>>24,f=E>>>16&255,Q=E&65535,!(h<=I);){if(s===0)break A;s--,g+=i[r++]<>>=h,I-=h,t.lens[t.have++]=Q;else{if(Q===16){for(N=h+2;I>>=h,I-=h,t.have===0){e.msg="invalid bit length repeat",t.mode=He;break}v=t.lens[t.have-1],C=3+(g&3),g>>>=2,I-=2}else if(Q===17){for(N=h+3;I>>=h,I-=h,v=0,C=3+(g&7),g>>>=3,I-=3}else{for(N=h+7;I>>=h,I-=h,v=0,C=11+(g&127),g>>>=7,I-=7}if(t.have+C>t.nlen+t.ndist){e.msg="invalid bit length repeat",t.mode=He;break}for(;C--;)t.lens[t.have++]=v}}if(t.mode===He)break;if(t.lens[256]===0){e.msg="invalid code -- missing end-of-block",t.mode=He;break}if(t.lenbits=9,F={bits:t.lenbits},x=mI(k_,t.lens,0,t.nlen,t.lencode,0,t.work,F),t.lenbits=F.bits,x){e.msg="invalid literal/lengths set",t.mode=He;break}if(t.distbits=6,t.distcode=t.distdyn,F={bits:t.distbits},x=mI(T_,t.lens,t.nlen,t.ndist,t.distcode,0,t.work,F),t.distbits=F.bits,x){e.msg="invalid distances set",t.mode=He;break}if(t.mode=sC,A===oC)break A;case sC:t.mode=aC;case aC:if(s>=6&&a>=258){e.next_out=o,e.avail_out=a,e.next_in=r,e.avail_in=s,t.hold=g,t.bits=I,_nA(e,c),o=e.next_out,n=e.output,a=e.avail_out,r=e.next_in,i=e.input,s=e.avail_in,g=t.hold,I=t.bits,t.mode===wn&&(t.back=-1);break}for(t.back=0;E=t.lencode[g&(1<>>24,f=E>>>16&255,Q=E&65535,!(h<=I);){if(s===0)break A;s--,g+=i[r++]<>d)],h=E>>>24,f=E>>>16&255,Q=E&65535,!(d+h<=I);){if(s===0)break A;s--,g+=i[r++]<>>=d,I-=d,t.back+=d}if(g>>>=h,I-=h,t.back+=h,t.length=Q,f===0){t.mode=k1;break}if(f&32){t.back=-1,t.mode=wn;break}if(f&64){e.msg="invalid literal/length code",t.mode=He;break}t.extra=f&15,t.mode=b1;case b1:if(t.extra){for(N=t.extra;I>>=t.extra,I-=t.extra,t.back+=t.extra}t.was=t.length,t.mode=G1;case G1:for(;E=t.distcode[g&(1<>>24,f=E>>>16&255,Q=E&65535,!(h<=I);){if(s===0)break A;s--,g+=i[r++]<>d)],h=E>>>24,f=E>>>16&255,Q=E&65535,!(d+h<=I);){if(s===0)break A;s--,g+=i[r++]<>>=d,I-=d,t.back+=d}if(g>>>=h,I-=h,t.back+=h,f&64){e.msg="invalid distance code",t.mode=He;break}t.offset=Q,t.extra=f&15,t.mode=_1;case _1:if(t.extra){for(N=t.extra;I>>=t.extra,I-=t.extra,t.back+=t.extra}if(t.offset>t.dmax){e.msg="invalid distance too far back",t.mode=He;break}t.mode=M1;case M1:if(a===0)break A;if(C=c-a,t.offset>C){if(C=t.offset-C,C>t.whave&&t.sane){e.msg="invalid distance too far back",t.mode=He;break}C>t.wnext?(C-=t.wnext,B=t.wsize-C):B=t.wnext-C,C>t.length&&(C=t.length),u=t.window}else u=n,B=o-t.offset,C=t.length;C>a&&(C=a),a-=C,t.length-=C;do n[o++]=u[B++];while(--C);t.length===0&&(t.mode=aC);break;case k1:if(a===0)break A;n[o++]=t.length,a--,t.mode=aC;break;case Rf:if(t.wrap){for(;I<32;){if(s===0)break A;s--,g|=i[r++]<{if(!e||!e.state)return pi;let A=e.state;return A.window&&(A.window=null),e.state=null,Vo},trA=(e,A)=>{if(!e||!e.state)return pi;const t=e.state;return(t.wrap&2)===0?pi:(t.head=A,A.done=!1,Vo)},irA=(e,A)=>{const t=A.length;let i,n,r;return!e||!e.state||(i=e.state,i.wrap!==0&&i.mode!==AE)?pi:i.mode===AE&&(n=1,n=gl(n,A,t,0),n!==i.check)?U_:(r=V_(e,A,t,t),r?(i.mode=q_,P_):(i.havedict=1,Vo))};var nrA=O_,rrA=Y_,orA=J_,srA=ZnA,arA=K_,grA=ArA,IrA=erA,lrA=trA,crA=irA,CrA="pako inflate (from Nodeca project)",Rn={inflateReset:nrA,inflateReset2:rrA,inflateResetKeep:orA,inflateInit:srA,inflateInit2:arA,inflate:grA,inflateEnd:IrA,inflateGetHeader:lrA,inflateSetDictionary:crA,inflateInfo:CrA};function BrA(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}var ErA=BrA;const W_=Object.prototype.toString,{Z_NO_FLUSH:urA,Z_FINISH:hrA,Z_OK:cl,Z_STREAM_END:Nf,Z_NEED_DICT:Lf,Z_STREAM_ERROR:frA,Z_DATA_ERROR:q1,Z_MEM_ERROR:QrA}=as;function Xl(e){this.options=uu.assign({chunkSize:1024*64,windowBits:15,to:""},e||{});const 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&&!(e&&e.windowBits)&&(A.windowBits+=32),A.windowBits>15&&A.windowBits<48&&(A.windowBits&15)===0&&(A.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new __,this.strm.avail_out=0;let t=Rn.inflateInit2(this.strm,A.windowBits);if(t!==cl)throw new Error(Oo[t]);if(this.header=new ErA,Rn.inflateGetHeader(this.strm,this.header),A.dictionary&&(typeof A.dictionary=="string"?A.dictionary=ll.string2buf(A.dictionary):W_.call(A.dictionary)==="[object ArrayBuffer]"&&(A.dictionary=new Uint8Array(A.dictionary)),A.raw&&(t=Rn.inflateSetDictionary(this.strm,A.dictionary),t!==cl)))throw new Error(Oo[t])}Xl.prototype.push=function(e,A){const t=this.strm,i=this.options.chunkSize,n=this.options.dictionary;let r,o,s;if(this.ended)return!1;for(A===~~A?o=A:o=A===!0?hrA:urA,W_.call(e)==="[object ArrayBuffer]"?t.input=new Uint8Array(e):t.input=e,t.next_in=0,t.avail_in=t.input.length;;){for(t.avail_out===0&&(t.output=new Uint8Array(i),t.next_out=0,t.avail_out=i),r=Rn.inflate(t,o),r===Lf&&n&&(r=Rn.inflateSetDictionary(t,n),r===cl?r=Rn.inflate(t,o):r===q1&&(r=Lf));t.avail_in>0&&r===Nf&&t.state.wrap>0&&e[t.next_in]!==0;)Rn.inflateReset(t),r=Rn.inflate(t,o);switch(r){case frA:case q1:case Lf:case QrA:return this.onEnd(r),this.ended=!0,!1}if(s=t.avail_out,t.next_out&&(t.avail_out===0||r===Nf))if(this.options.to==="string"){let a=ll.utf8border(t.output,t.next_out),g=t.next_out-a,I=ll.buf2string(t.output,a);t.next_out=g,t.avail_out=i-g,g&&t.output.set(t.output.subarray(a,a+g),0),this.onData(I)}else this.onData(t.output.length===t.next_out?t.output:t.output.subarray(0,t.next_out));if(!(r===cl&&s===0)){if(r===Nf)return r=Rn.inflateEnd(this.strm),this.onEnd(r),this.ended=!0,!0;if(t.avail_in===0)break}}return!0};Xl.prototype.onData=function(e){this.chunks.push(e)};Xl.prototype.onEnd=function(e){e===cl&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=uu.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function $y(e,A){const t=new Xl(A);if(t.push(e),t.err)throw t.msg||Oo[t.err];return t.result}function drA(e,A){return A=A||{},A.raw=!0,$y(e,A)}var prA=Xl,yrA=$y,mrA=drA,wrA=$y,vrA=as,SrA={Inflate:prA,inflate:yrA,inflateRaw:mrA,ungzip:wrA,constants:vrA};const{Deflate:DrA,deflate:RrA,deflateRaw:xrA,gzip:FrA}=bnA,{Inflate:NrA,inflate:LrA,inflateRaw:brA,ungzip:GrA}=SrA;var _rA=DrA,MrA=RrA,krA=xrA,TrA=FrA,UrA=NrA,PrA=LrA,HrA=brA,qrA=GrA,JrA=as,eE={Deflate:_rA,deflate:MrA,deflateRaw:krA,gzip:TrA,Inflate:UrA,inflate:PrA,inflateRaw:HrA,ungzip:qrA,constants:JrA},gC;const OrA=(gC=class{constructor(e=1){if(e<0||e>9)throw new Error("Invalid gzip compression level, it should be between 0 and 9");this.level=e}static fromConfig({level:e}){return new gC(e)}encode(e){return eE.gzip(e,{level:this.level})}decode(e,A){const t=eE.ungzip(e);return A!==void 0?(A.set(t),A):t}},gC.codecId="gzip",gC);var J1=OrA,IC;const YrA=(IC=class{constructor(e=1){if(e<-1||e>9)throw new Error("Invalid zlib compression level, it should be between -1 and 9");this.level=e}static fromConfig({level:e}){return new IC(e)}encode(e){return eE.deflate(e,{level:this.level})}decode(e,A){const t=eE.inflate(e);return A!==void 0?(A.set(t),A):t}},IC.codecId="zlib",IC);var O1=YrA,KrA=function(){return typeof document!="undefined"&&document.currentScript&&document.currentScript.src,function(e){e=e||{};var A;A||(A=typeof e!="undefined"?e:{});var t,i;A.ready=new Promise(function(L,G){t=L,i=G});var n={},r;for(r in A)A.hasOwnProperty(r)&&(n[r]=A[r]);var o="./this.program",s=A.print||console.log.bind(console),a=A.printErr||console.warn.bind(console);for(r in n)n.hasOwnProperty(r)&&(A[r]=n[r]);n=null,A.thisProgram&&(o=A.thisProgram);var g;A.wasmBinary&&(g=A.wasmBinary),A.noExitRuntime&&A.noExitRuntime,typeof WebAssembly!="object"&&iA("no native wasm support detected");var I,l=!1,c=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0;function C(L,G,T){var V=G+T;for(T=G;L[T]&&!(T>=V);)++T;if(16X?V+=String.fromCharCode(X):(X-=65536,V+=String.fromCharCode(55296|X>>10,56320|X&1023))}}else V+=String.fromCharCode(X)}return V}function B(L,G,T){var V=x;if(0=tA){var dA=L.charCodeAt(++X);tA=65536+((tA&1023)<<10)|dA&1023}if(127>=tA){if(G>=T)break;V[G++]=tA}else{if(2047>=tA){if(G+1>=T)break;V[G++]=192|tA>>6}else{if(65535>=tA){if(G+2>=T)break;V[G++]=224|tA>>12}else{if(G+3>=T)break;V[G++]=240|tA>>18,V[G++]=128|tA>>12&63}V[G++]=128|tA>>6&63}V[G++]=128|tA&63}}V[G]=0}}var u=typeof TextDecoder!="undefined"?new TextDecoder("utf-16le"):void 0;function E(L,G){for(var T=L>>1,V=T+G/2;!(T>=V)&&F[T];)++T;if(T<<=1,32>1];if(X==0||T==G/2)return V;++T,V+=String.fromCharCode(X)}}function h(L,G,T){if(T===void 0&&(T=2147483647),2>T)return 0;T-=2;var V=G;T=T<2*L.length?T/2:L.length;for(var X=0;X>1]=L.charCodeAt(X),G+=2;return D[G>>1]=0,G-V}function f(L){return 2*L.length}function Q(L,G){for(var T=0,V="";!(T>=G/4);){var X=N[L+4*T>>2];if(X==0)break;++T,65536<=X?(X-=65536,V+=String.fromCharCode(55296|X>>10,56320|X&1023)):V+=String.fromCharCode(X)}return V}function d(L,G,T){if(T===void 0&&(T=2147483647),4>T)return 0;var V=G;T=V+T-4;for(var X=0;X=tA){var dA=L.charCodeAt(++X);tA=65536+((tA&1023)<<10)|dA&1023}if(N[G>>2]=tA,G+=4,G+4>T)break}return N[G>>2]=0,G-V}function w(L){for(var G=0,T=0;T=V&&++T,G+=4}return G}var m,v,x,D,F,N,M,U,P;function W(L){m=L,A.HEAP8=v=new Int8Array(L),A.HEAP16=D=new Int16Array(L),A.HEAP32=N=new Int32Array(L),A.HEAPU8=x=new Uint8Array(L),A.HEAPU16=F=new Uint16Array(L),A.HEAPU32=M=new Uint32Array(L),A.HEAPF32=U=new Float32Array(L),A.HEAPF64=P=new Float64Array(L)}var J=A.INITIAL_MEMORY||16777216;A.wasmMemory?I=A.wasmMemory:I=new WebAssembly.Memory({initial:J/65536,maximum:32768}),I&&(m=I.buffer),J=m.byteLength,W(m);var Z,z=[],O=[],Y=[],k=[];function q(){var L=A.preRun.shift();z.unshift(L)}var j=0,AA=null;A.preloadedImages={},A.preloadedAudios={};function iA(L){throw A.onAbort&&A.onAbort(L),a(L),l=!0,L=new WebAssembly.RuntimeError("abort("+L+"). Build with -s ASSERTIONS=1 for more info."),i(L),L}function gA(L){var G=BA;return String.prototype.startsWith?G.startsWith(L):G.indexOf(L)===0}function sA(){return gA("data:application/octet-stream;base64,")}var BA="blosc_codec.wasm";if(!sA()){var IA=BA;BA=A.locateFile?A.locateFile(IA,""):""+IA}function bA(){try{if(g)return new Uint8Array(g);throw"both async and sync fetching of the wasm failed"}catch(L){iA(L)}}function EA(L){for(;0>2]=G},this.X=function(G){N[this.N+0>>2]=G},this.Y=function(){N[this.N+4>>2]=0},this.W=function(){v[this.N+12>>0]=0},this.Z=function(){v[this.N+13>>0]=0},this.V=function(G,T){this.$(G),this.X(T),this.Y(),this.W(),this.Z()}}function TA(L){switch(L){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+L)}}var RA=void 0;function UA(L){for(var G="";x[L];)G+=RA[x[L++]];return G}var fA={},NA={},ZA={};function ne(L){if(L===void 0)return"_unknown";L=L.replace(/[^a-zA-Z0-9_]/g,"$");var G=L.charCodeAt(0);return 48<=G&&57>=G?"_"+L:L}function Ie(L,G){return L=ne(L),new Function("body","return function "+L+`() { "use strict"; return body.apply(this, arguments); }; `)(G)}function KA(L){var G=Error,T=Ie(L,function(V){this.name=L,this.message=V,V=Error(V).stack,V!==void 0&&(this.stack=this.toString()+` -`+V.replace(/^Error(:[^\n]*)?\n/,""))});return T.prototype=Object.create(G.prototype),T.prototype.constructor=T,T.prototype.toString=function(){return this.message===void 0?this.name:this.name+": "+this.message},T}var eA=void 0;function aA(L){throw new eA(L)}var FA=void 0;function re(L,G){function T(lA){if(lA=G(lA),lA.length!==V.length)throw new FA("Mismatched type converter count");for(var MA=0;MA>2])}function JA(L){if(L===null)return"null";var G=typeof L;return G==="object"||G==="array"||G==="function"?L.toString():""+L}function xA(L,G){switch(G){case 2:return function(T){return this.fromWireType(U[T>>2])};case 3:return function(T){return this.fromWireType(P[T>>3])};default:throw new TypeError("Unknown float type: "+L)}}function Be(L){var G=Function;if(!(G instanceof Function))throw new TypeError("new_ called with constructor type "+typeof G+" which is not a function");var T=Ie(G.name||"unknownFunctionName",function(){});return T.prototype=G.prototype,T=new T,L=G.apply(T,L),L instanceof Object?L:T}function ue(L){for(;L.length;){var G=L.pop();L.pop()(G)}}function PA(L,G){var T=A;if(T[L].L===void 0){var V=T[L];T[L]=function(){return T[L].L.hasOwnProperty(arguments.length)||aA("Function '"+G+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+T[L].L+")!"),T[L].L[arguments.length].apply(this,arguments)},T[L].L=[],T[L].L[V.S]=V}}function rA(L,G,T){A.hasOwnProperty(L)?((T===void 0||A[L].L!==void 0&&A[L].L[T]!==void 0)&&aA("Cannot register public name '"+L+"' twice"),PA(L,L),A.hasOwnProperty(T)&&aA("Cannot register multiple overloads of a function with the same number of arguments ("+T+")!"),A[L].L[T]=G):(A[L]=G,T!==void 0&&(A[L].ba=T))}function GA(L,G){for(var T=[],V=0;V>2)+V]);return T}function ve(L,G){0<=L.indexOf("j")||iA("Assertion failed: getDynCaller should only be called with i64 sigs");var T=[];return function(){T.length=arguments.length;for(var V=0;V>1]}:function(V){return F[V>>1]};case 2:return T?function(V){return N[V>>2]}:function(V){return M[V>>2]};default:throw new TypeError("Unknown integer type: "+L)}}var er={};function cs(){if(!fn){var L={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:o||"./this.program"},G;for(G in er)L[G]=er[G];var T=[];for(G in L)T.push(G+"="+L[G]);fn=T}return fn}for(var fn,og=[null,[],[]],Cs=Array(256),wA=0;256>wA;++wA)Cs[wA]=String.fromCharCode(wA);RA=Cs,eA=A.BindingError=KA("BindingError"),FA=A.InternalError=KA("InternalError"),A.count_emval_handles=function(){for(var L=0,G=5;G>tA])},M:null})},y:function(L,G){G=UA(G),VA(L,{name:G,fromWireType:function(T){var V=WA[T].value;return qA(T),V},toWireType:function(T,V){return xe(V)},argPackAdvance:8,readValueFromPointer:se,M:null})},h:function(L,G,T){T=TA(T),G=UA(G),VA(L,{name:G,fromWireType:function(V){return V},toWireType:function(V,X){if(typeof X!="number"&&typeof X!="boolean")throw new TypeError('Cannot convert "'+JA(X)+'" to '+this.name);return X},argPackAdvance:8,readValueFromPointer:xA(G,T),M:null})},e:function(L,G,T,V,X,tA){var dA=GA(G,T);L=UA(L),X=pe(V,X),rA(L,function(){Xe("Cannot call "+L+" due to unbound types",dA)},G-1),re(dA,function(lA){var MA=L,OA=L;lA=[lA[0],null].concat(lA.slice(1));var ae=X,ce=lA.length;2>ce&&aA("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var Ii=lA[1]!==null&&!1,Jt=!1,kA=1;kA>2])}function JA(L){if(L===null)return"null";var G=typeof L;return G==="object"||G==="array"||G==="function"?L.toString():""+L}function xA(L,G){switch(G){case 2:return function(T){return this.fromWireType(U[T>>2])};case 3:return function(T){return this.fromWireType(P[T>>3])};default:throw new TypeError("Unknown float type: "+L)}}function Be(L){var G=Function;if(!(G instanceof Function))throw new TypeError("new_ called with constructor type "+typeof G+" which is not a function");var T=Ie(G.name||"unknownFunctionName",function(){});return T.prototype=G.prototype,T=new T,L=G.apply(T,L),L instanceof Object?L:T}function ue(L){for(;L.length;){var G=L.pop();L.pop()(G)}}function PA(L,G){var T=A;if(T[L].L===void 0){var V=T[L];T[L]=function(){return T[L].L.hasOwnProperty(arguments.length)||aA("Function '"+G+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+T[L].L+")!"),T[L].L[arguments.length].apply(this,arguments)},T[L].L=[],T[L].L[V.S]=V}}function rA(L,G,T){A.hasOwnProperty(L)?((T===void 0||A[L].L!==void 0&&A[L].L[T]!==void 0)&&aA("Cannot register public name '"+L+"' twice"),PA(L,L),A.hasOwnProperty(T)&&aA("Cannot register multiple overloads of a function with the same number of arguments ("+T+")!"),A[L].L[T]=G):(A[L]=G,T!==void 0&&(A[L].ba=T))}function GA(L,G){for(var T=[],V=0;V>2)+V]);return T}function ve(L,G){0<=L.indexOf("j")||iA("Assertion failed: getDynCaller should only be called with i64 sigs");var T=[];return function(){T.length=arguments.length;for(var V=0;V>1]}:function(V){return F[V>>1]};case 2:return T?function(V){return N[V>>2]}:function(V){return M[V>>2]};default:throw new TypeError("Unknown integer type: "+L)}}var Ar={};function ls(){if(!fn){var L={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:o||"./this.program"},G;for(G in Ar)L[G]=Ar[G];var T=[];for(G in L)T.push(G+"="+L[G]);fn=T}return fn}for(var fn,rg=[null,[],[]],cs=Array(256),wA=0;256>wA;++wA)cs[wA]=String.fromCharCode(wA);RA=cs,eA=A.BindingError=KA("BindingError"),FA=A.InternalError=KA("InternalError"),A.count_emval_handles=function(){for(var L=0,G=5;G>tA])},M:null})},y:function(L,G){G=UA(G),VA(L,{name:G,fromWireType:function(T){var V=WA[T].value;return qA(T),V},toWireType:function(T,V){return xe(V)},argPackAdvance:8,readValueFromPointer:se,M:null})},h:function(L,G,T){T=TA(T),G=UA(G),VA(L,{name:G,fromWireType:function(V){return V},toWireType:function(V,X){if(typeof X!="number"&&typeof X!="boolean")throw new TypeError('Cannot convert "'+JA(X)+'" to '+this.name);return X},argPackAdvance:8,readValueFromPointer:xA(G,T),M:null})},e:function(L,G,T,V,X,tA){var dA=GA(G,T);L=UA(L),X=pe(V,X),rA(L,function(){Xe("Cannot call "+L+" due to unbound types",dA)},G-1),re(dA,function(lA){var MA=L,OA=L;lA=[lA[0],null].concat(lA.slice(1));var ae=X,ce=lA.length;2>ce&&aA("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var Ii=lA[1]!==null&&!1,Jt=!1,kA=1;kA>>lA}}var MA=G.indexOf("unsigned")!=-1;VA(L,{name:G,fromWireType:tA,toWireType:function(OA,ae){if(typeof ae!="number"&&typeof ae!="boolean")throw new TypeError('Cannot convert "'+JA(ae)+'" to '+this.name);if(aeX)throw new TypeError('Passing a number "'+JA(ae)+'" from JS side to C/C++ side to an argument of type "'+G+'", which is outside the valid range ['+V+", "+X+"]!");return MA?ae>>>0:ae|0},argPackAdvance:8,readValueFromPointer:it(G,dA,V!==0),M:null})},b:function(L,G,T){function V(tA){tA>>=2;var dA=M;return new X(m,dA[tA+1],dA[tA])}var X=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][G];T=UA(T),VA(L,{name:T,fromWireType:V,argPackAdvance:8,readValueFromPointer:V},{U:!0})},i:function(L,G){G=UA(G);var T=G==="std::string";VA(L,{name:G,fromWireType:function(V){var X=M[V>>2];if(T)for(var tA=V+4,dA=0;dA<=X;++dA){var lA=V+4+dA;if(dA==X||x[lA]==0){if(tA=tA?C(x,tA,lA-tA):"",MA===void 0)var MA=tA;else MA+=String.fromCharCode(0),MA+=tA;tA=lA+1}}else{for(MA=Array(X),dA=0;dA=ce&&(ce=65536+((ce&1023)<<10)|X.charCodeAt(++ae)&1023),127>=ce?++OA:OA=2047>=ce?OA+2:65535>=ce?OA+3:OA+4}return OA}:function(){return X.length})(),lA=ye(4+dA+1);if(M[lA>>2]=dA,T&&tA)B(X,lA+4,dA+1);else if(tA)for(tA=0;tA>2],ae=dA(),ce,Ii=MA+4,Jt=0;Jt<=OA;++Jt){var kA=MA+4+Jt*G;(Jt==OA||ae[kA>>lA]==0)&&(Ii=V(Ii,kA-Ii),ce===void 0?ce=Ii:(ce+=String.fromCharCode(0),ce+=Ii),Ii=kA+G)}return te(MA),ce},toWireType:function(MA,OA){typeof OA!="string"&&aA("Cannot pass non-string to C++ string type "+T);var ae=tA(OA),ce=ye(4+ae+G);return M[ce>>2]=ae>>lA,X(OA,ce+4,ae+G),MA!==null&&MA.push(te,ce),ce},argPackAdvance:8,readValueFromPointer:se,M:function(MA){te(MA)}})},A:function(L,G){G=UA(G),VA(L,{aa:!0,name:G,argPackAdvance:0,fromWireType:function(){},toWireType:function(){}})},n:qA,x:function(L){4>>=0;var G=x.length;if(2147483648=T;T*=2){var V=G*(1+.2/T);V=Math.min(V,L+100663296),V=Math.max(16777216,L,V),0>>16),W(I.buffer);var X=1;break A}catch{}X=void 0}if(X)return!0}return!1},u:function(L,G){var T=0;return cs().forEach(function(V,X){var tA=G+T;for(X=N[L+4*X>>2]=tA,tA=0;tA>0]=V.charCodeAt(tA);v[X>>0]=0,T+=V.length+1}),0},v:function(L,G){var T=cs();N[L>>2]=T.length;var V=0;return T.forEach(function(X){V+=X.length+1}),N[G>>2]=V,0},w:function(){return 0},q:function(){},g:function(L,G,T,V){for(var X=0,tA=0;tA>2],lA=N[G+(8*tA+4)>>2],MA=0;MA>2]=X,0},a:I,l:function(){return 0},k:function(){return 0},j:function(){},B:function(){return 6},m:function(){},f:function(){}};(function(){function L(X){A.asm=X.exports,Z=A.asm.D,j--,A.monitorRunDependencies&&A.monitorRunDependencies(j),j==0&&AA&&(X=AA,AA=null,X())}function G(X){L(X.instance)}function T(X){return Promise.resolve().then(bA).then(function(tA){return WebAssembly.instantiate(tA,V)}).then(X,function(tA){a("failed to asynchronously prepare wasm: "+tA),iA(tA)})}var V={a:LA};if(j++,A.monitorRunDependencies&&A.monitorRunDependencies(j),A.instantiateWasm)try{return A.instantiateWasm(V,L)}catch(X){return a("Module.instantiateWasm callback failed with error: "+X),!1}return function(){return g||typeof WebAssembly.instantiateStreaming!="function"||sA()||gA("file://")||typeof fetch!="function"?T(G):fetch(BA,{credentials:"same-origin"}).then(function(X){return WebAssembly.instantiateStreaming(X,V).then(G,function(tA){return a("wasm streaming compile failed: "+tA),a("falling back to ArrayBuffer instantiation"),T(G)})})}().catch(i),{}})();var Se=A.___wasm_call_ctors=function(){return(Se=A.___wasm_call_ctors=A.asm.E).apply(null,arguments)},ye=A._malloc=function(){return(ye=A._malloc=A.asm.F).apply(null,arguments)},te=A._free=function(){return(te=A._free=A.asm.G).apply(null,arguments)},lt=A.___getTypeName=function(){return(lt=A.___getTypeName=A.asm.H).apply(null,arguments)};A.___embind_register_native_and_builtin_types=function(){return(A.___embind_register_native_and_builtin_types=A.asm.I).apply(null,arguments)},A.dynCall_jiiiii=function(){return(A.dynCall_jiiiii=A.asm.J).apply(null,arguments)},A.dynCall_jiji=function(){return(A.dynCall_jiji=A.asm.K).apply(null,arguments)};var Ee;AA=function L(){Ee||Hi(),Ee||(AA=L)};function Hi(){function L(){if(!Ee&&(Ee=!0,A.calledRun=!0,!l)){if(EA(O),EA(Y),t(A),A.onRuntimeInitialized&&A.onRuntimeInitialized(),A.postRun)for(typeof A.postRun=="function"&&(A.postRun=[A.postRun]);A.postRun.length;){var G=A.postRun.shift();k.unshift(G)}EA(k)}}if(!(0new Uint8Array(Buffer.from(e,"base64")):(()=>{for(var e=new Uint8Array(128),A=0;A<64;A++)e[A<26?A+65:A<52?A+71:A<62?A-4:A*4-205]=A;return t=>{for(var i=t.length,n=new Uint8Array((i-(t[i-1]=="=")-(t[i-2]=="="))*3/4|0),r=0,o=0;r>4,n[o++]=a<<4|g>>2,n[o++]=g<<6|I}return n}})(),KrA=YrA("AGFzbQEAAAABwAImYAF/AX9gA39/fwF/YAV/f39/fwF/YAJ/fwF/YAJ/fwBgAX8AYAN/f38AYAR/f39/AX9gBH9/f38AYAAAYAZ/f39/f38Bf2AFf39/f38AYAZ/f39/f38AYAd/f39/f39/AX9gBH9/f38BfmAFf39/f38BfmAIf39/f39/f38Bf2AJf39/f39/f39/AX9gAn5/AX9gC39/f39/f39/f39/AX9gA39+fwF+YAN/f34AYAN/f34Bf2ADfn9/AX9gAn5+AX5gCH9/f39/f39/AGAJf39/f39/f39/AGAFf35/f38AYAABf2ANf39/f39/f39/f39/fwF/YA9/f39/f39/f39/f39/f38Bf2AFf39/fn8Bf2AGf3x/f39/AX9gAX8BfmACf38BfmAHf35/f39/fwF+YAF+AX5gBH5/f34BfgK0AR0BYQFiAAYBYQFjAAsBYQFkAAYBYQFlAAwBYQFmAAUBYQFnAAcBYQFoAAYBYQFpAAQBYQFqAAMBYQFrAAABYQFsAAABYQFtAAMBYQFuAAUBYQFvAAYBYQFwAAABYQFxAAIBYQFyAAEBYQFzAAABYQF0AAkBYQF1AAMBYQF2AAMBYQF3AAABYQF4AAUBYQF5AAQBYQF6AAsBYQFBAAQBYQFCAAcBYQFDAAMBYQFhAgGAAoCAAgOtBKsEBAEBAwIACAAAAAQHAQEBAAIBAAQDAQMBBAEFAwUFAAYAAwAIAgIDAQgBAwYBCwEBAAQYBAEEBwoGAwMLBwgBBggDCwUDAwMGCAEGBAYABwIGAAABAAIEBAYEBQMDAAsABgwDAAANBgIYAwkAAQwGBggAAgAAAAUQHQAEAQMbBwcHBwMDBh4TBAgBAgECCgcGCgYEAAQAARARAwAIAAYDBgAFBQUFBQUJCwUGAQAFBQICAgcHAwQEAAcSARIXJQQGAwMDAAUEAQABBQUDAAMGCgAFBQMBHwUDAwUFAREDBwoEAAUBAwcKCiEGBQEABgYGBQUIAxMNAAADAAkBBwcHBwcHBwcAAQgGBwMRAgICAgYCCAoCAgcCCAAFBAUFAAMAAAIKBBQACQwMCwMLCAgICwwAAQEFAAUABQkDAAMSEhcGAQAUAAAJCQkJBgAJCQkJCQkJCQkJCQkJDQ0ABgcBAQcHAgEBAgEEAwoABAcFBRwKCgoFAgoCAgMaGQUEAgICAgkFCwICAQoQAggMIiMCBgYBDAICAgICAgICAgMCAg0MAgoCAgIECgICAgQTAQEHAQcBCAUGCgUFBAYkBwUAAAgWFgYRAA0CAgsDEAUBAgYHCwIBAgIABRUVAwUABgIBCQEGAgIHBwcFAAoEAgIHAQAAAAAABAMGCAgIAAAFBgQAAAEDAwEDBQUABAEDAQQABAMNDQQECgoFAg4PDg8ODg4ICAgBCAEBAQEHBAUBcAFWVgYJAX8BQaD9wQILByYIAUQBAAFFAJYCAUYATAFHADgBSADhAgFJAMMBAUoAvgIBSwC9AgmlAQEAQQELVX9f5wK6ArYCf1+rAqECuAPVA6MDrgOPA50DjQG0Ap8CngKdApwCmwK3BLkEvgTBBKcEpgSiBKAEnwTBA8YDtwO5A7oDvQOlA6EDoAO/A8QDsgOxA7ADrwOaA5kDwAPFA7MDtAO1A7YDnAObA9cC3QLfAn9f0wLSAtEC0AJ/X/UB9QHOAswCywLKAl/PAl/DAsUCyQJfxALHAsgCwQLAAgqyrRGrBBYAIAAgASkAADcAACAAIAEpAAg3AAgLrgEBA38CQCACQX1qIgQgAE0EQCAAIQMMAQsgASgAACAAKAAAcyIDRQRAIAAhAwNAIAFBBGohASADQQRqIgMgBE8NAiABKAAAIAMoAABzIgVFDQALIAUQJSADaiAAaw8LIAMQJQ8LAkAgAyACQX9qTw0AIAEvAAAgAy8AAEcNACABQQJqIQEgA0ECaiEDCyADIAJJBH8gA0EBaiADIAEtAAAgAy0AAEYbBSADCyAAawtoAAJAAkACQAJAAkAgAkF7ag4EAQIDBAALIAAgARDeAQ8LIAAgARDdAQ8LIAAgARDcAQ8LIAApAABCgMaV/cub741PfkHAACABa62Ipw8LIAApAABC48iVvcub741PfkHAACABa62IpwsUACAAKAAAIgBBCHQgACABQQNGGws4AQF/IAMgASAAIAEgACADIAFraiIFIAIgBSACSRsQHSIFakYEfyAAIAVqIAQgAhAdIAVqBSAFCwsIACAAQYh/SwuTAQECfyABIANNBEAgACABEBwgAEEQaiABQRBqEBwgACADIAFrIgRqIQUgBEEhTgRAIABBIGohAANAIAAgAUEgaiIEEBwgAEEQaiABQTBqEBwgBCEBIABBIGoiACAFSQ0ACwsgAyEBIAUhAAsgASACSQRAA0AgACABLQAAOgAAIABBAWohACABQQFqIgEgAkcNAAsLC5gBAQR/QQMhAQJAIAAoAgQiAkEgTQRAIAACfyAAKAIIIgEgACgCEE8EQCAAIAEgAkEDdmsiAzYCCEEAIQEgAkEHcQwBCyABIAAoAgwiA0YNAiAAIAEgASADayACQQN2IgQgASAEayADSSIBGyIEayIDNgIIIAIgBEEDdGsLNgIEIAAgAygAADYCAAsgAQ8LQQFBAiACQSBJGwsIACAAZ0EfcwsIACAAaEEDdgsPACAAIAAoAgQgAWo2AgQLHAAgACACQQEgA3QiA2sgACACIABrIANLGyABGwvzAgICfwF+AkAgAkUNACAAIAJqIgNBf2ogAToAACAAIAE6AAAgAkEDSQ0AIANBfmogAToAACAAIAE6AAEgA0F9aiABOgAAIAAgAToAAiACQQdJDQAgA0F8aiABOgAAIAAgAToAAyACQQlJDQAgAEEAIABrQQNxIgRqIgMgAUH/AXFBgYKECGwiATYCACADIAIgBGtBfHEiBGoiAkF8aiABNgIAIARBCUkNACADIAE2AgggAyABNgIEIAJBeGogATYCACACQXRqIAE2AgAgBEEZSQ0AIAMgATYCGCADIAE2AhQgAyABNgIQIAMgATYCDCACQXBqIAE2AgAgAkFsaiABNgIAIAJBaGogATYCACACQWRqIAE2AgAgBCADQQRxQRhyIgRrIgJBIEkNACABrSIFQiCGIAWEIQUgAyAEaiEBA0AgASAFNwMYIAEgBTcDECABIAU3AwggASAFNwMAIAFBIGohASACQWBqIgJBH0sNAAsLIAALDQAgACABdEEAIAJrdguCBAEDfyACQYAETwRAIAAgASACEBAaIAAPCyAAIAJqIQMCQCAAIAFzQQNxRQRAAkAgAkEBSARAIAAhAgwBCyAAQQNxRQRAIAAhAgwBCyAAIQIDQCACIAEtAAA6AAAgAUEBaiEBIAJBAWoiAiADTw0BIAJBA3ENAAsLAkAgA0F8cSIEQcAASQ0AIAIgBEFAaiIFSw0AA0AgAiABKAIANgIAIAIgASgCBDYCBCACIAEoAgg2AgggAiABKAIMNgIMIAIgASgCEDYCECACIAEoAhQ2AhQgAiABKAIYNgIYIAIgASgCHDYCHCACIAEoAiA2AiAgAiABKAIkNgIkIAIgASgCKDYCKCACIAEoAiw2AiwgAiABKAIwNgIwIAIgASgCNDYCNCACIAEoAjg2AjggAiABKAI8NgI8IAFBQGshASACQUBrIgIgBU0NAAsLIAIgBE8NAQNAIAIgASgCADYCACABQQRqIQEgAkEEaiICIARJDQALDAELIANBBEkEQCAAIQIMAQsgA0F8aiIEIABJBEAgACECDAELIAAhAgNAIAIgAS0AADoAACACIAEtAAE6AAEgAiABLQACOgACIAIgAS0AAzoAAyABQQRqIQEgAkEEaiICIARNDQALCyACIANJBEADQCACIAEtAAA6AAAgAUEBaiEBIAJBAWoiAiADRw0ACwsgAAsbAQF/IABBAWoiABAkIgFBCHQgAEEIdCABdmoLhQEBBn8gACgCICEGIAAoAhgiBSADIAAoAgQiCGsiB0kEQEF/IAF0QX9zIQEgACgCKCEJA0AgCSABIAVxQQJ0aiAGIAUgCGogAiAEEFpBAnRqIgooAgA2AgAgCiAFNgIAIAVBAWoiBSAHSQ0ACwsgACAHNgIYIAYgAyACIAQQWkECdGooAgALXAEBfyABKAI4QQFGBEAgAgRAIAAQKw8LIAAQLg8LIAAQgAFBAnQiA0GwpwFqKAIAQQh0IAEoAixqIQAgASgCBCADaigCACEBIAIEQCAAIAEQK2sPCyAAIAEQLmsLDAAgAEEBahAkQQh0CwkAIAAgATsAAAsWACAAQbHz3fF5bEETQRQgAUEDRht2C5sBAQV/IwBBEGsiBSQAIAUgAjYCDCACQRh2IQYgAUEEaiEHIAAhBANAIAQiAyAHTwRAIAIgA0F8aiIEKAAARg0BCwsCQCADIAFNDQAgA0F/aiIELQAAIAZHDQAgBUEMakEDciECA0AgBCIDIAFNBEAgASEDDAILIANBf2oiBC0AACACQX9qIgItAABGDQALCyAFQRBqJAAgACADawsNACABQX9zIABqQQJLC3gBA38CQAJAIAFBfWoiBCAAIgNNDQADQCACIAMoAABzIgVFBEAgA0EEaiIDIARJDQEMAgsLIAUQJSADaiEDDAELIAMgAU8NAANAIAMtAAAgAkH/AXFHDQEgAkEIdiECIANBAWoiAyABRw0ACyABIABrDwsgAyAAawsJACAAIAE2AAALFAAgAUUEQEEADwsgACABIAIQqQQLigEBA38gACgCHCIBEJkEAkAgACgCECICIAEoAhQiAyADIAJLGyICRQ0AIAAoAgwgASgCECACECoaIAAgACgCDCACajYCDCABIAEoAhAgAmo2AhAgACAAKAIUIAJqNgIUIAAgACgCECACazYCECABIAEoAhQgAmsiADYCFCAADQAgASABKAIINgIQCwsRACAAIAEpAAA3AAAgAEEIagvXAgEFfyAABEAgAEF8aiIBKAIAIgQhAyABIQIgAEF4aigCACIFQX9MBEAgASAFaiIAKAIFIgIgACgCCTYCCCAAKAIJIAI2AgQgBCAFQX9zaiEDIABBAWohAgsgASAEaiIAKAIAIgEgACABakF8aigCAEcEQCAAKAIEIgQgACgCCDYCCCAAKAIIIAQ2AgQgASADaiEDCyACIAM2AgAgA0F8cSACakF8aiADQX9zNgIAIAICfyACKAIAQXhqIgBB/wBNBEAgAEEDdkF/agwBCyAAZyEBIABBHSABa3ZBBHMgAUECdGtB7gBqIABB/x9NDQAaIABBHiABa3ZBAnMgAUEBdGtBxwBqIgBBPyAAQT9JGwsiA0EEdCIAQYDtAWo2AgQgAiAAQYjtAWoiACgCADYCCCAAIAI2AgAgAigCCCACNgIEQYj1AUGI9QEpAwBCASADrYaENwMACwtUAQJ/IAAoAgQhASAAKAIMIAAoAgAQ/AEgACAAKAIEQQdxNgIEIAAgACgCACABQXhxdjYCACAAIAAoAhAiAiAAKAIMIAFBA3ZqIgAgACACSxs2AgwLEQAgACgAAEGx893xeWxBEXYLIgADQCAAIAEpAAA3AAAgAUEIaiEBIABBCGoiACACSQ0ACwsdACAAQYABTwRAIAAQJEEkag8LIABBsKYBai0AAAsKACABIABBA3R3Cw0AIAAoAgggACgCDGoLpQEBAX8gAkEDTwRAIAAgASgCBDYCCCABKAIAIQEgACACQX5qNgIAIAAgATYCBA8LAkACfwJAAkAgAiADaiICDgQDAQEAAQsgASgCACIDQX9qDAELIAEoAgAhAyABIAJBAnRqKAIACyEEIAFBBEEIIAJBAUsbaigCACEBIAAgAzYCBCAAIAE2AgggACAENgIADwsgACABKQIANwIAIAAgASgCCDYCCAtVAQJ/IAQgARDQASEGIAMoAgAiBSAEIABrIgRJBEADQCACIAAgBWogARDQAUECdGogBTYCACAFQQFqIgUgBEkNAAsLIAMgBDYCACACIAZBAnRqKAIAC7QEARV/IwBBEGsiDiQAIAAoAiAgASAAKAJ8IAMQHkECdGoiBSgCACEDIAAoAnghBiAAKAIIIQ8gACgCDCEMIAAoAighEiAAKAKAASEIIAAoAhAhEyAFIAEgACgCBCINayIJNgIAIBIgCUF/IAZBf2p0QX9zIhRxQQN0aiEHIAlBCWohCgJ/IAMgE0kEQCAHQgA3AgBBAAwBC0EAIAkgFGsiACAAIAlLGyEVIAdBBGohBiAMIA1qIRYgDCAPaiEXQX8gCHRBf3MhEUEIIQtBACEIA0ACfyAEQQAgECAIIBAgCEkbIgAgA2ogDEkbRQRAIAAgAWogAyANaiAAaiACEB0gAGoiACADaiEFIA0MAQsgDyANIAAgAWogAyAPaiAAaiACIBcgFhAgIABqIgAgA2oiBSAMSRsLIRggBSAKIAAgCiADa0sbIAogACALSyIFGyEKIAAgCyAFGyELAkAgACABaiIZIAJGDQAgEiADIBRxQQN0aiEFAkACQCADIBhqIABqLQAAIBktAABJBEAgByADNgIAIAMgFUsNASAOQQxqIQcMAwsgBiADNgIAIAMgFUsEQCAAIQggBSEGDAILIA5BDGohBgwCCyAAIRAgBUEEaiIHIQULIBFFDQAgEUF/aiERIAUoAgAiAyATTw0BCwsgBkEANgIAIAdBADYCACALQYB9aiIAQcABIABBwAFJG0EAIAtBgANLGwshAyAOQRBqJAAgAyAKIAlrQXhqIgAgAyAASxsLHAEBfyAAKAIAIAAoAgQgARApIQIgACABECYgAgssACACRQRAIAAoAgQgASgCBEYPCyAAIAFGBEBBAQ8LIAAQkAEgARCQARBdRQukBAEDf0EBIQYCQCABRSACQQRqAn8gACgChAFBAU4EQCAAKAIAIgQoAixBAkYEQCAEIAAQmAQ2AiwLIAAgAEGYFmoQrgEgACAAQaQWahCuASAAEJcEQQFqIQYgACgCqC1BCmpBA3YiBSAAKAKsLUEKakEDdiIEIAQgBUsbDAELIAJBBWoiBAsiBUtyRQRAIAAgASACIAMQjgIMAQsgACgCvC0hAQJAIAQgBUcEQCAAKAKIAUEERw0BCyAAIAAvAbgtIANBAmpB//8DcSICIAF0ciIEOwG4LSAAAn8gAUEOTgRAIAAgACgCFCIBQQFqNgIUIAEgACgCCGogBDoAACAAIAAoAhQiAUEBajYCFCABIAAoAghqIABBuS1qLQAAOgAAIAAgAkEQIAAoArwtIgFrdjsBuC0gAUFzagwBCyABQQNqCzYCvC0gAEGA2wBBgNkAEIsCDAELIAAgAC8BuC0gA0EEakH//wNxIgIgAXRyIgQ7AbgtIAACfyABQQ5OBEAgACAAKAIUIgFBAWo2AhQgASAAKAIIaiAEOgAAIAAgACgCFCIBQQFqNgIUIAEgACgCCGogAEG5LWotAAA6AAAgACACQRAgACgCvC0iAWt2OwG4LSABQXNqDAELIAFBA2oLNgK8LSAAIABBnBZqKAIAQQFqIABBqBZqKAIAQQFqIAYQlgQgACAAQZQBaiAAQYgTahCLAgsgABCNAiADBEAgABCMAgsL9QEBAX8gAkUEQCAAQgA3AgAgAEEANgIQIABCADcCCEG4fw8LIAAgATYCDCAAIAFBBGo2AhAgAkEETwRAIAAgASACaiIBQXxqIgM2AgggACADKAAANgIAIAFBf2otAAAiAUUEQCAAQQA2AgRBfw8LIABBCCABECRrNgIEIAIPCyAAIAE2AgggACABLQAAIgM2AgACQAJAAkAgAkF+ag4CAQACCyAAIAEtAAJBEHQgA3IiAzYCAAsgACABLQABQQh0IANqNgIACyABIAJqQX9qLQAAIgFFBEAgAEEANgIEQWwPCyAAQSggARAkIAJBA3RqazYCBCACCy0BAX8gAUECdEGwwwFqKAIAIAAoAgBBICABIAAoAgRqa3ZxIQIgACABECYgAgsxAQF/IAAgACgCBCIDIAJqNgIEIAAgACgCACACQQJ0QbDDAWooAgAgAXEgA3RyNgIACyEAIAJBAkYEQCABIABBAnRqKAIADwsgASAAQQF0ai8BAAtIAAJAAkACQAJAIANBf2oOAwABAgMLIAIgAUECdGogADYCAA8LIAIgAUECdGogACAEazYCAA8LIAIgAUEBdGogACAEazsBAAsL6QIBAX8CQCAAIAFGDQAgASAAayACa0EAIAJBAXRrTQRAIAAgASACECoPCyAAIAFzQQNxIQMCQAJAIAAgAUkEQCADBEAgACEDDAMLIABBA3FFBEAgACEDDAILIAAhAwNAIAJFDQQgAyABLQAAOgAAIAFBAWohASACQX9qIQIgA0EBaiIDQQNxDQALDAELAkAgAw0AIAAgAmpBA3EEQANAIAJFDQUgACACQX9qIgJqIgMgASACai0AADoAACADQQNxDQALCyACQQNNDQADQCAAIAJBfGoiAmogASACaigCADYCACACQQNLDQALCyACRQ0CA0AgACACQX9qIgJqIAEgAmotAAA6AAAgAg0ACwwCCyACQQNNDQADQCADIAEoAgA2AgAgAUEEaiEBIANBBGohAyACQXxqIgJBA0sNAAsLIAJFDQADQCADIAEtAAA6AAAgA0EBaiEDIAFBAWohASACQX9qIgINAAsLIAALDQAgASACRiAAQSBGcQsJAEEIIAAQtQELCAAgACABEDQLIQAgAULP1tO+0ser2UJ+IAB8Qh+JQoeVr6+Ytt6bnn9+CyYBAX8jAEEQayICJAAgAiABNgIMQdjpASAAIAEQuQEgAkEQaiQAC2AAAkACQAJAAkAgAkF4ag4ZAgMDAwMDAwMBAwMDAwMDAwMDAwMDAwMDAAMLIAAgARCUAg8LIAAgARBWDwsgACABEDcPCyACQQdNBEAgACABIAIQwwQPCyAAIAEgAhDCBAt/AQF/IABBQGsoAgAQcARAIAAoAhghAiAAAn8gAQRAIAIQKwwBCyACEC4LNgIoCyAAKAIcIQIgAAJ/IAEEQCACECshASAAKAIgECshAiAAKAIkECsMAQsgAhAuIQEgACgCIBAuIQIgACgCJBAuCzYCNCAAIAI2AjAgACABNgIsC4MBAQN/IAFFBEBBAA8LIAJBQGsoAgAQcEUEQCABQQt0DwsgAigCOEEBRgRAIAFBgAxsDwsgAigCKCABbCEEIAIoAgAhBkEAIQIDQCAGIAAgAmotAABBAnRqKAIAIQUgBAJ/IAMEQCAFECsMAQsgBRAuC2shBCACQQFqIgIgAUcNAAsgBAuwBgEXfyMAQRBrIhQkAEEBIAAoAoABdCEKIAAoAighDgJAIAAoAiAgASAAKAJ8IAQQWkECdGoiDCgCACIJQQAgASAAKAIEIg9rIghBfyAAKAJ4QX9qdEF/cyIQayIGIAYgCEsbIhUgACgCECAAKAIUIAggACgCdBAnIhYgFSAWSxsiDU0NACAKIQcCQANAIA4gCSIGIBBxQQN0aiIJKAIEIhdBAUcgB0ECSXJFBEAgCSALNgIEIAdBf2ohByAGIQsgCSgCACIJIA1LDQEMAgsLIBdBAUYEQCAJQgA3AgALIAsiBkUNAQsgDkEEaiEJA0AgCSAGIBBxQQN0aigCACELIAAgBiACIAcgDSAFELwDIAdBAWohByALIgYNAAsLIAAoAgghGCAAKAIMIREgDCgCACEHIAwgCDYCACAKQX9qIQogCEEJaiESIA4gCCAQcUEDdGoiE0EEaiEMAkAgByAWTQRAIAohBkEAIQgMAQsgDyARaiEZIBEgGGohGiAIQQJqIRsgCEEBaiEcQQAhCEEAIQtBACENA0ACfyAFQQFGQQAgDSALIA0gC0kbIgYgB2ogEUkbRQRAIAEgBmogByAPaiAGaiACEB0gBmohBiAPDAELIBggDyABIAZqIAcgGGogBmogAiAaIBkQICAGaiIGIAdqIBFJGwshFwJAIAYgCE0NACAGIAhrQQJ0IBwgB2sQJCADKAIAQQFqECRrSgRAIAMgGyAHazYCACAGIQgLIAYgB2ogEiAGIBIgB2tLGyESIAEgBmogAkcNAEEAIAogBUECRhshBgwCCyAOIAcgEHFBA3RqIQkCQAJAIAcgF2ogBmotAAAgASAGai0AAEkEQCATIAc2AgAgByAVSw0BIBRBDGohEyAKIQYMBAsgDCAHNgIAIAcgFUsEQCAGIQsgCSEMDAILIBRBDGohDCAKIQYMAwsgBiENIAlBBGoiEyEJCyAKQX9qIgYgCk8NASAGIQogCSgCACIHIBZLDQALCyAMQQA2AgAgE0EANgIAIAZFIAVBAkdyRQRAIAAgASACIAMgCCAGIAQQuwMhCAsgACASQXhqNgIYIBRBEGokACAIC44BAQh/IAAoAhgiAyABIAAoAgQiBWsiAUkEQEF/IAAoAnhBf2p0QX9zIQYgACgCfCEHIAAoAighCCAAKAIgIQkDQCAJIAMgBWogByACEFpBAnRqIgQoAgAhCiAEIAM2AgAgCCADIAZxQQN0aiIEQQE2AgQgBCAKNgIAIANBAWoiAyABSQ0ACwsgACABNgIYCw4AIAAgARDjAUECEOIBC6cBACAAIAEtAAA6AAAgACABLQABOgABIAAgAS0AAjoAAiAAIAEtAAM6AAMgACABLQAEOgAEIAAgAS0ABToABSAAIAEtAAY6AAYgACABLQAHOgAHIAAgAS0ACDoACCAAIAEtAAk6AAkgACABLQAKOgAKIAAgAS0ACzoACyAAIAEtAAw6AAwgACABLQANOgANIAAgAS0ADjoADiAAIAEtAA86AA8gAEEQagvTAQEDfyAAQUBrKAIAEHAEQCABBEAgACgCACEGA0AgBiACIAVqLQAAQQJ0aiIHIAcoAgBBAmo2AgAgBUEBaiIFIAFHDQALCyAAIAAoAhggAUEBdGo2AhgLIAAoAgQgARCAAUECdGoiASABKAIAQQFqNgIAIAAgACgCHEEBajYCHCAAKAIMIANBAWoQJEECdGoiASABKAIAQQFqNgIAIAAgACgCJEEBajYCJCAAKAIIIARBfWoQPEECdGoiASABKAIAQQFqNgIAIAAgACgCIEEBajYCIAsWACAAIAEgAiADEFIgASACIAMQogNqC7cIAQR/IwBBEGsiBiQAIABBQGsoAgAQcCEFIABBADYCOAJAIAAoAhxFBEAgAkGACE0EQCAAQQE2AjgLIAAoAjwiBCgCgAhBAkYEQEEAIQIgAEEANgI4IAUEQCAAQQA2AhggACgCACIFQQFBCyAEQQAQ+QEiAWt0QQEgARsiATYCACAAIAAoAhggAWo2AhhBASEBA0AgBSABQQJ0akEBQQsgBCABEPkBIgdrdEEBIAcbIgc2AgAgACAAKAIYIAdqNgIYIAFBAWoiAUGAAkcNAAsLIAYgBEG0GWoQcyAAQQA2AhwgACgCBCEBIAYoAgghBQNAIAEgAkECdGpBAUEKIAUgAhCYASIEa3RBASAEGyIENgIAIAAgACgCHCAEajYCHCACQQFqIgJBJEcNAAsgBiAAKAI8QYgOahBzQQAhAiAAQQA2AiAgACgCCCEBIAYoAgghBQNAIAEgAkECdGpBAUEKIAUgAhCYASIEa3RBASAEGyIENgIAIAAgACgCICAEajYCICACQQFqIgJBNUcNAAsgBiAAKAI8QYQIahBzQQAhAiAAQQA2AiQgACgCDCEBIAYoAgghBQNAIAEgAkECdGpBAUEKIAUgAhCYASIEa3RBASAEGyIENgIAIAAgACgCJCAEajYCJCACQQFqIgJBIEcNAAsMAgsgBQRAIAZB/wE2AgAgACgCACAGIAEgAhCqARogACAAKAIAQf8BQQEQbzYCGAsgACgCBCIBQoGAgIAQNwKIASABQoGAgIAQNwKAASABQoGAgIAQNwJ4IAFCgYCAgBA3AnAgAUKBgICAEDcCaCABQoGAgIAQNwJgIAFCgYCAgBA3AlggAUKBgICAEDcCUCABQoGAgIAQNwJIIAFCgYCAgBA3AkAgAUKBgICAEDcCOCABQoGAgIAQNwIwIAFCgYCAgBA3AiggAUKBgICAEDcCICABQoGAgIAQNwIYIAFCgYCAgBA3AhAgAUKBgICAEDcCCCABQoGAgIAQNwIAIABBJDYCHCAAKAIIIQFBACECA0AgASACQQJ0akEBNgIAIAJBAWoiAkE1Rw0ACyAAQTU2AiAgACgCDCIBQoGAgIAQNwJ4IAFCgYCAgBA3AnAgAUKBgICAEDcCaCABQoGAgIAQNwJgIAFCgYCAgBA3AlggAUKBgICAEDcCUCABQoGAgIAQNwJIIAFCgYCAgBA3AkAgAUKBgICAEDcCOCABQoGAgIAQNwIwIAFCgYCAgBA3AiggAUKBgICAEDcCICABQoGAgIAQNwIYIAFCgYCAgBA3AhAgAUKBgICAEDcCCCABQoGAgIAQNwIAIABBIDYCJAwBCyAFBEAgACAAKAIAQf8BQQEQbzYCGAsgACAAKAIEQSNBABBvNgIcIAAgACgCCEE0QQAQbzYCICAAIAAoAgxBH0EAEG82AiQLIAAgAxBRIAZBEGokAAssAAJAAkACQCACQXtqDgIBAgALIAAgARDeAQ8LIAAgARDdAQ8LIAAgARDcAQshACAAIAIgACgCBCICajYCBCAAIAAoAgAgASACdHI2AgALMAACQAJAAkAgA0F+ag4CAAECCyACIAFBAnRqIAA2AgAPCyACIAFBAXRqIAA7AQALC0oBAn8CQCAALQAAIgJFIAIgAS0AACIDR3INAANAIAEtAAEhAyAALQABIgJFDQEgAUEBaiEBIABBAWohACACIANGDQALCyACIANrC20BAX8jAEGAAmsiBSQAIARBgMAEcSACIANMckUEQCAFIAFB/wFxIAIgA2siAkGAAiACQYACSSIBGxAoGiABRQRAA0AgACAFQYACEGYgAkGAfmoiAkH/AUsNAAsLIAAgBSACEGYLIAVBgAJqJAALBgAgABA4CwsAIAAgAUEBEOIBCy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxBGajYCACADCy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxBCajYCACADC0YAIAAgARBzIAAgACgCBCAAKAIIIAJBA3RqIgAoAgQiAUGAgAJqIgJBgIB8cSABayACQRB2dSAAKAIAakEBdGovAQA2AgALGgAgAARAIAIEQCADIAAgAhEEAA8LIAAQOAsL0AUBA38gAEH//wNxIQMgAEEQdiEEQQEhACACQQFGBEAgAyABLQAAaiIAQY+AfGogACAAQfD/A0sbIgAgBGoiAUEQdCICQYCAPGogAiABQfD/A0sbIAByDwsgAQR/IAJBEE8EQAJAAkACQCACQa8rSwRAA0BB2wIhBSABIQADQCADIAAtAABqIgMgBGogAyAALQABaiIDaiADIAAtAAJqIgNqIAMgAC0AA2oiA2ogAyAALQAEaiIDaiADIAAtAAVqIgNqIAMgAC0ABmoiA2ogAyAALQAHaiIDaiADIAAtAAhqIgNqIAMgAC0ACWoiA2ogAyAALQAKaiIDaiADIAAtAAtqIgNqIAMgAC0ADGoiA2ogAyAALQANaiIDaiADIAAtAA5qIgNqIAMgAC0AD2oiA2ohBCAAQRBqIQAgBUF/aiIFDQALIARB8f8DcCEEIANB8f8DcCEDIAFBsCtqIQEgAkHQVGoiAkGvK0sNAAsgAkUNAyACQRBJDQELA0AgAyABLQAAaiIAIARqIAAgAS0AAWoiAGogACABLQACaiIAaiAAIAEtAANqIgBqIAAgAS0ABGoiAGogACABLQAFaiIAaiAAIAEtAAZqIgBqIAAgAS0AB2oiAGogACABLQAIaiIAaiAAIAEtAAlqIgBqIAAgAS0ACmoiAGogACABLQALaiIAaiAAIAEtAAxqIgBqIAAgAS0ADWoiAGogACABLQAOaiIAaiAAIAEtAA9qIgNqIQQgAUEQaiEBIAJBcGoiAkEPSw0ACyACRQ0BCwNAIAMgAS0AAGoiAyAEaiEEIAFBAWohASACQX9qIgINAAsLIARB8f8DcCEEIANB8f8DcCEDCyAEQRB0IANyDwsgAgRAA0AgAyABLQAAaiIDIARqIQQgAUEBaiEBIAJBf2oiAg0ACwsgBEHx/wNwQRB0IANBj4B8aiADIANB8P8DSxtyBSAACwsYACAALQAAQSBxRQRAIAEgAiAAEKUBGgsLDAAgACABKQAANwAACx8AIAAgASACKAIEEEY2AgAgARAjGiAAIAJBCGo2AgQLCQBBAUEFIAAbC88MAQ1/AkACQAJAAkACQCAAKAKEAUF7ag4DAQICAAsgACgCBCELIAAoAnQhByAAKAIQIQUgACgCFCEKIAAoAighCCAAKAIMIQ9BASAAKAKAAXQhDEEDIQYCQCAAIAAoAngiDSAAKAJ8IAFBBBAsIgQgBSABIAtrIglBASAHdCIHayAFIAkgBWsgB0sbIAobIgdNDQBBACAJQQEgDXQiBmsiBSAFIAlLGyEKIAZBf2ohDSAJQQJqIQ5BAyEGA0ACQCAEIAtqIgUgBmotAAAgASAGai0AAEcNACABIAUgAhAdIgUgBk0NACADIA4gBGs2AgAgBSIGIAFqIAJHDQAMAgsgBCAKTQ0BIAxBf2oiDEUNASAIIAQgDXFBAnRqKAIAIgQgB0sNAAsLIAAoAnAiACgCBCEFIAAoAgAhByAAKAJ4IQggACgCDCEKIAAoAighDSAAKAIgIQQgASAAKAJ8QQQQWiEAIAxFDQMgBCAAQQJ0aigCACIEIApNDQMgCyAPaiELQQAgByAFayIAQQEgCHQiCGsiDiAOIABLGyEOIAhBf2ohCCABQQRqIRAgCSAPayAAakECaiEJA0ACQCAEIAVqIgAoAAAgASgAAEcNACAQIABBBGogAiAHIAsQIEEEaiIAIAZNDQAgAyAJIARrNgIAIAAhBiAAIAFqIAJGDQQLIAQgDk0NBCAMQX9qIgxFDQQgBiEAIA0gBCAIcUECdGooAgAiBCAKSw0ACwwCCyAAKAIEIQsgACgCdCEHIAAoAhAhBSAAKAIUIQogACgCKCEIIAAoAgwhD0EBIAAoAoABdCEMQQMhBgJAIAAgACgCeCINIAAoAnwgAUEFECwiBCAFIAEgC2siCUEBIAd0IgdrIAUgCSAFayAHSxsgChsiB00NAEEAIAlBASANdCIGayIFIAUgCUsbIQogBkF/aiENIAlBAmohDkEDIQYDQAJAIAQgC2oiBSAGai0AACABIAZqLQAARw0AIAEgBSACEB0iBSAGTQ0AIAMgDiAEazYCACAFIgYgAWogAkcNAAwCCyAEIApNDQEgDEF/aiIMRQ0BIAggBCANcUECdGooAgAiBCAHSw0ACwsgACgCcCIAKAIEIQUgACgCACEHIAAoAnghCCAAKAIMIQogACgCKCENIAAoAiAhBCABIAAoAnxBBRBaIQAgDEUNAiAEIABBAnRqKAIAIgQgCk0NAiALIA9qIQtBACAHIAVrIgBBASAIdCIIayIOIA4gAEsbIQ4gCEF/aiEIIAFBBGohECAJIA9rIABqQQJqIQkDQAJAIAQgBWoiACgAACABKAAARw0AIBAgAEEEaiACIAcgCxAgQQRqIgAgBk0NACADIAkgBGs2AgAgACEGIAAgAWogAkYNAwsgBCAOTQ0DIAxBf2oiDEUNAyAGIQAgDSAEIAhxQQJ0aigCACIEIApLDQALDAELIAAoAgQhCyAAKAJ0IQcgACgCECEFIAAoAhQhCiAAKAIoIQggACgCDCEPQQEgACgCgAF0IQxBAyEGAkAgACAAKAJ4Ig0gACgCfCABQQYQLCIEIAUgASALayIJQQEgB3QiB2sgBSAJIAVrIAdLGyAKGyIHTQ0AQQAgCUEBIA10IgZrIgUgBSAJSxshCiAGQX9qIQ0gCUECaiEOQQMhBgNAAkAgBCALaiIFIAZqLQAAIAEgBmotAABHDQAgASAFIAIQHSIFIAZNDQAgAyAOIARrNgIAIAUiBiABaiACRw0ADAILIAQgCk0NASAMQX9qIgxFDQEgCCAEIA1xQQJ0aigCACIEIAdLDQALCyAAKAJwIgAoAgQhBSAAKAIAIQcgACgCeCEIIAAoAgwhCiAAKAIoIQ0gACgCICEEIAEgACgCfEEGEFohACAMRQ0BIAQgAEECdGooAgAiBCAKTQ0BIAsgD2ohC0EAIAcgBWsiAEEBIAh0IghrIg4gDiAASxshDiAIQX9qIQggAUEEaiEQIAkgD2sgAGpBAmohCQNAAkAgBCAFaiIAKAAAIAEoAABHDQAgECAAQQRqIAIgByALECBBBGoiACAGTQ0AIAMgCSAEazYCACAAIQYgACABaiACRg0CCyAEIA5NDQIgDEF/aiIMRQ0CIAYhACANIAQgCHFBAnRqKAIAIgQgCksNAAsLIAAPCyAGC9wFAQx/IwBBEGsiCiQAAn8gBEEDTQRAIApBADYCDCAKQQxqIAMgBBAqGiAAIAEgAiAKQQxqQQQQayIAQWwgABAhGyAAIAAgBEsbDAELIABBACABKAIAQQF0QQJqECghDkFUIAMoAAAiBUEPcSIAQQpLDQAaIAIgAEEFajYCACADIARqIgJBfGohCyACQXlqIQ8gAkF7aiEQQQQhAiAFQQR2IQQgAEEGaiEMQSAgAHQiCEEBciEJIAEoAgAhDSADIQZBACEAQQAhBQNAAkACQCAARQRAIAUhBwwBCyAFIQAgBEH//wNxQf//A0YEQANAIABBGGohAAJ/IAYgEEkEQCAGQQJqIgYoAAAgAnYMAQsgAkEQaiECIARBEHYLIgRB//8DcUH//wNGDQALCyAEQQNxIgdBA0YEQANAIAJBAmohAiAAQQNqIQAgBEECdiIEQQNxIgdBA0YNAAsLQVAgACAHaiIHIA1LDQMaIAJBAmohAgJAIAcgBU0EQCAFIQcMAQsgDiAFQQF0akEAIAcgBWtBAXQQKBoLIAYgD0tBACAGIAJBA3VqIgAgC0sbRQRAIAAoAAAgAkEHcSICdiEEDAILIARBAnYhBAsgBiEACwJ/IAxBf2ogBCAIQX9qcSIGIAhBAXRBf2oiBSAJayINSQ0AGiAEIAVxIgRBACANIAQgCEgbayEGIAwLIQUgDiAHQQF0aiAGQX9qIgQ7AQAgBEEBIAZrIAZBAUgbIAlqIgkgCEgEQANAIAxBf2ohDCAJIAhBAXUiCEgNAAsLIAIgBWoiAiAAIAtrQQN0aiACQQdxIAAgD0sgACACQQN1aiIAIAtLcSIFGyECIAsgACAFGyIGKAAAIQUgCUECTgRAIARFIQAgBSACdiEEIAdBAWoiBSABKAIAIg1NDQELC0FsIAlBAUcgAkEgSnINABogASAHNgIAIAYgAkEHakEDdWogA2sLIQAgCkEQaiQAIAALTgECfyABKAIIIAJBA3RqIgIoAgAhAyABKAIEIQQgACABKAIAIgAgACACKAIEakEQdiIAEEcgASAEIAMgASgCACAAdWpBAXRqLwEANgIACxsAIABBASAAGyEAAkAgABBMIgANABASAAsgAAsKACAAQVBqQQpJC0cBA38gAkEEaiEFQQAhAgNAIAAgAkECdGoiAyADKAIAIAV2QQFqIgM2AgAgAyAEaiEEIAEgAkchAyACQQFqIQIgAw0ACyAECwcAIABBAkcL9AIBAn8jAEEgayIFJAACf0EAIAFBCEkNABogBUEIaiAAIAEQ+QNBAEEAECENABogA0F8cSEGAkACQAJAAkAgA0EDcUEBaw4DAgEAAwsgBUEIaiAEIAIgBkECcmotAABBAnRqIgAvAQAgAC0AAhBbIAVBCGoQOQsgBUEIaiAEIAIgBkEBcmotAABBAnRqIgAvAQAgAC0AAhBbCyAFQQhqIAQgAiAGai0AAEECdGoiAC8BACAALQACEFsgBUEIahA5CyAGBEADQCAFQQhqIAQgAiAGaiIAQX9qLQAAQQJ0aiIBLwEAIAEtAAIQWyAFQQhqIAQgAEF+ai0AAEECdGoiAS8BACABLQACEFsgBUEIahA5IAVBCGogBCAAQX1qLQAAQQJ0aiIALwEAIAAtAAIQWyAFQQhqIAQgAiAGQXxqIgZqLQAAQQJ0aiIALwEAIAAtAAIQWyAFQQhqEDkgBg0ACwsgBUEIahD4AwshBiAFQSBqJAAgBgs/AQF/IAEhAiACAn9BpOoBKAIAQX9MBEAgACACQdjpARClAQwBCyAAIAJB2OkBEKUBCyIARgRADwsgACABbhoLPgEBfyAAIAEvAAAiAjYCDCAAIAFBBGoiATYCBCAAQQEgAnQ2AgAgACABQQEgAkF/anRBASACG0ECdGo2AggLDgAgACABIAIQRyAAEDkLPwEBfyAAIAAoAhQiAkEBajYCFCACIAAoAghqIAFBCHY6AAAgACAAKAIUIgJBAWo2AhQgAiAAKAIIaiABOgAAC44FAQp/IAAoAiwiAkH6fWohCCAAKAJ0IQUgAiEBA0AgACgCPCAFayAAKAJsIgVrIQQgBSABIAhqTwRAIAAoAjgiASABIAJqIAIQKhogACAAKAJwIAJrNgJwIAAgACgCbCACayIFNgJsIAAgACgCXCACazYCXCAAKAJEIAAoAkwiA0EBdGohAQNAIAFBfmoiAUEAIAEvAQAiByACayIGIAYgB0sbOwEAIANBf2oiAw0ACyAAKAJAIAJBAXRqIQEgAiEDA0AgAUF+aiIBQQAgAS8BACIHIAJrIgYgBiAHSxs7AQAgA0F/aiIDDQALIAIgBGohBAsCQCAAKAIAIgEoAgRFDQAgACABIAAoAnQgACgCOCAFamogBBCeBCAAKAJ0aiIFNgJ0AkAgACgCtC0iAyAFakEDSQ0AIAAgACgCOCIHIAAoAmwgA2siAWoiBC0AACIGNgJIIAAgACgCVCIJIAQtAAEgBiAAKAJYIgZ0c3EiBDYCSANAIANFDQEgACABIAdqLQACIAQgBnRzIAlxIgQ2AkggACgCQCAAKAI0IAFxQQF0aiAAKAJEIARBAXRqIgovAQA7AQAgCiABOwEAIAAgA0F/aiIDNgK0LSABQQFqIQEgAyAFakECSw0ACwsgBUGFAksNACAAKAIAKAIERQ0AIAAoAiwhAQwBCwsCQCAAKAI8IgMgACgCwC0iAk0NACACIAAoAnQgACgCbGoiAUkEQCAAKAI4IAFqQQAgAyABayICQYICIAJBggJJGyICECgaIAAgASACajYCwC0PCyABQYICaiIBIAJNDQAgACgCOCACakEAIAMgAmsiAyABIAJrIgIgAiADSxsiAhAoGiAAIAAoAsAtIAJqNgLALQsLEQAgACABKAAANgAAIABBBGoLEQAgACABLwAAOwAAIABBAmoLTAEBfyMAQRBrIgEkACABQQA2AgwCQAJ/IAFBICAAELUBIgA2AgxBAEEMIAAbRQsEQCABKAIMIgANAQsQ/ANBACEACyABQRBqJAAgAAtJAQJ/IAAoAgQiBUEIdSEGIAAoAgAiACABIAVBAXEEfyACKAIAIAZqKAIABSAGCyACaiADQQIgBUECcRsgBCAAKAIAKAIYEQsACxYAAn8gABCRAQRAIAAoAgAMAQsgAAsLsAEBAX8gAQJ/IAJBB00EQCAAKAIAIAEoAgAtAAA6AAAgACgCACABKAIALQABOgABIAAoAgAgASgCAC0AAjoAAiAAKAIAIAEoAgAtAAM6AAMgASABKAIAIAJBAnQiAkGQwwFqKAIAaiIDNgIAIAAoAgAgAygAADYABCABKAIAIAJB8MIBaigCAGsMAQsgACgCACABKAIAEGcgASgCAAtBCGo2AgAgACAAKAIAQQhqNgIAC9EDAQp/IwBB8ABrIgskACAAQQhqIQxBASAFdCEKAkAgAkF/RgRAIAAgBTYCBCAAQQE2AgAMAQtBgIAEIAVBf2p0QRB1IQ0gCkF/aiIOIQhBASEGA0ACQCABIAdBAXQiD2ovAQAiCUH//wNGBEAgDCAIQQN0aiAHNgIEIAhBf2ohCEEBIQkMAQsgBkEAIA0gCUEQdEEQdUobIQYLIAsgD2ogCTsBACACIAdHIQkgB0EBaiEHIAkNAAsgACAFNgIEIAAgBjYCACAKQQN2IApBAXZqQQNqIQlBACEHQQAhBgNAIAEgBkEBdGouAQAiAEEBTgRAIABB//8DcSIAQQEgAEEBSxshDUEAIQADQCAMIAdBA3RqIAY2AgQDQCAHIAlqIA5xIgcgCEsNAAsgAEEBaiIAIA1HDQALCyACIAZGIQAgBkEBaiEGIABFDQALCyAKQQEgCkEBSxshAkEAIQgDQCALIAwgCEEDdGoiACgCBCIGQQF0aiIBIAEvAQAiAUEBajsBACAAIAUgARAkayIHOgADIAAgASAHdCAKazsBACAAIAQgBkECdCIBaigCADoAAiAAIAEgA2ooAgA2AgQgCEEBaiIIIAJHDQALIAtB8ABqJAALPAEDfwNAIAAgA0ECdGoiAiACKAIAQQR0QX9qIgI2AgAgAiAEaiEEIAEgA0chAiADQQFqIQMgAg0ACyAECwQAIAALHQAgAEHAAE8EQCAAECRBE2oPCyAAQfClAWotAAALUQAgAiABayECAn8gBUUEQCABIAIgAyAEIAYQcQwBCyABIAIgAyAEIAYQ+gMLIgUQISAFRXJFBEAgASAFaiAAayIAQQAgACAEQX9qSRsPCyAFCx8AIAAgASACLwEAEEY2AgAgARAjGiAAIAJBBGo2AgQLNwEBfyADQdsLTQRAIAAgASACIAMQqgEPC0F/IQUgBEEDcQR/IAUFIAAgASACIANBACAEEIMCCwsjAEIAIAEQTiAAhUKHla+vmLbem55/fkLj3MqV/M7y9YV/fAsNACABIABBAnRqKAIAC0ABAX8jAEEgayIAJAAgAEEIahC0BEGg7AEgACgCGDYCAEGY7AEgACkDEDcCAEGQ7AEgACkDCDcCACAAQSBqJAALPAACQCAAKAJEQQFHBEAgACgCFCAAKAIkbUEBSg0BCyAAELkCDwsgABC4AiAAQoGAgIBwNwLAESAAKAIsC6sDAQN/IAEgAEEEaiIEakF/akEAIAFrcSIFIAJqIAAgACgCACIBakF8ak0EfyAAKAIEIgMgACgCCDYCCCAAKAIIIAM2AgQgBCAFRwRAIAAgAEF8aigCACIDQR91IANzayIDIAUgBGsiBCADKAIAaiIFNgIAIAVBfHEgA2pBfGogBTYCACAAIARqIgAgASAEayIBNgIACwJAIAJBGGogAU0EQCAAIAJqQQhqIgMgASACayIBQXhqIgQ2AgAgBEF8cSADakF8akEHIAFrNgIAIAMCfyADKAIAQXhqIgFB/wBNBEAgAUEDdkF/agwBCyABZyEEIAFBHSAEa3ZBBHMgBEECdGtB7gBqIAFB/x9NDQAaIAFBHiAEa3ZBAnMgBEEBdGtBxwBqIgFBPyABQT9JGwsiAUEEdCIEQYDtAWo2AgQgAyAEQYjtAWoiBCgCADYCCCAEIAM2AgAgAygCCCADNgIEQYj1AUGI9QEpAwBCASABrYaENwMAIAAgAkEIaiIBNgIAIAFBfHEgAGpBfGogATYCAAwBCyAAIAFqQXxqIAE2AgALIABBBGoFIAMLC0sBAn8gACgCBCIGQQh1IQcgACgCACIAIAEgAiAGQQFxBH8gAygCACAHaigCAAUgBwsgA2ogBEECIAZBAnEbIAUgACgCACgCFBEMAAtdAQF/IAAoAhAiA0UEQCAAQQE2AiQgACACNgIYIAAgATYCEA8LAkAgASADRgRAIAAoAhhBAkcNASAAIAI2AhgPCyAAQQE6ADYgAEECNgIYIAAgACgCJEEBajYCJAsLIAACQCAAKAIEIAFHDQAgACgCHEEBRg0AIAAgAjYCHAsLogEAIABBAToANQJAIAAoAgQgAkcNACAAQQE6ADQgACgCECICRQRAIABBATYCJCAAIAM2AhggACABNgIQIANBAUcNASAAKAIwQQFHDQEgAEEBOgA2DwsgASACRgRAIAAoAhgiAkECRgRAIAAgAzYCGCADIQILIAAoAjBBAUcgAkEBR3INASAAQQE6ADYPCyAAQQE6ADYgACAAKAIkQQFqNgIkCws3AQJ/IABB/OMBNgIAAn8gACgCBEF0aiICIgEgASgCCEF/aiIBNgIIIAFBf0wLBEAgAhA4CyAAC4oRAg9/AX4jAEHQAGsiBSQAIAUgATYCTCAFQTdqIRMgBUE4aiERQQAhAQJAA0ACQCANQQBIDQAgAUH/////ByANa0oEQEGw7AFBPTYCAEF/IQ0MAQsgASANaiENCyAFKAJMIgkhAQJAAkACQCAJLQAAIgYEQANAAkACQCAGQf8BcSIGRQRAIAEhBgwBCyAGQSVHDQEgASEGA0AgAS0AAUElRw0BIAUgAUECaiIHNgJMIAZBAWohBiABLQACIQogByEBIApBJUYNAAsLIAYgCWshASAABEAgACAJIAEQZgsgAQ0GIAUoAkwiB0EBaiEBQX8hDwJAIAcsAAEiBhBuRQ0AIActAAJBJEcNACAHQQNqIQEgBkFQaiEPQQEhEgsgBSABNgJMQQAhDgJAIAEsAAAiCkFgaiIHQR9LBEAgASEGDAELIAEhBkEBIAd0IgdBidEEcUUNAANAIAUgAUEBaiIGNgJMIAcgDnIhDiABLAABIgpBYGoiB0EgTw0BIAYhAUEBIAd0IgdBidEEcQ0ACwsCQCAKQSpGBEACfwJAIAYsAAEiARBuRQ0AIAYtAAJBJEcNACABQQJ0IARqQcB+akEKNgIAIAZBA2ohASAGLAABQQN0IANqQYB9aigCACELQQEMAQsgEg0GIAZBAWohASAARQRAIAUgATYCTEEAIRJBACELDAMLIAIgAigCACIGQQRqNgIAIAYoAgAhC0EACyESIAUgATYCTCALQX9KDQFBACALayELIA5BgMAAciEODAELIAVBzABqELwBIgtBAEgNBCAFKAJMIQELQX8hCAJAIAEtAABBLkcNACABLQABQSpGBEACQAJAIAEsAAIiBhBuRQ0AIAEtAANBJEcNACAGQQJ0IARqQcB+akEKNgIAIAEsAAJBA3QgA2pBgH1qKAIAIQggAUEEaiEBDAELIBINBiABQQJqIQEgAEUEQEEAIQgMAQsgAiACKAIAIgZBBGo2AgAgBigCACEICyAFIAE2AkwMAQsgBSABQQFqNgJMIAVBzABqELwBIQggBSgCTCEBC0EAIQcDQCAHIRBBfyEMIAEiCiwAAEG/f2pBOUsNCCAFIApBAWoiATYCTCAKLAAAIBBBOmxqQf/PAWotAAAiB0F/akEISQ0ACwJAAkAgB0ETRwRAIAdFDQogD0EATgRAIAQgD0ECdGogBzYCACAFIAMgD0EDdGopAwA3A0AMAgsgAEUNCCAFQUBrIAcgAhC7AQwCCyAPQX9KDQkLQQAhASAARQ0HCyAOQf//e3EiBiAOIA5BgMAAcRshB0EAIQxBkNQBIQ8gESEOAkACQAJAAn8CQAJAAkACQAJ/AkACQAJAAkACQAJAAkAgCiwAACIBQV9xIAEgAUEPcUEDRhsgASAQGyIBQah/ag4hBBQUFBQUFBQUDhQPBg4ODhQGFBQUFAIFAxQUCRQBFBQEAAsCQCABQb9/ag4HDhQLFA4ODgALIAFB0wBGDQkMEwsgBSkDQCEUQZDUAQwFC0EAIQECQAJAAkACQAJAAkACQCAQQf8BcQ4IAAECAwQaBQYaCyAFKAJAIA02AgAMGQsgBSgCQCANNgIADBgLIAUoAkAgDaw3AwAMFwsgBSgCQCANOwEADBYLIAUoAkAgDToAAAwVCyAFKAJAIA02AgAMFAsgBSgCQCANrDcDAAwTCyAIQQggCEEISxshCCAHQQhyIQdB+AAhAQsgBSkDQCARIAFBIHEQ2wIhCSAHQQhxRQ0DIAUpA0BQDQMgAUEEdkGQ1AFqIQ9BAiEMDAMLIAUpA0AgERDaAiEJIAdBCHFFDQIgCCARIAlrIgFBAWogCCABShshCAwCCyAFKQNAIhRCf1cEQCAFQgAgFH0iFDcDQEEBIQxBkNQBDAELIAdBgBBxBEBBASEMQZHUAQwBC0GS1AFBkNQBIAdBAXEiDBsLIQ8gFCARENkCIQkLIAdB//97cSAHIAhBf0obIQcgCCAFKQNAIhRQRXJFBEBBACEIIBEhCQwMCyAIIBRQIBEgCWtqIgEgCCABShshCAwLCyAFKAJAIgFBmtQBIAEbIgkgCBDYAiIBIAggCWogARshDiAGIQcgASAJayAIIAEbIQgMCgsgCARAIAUoAkAMAgtBACEBIABBICALQQAgBxBeDAILIAVBADYCDCAFIAUpA0A+AgggBSAFQQhqNgJAQX8hCCAFQQhqCyEGQQAhAQJAA0AgBigCACIJRQ0BIAVBBGogCRC6ASIKQQBIIgkgCiAIIAFrS3JFBEAgBkEEaiEGIAggASAKaiIBSw0BDAILC0F/IQwgCQ0LCyAAQSAgCyABIAcQXiABRQRAQQAhAQwBC0EAIQogBSgCQCEGA0AgBigCACIJRQ0BIAVBBGogCRC6ASIJIApqIgogAUoNASAAIAVBBGogCRBmIAZBBGohBiAKIAFJDQALCyAAQSAgCyABIAdBgMAAcxBeIAsgASALIAFKGyEBDAgLIAAgBSsDQCALIAggByABQQARIAAhAQwHCyAFIAUpA0A8ADdBASEIIBMhCSAGIQcMBAsgBSABQQFqIgc2AkwgAS0AASEGIAchAQwACwALIA0hDCAADQQgEkUNAkEBIQEDQCAEIAFBAnRqKAIAIgAEQCADIAFBA3RqIAAgAhC7AUEBIQwgAUEBaiIBQQpHDQEMBgsLQQEhDCABQQpPDQRBACEGA0AgBg0BIAFBAWoiAUEKRg0FIAQgAUECdGooAgAhBgwACwALQX8hDAwDCyAAQSAgDCAOIAlrIgogCCAIIApIGyIGaiIQIAsgCyAQSBsiASAQIAcQXiAAIA8gDBBmIABBMCABIBAgB0GAgARzEF4gAEEwIAYgCkEAEF4gACAJIAoQZiAAQSAgASAQIAdBgMAAcxBeDAELC0EAIQwLIAVB0ABqJAAgDAsWACAARQRAQQAPC0Gw7AEgADYCAEF/CyIBAX8jAEEQayIBIAA2AgggASABKAIIKAIENgIMIAEoAgwLCgAgAC0AC0EHdgsRACAAEJEBBEAgACgCABA4CwvYAQEIf0G6fyEJAkAgACACKAIEIgggAigCACIKaiINaiABSw0AQWwhCSADKAIAIg4gCmoiDyAESw0AIAAgCmoiBCACKAIIIgtrIQwgACABQWBqIgEgDiAKQQAQxAEgAyAPNgIAAkACQCALIAQgBWtNBEAgDCEFDAELIAsgBCAGa0sNAiAHIAwgBWsiA2oiACAIaiAHTQRAIAQgACAIEEoaDAILIAQgAEEAIANrEEohACACIAMgCGoiCDYCBCAAIANrIQQLIAQgASAFIAhBARDEAQsgDSEJCyAJC4wCAQJ/IwBBgAFrIg4kACAOIAM2AnxBfyENAkACQAJAAkACQCACDgQBAAMCBAsgBkUEQEG4fyENDAQLQWwhDSAFLQAAIgIgA0sNAyAAIAcgAkECdCICaigCACACIAhqKAIAEPgCIAEgADYCAEEBIQ0MAwsgASAJNgIAQQAhDQwCCyAKRQRAQWwhDQwCC0EAIQ0gC0UgDEEZSHINAUEIIAR0QQhqIQBBACEDA0AgA0FAayIDIABJDQALDAELQWwhDSAOIA5B/ABqIA5B+ABqIAUgBhBrIgIQIQ0AIA4oAngiAyAESw0AIAAgDiAOKAJ8IAcgCCADEH0gASAANgIAIAIhDQsgDkGAAWokACANCxAAIAAvAAAgAC0AAkEQdHILEQAgACABQQRqIAEoAgAQ5gILXgEBf0G4fyEDIAIQaSICIAFNBH8gACACakF/ai0AACIAQQNxQQJ0QcCrAWooAgAgAmogAEEGdiIBQQJ0QdCrAWooAgBqIABBIHFBBXYiAEEBc2ogACABRXFqBSADCwsVACAAIAFBA3RqKAIEQf//A2pBEHYLdgECfyMAQSBrIgUkACABIAIgBCgCECIGENgBQX8gBnRBf3NGBEAgACgCGCEGIAAoAhQhACAFIAQpAhA3AxggBSAEKQIINwMQIAUgBCkCADcDCCAAIAYgASACENcBIAMgASACENUBIAVBCGoQpwMLIAVBIGokAAuaAQACfwJAAkACQCAAKAKEAUF7ag4DAQICAAtBACAAKAIEIAAoAhhqIAFLDQIaIAAgAUEEEFQgACABIAIgA0EEQQEQUw8LQQAgACgCBCAAKAIYaiABSw0BGiAAIAFBBRBUIAAgASACIANBBUEBEFMPC0EAIAAoAgQgACgCGGogAUsNABogACABQQYQVCAAIAEgAiADQQZBARBTCwuaAQACfwJAAkACQCAAKAKEAUF7ag4DAQICAAtBACAAKAIEIAAoAhhqIAFLDQIaIAAgAUEEEFQgACABIAIgA0EEQQIQUw8LQQAgACgCBCAAKAIYaiABSw0BGiAAIAFBBRBUIAAgASACIANBBUECEFMPC0EAIAAoAgQgACgCGGogAUsNABogACABQQYQVCAAIAEgAiADQQZBAhBTCwuaAQACfwJAAkACQCAAKAKEAUF7ag4DAQICAAtBACAAKAIEIAAoAhhqIAFLDQIaIAAgAUEEEFQgACABIAIgA0EEQQAQUw8LQQAgACgCBCAAKAIYaiABSw0BGiAAIAFBBRBUIAAgASACIANBBUEAEFMPC0EAIAAoAgQgACgCGGogAUsNABogACABQQYQVCAAIAEgAiADQQZBABBTCwt6AQN/Qbp/IQUgA0H/H0tBAkEBIANBH0sbaiIEIANqIgYgAU0EfwJAAkACQAJAIARBf2oOAwABAgMLIAAgA0EDdDoAAAwCCyAAIANBBHRBBHJB9P8DcRAvDAELIAAgA0EEdEEMchBNCyAAIARqIAIgAxAqGiAGBSAFCws5AQJ/IAAoAhQhAyAAKAIMIQIgAEECEOEBIAEgAmoiASADSwRAIABBATYCGEEADwsgACABNgIMIAILTAEBfyABEOMBIQECQCAAKAIgRQRAIAAoAggiAiABaiIBIAAoAgRNDQELIABBATYCGEEADwsgACABNgIQIAAgATYCDCAAIAE2AgggAgvjAwEGfyABQRBtIQggAUEQTgRAA0AgACAGQQJ0IgVqIgFBACABKAIAIgEgAmsiAyADIAFLGzYCACAAIAVBBHJqIgFBACABKAIAIgMgAmsiBCAEIANLGzYCACABQQAgASgCBCIBIAJrIgMgAyABSxs2AgQgACAFQQxyaiIBQQAgASgCACIDIAJrIgQgBCADSxs2AgAgAUEAIAEoAgQiAyACayIEIAQgA0sbNgIEIAFBACABKAIIIgMgAmsiBCAEIANLGzYCCCABQQAgASgCDCIBIAJrIgMgAyABSxs2AgwgACAFQRxyaiIBQQAgASgCACIDIAJrIgQgBCADSxs2AgAgAUEAIAEoAgQiAyACayIEIAQgA0sbNgIEIAFBACABKAIIIgMgAmsiBCAEIANLGzYCCCABQQAgASgCDCIDIAJrIgQgBCADSxs2AgwgAUEAIAEoAhAiAyACayIEIAQgA0sbNgIQIAFBACABKAIUIgMgAmsiBCAEIANLGzYCFCABQQAgASgCGCIDIAJrIgQgBCADSxs2AhggAUEAIAEoAhwiASACayIDIAMgAUsbNgIcIAAgBUE8cmoiAUEAIAEoAgAiASACayIFIAUgAUsbNgIAIAZBEGohBiAHQQFqIgcgCEcNAAsLC5ICAQJ/IwBB8ABrIhAkAEF/IQ8CQAJAAkACQAJAIAQOBAIAAwEECyACIAZB/wFxEIcEQQAhD0EAECENAyABRQRAQbp/IQ8MBAsgACAHLQAAOgAAQQEhDwwDCyACIAwgDRAqGkEAIQ8MAgsgAiAJIAsgCiAOQYAwEKkBIgAQISEBIBBB8ABqJAAgAEEAIAEbDwsgECADIAggBhCnASIEIAUgBSAHIAhBf2oiA2otAABBAnRqIgcoAgAiCUECTwR/IAcgCUF/ajYCACADBSAICyAGEKYBIg8QIQ0AIAAgASAQIAYgBBCoASIPECENACACIBAgBiAEIA5BgDAQqQEiACAPIAAQIRshDwsgEEHwAGokACAPC+ABAAJAIAMgBEcEQAJAAkAgCkEDTQRAIAlFDQEgBEHnB00EQEEDIQkgACgCAEECRg0DC0EKIAprIAh0QQN2IARLDQQgBCAIQX9qdiADTQ0BDAQLQX8hCkF/IQMgCQRAIAcgCCABIAIQzQMhAwtBAyEJAn8gACgCAARAIAYgASACEMwDIQoLIAMgCk0LQQAgAyABIAIgBCAFEMsDQQN0IAEgAiAEEMoDaiIBTRsNAyAKIAFNDQELIABBATYCAEECIQkLIAkPCyAAQQA2AgAgCUUgA0ECS3IPCyAAQQA2AgBBAAsXACAAIAFB//8DcRAvIAAgAUEQdjoAAgs4AQF/IABCADcCCCAAQgA3AhAgAEIANwIYIABBADYCICAAKAIAIQQgAEIANwIAIAQgASACIAMQZAvBAQEDfwJAIAIoAhAiAwR/IAMFIAIQhQQNASACKAIQCyACKAIUIgVrIAFJBEAgAiAAIAEgAigCJBEBAA8LAkAgAiwAS0EASARAQQAhAwwBCyABIQQDQCAEIgNFBEBBACEDDAILIAAgA0F/aiIEai0AAEEKRw0ACyACIAAgAyACKAIkEQEAIgQgA0kNASAAIANqIQAgASADayEBIAIoAhQhBQsgBSAAIAEQKhogAiACKAIUIAFqNgIUIAEgA2ohBAsgBAv9AgIIfwV+AkACf0F/IAFBCyABGyIGQQVJDQAaQVQgBkEMSw0AGkF/IAYgAyAEEIACSQ0AGiADIAZ2IQxBASAGdCEHQoCAgICAgICAwAAgA62AIQ5BPiAGa60iDUJsfCEPQQAhAQJAA0AgAiABQQJ0aigCACIFIANGDQECQCAFRQRAIAAgAUEBdGpBADsBAAwBCyAFIAxNBEAgACABQQF0akH//wM7AQAgB0F/aiEHDAELIA4gBa1+IhAgDYgiEaciBUH//wNxIgpBB00EQCAQIBFC//8DgyANhn0gCkECdEHghAFqNQIAIA+GViAFaiEFCyAAIAFBAXRqIAU7AQAgBSAIIAVBEHRBEHUiBSAIQRB0QRB1SiIKGyEIIAEgCSAKGyEJIAcgBWshBwsgAUEBaiIBIARNDQALIAAgCUEBdGoiAS4BACIFQQF1QQAgB2tKDQIgBiIFIAAgBSACIAMgBBCIBCILECFFDQEaCyALCw8LIAEgBSAHajsBACAGCw0AIAAgASACQQIQgQILUgACf0FUIARBDEsNABpBfyAEQQVJDQAaIANBAWogBGxBA3ZBA2pBgAQgAxsgAUsEQCAAIAEgAiADIARBABCCAg8LIAAgASACIAMgBEEBEIICCwvIBAEKfyMAQZAIayIJJABBASEGQVQhB0EBIAN0IgggBU0EQCAIQQF2IgxBASADG0ECdCEKIAAgAzsBACAAQQRqIg5BfmogAjsBAEEAIQAgCUEANgIAIAhBf2oiBSEHIAJBAWoiCyACTwRAIAUhBwNAIAkgBkECdGoCfyABIAZBf2oiDUEBdGouAQAiD0F/RgRAIAQgB2ogDToAACAHQX9qIQcgAEEBagwBCyAAIA9qCyIANgIAIAZBAWoiBiALTQ0ACwsgCiAOaiEKIAkgC0ECdGogCEEBajYCACAIQQN2IAxqQQNqIQxBACEAQQAhBgNAIAEgAEEBdGouAQAiDUEBTgRAQQAhCwNAIAQgBmogADoAAANAIAYgDGogBXEiBiAHSw0ACyALQQFqIgsgDUcNAAsLIABBAWoiACACTQ0ACyAIQQEgCEEBSxshAEEAIQYDQCAJIAQgBmotAABBAnRqIgUgBSgCACIFQQFqNgIAIA4gBUEBdGogBiAIajsBACAGQQFqIgYgAEcNAAsgA0EQdCAIayIEQYCABGohBUEAIQZBACEHA0ACQAJAAkACQCABIAZBAXRqLgEAIgBBAWoOAwEAAQILIAogBkEDdGogBTYCBAwCCyAKIAZBA3RqIgAgB0F/ajYCACAAIAQ2AgQgB0EBaiEHDAELIAogBkEDdGoiCCAHIABrNgIAIAggAyAAQX9qECRrIghBEHQgACAIdGs2AgQgACAHaiEHCyAGQQFqIgYgAk0NAAtBACEHCyAJQZAIaiQAIAcLrwEBAn8gAEEAIAEoAgAiAEECdEEEahAoIQQgAwRAIANBAEoEQCACIANqIQMDQCAEIAItAABBAnRqIgUgBSgCAEEBajYCACACQQFqIgIgA0kNAAsLA0AgACICQX9qIQAgBCACQQJ0aigCAEUNAAsgASACNgIAQQAhA0EAIQADQCAEIANBAnRqKAIAIgEgACABIABLGyEAIANBAWoiAyACTQ0ACyAADwsgAUEANgIAQQALCwAgACABIAIQKhoLmg0BF38jAEFAaiIHQgA3AzAgB0IANwM4IAdCADcDICAHQgA3AygCQAJAAn8CQAJAIAIEQANAIAdBIGogASAIQQF0ai8BAEEBdGoiBiAGLwEAQQFqOwEAIAhBAWoiCCACRw0ACyAEKAIAIQhBDyEKIAcvAT4iDA0CIAcvATxFDQFBDiEKQQAhDAwCCyAEKAIAIQgLQQ0hCkEAIQwgBy8BOg0AQQwhCiAHLwE4DQBBCyEKIAcvATYNAEEKIQogBy8BNA0AQQkhCiAHLwEyDQBBCCEKIAcvATANAEEHIQogBy8BLg0AQQYhCiAHLwEsDQBBBSEKIAcvASoNAEEEIQogBy8BKA0AQQMhCiAHLwEmDQBBAiEKIAcvASQNACAHLwEiIgtFBEAgAyADKAIAIgBBBGo2AgAgAEHAAjYBACADIAMoAgAiAEEEajYCACAAQcACNgEAIARBATYCAAwDCyAIQQBHIQ5BASEKQQEhCEEADAELIAogCCAIIApLGyEOQQEhCAJAA0AgB0EgaiAIQQF0ai8BAA0BIAhBAWoiCCAKRw0ACyAKIQgLIAcvASIhC0EBCyEQQX8hCSALQf//A3EiBkECSw0BQQQgBy8BJCIRIAZBAXRqayIGQQBIDQEgBkEBdCAHLwEmIhJrIgZBAEgNASAGQQF0IAcvASgiE2siBkEASA0BIAZBAXQgBy8BKiIUayIGQQBIDQEgBkEBdCAHLwEsIhVrIgZBAEgNASAGQQF0IAcvAS4iGGsiBkEASA0BIAZBAXQgBy8BMCIbayIGQQBIDQEgBkEBdCAHLwEyIhxrIgZBAEgNASAGQQF0IAcvATQiDWsiBkEASA0BIAZBAXQgBy8BNiIWayIGQQBIDQEgBkEBdCAHLwE4IhdrIgZBAEgNASAGQQF0IAcvAToiGWsiBkEASA0BIAZBAXQgBy8BPCIaayIGQQBIDQEgBkEBdCAMayIGQQBIIAZBACAARSAQchtyDQFBACEJIAdBADsBAiAHIAs7AQQgByALIBFqIgY7AQYgByAGIBJqIgY7AQggByAGIBNqIgY7AQogByAGIBRqIgY7AQwgByAGIBVqIgY7AQ4gByAGIBhqIgY7ARAgByAGIBtqIgY7ARIgByAGIBxqIgY7ARQgByAGIA1qIgY7ARYgByAGIBZqIgY7ARggByAGIBdqIgY7ARogByAGIBlqIgY7ARwgByAGIBpqOwEeIAIEQANAIAEgCUEBdGovAQAiBgRAIAcgBkEBdGoiBiAGLwEAIgZBAWo7AQAgBSAGQQF0aiAJOwEACyAJQQFqIgkgAkcNAAsLIAggDiAOIAhJGyENQRMhDkEAIRQgBSEWIAUhF0EAIRACQAJAAkAgAA4CAgABC0EBIQkgDUEJSw0DQYACIQ5B3uoAIRdB3ukAIRZBASEQDAELIABBAkYhFEF/IQ5BoO4AIRdBoO0AIRYgAEECRwRADAELQQEhCSANQQlLDQILQQEgDXQiEUF/aiEbIAMoAgAhEkEAIRMgDSEGQQAhC0F/IRoDQEEBIAZ0IRkCQANAIAggD2shFQJ/QQAgDiAFIBNBAXRqLwEAIgZKDQAaIA4gBk4EQEEAIQZB4AAMAQsgFiAGQQF0IgBqLwEAIQYgACAXai0AAAshACALIA92IRxBfyAVdCEJIBkhAgNAIBIgAiAJaiICIBxqQQJ0aiIYIAY7AQIgGCAVOgABIBggADoAACACDQALQQEgCEF/anQhCQNAIAkiAEEBdiEJIAAgC3ENAAsgB0EgaiAIQQF0aiICIAIvAQBBf2oiAjsBACAAQX9qIAtxIABqQQAgABshCyATQQFqIRMgAkH//wNxRQRAIAggCkYNAiABIAUgE0EBdGovAQBBAXRqLwEAIQgLIAggDU0NACALIBtxIgAgGkYNAAtBASAIIA8gDSAPGyIPayIGdCEMIAggCkkEQCAKIA9rIQIgCCEJAkADQCAMIAdBIGogCUEBdGovAQBrIglBAUgNASAJQQF0IQwgBkEBaiIGIA9qIgkgCkkNAAsgAiEGC0EBIAZ0IQwLQQEhCSAQIAwgEWoiEUHUBktxIBQgEUHQBEtxcg0DIAMoAgAiAiAAQQJ0aiIJIA06AAEgCSAGOgAAIAkgEiAZQQJ0aiISIAJrQQJ2OwECIAAhGgwBCwsgCwRAIBIgC0ECdGoiAEEAOwECIAAgFToAASAAQcAAOgAACyADIAMoAgAgEUECdGo2AgAgBCANNgIAC0EAIQkLIAkLygIBC38gACACQQJ0akHcFmooAgAhBgJAIAJBAXQiAyAAKALQKCIFSgRAIAIhBAwBCyAAIAZqQdgoaiEKIAEgBkECdGohCyAAQdwWaiEIIABB2ChqIQkDQAJ/IAMgAyAFTg0AGiABIAggA0EBciIFQQJ0aigCACIHQQJ0ai8BACIEIAEgCCADQQJ0aigCACIMQQJ0ai8BACINTwRAIAMgBCANRw0BGiADIAcgCWotAAAgCSAMai0AAEsNARoLIAULIQQgCy8BACIFIAEgACAEQQJ0akHcFmooAgAiA0ECdGovAQAiB0kEQCACIQQMAgsCQCAFIAdHDQAgCi0AACAAIANqQdgoai0AAEsNACACIQQMAgsgACACQQJ0akHcFmogAzYCACAEIgJBAXQiAyAAKALQKCIFTA0ACwsgACAEQQJ0akHcFmogBjYCAAuyBQEKfyABKAIIIgMoAgAhByADKAIMIQUgASgCACEGIABCgICAgNDHADcC0ChBfyEDAkAgBUEASgRAA0ACQCAGIAJBAnRqIgQvAQAEQCAAIAAoAtAoQQFqIgM2AtAoIAAgA0ECdGpB3BZqIAI2AgAgACACakHYKGpBADoAACACIQMMAQsgBEEAOwECCyACQQFqIgIgBUcNAAsgACgC0CgiAkEBSg0BCwNAIAAgAkEBaiICNgLQKCAAIAJBAnRqQdwWaiADQQFqIglBACADQQJIIgQbIgg2AgAgBiAIQQJ0IgJqQQE7AQAgACAIakHYKGpBADoAACAAIAAoAqgtQX9qNgKoLSAHBEAgACAAKAKsLSACIAdqLwECazYCrC0LIAkgAyAEGyEDIAAoAtAoIgJBAkgNAAsLIAEgAzYCBCACQQF2IQIDQCAAIAYgAhCtASACQQFKIQQgAkF/aiECIAQNAAsgACgC0CghAiAAQdwWaiEKIABB2ChqIQsDQCAAIAJBf2o2AtAoIAAoAuAWIQcgACAKIAJBAnRqKAIANgLgFiAAIAZBARCtASAAIAAoAtQoQX9qIgI2AtQoIAAoAuAWIQQgCiACQQJ0aiAHNgIAIAAgACgC1ChBf2oiAjYC1CggCiACQQJ0aiAENgIAIAYgBUECdGogBiAEQQJ0aiIILwEAIAYgB0ECdGoiCS8BAGo7AQAgBSALaiAEIAtqLQAAIgQgByALai0AACICIAIgBEkbQQFqOgAAIAggBTsBAiAJIAU7AQIgACAFNgLgFiAAIAZBARCtASAFQQFqIQUgACgC0CgiAkEBSg0ACyAAIAAoAtQoQX9qIgI2AtQoIAAgAkECdGpB3BZqIAAoAuAWNgIAIAAgASgCACABKAIEIAEoAggQlAQgBiADIABBvBZqEJMEC5gCAQN/QX4hAgJAIABFDQAgACgCHCIBRQ0AAkACQCABKAIEIgNBu39qDi0BAgICAQICAgICAgICAgICAgICAgICAQICAgICAgICAgICAQICAgICAgICAgEACyADQZoFRg0AIANBKkcNAQsCfwJ/An8gASgCCCICBEAgACgCKCACIAAoAiQRBAAgACgCHCEBCyABKAJEIgILBEAgACgCKCACIAAoAiQRBAAgACgCHCEBCyABKAJAIgILBEAgACgCKCACIAAoAiQRBAAgACgCHCEBCyABKAI4IgILBEAgACgCKCACIAAoAiQRBAAgACgCHCEBCyAAKAIoIAEgACgCJBEEACAAQQA2AhxBfUEAIANB8QBGGyECCyACCx0AIABBCSABIAFBAUgbIgBBDCAAQQxIGzsBmIAQC6IDAQZ/IwBBEGsiAyQAAn8gACgCBCIBIAAoAggiAkYEQCAAKAIAIgIgACgCDCACKAIAKAIQEQQAIAAoAgAiAiADQQxqIAIoAgAoAgwRAwAhASAAIAMoAgwiAjYCDCACRQRAIABBAToAEEEADAILIAAgASACaiICNgIICwJAIAIgAWsiAiABLQAAQQF0QcAJai8BAEELdkEBaiIESQRAIABBEWogASACEEohBiAAKAIAIgEgACgCDCABKAIAKAIQEQQAIABBADYCDANAIAAoAgAiASADQQhqIAEoAgAoAgwRAwAhBUEAIAMoAggiAUUNAxogACACakERaiAFIAEgBCACayIFIAEgBUkbIgEQKhogACgCACIFIAEgBSgCACgCEBEEACABIAJqIgIgBEkNAAsgACAGNgIEIAAgACAEakERajYCCAwBCyACQQRNBEAgAEERaiABIAIQSiEBIAAoAgAiBCAAKAIMIAQoAgAoAhARBAAgACABIAJqNgIIIAAgATYCBCAAQQA2AgwMAQsgACABNgIEC0EBCyECIANBEGokACACCx4BAX8gAEEFRiABQRBKcgR/IAMFIAIgAW1B/wBKCwvCAgEKfyAAKAIMLQAAIghBAnYgACgCKCIJIAFMcSENIAggCUEBSnEhDiAAKAIYIQsgASEKQQEhDAJAAkACQCAIQRBxIAlBEEpyDQAgAiABIAltIghBgAFIcg0AIAghCiAJIQwgCUEBTg0ADAELIAYgBiAFIA0bIA4bIQIgCiAMbCEPIAtBfGohEANAQX8hCCAEQQBIIAQgEEtyDQIgAyAEaigAACILQQBIDQIgCyAAKAIYIARBBGoiBGtKDQIgAyAEaiEIAkAgCiALRgRAIAIgCCAKEFAaDAELIAggCyACIAogACgCQBEHACAKRg0AQX4PCyACIApqIQIgBCALaiEEIBFBAWoiESAMRw0ACwsCQCAOBEAgCSABIAYgBRCtAgwBCyANRQ0AIAkgASAGIAUgBxCsAiIIQQBIDQELIA8hCAsgCAufBQEKfyMAQRBrIgokAAJAAkAgACgCDC0AACIJQQFxRSAAKAIoIgtBAkhyRQRAIAsgASAFIAcQswIMAQsgCyABSgRAIAUhBwwBCyAJQQRxRQRAIAUhBwwBCyALIAEgBSAHIAgQsgIiCEEASA0BCyABQQEgCyAJQRBxIAJyGyINbSEFIAAiASgCOEEBRgR/QQogASgCPGsFQQELIQ4gDUEBSARAQQAhCAwBC0EAIQJBACEIA0AgA0EEaiEMIAUhAyAAKAI4QQNGBEAgBRCVAiEDCwJAIAMgDGogBEwNACAEIAxrIgNBAU4NAEEAIQgMAgsgBkEEaiEJAn8CQAJAAkACQAJAAkACQCAAKAI4IgEOBgYAAQIDBAULIAcgAiAFbGogCSAFIAMgDhCqAgwGCyAHIAIgBWxqIQ8gCSEBIAMhECAAKAI8IREgBSISQYCAgIB4TQR/IA8gASASIBAgERCpAgVBfwsMBQsgByACIAVsaiAFIAkgAxCxAgwECyAHIAIgBWxqIAUgCSADIAAoAjwQsAIMAwsgByACIAVsaiAFIAkgAyAAKAI8EK8CDAILIAogAUEFTQR/IAFBAnRBgBBqKAIABUEACzYCDCAKIAooAgwiAEGa1AEgABs2AgBB6BEgChBPQY8SQS8QckF7IQgMAwsgACgCPCAHIAIgBWxqIAUgCSADIAAoAgwtAAAgC0EBSnEQrgILIgEgA0oEQEF/IQgMAgsgAUEASARAQX4hCAwCCwJAIAFFIAEgBUZyRQRAIAEgDGohAwwBCyAFIAxqIgMgBEoEQEEAIQgMAwsgCSAHIAIgBWxqIAUQUBogBSEBCyAGIAEQNCAIQQRqIAFqIQggASAJaiEGIAJBAWoiAiANRw0ACwsgCkEQaiQAIAgL9AMCBX8CfgJAAkADQCAAIABBf2pxDQEgAEEIIABBCEsbIQBBiPUBKQMAIggCfyABQQNqQXxxQQggAUEISxsiAUH/AE0EQCABQQN2QX9qDAELIAFnIQIgAUEdIAJrdkEEcyACQQJ0a0HuAGogAUH/H00NABogAUEeIAJrdkECcyACQQF0a0HHAGoiAkE/IAJBP0kbCyIErYgiB1BFBEADQCAHIAd6IgiIIQcCfiAEIAinaiIEQQR0IgNBiO0BaigCACICIANBgO0BaiIGRwRAIAIgACABEIgBIgUNBiACKAIEIgUgAigCCDYCCCACKAIIIAU2AgQgAiAGNgIIIAIgA0GE7QFqIgMoAgA2AgQgAyACNgIAIAIoAgQgAjYCCCAEQQFqIQQgB0IBiAwBC0GI9QFBiPUBKQMAQn4gBK2JgzcDACAHQgGFCyIHQgBSDQALQYj1ASkDACEIC0E/IAh5p2tBBHQiAkGA7QFqIQMgAkGI7QFqKAIAIQICQCAIQoCAgIAEVA0AQeMAIQQgAiADRg0AA0AgBEUNASACIAAgARCIASIFDQQgBEF/aiEEIAIoAggiAiADRw0ACyADIQILIAFBMGoQtgENAAsgAiADRg0AA0AgAiAAIAEQiAEiBQ0CIAIoAggiAiADRw0ACwtBACEFCyAFC/0DAQZ/QejqASgCACICIABBA2pBfHEiA2ohAQJAIANBAU5BACABIAJNG0UEQCABPwBBEHRNDQEgARARDQELQbDsAUEwNgIAQQAPC0EAIQNB6OoBIAE2AgAgAkEBTgR/QRAhAyAAIAJqIgRBcGoiAEEQNgIMIABBEDYCAAJAAkACQEGA9QEoAgAiAUUNACACIAEoAghHDQAgAiACQXxqKAIAIgNBH3UgA3NrIgZBfGooAgAhBSABIAQ2AghBcCEDIAYgBSAFQR91c2siASABKAIAakF8aigCAEF/Sg0BIAEoAgQiAiABKAIINgIIIAEoAgggAjYCBCABIAAgAWsiADYCAAwCCyACQRA2AgwgAkEQNgIAIAIgBDYCCCACIAE2AgRBgPUBIAI2AgALIAIgA2oiASAAIAFrIgA2AgALIABBfHEgAWpBfGogAEF/czYCACABAn8gASgCAEF4aiIAQf8ATQRAIABBA3ZBf2oMAQsgAGchAiAAQR0gAmt2QQRzIAJBAnRrQe4AaiAAQf8fTQ0AGiAAQR4gAmt2QQJzIAJBAXRrQccAaiIAQT8gAEE/SRsLIgJBBHQiAEGA7QFqNgIEIAEgAEGI7QFqIgAoAgA2AgggACABNgIAIAEoAgggATYCBEGI9QFBiPUBKQMAQgEgAq2GhDcDAEEBBSADCwtSAQF/IAAoAgQhBCAAKAIAIgAgAQJ/QQAgAkUNABogBEEIdSIBIARBAXFFDQAaIAIoAgAgAWooAgALIAJqIANBAiAEQQJxGyAAKAIAKAIcEQgAC3UBA38CQAJAA0AgACABQcDUAWotAABHBEBB1wAhAiABQQFqIgFB1wBHDQEMAgsLIAEhAiABDQBBoNUBIQAMAQtBoNUBIQEDQCABLQAAIQMgAUEBaiIAIQEgAw0AIAAhASACQX9qIgINAAsLQfDsASgCABogAAsLACAAIAEgAhDcAgsSACAARQRAQQAPCyAAIAEQ1gILuwIAAkAgAUEUSw0AAkACQAJAAkACQAJAAkACQAJAAkAgAUF3ag4KAAECAwQFBgcICQoLIAIgAigCACIBQQRqNgIAIAAgASgCADYCAA8LIAIgAigCACIBQQRqNgIAIAAgATQCADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATUCADcDAA8LIAIgAigCAEEHakF4cSIBQQhqNgIAIAAgASkDADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATIBADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATMBADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATAAADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATEAADcDAA8LIAIgAigCAEEHakF4cSIBQQhqNgIAIAAgASsDADkDAA8LIAAgAkEAEQQACwtEAQR/IAAoAgAiAiwAACIDEG4EQANAIAAgAkEBaiIENgIAIAFBCmwgA2pBUGohASACLAABIQMgBCECIAMQbg0ACwsgAQsoAQF/IwBBEGsiASQAIAEgADYCDEHoywFBBSABKAIMEAAgAUEQaiQACygBAX8jAEEQayIBJAAgASAANgIMQZDMAUEEIAEoAgwQACABQRBqJAALKAEBfyMAQRBrIgEkACABIAA2AgxBuMwBQQMgASgCDBAAIAFBEGokAAsoAQF/IwBBEGsiASQAIAEgADYCDEHgzAFBAiABKAIMEAAgAUEQaiQACycBAX8jAEEQayIBJAAgASAANgIMQcwPQQEgASgCDBAAIAFBEGokAAsoAQF/IwBBEGsiASQAIAEgADYCDEGIzQFBACABKAIMEAAgAUEQaiQAC+ABAEH45gFBsMQBEBlBhOcBQbXEAUEBQQFBABAYEPMCEPICEPECEPACEO8CEO4CEO0CEOwCEOsCEOoCEOkCQbAOQZ/FARAHQejPAUGrxQEQB0GQzwFBBEHMxQEQAkG0zgFBAkHZxQEQAkHYzQFBBEHoxQEQAkGoDkH3xQEQFxDoAkGlxgEQwgFBysYBEMEBQfHGARDAAUGQxwEQvwFBuMcBEL4BQdXHARC9ARDlAhDkAkHAyAEQwgFB4MgBEMEBQYHJARDAAUGiyQEQvwFBxMkBEL4BQeXJARC9ARDjAhDiAguNBAEDfyMAQRBrIgUkACAFIAI2AgggBSAANgIMIAAgA2ohBwJAIANBB0wEQCADQQFIDQEDQCAAIAItAAA6AAAgAkEBaiECIABBAWoiACAHRw0ACyAFIAc2AgwgBSACNgIIDAELIARBAUYEQCAFQQxqIAVBCGogACACaxB8IAUoAgwhAAsgByABTQRAIAAgA2ohBiAEQQFHIAAgBSgCCCICa0EPSnJFBEADQCAAIAIQZyACQQhqIQIgAEEIaiIAIAZJDQAMAwsACyAAIAIQHCAAQRBqIAJBEGoQHCADQSFIDQEgAEEgaiEAA0AgACACQSBqIgEQHCAAQRBqIAJBMGoQHCABIQIgAEEgaiIAIAZJDQALDAELAkAgACABSwRAIAAhAQwBCwJAIARBAUcgACAFKAIIIgZrQQ9KckUEQCAAIQIgBiEDA0AgAiADEGcgA0EIaiEDIAJBCGoiAiABSQ0ACyABIABrIQQMAQsgACAGEBwgAEEQaiAGQRBqEBwgASAAayIEQSFIDQAgAEEgaiEAIAYhAgNAIAAgAkEgaiIDEBwgAEEQaiACQTBqEBwgAyECIABBIGoiACABSQ0ACwsgBSAEIAZqNgIICyABIAdPDQAgBSgCCCEAA0AgASAALQAAOgAAIABBAWohACABQQFqIgEgB0cNAAsgBSAHNgIMIAUgADYCCAsgBUEQaiQACwkAIAAoAgAQDAtBAQJ/IAAgACgCuOABIgM2AsTgASAAKAK84AEhBCAAIAE2ArzgASAAIAEgAmo2ArjgASAAIAEgBCADa2o2AsDgAQtbAQF/Qbh/IQMCQCABQQNJDQAgAiAAEJUBIgFBA3YiADYCCEEBIQMgAiABQQFxNgIEIAIgAUEBdkEDcSIBNgIAAkACQCABQX9qDgMCAQABC0FsDwsgACEDCyADCw4AIAAoAgAQFiAAKAIAC6wBAQF/IAAoAuzhASEBIABBADYChOEBIAAgARBpNgLI4AEgAEIANwP44AEgAEIANwO44AEgAEHA4AFqQgA3AwAgAEGo0ABqIgFBjICA4AA2AgAgAEEANgKY4gEgAEIANwOI4QEgAEGs0AFqQdCwASkCADcCACAAQbTQAWpB2LABKAIANgIAIAAgATYCDCAAIABBmCBqNgIIIAAgAEGgMGo2AgQgACAAQRBqNgIACx4AIAAoApDiARCXAyAAQQA2AqDiASAAQgA3A5DiAQu3EAEMfyMAQfAAayIFJABBbCEGAkAgA0EKSQ0AIAIvAAAhCyACLwACIQcgAi8ABCEMIAVBCGogBCgCABA0IAMgDCAHIAtqakEGaiIISQ0AIAUtAAohCSAFQdgAaiACQQZqIgIgCxBFIgYQIQ0AIAVBQGsgAiALaiICIAcQRSIGECENACAFQShqIAIgB2oiAiAMEEUiBhAhDQAgBUEQaiACIAxqIAMgCGsQRSIGECENACAEQQRqIQggACABQQNqQQJ2IgJqIgcgAmoiDCACaiILIAAgAWoiDkF9aiIPSSEKIAVB2ABqECMhAiAFQUBrECMhAyAFQShqECMhBAJAIAVBEGoQIyACIANyIARyciALIA9PckUEQCAHIQQgDCEDIAshAgNAIAggBSgCWCAFKAJcIAkQKUEBdGoiBi0AACEKIAVB2ABqIAYtAAEQJiAAIAo6AAAgCCAFKAJAIAUoAkQgCRApQQF0aiIGLQAAIQogBUFAayAGLQABECYgBCAKOgAAIAggBSgCKCAFKAIsIAkQKUEBdGoiBi0AACEKIAVBKGogBi0AARAmIAMgCjoAACAIIAUoAhAgBSgCFCAJEClBAXRqIgYtAAAhCiAFQRBqIAYtAAEQJiACIAo6AAAgCCAFKAJYIAUoAlwgCRApQQF0aiIGLQAAIQogBUHYAGogBi0AARAmIAAgCjoAASAIIAUoAkAgBSgCRCAJEClBAXRqIgYtAAAhCiAFQUBrIAYtAAEQJiAEIAo6AAEgCCAFKAIoIAUoAiwgCRApQQF0aiIGLQAAIQogBUEoaiAGLQABECYgAyAKOgABIAggBSgCECAFKAIUIAkQKUEBdGoiBi0AACEKIAVBEGogBi0AARAmIAIgCjoAASADQQJqIQMgBEECaiEEIABBAmohACAFQdgAahAjGiAFQUBrECMaIAVBKGoQIxogBUEQahAjGiACQQJqIgIgD0kNAAtBACEKDAELIAshAiAMIQMgByEECyADIAtLBEBBbCEGDAELIAQgDEsEQEFsIQYMAQtBbCEGIAAgB0sNAAJAIAVB2ABqECMgB0F9aiIGIABNcg0AA0AgCCAFKAJYIAUoAlwgCRApQQF0aiINLQAAIRAgBUHYAGogDS0AARAmIAAgEDoAACAIIAUoAlggBSgCXCAJEClBAXRqIg0tAAAhECAFQdgAaiANLQABECYgACAQOgABIAVB2ABqECMhDSAAQQJqIgAgBk8NASANRQ0ACwsCQCAFQdgAahAjIAAgB09yDQADQCAIIAUoAlggBSgCXCAJEClBAXRqIgYtAAAhDSAFQdgAaiAGLQABECYgACANOgAAIAVB2ABqECMhBiAAQQFqIgAgB08NASAGRQ0ACwsgACAHSQRAA0AgCCAFKAJYIAUoAlwgCRApQQF0aiIGLQAAIQ0gBUHYAGogBi0AARAmIAAgDToAACAAQQFqIgAgB0cNAAsLAkAgBUFAaxAjIAxBfWoiACAETXINAANAIAggBSgCQCAFKAJEIAkQKUEBdGoiBy0AACEGIAVBQGsgBy0AARAmIAQgBjoAACAIIAUoAkAgBSgCRCAJEClBAXRqIgctAAAhBiAFQUBrIActAAEQJiAEIAY6AAEgBUFAaxAjIQcgBEECaiIEIABPDQEgB0UNAAsLAkAgBUFAaxAjIAQgDE9yDQADQCAIIAUoAkAgBSgCRCAJEClBAXRqIgAtAAAhByAFQUBrIAAtAAEQJiAEIAc6AAAgBUFAaxAjIQAgBEEBaiIEIAxPDQEgAEUNAAsLIAQgDEkEQANAIAggBSgCQCAFKAJEIAkQKUEBdGoiAC0AACEHIAVBQGsgAC0AARAmIAQgBzoAACAEQQFqIgQgDEcNAAsLAkAgBUEoahAjIAtBfWoiACADTXINAANAIAggBSgCKCAFKAIsIAkQKUEBdGoiBC0AACEHIAVBKGogBC0AARAmIAMgBzoAACAIIAUoAiggBSgCLCAJEClBAXRqIgQtAAAhByAFQShqIAQtAAEQJiADIAc6AAEgBUEoahAjIQQgA0ECaiIDIABPDQEgBEUNAAsLAkAgBUEoahAjIAMgC09yDQADQCAIIAUoAiggBSgCLCAJEClBAXRqIgAtAAAhBCAFQShqIAAtAAEQJiADIAQ6AAAgBUEoahAjIQAgA0EBaiIDIAtPDQEgAEUNAAsLIAMgC0kEQANAIAggBSgCKCAFKAIsIAkQKUEBdGoiAC0AACEEIAVBKGogAC0AARAmIAMgBDoAACADQQFqIgMgC0cNAAsLAkAgBUEQahAjIApBAXNyDQADQCAIIAUoAhAgBSgCFCAJEClBAXRqIgAtAAAhAyAFQRBqIAAtAAEQJiACIAM6AAAgCCAFKAIQIAUoAhQgCRApQQF0aiIALQAAIQMgBUEQaiAALQABECYgAiADOgABIAVBEGoQIyEAIAJBAmoiAiAPTw0BIABFDQALCwJAIAVBEGoQIyACIA5Pcg0AA0AgCCAFKAIQIAUoAhQgCRApQQF0aiIALQAAIQMgBUEQaiAALQABECYgAiADOgAAIAVBEGoQIyEAIAJBAWoiAiAOTw0BIABFDQALCyACIA5JBEADQCAIIAUoAhAgBSgCFCAJEClBAXRqIgAtAAAhAyAFQRBqIAAtAAEQJiACIAM6AAAgAkEBaiICIA5HDQALCyABQWwgBSgCXCAFKAJgIAUoAmQQSyAFKAJEIAUoAkggBSgCTBBLcSAFKAIsIAUoAjAgBSgCNBBLcSAFKAIUIAUoAhggBSgCHBBLcRshBgsgBUHwAGokACAGC7YUAQ1/IwBB8ABrIgUkAEFsIQYCQCADQQpJDQAgAi8AACELIAIvAAIhCSACLwAEIQwgBUEIaiAEKAIAEDQgAyAMIAkgC2pqQQZqIgdJDQAgBS0ACiEIIAVB2ABqIAJBBmoiAiALEEUiBhAhDQAgBUFAayACIAtqIgIgCRBFIgYQIQ0AIAVBKGogAiAJaiICIAwQRSIGECENACAFQRBqIAIgDGogAyAHaxBFIgYQIQ0AIARBBGohByAAIAFBA2pBAnYiAmoiCSACaiIMIAJqIgsgACABaiIRQX1qIg9JIQ0gBUHYAGoQIyECIAVBQGsQIyEDIAVBKGoQIyEEAkAgBUEQahAjIAIgA3IgBHJyIAsgD09yRQRAIAkhAiAMIQQgCyEDA0AgACAHIAUoAlggBSgCXCAIEClBAnRqIgYvAQA7AAAgBUHYAGogBi0AAhAmIAYtAAMhDSACIAcgBSgCQCAFKAJEIAgQKUECdGoiBi8BADsAACAFQUBrIAYtAAIQJiAGLQADIQogBCAHIAUoAiggBSgCLCAIEClBAnRqIgYvAQA7AAAgBUEoaiAGLQACECYgBi0AAyEOIAMgByAFKAIQIAUoAhQgCBApQQJ0aiIGLwEAOwAAIAVBEGogBi0AAhAmIAYtAAMhBiAAIA1qIg0gByAFKAJYIAUoAlwgCBApQQJ0aiIALwEAOwAAIAVB2ABqIAAtAAIQJiAALQADIRAgAiAKaiICIAcgBSgCQCAFKAJEIAgQKUECdGoiAC8BADsAACAFQUBrIAAtAAIQJiAALQADIQogBCAOaiIEIAcgBSgCKCAFKAIsIAgQKUECdGoiAC8BADsAACAFQShqIAAtAAIQJiAALQADIQ4gAyAGaiIGIAcgBSgCECAFKAIUIAgQKUECdGoiAy8BADsAACAFQRBqIAMtAAIQJiANIBBqIQAgAiAKaiECIAQgDmohBCAGIAMtAANqIgMgD0khDSAFQdgAahAjIQYgBUFAaxAjIQogBUEoahAjIQ4gBUEQahAjIRAgAyAPTw0CIAYgCnIgDnIgEHJFDQALDAELIAshAyAMIQQgCSECCyAEIAtLBEBBbCEGDAELIAIgDEsEQEFsIQYMAQtBbCEGIAAgCUsNAAJAIAVB2ABqECMgCUF9aiIKIABNcg0AA0AgACAHIAUoAlggBSgCXCAIEClBAnRqIgYvAQA7AAAgBUHYAGogBi0AAhAmIAAgBi0AA2oiBiAHIAUoAlggBSgCXCAIEClBAnRqIgAvAQA7AAAgBUHYAGogAC0AAhAmIAYgAC0AA2ohACAFQdgAahAjDQEgACAKSQ0ACwsCQCAFQdgAahAjIAAgCUF+aiIGS3INAANAIAAgByAFKAJYIAUoAlwgCBApQQJ0aiIKLwEAOwAAIAVB2ABqIAotAAIQJiAAIAotAANqIQAgBUHYAGoQIw0BIAAgBk0NAAsLIAAgBk0EQANAIAAgByAFKAJYIAUoAlwgCBApQQJ0aiIKLwEAOwAAIAVB2ABqIAotAAIQJiAAIAotAANqIgAgBk0NAAsLAkAgACAJTw0AIAAgByAFKAJYIAUoAlwgCBApIglBAnRqIgAtAAA6AAAgAC0AA0EBRgRAIAVB2ABqIAAtAAIQJgwBCyAFKAJcQR9LDQAgBUHYAGogByAJQQJ0ai0AAhAmIAUoAlxBIUkNACAFQSA2AlwLAkAgBUFAaxAjIAxBfWoiCSACTXINAANAIAIgByAFKAJAIAUoAkQgCBApQQJ0aiIALwEAOwAAIAVBQGsgAC0AAhAmIAIgAC0AA2oiAiAHIAUoAkAgBSgCRCAIEClBAnRqIgAvAQA7AAAgBUFAayAALQACECYgAiAALQADaiECIAVBQGsQIw0BIAIgCUkNAAsLAkAgBUFAaxAjIAIgDEF+aiIAS3INAANAIAIgByAFKAJAIAUoAkQgCBApQQJ0aiIJLwEAOwAAIAVBQGsgCS0AAhAmIAIgCS0AA2ohAiAFQUBrECMNASACIABNDQALCyACIABNBEADQCACIAcgBSgCQCAFKAJEIAgQKUECdGoiCS8BADsAACAFQUBrIAktAAIQJiACIAktAANqIgIgAE0NAAsLAkAgAiAMTw0AIAIgByAFKAJAIAUoAkQgCBApIgJBAnRqIgAtAAA6AAAgAC0AA0EBRgRAIAVBQGsgAC0AAhAmDAELIAUoAkRBH0sNACAFQUBrIAcgAkECdGotAAIQJiAFKAJEQSFJDQAgBUEgNgJECwJAIAVBKGoQIyALQX1qIgIgBE1yDQADQCAEIAcgBSgCKCAFKAIsIAgQKUECdGoiAC8BADsAACAFQShqIAAtAAIQJiAEIAAtAANqIgQgByAFKAIoIAUoAiwgCBApQQJ0aiIALwEAOwAAIAVBKGogAC0AAhAmIAQgAC0AA2ohBCAFQShqECMNASAEIAJJDQALCwJAIAVBKGoQIyAEIAtBfmoiAEtyDQADQCAEIAcgBSgCKCAFKAIsIAgQKUECdGoiAi8BADsAACAFQShqIAItAAIQJiAEIAItAANqIQQgBUEoahAjDQEgBCAATQ0ACwsgBCAATQRAA0AgBCAHIAUoAiggBSgCLCAIEClBAnRqIgIvAQA7AAAgBUEoaiACLQACECYgBCACLQADaiIEIABNDQALCwJAIAQgC08NACAEIAcgBSgCKCAFKAIsIAgQKSICQQJ0aiIALQAAOgAAIAAtAANBAUYEQCAFQShqIAAtAAIQJgwBCyAFKAIsQR9LDQAgBUEoaiAHIAJBAnRqLQACECYgBSgCLEEhSQ0AIAVBIDYCLAsCQCAFQRBqECMgDUEBc3INAANAIAMgByAFKAIQIAUoAhQgCBApQQJ0aiIALwEAOwAAIAVBEGogAC0AAhAmIAMgAC0AA2oiAiAHIAUoAhAgBSgCFCAIEClBAnRqIgAvAQA7AAAgBUEQaiAALQACECYgAiAALQADaiEDIAVBEGoQIw0BIAMgD0kNAAsLAkAgBUEQahAjIAMgEUF+aiIAS3INAANAIAMgByAFKAIQIAUoAhQgCBApQQJ0aiICLwEAOwAAIAVBEGogAi0AAhAmIAMgAi0AA2ohAyAFQRBqECMNASADIABNDQALCyADIABNBEADQCADIAcgBSgCECAFKAIUIAgQKUECdGoiAi8BADsAACAFQRBqIAItAAIQJiADIAItAANqIgMgAE0NAAsLAkAgAyARTw0AIAMgByAFKAIQIAUoAhQgCBApIgJBAnRqIgAtAAA6AAAgAC0AA0EBRgRAIAVBEGogAC0AAhAmDAELIAUoAhRBH0sNACAFQRBqIAcgAkECdGotAAIQJiAFKAIUQSFJDQAgBUEgNgIUCyABQWwgBSgCXCAFKAJgIAUoAmQQSyAFKAJEIAUoAkggBSgCTBBLcSAFKAIsIAUoAjAgBSgCNBBLcSAFKAIUIAUoAhggBSgCHBBLcRshBgsgBUHwAGokACAGC48DAQR/IwBBIGsiBSQAIAUgBCgCABA0IAUtAAIhByAFQQhqIAIgAxBFIgIQIUUEQCAEQQRqIQICQCAFQQhqECMgACABaiIDQX1qIgQgAE1yDQADQCACIAUoAgggBSgCDCAHEClBAXRqIgYtAAAhCCAFQQhqIAYtAAEQJiAAIAg6AAAgAiAFKAIIIAUoAgwgBxApQQF0aiIGLQAAIQggBUEIaiAGLQABECYgACAIOgABIAVBCGoQIyEGIABBAmoiACAETw0BIAZFDQALCwJAIAVBCGoQIyAAIANPcg0AA0AgAiAFKAIIIAUoAgwgBxApQQF0aiIELQAAIQYgBUEIaiAELQABECYgACAGOgAAIAVBCGoQIyEEIABBAWoiACADTw0BIARFDQALCyAAIANJBEADQCACIAUoAgggBSgCDCAHEClBAXRqIgQtAAAhBiAFQQhqIAQtAAEQJiAAIAY6AAAgAEEBaiIAIANHDQALCyABQWwgBSgCDCAFKAIQIAUoAhQQSxshAgsgBUEgaiQAIAILwgQBDX8jAEEQayIFJAAgBUEEaiAAKAIAEDQgBS0ABCEHIANB8ARqQQBB7AAQKCEIQVQhBAJAIAdBDEsNACADQdwJaiIMIAggBUEIaiAFQQxqIAEgAhD7ASIQECFFBEAgBSgCDCINIAdLDQEgA0GoBWohBiANIQQDQCAEIgJBf2ohBCAIIAJBAnRqKAIARQ0AC0EBIQFBACEEIAJBAWoiCkECTwRAA0AgCCABQQJ0IgtqKAIAIQ4gBiALaiAJNgIAIAkgDmohCSABIAJHIQsgAUEBaiEBIAsNAAsLIANB3AVqIQsgBiAJNgIAIAUoAggiAQRAA0AgBiAEIAxqLQAAIg5BAnRqIg8gDygCACIPQQFqNgIAIAsgD0EBdGoiDyAOOgABIA8gBDoAACAEQQFqIgQgAUcNAAsLQQAhASADQQA2AqgFIApBAk8EQCANQX9zIAdqIQZBASEEA0AgCCAEQQJ0IgxqKAIAIQ4gAyAMaiABNgIAIA4gBCAGanQgAWohASACIARHIQwgBEEBaiEEIAwNAAsLIA1BAWoiDSACayIBIAcgAWtBAWoiCEkEQCAKQQJJIQYDQEEBIQQgBkUEQANAIARBAnQiCiADIAFBNGxqaiADIApqKAIAIAF2NgIAIAIgBEchCiAEQQFqIQQgCg0ACwsgAUEBaiIBIAhJDQALCyAAQQRqIAcgCyAJIANBpAVqIAMgAiANEJYDIAVBAToABSAFIAc6AAYgACAFKAIENgIACyAQIQQLIAVBEGokACAEC+ACAQl/IwBBEGsiBCQAIARBADYCDCAEQQA2AggCQCADQUBrIgkgAyAEQQhqIARBDGogASACEPsBIggQIQ0AIARBBGogACgCABA0QQEhASAEKAIMIgUgBC0ABEEBak0EQEEAIQIgBEEAOgAFIAQgBToABiAAIAQoAgQ2AgAgBUEBakEBSwRAA0AgAyABQQJ0aiIGKAIAIQcgBiACNgIAIAcgAUF/anQgAmohAiABIAVGIQYgAUEBaiEBIAZFDQALCyAEKAIIIgdFDQEgAEEEaiEKIAVBAWohC0EAIQADQCADIAAgCWotAAAiBUECdGoiBigCACIBIAFBASAFdEEBdSIMaiICSQRAIAsgBWshBQNAIAogAUEBdGoiAiAFOgABIAIgADoAACABQQFqIgEgBigCACAMaiICSQ0ACwsgBiACNgIAIABBAWoiACAHRw0ACwwBC0FUIQgLIARBEGokACAICxQAIAAoAABBgPqerQNsQSAgAWt2CygAAkACQAJAIAAoAowBQX9qDgIAAQILIAAgARDCAw8LIAAgARDHAwsLOgEBfyABIAAoAgRrIgEgACgCGCICQYAIaksEQCAAIAEgASACa0GAeGoiAEGABCAAQYAESRtrNgIYCwsVACAAEJEBBEAgACgCBA8LIAAtAAsLRQEBfwJAIAIgA00gACABTXINAANAIABBf2oiAC0AACACQX9qIgItAABHDQEgBEEBaiEEIAIgA00NASAAIAFLDQALCyAECwwAIABBICABa62IpwsQACAAIAEgAigCCHRBA3RqCxIAIABBwAAgAWutiKdBACABGwsvAEEgIAFrIgEgAkkEQCAAp0F/IAJ0QX9zcQ8LIAAgASACa62Ip0F/IAJ0QX9zcQsgACACrSAAIAGtQgp8IAN+fULjyJW9y5vvjU9+fEIK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nn9+QuPcypX8zvL1hX98IQYgBCIDIgFBCGoiBCACTQ0ACwsCQCADQQRqIgEgAksEQCADIQEMAQsgAygAAK1Ch5Wvr5i23puef34gBoVCF4lCz9bTvtLHq9lCfkL5893xmfaZqxZ8IQYLIAEgAkkEQCAAIAVqQShqIQADQCABMQAAQsXP2bLx5brqJ34gBoVCC4lCh5Wvr5i23puef34hBiABQQFqIgEgAEcNAAsLIAZCIYggBoVCz9bTvtLHq9lCfiIGQh2IIAaFQvnz3fGZ9pmrFn4iBkIgiCAGhQv4AgICfwR+IAAgACkDACACrXw3AwACQAJAIAAoAkgiAyACakEfTQRAIAAgA2pBKGogASACEKsBIAAoAkggAmohAQwBCyABIAJqIQQCQAJ/IAMEQCAAQShqIgIgA2ogAUEgIANrEKsBIAAgACkDCCACKQAAEE43AwggACAAKQMQIAApADAQTjcDECAAIAApAxggACkAOBBONwMYIAAgACkDICAAQUBrKQAAEE43AyAgACgCSCECIABBADYCSCABIAJrQSBqIQELIAFBIGogBEsLBEAgASECDAELIARBYGohAyAAKQMgIQUgACkDGCEGIAApAxAhByAAKQMIIQgDQCAIIAEpAAAQTiEIIAcgASkACBBOIQcgBiABKQAQEE4hBiAFIAEpABgQTiEFIAFBIGoiAiEBIAIgA00NAAsgACAFNwMgIAAgBjcDGCAAIAc3AxAgACAINwMICyACIARPDQEgAEEoaiACIAQgAmsiARCrAQsgACABNgJICwtlACAAQgA3AyggAEL56tDQ58mh5OEANwMgIABCADcDGCAAQs/W077Sx6vZQjcDECAAQtbrgu7q/Yn14AA3AwggAEIANwMAIABCADcDMCAAQgA3AzggAEFAa0IANwMAIABCADcDSAsVACABBEAgAiAAIAERAwAPCyAAEEwLYQEDf0F+IQECQCAARQ0AIAAoAhwiAkUNACAAKAIkIgNFDQAgAigCNCIBBEAgACgCKCABIAMRBAAgACgCJCEDIAAoAhwhAgsgACgCKCACIAMRBABBACEBIABBADYCHAsgAQudCwEMfyACQQBOBEBBBEEDIAEvAQIiCxshB0EHQYoBIAsbIQQgAEG5LWohCEF/IQYDQCALIQkCQCAJIAEgDCINQQFqIgxBAnRqLwECIgtH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AhQgCiAAKAIIaiADOgAAIAAgACgCFCIDQQFqNgIUIAMgACgCCGogAEG5LWotAAA6AAAgACABQRAgACgCvC0iAWt2OwG4LSAAIAEgAmpBcGo2ArwtDwsgACACIARqNgK8LQuXAQECfwJAAn8gACgCvC0iAUEJTgRAIAAgACgCFCIBQQFqNgIUIAEgACgCCGogAC0AuC06AAAgACAAKAIUIgFBAWo2AhQgAEG5LWotAAAhAiABIAAoAghqDAELIAFBAUgNASAAIAAoAhQiAUEBajYCFCAALQC4LSECIAEgACgCCGoLIAI6AAALIABBADYCvC0gAEEAOwG4LQvaBAEBfwNAIAAgAUECdGpBADsBlAEgAUEBaiIBQZ4CRw0ACyAAQQA7AfwUIABBADsBiBMgAEHEFWpBADsBACAAQcAVakEAOwEAIABBvBVqQQA7AQAgAEG4FWpBADsBACAAQbQVakEAOwEAIABBsBVqQQA7AQAgAEGsFWpBADsBACAAQagVakEAOwEAIABBpBVqQQA7AQAgAEGgFWpBADsBACAAQZwVakEAOwEAIABBmBVqQQA7AQAgAEGUFWpBADsBACAAQZAVakEAOwEAIABBjBVqQQA7AQAgAEGIFWpBADsBACAAQYQVakEAOwEAIABBgBVqQQA7AQAgAEH8E2pBADsBACAAQfgTakEAOwEAIABB9BNqQQA7AQAgAEHwE2pBADsBACAAQewTakEAOwEAIABB6BNqQQA7AQAgAEHkE2pBADsBACAAQeATakEAOwEAIABB3BNqQQA7AQAgAEHYE2pBADsBACAAQdQTakEAOwEAIABB0BNqQQA7AQAgAEHME2pBADsBACAAQcgTakEAOwEAIABBxBNqQQA7AQAgAEHAE2pBADsBACAAQbwTakEAOwEAIABBuBNqQQA7AQAgAEG0E2pBADsBACAAQbATakEAOwEAIABBrBNqQQA7AQAgAEGoE2pBADsBACAAQaQTakEAOwEAIABBoBNqQQA7AQAgAEGcE2pBADsBACAAQZgTakEAOwEAIABBlBNqQQA7AQAgAEGQE2pBADsBACAAQYwTakEAOwEAIABCADcCrC0gAEGUCWpBATsBACAAQQA2AqgtIABBADYCoC0LngEBAn8gACAALwG4LSADQf//A3EiBCAAKAK8LSIDdHIiBTsBuC0gAAJ/IANB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A0AgCSAFIARBAXRqIgotAAEiC0ECdGoiDCgCACEDIAlBPGogCi0AAEEIdCAIakH//wNxEC8gCUECOgA/IAkgByALayIKIAJqOgA+IANBASABIAprdGohCiAJKAI8IQsDQCAAIANBAnRqIAs2AQAgA0EBaiIDIApJDQALIAwgCjYCACAEQQFqIgQgBkcNAAsLIAlBQGskAAvdAgEJfyMAQdAAayIJJAAgCUFAayAFKAIwNgIAIAkgBSkCKDcDOCAJIAUpAiA3AzAgCSAFKQIYNwMoIAkgBSkCEDcDICAJIAUpAgA3AxAgCSAFKQIINwMYIAMEQCAHIAZrIQ8gByABayEQA0BBASABIAcgAiALQQF0aiIGLQABIgxrIghrIgp0IQ0gBi0AACEOIAlBEGogDEECdGoiDCgCACEGAkAgCiAPTwRAIAAgBkECdGogCiAIIAUgCEE0bGogCCAQaiIIQQEgCEEBShsiCCACIAQgCEECdGooAgAiCEEBdGogAyAIayAHIA4QlQMgBiANaiEIDAELIAlBDGogDhAvIAlBAToADyAJIAg6AA4gBiAGIA1qIghPDQAgCSgCDCEKA0AgACAGQQJ0aiAKNgEAIAZBAWoiBiAIRw0ACwsgDCAINgIAIAtBAWoiCyADRw0ACwsgCUHQAGokAAs+AQN/IAAEQCAAKAIAIABBvNABaigCACIBIABBwNABaigCACICIABBxNABaigCACIDEGQgACABIAIgAxBkCwvMAQEBfyAAIAEoArTQATYCmOIBIAAgASgCBCICNgLA4AEgACACNgK84AEgACACIAEoAghqIgI2ArjgASAAIAI2AsTgASABKAK40AEEQCAAQoGAgIAQNwOI4QEgACABQaTQAGo2AgwgACABQZQgajYCCCAAIAFBnDBqNgIEIAAgAUEMajYCACAAQazQAWogAUGo0AFqKAIANgIAIABBsNABaiABQazQAWooAgA2AgAgAEG00AFqIAFBsNABaigCADYCAA8LIABCADcDiOEBC6JIAS5/IwBB4ABrIhIkACAAKAKEASEGIAAoAgQhByAAKAKIASEFIAAoAgwhCCASIAAoAhg2AlwgACgCPCEbIABBQGsoAgAhHCAAQSxqIiYgAyAEQQIQWSADIAcgCGogA0ZqIg0gAyAEaiIMQXhqIi5JBEAgBUH/HyAFQf8fSRsh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AnRBsKcBaigCABBHIAtBOGoQOSALQThqIAAvAQYgAi0AAEECdEGQpAFqKAIAEEcgC0E4ahA5AkAgCgRAIAEtAAAiASABQRggAUEYSRsiAmsiAQRAIAtBOGogACgCACABEEcgC0E4ahA5CyALQThqIAAoAgAgAXYgAhBHDAELIAtBOGogACgCACABLQAAEEcLIAtBOGoQOSAJQQJPBEAgCUF+aiEMA0AgByAMai0AACECIAMgDGotAAAhBCALQThqIAtBGGogBSAMai0AACIAEGwgC0E4aiALQShqIAQQbCALQThqEDkgC0E4aiALQQhqIAIQbCALQThqEDkgC0E4aiAIIAxBA3RqIgEvAQQgAkECdEGwpwFqKAIAIgIQRyACIARBAnRBkKQBaigCACICakEZTwRAIAtBOGoQOQsgC0E4aiABLwEGIAIQRyALQThqEDkCQCAKBEAgACAAQRggAEEYSRsiAmsiAARAIAtBOGogASgCACAAEEcgC0E4ahA5CyALQThqIAEoAgAgAHYgAhBHDAELIAtBOGogASgCACAAEEcLIAtBOGoQOSAMQX9qIgwgCUkNAAsLIAtBOGogCygCKCALKAI0EHQgC0E4aiALKAIYIAsoAiQQdCALQThqIAsoAgggCygCFBB0IAtBOGoQ/QEiAEG6fyAAGyEMCyALQdAAaiQAIAwLLwAgACACQQN0aigCBCIAQRB2QQFqIgJBCHRBfyABdCAAayACQRB0akEIdCABdmsLTwEEfwNAIANBASAAIARBAnRqKAIAIgNBCHQiBSACbiIGIAUgAkkbIAYgAxtBAnRBkJwBaigCACADbGohAyAEQQFqIgQgAU0NAAsgA0EIdgtKAQF/IwBB8ARrIgQkACAEIAMgAiABEKcBIgMgACACIAEQpgEiAhAhRQRAIARB8ABqQYAEIAQgASADEKgBIQILIARB8ARqJAAgAguKAQEIfyMAQRBrIgMkACADIAAQc0F/IQUCQCAALwACIAJJDQAgAygCDCIHQQh0QYACaiEIIAMoAgghCUEAIQADQCAJIAcgABDJAyEGIAEgAEECdGooAgAiCgRAIAYgCE8NAiAGIApsIARqIQQLIABBAWoiACACTQ0ACyAEQQh2IQULIANBEGokACAFC18BAn9BCCABayEFQQAhAQNAIARBASAAIAFBAXRqLwEAIgQg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ASACEEUiARAhDQEgBEEQaiAEQRhqIAMQggEgBEEIaiAEQRhqIAMQggFBACEBAkAgBEEYahAjBEBBACEDDAELA0AgACABaiICIARBEGogBEEYahBiOgAAIAIgBEEIaiAEQRhqEGI6AAEgBEEYahAjBEAgAUECciEDDAILIAIgBEEQaiAEQRhqEGI6AAIgAiAEQQhqIARBGGoQYjoAAyABQQRqIQMgBEEYahAjIQIgAUH3AUsNASADIQEgAkUNAAsLAn8DQEG6fyEBIANB/QFLDQMgACADaiICIARBEGogBEEYahBiOgAAIAIiBkEBaiEFIARBGGoQI0EDRgRAQQIhAyAEQQhqDAILIANB/AFLDQMgBiAEQQhqIARBGGoQYjoAASADQQJqIQMgBEEYahAjQQNHDQALIAAgA2ohBUEDIQMgBEEQagshASAFIAEgBEEYahBiOgAAIAIgA2ogAGshAQwBCyAEQRhqIAEgAhBFIgEQIQ0AIARBEGogBEEYaiADEIIBIARBCGogBEEYaiADEIIBQQAhAQJAIARBGGoQIwRAQQAhAwwBCwNAIAAgAWoiAiAEQRBqIARBGGoQYToAACACIARBCGogBEEYahBhOgABIARBGGoQIwRAIAFBAnIhAwwCCyACIARBEGogBEEYahBhOgACIAIgBEEIaiAEQRhqEGE6AAMgAUEEaiEDIARBGGoQIyECIAFB9wFLDQEgAyEBIAJFDQALCwJ/A0BBun8hASADQf0BSw0CIAAgA2oiAiAEQRBqIARBGGoQYToAACACIgZBAWohBSAEQRhqECNBA0YEQEECIQMgBEEIagwCCyADQfwBSw0CIAYgBEEIaiAEQRhqEGE6AAEgA0ECaiEDIARBGGoQI0EDRw0ACyAAIANqIQVBAyEDIARBEGoLIQEgBSABIARBGGoQYToAACACIANqIABrIQELIARBMGokACABC68DAQp/IwBBgARrIgkkAEFSIQUCQCACQf8BSw0AIABBBGohCkGAgAQgA0F/anRBEHUhC0EBIAN0IghBf2oiDCEHQQEhBQNAAkAgASAEQQF0Ig1qLwEAIgZB//8DRgRAIAogB0ECdGogBDoAAiAHQX9qIQdBASEGDAELIAVBACALIAZBEHRBEHVKGyEFCyAJIA1qIAY7AQAgAiAERyEGIARBAWohBCAGDQALIAAgBTsB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IAIgASgCCGpBADoAACABIAEoAhQiAkEBajYCFCACIAEoAghqQQA6AABBAiECIAEoAoQBIgNBCUcEQEEEIAEoAogBQQFKQQJ0IANBAkgbIQILIAEgASgCFCIDQQFqNgIUIAMgASgCCGogAjoAACABIAEoAhQiAkEBajYCFCACIAEoAghqQQM6AAAgAUHxADYCBAwNCyACKAIkIQMgAigCHCEEIAIoAhAhBSACKAIsIQYgAigCACEHIAEgASgCFCIIQQFqNgIUQQIhAiAIIAEoAghqIAZBAEdBAXQgB0EAR3IgBUEAR0ECdHIgBEEAR0EDdHIgA0EAR0EEdHI6AAAgASgCHCgCBCEDIAEgASgCFCIEQQFqNgIUIAQgASgCCGogAzoAACABKAIcKAIEIQMgASABKAIUIgRBAWo2AhQgBCABKAIIaiADQQh2OgAAIAEoAhwvAQYhAyABIAEoAhQiBEEBajYCFCAEIAEoAghqIAM6AAAgASgCHC0AByEDIAEgASgCFCIEQQFqNgIUIAQgASgCCGogAzoAACABKAKEASIDQQlHBEBBBCABKAKIAUEBSkECdCADQQJIGyECCyABIAEoAhQiA0EBajYCFCADIAEoAghqIAI6AAAgASgCHCgCDCECIAEgASgCFCIDQQFqNgIUIAMgASgCCGogAjoAAAJ/IAEoAhwiBCgCEARAIAQoAhQhAiABIAEoAhQiA0EBajYCFCADIAEoAghqIAI6AAAgASgCHCgCFCECIAEgASgCFCIDQQFqNgIUIAMgASgCCGogAkEIdjoAACABKAIcIQQLIAQoAiwLBEAgACAAKAIwIAEoAgggASgCFBA1NgIwCyABQcUANgIEIAFBADYCIAwCCyABKAIwQQx0QYCQfmohBEEAIQICQCABKAKIAUEBSg0AIAEoAoQBIgNBAkgNAEHAACECIANBBkgNAEGAAUHAASADQQZGGyECCyABQfEANgIEIAEgAiAEciICQSByIAIgASgCbBsiAkEfcCACckEfcxB1IAEoAmwEQCABIAAvATIQdSABIAAvATAQdQsgAEEAQQBBABBlNgIwIAEoAgQhAgsgAkHFAEcNASABKAIcIQQLAkAgBCgCEARAIAEoAhQhAiABKAIgIgUgBC8BFE8NASACIQMDQCABKAIMIAJGBEACQCACIANNDQAgBCgCLEUNACAAIAAoAjAgASgCCCADaiACIANrEDU2AjALIAAQNiABKAIcIQQgASgCFCICIAEoAgxGDQMgASgCICEFIAIhAwsgBCgCECAFai0AACEEIAEgAkEBajYCFCABKAIIIAJqIAQ6AAAgASABKAIgQQFqIgU2AiAgBSABKAIcIgQvARRPBEAgAyECDAMFIAEoAhQhAgwBCwALAAsgAUHJADYCBAwCCwJAIAQoAixFDQAgASgCFCIDIAJNDQAgACAAKAIwIAEoAgggAmogAyACaxA1NgIwCyABKAIgIAQoAhRGBEAgAUHJADYCBCABQQA2AiAMAgsgASgCBCECCyACQckARw0BIAEoAhwhBAsgBCgCHEUNAiABKAIUIgIhAwJAA0ACQCABKAIMIAJGBEACQCACIANNDQAgASgCHCgCLEUNACAAIAAoAjAgASgCCCADaiACIANrEDU2AjALIAAQNiABKAIUIgIgASgCDEYNASACIQMLQQEhBSABKAIcKAIcIQQgASABKAIgIgZBAWo2AiAgBCAGai0AACEEIAEgAkEBajYCFCABKAIIIAJqIAQ6AAAgBARAIAEoAhQhAgwCBSADIQIMAwsACwtBACEFCwJAIAEoAhwiBCgCLEUNACABKAIUIgMgAk0NACAAIAAoAjAgASgCCCACaiADIAJrEDU2AjALIAUNASABKAIEIQILIAJB2wBHDQMgASgCHCEEDAILIAFBADYCIAsgAUHbADYCBAsgBCgCJEUNASABKAIUIgIhAwJAA0ACQCABKAIMIAJGBEACQCACIANNDQAgASgCHCgCLEUNACAAIAAoAjAgASgCCCADaiACIANrEDU2AjALIAAQNiABKAIUIgIgASgCDEYNASACIQMLQQEhBSABKAIcKAIkIQQgASABKAIgIgZBAWo2AiAgBCAGai0AACEEIAEgAkEBajYCFCABKAIIIAJqIAQ6AAAgBARAIAEoAhQhAgwCBSADIQIMAwsACwtBACEFCwJAIAEoAhwiBCgCLEUNACABKAIUIgMgAk0NACAAIAAoAjAgASgCCCACaiADIAJrEDU2AjALIAUNASABKAIEIQILIAJB5wBHDQIgASgCHCEEDAELIAFB5wA2AgQLIAQoAiwEQCABKAIUIgVBAmoiAiABKAIMIgRLBH8gABA2IAEoAgwhBCABKAIUIgVBAmoFIAILIARLDQEgACgCMCECIAEgBUEBajYCFCABKAIIIAVqIAI6AAAgACgCMCECIAEgASgCFCIDQQFqNgIUIAMgASgCCGogAkEIdjoAACAAQQBBAEEAEDU2AjAgAUHxADYCBAwBCyABQfEANgIECwJAIAEoAhQEQCAAEDYgACgCEARAIAAoAgQhAgwCCwwECyAAKAIEIgINAEEAIQILAkACQAJAIAEoAgQiA0GaBUYEQCACRQ0BDAULIAINAQsgA0GaBUcNACABKAJ0RQ0BCwJ/AkACQAJAIAEoAogBQX5qDgIAAQILIAEQnQQMAgsgARCcBAwBCyABQQQgASgChAFBDGxBuNcAaigCABEDAAsiAkF+cUECRgRAIAFBmgU2AgQLIAJBfXFFBEBBACECIAAoAhANAgwECyACQQFHDQAgAUEAQQBBABCOAiAAEDYgACgCEA0ADAMLQQEhAiABKAIYIgNBAUgNACAAKAIwIQICQCADQQJGBEAgASABKAIUIgNBAWo2AhQgAyABKAIIaiACOgAAIAAoAjAhAiABIAEoAhQiA0EBajYCFCADIAEoAghqIAJBCHY6AAAgAC8BMiECIAEgASgCFCIDQQFqNgIUIAMgASgCCGogAjoAACAALQAzIQIgASABKAIUIgNBAWo2AhQgAyABKAIIaiACOgAAIAAoAgghAiABIAEoAhQiA0EBajYCFCADIAEoAghqIAI6AAAgACgCCCECIAEgASgCFCIDQQFqNgIUIAMgASgCCGogAkEIdjoAACAALwEKIQIgASABKAIUIgNBAWo2AhQgAyABKAIIaiACOgAAIAAtAAshAiABIAEoAhQiA0EBajYCFCADIAEoAghqIAI6AAAMAQsgASACQRB2EHUgASAALwEwEHULIAAQNiABKAIYIgBBAU4EQCABQQAgAGs2AhgLIAEoAhRFIQILIAIPCyAAQceEATYCGEF7DwsgAUF/NgIoQQAL3QEBBn8CQCAAKAKAgBAiBSAAKAKEgBAiAyAAKAKMgBAiBGpBBGpJDQAgACgClIAQIgIgBSADa0F9aiIGTw0AA0AgACACQf//A3FBAXRqQYCACGogAiAAIAIgA2oQOkECdGoiBCgCAGsiB0H//wMgB0H//wNJGzsBACAEIAI2AgAgAkEBaiICIAZJDQALIAAoAoyAECEECyAAIAQ2ApCAECAAIAM2AoiAECAAQQA2ApyAECAAIAE2AoCAECAAIAUgA2siAjYCjIAQIAAgAjYClIAQIAAgASACazYChIAQC9kDAQR/IwBBEGsiAyQAIAFBADYCACAAKAIAIgIgA0EMaiACKAIAKAIMEQMAIQICQCADKAIMRQ0AIAIsAAAhAiAAKAIAIgRBASAEKAIAKAIQEQQAIAEgASgCACACQf8AcXI2AgACQCACQX9KDQAgACgCACICIANBDGogAigCACgCDBEDACECIAMoAgxFDQEgAiwAACECIAAoAgAiBEEBIAQoAgAoAhARBAAgASABKAIAIAJB/wBxQQd0cjYCACACQX9KDQAgACgCACICIANBDGogAigCACgCDBEDACECIAMoAgxFDQEgAiwAACECIAAoAgAiBEEBIAQoAgAoAhARBAAgASABKAIAIAJB/wBxQQ50cjYCACACQX9KDQAgACgCACICIANBDGogAigCACgCDBEDACECIAMoAgxFDQEgAiwAACECIAAoAgAiBEEBIAQoAgAoAhARBAAgASABKAIAIAJB/wBxQRV0cjYCACACQX9KDQAgACgCACICIANBDGogAigCACgCDBEDACECIAMoAgxFDQEgAiwAACEFIAAoAgAiAEEBIAAoAgAoAhARBAAgASABKAIAIAVBHHRyNgIAIAVBf0oNAEEAIQUMAQtBASEFCyADQRBqJAAgBQvhSQE3fwJAIAAoAoCAECIJIAAoAoSAECILayAAKAKQgBBrIghBgIAETwRAIABBADYCnIAQDAELAkAgCA0AIAMoAgBBgSBIDQAgACAAKAKcgBBBoIAQECoiACABEKwEIAAgBTsBmIAQDAELAkAgBEEATEEAIAZBAkYbDQAgAygCACIIQYCAgPAHSw0AIAAgCCAJajYCgIAQQQkgBSAFQQFIGyIFQQwgBUEMSBsiG0EMbCIJQZQWaigCACEuAkACfyAbQQlNBEAgA0EANgIAIAIgBGoiOkF7aiA6IAZBAkYiOxshKSABIAhqITMgASEoIAIhCQJAIAhBDUgNACAzQXRqIjIgAUkNAEGANCAbdkEBcSE0IDNBe2oiGEF/aiEvIBhBfWohIkEAIRsDQCAAKAKUgBAhBCAAKAKIgBAhEyAAKAKcgBAhFCAoIQwDQCAAKAKQgBAiBSAMIAtrIh9BgYB8aiAFQYCABGogH0sbIRUgACgC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BEADQCADKAAAIAQoAABzIgkEQCAJECUgBGogAGsMBAsgA0EEaiEDIARBBGoiBCAUSQ0ACwsCQCAEIBhPDQAgAy8AACAELwAARw0AIANBAmohAyAEQQJqIQQLIAQgF0kEfyAEQQFqIAQgAy0AACAELQAARhsFIAQLIABrDAELIAMQJQsiAEHwAWpB/wFuakEIaiAPSw0EIAdBAmohAyAAIAZqQQRqIQYgBS0AACEEAn8gAEEPTwRAIAUgBEEPajoAACADQX8QNCAAQXFqIgRB/AdPBEADQCADQQRqIgNBfxA0IARBhHhqIgRB+wdLDQALCyADIARB//8DcUH/AW4iAGoiAyAAQYF+bCAEajoAACADQQFqDAELIAUgACAEajoAACADCyEFIAYgEU8NASAGQX5qIgAgACgAACALEDAgCCALIAwQSSAGKAAAIQACQAJAIBZFBEAgAEEBEDAiACAIEIUBIQQgBiAAIAhBASAMEEkgBEH//wNqIAZJDQEgBCgAACAGKAAARw0BDAILIAAgCxAwIgMgCCALEEghACAGIAxrIgQgAyAIIAsQXCAAQf//A2ogBEkNACAAIAxqIgQoAAAgBigAAEYNAQsgBkEBaiIDKAAAIAsQMCEEDAMLIAVBADoAACAFQQFqIQcMAAsACwtBACETIAUgECAGayIBaiABQfABakH/AW5qQQFqIA9LDQECQCABQQ9PBEAgBUHwAToAACAFQQFqIQAgAUFxaiIDQf8BSQRAIAAiBSADOgAADAILIABB/wEgAUHyfWoiAEH/AW5BAWoQKBogAEH/AW4iAyAFakECaiIFIANBgX5sIABqOgAADAELIAUgAUEEdDoAAAsgBUEBaiAGIAEQKiABaiACayETDAELIANBgICA8AdLDQAgASADaiIPQXVqIRAgD0F0aiEUIAgoAoCAASEAIAhBAUECIAFB//8DSxsiCzsBhoABIAggACADajYCgIABIAggCCgCkIABIANqNgKQgAEgASABKAAAIAsQMCAIIAsgASAAayIMEEkgD0F7aiITQX9qIRcgE0F9aiERIAZBBnQiCkEBciENIAFBAWoiAygAACALEDAhBCABQYCABEkhFSACIQUgASEGA0ACQCAVRQRAIAMgFEsNBCADQQFqIQ4gCiEJIA0hBwNAIAQgCBCFASEAIA4oAABBARAwIRIgAyAE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IAJBCE8EQANAIAMEQCADIAVsIQcgBUEHciIIIANsIQkgBUEGciIKIANsIQsgBUEFciIMIANsIQ0gBUEEciIOIANsIQ8gBUEDciIQIANsIREgBUECciISIANsIRMgBUEBciIUIANsIRVBACEEA0AgASAFIAIgBGwiBmpqIAAgBCAHamotAAA6AAAgASAGIBRqaiAAIAQgFWpqLQAAOgAAIAEgBiASamogACAEIBNqai0AADoAACABIAYgEGpqIAAgBCARamotAAA6AAAgASAGIA5qaiAAIAQgD2pqLQAAOgAAIAEgBiAMamogACAEIA1qai0AADoAACABIAYgCmpqIAAgBCALamotAAA6AAAgASAGIAhqaiAAIAQgCWpqLQAAOgAAIARBAWoiBCADRw0ACwsgBUEPaiEEIAVBCGohBSAEIAJJDQALCyACQXhxIgUgAk8NAANAIAMEQCADIAVsIQZBACEEA0AgASACIARsIAVqaiAAIAQgBmpqLQAAOgAAIARBAWoiBCADRw0ACwsgBUEBaiIFIAJHDQALCyACIANsrQuCAQEGfyABIAEgAG4iBiAAbGshByAAIAFNBEAgBkEBIAZBAUsbIQgDQCAABEAgACAEbCEJQQAhBQNAIAMgBSAJamogAiAFIAZsIARqai0AADoAACAFQQFqIgUgAEcNAAsLIARBAWoiBCAIRw0ACwsgAyABIAdrIgBqIAAgAmogBxAqGgsNACAAIAEgAiADEL0EC4IBAQZ/IAEgASAAbiIGIABsayEHIAAEQCAGQQEgBkEBSxshCANAIAAgAU0EQCAEIAZsIQlBACEFA0AgAyAFIAlqaiACIAAgBWwgBGpqLQAAOgAAIAVBAWoiBSAIRw0ACwsgBEEBaiIEIABHDQALCyADIAEgB2siAGogACACaiAHECoaC7gBAQN/AkAgAUEBSA0AIAAsAAAiBEH/AHEhAwJAIARBf0oNACABQQJIDQEgACwAASIEQQd0QYD/AHEgA3IhAyAEQX9KDQAgAUEDSA0BIAAsAAIiBEEOdEGAgP8AcSADciEDIARBf0oNACABQQRIDQEgACwAAyIEQRV0QYCAgP8AcSADciEDIARBf0oNACABQQVIDQEgAC0ABCIAQQ9LDQEgAEEcdCADciEDCyACIAM2AgBBASEFCyAFCw0AIAAgASACIAMQvwQLlAIB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CA0tEC0gLgAJDS4QLiAvAAoNLxAvIDAACw0wEDAgMQAEDjEQMSAyAAUOMhAyIDMABg4zEDMgNAAHDjQQNCA1AAgONRA1IDYACQ42EDYgNwAKDjcQNyA4AAsOOBA4IDkABA85EDkgOgAFDzoQOiA7AAYPOxA7IDwABw88EDwgAQgIDz0QPSABEAkPPhA+IAEYCg8/ED8gASALD0AQQCAAAAAA/wAAAP//AAD///8A/////2RlY29tcHJlc3MAY29tcHJlc3MAZnJlZV9yZXN1bHQAdmkAAHhzAABpaWlpaWlpAEGQDgvUBigHAAAwBwAAMAcAAMxzAADMcwAAzHMAABh0AAC2BwAAQHQAAEgHAAAAAAAAAQAAAIgHAAAAAAAATlN0M19fMjEyYmFzaWNfc3RyaW5nSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUUAABh0AACQBwAATlN0M19fMjIxX19iYXNpY19zdHJpbmdfY29tbW9uSUxiMUVFRQBOMTBlbXNjcmlwdGVuM3ZhbEUAAAAAGHQAANQHAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0loRUUAaWlpAAAoBwAAMAcAABgIAAAgCAAAJAgAACoIAAAxCAAANggAAGJsb3NjbHoAbHo0AGx6NGhjAHNuYXBweQB6bGliAHpzdGQARXJyb3IuICBudGhyZWFkcyBjYW5ub3QgYmUgbGFyZ2VyIHRoYW4gQkxPU0NfTUFYX1RIUkVBRFMgKCVkKQBFcnJvci4gIG50aHJlYWRzIG11c3QgYmUgYSBwb3NpdGl2ZSBpbnRlZ2VyAEVSUk9SOyByZXR1cm4gY29kZSBmcm9tIHB0aHJlYWRfY3JlYXRlKCkgaXMgJWQKAAlFcnJvciBkZXRhaWw6ICVzCgBCbG9zYyBoYXMgbm90IGJlZW4gY29tcGlsZWQgd2l0aCAnJXMnIABjb21wcmVzc2lvbiBzdXBwb3J0LiAgUGxlYXNlIHVzZSBvbmUgaGF2aW5nIGl0LgBFcnJvciBhbGxvY2F0aW5nIG1lbW9yeSEARVJST1I7IHJldHVybiBjb2RlIGZyb20gcHRocmVhZF9qb2luKCkgaXMgJWQKAElucHV0IGJ1ZmZlciBzaXplIGNhbm5vdCBleGNlZWQgJWQgYnl0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AAAIAAAACQAAAAkAAAAKAAAACgAAAAsAAAALAAAADAAAAAwAAAANAAAADQBBgNsAC/8IDAAIAIwACABMAAgAzAAIACwACACsAAgAbAAIAOwACAAcAAgAnAAIAFwACADcAAgAPAAIALwACAB8AAgA/AAIAAIACACCAAgAQgAIAMIACAAiAAgAogAIAGIACADiAAgAEgAIAJIACABSAAgA0gAIADIACACyAAgAcgAIAPIACAAKAAgAigAIAEoACADKAAgAKgAIAKoACABqAAgA6gAIABoACACaAAgAWgAIANoACAA6AAgAugAIAHoACAD6AAgABgAIAIYACABGAAgAxgAIACYACACmAAgAZgAIAOYACAAWAAgAlgAIAFYACADWAAgANgAIALYACAB2AAgA9gAIAA4ACACOAAgATgAIAM4ACAAuAAgArgAIAG4ACADuAAgAHgAIAJ4ACABeAAgA3gAIAD4ACAC+AAgAfgAIAP4ACAABAAgAgQAIAEEACADBAAgAIQAIAKEACABhAAgA4QAIABEACACRAAgAUQAIANEACAAxAAgAsQAIAHEACADxAAgACQAIAIkACABJAAgAyQAIACkACACpAAgAaQAIAOkACAAZAAgAmQAIAFkACADZAAgAOQAIALkACAB5AAgA+QAIAAUACACFAAgARQAIAMUACAAlAAgApQAIAGUACADlAAgAFQAIAJUACABVAAgA1QAIADUACAC1AAgAdQAIAPUACAANAAgAjQAIAE0ACADNAAgALQAIAK0ACABtAAgA7QAIAB0ACACdAAgAXQAIAN0ACAA9AAgAvQAIAH0ACAD9AAgAEwAJABMBCQCTAAkAkwEJAFMACQBTAQkA0wAJANMBCQAzAAkAMwEJALMACQCzAQkAcwAJAHMBCQDzAAkA8wEJAAsACQALAQkAiwAJAIsBCQBLAAkASwEJAMsACQDLAQkAKwAJACsBCQCrAAkAqwEJAGsACQBrAQkA6wAJAOsBCQAbAAkAGwEJAJsACQCbAQkAWwAJAFsBCQDbAAkA2wEJADsACQA7AQkAuwAJALsBCQB7AAkAewEJAPsACQD7AQkABwAJAAcBCQCHAAkAhwEJAEcACQBHAQkAxwAJAMcBCQAnAAkAJwEJAKcACQCnAQkAZwAJAGcBCQDnAAkA5wEJABcACQAXAQkAlwAJAJcBCQBX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AAAJ/ABgBwAAAAhRAAAIEQAVCIMAEgcfAAAIcQAACDEAAAnCABAHCgAACGEAAAghAAAJogAACAEAAAiBAAAIQQAACeIAEAcGAAAIWQAACBkAAAmSABMHOwAACHkAAAg5AAAJ0gARBxEAAAhpAAAIKQAACbIAAAgJAAAIiQAACEkAAAnyABAHBAAACFUAAAgVABAIAgETBysAAAh1AAAINQAACcoAEQcNAAAIZQAACCUAAAmqAAAIBQAACIUAAAhFAAAJ6gAQBwgAAAhdAAAIHQAACZoAFAdTAAAIfQAACD0AAAnaABIHFwAACG0AAAgtAAAJugAACA0AAAiNAAAITQAACfoAEAcDAAAIUwAACBMAFQjDABMHIwAACHMAAAgzAAAJxgARBwsAAAhjAAAIIwAACaYAAAgDAAAIgwAACEMAAAnmABAHBwAACFsAAAgbAAAJlgAUB0MAAAh7AAAIOwAACdYAEgcTAAAIawAACCsAAAm2AAAICwAACIsAAAhLAAAJ9gAQBwUAAAhXAAAIFwBACAAAEwczAAAIdwAACDcAAAnOABEHDwAACGcAAAgnAAAJrgAACAcAAAiHAAAIRwAACe4AEAcJAAAIXwAACB8AAAmeABQHYwAACH8AAAg/AAAJ3gASBxsAAAhvAAAILwAACb4AAAgPAAAIjwAACE8AAAn+AGAHAAAACFAAAAgQABQIcwASBx8AAAhwAAAIMAAACcEAEAcKAAAIYAAACCAAAAmhAAAIAAAACIAAAAhAAAAJ4QAQBwYAAAhYAAAIGAAACZEAEwc7AAAIeAAACDgAAAnRABEHEQAACGgAAAgoAAAJsQAACAgAAAiIAAAISAAACfEAEAcEAAAIVAAACBQAFQjjABMHKwAACHQAAAg0AAAJyQARBw0AAAhkAAAIJAAACakAAAgEAAAIhAAACEQAAAnpABAHCAAACFwAAAgcAAAJmQAUB1MAAAh8AAAIPAAACdkAEgcXAAAIbAAACCwAAAm5AAAIDAAACIwAAAhMAAAJ+QAQBwMAAAhSAAAIEgAVCKMAEwcjAAAIcgAACDIAAAnFABEHCwAACGIAAAgiAAAJpQAACAIAAAiCAAAIQgAACeUAEAcHAAAIWgAACBoAAAmVABQHQwAACHoAAAg6AAAJ1QASBxMAAAhqAAAIKgAACbUAAAgKAAAIigAACEoAAAn1ABAHBQAACFYAAAgWAEAIAAATBzMAAAh2AAAINgAACc0AEQcPAAAIZgAACCYAAAmtAAAIBgAACIYAAAhGAAAJ7QAQBwkAAAheAAAIHgAACZ0AFAdjAAAIfgAACD4AAAndABIHGwAACG4AAAguAAAJvQAACA4AAAiOAAAITgAACf0AYAcAAAAIUQAACBEAFQiDABIHHwAACHEAAAgxAAAJwwAQBwoAAAhhAAAIIQAACaMAAAgBAAAIgQAACEEAAAnjABAHBgAACFkAAAgZAAAJkwATBzsAAAh5AAAIOQAACdMAEQcRAAAIaQAACCkAAAmzAAAICQAACIkAAAhJAAAJ8wAQBwQAAAhVAAAIFQAQCAIBEwcrAAAIdQAACDUAAAnLABEHDQAACGUAAAglAAAJqwAACAUAAAiFAAAIRQAACesAEAcIAAAIXQAACB0AAAmbABQHUwAACH0AAAg9AAAJ2wASBxcAAAhtAAAILQAACbsAAAgNAAAIjQAACE0AAAn7ABAHAwAACFMAAAgTABUIwwATByMAAAhzAAAIMwAACccAEQcLAAAIYwAACCMAAAmnAAAIAwAACIMAAAhDAAAJ5wAQBwcAAAhbAAAIGwAACZcAFAdDAAAIewAACDsAAAnXABIHEwAACGsAAAgrAAAJtwAACAsAAAiLAAAISwAACfcAEAcFAAAIVwAACBcAQAgAABMHMwAACHcAAAg3AAAJzwARBw8AAAhnAAAIJwAACa8AAAgHAAAIhwAACEcAAAnvABAHCQAACF8AAAgfAAAJnwAUB2MAAAh/AAAIPwAACd8AEgcbAAAIbwAACC8AAAm/AAAIDwAACI8AAAhPAAAJ/wAQBQEAFwUBARMFEQAbBQEQEQUFABkFAQQVBUEAHQUBQBAFAwAYBQECFAUhABwFASASBQkAGgUBCBYFgQBABQAAEAUCABcFgQETBRkAGwUBGBEFBwAZBQEGFQVhAB0FAWAQBQQAGAUBAxQFMQAcBQEwEgUNABoFAQwWBcEAQAUAADEuMi44AHN0cmVhbSBlcnJvcgBpbnN1ZmZpY2llbnQgbWVtb3J5AGJ1ZmZlciBlcnJvcgBB5IQBC6EVazgHAA2yBwCc8gcAcGQIAGCuCgCwcQsAMKoMABMAAAAMAAAADQAAAAEAAAAGAAAAAQAAAAEAAAATAAAADQAAAA4AAAABAAAABwAAAAAAAAABAAAAFAAAAA8AAAAQAAAAAQAAAAYAAAAAAAAAAQAAABUAAAAQAAAAEQAAAAEAAAAFAAAAAAAAAAIAAAAVAAAAEgAAABIAAAABAAAABQAAAAAAAAACAAAAFQAAABIAAAATAAAAAgAAAAUAAAACAAAAAwAAABUAAAATAAAAEwAAAAMAAAAFAAAABAAAAAMAAAAVAAAAEwAAABMAAAADAAAABQAAAAgAAAAEAAAAFQAAABMAAAATAAAAAwAAAAUAAAAQAAAABQAAABUAAAATAAAAFAAAAAQAAAAFAAAAEAAAAAUAAAAWAAAAFAAAABUAAAAEAAAABQAAABAAAAAFAAAAFgAAABUAAAAWAAAABAAAAAUAAAAQAAAABQAAABYAAAAVAAAAFgAAAAUAAAAFAAAAEAAAAAUAAAAWAAAAFQAAABYAAAAFAAAABQAAACAAAAAGAAAAFgAAABYAAAAXAAAABQAAAAUAAAAgAAAABgAAABYAAAAXAAAAFwAAAAYAAAAFAAAAIAAAAAYAAAAWAAAAFgAAABYAAAAFAAAABQAAADAAAAAHAAAAFwAAABcAAAAWAAAABQAAAAQAAABAAAAABwAAABcAAAAXAAAAFgAAAAYAAAADAAAAQAAAAAgAAAAXAAAAGAAAABYAAAAHAAAAAwAAAAABAAAJAAAAGQAAABkAAAAXAAAABwAAAAMAAAAAAQAACQAAABoAAAAaAAAAGAAAAAcAAAADAAAAAAIAAAkAAAAbAAAAGwAAABkAAAAJAAAAAwAAAOcDAAAJAAAAEgAAAAwAAAANAAAAAQAAAAUAAAABAAAAAQAAABIAAAANAAAADgAAAAEAAAAGAAAAAAAAAAEAAAASAAAADgAAAA4AAAABAAAABQAAAAAAAAACAAAAEgAAABAAAAAQAAAAAQAAAAQAAAAAAAAAAgAAABIAAAAQAAAAEQAAAAIAAAAFAAAAAgAAAAMAAAASAAAAEgAAABIAAAADAAAABQAAAAIAAAADAAAAEgAAABIAAAATAAAAAwAAAAUAAAAEAAAABAAAABIAAAASAAAAEwAAAAQAAAAEAAAABAAAAAQAAAASAAAAEgAAABMAAAAEAAAABAAAAAgAAAAFAAAAEgAAABIAAAATAAAABQAAAAQAAAAIAAAABQAAABIAAAASAAAAEwAAAAYAAAAEAAAACAAAAAUAAAASAAAAEgAAABMAAAAFAAAABAAAAAwAAAAGAAAAEgAAABMAAAATAAAABwAAAAQAAAAMAAAABgAAABIAAAASAAAAEwAAAAQAAAAEAAAAEAAAAAcAAAASAAAAEgAAABMAAAAEAAAAAwAAACAAAAAHAAAAEgAAABIAAAATAAAABgAAAAMAAACAAAAABwAAABIAAAATAAAAEwAAAAYAAAADAAAAgAAAAAgAAAASAAAAEwAAABMAAAAIAAAAAwAAAAABAAAIAAAAEgAAABMAAAATAAAABgAAAAMAAACAAAAACQAAABIAAAATAAAAEwAAAAgAAAADAAAAAAEAAAkAAAASAAAAEwAAABMAAAAKAAAAAwAAAAACAAAJAAAAEgAAABMAAAATAAAADAAAAAMAAAAAAgAACQAAABIAAAATAAAAEwAAAA0AAAADAAAA5wMAAAkAAAARAAAADAAAAAwAAAABAAAABQAAAAEAAAABAAAAEQAAAAwAAAANAAAAAQAAAAYAAAAAAAAAAQAAABEAAAANAAAADwAAAAEAAAAFAAAAAAAAAAEAAAARAAAADwAAABAAAAACAAAABQAAAAAAAAACAAAAEQAAABEAAAARAAAAAgAAAAQAAAAAAAAAAgAAABEAAAAQAAAAEQAAAAMAAAAEAAAAAgAAAAMAAAARAAAAEQAAABEAAAADAAAABAAAAAQAAAAEAAAAEQAAABEAAAARAAAAAwAAAAQAAAAIAAAABQAAABEAAAARAAAAEQAAAAQAAAAEAAAACAAAAAUAAAARAAAAEQAAABEAAAAFAAAABAAAAAgAAAAFAAAAEQAAABEAAAARAAAABgAAAAQAAAAIAAAABQAAABEAAAARAAAAEQAAAAUAAAAEAAAACAAAAAYAAAARAAAAEgAAABEAAAAHAAAABAAAAAwAAAAGAAAAEQAAABIAAAARAAAAAwAAAAQAAAAMAAAABwAAABEAAAASAAAAEQAAAAQAAAADAAAAIAAAAAcAAAARAAAAEgAAABEAAAAGAAAAAwAAAAABAAAHAAAAEQAAABIAAAARAAAABgAAAAMAAACAAAAACAAAABEAAAASAAAAEQAAAAgAAAADAAAAAAEAAAgAAAARAAAAEgAAABEAAAAKAAAAAwAAAAACAAAIAAAAEQAAABIAAAARAAAABQAAAAMAAAAAAQAACQAAABEAAAASAAAAEQAAAAcAAAADAAAAAAIAAAkAAAARAAAAEgAAABEAAAAJAAAAAwAAAAACAAAJAAAAEQAAABIAAAARAAAACwAAAAMAAADnAwAACQAAAA4AAAAMAAAADQAAAAEAAAAFAAAAAQAAAAEAAAAOAAAADgAAAA8AAAABAAAABQAAAAAAAAABAAAADgAAAA4AAAAPAAAAAQAAAAQAAAAAAAAAAQAAAA4AAAAOAAAADwAAAAIAAAAEAAAAAAAAAAIAAAAOAAAADgAAAA4AAAAEAAAABAAAAAIAAAADAAAADgAAAA4AAAAOAAAAAwAAAAQAAAAEAAAABAAAAA4AAAAOAAAADgAAAAQAAAAEAAAACAAAAAUAAAAOAAAADgAAAA4AAAAGAAAABAAAAAgAAAAFAAAADgAAAA4AAAAOAAAACAAAAAQAAAAIAAAABQAAAA4AAAAPAAAADgAAAAUAAAAEAAAACAAAAAYAAAAOAAAADwAAAA4AAAAJAAAABAAAAAgAAAAGAAAADgAAAA8AAAAOAAAAAwAAAAQAAAAMAAAABwAAAA4AAAAPAAAADgAAAAQAAAADAAAAGAAAAAcAAAAOAAAADwAAAA4AAAAFAAAAAwAAACAAAAAIAAAADgAAAA8AAAAPAAAABgAAAAMAAABAAAAACAAAAA4AAAAPAAAADwAAAAcAAAADAAAAAAEAAAgAAAAOAAAADwAAAA8AAAAFAAAAAwAAADAAAAAJAAAADgAAAA8AAAAPAAAABgAAAAMAAACAAAAACQAAAA4AAAAPAAAADwAAAAcAAAADAAAAAAEAAAkAAAAOAAAADwAAAA8AAAAIAAAAAwAAAAABAAAJAAAADgAAAA8AAAAPAAAACAAAAAMAAAAAAgAACQAAAA4AAAAPAAAADwAAAAkAAAADAAAAAAIAAAkAAAAOAAAADwAAAA8AAAAKAAAAAwAAAOcDAAAJAAAAIAAAACAAAAAhAAAAIgAAACMAAAAkAAAAJQAAACYAAAAnAAAAKAAAACkAAAApAAAAKgAAACsAAAAsAAAALQAAAC4AAAAvAAAAMAAAADAAAAAxAAAAMQAAADIAAAAzAAAANAAAADUAAAA2AAAANwAAADgAAAA4AEGQmgEL+gEEAAMAAgACAAIAAgACAAIAAgACAAIAAgACAAEAAQABAAIAAgACAAIAAgACAAIAAgACAAMAAgABAAEAAQABAAEA//////////8AAAAAAAAAAAEAAQABAAEAAQABAAIAAgACAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAP////////////8AAAAAAAABAAQAAwACAAIAAgACAAIAAgABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAP//////////////////AEGVnAEL+AcIAAAABwAAagYAAAAGAACtBQAAagUAADEFAAAABQAA1AQAAK0EAACKBAAAagQAAEwEAAAxBAAAFwQAAAAEAADpAwAA1AMAAMADAACtAwAAmwMAAIoDAAB5AwAAagMAAFsDAABMAwAAPgMAADEDAAAkAwAAFwMAAAsDAAAAAwAA9AIAAOkCAADeAgAA1AIAAMoCAADAAgAAtgIAAK0CAACkAgAAmwIAAJICAACKAgAAggIAAHkCAAByAgAAagIAAGICAABbAgAAUwIAAEwCAABFAgAAPgIAADcCAAAxAgAAKgIAACQCAAAeAgAAFwIAABECAAALAgAABQIAAAACAAD6AQAA9AEAAO8BAADpAQAA5AEAAN4BAADZAQAA1AEAAM8BAADKAQAAxQEAAMABAAC7AQAAtgEAALIBAACtAQAAqAEAAKQBAACfAQAAmwEAAJcBAACSAQAAjgEAAIoBAACGAQAAggEAAH4BAAB5AQAAdQEAAHIBAABuAQAAagEAAGYBAABiAQAAXgEAAFsBAABXAQAAUwEAAFABAABMAQAASQEAAEUBAABCAQAAPgEAADsBAAA3AQAANAEAADEBAAAuAQAAKgEAACcBAAAkAQAAIQEAAB4BAAAaAQAAFwEAABQBAAARAQAADgEAAAsBAAAIAQAABQEAAAIBAAAAAQAA/QAAAPoAAAD3AAAA9AAAAPEAAADvAAAA7AAAAOkAAADmAAAA5AAAAOEAAADeAAAA3AAAANkAAADXAAAA1AAAANEAAADPAAAAzAAAAMoAAADHAAAAxQAAAMIAAADAAAAAvgAAALsAAAC5AAAAtgAAALQAAACyAAAArwAAAK0AAACrAAAAqAAAAKYAAACkAAAAogAAAJ8AAACdAAAAmwAAAJkAAACXAAAAlQAAAJIA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AAAPAAAAEAAAABIAAAAUAAAAFgAAABgAAAAcAAAAIAAAACgAAAAwAAAAQAAAAIAAAAAAAQAAAAIAAAAEAAAACAAAABAAAAAgAAAAQAAAAIAAAAAAAQBBsLIBC9YEAQAAAAEAAAABAAAAAQAAAAIAAAACAAAAAwAAAAMAAAAEAAAABgAAAAcAAAAIAAAACQAAAAoAAAALAAAADAAAAA0AAAAOAAAADwAAABAAAAABAAEBBgAAAAAAAAQAAAAAEAAABAAAAAAgAAAFAQAAAAAAAAUDAAAAAAAABQQAAAAAAAAFBgAAAAAAAAUHAAAAAAAABQkAAAAAAAAFCgAAAAAAAAUMAAAAAAAABg4AAAAAAAEFEAAAAAAAAQUUAAAAAAABBRYAAAAAAAIFHAAAAAAAAwUgAAAAAAAEBTAAAAAgAAYFQAAAAAAABwWAAAAAAAAIBgABAAAAAAoGAAQAAAAADAYAEAAAIAAABAAAAAAAAAAEAQAAAAAAAAUCAAAAIAAABQQAAAAAAAAFBQAAACAAAAUHAAAAAAAABQgAAAAgAAAFCgAAAAAAAAULAAAAAAAABg0AAAAgAAEFEAAAAAAAAQUSAAAAIAABBRYAAAAAAAIFGAAAACAAAwUgAAAAAAADBSgAAAAAAAYEQAAAABAABgRAAAAAIAAHBYAAAAAAAAkGAAIAAAAACwYACAAAMAAABAAAAAAQAAAEAQAAACAAAAUCAAAAIAAABQMAAAAgAAAFBQAAACAAAAUGAAAAIAAABQgAAAAgAAAFCQAAACAAAAULAAAAIAAABQwAAAAAAAAGDwAAACAAAQUSAAAAIAABBRQAAAAgAAIFGAAAACAAAgUcAAAAIAADBSgAAAAgAAQFMAAAAAAAEAYAAAEAAAAPBgCAAAAAAA4GAEAAAAAADQYAIABBlLcBC4MEAQAAAAEAAAAFAAAADQAAAB0AAAA9AAAAfQAAAP0AAAD9AQAA/QMAAP0HAAD9DwAA/R8AAP0/AAD9fwAA/f8AAP3/AQD9/wMA/f8HAP3/DwD9/x8A/f8/AP3/fwD9//8A/f//Af3//wP9//8H/f//D/3//x/9//8//f//fwAAAAABAAAAAgAAAAMAAAAEAAAABQAAAAYAAAAHAAAACAAAAAkAAAAKAAAACwAAAAwAAAANAAAADgAAAA8AAAAQAAAAEQAAABIAAAAT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IGludD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8bG9uZz4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgbG9uZz4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50OF90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50OF90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50MTZfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dWludDMyX3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGZsb2F0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxkb3VibGU+AAAAGHQAAFBlAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0lkRUUAABh0AAB4ZQAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJZkVFAAAYdAAAoGUAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SW1FRQAAGHQAAMhlAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0lsRUUAABh0AADwZQAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJakVFAAAYdAAAGGYAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWlFRQAAGHQAAEBmAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0l0RUUAABh0AABoZgAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJc0VFAAAYdAAAkGYAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWFFRQAAGHQAALhmAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0ljRUUAAEB0AADwZgAAAAAAAAEAAACIBwAAAAAAAE5TdDNfXzIxMmJhc2ljX3N0cmluZ0lEaU5TXzExY2hhcl90cmFpdHNJRGlFRU5TXzlhbGxvY2F0b3JJRGlFRUVFAAAAQHQAAExnAAAAAAAAAQAAAIgHAAAAAAAATlN0M19fMjEyYmFzaWNfc3RyaW5nSURzTlNfMTFjaGFyX3RyYWl0c0lEc0VFTlNfOWFsbG9jYXRvcklEc0VFRUUAAABAdAAAqGcAAAAAAAABAAAAiAcAAAAAAABOU3QzX18yMTJiYXNpY19zdHJpbmdJd05TXzExY2hhcl90cmFpdHNJd0VFTlNfOWFsbG9jYXRvckl3RUVFRQAAQHQAAABoAAAAAAAAAQAAAIgHAAAAAAAATlN0M19fMjEyYmFzaWNfc3RyaW5nSWhOU18xMWNoYXJfdHJhaXRzSWhFRU5TXzlhbGxvY2F0b3JJaEVFRUUAABEACgAREREAAAAABQAAAAAAAAkAAAAACwAAAAAAAAAAEQAPChEREQMKBwABAAkLCwAACQYLAAALAAYRAAAAERERAEGR0QELIQsAAAAAAAAAABEACgoREREACgAAAgAJCwAAAAkACwAACwBBy9EBCwEMAEHX0QELFQwAAAAADAAAAAAJDAAAAAAADAAADABBhdIBCwEOAEGR0gELFQ0AAAAEDQAAAAAJDgAAAAAADgAADgBBv9IBCwEQAEHL0gELHg8AAAAADwAAAAAJEAAAAAAAEAAAEAAAEgAAABISEgBBgtMBCw4SAAAAEhISAAAAAAAACQBBs9MBCwELAEG/0wELFQoAAAAACgAAAAAJCwAAAAAACwAACwBB7dMBCwEMAEH50wELJwwAAAAADAAAAAAJDAAAAAAADAAADAAALSsgICAwWDB4AChudWxsKQBBsNQBC2cwMTIzNDU2Nzg5QUJDREVGGRJEOwI/LEcUPTMwChsGRktFNw9JDo4XA0AdPGkrNh9KLRwBICUpIQgMFRYiLhA4Pgs0MRhkdHV2L0EJfzkRI0MyQomKiwUEJignDSoeNYwHGkiTE5SVAEGg1QEL9hNJbGxlZ2FsIGJ5dGUgc2VxdWVuY2UARG9tYWluIGVycm9yAFJlc3VsdCBub3QgcmVwcmVzZW50YWJsZQBOb3QgYSB0dHkAUGVybWlzc2lvbiBkZW5pZWQAT3BlcmF0aW9uIG5vdCBwZXJtaXR0ZWQATm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQBObyBzdWNoIHByb2Nlc3MARmlsZSBleGlzdHMAVmFsdWUgdG9vIGxhcmdlIGZvciBkYXRhIHR5cGUATm8gc3BhY2UgbGVmdCBvbiBkZXZpY2UAT3V0IG9mIG1lbW9yeQBSZXNvdXJjZSBidXN5AEludGVycnVwdGVkIHN5c3RlbSBjYWxsAFJlc291cmNlIHRlbXBvcmFyaWx5IHVuYXZhaWxhYmxlAEludmFsaWQgc2VlawBDcm9zcy1kZXZpY2UgbGluawBSZWFkLW9ubHkgZmlsZSBzeXN0ZW0ARGlyZWN0b3J5IG5vdCBlbXB0eQBDb25uZWN0aW9uIHJlc2V0IGJ5IHBlZXIAT3BlcmF0aW9uIHRpbWVkIG91dABDb25uZWN0aW9uIHJlZnVzZWQASG9zdCBpcyBkb3duAEhvc3QgaXMgdW5yZWFjaGFibGUAQWRkcmVzcyBpbiB1c2UAQnJva2VuIHBpcGUASS9PIGVycm9yAE5vIHN1Y2ggZGV2aWNlIG9yIGFkZHJlc3MAQmxvY2sgZGV2aWNlIHJlcXVpcmVkAE5vIHN1Y2ggZGV2aWNlAE5vdCBhIGRpcmVjdG9yeQBJcyBhIGRpcmVjdG9yeQBUZXh0IGZpbGUgYnVzeQBFeGVjIGZvcm1hdCBlcnJvcgBJbnZhbGlkIGFyZ3VtZW50AEFyZ3VtZW50IGxpc3QgdG9vIGxvbmcAU3ltYm9saWMgbGluayBsb29wAEZpbGVuYW1lIHRvbyBsb25nAFRvbyBtYW55IG9wZW4gZmlsZXMgaW4gc3lzdGVtAE5vIGZpbGUgZGVzY3JpcHRvcnMgYXZhaWxhYmxlAEJhZCBmaWxlIGRlc2NyaXB0b3IATm8gY2hpbGQgcHJvY2VzcwBCYWQgYWRkcmVzcwBGaWxlIHRvbyBsYXJnZQBUb28gbWFueSBsaW5rcwBObyBsb2NrcyBhdmFpbGFibGUAUmVzb3VyY2UgZGVhZGxvY2sgd291bGQgb2NjdXIAU3RhdGUgbm90IHJlY292ZXJhYmxlAFByZXZpb3VzIG93bmVyIGRpZWQAT3BlcmF0aW9uIGNhbmNlbGVkAEZ1bmN0aW9uIG5vdCBpbXBsZW1lbnRlZABObyBtZXNzYWdlIG9mIGRlc2lyZWQgdHlwZQBJZGVudGlmaWVyIHJlbW92ZWQARGV2aWNlIG5vdCBhIHN0cmVhbQBObyBkYXRhIGF2YWlsYWJsZQBEZXZpY2UgdGltZW91dABPdXQgb2Ygc3RyZWFtcyByZXNvdXJjZXMATGluayBoYXMgYmVlbiBzZXZlcmVkAFByb3RvY29sIGVycm9yAEJhZCBtZXNzYWdlAEZpbGUgZGVzY3JpcHRvciBpbiBiYWQgc3RhdGUATm90IGEgc29ja2V0AERlc3RpbmF0aW9uIGFkZHJlc3MgcmVxdWlyZWQATWVzc2FnZSB0b28gbGFyZ2UAUHJvdG9jb2wgd3JvbmcgdHlwZSBmb3Igc29ja2V0AFByb3RvY29sIG5vdCBhdmFpbGFibGUAUHJvdG9jb2wgbm90IHN1cHBvcnRlZABTb2NrZXQgdHlwZSBub3Qgc3VwcG9ydGVkAE5vdCBzdXBwb3J0ZWQAUHJvdG9jb2wgZmFtaWx5IG5vdCBzdXBwb3J0ZWQAQWRkcmVzcyBmYW1pbHkgbm90IHN1cHBvcnRlZCBieSBwcm90b2NvbABBZGRyZXNzIG5vdCBhdmFpbGFibGUATmV0d29yayBpcyBkb3duAE5ldHdvcmsgdW5yZWFjaGFibGUAQ29ubmVjdGlvbiByZXNldCBieSBuZXR3b3JrAENvbm5lY3Rpb24gYWJvcnRlZABObyBidWZmZXIgc3BhY2UgYXZhaWxhYmxlAFNvY2tldCBpcyBjb25uZWN0ZWQAU29ja2V0IG5vdCBjb25uZWN0ZWQAQ2Fubm90IHNlbmQgYWZ0ZXIgc29ja2V0IHNodXRkb3duAE9wZXJhdGlvbiBhbHJlYWR5IGluIHByb2dyZXNzAE9wZXJhdGlvbiBpbiBwcm9ncmVzcwBTdGFsZSBmaWxlIGhhbmRsZQBSZW1vdGUgSS9PIGVycm9yAFF1b3RhIGV4Y2VlZGVkAE5vIG1lZGl1bSBmb3VuZABXcm9uZyBtZWRpdW0gdHlwZQBObyBlcnJvciBpbmZvcm1hdGlvbgAAYmFzaWNfc3RyaW5nAHN0ZDo6ZXhjZXB0aW9uAAAAAADccQAAPAAAAD0AAAA+AAAAGHQAAORxAABTdDlleGNlcHRpb24AAAAAAAAAAAhyAAAQAAAAPwAAAEAAAACMcgAAFHIAANxxAABTdDExbG9naWNfZXJyb3IAAAAAADhyAAAQAAAAQQAAAEAAAACMcgAARHIAAAhyAABTdDEybGVuZ3RoX2Vycm9yAFN0OXR5cGVfaW5mbwAAABh0AABVcgAAjHIAAAFzAABkcgAAjHIAAKxyAABscgAAAAAAANByAABCAAAAQwAAAEQAAABFAAAARgAAAEcAAABIAAAASQAAAE4xMF9fY3h4YWJpdjExN19fY2xhc3NfdHlwZV9pbmZvRQAAAIxyAADccgAAeHIAAE4xMF9fY3h4YWJpdjEyMF9fc2lfY2xhc3NfdHlwZV9pbmZvRQBOMTBfX2N4eGFiaXYxMTZfX3NoaW1fdHlwZV9pbmZvRQAAAAAAAABAcwAAQgAAAEoAAABEAAAARQAAAEsAAACMcgAATHMAAGxyAABOMTBfX2N4eGFiaXYxMjNfX2Z1bmRhbWVudGFsX3R5cGVfaW5mb0UAdgAAACxzAAB0cwAAYgAAACxzAACAcwAAYwAAACxzAACMcwAAaAAAACxzAACYcwAAYQAAACxzAACkcwAAcwAAACxzAACwcwAAdAAAACxzAAC8cwAAaQAAACxzAADIcwAAagAAACxzAADUcwAAbAAAACxzAADgcwAAbQAAACxzAADscwAAZgAAACxzAAD4cwAAZAAAACxzAAAEdAAAAAAAAHhyAABCAAAATAAAAEQAAABFAAAARgAAAE0AAABOAAAATwAAAAAAAABgdAAAQgAAAFAAAABEAAAARQAAAEYAAABRAAAAUgAAAFMAAACMcgAAbHQAAHhyAABOMTBfX2N4eGFiaXYxMjFfX3ZtaV9jbGFzc190eXBlX2luZm9FAAAAcHUAQZjpAQtBgC0AAAAyAAABAQAAHgEAAA8AAACALAAAAC0AAAAAAAAeAAAADwAAAAAAAAAwLAAAAAAAABMAAAAHAAAAAAAAAAUAQeTpAQsBOQBB/OkBCwo6AAAAOwAAAC12AEGU6gELAQIAQaPqAQsF//////8AQejqAQsJoH5QAAAAAAAFAEH86gELAVQAQZTrAQsOOgAAAFUAAACYegAAAAQAQazrAQsBAQBBu+sBCwUK/////w=="),vn,J1;(function(e){e[e.NOSHUFFLE=0]="NOSHUFFLE",e[e.SHUFFLE=1]="SHUFFLE",e[e.BITSHUFFLE=2]="BITSHUFFLE",e[e.AUTOSHUFFLE=-1]="AUTOSHUFFLE"})(J1||(J1={}));const O1=new Set(["blosclz","lz4","lz4hc","snappy","zlib","zstd"]);let Ss;const Y1=()=>JrA({noInitialRun:!0,wasmBinary:KrA}),VrA=(vn=class{constructor(e=5,A="lz4",t=1,i=0){if(e<0||e>9)throw new Error(`Invalid compression level: '${e}'. It should be between 0 and 9`);if(!O1.has(A))throw new Error(`Invalid compressor '${A}'. Valid compressors include +`),lA=Be(wt).apply(null,ae),kA=G-1,!A.hasOwnProperty(MA))throw new FA("Replacing nonexistant public symbol");return A[MA].L!==void 0&&kA!==void 0?A[MA].L[kA]=lA:(A[MA]=lA,A[MA].S=kA),[]})},c:function(L,G,T,V,X){function tA(OA){return OA}G=UA(G),X===-1&&(X=4294967295);var dA=TA(T);if(V===0){var lA=32-8*T;tA=function(OA){return OA<>>lA}}var MA=G.indexOf("unsigned")!=-1;VA(L,{name:G,fromWireType:tA,toWireType:function(OA,ae){if(typeof ae!="number"&&typeof ae!="boolean")throw new TypeError('Cannot convert "'+JA(ae)+'" to '+this.name);if(aeX)throw new TypeError('Passing a number "'+JA(ae)+'" from JS side to C/C++ side to an argument of type "'+G+'", which is outside the valid range ['+V+", "+X+"]!");return MA?ae>>>0:ae|0},argPackAdvance:8,readValueFromPointer:it(G,dA,V!==0),M:null})},b:function(L,G,T){function V(tA){tA>>=2;var dA=M;return new X(m,dA[tA+1],dA[tA])}var X=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][G];T=UA(T),VA(L,{name:T,fromWireType:V,argPackAdvance:8,readValueFromPointer:V},{U:!0})},i:function(L,G){G=UA(G);var T=G==="std::string";VA(L,{name:G,fromWireType:function(V){var X=M[V>>2];if(T)for(var tA=V+4,dA=0;dA<=X;++dA){var lA=V+4+dA;if(dA==X||x[lA]==0){if(tA=tA?C(x,tA,lA-tA):"",MA===void 0)var MA=tA;else MA+=String.fromCharCode(0),MA+=tA;tA=lA+1}}else{for(MA=Array(X),dA=0;dA=ce&&(ce=65536+((ce&1023)<<10)|X.charCodeAt(++ae)&1023),127>=ce?++OA:OA=2047>=ce?OA+2:65535>=ce?OA+3:OA+4}return OA}:function(){return X.length})(),lA=ye(4+dA+1);if(M[lA>>2]=dA,T&&tA)B(X,lA+4,dA+1);else if(tA)for(tA=0;tA>2],ae=dA(),ce,Ii=MA+4,Jt=0;Jt<=OA;++Jt){var kA=MA+4+Jt*G;(Jt==OA||ae[kA>>lA]==0)&&(Ii=V(Ii,kA-Ii),ce===void 0?ce=Ii:(ce+=String.fromCharCode(0),ce+=Ii),Ii=kA+G)}return te(MA),ce},toWireType:function(MA,OA){typeof OA!="string"&&aA("Cannot pass non-string to C++ string type "+T);var ae=tA(OA),ce=ye(4+ae+G);return M[ce>>2]=ae>>lA,X(OA,ce+4,ae+G),MA!==null&&MA.push(te,ce),ce},argPackAdvance:8,readValueFromPointer:se,M:function(MA){te(MA)}})},A:function(L,G){G=UA(G),VA(L,{aa:!0,name:G,argPackAdvance:0,fromWireType:function(){},toWireType:function(){}})},n:qA,x:function(L){4>>=0;var G=x.length;if(2147483648=T;T*=2){var V=G*(1+.2/T);V=Math.min(V,L+100663296),V=Math.max(16777216,L,V),0>>16),W(I.buffer);var X=1;break A}catch{}X=void 0}if(X)return!0}return!1},u:function(L,G){var T=0;return ls().forEach(function(V,X){var tA=G+T;for(X=N[L+4*X>>2]=tA,tA=0;tA>0]=V.charCodeAt(tA);v[X>>0]=0,T+=V.length+1}),0},v:function(L,G){var T=ls();N[L>>2]=T.length;var V=0;return T.forEach(function(X){V+=X.length+1}),N[G>>2]=V,0},w:function(){return 0},q:function(){},g:function(L,G,T,V){for(var X=0,tA=0;tA>2],lA=N[G+(8*tA+4)>>2],MA=0;MA>2]=X,0},a:I,l:function(){return 0},k:function(){return 0},j:function(){},B:function(){return 6},m:function(){},f:function(){}};(function(){function L(X){A.asm=X.exports,Z=A.asm.D,j--,A.monitorRunDependencies&&A.monitorRunDependencies(j),j==0&&AA&&(X=AA,AA=null,X())}function G(X){L(X.instance)}function T(X){return Promise.resolve().then(bA).then(function(tA){return WebAssembly.instantiate(tA,V)}).then(X,function(tA){a("failed to asynchronously prepare wasm: "+tA),iA(tA)})}var V={a:LA};if(j++,A.monitorRunDependencies&&A.monitorRunDependencies(j),A.instantiateWasm)try{return A.instantiateWasm(V,L)}catch(X){return a("Module.instantiateWasm callback failed with error: "+X),!1}return function(){return g||typeof WebAssembly.instantiateStreaming!="function"||sA()||gA("file://")||typeof fetch!="function"?T(G):fetch(BA,{credentials:"same-origin"}).then(function(X){return WebAssembly.instantiateStreaming(X,V).then(G,function(tA){return a("wasm streaming compile failed: "+tA),a("falling back to ArrayBuffer instantiation"),T(G)})})}().catch(i),{}})();var Se=A.___wasm_call_ctors=function(){return(Se=A.___wasm_call_ctors=A.asm.E).apply(null,arguments)},ye=A._malloc=function(){return(ye=A._malloc=A.asm.F).apply(null,arguments)},te=A._free=function(){return(te=A._free=A.asm.G).apply(null,arguments)},lt=A.___getTypeName=function(){return(lt=A.___getTypeName=A.asm.H).apply(null,arguments)};A.___embind_register_native_and_builtin_types=function(){return(A.___embind_register_native_and_builtin_types=A.asm.I).apply(null,arguments)},A.dynCall_jiiiii=function(){return(A.dynCall_jiiiii=A.asm.J).apply(null,arguments)},A.dynCall_jiji=function(){return(A.dynCall_jiji=A.asm.K).apply(null,arguments)};var Ee;AA=function L(){Ee||Hi(),Ee||(AA=L)};function Hi(){function L(){if(!Ee&&(Ee=!0,A.calledRun=!0,!l)){if(EA(O),EA(Y),t(A),A.onRuntimeInitialized&&A.onRuntimeInitialized(),A.postRun)for(typeof A.postRun=="function"&&(A.postRun=[A.postRun]);A.postRun.length;){var G=A.postRun.shift();k.unshift(G)}EA(k)}}if(!(0new Uint8Array(Buffer.from(e,"base64")):(()=>{for(var e=new Uint8Array(128),A=0;A<64;A++)e[A<26?A+65:A<52?A+71:A<62?A-4:A*4-205]=A;return t=>{for(var i=t.length,n=new Uint8Array((i-(t[i-1]=="=")-(t[i-2]=="="))*3/4|0),r=0,o=0;r>4,n[o++]=a<<4|g>>2,n[o++]=g<<6|I}return n}})(),zrA=WrA("AGFzbQEAAAABwAImYAF/AX9gA39/fwF/YAV/f39/fwF/YAJ/fwF/YAJ/fwBgAX8AYAN/f38AYAR/f39/AX9gBH9/f38AYAAAYAZ/f39/f38Bf2AFf39/f38AYAZ/f39/f38AYAd/f39/f39/AX9gBH9/f38BfmAFf39/f38BfmAIf39/f39/f38Bf2AJf39/f39/f39/AX9gAn5/AX9gC39/f39/f39/f39/AX9gA39+fwF+YAN/f34AYAN/f34Bf2ADfn9/AX9gAn5+AX5gCH9/f39/f39/AGAJf39/f39/f39/AGAFf35/f38AYAABf2ANf39/f39/f39/f39/fwF/YA9/f39/f39/f39/f39/f38Bf2AFf39/fn8Bf2AGf3x/f39/AX9gAX8BfmACf38BfmAHf35/f39/fwF+YAF+AX5gBH5/f34BfgK0AR0BYQFiAAYBYQFjAAsBYQFkAAYBYQFlAAwBYQFmAAUBYQFnAAcBYQFoAAYBYQFpAAQBYQFqAAMBYQFrAAABYQFsAAABYQFtAAMBYQFuAAUBYQFvAAYBYQFwAAABYQFxAAIBYQFyAAEBYQFzAAABYQF0AAkBYQF1AAMBYQF2AAMBYQF3AAABYQF4AAUBYQF5AAQBYQF6AAsBYQFBAAQBYQFCAAcBYQFDAAMBYQFhAgGAAoCAAgOtBKsEBAEBAwIACAAAAAQHAQEBAAIBAAQDAQMBBAEFAwUFAAYAAwAIAgIDAQgBAwYBCwEBAAQYBAEEBwoGAwMLBwgBBggDCwUDAwMGCAEGBAYABwIGAAABAAIEBAYEBQMDAAsABgwDAAANBgIYAwkAAQwGBggAAgAAAAUQHQAEAQMbBwcHBwMDBh4TBAgBAgECCgcGCgYEAAQAARARAwAIAAYDBgAFBQUFBQUJCwUGAQAFBQICAgcHAwQEAAcSARIXJQQGAwMDAAUEAQABBQUDAAMGCgAFBQMBHwUDAwUFAREDBwoEAAUBAwcKCiEGBQEABgYGBQUIAxMNAAADAAkBBwcHBwcHBwcAAQgGBwMRAgICAgYCCAoCAgcCCAAFBAUFAAMAAAIKBBQACQwMCwMLCAgICwwAAQEFAAUABQkDAAMSEhcGAQAUAAAJCQkJBgAJCQkJCQkJCQkJCQkJDQ0ABgcBAQcHAgEBAgEEAwoABAcFBRwKCgoFAgoCAgMaGQUE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BCAGanQgAWohASACIARHIQwgBEEBaiEEIAwNAAsLIA1BAWoiDSACayIBIAcgAWtBAWoiCEkEQCAKQQJJIQYDQEEBIQQgBkUEQANAIARBAnQiCiADIAFBNGxqaiADIApqKAIAIAF2NgIAIAIgBEchCiAEQQFqIQQgCg0ACwsgAUEBaiIBIAhJDQALCyAAQQRqIAcgCyAJIANBpAVqIAMgAiANEJYDIAVBAToABSAFIAc6AAYgACAFKAIENgIACyAQIQQLIAVBEGokACAEC+ACAQl/IwBBEGsiBCQAIARBADYCDCAEQQA2AggCQCADQUBrIgkgAyAEQQhqIARBDGogASACEPsBIggQIQ0AIARBBGogACgCABA0QQEhASAEKAIMIgUgBC0ABEEBak0EQEEAIQIgBEEAOgAFIAQgBToABiAAIAQoAgQ2AgAgBUEBakEBSwRAA0AgAyABQQJ0aiIGKAIAIQcgBiACNgIAIAcgAUF/anQgAmohAiABIAVGIQYgAUEBaiEBIAZFDQALCyAEKAIIIgdFDQEgAEEEaiEKIAVBAWohC0EAIQADQCADIAAgCWotAAAiBUECdGoiBigCACIBIAFBASAFdEEBdSIMaiICSQRAIAsgBWshBQNAIAogAUEBdGoiAiAFOgABIAIgADoAACABQQFqIgEgBigCACAMaiICSQ0ACwsgBiACNgIAIABBAWoiACAHRw0ACwwBC0FUIQgLIARBEGokACAICxQAIAAoAABBgPqerQNsQSAgAWt2CygAAkACQAJAIAAoAowBQX9qDgIAAQILIAAgARDCAw8LIAAgARDHAwsLOgEBfyABIAAoAgRrIgEgACgCGCICQYAIaksEQCAAIAEgASACa0GAeGoiAEGABCAAQYAESRtrNgIYCwsVACAAEJEBBEAgACgCBA8LIAAtAAsLRQEBfwJAIAIgA00gACABTXINAANAIABBf2oiAC0AACACQX9qIgItAABHDQEgBEEBaiEEIAIgA00NASAAIAFLDQALCyAECwwAIABBICABa62IpwsQACAAIAEgAigCCHRBA3RqCxIAIABBwAAgAWutiKdBACABGwsvAEEgIAFrIgEgAkkEQCAAp0F/IAJ0QX9zcQ8LIAAgASACa62Ip0F/IAJ0QX9zcQsgACACrSAAIAGtQgp8IAN+fULjyJW9y5vvjU9+fEIK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nn9+QuPcypX8zvL1hX98IQYgBCIDIgFBCGoiBCACTQ0ACwsCQCADQQRqIgEgAksEQCADIQEMAQsgAygAAK1Ch5Wvr5i23puef34gBoVCF4lCz9bTvtLHq9lCfkL5893xmfaZqxZ8IQYLIAEgAkkEQCAAIAVqQShqIQADQCABMQAAQsXP2bLx5brqJ34gBoVCC4lCh5Wvr5i23puef34hBiABQQFqIgEgAEcNAAsLIAZCIYggBoVCz9bTvtLHq9lCfiIGQh2IIAaFQvnz3fGZ9pmrFn4iBkIgiCAGhQv4AgICfwR+IAAgACkDACACrXw3AwACQAJAIAAoAkgiAyACakEfTQRAIAAgA2pBKGogASACEKsBIAAoAkggAmohAQwBCyABIAJqIQQCQAJ/IAMEQCAAQShqIgIgA2ogAUEgIANrEKsBIAAgACkDCCACKQAAEE43AwggACAAKQMQIAApADAQTjcDECAAIAApAxggACkAOBBONwMYIAAgACkDICAAQUBrKQAAEE43AyAgACgCSCECIABBADYCSCABIAJrQSBqIQELIAFBIGogBEsLBEAgASECDAELIARBYGohAyAAKQMgIQUgACkDGCEGIAApAxAhByAAKQMIIQgDQCAIIAEpAAAQTiEIIAcgASkACBBOIQcgBiABKQAQEE4hBiAFIAEpABgQTiEFIAFBIGoiAiEBIAIgA00NAAsgACAFNwMgIAAgBjcDGCAAIAc3AxAgACAINwMICyACIARPDQEgAEEoaiACIAQgAmsiARCrAQsgACABNgJICwtlACAAQgA3AyggAEL56tDQ58mh5OEANwMgIABCADcDGCAAQs/W077Sx6vZQjcDECAAQtbrgu7q/Yn14AA3AwggAEIANwMAIABCADcDMCAAQgA3AzggAEFAa0IANwMAIABCADcDSAsVACABBEAgAiAAIAERAwAPCyAAEEwLYQEDf0F+IQECQCAARQ0AIAAoAhwiAkUNACAAKAIkIgNFDQAgAigCNCIBBEAgACgCKCABIAMRBAAgACgCJCEDIAAoAhwhAgsgACgCKCACIAMRBABBACEBIABBADYCHAsgAQudCwEMfyACQQBOBEBBBEEDIAEvAQIiCxshB0EHQYoBIAsbIQQgAEG5LWohCEF/IQYDQCALIQkCQCAJIAEgDCINQQFqIgxBAnRqLwECIgtH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AhQgCiAAKAIIaiADOgAAIAAgACgCFCIDQQFqNgIUIAMgACgCCGogAEG5LWotAAA6AAAgACABQRAgACgCvC0iAWt2OwG4LSAAIAEgAmpBcGo2ArwtDwsgACACIARqNgK8LQuXAQECfwJAAn8gACgCvC0iAUEJTgRAIAAgACgCFCIBQQFqNgIUIAEgACgCCGogAC0AuC06AAAgACAAKAIUIgFBAWo2AhQgAEG5LWotAAAhAiABIAAoAghqDAELIAFBAUgNASAAIAAoAhQiAUEBajYCFCAALQC4LSECIAEgACgCCGoLIAI6AAALIABBADYCvC0gAEEAOwG4LQvaBAEBfwNAIAAgAUECdGpBADsBlAEgAUEBaiIBQZ4CRw0ACyAAQQA7AfwUIABBADsBiBMgAEHEFWpBADsBACAAQcAVakEAOwEAIABBvBVqQQA7AQAgAEG4FWpBADsBACAAQbQVakEAOwEAIABBsBVqQQA7AQAgAEGsFWpBADsBACAAQagVakEAOwEAIABBpBVqQQA7AQAgAEGgFWpBADsBACAAQZwVakEAOwEAIABBmBVqQQA7AQAgAEGUFWpBADsBACAAQZAVakEAOwEAIABBjBVqQQA7AQAgAEGIFWpBADsBACAAQYQVakEAOwEAIABBgBVqQQA7AQAgAEH8E2pBADsBACAAQfgTakEAOwEAIABB9BNqQQA7AQAgAEHwE2pBADsBACAAQewTakEAOwEAIABB6BNqQQA7AQAgAEHkE2pBADsBACAAQeATakEAOwEAIABB3BNqQQA7AQAgAEHYE2pBADsBACAAQdQTakEAOwEAIABB0BNqQQA7AQAgAEHME2pBADsBACAAQcgTakEAOwEAIABBxBNqQQA7AQAgAEHAE2pBADsBACAAQbwTakEAOwEAIABBuBNqQQA7AQAgAEG0E2pBADsBACAAQbATakEAOwEAIABBrBNqQQA7AQAgAEGoE2pBADsBACAAQaQTakEAOwEAIABBoBNqQQA7AQAgAEGcE2pBADsBACAAQZgTakEAOwEAIABBlBNqQQA7AQAgAEGQE2pBADsBACAAQYwTakEAOwEAIABCADcCrC0gAEGUCWpBATsBACAAQQA2AqgtIABBADYCoC0LngEBAn8gACAALwG4LSADQf//A3EiBCAAKAK8LSIDdHIiBTsBuC0gAAJ/IANBDk4EQCAAIAAoAhQiA0EBajYCFCADIAAoAghqIAU6AAAgACAAKAIUIgNBAWo2AhQgAyAAKAIIaiAAQbktai0AADoAACAAIARBECAAKAK8LSIDa3Y7AbgtIANBc2oMAQsgA0EDags2ArwtIAAgASACEJoEC5cEARB/IAAoAnwiBCAEQQJ2IAAoAngiBCAAKAKMAUkbIQlBACAAKAJsIgIgACgCLGtBhgJqIgMgAyACSxshDCAAKAJ0IgcgACgCkAEiAyADIAdLGyENIAAoAjgiDiACaiIFQYICaiEPIAQgBWoiAi0AACEKIAJBf2otAAAhCyAAKAI0IRAgACgCQCERA0ACQAJAIAEgDmoiAyAEaiICLQAAIApHDQAgAkF/ai0AACALRw0AIAMtAAAgBS0AAEcNAEECIQYgAy0AASAFLQABRw0AA0ACQCAFIAZqIgItAAEgAy0AA0cEQCACQQFqIQIMAQsgAi0AAiADLQAERwRAIAJBAmohAgwBCyACLQADIAMtAAVHBEAgAkEDaiECDAELIAItAAQgAy0ABkcEQCACQQRqIQIMAQsgAi0ABSADLQAHRwRAIAJBBWohAgwBCyACLQAGIAMtAAhHBEAgAkEGaiECDAELIAItAAcgAy0ACUcEQCACQQdqIQIMAQsgBkH5AUshCCAFIAZBCGoiBmohAiAIDQAgAy0ACiEIIANBCGohAyACLQAAIAhGDQELCyACIA9rIgNBggJqIgIgBEwNACAAIAE2AnAgAiANTgRAIAIhBAwCCyACIAVqLQAAIQogAyAFai0AgQIhCyACIQQLIAwgESABIBBxQQF0ai8BACIBTw0AIAlBf2oiCQ0BCwsgByAEIAQgB0sbC+BGATF/IwBBsIAEayIZJAAgAygCACELIANBADYCACACIARqIjdBe2ogNyAHQQJGIjsbITIgAiEdAn8CQCALIAEiJ2oiOEF0aiI5ICdJDQAgBkH/HyAGQf8fSRshOiA4QXtqIhpBf2ohLyAaQX1qISYgASEeA0AgACgCkIAQIg1BgIAEaiAeIAAoAoSAECIfayIOSyEMIB8gACgCjIAQIhtqIRwgACgCiIAQISogACgCnIAQISsgHigAACEiIAAoApSAECIGIA5JBEADQCAAIAZB//8DcUEBdGpBgIAIaiAGIAAgBiAfahA6QQJ0aiILKAIAayIEQf//AyAEQf//A0kbOwEAIAsgBjYCACAGQQFqIgYgDkkNAAsLIA0gDkGBgHxqIAwbISwgHiAnayEXIAAgDjYClIAQICJB//8DcSAiQRB2RiAiQf8BcSAiQRh2RnEhJSAbICpqITAgHEEEaiESIB5BCGohLiAeQQRqIRMgHkF/aiEWIAAgHhA6QQJ0IiBqKAIAIRRBAyEMQQAhD0EAIS1BACENQQAhESAFISQDQAJAICRFIBQgLElyDQBBACEQAkAgCkEAIA4gFGtBCEkbDQACQAJ/AkACQCAbIBRNBEAgDCAWai8AACAUIB9qIhggDGpBf2ovAABHDQUgIiAYKAAARw0FIBhBBGohBiAmIBNNBH8gEwUgBigAACATKAAAcyIEDQIgBkEEaiEGIC4LIgQgJkkEQANAIAYoAAAgBCgAAHMiCwRAIAsQJSAEaiATayEGDAcLIAZBBGohBiAEQQRqIgQgJkkNAAsLAkAgBCAvTw0AIAYvAAAgBC8AAEcNACAGQQJqIQYgBEECaiEECyAEIBpJBH8gBEEBaiAEIAYtAAAgBC0AAEYbBSAECyATayEGDAQLICIgFCAqaiIEKAAARw0EIARBBGohBgJ/IBMgGiAeIBsgFGtqIhUgFSAaSxsiC0F9aiIYIBNNDQAaIAYoAAAgEygAAHMiBA0CIAZBBGohBiAuCyIEIBhJBEADQCAGKAAAIAQoAABzIhAEQCAQECUgBGogE2sMBQsgBkEEaiEGIARBBGoiBCAYSQ0ACwsCQCAEIAtBf2pPDQAgBi8AACAELwAARw0AIAZBAmohBiAEQQJqIQQLIAQgC0kEfyAEQQFqIAQgBi0AACAELQAARhsFIAQLIBNrDAILIAQQJSEGDAILIAQQJQshBCAUIB9qIA8CfyAEQQRqIhAgHmogC0cgFSAaT3JFBEAgHCEEAn8CQCAmIAsiBksEQCAcKAAAIAsoAABzIgQNASALQQRqIQYgEiEECyAGICZJBEADQCAEKAAAIAYoAABzIg8EQCAPECUgBmogC2sMBAsgBEEEaiEEIAZBBGoiBiAmSQ0ACwsCQCAGIC9PDQAgBC8AACAGLwAARw0AIARBAmohBCAGQQJqIQYLIAYgGkkEfyAGQQFqIAYgBC0AACAGLQAARhsFIAYLIAtrDAELIAQQJQsgEGohEAsgECAMSiIECxshDyAQIAwgBBshDAwBCyAGQQRqIhAgDCAQIAxKIgQbIQwgGCAPIAQbIQ8LICRBf2ohJAJAAkAgDCAQRyAMIBRqIA5LciAQQQRIcg0AIBBBfWohFUEAIQZBECELQQEhBANAIAAgBiAUakH//wNxQQF0akGAgAhqLwEAIhggBCAEIBhJIjEbIQQgBiARIDEbIREgC0EEdSEYQRAgC0EBaiAxGyELIAYgGGoiBiAVSA0ACyAUQQAgBCAUIARJIgYbQQAgBEEBSyIEG2shFCAERQ0AQQNBAiAGGyEGIBAhDAwBCwJAIBENACAAIBRB//8DcUEBdGpBgIAIai8BAEEBRw0AIA1FBEBBASENICVFDQEgEyAaICIQM0EEaiEtQQIhDQsgDUECRyAUQX9qIhggLElyDQBBAiENIBsgGBAyRQ0AICIgKiAfIBggG0kiBBsgGGoiECgAAEcNACAQQQRqIDAgGiAEGyIGICIQM0EEaiELICogACgCkIAQIgRqIRQCQCAYIBtJBEAgBiALIBBqRgRAIBwgGiALICIQPRAzIAtqIQsLIBAgFCAiEDEhDQwBCyAQIBAgHCAiEDEiDWsgHEcgBCAbT3INACAwIBRBACANayAiED0QMSANaiENCyAYIBggDWsiBCAsIAQgLEsbIhRrIAtqIgQgLUkgCyAtS3JFBEAgCyAYIC1raiIEIBsgGyAEEDIbIRRBACERQQIhBkECIQ0MAgtBACERQQIhBiAbIBQQMkUEQEECIQ0gGyEUDAILAkAgDCAEIC0gBCAtSRsiC08EQCAPIQ0gDCELDAELIB4gFCAfaiINa0H//wNKDQMLIBQgACAUQf//A3FBAXRqQYCACGovAQAiBEkEQCANIQ8gCyEMDAMLIBQgBGshFCANIQ9BAiENIAshDAwBCyAUIAAgESAUakH//wNxQQF0akGAgAhqLwEAayEUQQAhBgsgBkEDRw0BCwsCQCAkRSAJQQFHIA4gLGtB/v8DS3JyDQAgDiAgICtqKAIAIhEgLGogKygCgIAQICsoAoSAECISayINayIUa0H//wNLDQADQCAkRQ0BICIgESASaiIEKAAARgRAIARBBGohBgJ/AkACfyATIBogHiANIBFraiIEIAQgGksbIhxBfWoiECATTQ0AGiAGKAAAIBMoAABzIgQNASAGQQRqIQYgLgsiBCAQSQRAA0AgBigAACAEKAAAcyILBEAgCxAlIARqIBNrDAQLIAZBBGohBiAEQQRqIgQgEEkNAAsLAkAgBCAcQX9qTw0AIAYvAAAgBC8AAEcNACAGQQJqIQYgBEECaiEECyAEIBxJBH8gBEEBaiAEIAYtAAAgBC0AAEYbBSAECyATawwBCyAEECULQQRqIgQgDCAEIAxKIgQbIQwgFCAfaiAPIAQbIQ8LICRBf2ohJCARICsgEUH//wNxQQF0akGAgAhqLwEAIgRrIREgDiAUIARrIhRrQYCABEkNAAsLAkACQAJ/AkACQCAMQQROBEAgHiAPayEPQRIgDCAMQW1qQRJJGyAMIAobIhwgOksNASAXQQ5KIgsNAiAXQQFqIQYgFwwDCyAeQQFqIR4MAwsgBwRAIB0gF0H/AW5qIBdqQQlqIDJLDQQLIB1BAWohBgJAIBdBD08EQCAdQfABOgAAIBdBcWoiBEH/AU8EQCAGQf8BIB4gJ2tB8n1qIgRB/wFuIgZBAWoQKBogBkGBfmwgBGohBCAGIB1qQQJqIQYLIAYgBDoAACAGQQFqIQYMAQsgHSAXQQR0OgAACyAGICcgBiAXaiIEEDsgBCAPQf//A3EQLyAcQXxqIQwgBEECaiEEIAcEQCAEIAxB/wFuakEGaiAySw0ECyAdLQAAIQsgDEEPTwRAIB0gC0EPajoAACAcQW1qIgtB/gNPBEAgBEH/ASAcQe97aiIMQf4DbiILQQF0IgRBAmoQKBogC0GCfGwgDGohCyAGIAQgHmogJ2tqQQRqIQQLIAtB/wFPBEAgBEH/AToAACALQYF+aiELIARBAWohBAsgBCALOgAAIARBAWohHSAcIB5qIh4hJwwDCyAdIAsgDGo6AAAgHCAeaiIeIScgBCEdDAILIBdBAWoiBiAXQXFqQf8BbWoLIQQgGSAXNgIMIBlCgICAgBA3AgQgGSAENgIAIAYiBEEOSgRAIAYgBkFxakH/AW1qQQFqIQQLIBkgBjYCHCAZQoCAgIAQNwIUIBkgBDYCECAXQQJqIQQCfwJAIBdBDU4EQCAZIAQ2AiwgGUKAgICAEDcCJCAZIBdBA2oiDSAXQXNqQf8BbWo2AiAMAQsgGSAENgIsIBlCgICAgBA3AiQgGSAENgIgIBdBA2oiDSAXQQxHDQEaCyAXIBdBdGpB/wFtakEEagshBCAZIA02AjwgGUKAgICAEDcCNCAZIAQ2AjAgBiAXQXFqQf8BbWogFyALG0EDaiEEQQQhBgNAIAQhCyAGQRNPBEAgBkFtakH/AW0gBGpBAWohCwsgGSAGQQR0aiIMIBc2AgwgDCAPNgIEIAwgBjYCCCAMIAs2AgAgBiAcRyELIAZBAWohBiALDQALQQEhFCAZIBxBBHRqIgZBATYCHCAGQoCAgIAQNwIUIAZCgICAgBA3AiQgBkECNgIsIAZBAzYCPCAGQoCAgIAQNwI0IAYgBigCACIEQQFqNgIQIAYgBEECajYCICAGIARBA2o2AjACQANAIB4gFCIYaiIhIDlNBEAgGSAYQQR0IgRqIjQoAgAhMyAZIBhBAWoiFEEEdGoiNSgCACE2AkACQAJAIAgEQCA2IDNMBEAgBCAZakFAaygCACAzQQNqSA0ECyAAKAKQgBAiDEGAgARqICEgH2siIEshCyAfIAAoAoyAECITaiEbICEoAAAhIyAOICBJBEADQCAAIA5B//8DcUEBdGpBgIAIaiAOIAAgDiAfahA6QQJ0aiIGKAIAayIEQf//AyAEQf//A0kbOwEAIAYgDjYCACAOQQFqIg4gIEkNAAsLIAwgIEGBgHxqIAsbIRcgACAgNgKUgBAgI0H//wNxICNBEHZGICNB/wFxICNBGHZGcSEuIBMgKmohLCAbQQRqIQ8gIUEIaiEiICFBBGohFSAhQX9qITAgACAhEDpBAnQiMWooAgAhDkEDIQxBACESQQAhKUEAIQ1BACERIAUhJANAAkAgJEUgDiAXSXINAEEAIRACQCAKQQAgICAOa0EISRsNAAJAAn8CQAJAIBMgDk0EQCAMIDBqLwAAIA4gH2oiFiAMakF/ai8AAEcNBSAjIBYoAABHDQUgFkEEaiEGICYgFU0EfyAVBSAGKAAAIBUoAABzIgQNAiAGQQRqIQYgIgsiBCAmSQRAA0AgBigAACAEKAAAcyILBEAgCxAlIARqIBVrIQYMBwsgBkEEaiEGIARBBGoiBCAmSQ0ACwsCQCAEIC9PDQAgBi8AACAELwAARw0AIAZBAmohBiAEQQJqIQQLIAQgGkkEfyAEQQFqIAQgBi0AACAELQAARhsFIAQLIBVrIQYMBAsgIyAOICpqIgQoAABHDQQgBEEEaiEGAn8gFSAaICEgEyAOa2oiJSAlIBpLGyILQX1qIhYgFU0NABogBigAACAVKAAAcyIEDQIgBkEEaiEGICILIgQgFkkEQANAIAYoAAAgBCgAAHMiEARAIBAQJSAEaiAVawwFCyAGQQRqIQYgBEEEaiIEIBZJDQALCwJAIAQgC0F/ak8NACAGLwAAIAQvAABHDQAgBkECaiEGIARBAmohBAsgBCALSQR/IARBAWogBCAGLQAAIAQtAABGGwUgBAsgFWsMAgsgBBAlIQYMAgsgBBAlCyEEIA4gH2ogEgJ/ICEgBEEEaiIQaiALRyAlIBpPckUEQCAbIQQCfwJAICYgCyIGSwRAIBsoAAAgCygAAHMiBA0BIAtBBGohBiAPIQQLIAYgJkkEQANAIAQoAAAgBigAAHMiEgRAIBIQJSAGaiALawwECyAEQQRqIQQgBkEEaiIGICZJDQALCwJAIAYgL08NACAELwAAIAYvAABHDQAgBEECaiEEIAZBAmohBgsgBiAaSQR/IAZBAWogBiAELQAAIAYtAABGGwUgBgsgC2sMAQsgBBAlCyAQaiEQCyAQIAxKIgQLGyESIBAgDCAEGyEMDAELIAZBBGoiECAMIBAgDEoiBBshDCAWIBIgBBshEgsgJEF/aiEkAkACQCAMIBBHIAwgDmogIEtyIBBBBEhyDQAgEEF9aiElQQAhBkEQIQtBASEEA0AgACAGIA5qQf//A3FBAXRqQYCACGovAQAiFiAEIAQgFkkiLRshBCAGIBEgLRshESALQQR1IRZBECALQQFqIC0bIQsgBiAWaiIGICVIDQALIA5BACAEIA4gBEkiBhtBACAEQQFLIgQbayEOIARFDQBBA0ECIAYbIQYgECEMDAELAkAgEQ0AIAAgDkH//wNxQQF0akGAgAhqLwEAQQFHDQAgDUUEQEEBIQ0gLkUNASAVIBogIxAzQQRqISlBAiENCyANQQJHIA5Bf2oiFiAXSXINAEECIQ0gEyAWEDJFDQAgIyAqIB8gFiATSSIEGyAWaiIQKAAARw0AIBBBBGogLCAaIAQbIgYgIxAzQQRqIQsgKiAAKAKQgBAiBGohDgJAIBYgE0kEQCAGIAsgEGpGBEAgGyAaIAsgIxA9EDMgC2ohCwsgECAOICMQMSENDAELIBAgECAbICMQMSINayAbRyAEIBNPcg0AICwgDkEAIA1rICMQPRAxIA1qIQ0LIBYgFiANayIEIBcgBCAXSxsiDmsgC2oiBCApSSALIClLckUEQCALIBYgKWtqIgQgEyATIAQQMhshDkEAIRFBAiEGQQIhDQwCC0EAIRFBAiEGIBMgDhAyRQRAQQIhDSATIQ4MAgsCQCAMIAQgKSAEIClJGyILTwRAIBIhDSAMIQsMAQsgISAOIB9qIg1rQf//A0oNAwsgDiAAIA5B//8DcUEBdGpBgIAIai8BACIESQRAIA0hEiALIQwMAwsgDiAEayEOIA0hEkECIQ0gCyEMDAELIA4gACAOIBFqQf//A3FBAXRqQYCACGovAQBrIQ5BACEGCyAGQQNHDQELCwJAICRFIAlBAUcgICAXa0H+/wNLcnINACAgICsgMWooAgAiESAXaiArKAKAgBAgKygChIAQIg9rIg1rIg5rQf//A0sNAANAICRFDQEgIyAPIBFqIgQoAABGBEAgBEEEaiEGAn8CQAJ/IBUgGiAhIA0gEWtqIgQgBCAaSxsiG0F9aiIQIBVNDQAaIAYoAAAgFSgAAHMiBA0BIAZBBGohBiAiCyIEIBBJBEADQCAGKAAAIAQoAABzIgsEQCALECUgBGogFWsMBAsgBkEEaiEGIARBBGoiBCAQSQ0ACwsCQCAEIBtBf2pPDQAgBi8AACAELwAARw0AIAZBAmohBiAEQQJqIQQLIAQgG0kEfyAEQQFqIAQgBi0AACAELQAARhsFIAQLIBVrDAELIAQQJQtBBGoiBCAMIAQgDEoiBBshDCAOIB9qIBIgBBshEgsgJEF/aiEkIBEgKyARQf//A3FBAXRqQYCACGovAQAiBGshESAgIA4gBGsiDmtBgIAESQ0ACwsgDEEESA0CQRIgDCAMQW1qQRJJGyAMIAobIQ8gISASayEODAELIDYgM0wNAiAAKAKQgBAiDEGAgARqICEgH2siIEshCyAfIAAoAoyAECITaiEbICEoAAAhKCAOICBJBEADQCAAIA5B//8DcUEBdGpBgIAIaiAOIAAgDiAfahA6QQJ0aiIGKAIAayIEQf//AyAEQf//A0kbOwEAIAYgDjYCACAOQQFqIg4gIEkNAAsLIAwgIEGBgHxqIAsbISMgACAgNgKUgBAgKEH//wNxIChBEHZGIChB/wFxIChBGHZGcSEtIBMgKmohIiAbQQRqISQgIUEIaiEXICFBBGohFSAhQX9qIS4gACAhEDpBAnQiMGooAgAhDkEAIRJBACEpQQAhDUEAIREgBSEQIBwgGGsiMSEPA0ACQCAQRSAOICNJcg0AQQAhDAJAIApBACAgIA5rQQhJGw0AAkACfwJAAkAgEyAOTQRAIA8gLmovAAAgDiAfaiIWIA9qQX9qLwAARw0FICggFigAAEcNBSAWQQRqIQYgJiAVTQR/IBUFIAYoAAAgFSgAAHMiBA0CIAZBBGohBiAXCyIEICZJBEADQCAGKAAAIAQoAABzIgsEQCALECUgBGogFWshBgwHCyAGQQRqIQYgBEEEaiIEICZJDQALCwJAIAQgL08NACAGLwAAIAQvAABHDQAgBkECaiEGIARBAmohBAsgBCAaSQR/IARBAWogBCAGLQAAIAQtAABGGwUgBAsgFWshBgwECyAoIA4gKmoiBCgAAEcNBCAEQQRqIQYCfyAVIBogISATIA5raiIlICUgGksbIgtBfWoiFiAVTQ0AGiAGKAAAIBUoAABzIgQNAiAGQQRqIQYgFwsiBCAWSQRAA0AgBigAACAEKAAAcyIMBEAgDBAlIARqIBVrDAULIAZBBGohBiAEQQRqIgQgFkkNAAsLAkAgBCALQX9qTw0AIAYvAAAgBC8AAEcNACAGQQJqIQYgBEECaiEECyAEIAtJBH8gBEEBaiAEIAYtAAAgBC0AAEYbBSAECyAVawwCCyAEECUhBgwCCyAEECULIQQgDiAfaiASAn8gISAEQQRqIgxqIAtHICUgGk9yRQRAIBshBAJ/AkAgJiALIgZLBEAgGygAACALKAAAcyIEDQEgC0EEaiEGICQhBAsgBiAmSQRAA0AgBCgAACAGKAAAcyISBEAgEhAlIAZqIAtrDAQLIARBBGohBCAGQQRqIgYgJkkNAAsLAkAgBiAvTw0AIAQvAAAgBi8AAEcNACAEQQJqIQQgBkECaiEGCyAGIBpJBH8gBkEBaiAGIAQtAAAgBi0AAEYbBSAGCyALawwBCyAEECULIAxqIQwLIAwgD0oiBAsbIRIgDCAPIAQbIQ8MAQsgBkEEaiIMIA8gDCAPSiIEGyEPIBYgEiAEGyESCyAQQX9qIRACQAJAIAwgD0cgDiAPaiAgS3IgDEEESHINACAMQX1qISVBACEGQRAhC0EBIQQDQCAAIAYgDmpB//8DcUEBdGpBgIAIai8BACIWIAQgBCAWSSIsGyEEIAYgESAsGyERIAtBBHUhFkEQIAtBAWogLBshCyAGIBZqIgYgJUgNAAsgDkEAIAQgDiAESSIGG0EAIARBAUsiBBtrIQ4gBEUNAEEDQQIgBhshBiAMIQ8MAQsCQCARDQAgACAOQf//A3FBAXRqQYCACGovAQBBAUcNACANRQRAQQEhDSAtRQ0BIBUgGiAoEDNBBGohKUECIQ0LIA1BAkcgDkF/aiIlICNJcg0AQQIhDSATICUQMkUNACAoICogHyAlIBNJIgQbICVqIhYoAABHDQAgFkEEaiAiIBogBBsiBiAoEDNBBGohCyAqIAAoApCAECIEaiEMAkAgJSATSQRAIAYgCyAWakYEQCAbIBogCyAoED0QMyALaiELCyAWIAwgKBAxIQ0MAQsgFiAWIBsgKBAxIg1rIBtHIAQgE09yDQAgIiAMQQAgDWsgKBA9EDEgDWohDQsgJSAlIA1rIgQgIyAEICNLGyIMayALaiIEIClJIAsgKUtyRQRAIAsgJSApa2oiBCATIBMgBBAyGyEOQQAhEUECIQZBAiENDAILQQAhEUECIQYgEyAMEDJFBEBBAiENIBMhDgwCCwJAIA8gBCApIAQgKUkbIgtPBEAgEiENIA8hCwwBCyAhIAwgH2oiDWtB//8DSg0DCyAMIAAgDEH//wNxQQF0akGAgAhqLwEAIgRJBEAgDSESIAshDwwDCyAMIARrIQ4gDSESQQIhDSALIQ8MAQsgDiAAIA4gEWpB//8DcUEBdGpBgIAIai8BAGshDkEAIQYLIAZBA0cNAQsLAkAgEEUgCUEBRyAgICNrQf7/A0tycg0AICAgKyAwaigCACIRICNqICsoAoCAECArKAKEgBAiDWsiDGsiDmtB//8DSw0AA0AgEEUNASAoIA0gEWoiBCgAAEYEQCAEQQRqIQYCfwJAAn8gFSAaICEgDCARa2oiBCAEIBpLGyIbQX1qIiQgFU0NABogBigAACAVKAAAcyIEDQEgBkEEaiEGIBcLIgQgJEkEQANAIAYoAAAgBCgAAHMiCwRAIAsQJSAEaiAVawwECyAGQQRqIQYgBEEEaiIEICRJDQALCwJAIAQgG0F/ak8NACAGLwAAIAQvAABHDQAgBkECaiEGIARBAmohBAsgBCAbSQR/IARBAWogBCAGLQAAIAQtAABGGwUgBAsgFWsMAQsgBBAlC0EEaiIEIA8gBCAPSiIEGyEPIA4gH2ogEiAEGyESCyAQQX9qIRAgESArIBFB//8DcUEBdGpBgIAIai8BACIEayERICAgDiAEayIOa0GAgARJDQALCyAPIDFMDQEgISASayEOIApFIA9BbWpBEk9yRQRAQRIhDwwBCyAPRQ0BCyAPIDpLBEAgFCEcDAULIA8gGGpB/x9KBEAgFCEcDAULIDMgNCgCDCINQQFqIgYgDUFxakH/AW1qIA0gDUEOShtrIQwgBiIEQQ5KBH8gDSANQXJqQf8BbWpBAmoFIAQLIAxqIgQgNkgEQCA1IAY2AgwgNUKAgICAEDcCBCA1IAQ2AgALIA1BAmoiBiEEIA1BDEoEfyANIA1Bc2pB/wFtakEDagUgBAsgDGoiBCAZIBhBAmpBBHRqIgsoAgBIBEAgCyAGNgIMIAtCgICAgBA3AgQgCyAENgIACyANQQNqIgYhBCANQQxOBH8gDSANQXRqQf8BbWpBBGoFIAQLIAxqIgQgGSAYQQNqQQR0aiILKAIASARAIAsgBjYCDCALQoCAgIAQNwIEIAsgBDYCAAsgD0EETgRAIDRBDHIhDUEEIQYgGSAYQQR0akEIciEMA0AgBiAYaiESAn8gDCgCAEEBRgRAQQAhESAYIA0oAgAiC0oEQCAZIBggC2tBBHRqKAIAIRELIAsiBEEPTgR/IAsgC0FxakH/AW1qQQFqBSAEC0EDaiEEIAZBE08EfyAGQW1qQf8BbSAEakEBagUgBAsgEWoMAQsgNCgCACEEQQAhCyAGQRNPBH8gBkFtakH/AW1BBGoFQQMLIARqCyERAkAgEiAcQQNqTARAIBEgGSASQQR0aigCACAKa0oNAQsgGSASQQR0aiIEIAs2AgwgBCAONgIEIAQgBjYCCCAEIBE2AgAgEiAcIBwgEkgbIBwgBiAPRhshHAsgBiAPRiEEIAZBAWohBiAERQ0ACwsgGSAcQQR0aiIGQQE2AhwgBkKAgICAEDcCFCAGQoCAgIAQNwIkIAZBAjYCLCAGQQM2AjwgBkKAgICAEDcCNCAGIAYoAgAiBEEBajYCECAGIARBAmo2AiAgBiAEQQNqNgIwCyAgIQ4LIBwgFEoNAQsLIBwgGSAcQQR0aiIEKAIIIg9rIRggBCgCBCEOCwNAIBkgGEEEdGoiCygCCCEGIAsgDzYCCCALKAIEIQQgCyAONgIEIBggBk4hCyAYIAZrIRggBiEPIAQhDiALDQALQQAhBiAcQQFIDQADQAJ/IBkgBkEEdGoiBCgCCCIPQQFGBEAgHkEBaiEeIAZBAWoMAQsgHiAnayESIAQoAgQhCyAHBEAgHSASQf8BbmogEmpBCWogMksNBAsgHUEBaiENAkAgEkEPTwRAIB1B8AE6AAAgEkFxaiIOQf8BTwRAIA1B/wEgEkHyfWoiBEH/AW4iDEEBahAoGiAMQYF+bCAEaiEOIAwgHWpBAmohDQsgDSAOOgAAIA1BAWohDQwBCyAdIBJBBHQ6AAALIA0gJyANIBJqIgQQOyAEIAtB//8DcRAvIA9BfGohDCAEQQJqIQsgBwRAIAsgDEH/AW5qQQZqIDJLDQQLIB0tAAAhBAJ/IAxBD08EQCAdIARBD2o6AAAgD0FtaiIRQf4DTwRAIAtB/wEgD0Hve2oiDEH+A24iC0EBdCIEQQJqECgaIAtBgnxsIAxqIREgDSAEIB5qICdrakEEaiELCyARQf8BTwRAIAtB/wE6AAAgEUGBfmohESALQQFqIQsLIAsgEToAACALQQFqDAELIB0gBCAMajoAACALCyEdIA8gHmoiHiEnIAYgD2oLIgYgHEgNAAsLIB4gOU0NAQwCCwtBACAHQQJHDQEaCyA4ICdrIgZB8AFqQf8BbiEAAkAgB0UNACAAIAZqIB1qQQFqIDJBBWogNyA7GyIATQ0AQQAgB0EBRg0BGiAdQX9zIABqIgAgAEHwAWpB/wFuayEGCyAGICdqIQUCQCAGQQ9PBEAgHUHwAToAACAdQQFqIQAgBkFxaiIEQf8BSQRAIAAiHSAEOgAADAILIABB/wEgBkHyfWoiAEH/AW4iBEEBahAoGiAEIB1qQQJqIh0gBEGBfmwgAGo6AAAMAQsgHSAGQQR0OgAACyAdQQFqICcgBhAqIQAgAyAFIAFrNgIAIAAgBmogAmsLIQAgGUGwgARqJAAgAAuuPQE0fwJAIARBAExBACAGQQJGGw0AIAMoAgAiCkGAgIDwB0sNACAAIAAoAoCAECAKajYCgIAQQQkgBSAFQQFIGyIFQQwgBUEMSBsiB0EMbCIJQZQWaigCACEuAkACfwJAAn8CfwJAIAdBCU0EQCADQQA2AgAgAiAEaiI3QXtqIDcgBkECRiI4GyEmIAEgCmohMSABISUgAiEJIApBDUgNBCAxQXRqIi8gAUkNBEGANCAHdkEBcSEyIDFBe2oiGEF/aiErIBhBfWohHgNAIAAoApSAECEHIAAoAoiAECEdIAAoAoSAECERICUhDAJAAkADQCAAKAKQgBAiBCAMIBFrIg5BgYB8aiAEQYCABGogDksbISAgACgCjIAQIRAgDCgAACENIAcgDkkEQANAIAAgB0H//wNxQQF0akGAgAhqIAcgACAHIBFqEDpBAnRqIgQoAgBrIgVB//8DIAVB//8DSRs7AQAgBCAHNgIAIAdBAWoiByAOSQ0ACwsgACAONgKUgBACQAJAIAAgDBA6QQJ0aigCACIFICBJDQAgDUH//wNxIA1BEHZGIA1B/wFxIA1BGHZGcSEfIBAgHWohEyAQIBFqIhdBBGohKSAMQQhqIRwgDEEEaiEZIAxBf2ohI0EAIRtBAyEKIC4hCEEAIRoDQAJAAkACfwJAAkAgECAFTQRAIAogI2ovAAAgBSARaiILIApqQX9qLwAARw0FIA0gCygAAEcNBSALQQRqIQcgHiAZTQR/IBkFIAcoAAAgGSgAAHMiBA0CIAdBBGohByAcCyIEIB5JBEADQCAHKAAAIAQoAABzIhYEQCAWECUgBGogGWshBwwHCyAHQQRqIQcgBEEEaiIEIB5JDQALCwJAIAQgK08NACAHLwAAIAQvAABHDQAgB0ECaiEHIARBAmohBAsgBCAYSQR/IARBAWogBCAHLQAAIAQtAABGGwUgBAsgGWshBwwECyANIAUgHWoiBCgAAEcNBCAEQQRqIQcCfyAZIBggDCAQIAVraiIhICEgGEsbIhZBfWoiCyAZTQ0AGiAHKAAAIBkoAABzIgQNAiAHQQRqIQcgHAsiBCALSQRAA0AgBygAACAEKAAAcyIkBEAgJBAlIARqIBlrDAULIAdBBGohByAEQQRqIgQgC0kNAAsLAkAgBCAWQX9qTw0AIAcvAAAgBC8AAEcNACAHQQJqIQcgBEECaiEECyAEIBZJBH8gBEEBaiAEIActAAAgBC0AAEYbBSAECyAZawwCCyAEECUhBwwCCyAEECULIQQgBSARaiAUAn8gBEEEaiILIAxqIBZHICEgGE9yRQRAIBchBAJ/AkAgHiAWIgdLBEAgFygAACAWKAAAcyIEDQEgFkEEaiEHICkhBAsgByAeSQRAA0AgBCgAACAHKAAAcyIUBEAgFBAlIAdqIBZrDAQLIARBBGohBCAHQQRqIgcgHkkNAAsLAkAgByArTw0AIAQvAAAgBy8AAEcNACAEQQJqIQQgB0ECaiEHCyAHIBhJBH8gB0EBaiAHIAQtAAAgBy0AAEYbBSAHCyAWawwBCyAEECULIAtqIQsLIAsgCkoiBAsbIRQgCyAKIAQbIQoMAQsgB0EEaiIEIAogBCAKSiIEGyEKIAsgFCAEGyEUCwJAAkACQCAyRSAAIAVB//8DcUEBdGpBgIAIai8BACIHQQFHcg0AIBtFBEBBASEbIB9FDQEgGSAYIA0QM0EEaiEaQQIhGwsgG0ECRyAFQX9qIgQgIElyDQBBAiEbIBAgBBAyRQ0AIA0gHSARIAQgEEkiFhsgBGoiCygAAEcNACALQQRqIBMgGCAWGyIFIA0QM0EEaiEHIB0gACgCkIAQIhtqIRYCQCAEIBBJBEAgBSAHIAtqRgRAIBcgGCAHIA0QPRAzIAdqIQcLIAsgFiANEDEhBQwBCyALIAsgFyANEDEiBWsgF0cgGyAQT3INACATIBZBACAFayANED0QMSAFaiEFCyAEIAQgBWsiBSAgIAUgIEsbIgVrIAdqIgsgGkkgByAaS3JFBEAgByAEIBpraiIEIBAgECAEEDIbIQVBAiEbDAILQQIhGyAQIAUQMkUEQCAQIQUMAgsCQCAKIAsgGiALIBpJGyIHTwRAIBQhBCAKIQcMAQsgDCAFIBFqIgRrQf//A0oNAwsgBSAAIAVB//8DcUEBdGpBgIAIai8BACIKSQRAIAQhFCAHIQoMAwsgBSAKayEFIAQhFCAHIQoMAQsgBSAHayEFCyAIQX9qIghFDQAgBSAgTw0BCwsgCkEDTA0AICUhFiAJIQ0gDCEZIBQiCSEbIAohEANAIAkhFAJAAkAgDCAKIhdqIiUgL0sNACAAKAKQgBAiBSAlQX5qIhEgACgChIAQIh9rIgRBgYB8aiAFQYCABGogBEsbISMgACgCjIAQIRwgACgCiIAQISQgESgAACETIAAoApSAECIHIARJBEADQCAAIAdB//8DcUEBdGpBgIAIaiAHIAAgByAfahA6QQJ0aiIFKAIAayIJQf//AyAJQf//A0kbOwEAIAUgBzYCACAHQQFqIgcgBEkNAAsLIAAgBDYClIAQIAAgERA6QQJ0aigCACIFICNJDQAgE0H//wNxIBNBEHZGIBNB/wFxIBNBGHZGcSEwIBwgJGohLCAcIB9qIiBBBGohHSARQQhqIS0gEUEEaiEaIAwgEWshKEEAISFBACARIAxrIiprITMgDEF/aiE0IBchCiAuISlBACEOIA8hCQNAAkACQAJ/AkACQCAcIAVNBEAgCiA0ai8AACAFIB9qIgggM2ogCmpBf2ovAABHDQUgEyAIKAAARw0FAkAgKkUEQEEAIQsMAQsgKCAgIAhrIgQgKCAEShsiD0EfdSAPcSEEQQAhBwNAIAciCyAPTARAIAQhCwwCCyARIAtBf2oiB2otAAAgByAIai0AAEYNAAsLIAhBBGohByAeIBpNBH8gGgUgBygAACAaKAAAcyIEDQIgB0EEaiEHIC0LIgQgHkkEQANAIAcoAAAgBCgAAHMiDwRAIA8QJSAEaiAaayEHDAcLIAdBBGohByAEQQRqIgQgHkkNAAsLAkAgBCArTw0AIAcvAAAgBC8AAEcNACAHQQJqIQcgBEECaiEECyAEIBhJBH8gBEEBaiAEIActAAAgBC0AAEYbBSAECyAaayEHDAQLIBMgBSAkaiIPKAAARw0EIA9BBGohByAAKAKQgBAhNQJ/IBogGCARIBwgBWtqIicgJyAYSxsiCEF9aiILIBpNDQAaIAcoAAAgGigAAHMiBA0CIAdBBGohByAtCyIEIAtJBEADQCAHKAAAIAQoAABzIjYEQCA2ECUgBGogGmsMBQsgB0EEaiEHIARBBGoiBCALSQ0ACwsCQCAEIAhBf2pPDQAgBy8AACAELwAARw0AIAdBAmohByAEQQJqIQQLIAQgCEkEfyAEQQFqIAQgBy0AACAELQAARhsFIAQLIBprDAILIAQQJSEHDAILIAQQJQshBCARIARBBGoiC2ogCEcgJyAYT3JFBEAgICEEAn8CQCAeIAgiB0sEQCAgKAAAIAgoAABzIgQNASAIQQRqIQcgHSEECyAHIB5JBEADQCAEKAAAIAcoAABzIicEQCAnECUgB2ogCGsMBAsgBEEEaiEEIAdBBGoiByAeSQ0ACwsCQCAHICtPDQAgBC8AACAHLwAARw0AIARBAmohBCAHQQJqIQcLIAcgGEkEfyAHQQFqIAcgBC0AACAHLQAARhsFIAcLIAhrDAELIAQQJQsgC2ohCwsCQCAqRQRAQQAhBAwBCyAoICQgNWogD2siBCAoIARKGyInQR91ICdxIQhBACEHA0AgByIEICdMBEAgCCEEDAILIBEgBEF/aiIHai0AACAHIA9qLQAARg0ACwsgCyAEayIHIApMDQEgBCARaiEVIAUgH2ogBGohCSAHIQoMAQsgByALa0EEaiIEIApMDQAgCyARaiEVIAggC2ohCSAEIQoLAkACQAJAIDJFIAAgBUH//wNxQQF0akGAgAhqLwEAIgdBAUdyDQAgIUUEQEEBISEgMEUNAUECISEgGiAYIBMQM0EEaiEOCyAhQQJHIAVBf2oiBCAjSXINAEECISEgHCAEEDJFDQAgEyAkIB8gBCAcSSIPGyAEaiIIKAAARw0AIAhBBGogLCAYIA8bIgUgExAzQQRqIQcgJCAAKAKQgBAiC2ohDwJAIAQgHEkEQCAFIAcgCGpGBEAgICAYIAcgExA9EDMgB2ohBwsgCCAPIBMQMSEFDAELIAggCCAgIBMQMSIFayAgRyALIBxPcg0AICwgD0EAIAVrIBMQPRAxIAVqIQULIAQgBCAFayIFICMgBSAjSxsiD2sgB2oiCCAOSSAHIA5LckUEQCAHIAQgDmtqIgQgHCAcIAQQMhshBQwCCyAPIBwgHCAPEDIiBBshBSAqIARFcg0BAkAgCiAIIA4gCCAOSRsiB08EQCAVIQQgCSEIIAohBwwBCyARIgQgDyAfaiIIa0H//wNKDQMLIA8gACAPQf//A3FBAXRqQYCACGovAQAiBUkEQCAEIRUgCCEJIAchCgwDCyAPIAVrIQUgBCEVIAghCSAHIQoMAQsgBSAHayEFCyApQX9qIilFDQAgBSAjTw0BCwsgCiAXRw0BIAkhDwsgDCAWayEKIAYEQCANIApB/wFuaiAKakEJaiAmSw0KCyANQQFqIQQCQCAKQQ9PBEAgDUHwAToAACAKQXFqIgVB/wFPBEAgBEH/ASAKQfJ9aiIFQf8BbiIEQQFqECgaIARBgX5sIAVqIQUgBCANakECaiEECyAEIAU6AAAgBEEBaiEEDAELIA0gCkEEdDoAAAsgBCAWIAQgCmoiCRA7IAkgDCAUa0H//wNxEC8gF0F8aiEFIAlBAmohCSAGBEAgCSAFQf8BbmpBBmogJksNCgsgDS0AACEHIAVBD08EQCANIAdBD2o6AAAgF0FtaiIFQf4DTwRAIAlB/wEgF0Hve2oiBUH+A24iCUEBdCIHQQJqECgaIAlBgnxsIAVqIQUgBCAHIApqakEEaiEJCyAFQf8BTwRAIAlB/wE6AAAgCUEBaiEJIAVBgX5qIQULIAkgBToAACAJQQFqIQkMBwsgDSAFIAdqOgAADAYLIBkgDCAZIAxJIBUgDCAQaklxIgQbIQ4gCSEPIBUiDCAOa0EDSA0AIBAgFyAEGyEZIBsgFCAEGyEUIBYhEQNAIA4gGWoiFkEDaiEzIA4gGUESIBlBEkgbIixqIS0CQANAAkACQAJ/AkAgDCAOayIEQRFKDQAgDiAMayAEIApqQXxqICwgLSAKIAxqQXxqSxtqIgRBAUgNACAKIARrIRAgBCAJaiEPIAQgDGoMAQsgCSEPIAohECAMCyIVIBBqIiUgL0sNACAAKAKQgBAiBSAlQX1qIhcgACgChIAQIhxrIgRBgYB8aiAFQYCABGogBEsbISMgACgCjIAQIRMgACgCiIAQISQgFygAACEdIAAoApSAECIHIARJBEADQCAAIAdB//8DcUEBdGpBgIAIaiAHIAAgByAcahA6QQJ0aiIFKAIAayIJQf//AyAJQf//A0kbOwEAIAUgBzYCACAHQQFqIgcgBEkNAAsLIAAgBDYClIAQIAAgFxA6QQJ0aigCACIFICNJDQAgHUH//wNxIB1BEHZGIB1B/wFxIB1BGHZGcSE0IBMgJGohJyATIBxqIhpBBGohICAXQQhqITAgF0EEaiEbIBUgF2shKEEAISFBACAXIBVrIiprITUgFUF/aiE2IBAhCiAuISlBACEfIBIhCSAiIQwDQAJAAkACfwJAAkAgEyAFTQRAIAogNmovAAAgBSAcaiIIIDVqIApqQX9qLwAARw0FIB0gCCgAAEcNBQJAICpFBEBBACELDAELICggGiAIayIEICggBEobIhJBH3UgEnEhBEEAIQcDQCAHIgsgEkwEQCAEIQsMAgsgFyALQX9qIgdqLQAAIAcgCGotAABGDQALCyAIQQRqIQcgHiAbTQR/IBsFIAcoAAAgGygAAHMiBA0CIAdBBGohByAwCyIEIB5JBEADQCAHKAAAIAQoAABzIhIEQCASECUgBGogG2shBwwHCyAHQQRqIQcgBEEEaiIEIB5JDQALCwJAIAQgK08NACAHLwAAIAQvAABHDQAgB0ECaiEHIARBAmohBAsgBCAYSQR/IARBAWogBCAHLQAAIAQtAABGGwUgBAsgG2shBwwECyAdIAUgJGoiEigAAEcNBCASQQRqIQcgACgCkIAQITkCfyAbIBggFyATIAVraiIiICIgGEsbIghBfWoiCyAbTQ0AGiAHKAAAIBsoAABzIgQNAiAHQQRqIQcgMAsiBCALSQRAA0AgBygAACAEKAAAcyI6BEAgOhAlIARqIBtrDAULIAdBBGohByAEQQRqIgQgC0kNAAsLAkAgBCAIQX9qTw0AIAcvAAAgBC8AAEcNACAHQQJqIQcgBEECaiEECyAEIAhJBH8gBEEBaiAEIActAAAgBC0AAEYbBSAECyAbawwCCyAEECUhBwwCCyAEECULIQQgFyAEQQRqIgtqIAhHICIgGE9yRQRAIBohBAJ/AkAgHiAIIgdLBEAgGigAACAIKAAAcyIEDQEgCEEEaiEHICAhBAsgByAeSQRAA0AgBCgAACAHKAAAcyIiBEAgIhAlIAdqIAhrDAQLIARBBGohBCAHQQRqIgcgHkkNAAsLAkAgByArTw0AIAQvAAAgBy8AAEcNACAEQQJqIQQgB0ECaiEHCyAHIBhJBH8gB0EBaiAHIAQtAAAgBy0AAEYbBSAHCyAIawwBCyAEECULIAtqIQsLAkAgKkUEQEEAIQQMAQsgKCAkIDlqIBJrIgQgKCAEShsiIkEfdSAicSEIQQAhBwNAIAciBCAiTARAIAghBAwCCyAXIARBf2oiB2otAAAgByASai0AAEYNAAsLIAsgBGsiByAKTA0BIAQgF2ohDCAFIBxqIARqIQkgByEKDAELIAcgC2tBBGoiBCAKTA0AIAsgF2ohDCAIIAtqIQkgBCEKCwJAAkACQCAyRSAAIAVB//8DcUEBdGpBgIAIai8BACIHQQFHcg0AICFFBEBBASEhIDRFDQEgGyAYIB0QM0EEaiEfQQIhIQsgIUECRyAFQX9qIgQgI0lyDQBBAiEhIBMgBBAyRQ0AIB0gJCAcIAQgE0kiEhsgBGoiCCgAAEcNACAIQQRqICcgGCASGyIFIB0QM0EEaiEHICQgACgCkIAQIiJqIRICQCAEIBNJBEAgBSAHIAhqRgRAIBogGCAHIB0QPRAzIAdqIQcLIAggEiAdEDEhBQwBCyAIIAggGiAdEDEiBWsgGkcgIiATT3INACAnIBJBACAFayAdED0QMSAFaiEFCyAEIAQgBWsiBSAjIAUgI0sbIhJrIAdqIgggH0kgByAfS3JFBEAgByAEIB9raiIEIBMgEyAEEDIbIQUMAgsgEiATIBMgEhAyIgQbIQUgKiAERXINAQJAIAogCCAfIAggH0kbIgdPBEAgDCEEIAkhCCAKIQcMAQsgFyIEIBIgHGoiCGtB//8DSg0DCyASIAAgEkH//wNxQQF0akGAgAhqLwEAIgVJBEAgBCEMIAghCSAHIQoMAwsgEiAFayEFIAQhDCAIIQkgByEKDAELIAUgB2shBQsgKUF/aiIpRQ0AIAUgI08NAQsLIAogEEcNASAJIRIgDCEiCyAOIBFrIQQgBgRAIA0gBEH/AW5qIARqQQlqICZLDQcLIBUgDmsgGSAVIBZJGyEJIA1BAWohBQJAIARBD08EQCANQfABOgAAIARBcWoiB0H/AU8EQCAFQf8BIARB8n1qIgpB/wFuIgVBAWoQKBogBUGBfmwgCmohByAFIA1qQQJqIQULIAUgBzoAACAFQQFqIQUMAQsgDSAEQQR0OgAACyAFIBEgBCAFaiIHEDsgByAOIBRrQf//A3EQLyAJQXxqIQogB0ECaiEHIAYEQCAHIApB/wFuakEGaiAmSw0HCyANLQAAIQwCQCAKQQ9PBEAgDSAMQQ9qOgAAIAlBbWoiC0H+A08EQCAHQf8BIAlB73tqIgpB/gNuIgdBAXQiDEECahAoGiAHQYJ8bCAKaiELIAUgBCAMampBBGohBwsgC0H/AU8EQCAHQf8BOgAAIAtBgX5qIQsgB0EBaiEHCyAHIAs6AAAgB0EBaiEHDAELIA0gCiAMajoAAAsgFSAJIA5qIgRrIQkgBgRAIAcgCUH/AW5qIAlqQQlqICZLDQkLIAdBAWohBQJAIAlBD08EQCAHQfABOgAAIAlBcWoiCEH/AU8EQCAFQf8BIAlB8n1qIgpB/wFuIgVBAWoQKBogBUGBfmwgCmohCCAFIAdqQQJqIQULIAUgCDoAACAFQQFqIQUMAQsgByAJQQR0OgAACyAFIAQgBSAJaiIJEDsgCSAVIA9rQf//A3EQLyAQQXxqIQogCUECaiEJIAYEQCAJIApB/wFuakEGaiAmSw0JCyAHLQAAIQwgCkEPTwRAIAcgDEEPajoAACAQQW1qIgdB/gNPBEAgCUH/ASAQQe97aiIJQf4DbiIKQQF0IgxBAmoQKBogCkGCfGwgCWohByAFIAwgFWogBGtqQQRqIQkLIAdB/wFPBEAgCUH/AToAACAHQYF+aiEHIAlBAWohCQsgCSAHOgAAIAlBAWohCQwKCyAHIAogDGo6AAAMCQsgDCAzTw0BIAwhIiAJIRIgDCAWSQ0ACwJAIBUgFk8NACAQIBYgFWsiBGsiEEEDSgRAIAQgD2ohDyAWIRUMAQsgDCEVIAkhDyAKIRALIA4gEWshByAGBEAgDSAHQf8BbmogB2pBCWogJksNBQsgDUEBaiEEAkAgB0EPTwRAIA1B8AE6AAAgB0FxaiIFQf8BTwRAIARB/wEgB0HyfWoiBUH/AW4iBEEBahAoGiAEQYF+bCAFaiEFIAQgDWpBAmohBAsgBCAFOgAAIARBAWohBAwBCyANIAdBBHQ6AAALIAQgESAEIAdqIgUQOyAFIA4gFGtB//8DcRAvIBlBfGohCCAFQQJqIQUgBgRAIAUgCEH/AW5qQQZqICZLDQULIA0tAAAhFAJ/IAhBD08EQCANIBRBD2o6AAAgGUFtaiIIQf4DTwRAIAVB/wEgGUHve2oiBUH+A24iCEEBdCIUQQJqECgaIAhBgnxsIAVqIQggBCAHIBRqakEEaiEFCyAIQf8BTwRAIAVB/wE6AAAgCEGBfmohCCAFQQFqIQULIAUgCDoAACAFQQFqDAELIA0gCCAUajoAACAFCyENIAwhIiAJIRIgFSEZIA8hGwwCCwJ/IBUgFk8EQCAZIQggEAwBCyAQIBUgDmsiCEERSg0AGiAQIAggEGpBfGogLCAtIBAgFWpBfGpLGyIIIA4gFWtqIgRBAUgNABogBCAPaiEPIAQgFWohFSAQIARrCyEZIA4gEWshByAGBEAgDSAHQf8BbmogB2pBCWogJksNBAsgDUEBaiEEAkAgB0EPTwRAIA1B8AE6AAAgB0FxaiIFQf8BTwRAIARB/wEgB0HyfWoiBUH/AW4iBEEBahAoGiAEQYF+bCAFaiEFIAQgDWpBAmohBAsgBCAFOgAAIARBAWohBAwBCyANIAdBBHQ6AAALIAQgESAEIAdqIgUQOyAFIA4gFGtB//8DcRAvIAhBfGohFCAFQQJqIQUgBgRAIAUgFEH/AW5qQQZqICZLDQQLIA0tAAAhEgJ/IBRBD08EQCANIBJBD2o6AAAgCEFtaiILQf4DTwRAIAVB/wEgCEHve2oiBUH+A24iFEEBdCISQQJqECgaIBRBgnxsIAVqIQsgBCAHIBJqakEEaiEFCyALQf8BTwRAIAVB/wE6AAAgC0GBfmohCyAFQQFqIQULIAUgCzoAACAIIA5qIREgFSEOIAVBAWoMAQsgDSASIBRqOgAAIAggDmohESAVIQ4gBQshDSAPIRQgDCEiIAkhEgwACwALAAsgDiEHIAxBAWoiDCAvTQ0BDAkLCyARDAULIAQhJSAHDAULICUgL00NAAsMBAsgACABIAIgAyAEIC4gCUGYFmooAgAgBiAFQQtKQQAgAC0AmoAQQQBHEJACDAQLIBYLISUgDQshCUEAIQcgBkECRw0CCyAxICVrIgdB8AFqQf8BbiEEAkAgBkUNACAEIAdqIAlqQQFqICZBBWogNyA4GyIETQ0AQQAhByAGQQFGDQIgCUF/cyAEaiIEIARB8AFqQf8BbmshBwsgByAlaiEFAkAgB0EPTwRAIAlB8AE6AAAgCUEBaiEEIAdBcWoiBkH/AUkEQCAEIgkgBjoAAAwCCyAEQf8BIAdB8n1qIgZB/wFuIgRBAWoQKBogBCAJakECaiIJIARBgX5sIAZqOgAADAELIAkgB0EEdDoAAAsgCUEBaiAlIAcQKiEEIAMgBSABazYCACAEIAdqIAJrCyIHQQBKDQELIABBAToAm4AQCyAHCzsBAX8gAEUgAEEDcXIEfyABBSAAQQA2ApyAECAAQv////8PNwKAgBAgAEEAOwGagBAgAEEJELABIAALCx8BAX8gAEGAgIDwB00EfyAAIABB/wFuakEQagUgAQsLxwIAIAAgAS0AADoAACAAIAEtAAE6AAEgACABLQACOgACIAAgAS0AAzoAAyAAIAEtAAQ6AAQgACABLQAFOgAFIAAgAS0ABjoABiAAIAEtAAc6AAcgACABLQAIOgAIIAAgAS0ACToACSAAIAEtAAo6AAogACABLQALOgALIAAgAS0ADDoADCAAIAEtAA06AA0gACABLQAOOgAOIAAgAS0ADzoADyAAIAEtABA6ABAgACABLQAROgARIAAgAS0AEjoAEiAAIAEtABM6ABMgACABLQAUOgAUIAAgAS0AFToAFSAAIAEtABY6ABYgACABLQAXOgAXIAAgAS0AGDoAGCAAIAEtABk6ABkgACABLQAaOgAaIAAgAS0AGzoAGyAAIAEtABw6ABwgACABLQAdOgAdIAAgAS0AHjoAHiAAIAEtAB86AB8gAEEgagsNACAAIABBBm5qQSBqCz4AEMICENUCQdQNQQJB+A9B8w9BCkELEANB3w1BBkGQDkH8DUEMQQ0QA0HoDUEBQfgNQfQNQQ5BDxADEPQCC0UBBH8gASAAIAEgAEsbIQMDQCAAIAFPBEAgAw8LIAAtAAAhBCACLQAAIQUgAEEBaiIGIQAgAkEBaiECIAQgBUYNAAsgBgsrAQF/EIsDIgRFBEBBQA8LIAQgACABIAIgAyAEEIYDEIUDIQAgBBCJAyAAC6QBAQF/IwBBQGoiBCQAIAQgADYCFCAEIAM2AgwgBCACNgIIIAEoAgAhACAEQgA3AyggBCAANgIYAkAgBEEIahCNBCICDQAgBEEIahCMBCIAQQFHBEAgBEEIahCIAhpBfSECAkACQCAAQQVqDggAAQEBAQEBAwELIAQoAgxFDQILIAAhAgwBCyABIAQoAhw2AgAgBEEIahCIAiECCyAEQUBrJAAgAgvABgEQf0F/IQUCQCAARQ0AIANFBEAgAkEBRw0BQX9BACAALQAAGw8LIAJFDQAgASADaiIIQWBqIQ8gACACaiIJQXBqIRAgCEF7aiERIAhBeWohCiAJQXtqIQwgCUF4aiESIAhBdGohDSAJQXFqIQ4gACECIAEhBQJAA0ACQCACQQFqIQMCQAJAAkAgAi0AACIHQQR2IgJBD0cEQCAFIA9LIAMgEE9yDQEgBSADKQAANwAAIAUgAykACDcACCACIAVqIgYgAiADaiICLwAAIgtrIQQgAkECaiECIAdBD3EiBUEPRgRAIAIhAwwDCyALQQhJBEAgAiEDDAMLIAQgAUkNAyAGIAQpAAA3AAAgBiAEKQAINwAIIAYgBC8AEDsAECAFIAZqQQRqIQUMBQtBACECIAMgDk8NBQNAAkAgAiADLQAAIgRqIQIgA0EBaiIDIA5PDQAgBEH/AUYNAQsLIAJBD2oiAiAFQX9zSyACIANBf3NLcg0FCyACIAVqIgYgDU1BACACIANqIgQgEk0bRQRAIAQgCUcgBiAIS3INBSAFIAMgAhBKGiAGIAFrIQUMBgsgBSADIAYQOyAHQQ9xIQUgBEECaiEDIAYgBC8AACILayEECyAFQQ9HBEAgAyECDAELIAMgDCADIAxLGyEHQQAhBQNAIANBAWohAiADIAdGDQIgBSADLQAAIhNqIQUgAiEDIBNB/wFGDQALIAVBD2oiBSAGQX9zSw0DCyAEIAFJDQAgBiAFQQRqIgdqIQUCfyALQQdNBEAgBkEAEDQgBiAELQAAOgAAIAYgBC0AAToAASAGIAQtAAI6AAIgBiAELQADOgADIAYgBCALQQJ0IgNB0BVqKAIAaiIEKAAANgAEIAQgA0HwFWooAgBrDAELIAYgBCkAADcAACAEQQhqCyEDIAZBCGohBCAFIA1LBEAgBSARSw0BIAQgCkkEQCAEIAMgChA7IAMgCiAEa2ohAyAKIQQLIAQgBU8NAgNAIAQgAy0AADoAACADQQFqIQMgBEEBaiIEIAVHDQALDAILIAQgAykAADcAACAHQRFJDQEgBkEQaiADQQhqIAUQOwwBCwsgAiEDCyADQX9zIABqDwsgBQsWAEEAIAIgAyAAIAEQmAIiACAAECEbCzkBAX8jAEEQayIEJAAgBCADNgIMIAIgBEEMaiAAIAEQmQIhACAEKAIMIQEgBEEQaiQAQQAgASAAGws5AQF/IwBBEGsiBCQAIAQgAzYCDCAAIAEgAiAEQQxqEIoEIQAgBCgCDCEBIARBEGokAEEAIAEgABsLDQAgACACIAEgAxCaAguXAwEIfwJAIAFFDQAgAiADaiEKIAAgAWohBSAAQQFqIQEgAC0AAEEfcSEGIAIhBANAAkACfyAGQSBPBEACQCAGQQV2QX9qIgNBBkYEQCABIQBBBiEDA0AgAEEBaiIBIAVPDQcgAyAALQAAIgdqIQMgASEAIAdB/wFGDQALDAELIAEgBU8NBQsgAUEBaiEAIAQgBkEIdEGAPnEiCGsgAS0AACILayEHIAhBgD5HIAtB/wFHckUEQCABQQJqIAVPDQUgBCABLQACIAEtAAFBCHRya0GBQGohByABQQNqIQALIAMgBGpBA2ogCksNBCAHQX9qIgEgAkkNBCAAIAVPBH9BAAUgAC0AACEGIABBAWohAEEBCyEIIAQgB0YEQCAEIAEtAAAgA0EDaiIBECggAWohBCAADAILIAQgASADQQNqEMQEIQQgAAwBCyAEIAZBAWoiA2ogCksNAyABIANqIgAgBUsNAyAEIAEgAxBQIQQgACAFTw0BQQEhCCAALQAAIQYgAEEBagshASAIDQELCyAEIAJrIQkLIAkLnwEBAn8gACgCECECQXshAQJAAkACQAJAAkACQAJAIAAoAgwtAABBBXYOBQABAgMEBgtBdyEBIAJBAUcNBSAAQRI2AkAMBAtBdyEBIAJBAUcNBCAAQRM2AkAMAwtBdyEBIAJBAUcNAyAAQRQ2AkAMAgtBdyEBIAJBAUcNAiAAQRU2AkAMAQtBdyEBIAJBAUcNASAAQRY2AkALQQAhAQsgAQsHACAAKAIEC6QCAQR/IAAgAzYCMCAAIAI2AgggACABNgIEIABBADYCACAAQQA2AkwgAEEBNgJEIABBADYCLCABLQAAIQUgAS0AASECIAAgAUECajYCDCAAIAI2AhAgACABLQADIgc2AiggACABKAAEIgI2AhQgACABKAAIIgQ2AiQgASgADCEGIAAgAUEQajYCNCAAIAY2AhgCQCACRSAEQdbSqtUCS3IgBEEBSCAEIANLcnIgB0UgBUECR3JyDQAgAS0AAkEIcQ0AIAAgAiAEIAIgBG0iBWxrIgQ2AiAgACAFIARBAEpqNgIcIAIgA0oNAAJAIAEtAAJBAnEEQCACQRBqIAZGDQEMAgsgABCgAg0BIAAoAhwgACgCGEFwakEEbUoNAQsgABCHARoLCysBAX8jAEHQEWsiAyQAIANBADYCUCADQQhqIAAgASACEKICIANB0BFqJAALyQIBAn9BASEEAkAgAkEESA0AAkACQAJAIAMEQCADQYABIANBgAFKGyIDQdbSqtUCIANB1tKq1QJJGyEEDAELIAIiBEGAgAJIDQBBgIACIQQgACgCOCIDQX5qIgVBA00EQCAFQQJ0QcAUaigCACEECwJAAkACQAJAAkACQCABDgoAAQYCAwMEBAQFBgsgBEECdiEEDAcLIARBAXYhBAwFCyAEQQF0IQQMBAsgBEECdCEEDAMLIARBA3QhBAwCCyAEQQN0IQAgA0EFSwRAIAAhBAwCC0EBIAN0QTRxRQRAIAAhBAwCCyAEQQR0IQQMAQsgAUEBSA0BIAAoAjghAwsgA0EEIAQQsgFFDQAgBEGAgAQgBEGAgARIG0ECdCIAQYCABCAAQYCABEobIQQLIAIgBCAEIAJKGyIEQQVIDQAgBCAEQQRvayEECyAEC/UCAQN/IwBBEGsiBCQAIAAoAghBAjoAAAJ/IAAoAjgiA0EGTwRAIARBmtQBNgIAQegRIAQQT0GPEkEvEHJBewwBCyAAKAIIQQE6AAEgACAAKAIIIgJBAmo2AgwgAkEAOgACIAAoAgggACgCKDoAAyAAKAIIQQRqIAAoAhQQNCAAKAIIQQhqIAAoAiQQNCAAIAAoAghBEGo2AjQgACAAKAIcQQJ0QRBqNgIsIAAoAjxFBEAgACgCDCICIAItAABBAnI6AAAgAEEQNgIsCyAAKAIUQf8ATARAIAAoAgwiAiACLQAAQQJyOgAAIABBEDYCLAtCgMCAgYSMICADrUIDhoinIQJBASEDAkACQAJAIAFBf2oOAgEAAgtBBCEDCyAAKAIMIgEgAS0AACADcjoAAAsgACgCDCIBIAAoAjggACgCKCAAKAIkELIBRUEEdCABLQAAcjoAACAAKAIMIgAgAC0AACACcjoAAEEBCyEAIARBEGokACAAC/sBAQF/IwBBIGsiCSQAIAAgBjYCMCAAIAU2AgggACAENgIEIABBATYCACAAQQA2AkwgAEEBNgJEIAAgBzYCOCAAQgQ3AiggACADNgIUIAAgATYCPAJ/IANB8P///wdPBEAgCUHv////BzYCAEGGEyAJEE9BfwwBCyAGQQ9NBEAgCUEQNgIQQbATIAlBEGoQT0F/DAELIAFBCk8EQEHjE0EsEHJBdgwBCyACQQNPBEBBkBRBLhByQXYMAQsgACAAIAEgAyAIEKQCIgE2AiQgACADIAEgAyABbSICbGsiATYCICAAIAIgAUEASmo2AhxBAQshACAJQSBqJAAgAAtZAQF/IwBBoAZrIgUkACAFQQhqENADIAVBCGogACABIAIgAyAEENIDIQEgBUEIaiIAEPYBIABBgAJqIAAoApgDIAAoApwDIAAoAqADEKQBIAVBoAZqJAAgAQuQAQEBfyMAQUBqIgUkACAFIAA2AhQgBSADNgIMIAUgAjYCCCABKAIAIQAgBUEANgIwIAVCADcDKCAFIAA2AhgCQCAFQQhqIAQQqAQiBA0AIAVBCGoQqwQiAEEBRwRAIABBeyAAGyEEIAVBCGoQrwEaDAELIAEgBSgCHDYCACAFQQhqEK8BIQQLIAVBQGskACAECzEBAn8Cf0EAQbiAEBBMIgUiBhCSAkUNABogBiAAIAEgAiADIAQQsgQLIQAgBRA4IAALKwEBfyMAQaCAAWsiBSQAIAUgACABIAIgAyAEELMEIQAgBUGggAFqJAAgAAsqAQF/IAAgASAAKAIEIgNHBH8gAyABIAIQKhogACgCBAUgAQsgAmo2AgQLaQIBfwF+IAEgAG4hBUGM7AEtAABFBEAQhgFBjOwBQQE6AAALIAVBB3FFBEAgAiADIAUgACAEQaDsASgCABEPACEGIAMgACAFbCIAaiAAIAJqIAEgAGsQKhogBqcPCyADIAIgARAqGiAFCysAQYzsAS0AAEUEQBCGAUGM7AFBAToAAAsgACABIAIgA0GY7AEoAgARCAALxQsCEn8BfCMAQYCAAmsiCyQAIABB0BRqIQcgAEHaFGohCQJ/IABBA3RB8BRqKwMAIAK3oiIYmUQAAAAAAADgQWMEQCAYqgwBC0GAgICAeAshBiABIAJqIQggBy0AACEHIAktAAAhDkEAIQADQCALIABBAXRqQQA7AQAgAEEBaiIAIAd2RQ0ACwJ/QQAgAkEESA0AGkEAIARBwgBIDQAaIAhBfmohDCADIAQgBiAGIARKG2ohDSADQR86AAAgAyABLQAAOgABIAMgAS0AAToAAiADQQNqIQRBAiEGIAFBAmohACACQQ9OBEAgCEF0aiEPIAxBAmohEkEgIAdrIRBBACEHA0ACfwJ/AkACQCAALQAAIgkgAEF/ai0AAEcEQCAALQACIQIgAC0AASEIDAELIAlBCHQgCXIgAC0AASIIIAAtAAIiAkEIdHJHDQAgAEECaiEIIABBA2ohBwwBCyAFQQAgACABIAsgCEEIdCAJciACQRB0ciAALQADQRh0ckGx893xeWwgEHZBAXRqIggvAQBqIgprIgJBH3EbRQRAIAggACABazsBAAsgAEEBaiEIIAJBf2oiCUH8vwRPBEBBACAEQQJqIgIgDUsNBhogBCAALQAAOgAAIARBAWohBCAIIAZBAWoiBkH/AXFBIEcNAxogBEEfOgAAQQAiBiAHQQFqIgcgDksNBhogAiEEIAgMAwsCQCAKLQAAIhMgCi0AASIUQQh0ciAKLQACIhVBEHRyIAotAANBGHRyIAAtAAAiESAALQABIhZBCHRyIAAtAAIiF0EQdHIgAC0AA0EYdHJGBEBBBCEHIApBBGohCAwBCyARIBNHIBQgFkdyIBUgF0dyRQRAIApBA2ohCEEDIQcMAQtBACAEQQJqIgAgDUsNBhogBCAROgAAIARBAWohBCAIIAZBAWoiBkH/AXFBIEcNAxogBEEfOgAAQQAiBiAHQQFqIgcgDksNBhogACEEIAgMAwsgACAHaiEHIAlFDQAgByASIAgQlwIMAQtBASECQQAhCSAHIAwgCBDFBAshCAJAIAZB/wFxBEAgBkF/c0GAfnIgBGogBkF/ajoAAAwBCyAEQX9qIQQLQQAgBCAIQX1qIgYgAGsiAEH/AW5qQQZqIA1LDQMaAn8gCUH+P00EQCAAQQZNBEAgBCAAQQV0IAlBCHZqOgAAIARBAmohACAEQQFqDAILIAQgCUEIdkFgajoAACAEQQFqIQIgAEF5aiIHQf8BTwRAIAJB/wEgAEH6fWoiAkH/AW4iAEEBahAoGiAAQYF+bCACaiEHIAAgBGoiAEECaiECIABBAWohBAsgAiAHOgAAIARBA2ohACAEQQJqDAELIAJBgEBqIQkgAEEGTQRAIARB/wE6AAEgBCAJQQh2OgACIAQgAEEFdEEfcjoAACAEQQRqIQAgBEEDagwBCyAEQf8BOgAAIARBAWohAiAAQXlqIgdB/wFPBEAgAkH/ASAAQfp9aiICQf8BbiIAQQFqECgaIABBgX5sIAJqIQcgACAEaiIAQQJqIQIgAEEBaiEECyACIAc6AAAgBCAJQQh2OgADIARB/wE6AAIgBEEFaiEAIARBBGoLIAk6AAAgBiAPSQRAIAsgBi0AACAIQX5qLQAAQQh0ciAIQX9qLQAAQRB0ciAILQAAQRh0ckGx893xeWwgEHZBAXRqIAYgAWs7AQALIABBHzoAACAAQQFqIQRBACEGQQAhByAIQX9qCyIAIA9JDQALCyAAIAxBAWpNBEADQEEAIARBAmoiASANSw0CGiAEIAAtAAA6AAAgBEEBaiEEIAZBAWoiBkH/AXFBIEYEQCAEQR86AABBACEGIAEhBAsgACAMTSEBIABBAWohACABDQALCwJAIAZB/wFxBEAgBkF/c0GAfnIgBGogBkF/ajoAAAwBCyAEQX9qIQQLIAMgAy0AAEEgcjoAACAEIANrCyEGIAtBgIACaiQAIAYLJgBBACACIAMgACABIARBAXRBf2pBFiAEQQlIGxCnAiIAIAAQIRsLOwEBfyMAQRBrIgUkACAFIAM2AgwgAiAFQQxqIAAgASAEEKgCIQAgBSgCDCEBIAVBEGokAEEAIAEgABsLOQEBfyMAQRBrIgQkACAEIAM2AgwgACABIAIgBEEMahDGBCEAIAQoAgwhASAEQRBqJABBACABIAAbC2kCAX8BfiABIABuIQVBjOwBLQAARQRAEIYBQYzsAUEBOgAACyAFQQdxRQRAIAIgAyAFIAAgBEGc7AEoAgARDwAhBiADIAAgBWwiAGogACACaiABIABrECoaIAanDwsgAyACIAEQKhogBQsrAEGM7AEtAABFBEAQhgFBjOwBQQE6AAALIAAgASACIANBlOwBKAIAEQgAC8YFARd/A0ACQCAAKAIAIgEoAkxFBEAgASgCJCIFIAEoAihBAnRqIQsgACgCCCEGIAEoAgghCCABKAIEIQkgASgCNCENIAEoAiAhDiABKAIcIQIgASgCMCEUIAEoAgAhDyABKAIMLQAAIQECQCAFIAAoAhRMBEAgACgCECEQIAAoAgwhBwwBCyAGEDggACALIAVBAXRqEHkiBjYCCCAAIAUgBmoiBzYCDCAAIAcgC2oiEDYCEAsCfyABQQJxIhFFIA9BAEdxIhIEQCAAKAIAIgQgBCgCxBFBAWoiAzYCxBEgAgwBCyACIAIgACgCACIEKAJEIgFtIgMgAiABIANsa0EASmoiASAAKAIEbCIDIAFqIgEgASACShsLIRNBACEMIAMgE04NASAJQRBqIRUgCEEQaiEWIAJBf2ohF0EAIQoDQCAEKALAEUEBSA0CIA4gBSADIBdGIA5BAEpxIgIbIQFBASAKIAIbIQoCQCAPBEAgAyAFbCECIBEEQCACIBZqIAIgCWogARBQGgwCCyAEIAEgCkEAIAsgAiAJaiAHIAYgEBC0ASEBDAELIBEEQCAIIAMgBWwiAmogAiAVaiABEFAaDAELIAQgASAKIAkgDSADQQJ0aigAACAIIAMgBWxqIAYgBxCzASEBCyAAKAIAIgIoAsARQQFIDQIgAUF/TARAIAIgATYCwBEMAwsCQCASBEAgDSADQQJ0aiACKAIsIgQQNCAAKAIAIQIgAUEAIAEgBGogFEwbRQRAIAJBADYCwBEMBgsgAiACKALEEUEBaiIDNgLEESACIAIoAiwgAWo2AiwgBCAIaiAHIAEQUBoMAQsgASAMaiEMIANBAWohAwsgAyATTg0CIAAoAgAhBAwACwALIAAoAggQOCAAEDhBAA8LIBINACAAKAIAIgEoAsARQQFIDQAgASABKAIsIAxqNgIsDAALAAvyAQEIfyMAQSBrIgIkACAAQoGAgIBwNwLAESAAQZQRaiIFEAkaIAVBABAIGgJAIAAoAkRBAUgNAANAAkAgACAEQQJ0aiIGQdAIaiAENgIAQRgQeSIBIAQ2AgQgASAANgIAIAEgACgCJCIDIAAoAihBAnRqIgcgA0EBdGoQeSIDNgIIIAEgACgCJCIINgIUIAEgAyAIaiIDNgIMIAEgAyAHajYCECAGQdAAaiAFQREgARAaIgENACAEQQFqIgQgACgCREgNAQwCCwsgAiABNgIQQaURIAJBEGoQTyACIAEQuAE2AgBB1REgAhBPCyACQSBqJAALHAAgACAAKAIIIAFrNgIIIAAgACgCBCABajYCBAuBAQEDfyMAQSBrIgEkACAAKAJIQQFOBEAgAEEBNgJMA0AgACACQQJ0aigCUCABQRxqEAsiAwRAIAEgAzYCEEHYEiABQRBqEE8gASADELgBNgIAQdURIAEQTwsgAkEBaiICIAAoAkhIDQALIABBlBFqEAoaCyAAQQA2AkggAUEgaiQAC3UBAn8jAEEQayICJAACQCAAKAJEIgFBgQJOBEAgAkGAAjYCAEG7ECACEE8MAQsgAUEATARAQfkQQSsQcgwBCyAAAn9BASABQQFGDQAaIAEgASAAKAJIRg0AGiAAELcCIAAQtQIgACgCRAs2AkgLIAJBEGokAAv/AgEIfyAAKAIsIQQgACgCKEECdCAAKAIkQQF0ahB5IQUgACgCHCIGQQFOBEAgBSAAKAIkaiEIA0ACQCAAKAIARQ0AIAAoAgwtAABBAnENACAAKAI0IANBAnRqIAQQNCAAKAIcIQYLQQAhByAAKAIkIgIhASAGQX9qIANGBEAgACgCICIBIAIgAUEASiIHGyEBCyAAKAIMLQAAQQJxIQYCQCAAKAIABEAgBgRAIAIgA2wiAiAAKAIIakEQaiAAKAIEIAJqIAEQUBoMAgsgACABIAcgBCAAKAIwIAAoAgQgAiADbGogACgCCCAEaiAFIAgQtAEiAQ0BIAUQOEEADwsgBgRAIAIgA2wiAiAAKAIIaiAAKAIEIAJqQRBqIAEQUBoMAQsgACABIAcgACgCBCAAKAI0IANBAnRqKAAAIAAoAgggAiADbGogBSAIELMBIQELIAFBAEgEQCAFEDggAQ8LIAEgBGohBCADQQFqIgMgACgCHCIGSA0ACwsgBRA4IAQLEQAgASAAKAIINgIAIAAoAgQLhwEBAn8CQCAAKAIMLQAAQQJxBEAgACgCFEEQaiAAKAIwSg0BC0F/IQIgABCHASIBQQBIDQACQCABDQBBACEBIAAoAhRBEGogACgCMEoNACAAKAIMIgEgAS0AAEECcjoAACAAQRA2AiwgABCHASIBQQBIDQELIAAoAghBDGogARA0IAEhAgsgAgtUACAAQZgQEF1FBEBBAA8LIABBoBAQXUUEQEEBDwsgAEGkEBBdRQRAQQIPCyAAQaoQEF1FBEBBAw8LIABBsRAQXUUEQEEEDwtBf0EFIABBthAQXRsLIgEBfiABIAKtIAOtQiCGhCAEIAARFAAiBUIgiKcQBCAFpwseAQF+IAEgAiADIAQgBSAAEQ8AIgZCIIinEAQgBqcLKQAgACgCACABKAIANgIAIAAoAgAgASgCBDYCBCAAIAAoAgBBCGo2AgALBABCAAsEAEEACz4BA38DQCAAQQR0IgFBhO0BaiABQYDtAWoiAjYCACABQYjtAWogAjYCACAAQQFqIgBBwABHDQALQTAQtgEaCxsAIAAgASgCCCAFEEMEQCABIAIgAyAEEIwBCwuWAgEGfyAAIAEoAgggBRBDBEAgASACIAMgBBCMAQ8LIAEtADUhByAAKAIMIQYgAUEAOgA1IAEtADQhCCABQQA6ADQgAEEQaiIJIAEgAiADIAQgBRCJASAHIAEtADUiCnIhByAIIAEtADQiC3IhCAJAIAZBAkgNACAJIAZBA3RqIQkgAEEYaiEGA0AgAS0ANg0BAkAgCwRAIAEoAhhBAUYNAyAALQAIQQJxDQEMAwsgCkUNACAALQAIQQFxRQ0CCyABQQA7ATQgBiABIAIgAyAEIAUQiQEgAS0ANSIKIAdyIQcgAS0ANCILIAhyIQggBkEIaiIGIAlJDQALCyABIAdB/wFxQQBHOgA1IAEgCEH/AXFBAEc6ADQLkgEAIAAgASgCCCAEEEMEQCABIAIgAxCLAQ8LAkAgACABKAIAIAQQQ0UNAAJAIAIgASgCEEcEQCABKAIUIAJHDQELIANBAUcNASABQQE2AiAPCyABIAI2AhQgASADNgIgIAEgASgCKEEBajYCKAJAIAEoAiRBAUcNACABKAIYQQJHDQAgAUEBOgA2CyABQQQ2AiwLCzQBAX8jAEEQayICJAAgAiAANgIEIAIgASkCADcCCCACQQRqIAJBCGoQvwIgAkEQaiQAIAALoQQBBH8gACABKAIIIAQQQwRAIAEgAiADEIsBDwsCQCAAIAEoAgAgBBBDBEACQCACIAEoAhBHBEAgASgCFCACRw0BCyADQQFHDQIgAUEBNgIgDwsgASADNgIgIAEoAixBBEcEQCAAQRBqIgUgACgCDEEDdGohCCABAn8CQANAAkAgBSAITw0AIAFBADsBNCAFIAEgAiACQQEgBBCJASABLQA2DQACQCABLQA1RQ0AIAEtADQEQEEBIQMgASgCGEEBRg0EQQEhB0EBIQYgAC0ACEECcQ0BDAQLQQEhByAGIQMgAC0ACEEBcUUNAwsgBUEIaiEFDAELCyAGIQNBBCAHRQ0BGgtBAws2AiwgA0EBcQ0CCyABIAI2AhQgASABKAIoQQFqNgIoIAEoAiRBAUcNASABKAIYQQJHDQEgAUEBOgA2DwsgACgCDCEGIABBEGoiBSABIAIgAyAEEHogBkECSA0AIAUgBkEDdGohBiAAQRhqIQUCQCAAKAIIIgBBAnFFBEAgASgCJEEBRw0BCwNAIAEtADYNAiAFIAEgAiADIAQQeiAFQQhqIgUgBkkNAAsMAQsgAEEBcUUEQANAIAEtADYNAiABKAIkQQFGDQIgBSABIAIgAyAEEHogBUEIaiIFIAZJDQAMAgsACwNAIAEtADYNASABKAIkQQFGBEAgASgCGEEBRg0CCyAFIAEgAiADIAQQeiAFQQhqIgUgBkkNAAsLC28BAn8gACABKAIIQQAQQwRAIAEgAiADEIoBDwsgACgCDCEEIABBEGoiBSABIAIgAxC3AQJAIARBAkgNACAFIARBA3RqIQQgAEEYaiEAA0AgACABIAIgAxC3ASABLQA2DQEgAEEIaiIAIARJDQALCwsZACAAIAEoAghBABBDBEAgASACIAMQigELCzIAIAAgASgCCEEAEEMEQCABIAIgAxCKAQ8LIAAoAggiACABIAIgAyAAKAIAKAIcEQgAC/MBACAAIAEoAgggBBBDBEAgASACIAMQiwEPCwJAIAAgASgCACAEEEMEQAJAIAIgASgCEEcEQCABKAIUIAJHDQELIANBAUcNAiABQQE2AiAPCyABIAM2AiACQCABKAIsQQRGDQAgAUEAOwE0IAAoAggiACABIAIgAkEBIAQgACgCACgCFBEMACABLQA1BEAgAUEDNgIsIAEtADRFDQEMAwsgAUEENgIsCyABIAI2AhQgASABKAIoQQFqNgIoIAEoAiRBAUcNASABKAIYQQJHDQEgAUEBOgA2DwsgACgCCCIAIAEgAiADIAQgACgCACgCGBELAAsLOAAgACABKAIIIAUQQwRAIAEgAiADIAQQjAEPCyAAKAIIIgAgASACIAMgBCAFIAAoAgAoAhQRDAALoAIBBH8jAEFAaiIBJAAgACgCACICQXxqKAIAIQMgAkF4aigCACEEIAFB7OQBNgIQIAEgADYCDCABQfjkATYCCEEAIQIgAUEUakEAQSsQKBogACAEaiEAAkAgA0H45AFBABBDBEAgAUEBNgI4IAMgAUEIaiAAIABBAUEAIAMoAgAoAhQRDAAgAEEAIAEoAiBBAUYbIQIMAQsgAyABQQhqIABBAUEAIAMoAgAoAhgRCwACQAJAIAEoAiwOAgABAgsgASgCHEEAIAEoAihBAUYbQQAgASgCJEEBRhtBACABKAIwQQFGGyECDAELIAEoAiBBAUcEQCABKAIwDQEgASgCJEEBRw0BIAEoAihBAUcNAQsgASgCGCECCyABQUBrJAAgAgudAQEBfyMAQUBqIgMkAAJ/QQEgACABQQAQQw0AGkEAIAFFDQAaQQAgARDNAiIBRQ0AGiADQQhqQQRyQQBBNBAoGiADQQE2AjggA0F/NgIUIAMgADYCECADIAE2AgggASADQQhqIAIoAgBBASABKAIAKAIcEQgAIAMoAiAiAEEBRgRAIAIgAygCGDYCAAsgAEEBRgshACADQUBrJAAgAAsKACAAIAFBABBDCwwAIAAQjQEaIAAQOAsHACAAKAIECwkAIAAQjQEQOAsGAEG54wELPwEBf0EZEG0iAUEANgIIIAFCjICAgMABNwIAIAFBDGoiAUGx4wEpAAA3AAUgAUGs4wEpAAA3AAAgACABNgIAC4EBAQN/IwBBEGsiACQAAkAgAEEMaiAAQQhqEBQNAEH07AEgACgCDEECdEEEahBMIgE2AgAgAUUNACAAKAIIEEwiAUUEQEH07AFBADYCAAwBC0H07AEoAgAiAiAAKAIMQQJ0akEANgIAIAIgARATRQ0AQfTsAUEANgIACyAAQRBqJAALjgIBAX9BASECAkAgAAR/IAFB/wBNDQECQEHc7AEoAgBFBEAgAUGAf3FBgL8DRg0DDAELIAFB/w9NBEAgACABQT9xQYABcjoAASAAIAFBBnZBwAFyOgAAQQIPCyABQYCwA09BACABQYBAcUGAwANHG0UEQCAAIAFBP3FBgAFyOgACIAAgAUEMdkHgAXI6AAAgACABQQZ2QT9xQYABcjoAAUEDDwsgAUGAgHxqQf//P00EQCAAIAFBP3FBgAFyOgADIAAgAUESdkHwAXI6AAAgACABQQZ2QT9xQYABcjoAAiAAIAFBDHZBP3FBgAFyOgABQQQPCwtBsOwBQRk2AgBBfwUgAgsPCyAAIAE6AABBAQsJACAAKAI8EBULuAEBAX8gAUEARyECAkACQAJAIAFFIABBA3FFcg0AA0AgAC0AAEUNAiAAQQFqIQAgAUF/aiIBQQBHIQIgAUUNASAAQQNxDQALCyACRQ0BAkAgAC0AAEUgAUEESXINAANAIAAoAgAiAkF/cyACQf/9+3dqcUGAgYKEeHENASAAQQRqIQAgAUF8aiIBQQNLDQALCyABRQ0BCwNAIAAtAABFBEAgAA8LIABBAWohACABQX9qIgENAAsLQQALgwECA38BfgJAIABCgICAgBBUBEAgACEFDAELA0AgAUF/aiIBIABCCoAiBUJ2fiAAfKdBMHI6AAAgAEL/////nwFWIQIgBSEAIAINAAsLIAWnIgIEQANAIAFBf2oiASACQQpuIgNBdmwgAmpBMHI6AAAgAkEJSyEEIAMhAiAEDQALCyABCy0AIABQRQRAA0AgAUF/aiIBIACnQQdxQTByOgAAIABCA4giAEIAUg0ACwsgAQs1ACAAUEUEQANAIAFBf2oiASAAp0EPcUGw1AFqLQAAIAJyOgAAIABCBIgiAEIAUg0ACwsgAQvPAgEDfyMAQdABayIDJAAgAyACNgLMAUEAIQIgA0GgAWpBAEEoECgaIAMgAygCzAE2AsgBAkBBACABIANByAFqIANB0ABqIANBoAFqEI4BQQBIDQAgACgCTEEATgRAQQEhAgsgACgCACEEIAAsAEpBAEwEQCAAIARBX3E2AgALIARBIHEhBQJ/IAAoAjAEQCAAIAEgA0HIAWogA0HQAGogA0GgAWoQjgEMAQsgAEHQADYCMCAAIANB0ABqNgIQIAAgAzYCHCAAIAM2AhQgACgCLCEEIAAgAzYCLCAAIAEgA0HIAWogA0HQAGogA0GgAWoQjgEgBEUNABogAEEAQQAgACgCJBEBABogAEEANgIwIAAgBDYCLCAAQQA2AhwgAEEANgIQIAAoAhQaIABBADYCFEEACxogACAAKAIAIAVyNgIAIAJFDQALIANB0AFqJAAL1AIBB38jAEEgayIDJAAgAyAAKAIcIgQ2AhAgACgCFCEFIAMgAjYCHCADIAE2AhggAyAFIARrIgE2AhQgASACaiEEQQIhByADQRBqIQECfwJAAkAgACgCPCADQRBqQQIgA0EMahAFEI8BRQRAA0AgBCADKAIMIgVGDQIgBUF/TA0DIAEgBSABKAIEIghLIgZBA3RqIgkgBSAIQQAgBhtrIgggCSgCAGo2AgAgAUEMQQQgBhtqIgkgCSgCACAIazYCACAEIAVrIQQgACgCPCABQQhqIAEgBhsiASAHIAZrIgcgA0EMahAFEI8BRQ0ACwsgBEF/Rw0BCyAAIAAoAiwiATYCHCAAIAE2AhQgACABIAAoAjBqNgIQIAIMAQsgAEEANgIcIABCADcDECAAIAAoAgBBIHI2AgBBACAHQQJGDQAaIAIgASgCBGsLIQQgA0EgaiQAIAQLJAAgAEELTwR/IABBEGpBcHEiACAAQX9qIgAgAEELRhsFQQoLC0IBAX8jAEEQayIDJAAgACgCPCABpyABQiCIpyACQf8BcSADQQhqEA8QjwEhACADKQMIIQEgA0EQaiQAQn8gASAAGwshAQJ/IAAQ8gNBAWoiARBMIgJFBEBBAA8LIAIgACABECoLKgEBfyMAQRBrIgEkACABIAA2AgwgASgCDBCQARDgAiEAIAFBEGokACAACyoBAX8jAEEQayIAJAAgAEGmygE2AgxByMoBQQcgACgCDBAAIABBEGokAAsqAQF/IwBBEGsiACQAIABBh8oBNgIMQfDKAUEGIAAoAgwQACAAQRBqJAALKgEBfyMAQRBrIgAkACAAQZnIATYCDEGYywFBBSAAKAIMEAAgAEEQaiQACyoBAX8jAEEQayIAJAAgAEH7xwE2AgxBwMsBQQQgACgCDBAAIABBEGokAAudAQECfyACQXBJBEACQCACQQpNBEAgACACOgALIAAhAwwBCyAAIAIQ3gJBAWoiBBBtIgM2AgAgACAEQYCAgIB4cjYCCCAAIAI2AgQLIAIiAARAIAMgASAAECoaCyACIANqQQA6AAAPC0EIEA4iASICIgBB0OMBNgIAIABB/OMBNgIAIABBBGoQ1AIgAkGs5AE2AgAgAUG45AFBEBANAAsHACAAKAIICyoBAX8jAEEQayIAJAAgAEGHxgE2AgxBsM0BQQAgACgCDBAAIABBEGokAAsqAQF/IwBBEGsiACQAIABBmMUBNgIMQYjoASAAKAIMQQgQBiAAQRBqJAALKgEBfyMAQRBrIgAkACAAQZLFATYCDEH85wEgACgCDEEEEAYgAEEQaiQACy4BAX8jAEEQayIAJAAgAEGExQE2AgxB8OcBIAAoAgxBBEEAQX8QASAAQRBqJAALNgEBfyMAQRBrIgAkACAAQf/EATYCDEHk5wEgACgCDEEEQYCAgIB4Qf////8HEAEgAEEQaiQACy4BAX8jAEEQayIAJAAgAEHyxAE2AgxB2OcBIAAoAgxBBEEAQX8QASAAQRBqJAALNgEBfyMAQRBrIgAkACAAQe7EATYCDEHM5wEgACgCDEEEQYCAgIB4Qf////8HEAEgAEEQaiQACzABAX8jAEEQayIAJAAgAEHfxAE2AgxBwOcBIAAoAgxBAkEAQf//AxABIABBEGokAAsyAQF/IwBBEGsiACQAIABB2cQBNgIMQbTnASAAKAIMQQJBgIB+Qf//ARABIABBEGokAAsvAQF/IwBBEGsiACQAIABBy8QBNgIMQZznASAAKAIMQQFBAEH/ARABIABBEGokAAswAQF/IwBBEGsiACQAIABBv8QBNgIMQajnASAAKAIMQQFBgH9B/wAQASAAQRBqJAALMAEBfyMAQRBrIgAkACAAQbrEATYCDEGQ5wEgACgCDEEBQYB/Qf8AEAEgAEEQaiQACyYBAX8jAEEQayIAJAAgAEGk7AE2AgwgACgCDBoQwwEgAEEQaiQAC+gLAg9/AX4jAEHwAGsiByQAIAcgACgC8OEBIgg2AlQgASACaiEOIAggACgCgOIBaiEPIAEhCgJAAkAgBUUNACAAKALE4AEhECAAKALA4AEhESAAKAK84AEhDSAAQQE2AozhASAHIABBtNABaigCADYCRCAHIABBrNABaiISKQIANwI8IAdBEGogAyAEEEUQIQRAQWwhAAwCCyAHQTxqIRMgB0EkaiAHQRBqIAAoAgAQaCAHQSxqIAdBEGogACgCCBBoIAdBNGogB0EQaiAAKAIEEGggDkFgaiEUA0ACQAJAIAVFIAdBEGoQI0ECS3JFBEAgBygCKCAHKAIkQQN0aiIALQACIQIgBygCOCAHKAI0QQN0aiIELQACIQMgBCgCBCEMIAAoAgQhBAJAIAcoAjAgBygCLEEDdGoiCC0AAiIARQRAQQAhCQwBCyAIKAIEIQggBkUgAEEZSXJFBEAgCCAHQRBqIABBICAHKAIUayIIIAggAEsbIggQQiAAIAhrIgB0aiEJIAdBEGoQIxogAEUNAyAHQRBqIAAQQiAJaiEJDAMLIAdBEGogABBCIAhqIQkgB0EQahAjGiAAQQFLDQILAkACQAJAAkACQCAJIARFaiIADgQEAQEAAQsgBygCPEF/aiIAIABFaiEJDAELIABBAnQgB2ooAjwiCCAIRWohCSAAQQFGDQELIAcgBygCQDYCRAsgByAHKAI8NgJAIAcgCTYCPAwDCyAHKAI8IQkMAgsgBQRAQWwhAAwFC0FsIQAgB0EQahAjQQJJDQQgEiATKQIANwIAIBIgEygCCDYCCCAHKAJUIQgMAwsgBykCPCEWIAcgCTYCPCAHIBY3A0ALIAIgA2ohACADBH8gB0EQaiADEEIFQQALIQggAEEUTwRAIAdBEGoQIxoLIAggDGohCyACBH8gB0EQaiACEEIFQQALIQggB0EQahAjGiAHIAcoAiggBygCJEEDdGoiAC8BACAHQRBqIAAtAAMQRmo2AiQgByAHKAI4IAcoAjRBA3RqIgAvAQAgB0EQaiAALQADEEZqNgI0IAdBEGoQIxogByAHKAIwIAcoAixBA3RqIgAvAQAgB0EQaiAALQADEEZqNgIsIAcgBCAIaiIANgJYIAcgCTYCYCAHIAs2AlwgBygCVCEMIAcgACAKaiIEIAlrIgI2AmgCfwJAIAogACALaiIDaiAUTQRAIAAgDGoiFSAPTQ0BCyAHIAcpA2A3AwggByAHKQNYNwMAIAogDiAHIAdB1ABqIA8gDSARIBAQkwEMAQsgCiAMEBwCQCAAQRFJDQAgCkEQaiAMQRBqIggQHCAKQSBqIAxBIGoQHCAAQXBqQSFIDQAgCkEwaiEAA0AgACAIQSBqIgwQHCAAQRBqIAhBMGoQHCAMIQggAEEgaiIAIARJDQALCyAHIBU2AlQgByAENgJsAkAgCSAEIA1rSwRAQWwgCSAEIBFrSw0CGiAQIAIgDWsiAGoiAiALaiAQTQRAIAQgAiALEEoaDAILIAQgAkEAIABrEEohAiAHIAAgC2oiCzYCXCAHIAIgAGsiBDYCbCAHIA02AmggDSECCyAJQRBPBEAgBCACEBwgBEEQaiACQRBqEBwgC0EhSA0BIAQgC2ohCCAEQSBqIQADQCAAIAJBIGoiBBAcIABBEGogAkEwahAcIAQhAiAAQSBqIgAgCEkNAAsMAQsgB0HsAGogB0HoAGogCRB8IAtBCUkNACALIAcoAmwiCGpBeGohBCAIIAcoAmgiAGtBD0wEQANAIAggABBnIABBCGohACAIQQhqIgggBEkNAAwCCwALIAggABAcIAhBEGogAEEQahAcIAtBKUgNACAIQSBqIQgDQCAIIABBIGoiAhAcIAhBEGogAEEwahAcIAIhACAIQSBqIgggBEkNAAsLIAMLIQAgBUF/aiEFIAAgCmohCiAAECFFDQALDAELQbp/IQAgDyAIayICIA4gCmtLDQAgCiAIIAIQKiACaiABayEACyAHQfAAaiQAIAALkBgCGX8CfiMAQdABayIHJAAgByAAKALw4QEiCDYCtAEgASACaiESIAggACgCgOIBaiETIAEhCgJAIAUEQCAAKALE4AEhECAAKALA4AEhFCAAKAK84AEhDiAAQQE2AozhASAHIABBtNABaigCADYCXCAHIABBrNABaiIXKQIANwJUIAcgEDYCZCAHIA42AmAgByABIA5rNgJoQWwhDyAHQShqIAMgBBBFECENASAFQQQgBUEESBshFiAHQTxqIAdBKGogACgCABBoIAdBxABqIAdBKGogACgCCBBoIAdBzABqIAdBKGogACgCBBBoQQAhCCAFQQBKIQICQCAFQQFIIAdBKGoQI0ECS3INACAHQeAAaiELIAdB5ABqIQwDQCAHKAJAIAcoAjxBA3RqIgAtAAIhAyAHKAJQIAcoAkxBA3RqIgItAAIhBCACKAIEIQ0gACgCBCEJQQAhAAJAAkAgBygCSCAHKAJEQQN0aiIKLQACIgIEQCAKKAIEIQACQCAGBEAgACAHQShqIAJBGCACQRhJGyIAEEIgAiAAayIKdGohACAHQShqECMaIApFDQEgB0EoaiAKEEIgAGohAAwBCyAHQShqIAIQQiAAaiEAIAdBKGoQIxoLIAJBAUsNAQsCQAJAAkACQAJAIAAgCUVqIgIOBAQBAQABCyAHKAJUQX9qIgAgAEVqIQAMAQsgAkECdCAHaigCVCIAIABFaiEAIAJBAUYNAQsgByAHKAJYNgJcCyAHIAcoAlQ2AlggByAANgJUDAILIAcoAlQhAAwBCyAHKQJUISAgByAANgJUIAcgIDcDWAsgAyAEaiECIAQEfyAHQShqIAQQQgVBAAshCiACQRRPBEAgB0EoahAjGgsgCiANaiEEIAMEfyAHQShqIAMQQgVBAAshAiAHQShqECMaIAcgAiAJaiIKIAcoAmhqIgMgBGo2AmggDCALIAAgA0sbKAIAIQkgByAHKAJAIAcoAjxBA3RqIgIvAQAgB0EoaiACLQADEEZqNgI8IAcgBygCUCAHKAJMQQN0aiICLwEAIAdBKGogAi0AAxBGajYCTCAHQShqECMaIAcoAkggBygCREEDdGoiAi8BACENIAdBKGogAi0AAxBGIREgB0HwAGogCEEEdGoiAiADIAlqIABrNgIMIAIgADYCCCACIAQ2AgQgAiAKNgIAIAcgDSARajYCRCAIQQFqIgggFkghAiAHQShqECMhACAIIBZODQEgAEEDSQ0ACwsgAg0BIAggBUghAiAHQShqECMhAAJAIAggBU4EQCABIQoMAQsgAEECSwRAIAEhCgwBCyASQWBqIRogB0HgAGohGyAHQeQAaiEcIAEhCgNAIAcoAkAgBygCPEEDdGoiAC0AAiEDIAcoAlAgBygCTEEDdGoiBC0AAiECIAQoAgQhDCAAKAIEIQRBACELAkACQCAHKAJIIAcoAkRBA3RqIgktAAIiAARAIAkoAgQhCQJAIAYEQCAJIAdBKGogAEEYIABBGEkbIgkQQiAAIAlrIgl0aiELIAdBKGoQIxogCUUNASAHQShqIAkQQiALaiELDAELIAdBKGogABBCIAlqIQsgB0EoahAjGgsgAEEBSw0BCwJAAkACQAJAAkAgCyAERWoiAA4EBAEBAAELIAcoAlRBf2oiACAARWohCwwBCyAAQQJ0IAdqKAJUIgkgCUVqIQsgAEEBRg0BCyAHIAcoAlg2AlwLIAcgBygCVDYCWCAHIAs2AlQMAgsgBygCVCELDAELIAcpAlQhICAHIAs2AlQgByAgNwNYCyACIANqIQAgAgR/IAdBKGogAhBCBUEACyECIABBFE8EQCAHQShqECMaCyACIAxqIRggAwR/IAdBKGogAxBCBUEACyEAIAdBKGoQIxogByAAIARqIh0gBygCaGoiGSAYajYCaCAcIBsgCyAZSxsoAgAhHiAHIAcoAkAgBygCPEEDdGoiAC8BACAHQShqIAAtAAMQRmo2AjwgByAHKAJQIAcoAkxBA3RqIgAvAQAgB0EoaiAALQADEEZqNgJMIAdBKGoQIxogByAHKAJIIAcoAkRBA3RqIgAvAQAgB0EoaiAALQADEEZqNgJEIAcgB0HwAGogCEEDcUEEdGoiESkDCCIgNwPAASAHIBEpAwAiITcDuAEgBygCtAEhACAHKAK8ASENIAcgCiAhpyIJaiIMICCnIhVrIgM2AsgBAn8CQCAAIAlqIh8gE00EQCAKIAkgDWoiBGogGk0NAQsgByAHKQPAATcDICAHIAcpA7gBNwMYIAogEiAHQRhqIAdBtAFqIBMgDiAUIBAQkwEMAQsgCiAAEBwCQCAJQRFJDQAgCkEQaiAAQRBqIgIQHCAKQSBqIABBIGoQHCAJQXBqQSFIDQAgCkEwaiEAA0AgACACQSBqIgkQHCAAQRBqIAJBMGoQHCAJIQIgAEEgaiIAIAxJDQALCyAHIB82ArQBIAcgDDYCzAECQCAVIAwgDmtLBEBBbCAVIAwgFGtLDQIaIBAgAyAOayIAaiICIA1qIBBNBEAgDCACIA0QShoMAgsgDCACQQAgAGsQSiECIAcgACANaiINNgK8ASAHIAIgAGsiDDYCzAEgByAONgLIASAOIQMLIBVBEE8EQCAMIAMQHCAMQRBqIANBEGoQHCANQSFIDQEgDCANaiEJIAxBIGohAANAIAAgA0EgaiICEBwgAEEQaiADQTBqEBwgAiEDIABBIGoiACAJSQ0ACwwBCyAHQcwBaiAHQcgBaiAVEHwgDUEJSQ0AIA0gBygCzAEiAmpBeGohCSACIAcoAsgBIgBrQQ9MBEADQCACIAAQZyAAQQhqIQAgAkEIaiICIAlJDQAMAgsACyACIAAQHCACQRBqIABBEGoQHCANQSlIDQAgAkEgaiECA0AgAiAAQSBqIgMQHCACQRBqIABBMGoQHCADIQAgAkEgaiICIAlJDQALCyAECyIAECEEQCAAIQ8MBAsgESAdNgIAIBEgGSAeaiALazYCDCARIAs2AgggESAYNgIEIAAgCmohCiAIQQFqIgggBUghAiAHQShqECMhACAIIAVODQEgAEEDSQ0ACwsgAg0BIAggFmsiDCAFSARAIBJBYGohDQNAIAcgB0HwAGogDEEDcUEEdGoiACkDCCIgNwPAASAHIAApAwAiITcDuAEgBygCtAEhACAHKAK8ASELIAcgCiAhpyIGaiIEICCnIglrIgI2AsgBAn8CQCAAIAZqIg8gE00EQCAKIAYgC2oiA2ogDU0NAQsgByAHKQPAATcDECAHIAcpA7gBNwMIIAogEiAHQQhqIAdBtAFqIBMgDiAUIBAQkwEMAQsgCiAAEBwCQCAGQRFJDQAgCkEQaiAAQRBqIggQHCAKQSBqIABBIGoQHCAGQXBqQSFIDQAgCkEwaiEAA0AgACAIQSBqIgYQHCAAQRBqIAhBMGoQHCAGIQggAEEgaiIAIARJDQALCyAHIA82ArQBIAcgBDYCzAECQCAJIAQgDmtLBEBBbCAJIAQgFGtLDQIaIBAgAiAOayIAaiICIAtqIBBNBEAgBCACIAsQShoMAgsgBCACQQAgAGsQSiECIAcgACALaiILNgK8ASAHIAIgAGsiBDYCzAEgByAONgLIASAOIQILIAlBEE8EQCAEIAIQHCAEQRBqIAJBEGoQHCALQSFIDQEgBCALaiEGIARBIGohAANAIAAgAkEgaiIEEBwgAEEQaiACQTBqEBwgBCECIABBIGoiACAGSQ0ACwwBCyAHQcwBaiAHQcgBaiAJEHwgC0EJSQ0AIAsgBygCzAEiCGpBeGohBCAIIAcoAsgBIgBrQQ9MBEADQCAIIAAQZyAAQQhqIQAgCEEIaiIIIARJDQAMAgsACyAIIAAQHCAIQRBqIABBEGoQHCALQSlIDQAgCEEgaiEIA0AgCCAAQSBqIgIQHCAIQRBqIABBMGoQHCACIQAgCEEgaiIIIARJDQALCyADCyIPECENAyAKIA9qIQogDEEBaiIMIAVHDQALCyAXIAcpAlQ3AgAgFyAHKAJcNgIIIAcoArQBIQgLQbp/IQ8gEyAIayIAIBIgCmtLDQAgCiAIIAAQKiAAaiABayEPCyAHQdABaiQAIA8LQQEDfyAAQQhqIQMgACgCBCECQQAhAANAIAEgAyAAQQN0ai0AAkEWS2ohASAAQQFqIgAgAnZFDQALIAFBCCACa3QLJQAgAEIANwIAIABBADsBCCAAQQA6AAsgACABNgIMIAAgAjoACguUAwEFf0G4fyEHAkACQCADRQ0AIAItAAAiBEUNAQJ/IAJBAWoiBSAEQRh0QRh1IgZBf0oNABogBkF/RgRAIANBA0gNAiAFLwAAQYD+AWohBCACQQNqDAELIANBAkgNASACLQABIARBCHRyQYCAfmohBCACQQJqCyEFIAEgBDYCACAFQQFqIgEgAiADaiIDSw0AQWwhByAAQRBqIAAgBS0AACIFQQZ2QSNBCSABIAMgAWtB4LABQfCxAUGAswEgACgCjOEBIAAoApziASAEEJQBIgYQISIIDQAgAEGYIGogAEEIaiAFQQR2QQNxQR9BCCABIAEgBmogCBsiASADIAFrQZC3AUGQuAFBkLkBIAAoAozhASAAKAKc4gEgBBCUASIGECEiCA0AIABBoDBqIABBBGogBUECdkEDcUE0QQkgASABIAZqIAgbIgEgAyABa0GguwFBgL0BQeC+ASAAKAKM4QEgACgCnOIBIAQQlAEiABAhDQAgACABaiACayEHCyAHDwsgAUEANgIAQQFBuH8gA0EBRhsLygYBCH9BbCEIAkAgAkEDSQ0AAkACQAJAAkAgAS0AACIEQQNxIglBAWsOAwMBAAILIAAoAojhAQ0AQWIPCyACQQVJDQJBAyEGIAEoAAAhBQJ/AkACQAJAIARBAnZBA3EiB0F+ag4CAQIACyAFQQ52Qf8HcSEEIAVBBHZB/wdxIQMgB0UMAgsgBUESdiEEQQQhBiAFQQR2Qf//AHEhA0EADAELIAVBBHZB//8PcSIDQYCACEsNAyABLQAEQQp0IAVBFnZyIQRBBSEGQQALIQUgBCAGaiIKIAJLDQICQCADQYEGSQ0AIAAoApziAUUNAEEAIQIDQCACQcT/AEkhByACQUBrIQIgBw0ACwsCfyAJQQNGBEAgASAGaiEBIABB4OIBaiECIAAoAgwhBiAFBEAgAiADIAEgBCAGEJMDDAILIAIgAyABIAQgBhCQAwwBCyAAQbjQAWohAiABIAZqIQEgAEHg4gFqIQYgAEGo0ABqIQcgBQRAIAcgBiADIAEgBCACEJEDDAELIAcgBiADIAEgBCACEI4DCxAhDQIgACADNgKA4gEgAEEBNgKI4QEgACAAQeDiAWo2AvDhASAJQQJGBEAgACAAQajQAGo2AgwLIAAgA2oiAEH44gFqQgA3AAAgAEHw4gFqQgA3AAAgAEHo4gFqQgA3AAAgAEHg4gFqQgA3AAAgCg8LQQIhAwJ/AkACQAJAIARBAnZBA3FBf2oOAwEAAgALQQEhAyAEQQN2DAILIAEvAABBBHYMAQtBAyEDIAEQlQFBBHYLIgQgA2oiBUEgaiACSwRAIAUgAksNAiAAQeDiAWogASADaiAEECohASAAIAQ2AoDiASAAIAE2AvDhASABIARqIgBCADcAGCAAQgA3ABAgAEIANwAIIABCADcAACAFDwsgACAENgKA4gEgACABIANqNgLw4QEgBQ8LQQIhAwJ/AkACQAJAIARBAnZBA3FBf2oOAwEAAgALQQEhAyAEQQN2DAILIAEvAABBBHYMAQsgAkEESSABEJUBIgJBj4CAAUtyDQFBAyEDIAJBBHYLIQIgAEHg4gFqIAEgA2otAAAgAkEgahAoIQEgACACNgKA4gEgACABNgLw4QEgA0EBaiEICyAIC8kDAQZ/IwBBgAFrIgMkAEFiIQgCQCACQQlJDQAgAEGY0ABqIAFBCGoiBCACQXhqIAAQzgEiBRAhIgYNACADQR82AnwgAyADQfwAaiADQfgAaiAEIAQgBWogBhsiBCABIAJqIgIgBGsQayIFECENACADKAJ8IgZBH0sNACADKAJ4IgdBCU8NACAAQYggaiADIAZB4KsBQeCsASAHEH0gA0E0NgJ8IAMgA0H8AGogA0H4AGogBCAFaiIEIAIgBGsQayIFECENACADKAJ8IgZBNEsNACADKAJ4IgdBCk8NACAAQZAwaiADIAZB4K0BQZCkASAHEH0gA0EjNgJ8IAMgA0H8AGogA0H4AGogBCAFaiIEIAIgBGsQayIFECENACADKAJ8IgZBI0sNACADKAJ4IgdBCk8NACAAIAMgBkHArwFBsKcBIAcQfSAEIAVqIgRBDGoiBSACSw0AIAQoAAAiBkF/aiACIAVrIgJPDQAgACAGNgKc0AEgBEEEaiIEKAAAIgVBf2ogAk8NACAAQaDQAWogBTYCACAEQQRqIgQoAAAiBUF/aiACTw0AIABBpNABaiAFNgIAIAQgAWtBBGohCAsgA0GAAWokACAICy0BAX8gAARAQbp/IQQgAyABTQR/IAAgAiADECgaIAMFIAQLDwtBtn9BACADGwstAQF/IAAEQEG6fyEEIAMgAU0EfyAAIAIgAxAqGiADBSAECw8LQbZ/QQAgAxsLpAICBH8BfiMAQRBrIgckAEG4fyEFAkAgBEH//wdLDQAgAEHY4AFqKQMAIQkgACADIAQQ+gIiBRAhIgYNACAAKAKc4gEhCCAAIAdBDGogAyADIAVqIAYbIgMgBEEAIAUgBhtrIgYQ+QIiBRAhDQAgCUKAgIAQViEEIAYgBWshBiADIAVqIQUCQAJAIAgEQCAAQQA2ApziASAHKAIMIQMMAQsCQAJAIAApA9jgAUKAgIAIWARAIAcoAgwhAwwBCyAHKAIMIgNBBEoNAQsgAEEANgKc4gEMAgsgACgCCBD3AiEIIABBADYCnOIBIAhBFEkNAQsgACABIAIgBSAGIAMgBBD2AiEFDAELIAAgASACIAUgBiADIAQQ9QIhBQsgB0EQaiQAIAULaQAgAEHQ4AFqIAEgAiAAKALs4QEQiAMiARAhBEAgAQ8LQbh/IQICQCABDQAgAEHs4AFqKAIAIgEEQEFgIQIgACgCmOIBIAFHDQELQQAhAiAAQfDgAWooAgBFDQAgAEGQ4QFqEIYCCyACC2wBAX8CfwJAAkAgAkEHTQ0AIAEoAABBt8jC4X5HDQAgACABKAAENgKY4gFBYiAAQRBqIAEgAhD7AiIDECENAhogAEKBgICAEDcDiOEBIAAgASADaiACIANrEMYBDAELIAAgASACEMYBC0EACwvIAwIHfwF+IwBBEGsiCSQAQbh/IQcCQCAEKAIAIghBBUEJIAAoAuzhASIFG0kNACADKAIAIgZBAUEFIAUbIAUQlwEiBRAhBEAgBSEHDAELIAggBUEDakkNACAAIAYgBRD/AiIHECENACAFIAZqIgYgCCAFayIIIAkQxwEiBRAhBEAgBSEHDAELIAEgAmohCiAAQZDhAWohCyABIQIDQCAIQX1qIgggBUkEQEG4fyEHDAILIAZBA2ohBkFsIQcCfwJAAkACQCAJKAIADgMBAgAFCyAAIAIgCiACayAGIAUQ/gIMAgsgAiAKIAJrIAYgBRD9AgwBCyACIAogAmsgBi0AACAJKAIIEPwCCyIHECENASAAKALw4AEEQCALIAIgBxCFAgsgCCAFayEIIAUgBmohBiACIAdqIQIgCSgCBEUEQCAGIAggCRDHASIFIQcgBRAhRQ0BDAILCyAAKQPQ4AEiDEJ/UgRAQWwhByAMIAIgAWusUg0BCyADIAAoAvDgAQR/QWohByAIQQRJDQEgCxCEAiEMIAYoAAAgDKdHDQEgCEF8aiEIIAZBBGoFIAYLNgIAIAQgCDYCACACIAFrIQcLIAlBEGokACAHCzAAIAAQyQECf0EAQQAQIQ0AGiABRSACRXJFBEBBYiAAIAEgAhCAAxAhDQEaC0EACws5ACABBEAgACAAKALE4AEgASgCBCABKAIIakc2ApziAQsgABDJAUEAECEgAUVyRQRAIAAgARCYAwsLLwACf0G4fyABQQhJDQAaQXIgACgABCIAQXdLDQAaQbh/IABBCGoiACAAIAFLGwsL3gIBB38jAEEQayIHJAAgBQR/IAUoAgQhCiAFKAIIBUEACyELAkACQCAAKALs4QEiCRBpIARLBEAgASEIDAELIAEhCANAAkAgAygAAEFwcUHQ1LTCAUYEQCADIAQQhAMiBhAhDQEgAyAGaiEDIAQgBmsiBCAJEGlPDQIgByAENgIIIAcgAzYCDAwDCyAHIAQ2AgggByADNgIMAkAgBQRAIAAgBRCDA0EAIQZBABAhRQ0BDAULIAAgCiALEIIDIgYQIQ0ECyAAIAgQhwNBACAAIAggAiAHQQxqIAdBCGoQgQMiBiIDa0EAIAMQIRtBCkYgDHEEQEG4fyEGDAQLIAYQIQ0DIAYgCGohCCAHKAIIIgQgACgC7OEBIgkQaUkNAiACIAZrIQJBASEMIAcoAgwhAwwBCwsgByAENgIIIAcgAzYCDAwBC0G4fyEGIAQNACAIIAFrIQYLIAdBEGokACAGCzMAAkACQAJAIAAoAqDiAUEBag4DAgABAAsgABDKAUEADwsgAEEANgKg4gELIAAoApTiAQtGAQJ/IAEgACgCuOABIgJHBEAgACACNgLE4AEgACABNgK44AEgACgCvOABIQMgACABNgK84AEgACABIAMgAmtqNgLA4AELC7EEAgR/An4gAEIANwMgIABCADcDGCAAQgA3AxAgAEIANwMIIABCADcDACADEGkiBCACSwRAIAQPCyABRQRAQX8PCwJAAkACQAJAAkACQAJ/IANBAUYEQCABIAJBARCXAQwBCyABKAAAIgZBqOq+aUcNASABIAIgAxCXAQsiAyACSw0FIAAgAzYCGEFyIQMgASAEaiIFQX9qLQAAIgJBCHENBSACQSBxIgZFBEBBcCEDIAUtAAAiBUGnAUsNBiAFQQdxrUIBIAVBA3ZBCmqthiIIQgOIfiAIfCEJIARBAWohBAsgAkEGdiEFIAJBAnYhB0EAIQMgAkEDcUF/ag4DAQIDBAtBdiEDIAZBcHFB0NS0wgFHDQRBCCEDIAJBCEkNBCAAQgA3AwAgAEIANwMgIABCADcDGCAAQgA3AxAgAEIANwMIIAEoAAQhASAAQQE2AhQgACABrTcDAEEADwsgASAEai0AACEDIARBAWohBAwCCyABIARqLwAAIQMgBEECaiEEDAELIAEgBGooAAAhAyAEQQRqIQQLIAdBAXEhAgJ+AkACQAJAAkAgBUF/ag4DAQIDAAtCfyAGRQ0DGiABIARqMQAADAMLIAEgBGovAACtQoACfAwCCyABIARqKAAArQwBCyABIARqKQAACyEIIAAgAjYCICAAIAM2AhwgACAINwMAQQAhAyAAQQA2AhQgACAIIAkgBhsiCDcDCCAAIAhCgIAIIAhCgIAIVBs+AhALIAMLXQEDfwJAIABFDQAgACgCiOIBDQAgAEH84QFqKAIAIQEgAEH44QFqKAIAIQIgACgC9OEBIQMgABDKASAAKAKo4gEgAyACIAEQZCAAQQA2AqjiASAAIAMgAiABEGQLC6kBAQF/IwBBIGsiASQAIABBgYCAwAA2ArTiASAAQQA2AojiASAAQQA2AuzhASAAQgA3A5DiASAAQQA2AtziASAAQgA3AsziASAAQQA2ArziASAAQQA2AsTgASAAQgA3ApziASAAQaTiAWpCADcCACAAQaziAWpBADYCACABQRBqEOABIAEgASkDGDcDCCABIAEpAxA3AwAgACABEN8BNgKM4gEgAUEgaiQACzkBAn9BmOMJQQBBABCHAiIABH8gAEEANgL84QEgAEEANgL44QEgAEEANgL04QEgABCKAyAABSABCws8AQF/IAAgAyAEIAUQzwEiBRAhBEAgBQ8LQbh/IQYgBSAESQR/IAEgAiADIAVqIAQgBWsgABDLAQUgBgsLPAEBfyAAIAMgBCAFEM4BIgUQIQRAIAUPC0G4fyEGIAUgBEkEfyABIAIgAyAFaiAEIAVrIAAQzAEFIAYLCz4AIAJFBEBBun8PCyAERQRAQWwPCyACIAQQlAMEQCAAIAEgAiADIAQgBRCNAw8LIAAgASACIAMgBCAFEIwDCwcAIAARCQALSwEBfyMAQRBrIgUkACAFQQhqIAQoAgAQNAJ/IAUtAAkEQCAAIAEgAiADIAQQzAEMAQsgACABIAIgAyAEEMsBCyEEIAVBEGokACAECzwBAX8gACADIAQgBRDPASIFECEEQCAFDwtBuH8hBiAFIARJBH8gASACIAMgBWogBCAFayAAEM0BBSAGCwv/AwEDfyMAQSBrIgUkACAFQQhqIAIgAxBFIgIQIUUEQCAFIAQoAgAQNCAEQQRqIQIgBS0AAiEDAkAgBUEIahAjIAAgAWoiB0F9aiIGIABNcg0AA0AgACACIAUoAgggBSgCDCADEClBAnRqIgQvAQA7AAAgBUEIaiAELQACECYgACAELQADaiIEIAIgBSgCCCAFKAIMIAMQKUECdGoiAC8BADsAACAFQQhqIAAtAAIQJiAEIAAtAANqIQAgBUEIahAjDQEgACAGSQ0ACwsCQCAFQQhqECMgACAHQX5qIgRLcg0AA0AgACACIAUoAgggBSgCDCADEClBAnRqIgYvAQA7AAAgBUEIaiAGLQACECYgACAGLQADaiEAIAVBCGoQIw0BIAAgBE0NAAsLIAAgBE0EQANAIAAgAiAFKAIIIAUoAgwgAxApQQJ0aiIGLwEAOwAAIAVBCGogBi0AAhAmIAAgBi0AA2oiACAETQ0ACwsCQCAAIAdPDQAgACACIAUoAgggBSgCDCADECkiA0ECdGoiAC0AADoAACAALQADQQFGBEAgBUEIaiAALQACECYMAQsgBSgCDEEfSw0AIAVBCGogAiADQQJ0ai0AAhAmIAUoAgxBIUkNACAFQSA2AgwLIAFBbCAFKAIMIAUoAhAgBSgCFBBLGyECCyAFQSBqJAAgAgtLAQF/IwBBEGsiBSQAIAVBCGogBCgCABA0An8gBS0ACQRAIAAgASACIAMgBBCSAwwBCyAAIAEgAiADIAQQzQELIQQgBUEQaiQAIAQLXQEBf0EPIQIgASAASQRAIAFBBHQgAG4hAgsgAEEIdiIBIAJBGGwiAEHMqAFqKAIAbCAAQcioAWooAgBqIgJBA3YgAmogAEHAqAFqKAIAIABBxKgBaigCACABbGpJC8wCAQR/IwBBQGoiCSQAIAkgAygCMDYCMCAJIAMpAig3AyggCSADKQIgNwMgIAkgAykCGDcDGCAJIAMpAhA3AxAgCSADKQIINwMIIAkgAykCADcDAAJAIARBAkgNACAJIARBAnRqKAIAIQQgCUE8aiAIEC8gCUEBOgA/IAkgAjoAPiAERQ0AQQAhAyAJKAI8IQoDQCAAIANBAnRqIAo2AQAgA0EBaiIDIARHDQALCyAGBEBBACEEA0AgCSAFIARBAXRqIgotAAEiC0ECdGoiDCgCACEDIAlBPGogCi0AAEEIdCAIakH//wNxEC8gCUECOgA/IAkgByALayIKIAJqOgA+IANBASABIAprdGohCiAJKAI8IQsDQCAAIANBAnRqIAs2AQAgA0EBaiIDIApJDQALIAwgCjYCACAEQQFqIgQgBkcNAAsLIAlBQGskAAvdAgEJfyMAQdAAayIJJAAgCUFAayAFKAIwNgIAIAkgBSkCKDcDOCAJIAUpAiA3AzAgCSAFKQIYNwMoIAkgBSkCEDcDICAJIAUpAgA3AxAgCSAFKQIINwMYIAMEQCAHIAZrIQ8gByABayEQA0BBASABIAcgAiALQQF0aiIGLQABIgxrIghrIgp0IQ0gBi0AACEOIAlBEGogDEECdGoiDCgCACEGAkAgCiAPTwRAIAAgBkECdGogCiAIIAUgCEE0bGogCCAQaiIIQQEgCEEBShsiCCACIAQgCEECdGooAgAiCEEBdGogAyAIayAHIA4QlQMgBiANaiEIDAELIAlBDGogDhAvIAlBAToADyAJIAg6AA4gBiAGIA1qIghPDQAgCSgCDCEKA0AgACAGQQJ0aiAKNgEAIAZBAWoiBiAIRw0ACwsgDCAINgIAIAtBAWoiCyADRw0ACwsgCUHQAGokAAs+AQN/IAAEQCAAKAIAIABBvNABaigCACIBIABBwNABaigCACICIABBxNABaigCACIDEGQgACABIAIgAxBkCwvMAQEBfyAAIAEoArTQATYCmOIBIAAgASgCBCICNgLA4AEgACACNgK84AEgACACIAEoAghqIgI2ArjgASAAIAI2AsTgASABKAK40AEEQCAAQoGAgIAQNwOI4QEgACABQaTQAGo2AgwgACABQZQgajYCCCAAIAFBnDBqNgIEIAAgAUEMajYCACAAQazQAWogAUGo0AFqKAIANgIAIABBsNABaiABQazQAWooAgA2AgAgAEG00AFqIAFBsNABaigCADYCAA8LIABCADcDiOEBC6JIAS5/IwBB4ABrIhIkACAAKAKEASEGIAAoAgQhByAAKAKIASEFIAAoAgwhCCASIAAoAhg2AlwgACgCPCEbIABBQGsoAgAhHCAAQSxqIiYgAyAEQQIQWSADIAcgCGogA0ZqIg0gAyAEaiIMQXhqIi5JBEAgBUH/HyAFQf8fSRsh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AnRBsKcBaigCABBHIAtBOGoQOSALQThqIAAvAQYgAi0AAEECdEGQpAFqKAIAEEcgC0E4ahA5AkAgCgRAIAEtAAAiASABQRggAUEYSRsiAmsiAQRAIAtBOGogACgCACABEEcgC0E4ahA5CyALQThqIAAoAgAgAXYgAhBHDAELIAtBOGogACgCACABLQAAEEcLIAtBOGoQOSAJQQJPBEAgCUF+aiEMA0AgByAMai0AACECIAMgDGotAAAhBCALQThqIAtBGGogBSAMai0AACIAEGwgC0E4aiALQShqIAQQbCALQThqEDkgC0E4aiALQQhqIAIQbCALQThqEDkgC0E4aiAIIAxBA3RqIgEvAQQgAkECdEGwpwFqKAIAIgIQRyACIARBAnRBkKQBaigCACICakEZTwRAIAtBOGoQOQsgC0E4aiABLwEGIAIQRyALQThqEDkCQCAKBEAgACAAQRggAEEYSRsiAmsiAARAIAtBOGogASgCACAAEEcgC0E4ahA5CyALQThqIAEoAgAgAHYgAhBHDAELIAtBOGogASgCACAAEEcLIAtBOGoQOSAMQX9qIgwgCUkNAAsLIAtBOGogCygCKCALKAI0EHQgC0E4aiALKAIYIAsoAiQQdCALQThqIAsoAgggCygCFBB0IAtBOGoQ/QEiAEG6fyAAGyEMCyALQdAAaiQAIAwLLwAgACACQQN0aigCBCIAQRB2QQFqIgJBCHRBfyABdCAAayACQRB0akEIdCABdmsLTwEEfwNAIANBASAAIARBAnRqKAIAIgNBCHQiBSACbiIGIAUgAkkbIAYgAxtBAnRBkJwBaigCACADbGohAyAEQQFqIgQgAU0NAAsgA0EIdgtKAQF/IwBB8ARrIgQkACAEIAMgAiABEKcBIgMgACACIAEQpgEiAhAhRQRAIARB8ABqQYAEIAQgASADEKgBIQILIARB8ARqJAAgAguKAQEIfyMAQRBrIgMkACADIAAQc0F/IQUCQCAALwACIAJJDQAgAygCDCIHQQh0QYACaiEIIAMoAgghCUEAIQADQCAJIAcgABDJAyEGIAEgAEECdGooAgAiCgRAIAYgCE8NAiAGIApsIARqIQQLIABBAWoiACACTQ0ACyAEQQh2IQULIANBEGokACAFC18BAn9BCCABayEFQQAhAQNAIARBASAAIAFBAXRqLwEAIgQg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ASACEEUiARAhDQEgBEEQaiAEQRhqIAMQggEgBEEIaiAEQRhqIAMQggFBACEBAkAgBEEYahAjBEBBACEDDAELA0AgACABaiICIARBEGogBEEYahBiOgAAIAIgBEEIaiAEQRhqEGI6AAEgBEEYahAjBEAgAUECciEDDAILIAIgBEEQaiAEQRhqEGI6AAIgAiAEQQhqIARBGGoQYjoAAyABQQRqIQMgBEEYahAjIQIgAUH3AUsNASADIQEgAkUNAAsLAn8DQEG6fyEBIANB/QFLDQMgACADaiICIARBEGogBEEYahBiOgAAIAIiBkEBaiEFIARBGGoQI0EDRgRAQQIhAyAEQQhqDAILIANB/AFLDQMgBiAEQQhqIARBGGoQYjoAASADQQJqIQMgBEEYahAjQQNHDQALIAAgA2ohBUEDIQMgBEEQagshASAFIAEgBEEYahBiOgAAIAIgA2ogAGshAQwBCyAEQRhqIAEgAhBFIgEQIQ0AIARBEGogBEEYaiADEIIBIARBCGogBEEYaiADEIIBQQAhAQJAIARBGGoQIwRAQQAhAwwBCwNAIAAgAWoiAiAEQRBqIARBGGoQYToAACACIARBCGogBEEYahBhOgABIARBGGoQIwRAIAFBAnIhAwwCCyACIARBEGogBEEYahBhOgACIAIgBEEIaiAEQRhqEGE6AAMgAUEEaiEDIARBGGoQIyECIAFB9wFLDQEgAyEBIAJFDQALCwJ/A0BBun8hASADQf0BSw0CIAAgA2oiAiAEQRBqIARBGGoQYToAACACIgZBAWohBSAEQRhqECNBA0YEQEECIQMgBEEIagwCCyADQfwBSw0CIAYgBEEIaiAEQRhqEGE6AAEgA0ECaiEDIARBGGoQI0EDRw0ACyAAIANqIQVBAyEDIARBEGoLIQEgBSABIARBGGoQYToAACACIANqIABrIQELIARBMGokACABC68DAQp/IwBBgARrIgkkAEFSIQUCQCACQf8BSw0AIABBBGohCkGAgAQgA0F/anRBEHUhC0EBIAN0IghBf2oiDCEHQQEhBQNAAkAgASAEQQF0Ig1qLwEAIgZB//8DRgRAIAogB0ECdGogBDoAAiAHQX9qIQdBASEGDAELIAVBACALIAZBEHRBEHVKGyEFCyAJIA1qIAY7AQAgAiAERyEGIARBAWohBCAGDQALIAAgBTsB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IAIgASgCCGpBADoAACABIAEoAhQiAkEBajYCFCACIAEoAghqQQA6AABBAiECIAEoAoQBIgNBCUcEQEEEIAEoAogBQQFKQQJ0IANBAkgbIQILIAEgASgCFCIDQQFqNgIUIAMgASgCCGogAjoAACABIAEoAhQiAkEBajYCFCACIAEoAghqQQM6AAAgAUHxADYCBAwNCyACKAIkIQMgAigCHCEEIAIoAhAhBSACKAIsIQYgAigCACEHIAEgASgCFCIIQQFqNgIUQQIhAiAIIAEoAghqIAZBAEdBAXQgB0EAR3IgBUEAR0ECdHIgBEEAR0EDdHIgA0EAR0EEdHI6AAAgASgCHCgCBCEDIAEgASgCFCIEQQFqNgIUIAQgASgCCGogAzoAACABKAIcKAIEIQMgASABKAIUIgRBAWo2AhQgBCABKAIIaiADQQh2OgAAIAEoAhwvAQYhAyABIAEoAhQiBEEBajYCFCAEIAEoAghqIAM6AAAgASgCHC0AByEDIAEgASgCFCIEQQFqNgIUIAQgASgCCGogAzoAACABKAKEASIDQQlHBEBBBCABKAKIAUEBSkECdCADQQJIGyECCyABIAEoAhQiA0EBajYCFCADIAEoAghqIAI6AAAgASgCHCgCDCECIAEgASgCFCIDQQFqNgIUIAMgASgCCGogAjoAAAJ/IAEoAhwiBCgCEARAIAQoAhQhAiABIAEoAhQiA0EBajYCFCADIAEoAghqIAI6AAAgASgCHCgCFCECIAEgASgCFCIDQQFqNgIUIAMgASgCCGogAkEIdjoAACABKAIcIQQLIAQoAiwLBEAgACAAKAIwIAEoAgggASgCFBA1NgIwCyABQcUANgIEIAFBADYCIAwCCyABKAIwQQx0QYCQfmohBEEAIQICQCABKAKIAUEBSg0AIAEoAoQBIgNBAkgNAEHAACECIANBBkgNAEGAAUHAASADQQZGGyECCyABQfEANgIEIAEgAiAEciICQSByIAIgASgCbBsiAkEfcCACckEfcxB1IAEoAmwEQCABIAAvATIQdSABIAAvATAQdQsgAEEAQQBBABBlNgIwIAEoAgQhAgsgAkHFAEcNASABKAIcIQQLAkAgBCgCEARAIAEoAhQhAiABKAIgIgUgBC8BFE8NASACIQMDQCABKAIMIAJGBEACQCACIANNDQAgBCgCLEUNACAAIAAoAjAgASgCCCADaiACIANrEDU2AjALIAAQNiABKAIcIQQgASgCFCICIAEoAgxGDQMgASgCICEFIAIhAwsgBCgCECAFai0AACEEIAEgAkEBajYCFCABKAIIIAJqIAQ6AAAgASABKAIgQQFqIgU2AiAgBSABKAIcIgQvARRPBEAgAyECDAMFIAEoAhQhAgwBCwALAAsgAUHJADYCBAwCCwJAIAQoAixFDQAgASgCFCIDIAJNDQAgACAAKAIwIAEoAgggAmogAyACaxA1NgIwCyABKAIgIAQoAhRGBEAgAUHJADYCBCABQQA2AiAMAgsgASgCBCECCyACQckARw0BIAEoAhwhBAsgBCgCHEUNAiABKAIUIgIhAwJAA0ACQCABKAIMIAJGBEACQCACIANNDQAgASgCHCgCLEUNACAAIAAoAjAgASgCCCADaiACIANrEDU2AjALIAAQNiABKAIUIgIgASgCDEYNASACIQMLQQEhBSABKAIcKAIcIQQgASABKAIgIgZBAWo2AiAgBCAGai0AACEEIAEgAkEBajYCFCABKAIIIAJqIAQ6AAAgBARAIAEoAhQhAgwCBSADIQIMAwsACwtBACEFCwJAIAEoAhwiBCgCLEUNACABKAIUIgMgAk0NACAAIAAoAjAgASgCCCACaiADIAJrEDU2AjALIAUNASABKAIEIQILIAJB2wBHDQMgASgCHCEEDAILIAFBADYCIAsgAUHbADYCBAsgBCgCJEUNASABKAIUIgIhAwJAA0ACQCABKAIMIAJGBEACQCACIANNDQAgASgCHCgCLEUNACAAIAAoAjAgASgCCCADaiACIANrEDU2AjALIAAQNiABKAIUIgIgASgCDEYNASACIQMLQQEhBSABKAIcKAIkIQQgASABKAIgIgZBAWo2AiAgBCAGai0AACEEIAEgAkEBajYCFCABKAIIIAJqIAQ6AAAgBARAIAEoAhQhAgwCBSADIQIMAwsACwtBACEFCwJAIAEoAhwiBCgCLEUNACABKAIUIgMgAk0NACAAIAAoAjAgASgCCCACaiADIAJrEDU2AjALIAUNASABKAIEIQILIAJB5wBHDQIgASgCHCEEDAELIAFB5wA2AgQLIAQoAiwEQCABKAIUIgVBAmoiAiABKAIMIgRLBH8gABA2IAEoAgwhBCABKAIUIgVBAmoFIAILIARLDQEgACgCMCECIAEgBUEBajYCFCABKAIIIAVqIAI6AAAgACgCMCECIAEgASgCFCIDQQFqNgIUIAMgASgCCGogAkEIdjoAACAAQQBBAEEAEDU2AjAgAUHxADYCBAwBCyABQfEANgIECwJAIAEoAhQEQCAAEDYgACgCEARAIAAoAgQhAgwCCwwECyAAKAIEIgINAEEAIQILAkACQAJAIAEoAgQiA0GaBUYEQCACRQ0BDAULIAINAQsgA0GaBUcNACABKAJ0RQ0BCwJ/AkACQAJAIAEoAogBQX5qDgIAAQILIAEQnQQMAgsgARCcBAwBCyABQQQgASgChAFBDGxBuNcAaigCABEDAAsiAkF+cUECRgRAIAFBmgU2AgQLIAJBfXFFBEBBACECIAAoAhANAgwECyACQQFHDQAgAUEAQQBBABCOAiAAEDYgACgCEA0ADAMLQQEhAiABKAIYIgNBAUgNACAAKAIwIQICQCADQQJGBEAgASABKAIUIgNBAWo2AhQgAyABKAIIaiACOgAAIAAoAjAhAiABIAEoAhQiA0EBajYCFCADIAEoAghqIAJBCHY6AAAgAC8BMiECIAEgASgCFCIDQQFqNgIUIAMgASgCCGogAjoAACAALQAzIQIgASABKAIUIgNBAWo2AhQgAyABKAIIaiACOgAAIAAoAgghAiABIAEoAhQiA0EBajYCFCADIAEoAghqIAI6AAAgACgCCCECIAEgASgCFCIDQQFqNgIUIAMgASgCCGogAkEIdjoAACAALwEKIQIgASABKAIUIgNBAWo2AhQgAyABKAIIaiACOgAAIAAtAAshAiABIAEoAhQiA0EBajYCFCADIAEoAghqIAI6AAAMAQsgASACQRB2EHUgASAALwEwEHULIAAQNiABKAIYIgBBAU4EQCABQQAgAGs2AhgLIAEoAhRFIQILIAIPCyAAQceEATYCGEF7DwsgAUF/NgIoQQAL3QEBBn8CQCAAKAKAgBAiBSAAKAKEgBAiAyAAKAKMgBAiBGpBBGpJDQAgACgClIAQIgIgBSADa0F9aiIGTw0AA0AgACACQf//A3FBAXRqQYCACGogAiAAIAIgA2oQOkECdGoiBCgCAGsiB0H//wMgB0H//wNJGzsBACAEIAI2AgAgAkEBaiICIAZJDQALIAAoAoyAECEECyAAIAQ2ApCAECAAIAM2AoiAECAAQQA2ApyAECAAIAE2AoCAECAAIAUgA2siAjYCjIAQIAAgAjYClIAQIAAgASACazYChIAQC9kDAQR/IwBBEGsiAyQAIAFBADYCACAAKAIAIgIgA0EMaiACKAIAKAIMEQMAIQICQCADKAIMRQ0AIAIsAAAhAiAAKAIAIgRBASAEKAIAKAIQEQQAIAEgASgCACACQf8AcXI2AgACQCACQX9KDQAgACgCACICIANBDGogAigCACgCDBEDACECIAMoAgxFDQEgAiwAACECIAAoAgAiBEEBIAQoAgAoAhARBAAgASABKAIAIAJB/wBxQQd0cjYCACACQX9KDQAgACgCACICIANBDGogAigCACgCDBEDACECIAMoAgxFDQEgAiwAACECIAAoAgAiBEEBIAQoAgAoAhARBAAgASABKAIAIAJB/wBxQQ50cjYCACACQX9KDQAgACgCACICIANBDGogAigCACgCDBEDACECIAMoAgxFDQEgAiwAACECIAAoAgAiBEEBIAQoAgAoAhARBAAgASABKAIAIAJB/wBxQRV0cjYCACACQX9KDQAgACgCACICIANBDGogAigCACgCDBEDACECIAMoAgxFDQEgAiwAACEFIAAoAgAiAEEBIAAoAgAoAhARBAAgASABKAIAIAVBHHRyNgIAIAVBf0oNAEEAIQUMAQtBASEFCyADQRBqJAAgBQvhSQE3fwJAIAAoAoCAECIJIAAoAoSAECILayAAKAKQgBBrIghBgIAETwRAIABBADYCnIAQDAELAkAgCA0AIAMoAgBBgSBIDQAgACAAKAKcgBBBoIAQECoiACABEKwEIAAgBTsBmIAQDAELAkAgBEEATEEAIAZBAkYbDQAgAygCACIIQYCAgPAHSw0AIAAgCCAJajYCgIAQQQkgBSAFQQFIGyIFQQwgBUEMSBsiG0EMbCIJQZQWaigCACEuAkACfyAbQQlNBEAgA0EANgIAIAIgBGoiOkF7aiA6IAZBAkYiOxshKSABIAhqITMgASEoIAIhCQJAIAhBDUgNACAzQXRqIjIgAUkNAEGANCAbdkEBcSE0IDNBe2oiGEF/aiEvIBhBfWohIkEAIRsDQCAAKAKUgBAhBCAAKAKIgBAhEyAAKAKcgBAhFCAoIQwDQCAAKAKQgBAiBSAMIAtrIh9BgYB8aiAFQYCABGogH0sbIRUgACgC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BEADQCADKAAAIAQoAABzIgkEQCAJECUgBGogAGsMBAsgA0EEaiEDIARBBGoiBCAUSQ0ACwsCQCAEIBhPDQAgAy8AACAELwAARw0AIANBAmohAyAEQQJqIQQLIAQgF0kEfyAEQQFqIAQgAy0AACAELQAARhsFIAQLIABrDAELIAMQJQsiAEHwAWpB/wFuakEIaiAPSw0EIAdBAmohAyAAIAZqQQRqIQYgBS0AACEEAn8gAEEPTwRAIAUgBEEPajoAACADQX8QNCAAQXFqIgRB/AdPBEADQCADQQRqIgNBfxA0IARBhHhqIgRB+wdLDQALCyADIARB//8DcUH/AW4iAGoiAyAAQYF+bCAEajoAACADQQFqDAELIAUgACAEajoAACADCyEFIAYgEU8NASAGQX5qIgAgACgAACALEDAgCCALIAwQSSAGKAAAIQACQAJAIBZFBEAgAEEBEDAiACAIEIUBIQQgBiAAIAhBASAMEEkgBEH//wNqIAZJDQEgBCgAACAGKAAARw0BDAILIAAgCxAwIgMgCCALEEghACAGIAxrIgQgAyAIIAsQXCAAQf//A2ogBEkNACAAIAxqIgQoAAAgBigAAEYNAQsgBkEBaiIDKAAAIAsQMCEEDAMLIAVBADoAACAFQQFqIQcMAAsACwtBACETIAUgECAGayIBaiABQfABakH/AW5qQQFqIA9LDQECQCABQQ9PBEAgBUHwAToAACAFQQFqIQAgAUFxaiIDQf8BSQRAIAAiBSADOgAADAILIABB/wEgAUHyfWoiAEH/AW5BAWoQKBogAEH/AW4iAyAFakECaiIFIANBgX5sIABqOgAADAELIAUgAUEEdDoAAAsgBUEBaiAGIAEQKiABaiACayETDAELIANBgICA8AdLDQAgASADaiIPQXVqIRAgD0F0aiEUIAgoAoCAASEAIAhBAUECIAFB//8DSxsiCzsBhoABIAggACADajYCgIABIAggCCgCkIABIANqNgKQgAEgASABKAAAIAsQMCAIIAsgASAAayIMEEkgD0F7aiITQX9qIRcgE0F9aiERIAZBBnQiCkEBciENIAFBAWoiAygAACALEDAhBCABQYCABEkhFSACIQUgASEGA0ACQCAVRQRAIAMgFEsNBCADQQFqIQ4gCiEJIA0hBwNAIAQgCBCFASEAIA4oAABBARAwIRIgAyAE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IAJBCE8EQANAIAMEQCADIAVsIQcgBUEHciIIIANsIQkgBUEGciIKIANsIQsgBUEFciIMIANsIQ0gBUEEciIOIANsIQ8gBUEDciIQIANsIREgBUECciISIANsIRMgBUEBciIUIANsIRVBACEEA0AgASAFIAIgBGwiBmpqIAAgBCAHamotAAA6AAAgASAGIBRqaiAAIAQgFWpqLQAAOgAAIAEgBiASamogACAEIBNqai0AADoAACABIAYgEGpqIAAgBCARamotAAA6AAAgASAGIA5qaiAAIAQgD2pqLQAAOgAAIAEgBiAMamogACAEIA1qai0AADoAACABIAYgCmpqIAAgBCALamotAAA6AAAgASAGIAhqaiAAIAQgCWpqLQAAOgAAIARBAWoiBCADRw0ACwsgBUEPaiEEIAVBCGohBSAEIAJJDQALCyACQXhxIgUgAk8NAANAIAMEQCADIAVsIQZBACEEA0AgASACIARsIAVqaiAAIAQgBmpqLQAAOgAAIARBAWoiBCADRw0ACwsgBUEBaiIFIAJHDQALCyACIANsrQuCAQEGfyABIAEgAG4iBiAAbGshByAAIAFNBEAgBkEBIAZBAUsbIQgDQCAABEAgACAEbCEJQQAhBQNAIAMgBSAJamogAiAFIAZsIARqai0AADoAACAFQQFqIgUgAEcNAAsLIARBAWoiBCAIRw0ACwsgAyABIAdrIgBqIAAgAmogBxAqGgsNACAAIAEgAiADEL0EC4IBAQZ/IAEgASAAbiIGIABsayEHIAAEQCAGQQEgBkEBSxshCANAIAAgAU0EQCAEIAZsIQlBACEFA0AgAyAFIAlqaiACIAAgBWwgBGpqLQAAOgAAIAVBAWoiBSAIRw0ACwsgBEEBaiIEIABHDQALCyADIAEgB2siAGogACACaiAHECoaC7gBAQN/AkAgAUEBSA0AIAAsAAAiBEH/AHEhAwJAIARBf0oNACABQQJIDQEgACwAASIEQQd0QYD/AHEgA3IhAyAEQX9KDQAgAUEDSA0BIAAsAAIiBEEOdEGAgP8AcSADciEDIARBf0oNACABQQRIDQEgACwAAyIEQRV0QYCAgP8AcSADciEDIARBf0oNACABQQVIDQEgAC0ABCIAQQ9LDQEgAEEcdCADciEDCyACIAM2AgBBASEFCyAFCw0AIAAgASACIAMQvwQLlAIB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CA0tEC0gLgAJDS4QLiAvAAoNLxAvIDAACw0wEDAgMQAEDjEQMSAyAAUOMhAyIDMABg4zEDMgNAAHDjQQNCA1AAgONRA1IDYACQ42EDYgNwAKDjcQNyA4AAsOOBA4IDkABA85EDkgOgAFDzoQOiA7AAYPOxA7IDwABw88EDwgAQgIDz0QPSABEAkPPhA+IAEYCg8/ED8gASALD0AQQCAAAAAA/wAAAP//AAD///8A/////2RlY29tcHJlc3MAY29tcHJlc3MAZnJlZV9yZXN1bHQAdmkAAHhzAABpaWlpaWlpAEGQDgvUBigHAAAwBwAAMAcAAMxzAADMcwAAzHMAABh0AAC2BwAAQHQAAEgHAAAAAAAAAQAAAIgHAAAAAAAATlN0M19fMjEyYmFzaWNfc3RyaW5nSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUUAABh0AACQBwAATlN0M19fMjIxX19iYXNpY19zdHJpbmdfY29tbW9uSUxiMUVFRQBOMTBlbXNjcmlwdGVuM3ZhbEUAAAAAGHQAANQHAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0loRUUAaWlpAAAoBwAAMAcAABgIAAAgCAAAJAgAACoIAAAxCAAANggAAGJsb3NjbHoAbHo0AGx6NGhjAHNuYXBweQB6bGliAHpzdGQARXJyb3IuICBudGhyZWFkcyBjYW5ub3QgYmUgbGFyZ2VyIHRoYW4gQkxPU0NfTUFYX1RIUkVBRFMgKCVkKQBFcnJvci4gIG50aHJlYWRzIG11c3QgYmUgYSBwb3NpdGl2ZSBpbnRlZ2VyAEVSUk9SOyByZXR1cm4gY29kZSBmcm9tIHB0aHJlYWRfY3JlYXRlKCkgaXMgJWQKAAlFcnJvciBkZXRhaWw6ICVzCgBCbG9zYyBoYXMgbm90IGJlZW4gY29tcGlsZWQgd2l0aCAnJXMnIABjb21wcmVzc2lvbiBzdXBwb3J0LiAgUGxlYXNlIHVzZSBvbmUgaGF2aW5nIGl0LgBFcnJvciBhbGxvY2F0aW5nIG1lbW9yeSEARVJST1I7IHJldHVybiBjb2RlIGZyb20gcHRocmVhZF9qb2luKCkgaXMgJWQKAElucHV0IGJ1ZmZlciBzaXplIGNhbm5vdCBleGNlZWQgJWQgYnl0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AAAIAAAACQAAAAkAAAAKAAAACgAAAAsAAAALAAAADAAAAAwAAAANAAAADQBBgNsAC/8IDAAIAIwACABMAAgAzAAIACwACACsAAgAbAAIAOwACAAcAAgAnAAIAFwACADcAAgAPAAIALwACAB8AAgA/AAIAAIACACCAAgAQgAIAMIACAAiAAgAogAIAGIACADiAAgAEgAIAJIACABSAAgA0gAIADIACACyAAgAcgAIAPIACAAKAAgAigAIAEoACADKAAgAKgAIAKoACABqAAgA6gAIABoACACaAAgAWgAIANoACAA6AAgAugAIAHoACAD6AAgABgAIAIYACABGAAgAxgAIACYACACmAAgAZgAIAOYACAAWAAgAlgAIAFYACADWAAgANgAIALYACAB2AAgA9gAIAA4ACACOAAgATgAIAM4ACAAuAAgArgAIAG4ACADuAAgAHgAIAJ4ACABeAAgA3gAIAD4ACAC+AAgAfgAIAP4ACAABAAgAgQAIAEEACADBAAgAIQAIAKEACABhAAgA4QAIABEACACRAAgAUQAIANEACAAxAAgAsQAIAHEACADxAAgACQAIAIkACABJAAgAyQAIACkACACpAAgAaQAIAOkACAAZAAgAmQAIAFkACADZAAgAOQAIALkACAB5AAgA+QAIAAUACACFAAgARQAIAMUACAAlAAgApQAIAGUACADlAAgAFQAIAJUACABVAAgA1QAIADUACAC1AAgAdQAIAPUACAANAAgAjQAIAE0ACADNAAgALQAIAK0ACABtAAgA7QAIAB0ACACdAAgAXQAIAN0ACAA9AAgAvQAIAH0ACAD9AAgAEwAJABMBCQCTAAkAkwEJAFMACQBTAQkA0wAJANMBCQAzAAkAMwEJALMACQCzAQkAcwAJAHMBCQDzAAkA8wEJAAsACQALAQkAiwAJAIsBCQBLAAkASwEJAMsACQDLAQkAKwAJACsBCQCrAAkAqwEJAGsACQBrAQkA6wAJAOsBCQAbAAkAGwEJAJsACQCbAQkAWwAJAFsBCQDbAAkA2wEJADsACQA7AQkAuwAJALsBCQB7AAkAewEJAPsACQD7AQkABwAJAAcBCQCHAAkAhwEJAEcACQBHAQkAxwAJAMcBCQAnAAkAJwEJAKcACQCnAQkAZwAJAGcBCQDnAAkA5wEJABcACQAXAQkAlwAJAJcBCQBX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AAAJ/ABgBwAAAAhRAAAIEQAVCIMAEgcfAAAIcQAACDEAAAnCABAHCgAACGEAAAghAAAJogAACAEAAAiBAAAIQQAACeIAEAcGAAAIWQAACBkAAAmSABMHOwAACHkAAAg5AAAJ0gARBxEAAAhpAAAIKQAACbIAAAgJAAAIiQAACEkAAAnyABAHBAAACFUAAAgVABAIAgETBysAAAh1AAAINQAACcoAEQcNAAAIZQAACCUAAAmqAAAIBQAACIUAAAhFAAAJ6gAQBwgAAAhdAAAIHQAACZoAFAdTAAAIfQAACD0AAAnaABIHFwAACG0AAAgtAAAJugAACA0AAAiNAAAITQAACfoAEAcDAAAIUwAACBMAFQjDABMHIwAACHMAAAgzAAAJxgARBwsAAAhjAAAIIwAACaYAAAgDAAAIgwAACEMAAAnmABAHBwAACFsAAAgbAAAJlgAUB0MAAAh7AAAIOwAACdYAEgcTAAAIawAACCsAAAm2AAAICwAACIsAAAhLAAAJ9gAQBwUAAAhXAAAIFwBACAAAEwczAAAIdwAACDcAAAnOABEHDwAACGcAAAgnAAAJrgAACAcAAAiHAAAIRwAACe4AEAcJAAAIXwAACB8AAAmeABQHYwAACH8AAAg/AAAJ3gASBxsAAAhvAAAILwAACb4AAAgPAAAIjwAACE8AAAn+AGAHAAAACFAAAAgQABQIcwASBx8AAAhwAAAIMAAACcEAEAcKAAAIYAAACCAAAAmhAAAIAAAACIAAAAhAAAAJ4QAQBwYAAAhYAAAIGAAACZEAEwc7AAAIeAAACDgAAAnRABEHEQAACGgAAAgoAAAJsQAACAgAAAiIAAAISAAACfEAEAcEAAAIVAAACBQAFQjjABMHKwAACHQAAAg0AAAJyQARBw0AAAhkAAAIJAAACakAAAgEAAAIhAAACEQAAAnpABAHCAAACFwAAAgcAAAJmQAUB1MAAAh8AAAIPAAACdkAEgcXAAAIbAAACCwAAAm5AAAIDAAACIwAAAhMAAAJ+QAQBwMAAAhSAAAIEgAVCKMAEwcjAAAIcgAACDIAAAnFABEHCwAACGIAAAgiAAAJpQAACAIAAAiCAAAIQgAACeUAEAcHAAAIWgAACBoAAAmVABQHQwAACHoAAAg6AAAJ1QASBxMAAAhqAAAIKgAACbUAAAgKAAAIigAACEoAAAn1ABAHBQAACFYAAAgWAEAIAAATBzMAAAh2AAAINgAACc0AEQcPAAAIZgAACCYAAAmtAAAIBgAACIYAAAhGAAAJ7QAQBwkAAAheAAAIHgAACZ0AFAdjAAAIfgAACD4AAAndABIHGwAACG4AAAguAAAJvQAACA4AAAiOAAAITgAACf0AYAcAAAAIUQAACBEAFQiDABIHHwAACHEAAAgxAAAJwwAQBwoAAAhhAAAIIQAACaMAAAgBAAAIgQAACEEAAAnjABAHBgAACFkAAAgZAAAJkwATBzsAAAh5AAAIOQAACdMAEQcRAAAIaQAACCkAAAmzAAAICQAACIkAAAhJAAAJ8wAQBwQAAAhVAAAIFQAQCAIBEwcrAAAIdQAACDUAAAnLABEHDQAACGUAAAglAAAJqwAACAUAAAiFAAAIRQAACesAEAcIAAAIXQAACB0AAAmbABQHUwAACH0AAAg9AAAJ2wASBxcAAAhtAAAILQAACbsAAAgNAAAIjQAACE0AAAn7ABAHAwAACFMAAAgTABUIwwATByMAAAhzAAAIMwAACccAEQcLAAAIYwAACCMAAAmnAAAIAwAACIMAAAhDAAAJ5wAQBwcAAAhbAAAIGwAACZcAFAdDAAAIewAACDsAAAnXABIHEwAACGsAAAgrAAAJtwAACAsAAAiLAAAISwAACfcAEAcFAAAIVwAACBcAQAgAABMHMwAACHcAAAg3AAAJzwARBw8AAAhnAAAIJwAACa8AAAgHAAAIhwAACEcAAAnvABAHCQAACF8AAAgfAAAJnwAUB2MAAAh/AAAIPwAACd8AEgcbAAAIbwAACC8AAAm/AAAIDwAACI8AAAhPAAAJ/wAQBQEAFwUBARMFEQAbBQEQEQUFABkFAQQVBUEAHQUBQBAFAwAYBQECFAUhABwFASASBQkAGgUBCBYFgQBABQAAEAUCABcFgQETBRkAGwUBGBEFBwAZBQEGFQVhAB0FAWAQBQQAGAUBAxQFMQAcBQEwEgUNABoFAQwWBcEAQAUAADEuMi44AHN0cmVhbSBlcnJvcgBpbnN1ZmZpY2llbnQgbWVtb3J5AGJ1ZmZlciBlcnJvcgBB5IQBC6EVazgHAA2yBwCc8gcAcGQIAGCuCgCwcQsAMKoMABMAAAAMAAAADQAAAAEAAAAGAAAAAQAAAAEAAAATAAAADQAAAA4AAAABAAAABwAAAAAAAAABAAAAFAAAAA8AAAAQAAAAAQAAAAYAAAAAAAAAAQAAABUAAAAQAAAAEQAAAAEAAAAFAAAAAAAAAAIAAAAVAAAAEgAAABIAAAABAAAABQAAAAAAAAACAAAAFQAAABIAAAATAAAAAgAAAAUAAAACAAAAAwAAABUAAAATAAAAEwAAAAMAAAAFAAAABAAAAAMAAAAVAAAAEwAAABMAAAADAAAABQAAAAgAAAAEAAAAFQAAABMAAAATAAAAAwAAAAUAAAAQAAAABQAAABUAAAATAAAAFAAAAAQAAAAFAAAAEAAAAAUAAAAWAAAAFAAAABUAAAAEAAAABQAAABAAAAAFAAAAFgAAABUAAAAWAAAABAAAAAUAAAAQAAAABQAAABYAAAAVAAAAFgAAAAUAAAAFAAAAEAAAAAUAAAAWAAAAFQAAABYAAAAFAAAABQAAACAAAAAGAAAAFgAAABYAAAAXAAAABQAAAAUAAAAgAAAABgAAABYAAAAXAAAAFwAAAAYAAAAFAAAAIAAAAAYAAAAWAAAAFgAAABYAAAAFAAAABQAAADAAAAAHAAAAFwAAABcAAAAWAAAABQAAAAQAAABAAAAABwAAABcAAAAXAAAAFgAAAAYAAAADAAAAQAAAAAgAAAAXAAAAGAAAABYAAAAHAAAAAwAAAAABAAAJAAAAGQAAABkAAAAXAAAABwAAAAMAAAAAAQAACQAAABoAAAAaAAAAGAAAAAcAAAADAAAAAAIAAAkAAAAbAAAAGwAAABkAAAAJAAAAAwAAAOcDAAAJAAAAEgAAAAwAAAANAAAAAQAAAAUAAAABAAAAAQAAABIAAAANAAAADgAAAAEAAAAGAAAAAAAAAAEAAAASAAAADgAAAA4AAAABAAAABQAAAAAAAAACAAAAEgAAABAAAAAQAAAAAQAAAAQAAAAAAAAAAgAAABIAAAAQAAAAEQAAAAIAAAAFAAAAAgAAAAMAAAASAAAAEgAAABIAAAADAAAABQAAAAIAAAADAAAAEgAAABIAAAATAAAAAwAAAAUAAAAEAAAABAAAABIAAAASAAAAEwAAAAQAAAAEAAAABAAAAAQAAAASAAAAEgAAABMAAAAEAAAABAAAAAgAAAAFAAAAEgAAABIAAAATAAAABQAAAAQAAAAIAAAABQAAABIAAAASAAAAEwAAAAYAAAAEAAAACAAAAAUAAAASAAAAEgAAABMAAAAFAAAABAAAAAwAAAAGAAAAEgAAABMAAAATAAAABwAAAAQAAAAMAAAABgAAABIAAAASAAAAEwAAAAQAAAAEAAAAEAAAAAcAAAASAAAAEgAAABMAAAAEAAAAAwAAACAAAAAHAAAAEgAAABIAAAATAAAABgAAAAMAAACAAAAABwAAABIAAAATAAAAEwAAAAYAAAADAAAAgAAAAAgAAAASAAAAEwAAABMAAAAIAAAAAwAAAAABAAAIAAAAEgAAABMAAAATAAAABgAAAAMAAACAAAAACQAAABIAAAATAAAAEwAAAAgAAAADAAAAAAEAAAkAAAASAAAAEwAAABMAAAAKAAAAAwAAAAACAAAJAAAAEgAAABMAAAATAAAADAAAAAMAAAAAAgAACQAAABIAAAATAAAAEwAAAA0AAAADAAAA5wMAAAkAAAARAAAADAAAAAwAAAABAAAABQAAAAEAAAABAAAAEQAAAAwAAAANAAAAAQAAAAYAAAAAAAAAAQAAABEAAAANAAAADwAAAAEAAAAFAAAAAAAAAAEAAAARAAAADwAAABAAAAACAAAABQAAAAAAAAACAAAAEQAAABEAAAARAAAAAgAAAAQAAAAAAAAAAgAAABEAAAAQAAAAEQAAAAMAAAAEAAAAAgAAAAMAAAARAAAAEQAAABEAAAADAAAABAAAAAQAAAAEAAAAEQAAABEAAAARAAAAAwAAAAQAAAAIAAAABQAAABEAAAARAAAAEQAAAAQAAAAEAAAACAAAAAUAAAARAAAAEQAAABEAAAAFAAAABAAAAAgAAAAFAAAAEQAAABEAAAARAAAABgAAAAQAAAAIAAAABQAAABEAAAARAAAAEQAAAAUAAAAEAAAACAAAAAYAAAARAAAAEgAAABEAAAAHAAAABAAAAAwAAAAGAAAAEQAAABIAAAARAAAAAwAAAAQAAAAMAAAABwAAABEAAAASAAAAEQAAAAQAAAADAAAAIAAAAAcAAAARAAAAEgAAABEAAAAGAAAAAwAAAAABAAAHAAAAEQAAABIAAAARAAAABgAAAAMAAACAAAAACAAAABEAAAASAAAAEQAAAAgAAAADAAAAAAEAAAgAAAARAAAAEgAAABEAAAAKAAAAAwAAAAACAAAIAAAAEQAAABIAAAARAAAABQAAAAMAAAAAAQAACQAAABEAAAASAAAAEQAAAAcAAAADAAAAAAIAAAkAAAARAAAAEgAAABEAAAAJAAAAAwAAAAACAAAJAAAAEQAAABIAAAARAAAACwAAAAMAAADnAwAACQAAAA4AAAAMAAAADQAAAAEAAAAFAAAAAQAAAAEAAAAOAAAADgAAAA8AAAABAAAABQAAAAAAAAABAAAADgAAAA4AAAAPAAAAAQAAAAQAAAAAAAAAAQAAAA4AAAAOAAAADwAAAAIAAAAEAAAAAAAAAAIAAAAOAAAADgAAAA4AAAAEAAAABAAAAAIAAAADAAAADgAAAA4AAAAOAAAAAwAAAAQAAAAEAAAABAAAAA4AAAAOAAAADgAAAAQAAAAEAAAACAAAAAUAAAAOAAAADgAAAA4AAAAGAAAABAAAAAgAAAAFAAAADgAAAA4AAAAOAAAACAAAAAQAAAAIAAAABQAAAA4AAAAPAAAADgAAAAUAAAAEAAAACAAAAAYAAAAOAAAADwAAAA4AAAAJAAAABAAAAAgAAAAGAAAADgAAAA8AAAAOAAAAAwAAAAQAAAAMAAAABwAAAA4AAAAPAAAADgAAAAQAAAADAAAAGAAAAAcAAAAOAAAADwAAAA4AAAAFAAAAAwAAACAAAAAIAAAADgAAAA8AAAAPAAAABgAAAAMAAABAAAAACAAAAA4AAAAPAAAADwAAAAcAAAADAAAAAAEAAAgAAAAOAAAADwAAAA8AAAAFAAAAAwAAADAAAAAJAAAADgAAAA8AAAAPAAAABgAAAAMAAACAAAAACQAAAA4AAAAPAAAADwAAAAcAAAADAAAAAAEAAAkAAAAOAAAADwAAAA8AAAAIAAAAAwAAAAABAAAJAAAADgAAAA8AAAAPAAAACAAAAAMAAAAAAgAACQAAAA4AAAAPAAAADwAAAAkAAAADAAAAAAIAAAkAAAAOAAAADwAAAA8AAAAKAAAAAwAAAOcDAAAJAAAAIAAAACAAAAAhAAAAIgAAACMAAAAkAAAAJQAAACYAAAAnAAAAKAAAACkAAAApAAAAKgAAACsAAAAsAAAALQAAAC4AAAAvAAAAMAAAADAAAAAxAAAAMQAAADIAAAAzAAAANAAAADUAAAA2AAAANwAAADgAAAA4AEGQmgEL+gEEAAMAAgACAAIAAgACAAIAAgACAAIAAgACAAEAAQABAAIAAgACAAIAAgACAAIAAgACAAMAAgABAAEAAQABAAEA//////////8AAAAAAAAAAAEAAQABAAEAAQABAAIAAgACAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAP////////////8AAAAAAAABAAQAAwACAAIAAgACAAIAAgABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAP//////////////////AEGVnAEL+AcIAAAABwAAagYAAAAGAACtBQAAagUAADEFAAAABQAA1AQAAK0EAACKBAAAagQAAEwEAAAxBAAAFwQAAAAEAADpAwAA1AMAAMADAACtAwAAmwMAAIoDAAB5AwAAagMAAFsDAABMAwAAPgMAADEDAAAkAwAAFwMAAAsDAAAAAwAA9AIAAOkCAADeAgAA1AIAAMoCAADAAgAAtgIAAK0CAACkAgAAmwIAAJICAACKAgAAggIAAHkCAAByAgAAagIAAGICAABbAgAAUwIAAEwCAABFAgAAPgIAADcCAAAxAgAAKgIAACQCAAAeAgAAFwIAABECAAALAgAABQIAAAACAAD6AQAA9AEAAO8BAADpAQAA5AEAAN4BAADZAQAA1AEAAM8BAADKAQAAxQEAAMABAAC7AQAAtgEAALIBAACtAQAAqAEAAKQBAACfAQAAmwEAAJcBAACSAQAAjgEAAIoBAACGAQAAggEAAH4BAAB5AQAAdQEAAHIBAABuAQAAagEAAGYBAABiAQAAXgEAAFsBAABXAQAAUwEAAFABAABMAQAASQEAAEUBAABCAQAAPgEAADsBAAA3AQAANAEAADEBAAAuAQAAKgEAACcBAAAkAQAAIQEAAB4BAAAaAQAAFwEAABQBAAARAQAADgEAAAsBAAAIAQAABQEAAAIBAAAAAQAA/QAAAPoAAAD3AAAA9AAAAPEAAADvAAAA7AAAAOkAAADmAAAA5AAAAOEAAADeAAAA3AAAANkAAADXAAAA1AAAANEAAADPAAAAzAAAAMoAAADHAAAAxQAAAMIAAADAAAAAvgAAALsAAAC5AAAAtgAAALQAAACyAAAArwAAAK0AAACrAAAAqAAAAKYAAACkAAAAogAAAJ8AAACdAAAAmwAAAJkAAACXAAAAlQAAAJIA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AAAPAAAAEAAAABIAAAAUAAAAFgAAABgAAAAcAAAAIAAAACgAAAAwAAAAQAAAAIAAAAAAAQAAAAIAAAAEAAAACAAAABAAAAAgAAAAQAAAAIAAAAAAAQBBsLIBC9YEAQAAAAEAAAABAAAAAQAAAAIAAAACAAAAAwAAAAMAAAAEAAAABgAAAAcAAAAIAAAACQAAAAoAAAALAAAADAAAAA0AAAAOAAAADwAAABAAAAABAAEBBgAAAAAAAAQAAAAAEAAABAAAAAAgAAAFAQAAAAAAAAUDAAAAAAAABQQAAAAAAAAFBgAAAAAAAAUHAAAAAAAABQkAAAAAAAAFCgAAAAAAAAUMAAAAAAAABg4AAAAAAAEFEAAAAAAAAQUUAAAAAAABBRYAAAAAAAIFHAAAAAAAAwUgAAAAAAAEBTAAAAAgAAYFQAAAAAAABwWAAAAAAAAIBgABAAAAAAoGAAQAAAAADAYAEAAAIAAABAAAAAAAAAAEAQAAAAAAAAUCAAAAIAAABQQAAAAAAAAFBQAAACAAAAUHAAAAAAAABQgAAAAgAAAFCgAAAAAAAAULAAAAAAAABg0AAAAgAAEFEAAAAAAAAQUSAAAAIAABBRYAAAAAAAIFGAAAACAAAwUgAAAAAAADBSgAAAAAAAYEQAAAABAABgRAAAAAIAAHBYAAAAAAAAkGAAIAAAAACwYACAAAMAAABAAAAAAQAAAEAQAAACAAAAUCAAAAIAAABQMAAAAgAAAFBQAAACAAAAUGAAAAIAAABQgAAAAgAAAFCQAAACAAAAULAAAAIAAABQwAAAAAAAAGDwAAACAAAQUSAAAAIAABBRQAAAAgAAIFGAAAACAAAgUcAAAAIAADBSgAAAAgAAQFMAAAAAAAEAYAAAEAAAAPBgCAAAAAAA4GAEAAAAAADQYAIABBlLcBC4MEAQAAAAEAAAAFAAAADQAAAB0AAAA9AAAAfQAAAP0AAAD9AQAA/QMAAP0HAAD9DwAA/R8AAP0/AAD9fwAA/f8AAP3/AQD9/wMA/f8HAP3/DwD9/x8A/f8/AP3/fwD9//8A/f//Af3//wP9//8H/f//D/3//x/9//8//f//fwAAAAABAAAAAgAAAAMAAAAEAAAABQAAAAYAAAAHAAAACAAAAAkAAAAKAAAACwAAAAwAAAANAAAADgAAAA8AAAAQAAAAEQAAABIAAAAT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IGludD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8bG9uZz4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgbG9uZz4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50OF90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50OF90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50MTZfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dWludDMyX3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGZsb2F0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxkb3VibGU+AAAAGHQAAFBlAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0lkRUUAABh0AAB4ZQAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJZkVFAAAYdAAAoGUAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SW1FRQAAGHQAAMhlAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0lsRUUAABh0AADwZQAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJakVFAAAYdAAAGGYAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWlFRQAAGHQAAEBmAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0l0RUUAABh0AABoZgAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJc0VFAAAYdAAAkGYAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWFFRQAAGHQAALhmAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0ljRUUAAEB0AADwZgAAAAAAAAEAAACIBwAAAAAAAE5TdDNfXzIxMmJhc2ljX3N0cmluZ0lEaU5TXzExY2hhcl90cmFpdHNJRGlFRU5TXzlhbGxvY2F0b3JJRGlFRUVFAAAAQHQAAExnAAAAAAAAAQAAAIgHAAAAAAAATlN0M19fMjEyYmFzaWNfc3RyaW5nSURzTlNfMTFjaGFyX3RyYWl0c0lEc0VFTlNfOWFsbG9jYXRvcklEc0VFRUUAAABAdAAAqGcAAAAAAAABAAAAiAcAAAAAAABOU3QzX18yMTJiYXNpY19zdHJpbmdJd05TXzExY2hhcl90cmFpdHNJd0VFTlNfOWFsbG9jYXRvckl3RUVFRQAAQHQAAABoAAAAAAAAAQAAAIgHAAAAAAAATlN0M19fMjEyYmFzaWNfc3RyaW5nSWhOU18xMWNoYXJfdHJhaXRzSWhFRU5TXzlhbGxvY2F0b3JJaEVFRUUAABEACgAREREAAAAABQAAAAAAAAkAAAAACwAAAAAAAAAAEQAPChEREQMKBwABAAkLCwAACQYLAAALAAYRAAAAERERAEGR0QELIQsAAAAAAAAAABEACgoREREACgAAAgAJCwAAAAkACwAACwBBy9EBCwEMAEHX0QELFQwAAAAADAAAAAAJDAAAAAAADAAADABBhdIBCwEOAEGR0gELFQ0AAAAEDQAAAAAJDgAAAAAADgAADgBBv9IBCwEQAEHL0gELHg8AAAAADwAAAAAJEAAAAAAAEAAAEAAAEgAAABISEgBBgtMBCw4SAAAAEhISAAAAAAAACQBBs9MBCwELAEG/0wELFQoAAAAACgAAAAAJCwAAAAAACwAACwBB7dMBCwEMAEH50wELJwwAAAAADAAAAAAJDAAAAAAADAAADAAALSsgICAwWDB4AChudWxsKQBBsNQBC2cwMTIzNDU2Nzg5QUJDREVGGRJEOwI/LEcUPTMwChsGRktFNw9JDo4XA0AdPGkrNh9KLRwBICUpIQgMFRYiLhA4Pgs0MRhkdHV2L0EJfzkRI0MyQomKiwUEJignDSoeNYwHGkiTE5SVAEGg1QEL9hNJbGxlZ2FsIGJ5dGUgc2VxdWVuY2UARG9tYWluIGVycm9yAFJlc3VsdCBub3QgcmVwcmVzZW50YWJsZQBOb3QgYSB0dHkAUGVybWlzc2lvbiBkZW5pZWQAT3BlcmF0aW9uIG5vdCBwZXJtaXR0ZWQATm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQBObyBzdWNoIHByb2Nlc3MARmlsZSBleGlzdHMAVmFsdWUgdG9vIGxhcmdlIGZvciBkYXRhIHR5cGUATm8gc3BhY2UgbGVmdCBvbiBkZXZpY2UAT3V0IG9mIG1lbW9yeQBSZXNvdXJjZSBidXN5AEludGVycnVwdGVkIHN5c3RlbSBjYWxsAFJlc291cmNlIHRlbXBvcmFyaWx5IHVuYXZhaWxhYmxlAEludmFsaWQgc2VlawBDcm9zcy1kZXZpY2UgbGluawBSZWFkLW9ubHkgZmlsZSBzeXN0ZW0ARGlyZWN0b3J5IG5vdCBlbXB0eQBDb25uZWN0aW9uIHJlc2V0IGJ5IHBlZXIAT3BlcmF0aW9uIHRpbWVkIG91dABDb25uZWN0aW9uIHJlZnVzZWQASG9zdCBpcyBkb3duAEhvc3QgaXMgdW5yZWFjaGFibGUAQWRkcmVzcyBpbiB1c2UAQnJva2VuIHBpcGUASS9PIGVycm9yAE5vIHN1Y2ggZGV2aWNlIG9yIGFkZHJlc3MAQmxvY2sgZGV2aWNlIHJlcXVpcmVkAE5vIHN1Y2ggZGV2aWNlAE5vdCBhIGRpcmVjdG9yeQBJcyBhIGRpcmVjdG9yeQBUZXh0IGZpbGUgYnVzeQBFeGVjIGZvcm1hdCBlcnJvcgBJbnZhbGlkIGFyZ3VtZW50AEFyZ3VtZW50IGxpc3QgdG9vIGxvbmcAU3ltYm9saWMgbGluayBsb29wAEZpbGVuYW1lIHRvbyBsb25nAFRvbyBtYW55IG9wZW4gZmlsZXMgaW4gc3lzdGVtAE5vIGZpbGUgZGVzY3JpcHRvcnMgYXZhaWxhYmxlAEJhZCBmaWxlIGRlc2NyaXB0b3IATm8gY2hpbGQgcHJvY2VzcwBCYWQgYWRkcmVzcwBGaWxlIHRvbyBsYXJnZQBUb28gbWFueSBsaW5rcwBObyBsb2NrcyBhdmFpbGFibGUAUmVzb3VyY2UgZGVhZGxvY2sgd291bGQgb2NjdXIAU3RhdGUgbm90IHJlY292ZXJhYmxlAFByZXZpb3VzIG93bmVyIGRpZWQAT3BlcmF0aW9uIGNhbmNlbGVkAEZ1bmN0aW9uIG5vdCBpbXBsZW1lbnRlZABObyBtZXNzYWdlIG9mIGRlc2lyZWQgdHlwZQBJZGVudGlmaWVyIHJlbW92ZWQARGV2aWNlIG5vdCBhIHN0cmVhbQBObyBkYXRhIGF2YWlsYWJsZQBEZXZpY2UgdGltZW91dABPdXQgb2Ygc3RyZWFtcyByZXNvdXJjZXMATGluayBoYXMgYmVlbiBzZXZlcmVkAFByb3RvY29sIGVycm9yAEJhZCBtZXNzYWdlAEZpbGUgZGVzY3JpcHRvciBpbiBiYWQgc3RhdGUATm90IGEgc29ja2V0AERlc3RpbmF0aW9uIGFkZHJlc3MgcmVxdWlyZWQATWVzc2FnZSB0b28gbGFyZ2UAUHJvdG9jb2wgd3JvbmcgdHlwZSBmb3Igc29ja2V0AFByb3RvY29sIG5vdCBhdmFpbGFibGUAUHJvdG9jb2wgbm90IHN1cHBvcnRlZABTb2NrZXQgdHlwZSBub3Qgc3VwcG9ydGVkAE5vdCBzdXBwb3J0ZWQAUHJvdG9jb2wgZmFtaWx5IG5vdCBzdXBwb3J0ZWQAQWRkcmVzcyBmYW1pbHkgbm90IHN1cHBvcnRlZCBieSBwcm90b2NvbABBZGRyZXNzIG5vdCBhdmFpbGFibGUATmV0d29yayBpcyBkb3duAE5ldHdvcmsgdW5yZWFjaGFibGUAQ29ubmVjdGlvbiByZXNldCBieSBuZXR3b3JrAENvbm5lY3Rpb24gYWJvcnRlZABObyBidWZmZXIgc3BhY2UgYXZhaWxhYmxlAFNvY2tldCBpcyBjb25uZWN0ZWQAU29ja2V0IG5vdCBjb25uZWN0ZWQAQ2Fubm90IHNlbmQgYWZ0ZXIgc29ja2V0IHNodXRkb3duAE9wZXJhdGlvbiBhbHJlYWR5IGluIHByb2dyZXNzAE9wZXJhdGlvbiBpbiBwcm9ncmVzcwBTdGFsZSBmaWxlIGhhbmRsZQBSZW1vdGUgSS9PIGVycm9yAFF1b3RhIGV4Y2VlZGVkAE5vIG1lZGl1bSBmb3VuZABXcm9uZyBtZWRpdW0gdHlwZQBObyBlcnJvciBpbmZvcm1hdGlvbgAAYmFzaWNfc3RyaW5nAHN0ZDo6ZXhjZXB0aW9uAAAAAADccQAAPAAAAD0AAAA+AAAAGHQAAORxAABTdDlleGNlcHRpb24AAAAAAAAAAAhyAAAQAAAAPwAAAEAAAACMcgAAFHIAANxxAABTdDExbG9naWNfZXJyb3IAAAAAADhyAAAQAAAAQQAAAEAAAACMcgAARHIAAAhyAABTdDEybGVuZ3RoX2Vycm9yAFN0OXR5cGVfaW5mbwAAABh0AABVcgAAjHIAAAFzAABkcgAAjHIAAKxyAABscgAAAAAAANByAABCAAAAQwAAAEQAAABFAAAARgAAAEcAAABIAAAASQAAAE4xMF9fY3h4YWJpdjExN19fY2xhc3NfdHlwZV9pbmZvRQAAAIxyAADccgAAeHIAAE4xMF9fY3h4YWJpdjEyMF9fc2lfY2xhc3NfdHlwZV9pbmZvRQBOMTBfX2N4eGFiaXYxMTZfX3NoaW1fdHlwZV9pbmZvRQAAAAAAAABAcwAAQgAAAEoAAABEAAAARQAAAEsAAACMcgAATHMAAGxyAABOMTBfX2N4eGFiaXYxMjNfX2Z1bmRhbWVudGFsX3R5cGVfaW5mb0UAdgAAACxzAAB0cwAAYgAAACxzAACAcwAAYwAAACxzAACMcwAAaAAAACxzAACYcwAAYQAAACxzAACkcwAAcwAAACxzAACwcwAAdAAAACxzAAC8cwAAaQAAACxzAADIcwAAagAAACxzAADUcwAAbAAAACxzAADgcwAAbQAAACxzAADscwAAZgAAACxzAAD4cwAAZAAAACxzAAAEdAAAAAAAAHhyAABCAAAATAAAAEQAAABFAAAARgAAAE0AAABOAAAATwAAAAAAAABgdAAAQgAAAFAAAABEAAAARQAAAEYAAABRAAAAUgAAAFMAAACMcgAAbHQAAHhyAABOMTBfX2N4eGFiaXYxMjFfX3ZtaV9jbGFzc190eXBlX2luZm9FAAAAcHUAQZjpAQtBgC0AAAAyAAABAQAAHgEAAA8AAACALAAAAC0AAAAAAAAeAAAADwAAAAAAAAAwLAAAAAAAABMAAAAHAAAAAAAAAAUAQeTpAQsBOQBB/OkBCwo6AAAAOwAAAC12AEGU6gELAQIAQaPqAQsF//////8AQejqAQsJoH5QAAAAAAAFAEH86gELAVQAQZTrAQsOOgAAAFUAAACYegAAAAQAQazrAQsBAQBBu+sBCwUK/////w=="),vn,Y1;(function(e){e[e.NOSHUFFLE=0]="NOSHUFFLE",e[e.SHUFFLE=1]="SHUFFLE",e[e.BITSHUFFLE=2]="BITSHUFFLE",e[e.AUTOSHUFFLE=-1]="AUTOSHUFFLE"})(Y1||(Y1={}));const K1=new Set(["blosclz","lz4","lz4hc","snappy","zlib","zstd"]);let vs;const V1=()=>KrA({noInitialRun:!0,wasmBinary:zrA}),jrA=(vn=class{constructor(e=5,A="lz4",t=1,i=0){if(e<0||e>9)throw new Error(`Invalid compression level: '${e}'. It should be between 0 and 9`);if(!K1.has(A))throw new Error(`Invalid compressor '${A}'. Valid compressors include 'blosclz', 'lz4', 'lz4hc','snappy', 'zlib', 'zstd'.`);if(t<-1||t>2)throw new Error(`Invalid shuffle ${t}. Must be one of 0 (NOSHUFFLE), - 1 (SHUFFLE), 2 (BITSHUFFLE), -1 (AUTOSHUFFLE).`);this.blocksize=i,this.clevel=e,this.cname=A,this.shuffle=t}static fromConfig({blocksize:e,clevel:A,cname:t,shuffle:i}){return new vn(A,t,i,e)}async encode(e){Ss||(Ss=Y1());const A=await Ss,t=A.compress(e,this.cname,this.clevel,this.shuffle,this.blocksize),i=new Uint8Array(t);return A.free_result(),i}async decode(e,A){Ss||(Ss=Y1());const t=await Ss,i=t.decompress(e),n=new Uint8Array(i);return t.free_result(),A!==void 0?(A.set(n),A):n}},vn.codecId="blosc",vn.COMPRESSORS=[...O1],vn.NOSHUFFLE=0,vn.SHUFFLE=1,vn.BITSHUFFLE=2,vn.AUTOSHUFFLE=-1,vn);var K1=VrA;Gy(q1.codecId,()=>q1);Gy(H1.codecId,()=>H1);Gy(K1.codecId,()=>K1);function WrA(...e){return e.map((A,t)=>t===0?A.trim().replace(/[/]*$/g,""):A.trim().replace(/(^[/]*|[/]*$)/g,"")).filter(A=>A.length).join("/")}class zrA{async keys(){return[]}async deleteItem(){return!1}async setItem(){return console.warn("Cannot write to read-only store."),!1}}class jrA extends zrA{constructor(A,t=""){super(),this._map=A,this._rootPrefix=t}_key(A){return WrA(this._rootPrefix,A)}async getItem(A){const t=this._map.get(this._key(A));if(!t)throw new Ka(A);return await t.arrayBuffer()}async containsItem(A){const t=this._key(A);return this._map.has(t)}}function XrA(e,A){const{SizeT:t,SizeC:i,SizeZ:n,SizeY:r,SizeX:o}=A,s=[t,i,n,r,o];return e.every((a,g)=>s[g]===a)}function ZrA({shape:e},{Pixels:A}){if(XrA(e,A))return VB("XYZCT");const t=VB(A.DimensionOrder);return t.forEach((i,n)=>{const r=i.toUpperCase(),o=A[`Size${r}`];if(!o)throw Error(`Dimension ${r} is invalid for OME-XML.`);if(e[n]!==o)throw Error("Dimension mismatch between zarr source and OME-XML.")}),t}function $rA(e,A){const t=e.find(n=>n.path.indexOf(A)>0);if(!t)throw Error("Could not find root in store.");const i=t.path.indexOf(A)+A.length;return t.path.slice(0,i)}function AoA(e){return typeof e[0]!="string"}async function K_(e,A=""){const t=await UtA(e,A),i=await t.attrs.asObject();let n=["0"],r=["t","c","z","y","x"];if("multiscales"in i){const{datasets:s,axes:a}=i.multiscales[0];n=s.map(g=>g.path),a&&(AoA(a)?r=a.map(g=>g.name):r=a)}const o=n.map(s=>t.getItem(s));return{data:await Promise.all(o),rootAttrs:i,labels:r}}function V_(e){const A=Vr(e.shape),[t,i]=e.chunks.slice(A?-3:-2),n=Math.min(t,i);return UG(n)}function eoA(e){const A=e.length,t=TG(e);return i=>{if(Array.isArray(i))return[...i];const n=Array(A).fill(0);for(const[r,o]of Object.entries(i))n[t(r)]=o;return n}}const V1={u1:"Uint8",u2:"Uint16",u4:"Uint32",f4:"Float32",f8:"Float64",i1:"Int8",i2:"Int16",i4:"Int32"};class W_{constructor(A,t,i){this.labels=t,this.tileSize=i,this._indexer=eoA(t),this._data=A;const n=A.chunks[this._xIndex],r=A.chunks[this._xIndex-1];this._readChunks=i===n&&i===r}get shape(){return this._data.shape}get dtype(){const A=this._data.dtype.slice(1);if(!(A in V1))throw Error(`Zarr dtype not supported, got ${A}.`);return V1[A]}get _xIndex(){const A=Vr(this._data.shape);return this._data.shape.length-(A?2:1)}_chunkIndex(A,t,i){const n=this._indexer(A);return n[this._xIndex]=t,n[this._xIndex-1]=i,n}_getSlices(A,t){const{height:i,width:n}=no(this),[r,o]=[A*this.tileSize,Math.min((A+1)*this.tileSize,n)],[s,a]=[t*this.tileSize,Math.min((t+1)*this.tileSize,i)];if(r===o||s===a)throw new Jo("Tile slice is zero-sized.");return[Jn(r,o),Jn(s,a)]}async getRaster({selection:A}){const t=this._chunkIndex(A,null,null),{data:i,shape:n}=await this._data.getRaw(t),[r,o]=n;return{data:i,width:o,height:r}}async getTile(A){const{x:t,y:i,selection:n,signal:r}=A;let o;if(this._readChunks){const I=this._chunkIndex(n,t,i);o=await this._data.getRawChunk(I,{storeOptions:{signal:r}})}else{const[I,l]=this._getSlices(t,i),c=this._chunkIndex(n,I,l);o=await this._data.getRaw(c)}const{data:s,shape:[a,g]}=o;return{data:s,width:g,height:a}}onTileError(A){if(!(A instanceof Jo))throw A}}async function W1(e,A){typeof A!="string"&&(A=await A.text());const t=jG(A)[0],{data:i}=await K_(e,"0"),n=ZrA(i[0],t),r=V_(i[0]);return{data:i.map(s=>new W_(s,n,r)),metadata:t}}async function toA(e){const{data:A,rootAttrs:t,labels:i}=await K_(e),n=V_(A[0]);return{data:A.map(o=>new W_(o,i,n)),metadata:t}}async function ioA(e,A={}){const t="METADATA.ome.xml",i="data.zarr";if(typeof e=="string"){const s=e.endsWith("/")?e.slice(0,-1):e,a=new Ky(s+"/"+i,A),g=await fetch(s+"/"+t,A.fetchOptions);return W1(a,g)}const n=new Map;let r;for(const s of e)s.name===t?r=s:n.set(s.path,s);if(!r)throw Error("No OME-XML metadata found for store.");const o=new jrA(n,$rA(e,i));return W1(o,r)}async function noA(e,A={}){const t=new Ky(e,A);if((A==null?void 0:A.type)!=="multiscales")throw Error("Only multiscale OME-Zarr is supported.");return toA(t)}const roA=`float apply_contrast_limits(float intensity, vec2 contrastLimits) { + 1 (SHUFFLE), 2 (BITSHUFFLE), -1 (AUTOSHUFFLE).`);this.blocksize=i,this.clevel=e,this.cname=A,this.shuffle=t}static fromConfig({blocksize:e,clevel:A,cname:t,shuffle:i}){return new vn(A,t,i,e)}async encode(e){vs||(vs=V1());const A=await vs,t=A.compress(e,this.cname,this.clevel,this.shuffle,this.blocksize),i=new Uint8Array(t);return A.free_result(),i}async decode(e,A){vs||(vs=V1());const t=await vs,i=t.decompress(e),n=new Uint8Array(i);return t.free_result(),A!==void 0?(A.set(n),A):n}},vn.codecId="blosc",vn.COMPRESSORS=[...K1],vn.NOSHUFFLE=0,vn.SHUFFLE=1,vn.BITSHUFFLE=2,vn.AUTOSHUFFLE=-1,vn);var W1=jrA;_y(O1.codecId,()=>O1);_y(J1.codecId,()=>J1);_y(W1.codecId,()=>W1);function XrA(...e){return e.map((A,t)=>t===0?A.trim().replace(/[/]*$/g,""):A.trim().replace(/(^[/]*|[/]*$)/g,"")).filter(A=>A.length).join("/")}class ZrA{async keys(){return[]}async deleteItem(){return!1}async setItem(){return console.warn("Cannot write to read-only store."),!1}}class $rA extends ZrA{constructor(A,t=""){super(),this._map=A,this._rootPrefix=t}_key(A){return XrA(this._rootPrefix,A)}async getItem(A){const t=this._map.get(this._key(A));if(!t)throw new Ya(A);return await t.arrayBuffer()}async containsItem(A){const t=this._key(A);return this._map.has(t)}}function AoA(e,A){const{SizeT:t,SizeC:i,SizeZ:n,SizeY:r,SizeX:o}=A,s=[t,i,n,r,o];return e.every((a,g)=>s[g]===a)}function eoA({shape:e},{Pixels:A}){if(AoA(e,A))return VB("XYZCT");const t=VB(A.DimensionOrder);return t.forEach((i,n)=>{const r=i.toUpperCase(),o=A[`Size${r}`];if(!o)throw Error(`Dimension ${r} is invalid for OME-XML.`);if(e[n]!==o)throw Error("Dimension mismatch between zarr source and OME-XML.")}),t}function toA(e,A){const t=e.find(n=>n.path.indexOf(A)>0);if(!t)throw Error("Could not find root in store.");const i=t.path.indexOf(A)+A.length;return t.path.slice(0,i)}function ioA(e){return typeof e[0]!="string"}async function z_(e,A=""){const t=await qtA(e,A),i=await t.attrs.asObject();let n=["0"],r=["t","c","z","y","x"];if("multiscales"in i){const{datasets:s,axes:a}=i.multiscales[0];n=s.map(g=>g.path),a&&(ioA(a)?r=a.map(g=>g.name):r=a)}const o=n.map(s=>t.getItem(s));return{data:await Promise.all(o),rootAttrs:i,labels:r}}function j_(e){const A=Kr(e.shape),[t,i]=e.chunks.slice(A?-3:-2),n=Math.min(t,i);return qG(n)}function noA(e){const A=e.length,t=HG(e);return i=>{if(Array.isArray(i))return[...i];const n=Array(A).fill(0);for(const[r,o]of Object.entries(i))n[t(r)]=o;return n}}const z1={u1:"Uint8",u2:"Uint16",u4:"Uint32",f4:"Float32",f8:"Float64",i1:"Int8",i2:"Int16",i4:"Int32"};function j1(e,A){return{start:e,stop:A,step:1,_slice:!0}}class bf extends Error{}class X_{constructor(A,t,i){this.labels=t,this.tileSize=i,this._indexer=noA(t),this._data=A}get shape(){return this._data.shape}get dtype(){const A=this._data.dtype.slice(1);if(!(A in z1))throw Error(`Zarr dtype not supported, got ${A}.`);return z1[A]}get _xIndex(){const A=Kr(this._data.shape);return this._data.shape.length-(A?2:1)}_chunkIndex(A,{x:t,y:i}){const n=this._indexer(A);return n[this._xIndex]=t,n[this._xIndex-1]=i,n}_getSlices(A,t){const{height:i,width:n}=io(this),[r,o]=[A*this.tileSize,Math.min((A+1)*this.tileSize,n)],[s,a]=[t*this.tileSize,Math.min((t+1)*this.tileSize,i)];if(r===o||s===a)throw new bf("Tile slice is zero-sized.");if(r<0||s<0||o>n||a>i)throw new bf("Tile slice is out of bounds.");return[j1(r,o),j1(s,a)]}async _getRaw(A,t){const i=await this._data.getRaw(A,t);if(typeof i!="object")throw new Error("Expected object from getRaw");return i}async getRaster({selection:A,signal:t}){const i=this._chunkIndex(A,{x:null,y:null}),n=await this._getRaw(i,{storeOptions:{signal:t}}),{data:r,shape:[o,s]}=n;return{data:r,width:s,height:o}}async getTile(A){const{x:t,y:i,selection:n,signal:r}=A,[o,s]=this._getSlices(t,i),a=this._chunkIndex(n,{x:o,y:s}),g=await this._getRaw(a,{storeOptions:{signal:r}}),{data:I,shape:[l,c]}=g;return{data:I,height:l,width:c}}onTileError(A){if(!(A instanceof bf))throw A}}async function X1(e,A){typeof A!="string"&&(A=await A.text());const t=$G(A)[0],{data:i}=await z_(e,"0"),n=eoA(i[0],t),r=j_(i[0]);return{data:i.map(s=>new X_(s,n,r)),metadata:t}}async function roA(e){const{data:A,rootAttrs:t,labels:i}=await z_(e),n=j_(A[0]);return{data:A.map(o=>new X_(o,i,n)),metadata:t}}async function ooA(e,A={}){const t="METADATA.ome.xml",i="data.zarr";if(typeof e=="string"){const s=e.endsWith("/")?e.slice(0,-1):e,a=new Vy(s+"/"+i,A),g=await fetch(s+"/"+t,A.fetchOptions);return X1(a,g)}const n=new Map;let r;for(const s of e)s.name===t?r=s:n.set(s.path,s);if(!r)throw Error("No OME-XML metadata found for store.");const o=new $rA(n,toA(e,i));return X1(o,r)}async function soA(e,A={}){const t=new Vy(e,A);if((A==null?void 0:A.type)!=="multiscales")throw Error("Only multiscale OME-Zarr is supported.");return roA(t)}const aoA=`float apply_contrast_limits(float intensity, vec2 contrastLimits) { return max(0., (intensity - contrastLimits[0]) / max(0.0005, (contrastLimits[1] - contrastLimits[0]))); } -`;var ooA={name:"channel-intensity",defines:{SAMPLER_TYPE:"usampler2D",COLORMAP_FUNCTION:""},fs:roA};const soA=255,z1=[0,0,0],z_=6,aoA="-apple-system, 'Helvetica Neue', Arial, sans-serif",Wd={Uint8:{format:CA.R8UI,dataFormat:CA.RED_INTEGER,type:CA.UNSIGNED_BYTE,max:2**8-1,sampler:"usampler2D"},Uint16:{format:CA.R16UI,dataFormat:CA.RED_INTEGER,type:CA.UNSIGNED_SHORT,max:2**16-1,sampler:"usampler2D"},Uint32:{format:CA.R32UI,dataFormat:CA.RED_INTEGER,type:CA.UNSIGNED_INT,max:2**32-1,sampler:"usampler2D"},Float32:{format:CA.R32F,dataFormat:CA.RED,type:CA.FLOAT,max:3.4*10**38,sampler:"sampler2D"},Int8:{format:CA.R8I,dataFormat:CA.RED_INTEGER,type:CA.BYTE,max:2**(8-1)-1,sampler:"isampler2D"},Int16:{format:CA.R16I,dataFormat:CA.RED_INTEGER,type:CA.SHORT,max:2**(16-1)-1,sampler:"isampler2D"},Int32:{format:CA.R32I,dataFormat:CA.RED_INTEGER,type:CA.INT,max:2**(32-1)-1,sampler:"isampler2D"},Float64:{format:CA.R32F,dataFormat:CA.RED,type:CA.FLOAT,max:3.4*10**38,sampler:"sampler2D",cast:e=>new Float32Array(e)}};var Ia=(e=>(e.MAX_INTENSITY_PROJECTION="Maximum Intensity Projection",e.MIN_INTENSITY_PROJECTION="Minimum Intensity Projection",e.ADDITIVE="Additive",e))(Ia||{});function goA(e){return[...Array(e).keys()]}function j_(e,A,t){for(let i=0;iA[g]?a:[n,n]),o=z_-r.length;if(o<0)throw Error(`${r.lengths} channels passed in, but only 6 are allowed.`);return j_(r,[n,n],o).reduce((a,g)=>a.concat(g),[])}function Z_(e){var n,r;const{x:A,y:t,z:i}=(r=(n=e==null?void 0:e.meta)==null?void 0:n.physicalSizes)!=null?r:{};if((A==null?void 0:A.size)&&(t==null?void 0:t.size)&&(i==null?void 0:i.size)){const o=Math.min(i.size,A.size,t.size),s=[A.size/o,t.size/o,i.size/o];return new fe().scale(s)}return new fe().identity()}function Am(e){const A=new ql().makeViewport({viewState:e,height:e.height,width:e.width});return[A.unproject([0,0]),A.unproject([A.width,0]),A.unproject([A.width,A.height]),A.unproject([0,A.height])]}const tE=[1,2,3,4,5,10,20,25,50,100,200,250,500,1e3],IoA=tE[0],loA=tE[tE.length-1],zd=[{symbol:"Y",exponent:24},{symbol:"Z",exponent:21},{symbol:"E",exponent:18},{symbol:"P",exponent:15},{symbol:"T",exponent:12},{symbol:"G",exponent:9},{symbol:"M",exponent:6},{symbol:"k",exponent:3},{symbol:"h",exponent:2},{symbol:"da",exponent:1},{symbol:"",exponent:0},{symbol:"d",exponent:-1},{symbol:"c",exponent:-2},{symbol:"m",exponent:-3},{symbol:"\xB5",exponent:-6},{symbol:"n",exponent:-9},{symbol:"p",exponent:-12},{symbol:"f",exponent:-15},{symbol:"a",exponent:-18},{symbol:"z",exponent:-21},{symbol:"y",exponent:-24}];function coA(e,A){if(!A||A==="m")return e;if(A.length>1){let t=A.substring(0,A.length-1);t==="u"&&(t="\xB5");const i=zd.find(n=>n.symbol===t);if(i)return e*10**i.exponent}throw new Error("Received unknown unit")}function CoA(e){let A=0;(eloA)&&(A=Math.floor(Math.log10(e)));let t=zd.find(o=>o.exponent%3===0&&o.exponent<=A),i=e/10**t.exponent;i>500&&i<=1e3&&(t=zd.find(o=>o.exponent%3===0&&o.exponent<=A+3),i=e/10**t.exponent);const n=tE.find(o=>o>i);return[n*10**t.exponent,n,t.symbol]}var BoA=`#define SHADER_NAME xr-layer-fragment-shader +`;var goA={name:"channel-intensity",defines:{SAMPLER_TYPE:"usampler2D",COLORMAP_FUNCTION:""},fs:aoA};const IoA=255,Z1=[0,0,0],Z_=6,loA="-apple-system, 'Helvetica Neue', Arial, sans-serif",zd={Uint8:{format:CA.R8UI,dataFormat:CA.RED_INTEGER,type:CA.UNSIGNED_BYTE,max:2**8-1,sampler:"usampler2D"},Uint16:{format:CA.R16UI,dataFormat:CA.RED_INTEGER,type:CA.UNSIGNED_SHORT,max:2**16-1,sampler:"usampler2D"},Uint32:{format:CA.R32UI,dataFormat:CA.RED_INTEGER,type:CA.UNSIGNED_INT,max:2**32-1,sampler:"usampler2D"},Float32:{format:CA.R32F,dataFormat:CA.RED,type:CA.FLOAT,max:3.4*10**38,sampler:"sampler2D"},Int8:{format:CA.R8I,dataFormat:CA.RED_INTEGER,type:CA.BYTE,max:2**(8-1)-1,sampler:"isampler2D"},Int16:{format:CA.R16I,dataFormat:CA.RED_INTEGER,type:CA.SHORT,max:2**(16-1)-1,sampler:"isampler2D"},Int32:{format:CA.R32I,dataFormat:CA.RED_INTEGER,type:CA.INT,max:2**(32-1)-1,sampler:"isampler2D"},Float64:{format:CA.R32F,dataFormat:CA.RED,type:CA.FLOAT,max:3.4*10**38,sampler:"sampler2D",cast:e=>new Float32Array(e)}};var ga=(e=>(e.MAX_INTENSITY_PROJECTION="Maximum Intensity Projection",e.MIN_INTENSITY_PROJECTION="Minimum Intensity Projection",e.ADDITIVE="Additive",e))(ga||{});function coA(e){return[...Array(e).keys()]}function $_(e,A,t){for(let i=0;iA[g]?a:[n,n]),o=Z_-r.length;if(o<0)throw Error(`${r.lengths} channels passed in, but only 6 are allowed.`);return $_(r,[n,n],o).reduce((a,g)=>a.concat(g),[])}function eM(e){var n,r;const{x:A,y:t,z:i}=(r=(n=e==null?void 0:e.meta)==null?void 0:n.physicalSizes)!=null?r:{};if((A==null?void 0:A.size)&&(t==null?void 0:t.size)&&(i==null?void 0:i.size)){const o=Math.min(i.size,A.size,t.size),s=[A.size/o,t.size/o,i.size/o];return new fe().scale(s)}return new fe().identity()}function em(e){const A=new ql().makeViewport({viewState:e,height:e.height,width:e.width});return[A.unproject([0,0]),A.unproject([A.width,0]),A.unproject([A.width,A.height]),A.unproject([0,A.height])]}const tE=[1,2,3,4,5,10,20,25,50,100,200,250,500,1e3],CoA=tE[0],BoA=tE[tE.length-1],jd=[{symbol:"Y",exponent:24},{symbol:"Z",exponent:21},{symbol:"E",exponent:18},{symbol:"P",exponent:15},{symbol:"T",exponent:12},{symbol:"G",exponent:9},{symbol:"M",exponent:6},{symbol:"k",exponent:3},{symbol:"h",exponent:2},{symbol:"da",exponent:1},{symbol:"",exponent:0},{symbol:"d",exponent:-1},{symbol:"c",exponent:-2},{symbol:"m",exponent:-3},{symbol:"\xB5",exponent:-6},{symbol:"n",exponent:-9},{symbol:"p",exponent:-12},{symbol:"f",exponent:-15},{symbol:"a",exponent:-18},{symbol:"z",exponent:-21},{symbol:"y",exponent:-24}];function EoA(e,A){if(!A||A==="m")return e;if(A.length>1){let t=A.substring(0,A.length-1);t==="u"&&(t="\xB5");const i=jd.find(n=>n.symbol===t);if(i)return e*10**i.exponent}throw new Error("Received unknown unit")}function uoA(e){let A=0;(eBoA)&&(A=Math.floor(Math.log10(e)));let t=jd.find(o=>o.exponent%3===0&&o.exponent<=A),i=e/10**t.exponent;i>500&&i<=1e3&&(t=jd.find(o=>o.exponent%3===0&&o.exponent<=A+3),i=e/10**t.exponent);const n=tE.find(o=>o>i);return[n*10**t.exponent,n,t.symbol]}var hoA=`#define SHADER_NAME xr-layer-fragment-shader precision highp float; precision highp int; @@ -2139,7 +2139,7 @@ void main() { geometry.uv = vTexCoord; DECKGL_FILTER_COLOR(gl_FragColor, geometry); } -`,EoA=`#define SHADER_NAME xr-layer-vertex-shader +`,foA=`#define SHADER_NAME xr-layer-vertex-shader attribute vec2 texCoords; attribute vec3 positions; @@ -2157,10 +2157,10 @@ void main(void) { vec4 color = vec4(0.); DECKGL_FILTER_COLOR(color, geometry); } -`;const j1={fs:BoA,vs:EoA};function uoA(e,A){const t=nd(e,De.TEXTURE_FLOAT),i=nd(e,De.TEXTURE_FILTER_LINEAR_FLOAT);if(!t)throw new Error("WebGL1 context does not support floating point textures. Unable to display raster data.");return!i&&A===CA.LINEAR?(console.warn("LINEAR filtering not supported in WebGL1 context. Falling back to NEAREST."),CA.NEAREST):A}function X1(e,A,t){if(!ie(A))return{format:CA.LUMINANCE,dataFormat:CA.LUMINANCE,type:CA.FLOAT,sampler:"sampler2D",shaderModule:j1,filter:uoA(A,t),cast:s=>new Float32Array(s)};const i=t===CA.LINEAR,n={...j1},r=`#version 300 es -`;n.fs=r.concat(n.fs),n.vs=r.concat(n.vs);const o=$y(i?"Float32":e);return{shaderModule:n,filter:t,cast:i?s=>new Float32Array(s):s=>s,...o}}const hoA={pickable:{type:"boolean",value:!0,compare:!0},coordinateSystem:HA.CARTESIAN,channelData:{type:"object",value:{},compare:!0},bounds:{type:"array",value:[0,0,1,1],compare:!0},contrastLimits:{type:"array",value:[],compare:!0},channelsVisible:{type:"array",value:[],compare:!0},dtype:{type:"string",value:"Uint16",compare:!0},interpolation:{type:"number",value:CA.NEAREST,compare:!0}},hu=class extends gi{getShaders(){const{dtype:e,interpolation:A}=this.props,{shaderModule:t,sampler:i}=X1(e,this.context.gl,A),n=this._isHookDefinedByExtensions("fs:DECKGL_PROCESS_INTENSITY"),r={...ooA,inject:{}};return n||(r.inject["fs:DECKGL_PROCESS_INTENSITY"]=` +`;const $1={fs:hoA,vs:foA};function QoA(e,A){const t=rd(e,De.TEXTURE_FLOAT),i=rd(e,De.TEXTURE_FILTER_LINEAR_FLOAT);if(!t)throw new Error("WebGL1 context does not support floating point textures. Unable to display raster data.");return!i&&A===CA.LINEAR?(console.warn("LINEAR filtering not supported in WebGL1 context. Falling back to NEAREST."),CA.NEAREST):A}function Ax(e,A,t){if(!ie(A))return{format:CA.LUMINANCE,dataFormat:CA.LUMINANCE,type:CA.FLOAT,sampler:"sampler2D",shaderModule:$1,filter:QoA(A,t),cast:s=>new Float32Array(s)};const i=t===CA.LINEAR,n={...$1},r=`#version 300 es +`;n.fs=r.concat(n.fs),n.vs=r.concat(n.vs);const o=Am(i?"Float32":e);return{shaderModule:n,filter:t,cast:i?s=>new Float32Array(s):s=>s,...o}}const doA={pickable:{type:"boolean",value:!0,compare:!0},coordinateSystem:HA.CARTESIAN,channelData:{type:"object",value:{},compare:!0},bounds:{type:"array",value:[0,0,1,1],compare:!0},contrastLimits:{type:"array",value:[],compare:!0},channelsVisible:{type:"array",value:[],compare:!0},dtype:{type:"string",value:"Uint16",compare:!0},interpolation:{type:"number",value:CA.NEAREST,compare:!0}},hu=class extends gi{getShaders(){const{dtype:e,interpolation:A}=this.props,{shaderModule:t,sampler:i}=Ax(e,this.context.gl,A),n=this._isHookDefinedByExtensions("fs:DECKGL_PROCESS_INTENSITY"),r={...goA,inject:{}};return n||(r.inject["fs:DECKGL_PROCESS_INTENSITY"]=` intensity = apply_contrast_limits(intensity, contrastLimits); - `),super.getShaders({...t,defines:{SAMPLER_TYPE:i},modules:[to,io,r]})}_isHookDefinedByExtensions(e){const{extensions:A}=this.props;return A==null?void 0:A.some(t=>{const i=t.getShaders(),{inject:n={},modules:r=[]}=i,o=n[e],s=r.some(a=>a==null?void 0:a.inject[e]);return o||s})}initializeState(){const{gl:e}=this.context;e.pixelStorei(CA.UNPACK_ALIGNMENT,1),e.pixelStorei(CA.PACK_ALIGNMENT,1),this.getAttributeManager().add({positions:{size:3,type:CA.DOUBLE,fp64:this.use64bitPositions(),update:this.calculatePositions,noAlloc:!0}}),this.setState({numInstances:1,positions:new Float64Array(12)});const t=os.getDefaultProgramManager(e),i="fs:DECKGL_MUTATE_COLOR(inout vec4 rgba, float intensity0, float intensity1, float intensity2, float intensity3, float intensity4, float intensity5, vec2 vTexCoord)",n="fs:DECKGL_PROCESS_INTENSITY(inout float intensity, vec2 contrastLimits, int channelIndex)";t._hookFunctions.includes(i)||t.addShaderHook(i),t._hookFunctions.includes(n)||t.addShaderHook(n)}finalizeState(){super.finalizeState(),this.state.textures&&Object.values(this.state.textures).forEach(e=>e&&e.delete())}updateState({props:e,oldProps:A,changeFlags:t,...i}){var r,o;if(super.updateState({props:e,oldProps:A,changeFlags:t,...i}),t.extensionsChanged||e.interpolation!==A.interpolation){const{gl:s}=this.context;this.state.model&&this.state.model.delete(),this.setState({model:this._getModel(s)}),this.getAttributeManager().invalidateAll()}(e.channelData!==A.channelData&&((r=e.channelData)==null?void 0:r.data)!==((o=A.channelData)==null?void 0:o.data)||e.interpolation!==A.interpolation)&&this.loadChannelTextures(e.channelData);const n=this.getAttributeManager();e.bounds!==A.bounds&&n.invalidate("positions")}_getModel(e){return e?new di(e,{...this.getShaders(),id:this.props.id,geometry:new En({drawMode:CA.TRIANGLE_FAN,vertexCount:4,attributes:{texCoords:new Float32Array([0,1,0,0,1,0,1,1])}}),isInstanced:!1}):null}calculatePositions(e){const{positions:A}=this.state,{bounds:t}=this.props;A[0]=t[0],A[1]=t[1],A[2]=0,A[3]=t[0],A[4]=t[3],A[5]=0,A[6]=t[2],A[7]=t[3],A[8]=0,A[9]=t[2],A[10]=t[1],A[11]=0,e.value=A}draw({uniforms:e}){const{textures:A,model:t}=this.state;if(A&&t){const{contrastLimits:i,domain:n,dtype:r,channelsVisible:o}=this.props,s=Object.values(A).filter(g=>g).length,a=X_({contrastLimits:i.slice(0,s),channelsVisible:o.slice(0,s),domain:n,dtype:r});t.setUniforms({...e,contrastLimits:a,...A}).draw()}}loadChannelTextures(e){const A={channel0:null,channel1:null,channel2:null,channel3:null,channel4:null,channel5:null};this.state.textures&&Object.values(this.state.textures).forEach(t=>t&&t.delete()),e&&Object.keys(e).length>0&&e.data&&(e.data.forEach((t,i)=>{A[`channel${i}`]=this.dataToTexture(t,e.width,e.height)},this),this.setState({textures:A}))}dataToTexture(e,A,t){var r,o;const{interpolation:i}=this.props,n=X1(this.props.dtype,this.context.gl,i);return new Pt(this.context.gl,{width:A,height:t,data:(o=(r=n.cast)==null?void 0:r.call(n,e))!=null?o:e,mipmaps:!1,parameters:{[CA.TEXTURE_MIN_FILTER]:n.filter,[CA.TEXTURE_MAG_FILTER]:n.filter,[CA.TEXTURE_WRAP_S]:CA.CLAMP_TO_EDGE,[CA.TEXTURE_WRAP_T]:CA.CLAMP_TO_EDGE},format:n.format,dataFormat:n.dataFormat,type:n.type})}};hu.layerName="XRLayer";hu.defaultProps=hoA;const _n={WhiteIsZero:0,BlackIsZero:1,RGB:2,Palette:3,TransparencyMask:4,CMYK:5,YCbCr:6,CIELab:8,ICCLab:9},$_={...Au.defaultProps,pickable:{type:"boolean",value:!0,compare:!0},coordinateSystem:HA.CARTESIAN},foA=(e,A)=>{const t=A?"true":"false",i=`vec3(${(A||[0,0,0]).map(n=>String(n/255)).join(",")})`;switch(e){case _n.RGB:return`color[3] = (${t} && (color.rgb == ${i})) ? 0.0 : color.a;`;case _n.WhiteIsZero:return` float value = 1.0 - (color.r / 256.0); + `),super.getShaders({...t,defines:{SAMPLER_TYPE:i},modules:[eo,to,r]})}_isHookDefinedByExtensions(e){const{extensions:A}=this.props;return A==null?void 0:A.some(t=>{const i=t.getShaders(),{inject:n={},modules:r=[]}=i,o=n[e],s=r.some(a=>a==null?void 0:a.inject[e]);return o||s})}initializeState(){const{gl:e}=this.context;e.pixelStorei(CA.UNPACK_ALIGNMENT,1),e.pixelStorei(CA.PACK_ALIGNMENT,1),this.getAttributeManager().add({positions:{size:3,type:CA.DOUBLE,fp64:this.use64bitPositions(),update:this.calculatePositions,noAlloc:!0}}),this.setState({numInstances:1,positions:new Float64Array(12)});const t=rs.getDefaultProgramManager(e),i="fs:DECKGL_MUTATE_COLOR(inout vec4 rgba, float intensity0, float intensity1, float intensity2, float intensity3, float intensity4, float intensity5, vec2 vTexCoord)",n="fs:DECKGL_PROCESS_INTENSITY(inout float intensity, vec2 contrastLimits, int channelIndex)";t._hookFunctions.includes(i)||t.addShaderHook(i),t._hookFunctions.includes(n)||t.addShaderHook(n)}finalizeState(){super.finalizeState(),this.state.textures&&Object.values(this.state.textures).forEach(e=>e&&e.delete())}updateState({props:e,oldProps:A,changeFlags:t,...i}){var r,o;if(super.updateState({props:e,oldProps:A,changeFlags:t,...i}),t.extensionsChanged||e.interpolation!==A.interpolation){const{gl:s}=this.context;this.state.model&&this.state.model.delete(),this.setState({model:this._getModel(s)}),this.getAttributeManager().invalidateAll()}(e.channelData!==A.channelData&&((r=e.channelData)==null?void 0:r.data)!==((o=A.channelData)==null?void 0:o.data)||e.interpolation!==A.interpolation)&&this.loadChannelTextures(e.channelData);const n=this.getAttributeManager();e.bounds!==A.bounds&&n.invalidate("positions")}_getModel(e){return e?new di(e,{...this.getShaders(),id:this.props.id,geometry:new En({drawMode:CA.TRIANGLE_FAN,vertexCount:4,attributes:{texCoords:new Float32Array([0,1,0,0,1,0,1,1])}}),isInstanced:!1}):null}calculatePositions(e){const{positions:A}=this.state,{bounds:t}=this.props;A[0]=t[0],A[1]=t[1],A[2]=0,A[3]=t[0],A[4]=t[3],A[5]=0,A[6]=t[2],A[7]=t[3],A[8]=0,A[9]=t[2],A[10]=t[1],A[11]=0,e.value=A}draw({uniforms:e}){const{textures:A,model:t}=this.state;if(A&&t){const{contrastLimits:i,domain:n,dtype:r,channelsVisible:o}=this.props,s=Object.values(A).filter(g=>g).length,a=AM({contrastLimits:i.slice(0,s),channelsVisible:o.slice(0,s),domain:n,dtype:r});t.setUniforms({...e,contrastLimits:a,...A}).draw()}}loadChannelTextures(e){const A={channel0:null,channel1:null,channel2:null,channel3:null,channel4:null,channel5:null};this.state.textures&&Object.values(this.state.textures).forEach(t=>t&&t.delete()),e&&Object.keys(e).length>0&&e.data&&(e.data.forEach((t,i)=>{A[`channel${i}`]=this.dataToTexture(t,e.width,e.height)},this),this.setState({textures:A}))}dataToTexture(e,A,t){var r,o;const{interpolation:i}=this.props,n=Ax(this.props.dtype,this.context.gl,i);return new Pt(this.context.gl,{width:A,height:t,data:(o=(r=n.cast)==null?void 0:r.call(n,e))!=null?o:e,mipmaps:!1,parameters:{[CA.TEXTURE_MIN_FILTER]:n.filter,[CA.TEXTURE_MAG_FILTER]:n.filter,[CA.TEXTURE_WRAP_S]:CA.CLAMP_TO_EDGE,[CA.TEXTURE_WRAP_T]:CA.CLAMP_TO_EDGE},format:n.format,dataFormat:n.dataFormat,type:n.type})}};hu.layerName="XRLayer";hu.defaultProps=doA;const _n={WhiteIsZero:0,BlackIsZero:1,RGB:2,Palette:3,TransparencyMask:4,CMYK:5,YCbCr:6,CIELab:8,ICCLab:9},tM={...Au.defaultProps,pickable:{type:"boolean",value:!0,compare:!0},coordinateSystem:HA.CARTESIAN},poA=(e,A)=>{const t=A?"true":"false",i=`vec3(${(A||[0,0,0]).map(n=>String(n/255)).join(",")})`;switch(e){case _n.RGB:return`color[3] = (${t} && (color.rgb == ${i})) ? 0.0 : color.a;`;case _n.WhiteIsZero:return` float value = 1.0 - (color.r / 256.0); color = vec4(value, value, value, (${t} && vec3(value, value, value) == ${i}) ? 0.0 : color.a); `;case _n.BlackIsZero:return` float value = (color.r / 256.0); color = vec4(value, value, value, (${t} && vec3(value, value, value) == ${i}) ? 0.0 : color.a); @@ -2171,10 +2171,10 @@ void main(void) { color[1] = (y - (0.34414 * (cb - .5)) - (0.71414 * (cr - .5))); color[2] = (y + (1.77200 * (cb - .5))); color[3] = (${t} && distance(color.rgb, ${i}) < 0.01) ? 0.0 : color.a; - `;default:return console.error("Unsupported photometric interpretation or none provided. No transformation will be done to image data"),""}},QoA=e=>{switch(e){case _n.RGB:return[0,0,0,0];case _n.WhiteIsZero:return[255,255,255,0];case _n.BlackIsZero:return[0,0,0,0];case _n.YCbCr:return[16,128,128,0];default:return console.error("Unsupported photometric interpretation or none provided. No transformation will be done to image data"),[0,0,0,0]}};class em extends Au{_getModel(A){const{photometricInterpretation:t,transparentColorInHook:i}=this.props,n=foA(t,i);return A?new di(A,{...this.getShaders(),id:this.props.id,geometry:new En({drawMode:CA.TRIANGLES,vertexCount:6}),isInstanced:!1,inject:{"fs:DECKGL_FILTER_COLOR":n}}):null}}const Zl=class extends Ui{initializeState(e){const{gl:A}=this.context;A.pixelStorei(CA.UNPACK_ALIGNMENT,1),A.pixelStorei(CA.PACK_ALIGNMENT,1),super.initializeState(e)}renderLayers(){const{photometricInterpretation:e,transparentColor:A}=this.props,t=QoA(e);return new em(this.props,{transparentColor:t,transparentColorInHook:A,id:`${this.props.id}-wrapped`})}};Zl.layerName="BitmapLayer";Zl.PHOTOMETRIC_INTERPRETATIONS=_n;Zl.defaultProps={...$_,image:{type:"object",value:{},compare:!0},transparentColor:{type:"array",value:[0,0,0],compare:!0},photometricInterpretation:{type:"number",value:2,compare:!0}};em.defaultProps=$_;em.layerName="BitmapLayerWrapper";function doA(e){const{bbox:{left:A,top:t,right:i,bottom:n},index:{x:r,y:o,z:s}}=e.tile,{data:a,id:g,loader:I,maxZoom:l}=e;if([A,n,i,t].some(E=>E<0)||!a)return null;const c=I[0],{height:C,width:B}=no(c),u=[A,a.height{switch(e){case _n.RGB:return[0,0,0,0];case _n.WhiteIsZero:return[255,255,255,0];case _n.BlackIsZero:return[0,0,0,0];case _n.YCbCr:return[16,128,128,0];default:return console.error("Unsupported photometric interpretation or none provided. No transformation will be done to image data"),[0,0,0,0]}};class tm extends Au{_getModel(A){const{photometricInterpretation:t,transparentColorInHook:i}=this.props,n=poA(t,i);return A?new di(A,{...this.getShaders(),id:this.props.id,geometry:new En({drawMode:CA.TRIANGLES,vertexCount:6}),isInstanced:!1,inject:{"fs:DECKGL_FILTER_COLOR":n}}):null}}const Zl=class extends Ui{initializeState(e){const{gl:A}=this.context;A.pixelStorei(CA.UNPACK_ALIGNMENT,1),A.pixelStorei(CA.PACK_ALIGNMENT,1),super.initializeState(e)}renderLayers(){const{photometricInterpretation:e,transparentColor:A}=this.props,t=yoA(e);return new tm(this.props,{transparentColor:t,transparentColorInHook:A,id:`${this.props.id}-wrapped`})}};Zl.layerName="BitmapLayer";Zl.PHOTOMETRIC_INTERPRETATIONS=_n;Zl.defaultProps={...tM,image:{type:"object",value:{},compare:!0},transparentColor:{type:"array",value:[0,0,0],compare:!0},photometricInterpretation:{type:"number",value:2,compare:!0}};tm.defaultProps=tM;tm.layerName="BitmapLayerWrapper";function moA(e){const{bbox:{left:A,top:t,right:i,bottom:n},index:{x:r,y:o,z:s}}=e.tile,{data:a,id:g,loader:I,maxZoom:l}=e;if([A,n,i,t].some(E=>E<0)||!a)return null;const c=I[0],{height:C,width:B}=io(c),u=[A,a.heightZ1.length)throw new Error("Too many colors");return Z1.slice(0,e)}function nm({colors:e,channelsVisible:A}){const t=e.map((r,o)=>A[o]?r.map(s=>s/soA):z1),i=z_-t.length;return usA(t,z1,i).reduce((r,o)=>r.concat(o),[])}const jC={colors:{type:"array",value:null,compare:!0},opacity:{type:"number",value:1,compare:!0},transparentColor:{type:"array",value:null,compare:!0},useTransparentColor:{type:"boolean",value:!1,compare:!0}},Xa=class extends Ha{getShaders(){return{...super.getShaders(),modules:[EsA]}}draw(){var s;const{colors:e,channelsVisible:A,opacity:t=jC.opacity.value,transparentColor:i=jC.transparentColor.value,useTransparentColor:n=jC.useTransparentColor.value}=this.props,o={colors:nm({channelsVisible:A||this.selections.map(()=>!0),colors:e||im(this.props.selections.length)}),opacity:t,transparentColor:(i||[0,0,0]).map(a=>a/255),useTransparentColor:Boolean(n)};(s=this.state.model)==null||s.setUniforms(o)}};Xa.extensionName="ColorPaletteExtension";Xa.defaultProps=jC;const hsA=`// lens bounds for ellipse +`;var fsA={name:"color-palette-module",fs:usA,inject:{"fs:DECKGL_MUTATE_COLOR":hsA}};function QsA(e,A,t){for(let i=0;iex.length)throw new Error("Too many colors");return ex.slice(0,e)}function rm({colors:e,channelsVisible:A}){const t=e.map((r,o)=>A[o]?r.map(s=>s/IoA):Z1),i=Z_-t.length;return QsA(t,Z1,i).reduce((r,o)=>r.concat(o),[])}const jC={colors:{type:"array",value:null,compare:!0},opacity:{type:"number",value:1,compare:!0},transparentColor:{type:"array",value:null,compare:!0},useTransparentColor:{type:"boolean",value:!1,compare:!0}},ja=class extends Pa{getShaders(){return{...super.getShaders(),modules:[fsA]}}draw(){var s;const{colors:e,channelsVisible:A,opacity:t=jC.opacity.value,transparentColor:i=jC.transparentColor.value,useTransparentColor:n=jC.useTransparentColor.value}=this.props,o={colors:rm({channelsVisible:A||this.selections.map(()=>!0),colors:e||nm(this.props.selections.length)}),opacity:t,transparentColor:(i||[0,0,0]).map(a=>a/255),useTransparentColor:Boolean(n)};(s=this.state.model)==null||s.setUniforms(o)}};ja.extensionName="ColorPaletteExtension";ja.defaultProps=jC;const dsA=`// lens bounds for ellipse uniform float majorLensAxis; uniform float minorLensAxis; uniform vec2 lensCenter; @@ -3567,18 +3567,18 @@ void mutate_color(inout vec3 rgb, float intensity0, float intensity1, float inte useColorValue = get_use_color_float(vTexCoord, 5); rgb += max(0., min(1., intensity5)) * max(vec3(colors[5]), (1. - useColorValue) * vec3(1., 1., 1.)); } -`;var fsA={name:"lens-module",fs:hsA,inject:{"fs:DECKGL_MUTATE_COLOR":` +`;var psA={name:"lens-module",fs:dsA,inject:{"fs:DECKGL_MUTATE_COLOR":` vec3 rgb = rgba.rgb; mutate_color(rgb, intensity0, intensity1, intensity2, intensity3, intensity4, intensity5, vTexCoord); rgba = vec4(rgb, 1.); `,"fs:#main-end":` bool isFragOnLensBounds = frag_on_lens_bounds(vTexCoord); gl_FragColor = (lensEnabled && isFragOnLensBounds) ? vec4(lensBorderColor, 1.) : gl_FragColor; - `}};const Ls={lensEnabled:{type:"boolean",value:!1,compare:!0},lensSelection:{type:"number",value:0,compare:!0},lensRadius:{type:"number",value:100,compare:!0},lensBorderColor:{type:"array",value:[255,255,255],compare:!0},lensBorderRadius:{type:"number",value:.02,compare:!0},colors:{type:"array",value:null,compare:!0}},nE=class extends Ha{getShaders(){return{...super.getShaders(),modules:[fsA]}}initializeState(){const e=this.getCurrentLayer();if(e.isComposite)return;const A=()=>{const{viewportId:t}=e.props,{lensRadius:i=Ls.lensRadius.value}=this.props;if(!t){e.setState({unprojectLensBounds:[0,0,0,0]});return}const{mousePosition:n}=e.context,r=e.context.deck.viewManager.views.filter(a=>a.id===t)[0],o=e.context.deck.viewManager.viewState[t],s=r.makeViewport({...o,viewState:o});if(n&&s.containsPixel(n)){const a={x:n.x-s.x,y:n.y-s.y},I=[[a.x-i,a.y],[a.x,a.y+i],[a.x+i,a.y],[a.x,a.y-i]].map((l,c)=>s.unproject(l)[c%2]);e.setState({unprojectLensBounds:I})}else e.setState({unprojectLensBounds:[0,0,0,0]})};this.context.deck&&this.context.deck.eventManager.on({pointermove:A,pointerleave:A,wheel:A}),this.setState({onMouseMove:A,unprojectLensBounds:[0,0,0,0]})}draw(){var m;const{unprojectLensBounds:e=[0,0,0,0]}=this.state,{bounds:A,lensEnabled:t=Ls.lensEnabled.value,lensSelection:i=Ls.lensSelection.value,lensBorderColor:n=Ls.lensBorderColor.value,lensBorderRadius:r=Ls.lensBorderRadius.value,colors:o,channelsVisible:s}=this.props,[a,g,I,l]=e,[c,C,B,u]=A,E=(a-c)/(B-c),h=(g-u)/(C-u),f=(I-c)/(B-c),Q=(l-u)/(C-u),d=nm({channelsVisible:s||this.selections.map(()=>!0),colors:o||im(this.props.selections.length)}),w={majorLensAxis:(f-E)/2,minorLensAxis:(h-Q)/2,lensCenter:[(f+E)/2,(h+Q)/2],lensEnabled:t,lensSelection:i,lensBorderColor:n,lensBorderRadius:r,colors:d};(m=this.state.model)==null||m.setUniforms(w)}finalizeState(){var e,A,t;this.context.deck&&this.context.deck.eventManager.off({pointermove:(e=this.state)==null?void 0:e.onMouseMove,pointerleave:(A=this.state)==null?void 0:A.onMouseMove,wheel:(t=this.state)==null?void 0:t.onMouseMove})}};nE.extensionName="LensExtension";nE.defaultProps=Ls;function QsA(e,A){const t=`${A} + `}};const Ns={lensEnabled:{type:"boolean",value:!1,compare:!0},lensSelection:{type:"number",value:0,compare:!0},lensRadius:{type:"number",value:100,compare:!0},lensBorderColor:{type:"array",value:[255,255,255],compare:!0},lensBorderRadius:{type:"number",value:.02,compare:!0},colors:{type:"array",value:null,compare:!0}},nE=class extends Pa{getShaders(){return{...super.getShaders(),modules:[psA]}}initializeState(){const e=this.getCurrentLayer();if(e.isComposite)return;const A=()=>{const{viewportId:t}=e.props,{lensRadius:i=Ns.lensRadius.value}=this.props;if(!t){e.setState({unprojectLensBounds:[0,0,0,0]});return}const{mousePosition:n}=e.context,r=e.context.deck.viewManager.views.filter(a=>a.id===t)[0],o=e.context.deck.viewManager.viewState[t],s=r.makeViewport({...o,viewState:o});if(n&&s.containsPixel(n)){const a={x:n.x-s.x,y:n.y-s.y},I=[[a.x-i,a.y],[a.x,a.y+i],[a.x+i,a.y],[a.x,a.y-i]].map((l,c)=>s.unproject(l)[c%2]);e.setState({unprojectLensBounds:I})}else e.setState({unprojectLensBounds:[0,0,0,0]})};this.context.deck&&this.context.deck.eventManager.on({pointermove:A,pointerleave:A,wheel:A}),this.setState({onMouseMove:A,unprojectLensBounds:[0,0,0,0]})}draw(){var m;const{unprojectLensBounds:e=[0,0,0,0]}=this.state,{bounds:A,lensEnabled:t=Ns.lensEnabled.value,lensSelection:i=Ns.lensSelection.value,lensBorderColor:n=Ns.lensBorderColor.value,lensBorderRadius:r=Ns.lensBorderRadius.value,colors:o,channelsVisible:s}=this.props,[a,g,I,l]=e,[c,C,B,u]=A,E=(a-c)/(B-c),h=(g-u)/(C-u),f=(I-c)/(B-c),Q=(l-u)/(C-u),d=rm({channelsVisible:s||this.selections.map(()=>!0),colors:o||nm(this.props.selections.length)}),w={majorLensAxis:(f-E)/2,minorLensAxis:(h-Q)/2,lensCenter:[(f+E)/2,(h+Q)/2],lensEnabled:t,lensSelection:i,lensBorderColor:n,lensBorderRadius:r,colors:d};(m=this.state.model)==null||m.setUniforms(w)}finalizeState(){var e,A,t;this.context.deck&&this.context.deck.eventManager.off({pointermove:(e=this.state)==null?void 0:e.onMouseMove,pointerleave:(A=this.state)==null?void 0:A.onMouseMove,wheel:(t=this.state)==null?void 0:t.onMouseMove})}};nE.extensionName="LensExtension";nE.defaultProps=Ns;function ysA(e,A){const t=`${A} vec4 colormap(float intensity, float opacity) { return vec4(apply_cmap(min(1.,intensity)).xyz, opacity); -}`;return{name:`additive-colormap-3d-${e}`,fs:t}}const tM={colormap:{type:"string",value:"viridis",compare:!0}},Za=class extends Ha{constructor(...e){super(e),this.opts=this.opts||{}}getShaders(){var t;const e=((t=this==null?void 0:this.props)==null?void 0:t.colormap)||tM.colormap.value,A=eM[e];return{...super.getShaders(),modules:[QsA(e,A)]}}updateState({props:e,oldProps:A,changeFlags:t,...i}){if(super.updateState({props:e,oldProps:A,changeFlags:t,...i}),e.colormap!==A.colormap){const{gl:n}=this.context;this.state.model&&(this.state.model.delete(),this.setState({model:this._getModel(n)}))}}};Za.extensionName="BaseExtension";Za.defaultProps=tM;const dsA="",psA=` float intensityArray[6] = float[6](intensityValue0, intensityValue1, intensityValue2, intensityValue3, intensityValue4, intensityValue5); +}`;return{name:`additive-colormap-3d-${e}`,fs:t}}const rM={colormap:{type:"string",value:"viridis",compare:!0}},Xa=class extends Pa{constructor(...e){super(e),this.opts=this.opts||{}}getShaders(){var t;const e=((t=this==null?void 0:this.props)==null?void 0:t.colormap)||rM.colormap.value,A=nM[e];return{...super.getShaders(),modules:[ysA(e,A)]}}updateState({props:e,oldProps:A,changeFlags:t,...i}){if(super.updateState({props:e,oldProps:A,changeFlags:t,...i}),e.colormap!==A.colormap){const{gl:n}=this.context;this.state.model&&(this.state.model.delete(),this.setState({model:this._getModel(n)}))}}};Xa.extensionName="BaseExtension";Xa.defaultProps=rM;const msA="",wsA=` float intensityArray[6] = float[6](intensityValue0, intensityValue1, intensityValue2, intensityValue3, intensityValue4, intensityValue5); float total = 0.0; for(int i = 0; i < 6; i++) { @@ -3597,37 +3597,37 @@ vec4 colormap(float intensity, float opacity) { break; } p += ray_dir * dt; -`,ysA="",iM=class extends Za{constructor(e){super(e),this.rendering={_BEFORE_RENDER:dsA,_RENDER:psA,_AFTER_RENDER:ysA}}};iM.extensionName="AdditiveBlendExtension";const msA=` float maxVals[6] = float[6](-1.0, -1.0, -1.0, -1.0, -1.0, -1.0); -`,wsA=` float intensityArray[6] = float[6](intensityValue0, intensityValue1, intensityValue2, intensityValue3, intensityValue4, intensityValue5); +`,vsA="",oM=class extends Xa{constructor(e){super(e),this.rendering={_BEFORE_RENDER:msA,_RENDER:wsA,_AFTER_RENDER:vsA}}};oM.extensionName="AdditiveBlendExtension";const SsA=` float maxVals[6] = float[6](-1.0, -1.0, -1.0, -1.0, -1.0, -1.0); +`,DsA=` float intensityArray[6] = float[6](intensityValue0, intensityValue1, intensityValue2, intensityValue3, intensityValue4, intensityValue5); for(int i = 0; i < 6; i++) { if(intensityArray[i] > maxVals[i]) { maxVals[i] = intensityArray[i]; } } -`,vsA=` float total = 0.0; +`,RsA=` float total = 0.0; for(int i = 0; i < 6; i++) { total += maxVals[i]; } // Do not go past 1 in opacity/colormap value. total = min(total, 1.0); color = colormap(total, total); -`,nM=class extends Za{constructor(e){super(e),this.rendering={_BEFORE_RENDER:msA,_RENDER:wsA,_AFTER_RENDER:vsA}}};nM.extensionName="MaximumIntensityProjectionExtension";const SsA=` float minVals[6] = float[6](1. / 0., 1. / 0., 1. / 0., 1. / 0., 1. / 0., 1. / 0.); -`,DsA=` float intensityArray[6] = float[6](intensityValue0, intensityValue1, intensityValue2, intensityValue3, intensityValue4, intensityValue5); +`,sM=class extends Xa{constructor(e){super(e),this.rendering={_BEFORE_RENDER:SsA,_RENDER:DsA,_AFTER_RENDER:RsA}}};sM.extensionName="MaximumIntensityProjectionExtension";const xsA=` float minVals[6] = float[6](1. / 0., 1. / 0., 1. / 0., 1. / 0., 1. / 0., 1. / 0.); +`,FsA=` float intensityArray[6] = float[6](intensityValue0, intensityValue1, intensityValue2, intensityValue3, intensityValue4, intensityValue5); for(int i = 0; i < 6; i++) { if(intensityArray[i] < minVals[i]) { minVals[i] = intensityArray[i]; } } -`,RsA=` float total = 0.0; +`,NsA=` float total = 0.0; for(int i = 0; i < 6; i++) { total += minVals[i]; } // Do not go past 1 in opacity/colormap value. total = min(total, 1.0); color = colormap(total, total); -`,rM=class extends Za{constructor(e){super(e),this.rendering={_BEFORE_RENDER:SsA,_RENDER:DsA,_AFTER_RENDER:RsA}}};rM.extensionName="MinimumIntensityProjectionExtension";const xsA={BaseExtension:Za,AdditiveBlendExtension:iM,MaximumIntensityProjectionExtension:nM,MinimumIntensityProjectionExtension:rM},FsA={colors:{type:"array",value:null,compare:!0}},$a=class extends Ha{constructor(...e){super(e),this.opts=this.opts||{}}draw(){var n;const{colors:e,channelsVisible:A}=this.props,i={colors:nm({channelsVisible:A||this.selections.map(()=>!0),colors:e||im(this.props.selections.length)})};(n=this.state.model)==null||n.setUniforms(i)}};$a.extensionName="BaseExtension";$a.defaultProps=FsA;const NsA="",LsA=` vec3 rgbCombo = vec3(0.0); +`,aM=class extends Xa{constructor(e){super(e),this.rendering={_BEFORE_RENDER:xsA,_RENDER:FsA,_AFTER_RENDER:NsA}}};aM.extensionName="MinimumIntensityProjectionExtension";const LsA={BaseExtension:Xa,AdditiveBlendExtension:oM,MaximumIntensityProjectionExtension:sM,MinimumIntensityProjectionExtension:aM},bsA={colors:{type:"array",value:null,compare:!0}},Za=class extends Pa{constructor(...e){super(e),this.opts=this.opts||{}}draw(){var n;const{colors:e,channelsVisible:A}=this.props,i={colors:rm({channelsVisible:A||this.selections.map(()=>!0),colors:e||nm(this.props.selections.length)})};(n=this.state.model)==null||n.setUniforms(i)}};Za.extensionName="BaseExtension";Za.defaultProps=bsA;const GsA="",_sA=` vec3 rgbCombo = vec3(0.0); vec3 hsvCombo = vec3(0.0); float intensityArray[6] = float[6](intensityValue0, intensityValue1, intensityValue2, intensityValue3, intensityValue4, intensityValue5); float total = 0.0; @@ -3646,33 +3646,33 @@ vec4 colormap(float intensity, float opacity) { if (color.a >= 0.95) { break; } -`,bsA="",oM=class extends $a{constructor(e){super(e),this.rendering={_BEFORE_RENDER:NsA,_RENDER:LsA,_AFTER_RENDER:bsA}}};oM.extensionName="AdditiveBlendExtension";const GsA=` float maxVals[6] = float[6](-1.0, -1.0, -1.0, -1.0, -1.0, -1.0); -`,_sA=` float intensityArray[6] = float[6](intensityValue0, intensityValue1, intensityValue2, intensityValue3, intensityValue4, intensityValue5); +`,MsA="",gM=class extends Za{constructor(e){super(e),this.rendering={_BEFORE_RENDER:GsA,_RENDER:_sA,_AFTER_RENDER:MsA}}};gM.extensionName="AdditiveBlendExtension";const ksA=` float maxVals[6] = float[6](-1.0, -1.0, -1.0, -1.0, -1.0, -1.0); +`,TsA=` float intensityArray[6] = float[6](intensityValue0, intensityValue1, intensityValue2, intensityValue3, intensityValue4, intensityValue5); for(int i = 0; i < 6; i++) { if(intensityArray[i] > maxVals[i]) { maxVals[i] = intensityArray[i]; } } -`,MsA=` vec3 rgbCombo = vec3(0.0); +`,UsA=` vec3 rgbCombo = vec3(0.0); for(int i = 0; i < 6; i++) { rgbCombo += max(0.0, min(1.0, maxVals[i])) * vec3(colors[i]); } color = vec4(rgbCombo, 1.0); -`,sM=class extends $a{constructor(e){super(e),this.rendering={_BEFORE_RENDER:GsA,_RENDER:_sA,_AFTER_RENDER:MsA}}};sM.extensionName="MaximumIntensityProjectionExtension";const ksA=` float minVals[6] = float[6](1. / 0., 1. / 0., 1. / 0., 1. / 0., 1. / 0., 1. / 0.); -`,TsA=` float intensityArray[6] = float[6](intensityValue0, intensityValue1, intensityValue2, intensityValue3, intensityValue4, intensityValue5); +`,IM=class extends Za{constructor(e){super(e),this.rendering={_BEFORE_RENDER:ksA,_RENDER:TsA,_AFTER_RENDER:UsA}}};IM.extensionName="MaximumIntensityProjectionExtension";const PsA=` float minVals[6] = float[6](1. / 0., 1. / 0., 1. / 0., 1. / 0., 1. / 0., 1. / 0.); +`,HsA=` float intensityArray[6] = float[6](intensityValue0, intensityValue1, intensityValue2, intensityValue3, intensityValue4, intensityValue5); for(int i = 0; i < 6; i++) { if(intensityArray[i] < minVals[i]) { minVals[i] = intensityArray[i]; } } -`,UsA=` vec3 rgbCombo = vec3(0.0); +`,qsA=` vec3 rgbCombo = vec3(0.0); for(int i = 0; i < 6; i++) { rgbCombo += max(0.0, min(1.0, minVals[i])) * vec3(colors[i]); } color = vec4(rgbCombo, 1.0); -`,aM=class extends $a{constructor(e){super(e),this.rendering={_BEFORE_RENDER:ksA,_RENDER:TsA,_AFTER_RENDER:UsA}}};aM.extensionName="MinimumIntensityProjectionExtension";const fu={BaseExtension:$a,AdditiveBlendExtension:oM,MaximumIntensityProjectionExtension:sM,MinimumIntensityProjectionExtension:aM},PsA={pickable:{type:"boolean",value:!0,compare:!0},coordinateSystem:HA.CARTESIAN,contrastLimits:{type:"array",value:[],compare:!0},channelsVisible:{type:"array",value:[],compare:!0},selections:{type:"array",value:[],compare:!0},domain:{type:"array",value:[],compare:!0},viewportId:{type:"string",value:"",compare:!0},loader:{type:"object",value:{getRaster:async()=>({data:[],height:0,width:0}),dtype:"Uint16",shape:[]},compare:!0},onClick:{type:"function",value:null,compare:!0},onViewportLoad:{type:"function",value:null,compare:!0},interpolation:{type:"number",value:CA.NEAREST,compare:!0},extensions:{type:"array",value:[new Xa],compare:!0}},$l=class extends Ui{finalizeState(){this.state.abortController.abort()}updateState({props:e,oldProps:A}){const t=e.loader!==A.loader,i=e.selections!==A.selections;if(t||i){const{loader:n,selections:r=[],onViewportLoad:o}=this.props,s=new AbortController;this.setState({abortController:s});const{signal:a}=s,g=l=>n.getRaster({selection:l,signal:a}),I=r.map(g);Promise.all(I).then(l=>{var C,B;const c={data:l.map(u=>u.data),width:(C=l[0])==null?void 0:C.width,height:(B=l[0])==null?void 0:B.height};Vr(n.shape)&&(c.data=c.data[0],c.data.length===c.width*c.height*3&&(c.format=CA.RGB,c.dataFormat=CA.RGB)),o&&o(c),this.setState({...c})}).catch(l=>{if(l!==Ly)throw l})}}getPickingInfo({info:e,sourceLayer:A}){return e.sourceLayer=A,e.tile=A.props.tile,e}renderLayers(){const{loader:e,id:A}=this.props,{dtype:t}=e,{width:i,height:n,data:r}=this.state;if(!(i&&n))return null;const o=[0,n,i,0];if(Vr(e.shape)){const{photometricInterpretation:s=2}=e.meta;return new Zl(this.props,{image:this.state,photometricInterpretation:s,bounds:o,id:`image-sub-layer-${o}-${A}`,extensions:[]})}return new hu(this.props,{channelData:{data:r,height:n,width:i},bounds:o,id:`image-sub-layer-${o}-${A}`,dtype:t})}};$l.layerName="ImageLayer";$l.defaultProps=PsA;const HsA={pickable:{type:"boolean",value:!0,compare:!0},onHover:{type:"function",value:null,compare:!1},contrastLimits:{type:"array",value:[],compare:!0},channelsVisible:{type:"array",value:[],compare:!0},domain:{type:"array",value:[],compare:!0},viewportId:{type:"string",value:"",compare:!0},maxRequests:{type:"number",value:10,compare:!0},onClick:{type:"function",value:null,compare:!0},refinementStrategy:{type:"string",value:null,compare:!0},excludeBackground:{type:"boolean",value:!1,compare:!0},extensions:{type:"array",value:[new Xa],compare:!0}},rm=class extends Ui{renderLayers(){const{loader:e,selections:A,opacity:t,viewportId:i,onTileError:n,onHover:r,id:o,onClick:s,modelMatrix:a,excludeBackground:g,refinementStrategy:I}=this.props,{tileSize:l,dtype:c}=e[0],C=async({index:{x:m,y:v,z:x},signal:D})=>{if(!A||A.length===0)return null;const F=Math.round(-x),N=M=>{const U={x:m,y:v,selection:M,signal:D};return e[F].getTile(U)};try{const M=await Promise.all(A.map(N)),U={data:M.map(P=>P.data),width:M[0].width,height:M[0].height};return Vr(e[F].shape)&&(U.data=U.data[0],U.data.length===U.width*U.height*3&&(U.format=CA.RGB,U.dataFormat=CA.RGB)),U}catch(M){if(M===Ly)return null;throw M}},{height:B,width:u}=no(e[0]),E=new tm(this.props,{id:`Tiled-Image-${o}`,getTileData:C,dtype:c,tileSize:l,zoomOffset:Math.round(Math.log2(a?a.getScale()[0]:1)),extent:[0,0,u,B],minZoom:Math.round(-(e.length-1)),maxZoom:0,refinementStrategy:I||(t===1?"best-available":"no-overlap"),updateTriggers:{getTileData:[e,A]},onTileError:n||e[0].onTileError}),h=e[e.length-1],f=typeof h.getRaster=="function",Q=a?a.clone():new fe;return[f&&!g&&new $l(this.props,{id:`Background-Image-${o}`,loader:h,modelMatrix:Q.scale(2**(e.length-1)),visible:!i||this.context.viewport.id===i,onHover:r,onClick:s,interpolation:CA.LINEAR,onViewportLoad:null}),E]}};rm.layerName="MultiscaleImageLayer";rm.defaultProps=HsA;const qsA={pickable:{type:"boolean",value:!0,compare:!0},loader:{type:"object",value:{getRaster:async()=>({data:[],height:0,width:0}),getRasterSize:()=>({height:0,width:0}),dtype:"h,filled:!1,stroked:!0,getLineColor:n,getLineWidth:r*2**t}),u=new nl({id:`viewport-outline-${A}`,coordinateSystem:HA.CARTESIAN,data:[[[0,0],[g*a,0],[g*a,I*a],[0,I*a]]],getPolygon:h=>h,filled:!1,stroked:!0,getLineColor:o,getLineWidth:s*2**t});return[C,B,u]}};om.layerName="OverviewLayer";om.defaultProps=qsA;function JsA(e,A,t){const i=e[2][0]-e[0][0],n=e[2][1]-e[0][1];switch(A){case"bottom-right":{const r=e[2][1]-n*t,o=e[2][0]-i*t;return[r,o]}case"top-right":{const r=e[0][1]+n*t,o=e[2][0]-i*t;return[r,o]}case"top-left":{const r=e[0][1]+n*t,o=e[0][0]+i*t;return[r,o]}case"bottom-left":{const r=e[2][1]-n*t,o=e[0][0]+i*t;return[r,o]}default:throw new Error(`Position ${A} not found`)}}const OsA={pickable:{type:"boolean",value:!0,compare:!0},viewState:{type:"object",value:{zoom:0,target:[0,0,0]},compare:!0},unit:{type:"string",value:"",compare:!0},size:{type:"number",value:1,compare:!0},position:{type:"string",value:"bottom-right",compare:!0},length:{type:"number",value:.085,compare:!0},snap:{type:"boolean",value:!1,compare:!0}},Qu=class extends Ui{renderLayers(){const{id:e,unit:A,size:t,position:i,viewState:n,length:r,snap:o}=this.props,s=Am(n),{zoom:a}=n,I=(s[2][0]-s[0][0])*.05,l=Math.max(2**(-a+1.5),(s[2][1]-s[0][1])*.007);let c=I,C=(I*t).toPrecision(5),B=A;if(o){const v=coA(t,A),x=I*v,[D,F,N]=CoA(x);c=D/v,C=F,B=`${N}m`}const[u,E]=JsA(s,i,r),h=E+I,f=i.endsWith("-left"),Q=new fI({id:`scale-bar-length-${e}`,coordinateSystem:HA.CARTESIAN,data:[[[f?E:h-c,u],[f?E+c:h,u]]],getSourcePosition:v=>v[0],getTargetPosition:v=>v[1],getWidth:2,getColor:[220,220,220]}),d=new fI({id:`scale-bar-height-left-${e}`,coordinateSystem:HA.CARTESIAN,data:[[[f?E:h-c,u-l],[f?E:h-c,u+l]]],getSourcePosition:v=>v[0],getTargetPosition:v=>v[1],getWidth:2,getColor:[220,220,220]}),w=new fI({id:`scale-bar-height-right-${e}`,coordinateSystem:HA.CARTESIAN,data:[[[f?E+c:h,u-l],[f?E+c:h,u+l]]],getSourcePosition:v=>v[0],getTargetPosition:v=>v[1],getWidth:2,getColor:[220,220,220]}),m=new Yl({id:`units-label-layer-${e}`,coordinateSystem:HA.CARTESIAN,data:[{text:`${C}${B}`,position:[f?E+I*.5:h-I*.5,u+l*4]}],getColor:[220,220,220,255],getSize:12,fontFamily:aoA,sizeUnits:"meters",sizeScale:2**-a,characterSet:[...B.split(""),...goA(10).map(v=>String(v)),".","e","+"]});return[Q,d,w,m]}};Qu.layerName="ScaleBarLayer";Qu.defaultProps=OsA;var YsA=`#version 300 es +`,lM=class extends Za{constructor(e){super(e),this.rendering={_BEFORE_RENDER:PsA,_RENDER:HsA,_AFTER_RENDER:qsA}}};lM.extensionName="MinimumIntensityProjectionExtension";const fu={BaseExtension:Za,AdditiveBlendExtension:gM,MaximumIntensityProjectionExtension:IM,MinimumIntensityProjectionExtension:lM},JsA={pickable:{type:"boolean",value:!0,compare:!0},coordinateSystem:HA.CARTESIAN,contrastLimits:{type:"array",value:[],compare:!0},channelsVisible:{type:"array",value:[],compare:!0},selections:{type:"array",value:[],compare:!0},domain:{type:"array",value:[],compare:!0},viewportId:{type:"string",value:"",compare:!0},loader:{type:"object",value:{getRaster:async()=>({data:[],height:0,width:0}),dtype:"Uint16",shape:[]},compare:!0},onClick:{type:"function",value:null,compare:!0},onViewportLoad:{type:"function",value:null,compare:!0},interpolation:{type:"number",value:CA.NEAREST,compare:!0},extensions:{type:"array",value:[new ja],compare:!0}},$l=class extends Ui{finalizeState(){this.state.abortController.abort()}updateState({props:e,oldProps:A}){const t=e.loader!==A.loader,i=e.selections!==A.selections;if(t||i){const{loader:n,selections:r=[],onViewportLoad:o}=this.props,s=new AbortController;this.setState({abortController:s});const{signal:a}=s,g=l=>n.getRaster({selection:l,signal:a}),I=r.map(g);Promise.all(I).then(l=>{var C,B;const c={data:l.map(u=>u.data),width:(C=l[0])==null?void 0:C.width,height:(B=l[0])==null?void 0:B.height};Kr(n.shape)&&(c.data=c.data[0],c.data.length===c.width*c.height*3&&(c.format=CA.RGB,c.dataFormat=CA.RGB)),o&&o(c),this.setState({...c})}).catch(l=>{if(l!==by)throw l})}}getPickingInfo({info:e,sourceLayer:A}){return e.sourceLayer=A,e.tile=A.props.tile,e}renderLayers(){const{loader:e,id:A}=this.props,{dtype:t}=e,{width:i,height:n,data:r}=this.state;if(!(i&&n))return null;const o=[0,n,i,0];if(Kr(e.shape)){const{photometricInterpretation:s=2}=e.meta;return new Zl(this.props,{image:this.state,photometricInterpretation:s,bounds:o,id:`image-sub-layer-${o}-${A}`,extensions:[]})}return new hu(this.props,{channelData:{data:r,height:n,width:i},bounds:o,id:`image-sub-layer-${o}-${A}`,dtype:t})}};$l.layerName="ImageLayer";$l.defaultProps=JsA;const OsA={pickable:{type:"boolean",value:!0,compare:!0},onHover:{type:"function",value:null,compare:!1},contrastLimits:{type:"array",value:[],compare:!0},channelsVisible:{type:"array",value:[],compare:!0},domain:{type:"array",value:[],compare:!0},viewportId:{type:"string",value:"",compare:!0},maxRequests:{type:"number",value:10,compare:!0},onClick:{type:"function",value:null,compare:!0},refinementStrategy:{type:"string",value:null,compare:!0},excludeBackground:{type:"boolean",value:!1,compare:!0},extensions:{type:"array",value:[new ja],compare:!0}},om=class extends Ui{renderLayers(){const{loader:e,selections:A,opacity:t,viewportId:i,onTileError:n,onHover:r,id:o,onClick:s,modelMatrix:a,excludeBackground:g,refinementStrategy:I}=this.props,{tileSize:l,dtype:c}=e[0],C=async({index:{x:m,y:v,z:x},signal:D})=>{if(!A||A.length===0)return null;const F=Math.round(-x),N=M=>{const U={x:m,y:v,selection:M,signal:D};return e[F].getTile(U)};try{const M=await Promise.all(A.map(N)),U={data:M.map(P=>P.data),width:M[0].width,height:M[0].height};return Kr(e[F].shape)&&(U.data=U.data[0],U.data.length===U.width*U.height*3&&(U.format=CA.RGB,U.dataFormat=CA.RGB)),U}catch(M){if(M===by)return null;throw M}},{height:B,width:u}=io(e[0]),E=new im(this.props,{id:`Tiled-Image-${o}`,getTileData:C,dtype:c,tileSize:l,zoomOffset:Math.round(Math.log2(a?a.getScale()[0]:1)),extent:[0,0,u,B],minZoom:Math.round(-(e.length-1)),maxZoom:0,refinementStrategy:I||(t===1?"best-available":"no-overlap"),updateTriggers:{getTileData:[e,A]},onTileError:n||e[0].onTileError}),h=e[e.length-1],f=typeof h.getRaster=="function",Q=a?a.clone():new fe;return[f&&!g&&new $l(this.props,{id:`Background-Image-${o}`,loader:h,modelMatrix:Q.scale(2**(e.length-1)),visible:!i||this.context.viewport.id===i,onHover:r,onClick:s,interpolation:CA.LINEAR,onViewportLoad:null}),E]}};om.layerName="MultiscaleImageLayer";om.defaultProps=OsA;const YsA={pickable:{type:"boolean",value:!0,compare:!0},loader:{type:"object",value:{getRaster:async()=>({data:[],height:0,width:0}),getRasterSize:()=>({height:0,width:0}),dtype:"h,filled:!1,stroked:!0,getLineColor:n,getLineWidth:r*2**t}),u=new il({id:`viewport-outline-${A}`,coordinateSystem:HA.CARTESIAN,data:[[[0,0],[g*a,0],[g*a,I*a],[0,I*a]]],getPolygon:h=>h,filled:!1,stroked:!0,getLineColor:o,getLineWidth:s*2**t});return[C,B,u]}};sm.layerName="OverviewLayer";sm.defaultProps=YsA;function KsA(e,A,t){const i=e[2][0]-e[0][0],n=e[2][1]-e[0][1];switch(A){case"bottom-right":{const r=e[2][1]-n*t,o=e[2][0]-i*t;return[r,o]}case"top-right":{const r=e[0][1]+n*t,o=e[2][0]-i*t;return[r,o]}case"top-left":{const r=e[0][1]+n*t,o=e[0][0]+i*t;return[r,o]}case"bottom-left":{const r=e[2][1]-n*t,o=e[0][0]+i*t;return[r,o]}default:throw new Error(`Position ${A} not found`)}}const VsA={pickable:{type:"boolean",value:!0,compare:!0},viewState:{type:"object",value:{zoom:0,target:[0,0,0]},compare:!0},unit:{type:"string",value:"",compare:!0},size:{type:"number",value:1,compare:!0},position:{type:"string",value:"bottom-right",compare:!0},length:{type:"number",value:.085,compare:!0},snap:{type:"boolean",value:!1,compare:!0}},Qu=class extends Ui{renderLayers(){const{id:e,unit:A,size:t,position:i,viewState:n,length:r,snap:o}=this.props,s=em(n),{zoom:a}=n,I=(s[2][0]-s[0][0])*.05,l=Math.max(2**(-a+1.5),(s[2][1]-s[0][1])*.007);let c=I,C=(I*t).toPrecision(5),B=A;if(o){const v=EoA(t,A),x=I*v,[D,F,N]=uoA(x);c=D/v,C=F,B=`${N}m`}const[u,E]=KsA(s,i,r),h=E+I,f=i.endsWith("-left"),Q=new hI({id:`scale-bar-length-${e}`,coordinateSystem:HA.CARTESIAN,data:[[[f?E:h-c,u],[f?E+c:h,u]]],getSourcePosition:v=>v[0],getTargetPosition:v=>v[1],getWidth:2,getColor:[220,220,220]}),d=new hI({id:`scale-bar-height-left-${e}`,coordinateSystem:HA.CARTESIAN,data:[[[f?E:h-c,u-l],[f?E:h-c,u+l]]],getSourcePosition:v=>v[0],getTargetPosition:v=>v[1],getWidth:2,getColor:[220,220,220]}),w=new hI({id:`scale-bar-height-right-${e}`,coordinateSystem:HA.CARTESIAN,data:[[[f?E+c:h,u-l],[f?E+c:h,u+l]]],getSourcePosition:v=>v[0],getTargetPosition:v=>v[1],getWidth:2,getColor:[220,220,220]}),m=new Yl({id:`units-label-layer-${e}`,coordinateSystem:HA.CARTESIAN,data:[{text:`${C}${B}`,position:[f?E+I*.5:h-I*.5,u+l*4]}],getColor:[220,220,220,255],getSize:12,fontFamily:loA,sizeUnits:"meters",sizeScale:2**-a,characterSet:[...B.split(""),...coA(10).map(v=>String(v)),".","e","+"]});return[Q,d,w,m]}};Qu.layerName="ScaleBarLayer";Qu.defaultProps=VsA;var WsA=`#version 300 es #define SHADER_NAME xr-layer-vertex-shader // Unit-cube vertices @@ -3743,7 +3743,7 @@ void main() { // Step 3: Rays are from eye to vertices so that they get interpolated over the fragments. vray_dir = positions - transformed_eye; } -`,KsA=`#version 300 es +`,zsA=`#version 300 es precision highp int; precision highp float; precision highp SAMPLER_TYPE; @@ -3880,25 +3880,25 @@ void main(void) { color.g = linear_to_srgb(color.g); color.b = linear_to_srgb(color.b); } -`;const VsA={name:"channel-intensity-module",fs:` float apply_contrast_limits(float intensity, vec2 contrastLimits) { +`;const jsA={name:"channel-intensity-module",fs:` float apply_contrast_limits(float intensity, vec2 contrastLimits) { float contrastLimitsAppliedToIntensity = (intensity - contrastLimits[0]) / max(0.0005, (contrastLimits[1] - contrastLimits[0])); return max(0., contrastLimitsAppliedToIntensity); } - `},WsA=[1,1,0,0,1,0,1,1,1,0,1,1,0,0,1,0,1,0,0,0,0,1,1,0,1,0,0,1,1,1,1,0,1,0,0,1,1,0,0,0,0,0],$1=1,zsA={pickable:!1,coordinateSystem:HA.CARTESIAN,channelData:{type:"object",value:{},compare:!0},contrastLimits:{type:"array",value:[],compare:!0},dtype:{type:"string",value:"Uint8",compare:!0},xSlice:{type:"array",value:null,compare:!0},ySlice:{type:"array",value:null,compare:!0},zSlice:{type:"array",value:null,compare:!0},clippingPlanes:{type:"array",value:[],compare:!0},resolutionMatrix:{type:"object",value:new fe,compare:!0},channelsVisible:{type:"array",value:[],compare:!0},extensions:{type:"array",value:[new fu.AdditiveBlendExtension],compare:!0}};function Ax(){const e=$y("Float32");return{...e,sampler:e.sampler.replace("2D","3D"),cast:A=>new Float32Array(A)}}function jsA(e){let A={};if(e.forEach(t=>{A=t.rendering}),!A._RENDER)throw new Error("XR3DLayer requires at least one extension to define opts.rendering as an object with _RENDER as a property at the minimum.");return A}const sm=class extends gi{initializeState(){const{gl:e}=this.context;e.pixelStorei(CA.UNPACK_ALIGNMENT,1),e.pixelStorei(CA.PACK_ALIGNMENT,1);const A=os.getDefaultProgramManager(e),t="fs:DECKGL_PROCESS_INTENSITY(inout float intensity, vec2 contrastLimits, int channelIndex)";A._hookFunctions.includes(t)||A.addShaderHook(t)}_isHookDefinedByExtensions(e){const{extensions:A}=this.props;return A==null?void 0:A.some(t=>{const i=t.getShaders();if(i){const{inject:n={},modules:r=[]}=i,o=n[e],s=r.some(a=>a.inject&&(a==null?void 0:a.inject[e]));return o||s}return!1})}getShaders(){const{clippingPlanes:e,extensions:A}=this.props,{sampler:t}=Ax(),{_BEFORE_RENDER:i,_RENDER:n,_AFTER_RENDER:r}=jsA(A),o=this._isHookDefinedByExtensions("fs:DECKGL_PROCESS_INTENSITY"),s={inject:{},...VsA};return o||(s.inject["fs:DECKGL_PROCESS_INTENSITY"]=` + `},XsA=[1,1,0,0,1,0,1,1,1,0,1,1,0,0,1,0,1,0,0,0,0,1,1,0,1,0,0,1,1,1,1,0,1,0,0,1,1,0,0,0,0,0],tx=1,ZsA={pickable:!1,coordinateSystem:HA.CARTESIAN,channelData:{type:"object",value:{},compare:!0},contrastLimits:{type:"array",value:[],compare:!0},dtype:{type:"string",value:"Uint8",compare:!0},xSlice:{type:"array",value:null,compare:!0},ySlice:{type:"array",value:null,compare:!0},zSlice:{type:"array",value:null,compare:!0},clippingPlanes:{type:"array",value:[],compare:!0},resolutionMatrix:{type:"object",value:new fe,compare:!0},channelsVisible:{type:"array",value:[],compare:!0},extensions:{type:"array",value:[new fu.AdditiveBlendExtension],compare:!0}};function ix(){const e=Am("Float32");return{...e,sampler:e.sampler.replace("2D","3D"),cast:A=>new Float32Array(A)}}function $sA(e){let A={};if(e.forEach(t=>{A=t.rendering}),!A._RENDER)throw new Error("XR3DLayer requires at least one extension to define opts.rendering as an object with _RENDER as a property at the minimum.");return A}const am=class extends gi{initializeState(){const{gl:e}=this.context;e.pixelStorei(CA.UNPACK_ALIGNMENT,1),e.pixelStorei(CA.PACK_ALIGNMENT,1);const A=rs.getDefaultProgramManager(e),t="fs:DECKGL_PROCESS_INTENSITY(inout float intensity, vec2 contrastLimits, int channelIndex)";A._hookFunctions.includes(t)||A.addShaderHook(t)}_isHookDefinedByExtensions(e){const{extensions:A}=this.props;return A==null?void 0:A.some(t=>{const i=t.getShaders();if(i){const{inject:n={},modules:r=[]}=i,o=n[e],s=r.some(a=>a.inject&&(a==null?void 0:a.inject[e]));return o||s}return!1})}getShaders(){const{clippingPlanes:e,extensions:A}=this.props,{sampler:t}=ix(),{_BEFORE_RENDER:i,_RENDER:n,_AFTER_RENDER:r}=$sA(A),o=this._isHookDefinedByExtensions("fs:DECKGL_PROCESS_INTENSITY"),s={inject:{},...jsA};return o||(s.inject["fs:DECKGL_PROCESS_INTENSITY"]=` intensity = apply_contrast_limits(intensity, contrastLimits); - `),super.getShaders({vs:YsA,fs:KsA.replace("_BEFORE_RENDER",i).replace("_RENDER",n).replace("_AFTER_RENDER",r),defines:{SAMPLER_TYPE:t,NUM_PLANES:String(e.length||$1)},modules:[s]})}finalizeState(){super.finalizeState(),this.state.textures&&Object.values(this.state.textures).forEach(e=>e&&e.delete())}updateState({props:e,oldProps:A,changeFlags:t}){var i,n;if(t.extensionsChanged||e.colormap!==A.colormap||e.renderingMode!==A.renderingMode||e.clippingPlanes.length!==A.clippingPlanes.length){const{gl:r}=this.context;this.state.model&&this.state.model.delete(),this.setState({model:this._getModel(r)})}e.channelData&&((i=e==null?void 0:e.channelData)==null?void 0:i.data)!==((n=A==null?void 0:A.channelData)==null?void 0:n.data)&&this.loadTexture(e.channelData)}_getModel(e){return e?new di(e,{...this.getShaders(),geometry:new En({drawMode:e.TRIANGLE_STRIP,attributes:{positions:new Float32Array(WsA)}})}):null}draw({uniforms:e}){const{textures:A,model:t,scaleMatrix:i}=this.state,{contrastLimits:n,xSlice:r,ySlice:o,zSlice:s,modelMatrix:a,channelsVisible:g,domain:I,dtype:l,clippingPlanes:c,resolutionMatrix:C}=this.props,{viewMatrix:B,viewMatrixInverse:u,projectionMatrix:E}=this.context.viewport;if(A&&t&&i){const h=X_({contrastLimits:n,channelsVisible:g,domain:I,dtype:l}),f=i.clone().invert(),Q=C.clone().invert(),d=j_(c.map(v=>v.clone().transform(f).transform(Q)),new Ho([1,0,0]),c.length||$1),w=d.map(v=>v.normal).flat(),m=d.map(v=>v.distance);t.setUniforms({...e,...A,contrastLimits:h,xSlice:new Float32Array(r?r.map(v=>v/i[0]/C[0]):[0,1]),ySlice:new Float32Array(o?o.map(v=>v/i[5]/C[5]):[0,1]),zSlice:new Float32Array(s?s.map(v=>v/i[10]/C[10]):[0,1]),eye_pos:new Float32Array([u[12],u[13],u[14]]),view:B,proj:E,scale:i,resolution:C,model:a||new fe,normals:w,distances:m}).draw()}}loadTexture(e){const A={volume0:null,volume1:null,volume2:null,volume3:null,volume4:null,volume5:null};if(this.state.textures&&Object.values(this.state.textures).forEach(t=>t&&t.delete()),e&&Object.keys(e).length>0&&e.data){const{height:t,width:i,depth:n}=e;e.data.forEach((r,o)=>{A[`volume${o}`]=this.dataToTexture(r,i,t,n)},this),this.setState({textures:A,scaleMatrix:new fe().scale(this.props.physicalSizeScalingMatrix.transformPoint([i,t,n]))})}}dataToTexture(e,A,t,i){var o,s;const n=Ax();return new SL(this.context.gl,{width:A,height:t,depth:i,data:(s=(o=n.cast)==null?void 0:o.call(n,e))!=null?s:e,format:n.dataFormat,dataFormat:n.format,type:n.type,mipmaps:!1,parameters:{[CA.TEXTURE_MIN_FILTER]:CA.LINEAR,[CA.TEXTURE_MAG_FILTER]:CA.LINEAR,[CA.TEXTURE_WRAP_S]:CA.CLAMP_TO_EDGE,[CA.TEXTURE_WRAP_T]:CA.CLAMP_TO_EDGE,[CA.TEXTURE_WRAP_R]:CA.CLAMP_TO_EDGE}})}};sm.layerName="XR3DLayer";sm.defaultProps=zsA;async function XsA({source:e,selection:A,onUpdate:t=()=>{},downsampleDepth:i=1,signal:n}){const{shape:r,labels:o,dtype:s}=e,{height:a,width:g}=no(e),I=r[o.indexOf("z")],l=Math.max(1,Math.floor(I/i)),c=a*g,C=`${s}Array`,B=globalThis[C],u=new B(c*l);return await Promise.all(new Array(l).fill(0).map(async(E,h)=>{const f={...A,z:h*i},{data:Q}=await e.getRaster({selection:f,signal:n});let d=0;for(t();dnew Yl({id:`text-${t}`,coordinateSystem:HA.CARTESIAN,data:[{text:e,position:A.position}],getColor:[220,220,220,255],getSize:25,sizeUnits:"meters",sizeScale:2**-A.zoom,fontFamily:"Helvetica"}),ZsA={pickable:!1,coordinateSystem:HA.CARTESIAN,contrastLimits:{type:"array",value:[],compare:!0},channelsVisible:{type:"array",value:[],compare:!0},selections:{type:"array",value:[],compare:!0},resolution:{type:"number",value:0,compare:!0},domain:{type:"array",value:[],compare:!0},loader:{type:"object",value:[{getRaster:async()=>({data:[],height:0,width:0}),dtype:"Uint16",shape:[1],labels:["z"]}],compare:!0},xSlice:{type:"array",value:null,compare:!0},ySlice:{type:"array",value:null,compare:!0},zSlice:{type:"array",value:null,compare:!0},clippingPlanes:{type:"array",value:[],compare:!0},onUpdate:{type:"function",value:()=>{},compare:!0},useProgressIndicator:{type:"boolean",value:!0,compare:!0},useWebGL1Warning:{type:"boolean",value:!0,compare:!0},extensions:{type:"array",value:[new fu.AdditiveBlendExtension],compare:!0}},am=class extends Ui{clearState(){this.setState({height:null,width:null,depth:null,data:null,physicalSizeScalingMatrix:null,resolutionMatrix:null,progress:0,abortController:null})}finalizeState(){this.state.abortController.abort()}updateState({oldProps:e,props:A}){const t=A.loader!==e.loader,i=A.resolution!==e.resolution,n=A.selections!==e.selections;if(i&&this.clearState(),t||n||i){const{loader:r,selections:o=[],resolution:s,onViewportLoad:a}=this.props,g=r[s];let I=0;const l=(g.shape[g.labels.indexOf("z")]>>s)*o.length,c=()=>{I+=.5/l,this.props.onUpdate&&this.props.onUpdate({progress:I}),this.setState({progress:I})},C=new AbortController;this.setState({abortController:C});const{signal:B}=C,u=o.map(h=>XsA({selection:h,source:g,onUpdate:c,downsampleDepth:2**s,signal:B})),E=Z_(r[s]);Promise.all(u).then(h=>{var Q,d,w;a&&a(h);const f={data:h.map(m=>m.data),width:(Q=h[0])==null?void 0:Q.width,height:(d=h[0])==null?void 0:d.height,depth:(w=h[0])==null?void 0:w.depth};this.setState({...f,physicalSizeScalingMatrix:E,resolutionMatrix:new fe().scale(2**s)})})}}renderLayers(){const{loader:e,id:A,resolution:t,useProgressIndicator:i,useWebGL1Warning:n}=this.props,{dtype:r}=e[t],{data:o,width:s,height:a,depth:g,progress:I,physicalSizeScalingMatrix:l,resolutionMatrix:c}=this.state,{gl:C}=this.context;if(!ie(C)&&n){const{viewport:B}=this.context;return ex(["Volume rendering is only available on browsers that support WebGL2. If you","are using Safari, you can turn on WebGL2 by navigating in the top menubar","to check Develop > Experimental Features > WebGL 2.0 and then refreshing","the page."].join(` -`),B,A)}if(!(s&&a)&&i){const{viewport:B}=this.context;return ex(`Loading Volume ${String((I||0)*100).slice(0,5)}%...`,B,A)}return new sm(this.props,{channelData:{data:o,width:s,height:a,depth:g},id:`XR3DLayer-${0}-${a}-${s}-${0}-${t}-${A}`,physicalSizeScalingMatrix:l,parameters:{[CA.CULL_FACE]:!0,[CA.CULL_FACE_MODE]:CA.FRONT,[CA.DEPTH_TEST]:!1,blendFunc:[CA.SRC_ALPHA,CA.ONE],blend:!0},resolutionMatrix:c,dtype:r})}};am.layerName="VolumeLayer";am.defaultProps=ZsA;const $sA=typeof window!="undefined"?p.exports.useLayoutEffect:p.exports.useEffect;var AaA=$sA;function rE(e,A){for(;e;){if(e===A)return!0;e=Object.getPrototypeOf(e)}return!1}const eaA={position:"absolute",zIndex:-1};function gM(e,A){if(typeof e=="function")return e(A);if(Array.isArray(e))return e.map(t=>gM(t,A));if(du(e)){if(taA(e))return A.style=eaA,p.exports.cloneElement(e,A);if(iaA(e))return p.exports.cloneElement(e,A)}return e}function du(e){return e&&typeof e=="object"&&"type"in e||!1}function taA(e){const A=e.type,t=A&&A.defaultProps;return t&&t.mapStyle}function iaA(e){const A=e.type;return A&&A.deckGLViewProps}function jd(e){if(typeof e=="function")return p.exports.createElement(Kr,{},e);if(Array.isArray(e))return e.map(jd);if(du(e)){if(e.type===p.exports.Fragment)return jd(e.props.children);if(rE(e.type,Kr))return e}return e}function naA({children:e,layers:A=[],views:t=null}){const i=[],n=[],r={};return p.exports.Children.forEach(jd(e),o=>{if(du(o)){const s=o.type;if(rE(s,gi)){const a=raA(s,o.props);n.push(a)}else i.push(o);if(rE(s,Kr)&&s!==Kr&&o.props.id){const a=new s(o.props);r[a.id]=a}}else o&&i.push(o)}),Object.keys(r).length>0&&(Array.isArray(t)?t.forEach(o=>{r[o.id]=o}):t&&(r[t.id]=t),t=Object.values(r)),A=n.length>0?[...n,...A]:A,{layers:A,children:i,views:t}}function raA(e,A){const t={},i=e.defaultProps||{};for(const n in A)i[n]!==A[n]&&(t[n]=A[n]);return new e(t)}function oaA({children:e,deck:A,ContextProvider:t}){const{viewManager:i}=A||{};if(!i||!i.views.length)return[];const n={},r=i.views[0].id;for(const o of e){let s=r,a=o;du(o)&&rE(o.type,Kr)&&(s=o.props.id||r,a=o.props.children);const g=i.getViewport(s),I=i.getViewState(s);if(g){const{x:l,y:c,width:C,height:B}=g;a=gM(a,{x:l,y:c,width:C,height:B,viewport:g,viewState:I}),n[s]||(n[s]={viewport:g,children:[]}),n[s].children.push(a)}}return Object.keys(n).map(o=>{const{viewport:s,children:a}=n[o],{x:g,y:I,width:l,height:c}=s,C={position:"absolute",left:g,top:I,width:l,height:c},B="view-".concat(o),u=p.exports.createElement("div",{key:B,id:B,style:C},...a);if(t){const E={viewport:s,container:A.canvas.offsetParent,eventManager:A.eventManager,onViewStateChange:h=>{h.viewId=o,A._onViewStateChange(h)}};return p.exports.createElement(t,{key:B,value:E},u)}return u})}const saA={mixBlendMode:null};function aaA({width:e,height:A,style:t}){const i={position:"absolute",zIndex:0,left:0,top:0,width:e,height:A},n={left:0,top:0};if(t)for(const r in t)r in saA?n[r]=t[r]:i[r]=t[r];return{containerStyle:i,canvasStyle:n}}function gaA(e){return{get deck(){return e.deck},pickObject:A=>e.deck.pickObject(A),pickMultipleObjects:A=>e.deck.pickMultipleObjects(A),pickObjects:A=>e.deck.pickObjects(A)}}function IM(e){e.redrawReason&&(e.deck._drawLayers(e.redrawReason),e.redrawReason=null)}function IaA(e,A,t){const i=new A({...t,_customRender:n=>{e.redrawReason=n;const r=i.getViewports();e.lastRenderedViewports!==r?e.forceUpdate():IM(e)}});return i}const lM=p.exports.forwardRef((e,A)=>{const[t,i]=p.exports.useState(0),r=p.exports.useRef({control:null,version:t,forceUpdate:()=>i(w=>w+1)}).current,o=p.exports.useRef(null),s=p.exports.useRef(null),a=p.exports.useMemo(()=>naA(e),[e.layers,e.views,e.children]);let g=!0;const I=w=>{var m;return g&&e.viewState?(r.viewStateUpdateRequested=w,null):(r.viewStateUpdateRequested=null,(m=e.onViewStateChange)===null||m===void 0?void 0:m.call(e,w))},l=w=>{if(g)r.interactionStateUpdateRequested=w;else{var m;r.interactionStateUpdateRequested=null,(m=e.onInteractionStateChange)===null||m===void 0||m.call(e,w)}},c=p.exports.useMemo(()=>{const w={...e,style:null,width:"100%",height:"100%",parent:o.current,canvas:s.current,layers:a.layers,views:a.views,onViewStateChange:I,onInteractionStateChange:l};return delete w._customRender,r.deck&&r.deck.setProps(w),w},[e]);p.exports.useEffect(()=>{const w=e.Deck||$E;return r.deck=IaA(r,w,{...c,parent:o.current,canvas:s.current}),()=>{var m;return(m=r.deck)===null||m===void 0?void 0:m.finalize()}},[]),AaA(()=>{IM(r);const{viewStateUpdateRequested:w,interactionStateUpdateRequested:m}=r;w&&I(w),m&&l(m)}),p.exports.useImperativeHandle(A,()=>gaA(r),[]);const C=r.deck&&r.deck.isInitialized?r.deck.getViewports():void 0,{ContextProvider:B,width:u,height:E,id:h,style:f}=e,{containerStyle:Q,canvasStyle:d}=p.exports.useMemo(()=>aaA({width:u,height:E,style:f}),[u,E,f]);if(!r.viewStateUpdateRequested&&r.lastRenderedViewports===C||r.version!==t){r.lastRenderedViewports=C,r.version=t;const w=oaA({children:a.children,deck:r.deck,ContextProvider:B}),m=p.exports.createElement("canvas",{key:"canvas",id:h||"deckgl-overlay",ref:s,style:d});r.control=p.exports.createElement("div",{id:"".concat(h||"deckgl","-wrapper"),ref:o,style:Q},[m,w])}return g=!1,r.control});lM.defaultProps=$E.defaultProps;var laA=lM;class pu{constructor({id:A,x:t=0,y:i=0,height:n,width:r}){this.width=r,this.height=n,this.id=A,this.x=t,this.y=i}getDeckGlView(){return new ql({controller:!0,id:this.id,height:this.height,width:this.width,x:this.x,y:this.y})}filterViewState({viewState:A}){const{id:t,height:i,width:n}=this;return A.id===t?{height:i,width:n,...A}:null}getLayers({viewStates:A,props:t}){}}function zo(e){return`-#${e}#`}function yu(e,A,t=0,i=!1,n){const r=Array.isArray(e)?e[0]:e,{width:o,height:s}=no(r),a=(n||new fe).getScale(),[g,I]=[a[0]*o,a[1]*s],l=r.shape[r.labels.indexOf("z")],c=Math.log2(Math.min(A.width/g,A.height/I))-t,C=Z_(r);return{target:(n||new fe).transformPoint((i?C:new fe).transformPoint([o/2,s/2,i?l/2:0])),zoom:c}}function cM(e,A){var o,s;const{loader:t}=A,i=(s=(o=t[0])==null?void 0:o.constructor)==null?void 0:s.name,n=t.length>1?rm:$l,r=t.length>1?t:t[0];return new n({...A,id:`${i}${zo(e)}`,viewportId:e,loader:r})}const XC="overview";class caA extends XE{constructor(A){super(A),this.events=["click"]}handleEvent(A){if(A.type!=="click")return;let[t,i]=this.getCenter(A);const{width:n,height:r,zoom:o,scale:s}=this.props;if(t<0||i<0||t>n||i>r)return;const a=1/(2**o*s);t*=a,i*=a,this.onViewStateChange&&this.onViewStateChange({viewState:{target:[t,i,0]}})}}class CaA extends pu{constructor({id:A,loader:t,detailHeight:i,detailWidth:n,scale:r=.2,margin:o=25,position:s="bottom-right",minimumWidth:a=150,maximumWidth:g=350,minimumHeight:I=150,maximumHeight:l=350,clickCenter:c=!0}){super({id:A}),this.margin=o,this.loader=t,this.position=s,this.detailHeight=i,this.detailWidth=n,this._setHeightWidthScale({detailWidth:n,detailHeight:i,scale:r,minimumWidth:a,maximumWidth:g,minimumHeight:I,maximumHeight:l}),this._setXY(),this.clickCenter=c}_setHeightWidthScale({detailWidth:A,detailHeight:t,scale:i,minimumWidth:n,maximumWidth:r,minimumHeight:o,maximumHeight:s}){const a=this.loader.length,{width:g,height:I}=no(this.loader[0]);if(this._imageWidth=g,this._imageHeight=I,g>I){const l=I/g;this.width=Math.min(r,Math.max(A*i,n)),this.height=this.width*l,this.scale=2**(a-1)/g*this.width}else{const l=g/I;this.height=Math.min(s,Math.max(t*i,o)),this.width=this.height*l,this.scale=2**(a-1)/I*this.height}}_setXY(){const{height:A,width:t,margin:i,position:n,detailWidth:r,detailHeight:o}=this;switch(n){case"bottom-right":{this.x=r-t-i,this.y=o-A-i;break}case"top-right":{this.x=r-t-i,this.y=i;break}case"top-left":{this.x=i,this.y=i;break}case"bottom-left":{this.x=i,this.y=o-A-i;break}default:throw new Error("overviewLocation prop needs to be one of ['bottom-right', 'top-right', 'top-left', 'bottom-left']")}}getDeckGlView(){const{scale:A,clickCenter:t}=this,i=t&&{type:caA,scale:A};return new ql({controller:i,id:this.id,height:this.height,width:this.width,x:this.x,y:this.y,clear:!0})}filterViewState({viewState:A}){const{_imageWidth:t,_imageHeight:i,scale:n}=this;return{...A,height:this.height,width:this.width,id:this.id,target:[t*n/2,i*n/2,0],zoom:-(this.loader.length-1)}}getLayers({viewStates:A,props:t}){const{detail:i,overview:n}=A;if(!i)throw new Error("Overview requires a viewState with id detail");const r=Am(i).map(s=>s.map(a=>a*this.scale));return[new om(t,{id:zo(this.id),boundingBox:r,overviewScale:this.scale,zoom:-n.zoom})]}}const bf="detail";class BaA extends pu{constructor({id:A,x:t=0,y:i=0,height:n,width:r,snapScaleBar:o=!1}){super({id:A,x:t,y:i,height:n,width:r}),this.snapScaleBar=o}getLayers({props:A,viewStates:t}){var g,I,l;const{loader:i}=A,{id:n,height:r,width:o}=this,s=t[n],a=[cM(n,A)];if((l=(I=(g=i[0])==null?void 0:g.meta)==null?void 0:I.physicalSizes)!=null&&l.x){const{size:c,unit:C}=i[0].meta.physicalSizes.x;a.push(new Qu({id:zo(n),loader:i,unit:C,size:c,snap:this.snapScaleBar,viewState:{...s,height:r,width:o}}))}return a}filterViewState({viewState:A,currentViewState:t}){if(A.id===XC){const{target:i}=A;if(i)return{...t,target:i}}return super.filterViewState({viewState:A})}}class tx extends pu{constructor({id:A,x:t=0,y:i=0,height:n,width:r,linkedIds:o=[],panLock:s=!0,zoomLock:a=!0,viewportOutlineColor:g=[255,255,255],viewportOutlineWidth:I=10,snapScaleBar:l=!1}){super({id:A,x:t,y:i,height:n,width:r}),this.linkedIds=o,this.panLock=s,this.zoomLock=a,this.viewportOutlineColor=g,this.viewportOutlineWidth=I,this.snapScaleBar=l}filterViewState({viewState:A,oldViewState:t,currentViewState:i}){const{id:n}=A,{id:r,linkedIds:o,panLock:s,zoomLock:a}=this;if(t&&o.indexOf(n)!==-1&&(a||s)){const g={height:i.height,width:i.width,target:[],zoom:null},[I,l]=i.target;if(a){const c=A.zoom-t.zoom;g.zoom=i.zoom+c}else g.zoom=i.zoom;if(s){const[c,C]=t.target,[B,u]=A.target,E=B-c,h=u-C;g.target.push(I+E),g.target.push(l+h)}else g.target.push(I),g.target.push(l);return{id:r,target:g.target,zoom:g.zoom,height:g.height,width:g.width}}return A.id===r?{id:r,target:A.target,zoom:A.zoom,height:A.height,width:A.width}:{id:r,target:i.target,zoom:i.zoom,height:i.height,width:i.width}}getLayers({props:A,viewStates:t}){var C,B,u;const{loader:i}=A,{id:n,viewportOutlineColor:r,viewportOutlineWidth:o,height:s,width:a}=this,g=t[n],I=Am({...g,height:s,width:a}),l=[cM(n,A)],c=new nl({id:`viewport-outline-${zo(n)}`,coordinateSystem:HA.CARTESIAN,data:[I],getPolygon:E=>E,filled:!1,stroked:!0,getLineColor:r,getLineWidth:o*2**-g.zoom});if(l.push(c),(u=(B=(C=i[0])==null?void 0:C.meta)==null?void 0:B.physicalSizes)!=null&&u.x){const{size:E,unit:h}=i[0].meta.physicalSizes.x;l.push(new Qu({id:zo(n),loader:i,unit:h,size:E,snap:this.snapScaleBar,viewState:{...g,height:s,width:a}}))}return l}}class EaA extends pu{constructor({target:A,useFixedAxis:t,...i}){super(i),this.target=A,this.useFixedAxis=t}getDeckGlView(){const{height:A,width:t,id:i,x:n,y:r}=this;return new Jb({id:i,controller:!0,height:A,width:t,x:n,y:r,orbitAxis:"Y"})}filterViewState({viewState:A}){const{id:t,target:i,useFixedAxis:n}=this;return A.id===t?{...A,target:n?i:A.target}:null}getLayers({props:A}){const{loader:t}=A,{id:i}=this;return[new am(A,{id:`${t.type}${zo(i)}`})]}}var uaA=function e(A,t){if(A===t)return!0;if(A&&t&&typeof A=="object"&&typeof t=="object"){if(A.constructor!==t.constructor)return!1;var i,n,r;if(Array.isArray(A)){if(i=A.length,i!=t.length)return!1;for(n=i;n--!==0;)if(!e(A[n],t[n]))return!1;return!0}if(A.constructor===RegExp)return A.source===t.source&&A.flags===t.flags;if(A.valueOf!==Object.prototype.valueOf)return A.valueOf()===t.valueOf();if(A.toString!==Object.prototype.toString)return A.toString()===t.toString();if(r=Object.keys(A),i=r.length,i!==Object.keys(t).length)return!1;for(n=i;n--!==0;)if(!Object.prototype.hasOwnProperty.call(t,r[n]))return!1;for(n=i;n--!==0;){var o=r[n];if(!e(A[o],t[o]))return!1}return!0}return A!==A&&t!==t},mu={exports:{}},Ac={};/** @license React v17.0.2 + `),super.getShaders({vs:WsA,fs:zsA.replace("_BEFORE_RENDER",i).replace("_RENDER",n).replace("_AFTER_RENDER",r),defines:{SAMPLER_TYPE:t,NUM_PLANES:String(e.length||tx)},modules:[s]})}finalizeState(){super.finalizeState(),this.state.textures&&Object.values(this.state.textures).forEach(e=>e&&e.delete())}updateState({props:e,oldProps:A,changeFlags:t}){var i,n;if(t.extensionsChanged||e.colormap!==A.colormap||e.renderingMode!==A.renderingMode||e.clippingPlanes.length!==A.clippingPlanes.length){const{gl:r}=this.context;this.state.model&&this.state.model.delete(),this.setState({model:this._getModel(r)})}e.channelData&&((i=e==null?void 0:e.channelData)==null?void 0:i.data)!==((n=A==null?void 0:A.channelData)==null?void 0:n.data)&&this.loadTexture(e.channelData)}_getModel(e){return e?new di(e,{...this.getShaders(),geometry:new En({drawMode:e.TRIANGLE_STRIP,attributes:{positions:new Float32Array(XsA)}})}):null}draw({uniforms:e}){const{textures:A,model:t,scaleMatrix:i}=this.state,{contrastLimits:n,xSlice:r,ySlice:o,zSlice:s,modelMatrix:a,channelsVisible:g,domain:I,dtype:l,clippingPlanes:c,resolutionMatrix:C}=this.props,{viewMatrix:B,viewMatrixInverse:u,projectionMatrix:E}=this.context.viewport;if(A&&t&&i){const h=AM({contrastLimits:n,channelsVisible:g,domain:I,dtype:l}),f=i.clone().invert(),Q=C.clone().invert(),d=$_(c.map(v=>v.clone().transform(f).transform(Q)),new Po([1,0,0]),c.length||tx),w=d.map(v=>v.normal).flat(),m=d.map(v=>v.distance);t.setUniforms({...e,...A,contrastLimits:h,xSlice:new Float32Array(r?r.map(v=>v/i[0]/C[0]):[0,1]),ySlice:new Float32Array(o?o.map(v=>v/i[5]/C[5]):[0,1]),zSlice:new Float32Array(s?s.map(v=>v/i[10]/C[10]):[0,1]),eye_pos:new Float32Array([u[12],u[13],u[14]]),view:B,proj:E,scale:i,resolution:C,model:a||new fe,normals:w,distances:m}).draw()}}loadTexture(e){const A={volume0:null,volume1:null,volume2:null,volume3:null,volume4:null,volume5:null};if(this.state.textures&&Object.values(this.state.textures).forEach(t=>t&&t.delete()),e&&Object.keys(e).length>0&&e.data){const{height:t,width:i,depth:n}=e;e.data.forEach((r,o)=>{A[`volume${o}`]=this.dataToTexture(r,i,t,n)},this),this.setState({textures:A,scaleMatrix:new fe().scale(this.props.physicalSizeScalingMatrix.transformPoint([i,t,n]))})}}dataToTexture(e,A,t,i){var o,s;const n=ix();return new xL(this.context.gl,{width:A,height:t,depth:i,data:(s=(o=n.cast)==null?void 0:o.call(n,e))!=null?s:e,format:n.dataFormat,dataFormat:n.format,type:n.type,mipmaps:!1,parameters:{[CA.TEXTURE_MIN_FILTER]:CA.LINEAR,[CA.TEXTURE_MAG_FILTER]:CA.LINEAR,[CA.TEXTURE_WRAP_S]:CA.CLAMP_TO_EDGE,[CA.TEXTURE_WRAP_T]:CA.CLAMP_TO_EDGE,[CA.TEXTURE_WRAP_R]:CA.CLAMP_TO_EDGE}})}};am.layerName="XR3DLayer";am.defaultProps=ZsA;async function AaA({source:e,selection:A,onUpdate:t=()=>{},downsampleDepth:i=1,signal:n}){const{shape:r,labels:o,dtype:s}=e,{height:a,width:g}=io(e),I=r[o.indexOf("z")],l=Math.max(1,Math.floor(I/i)),c=a*g,C=`${s}Array`,B=globalThis[C],u=new B(c*l);return await Promise.all(new Array(l).fill(0).map(async(E,h)=>{const f={...A,z:h*i},{data:Q}=await e.getRaster({selection:f,signal:n});let d=0;for(t();dnew Yl({id:`text-${t}`,coordinateSystem:HA.CARTESIAN,data:[{text:e,position:A.position}],getColor:[220,220,220,255],getSize:25,sizeUnits:"meters",sizeScale:2**-A.zoom,fontFamily:"Helvetica"}),eaA={pickable:!1,coordinateSystem:HA.CARTESIAN,contrastLimits:{type:"array",value:[],compare:!0},channelsVisible:{type:"array",value:[],compare:!0},selections:{type:"array",value:[],compare:!0},resolution:{type:"number",value:0,compare:!0},domain:{type:"array",value:[],compare:!0},loader:{type:"object",value:[{getRaster:async()=>({data:[],height:0,width:0}),dtype:"Uint16",shape:[1],labels:["z"]}],compare:!0},xSlice:{type:"array",value:null,compare:!0},ySlice:{type:"array",value:null,compare:!0},zSlice:{type:"array",value:null,compare:!0},clippingPlanes:{type:"array",value:[],compare:!0},onUpdate:{type:"function",value:()=>{},compare:!0},useProgressIndicator:{type:"boolean",value:!0,compare:!0},useWebGL1Warning:{type:"boolean",value:!0,compare:!0},extensions:{type:"array",value:[new fu.AdditiveBlendExtension],compare:!0}},gm=class extends Ui{clearState(){this.setState({height:null,width:null,depth:null,data:null,physicalSizeScalingMatrix:null,resolutionMatrix:null,progress:0,abortController:null})}finalizeState(){this.state.abortController.abort()}updateState({oldProps:e,props:A}){const t=A.loader!==e.loader,i=A.resolution!==e.resolution,n=A.selections!==e.selections;if(i&&this.clearState(),t||n||i){const{loader:r,selections:o=[],resolution:s,onViewportLoad:a}=this.props,g=r[s];let I=0;const l=(g.shape[g.labels.indexOf("z")]>>s)*o.length,c=()=>{I+=.5/l,this.props.onUpdate&&this.props.onUpdate({progress:I}),this.setState({progress:I})},C=new AbortController;this.setState({abortController:C});const{signal:B}=C,u=o.map(h=>AaA({selection:h,source:g,onUpdate:c,downsampleDepth:2**s,signal:B})),E=eM(r[s]);Promise.all(u).then(h=>{var Q,d,w;a&&a(h);const f={data:h.map(m=>m.data),width:(Q=h[0])==null?void 0:Q.width,height:(d=h[0])==null?void 0:d.height,depth:(w=h[0])==null?void 0:w.depth};this.setState({...f,physicalSizeScalingMatrix:E,resolutionMatrix:new fe().scale(2**s)})})}}renderLayers(){const{loader:e,id:A,resolution:t,useProgressIndicator:i,useWebGL1Warning:n}=this.props,{dtype:r}=e[t],{data:o,width:s,height:a,depth:g,progress:I,physicalSizeScalingMatrix:l,resolutionMatrix:c}=this.state,{gl:C}=this.context;if(!ie(C)&&n){const{viewport:B}=this.context;return nx(["Volume rendering is only available on browsers that support WebGL2. If you","are using Safari, you can turn on WebGL2 by navigating in the top menubar","to check Develop > Experimental Features > WebGL 2.0 and then refreshing","the page."].join(` +`),B,A)}if(!(s&&a)&&i){const{viewport:B}=this.context;return nx(`Loading Volume ${String((I||0)*100).slice(0,5)}%...`,B,A)}return new am(this.props,{channelData:{data:o,width:s,height:a,depth:g},id:`XR3DLayer-${0}-${a}-${s}-${0}-${t}-${A}`,physicalSizeScalingMatrix:l,parameters:{[CA.CULL_FACE]:!0,[CA.CULL_FACE_MODE]:CA.FRONT,[CA.DEPTH_TEST]:!1,blendFunc:[CA.SRC_ALPHA,CA.ONE],blend:!0},resolutionMatrix:c,dtype:r})}};gm.layerName="VolumeLayer";gm.defaultProps=eaA;const taA=typeof window!="undefined"?p.exports.useLayoutEffect:p.exports.useEffect;var iaA=taA;function rE(e,A){for(;e;){if(e===A)return!0;e=Object.getPrototypeOf(e)}return!1}const naA={position:"absolute",zIndex:-1};function cM(e,A){if(typeof e=="function")return e(A);if(Array.isArray(e))return e.map(t=>cM(t,A));if(du(e)){if(raA(e))return A.style=naA,p.exports.cloneElement(e,A);if(oaA(e))return p.exports.cloneElement(e,A)}return e}function du(e){return e&&typeof e=="object"&&"type"in e||!1}function raA(e){const A=e.type,t=A&&A.defaultProps;return t&&t.mapStyle}function oaA(e){const A=e.type;return A&&A.deckGLViewProps}function Xd(e){if(typeof e=="function")return p.exports.createElement(Yr,{},e);if(Array.isArray(e))return e.map(Xd);if(du(e)){if(e.type===p.exports.Fragment)return Xd(e.props.children);if(rE(e.type,Yr))return e}return e}function saA({children:e,layers:A=[],views:t=null}){const i=[],n=[],r={};return p.exports.Children.forEach(Xd(e),o=>{if(du(o)){const s=o.type;if(rE(s,gi)){const a=aaA(s,o.props);n.push(a)}else i.push(o);if(rE(s,Yr)&&s!==Yr&&o.props.id){const a=new s(o.props);r[a.id]=a}}else o&&i.push(o)}),Object.keys(r).length>0&&(Array.isArray(t)?t.forEach(o=>{r[o.id]=o}):t&&(r[t.id]=t),t=Object.values(r)),A=n.length>0?[...n,...A]:A,{layers:A,children:i,views:t}}function aaA(e,A){const t={},i=e.defaultProps||{};for(const n in A)i[n]!==A[n]&&(t[n]=A[n]);return new e(t)}function gaA({children:e,deck:A,ContextProvider:t}){const{viewManager:i}=A||{};if(!i||!i.views.length)return[];const n={},r=i.views[0].id;for(const o of e){let s=r,a=o;du(o)&&rE(o.type,Yr)&&(s=o.props.id||r,a=o.props.children);const g=i.getViewport(s),I=i.getViewState(s);if(g){const{x:l,y:c,width:C,height:B}=g;a=cM(a,{x:l,y:c,width:C,height:B,viewport:g,viewState:I}),n[s]||(n[s]={viewport:g,children:[]}),n[s].children.push(a)}}return Object.keys(n).map(o=>{const{viewport:s,children:a}=n[o],{x:g,y:I,width:l,height:c}=s,C={position:"absolute",left:g,top:I,width:l,height:c},B="view-".concat(o),u=p.exports.createElement("div",{key:B,id:B,style:C},...a);if(t){const E={viewport:s,container:A.canvas.offsetParent,eventManager:A.eventManager,onViewStateChange:h=>{h.viewId=o,A._onViewStateChange(h)}};return p.exports.createElement(t,{key:B,value:E},u)}return u})}const IaA={mixBlendMode:null};function laA({width:e,height:A,style:t}){const i={position:"absolute",zIndex:0,left:0,top:0,width:e,height:A},n={left:0,top:0};if(t)for(const r in t)r in IaA?n[r]=t[r]:i[r]=t[r];return{containerStyle:i,canvasStyle:n}}function caA(e){return{get deck(){return e.deck},pickObject:A=>e.deck.pickObject(A),pickMultipleObjects:A=>e.deck.pickMultipleObjects(A),pickObjects:A=>e.deck.pickObjects(A)}}function CM(e){e.redrawReason&&(e.deck._drawLayers(e.redrawReason),e.redrawReason=null)}function CaA(e,A,t){const i=new A({...t,_customRender:n=>{e.redrawReason=n;const r=i.getViewports();e.lastRenderedViewports!==r?e.forceUpdate():CM(e)}});return i}const BM=p.exports.forwardRef((e,A)=>{const[t,i]=p.exports.useState(0),r=p.exports.useRef({control:null,version:t,forceUpdate:()=>i(w=>w+1)}).current,o=p.exports.useRef(null),s=p.exports.useRef(null),a=p.exports.useMemo(()=>saA(e),[e.layers,e.views,e.children]);let g=!0;const I=w=>{var m;return g&&e.viewState?(r.viewStateUpdateRequested=w,null):(r.viewStateUpdateRequested=null,(m=e.onViewStateChange)===null||m===void 0?void 0:m.call(e,w))},l=w=>{if(g)r.interactionStateUpdateRequested=w;else{var m;r.interactionStateUpdateRequested=null,(m=e.onInteractionStateChange)===null||m===void 0||m.call(e,w)}},c=p.exports.useMemo(()=>{const w={...e,style:null,width:"100%",height:"100%",parent:o.current,canvas:s.current,layers:a.layers,views:a.views,onViewStateChange:I,onInteractionStateChange:l};return delete w._customRender,r.deck&&r.deck.setProps(w),w},[e]);p.exports.useEffect(()=>{const w=e.Deck||$E;return r.deck=CaA(r,w,{...c,parent:o.current,canvas:s.current}),()=>{var m;return(m=r.deck)===null||m===void 0?void 0:m.finalize()}},[]),iaA(()=>{CM(r);const{viewStateUpdateRequested:w,interactionStateUpdateRequested:m}=r;w&&I(w),m&&l(m)}),p.exports.useImperativeHandle(A,()=>caA(r),[]);const C=r.deck&&r.deck.isInitialized?r.deck.getViewports():void 0,{ContextProvider:B,width:u,height:E,id:h,style:f}=e,{containerStyle:Q,canvasStyle:d}=p.exports.useMemo(()=>laA({width:u,height:E,style:f}),[u,E,f]);if(!r.viewStateUpdateRequested&&r.lastRenderedViewports===C||r.version!==t){r.lastRenderedViewports=C,r.version=t;const w=gaA({children:a.children,deck:r.deck,ContextProvider:B}),m=p.exports.createElement("canvas",{key:"canvas",id:h||"deckgl-overlay",ref:s,style:d});r.control=p.exports.createElement("div",{id:"".concat(h||"deckgl","-wrapper"),ref:o,style:Q},[m,w])}return g=!1,r.control});BM.defaultProps=$E.defaultProps;var BaA=BM;class pu{constructor({id:A,x:t=0,y:i=0,height:n,width:r}){this.width=r,this.height=n,this.id=A,this.x=t,this.y=i}getDeckGlView(){return new ql({controller:!0,id:this.id,height:this.height,width:this.width,x:this.x,y:this.y})}filterViewState({viewState:A}){const{id:t,height:i,width:n}=this;return A.id===t?{height:i,width:n,...A}:null}getLayers({viewStates:A,props:t}){}}function Wo(e){return`-#${e}#`}function yu(e,A,t=0,i=!1,n){const r=Array.isArray(e)?e[0]:e,{width:o,height:s}=io(r),a=(n||new fe).getScale(),[g,I]=[a[0]*o,a[1]*s],l=r.shape[r.labels.indexOf("z")],c=Math.log2(Math.min(A.width/g,A.height/I))-t,C=eM(r);return{target:(n||new fe).transformPoint((i?C:new fe).transformPoint([o/2,s/2,i?l/2:0])),zoom:c}}function EM(e,A){var o,s;const{loader:t}=A,i=(s=(o=t[0])==null?void 0:o.constructor)==null?void 0:s.name,n=t.length>1?om:$l,r=t.length>1?t:t[0];return new n({...A,id:`${i}${Wo(e)}`,viewportId:e,loader:r})}const XC="overview";class EaA extends XE{constructor(A){super(A),this.events=["click"]}handleEvent(A){if(A.type!=="click")return;let[t,i]=this.getCenter(A);const{width:n,height:r,zoom:o,scale:s}=this.props;if(t<0||i<0||t>n||i>r)return;const a=1/(2**o*s);t*=a,i*=a,this.onViewStateChange&&this.onViewStateChange({viewState:{target:[t,i,0]}})}}class uaA extends pu{constructor({id:A,loader:t,detailHeight:i,detailWidth:n,scale:r=.2,margin:o=25,position:s="bottom-right",minimumWidth:a=150,maximumWidth:g=350,minimumHeight:I=150,maximumHeight:l=350,clickCenter:c=!0}){super({id:A}),this.margin=o,this.loader=t,this.position=s,this.detailHeight=i,this.detailWidth=n,this._setHeightWidthScale({detailWidth:n,detailHeight:i,scale:r,minimumWidth:a,maximumWidth:g,minimumHeight:I,maximumHeight:l}),this._setXY(),this.clickCenter=c}_setHeightWidthScale({detailWidth:A,detailHeight:t,scale:i,minimumWidth:n,maximumWidth:r,minimumHeight:o,maximumHeight:s}){const a=this.loader.length,{width:g,height:I}=io(this.loader[0]);if(this._imageWidth=g,this._imageHeight=I,g>I){const l=I/g;this.width=Math.min(r,Math.max(A*i,n)),this.height=this.width*l,this.scale=2**(a-1)/g*this.width}else{const l=g/I;this.height=Math.min(s,Math.max(t*i,o)),this.width=this.height*l,this.scale=2**(a-1)/I*this.height}}_setXY(){const{height:A,width:t,margin:i,position:n,detailWidth:r,detailHeight:o}=this;switch(n){case"bottom-right":{this.x=r-t-i,this.y=o-A-i;break}case"top-right":{this.x=r-t-i,this.y=i;break}case"top-left":{this.x=i,this.y=i;break}case"bottom-left":{this.x=i,this.y=o-A-i;break}default:throw new Error("overviewLocation prop needs to be one of ['bottom-right', 'top-right', 'top-left', 'bottom-left']")}}getDeckGlView(){const{scale:A,clickCenter:t}=this,i=t&&{type:EaA,scale:A};return new ql({controller:i,id:this.id,height:this.height,width:this.width,x:this.x,y:this.y,clear:!0})}filterViewState({viewState:A}){const{_imageWidth:t,_imageHeight:i,scale:n}=this;return{...A,height:this.height,width:this.width,id:this.id,target:[t*n/2,i*n/2,0],zoom:-(this.loader.length-1)}}getLayers({viewStates:A,props:t}){const{detail:i,overview:n}=A;if(!i)throw new Error("Overview requires a viewState with id detail");const r=em(i).map(s=>s.map(a=>a*this.scale));return[new sm(t,{id:Wo(this.id),boundingBox:r,overviewScale:this.scale,zoom:-n.zoom})]}}const Gf="detail";class haA extends pu{constructor({id:A,x:t=0,y:i=0,height:n,width:r,snapScaleBar:o=!1}){super({id:A,x:t,y:i,height:n,width:r}),this.snapScaleBar=o}getLayers({props:A,viewStates:t}){var g,I,l;const{loader:i}=A,{id:n,height:r,width:o}=this,s=t[n],a=[EM(n,A)];if((l=(I=(g=i[0])==null?void 0:g.meta)==null?void 0:I.physicalSizes)!=null&&l.x){const{size:c,unit:C}=i[0].meta.physicalSizes.x;a.push(new Qu({id:Wo(n),loader:i,unit:C,size:c,snap:this.snapScaleBar,viewState:{...s,height:r,width:o}}))}return a}filterViewState({viewState:A,currentViewState:t}){if(A.id===XC){const{target:i}=A;if(i)return{...t,target:i}}return super.filterViewState({viewState:A})}}class rx extends pu{constructor({id:A,x:t=0,y:i=0,height:n,width:r,linkedIds:o=[],panLock:s=!0,zoomLock:a=!0,viewportOutlineColor:g=[255,255,255],viewportOutlineWidth:I=10,snapScaleBar:l=!1}){super({id:A,x:t,y:i,height:n,width:r}),this.linkedIds=o,this.panLock=s,this.zoomLock=a,this.viewportOutlineColor=g,this.viewportOutlineWidth=I,this.snapScaleBar=l}filterViewState({viewState:A,oldViewState:t,currentViewState:i}){const{id:n}=A,{id:r,linkedIds:o,panLock:s,zoomLock:a}=this;if(t&&o.indexOf(n)!==-1&&(a||s)){const g={height:i.height,width:i.width,target:[],zoom:null},[I,l]=i.target;if(a){const c=A.zoom-t.zoom;g.zoom=i.zoom+c}else g.zoom=i.zoom;if(s){const[c,C]=t.target,[B,u]=A.target,E=B-c,h=u-C;g.target.push(I+E),g.target.push(l+h)}else g.target.push(I),g.target.push(l);return{id:r,target:g.target,zoom:g.zoom,height:g.height,width:g.width}}return A.id===r?{id:r,target:A.target,zoom:A.zoom,height:A.height,width:A.width}:{id:r,target:i.target,zoom:i.zoom,height:i.height,width:i.width}}getLayers({props:A,viewStates:t}){var C,B,u;const{loader:i}=A,{id:n,viewportOutlineColor:r,viewportOutlineWidth:o,height:s,width:a}=this,g=t[n],I=em({...g,height:s,width:a}),l=[EM(n,A)],c=new il({id:`viewport-outline-${Wo(n)}`,coordinateSystem:HA.CARTESIAN,data:[I],getPolygon:E=>E,filled:!1,stroked:!0,getLineColor:r,getLineWidth:o*2**-g.zoom});if(l.push(c),(u=(B=(C=i[0])==null?void 0:C.meta)==null?void 0:B.physicalSizes)!=null&&u.x){const{size:E,unit:h}=i[0].meta.physicalSizes.x;l.push(new Qu({id:Wo(n),loader:i,unit:h,size:E,snap:this.snapScaleBar,viewState:{...g,height:s,width:a}}))}return l}}class faA extends pu{constructor({target:A,useFixedAxis:t,...i}){super(i),this.target=A,this.useFixedAxis=t}getDeckGlView(){const{height:A,width:t,id:i,x:n,y:r}=this;return new Kb({id:i,controller:!0,height:A,width:t,x:n,y:r,orbitAxis:"Y"})}filterViewState({viewState:A}){const{id:t,target:i,useFixedAxis:n}=this;return A.id===t?{...A,target:n?i:A.target}:null}getLayers({props:A}){const{loader:t}=A,{id:i}=this;return[new gm(A,{id:`${t.type}${Wo(i)}`})]}}var QaA=function e(A,t){if(A===t)return!0;if(A&&t&&typeof A=="object"&&typeof t=="object"){if(A.constructor!==t.constructor)return!1;var i,n,r;if(Array.isArray(A)){if(i=A.length,i!=t.length)return!1;for(n=i;n--!==0;)if(!e(A[n],t[n]))return!1;return!0}if(A.constructor===RegExp)return A.source===t.source&&A.flags===t.flags;if(A.valueOf!==Object.prototype.valueOf)return A.valueOf()===t.valueOf();if(A.toString!==Object.prototype.toString)return A.toString()===t.toString();if(r=Object.keys(A),i=r.length,i!==Object.keys(t).length)return!1;for(n=i;n--!==0;)if(!Object.prototype.hasOwnProperty.call(t,r[n]))return!1;for(n=i;n--!==0;){var o=r[n];if(!e(A[o],t[o]))return!1}return!0}return A!==A&&t!==t},mu={exports:{}},Ac={};/** @license React v17.0.2 * react-jsx-runtime.production.min.js * * Copyright (c) Facebook, Inc. and its affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var haA=p.exports,CM=60103;Ac.Fragment=60107;if(typeof Symbol=="function"&&Symbol.for){var ix=Symbol.for;CM=ix("react.element"),Ac.Fragment=ix("react.fragment")}var faA=haA.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,QaA=Object.prototype.hasOwnProperty,daA={key:!0,ref:!0,__self:!0,__source:!0};function BM(e,A,t){var i,n={},r=null,o=null;t!==void 0&&(r=""+t),A.key!==void 0&&(r=""+A.key),A.ref!==void 0&&(o=A.ref);for(i in A)QaA.call(A,i)&&!daA.hasOwnProperty(i)&&(n[i]=A[i]);if(e&&e.defaultProps)for(i in A=e.defaultProps,A)n[i]===void 0&&(n[i]=A[i]);return{$$typeof:CM,type:e,key:r,ref:o,props:n,_owner:faA.current}}Ac.jsx=BM;Ac.jsxs=BM;mu.exports=Ac;const H=mu.exports.jsx,XA=mu.exports.jsxs,Pi=mu.exports.Fragment,paA=(e,A)=>A===e||(e==null?void 0:e.zoom)===(A==null?void 0:A.zoom)&&(e==null?void 0:e.rotationX)===(A==null?void 0:A.rotationX)&&(e==null?void 0:e.rotationOrbit)===(A==null?void 0:A.rotationOrbit)&&uaA(e==null?void 0:e.target,A==null?void 0:A.target);class yaA extends p.exports.PureComponent{constructor(A){super(A),this.state={viewStates:{}};const{viewStates:t}=this.state,{views:i,viewStates:n}=this.props;i.forEach(r=>{t[r.id]=r.filterViewState({viewState:n.find(o=>o.id===r.id)})}),this._onViewStateChange=this._onViewStateChange.bind(this),this.layerFilter=this.layerFilter.bind(this),this.onHover=this.onHover.bind(this)}layerFilter({layer:A,viewport:t}){return A.id.includes(zo(t.id))}_onViewStateChange({viewId:A,viewState:t,interactionState:i,oldViewState:n}){const{views:r,onViewStateChange:o}=this.props;return t=o&&o({viewId:A,viewState:t,interactionState:i,oldViewState:n})||t,this.setState(s=>{const a={};return r.forEach(g=>{const I=s.viewStates[g.id];a[g.id]=g.filterViewState({viewState:{...t,id:A},oldViewState:n,currentViewState:I})}),{viewStates:a}}),t}componentDidUpdate(A){const{props:t}=this,{views:i}=t,n={...this.state.viewStates};let r=!1;i.forEach(o=>{var l,c;const s=(l=t.viewStates)==null?void 0:l.find(C=>C.id===o.id);if(!s)return;const a=(c=A.viewStates)==null?void 0:c.find(C=>C.id===o.id);if(paA(s,a))return;r=!0;const{height:g,width:I}=o;n[o.id]=o.filterViewState({viewState:{...s,height:g,width:I,id:o.id}})}),r&&this.setState({viewStates:n})}static getDerivedStateFromProps(A,t){const{views:i,viewStates:n}=A;if(i.some(r=>!t.viewStates[r.id]||r.height!==t.viewStates[r.id].height||r.width!==t.viewStates[r.id].width)){const r={};return i.forEach(o=>{const{height:s,width:a}=o,g=t.viewStates[o.id];r[o.id]=o.filterViewState({viewState:{...g||n.find(I=>I.id===o.id),height:s,width:a,id:o.id}})}),{viewStates:r}}return t}onHover(A,t){const{tile:i,coordinate:n,sourceLayer:r}=A,{onHover:o,hoverHooks:s}=this.props;if(o&&o(A,t),!s||!n||!r)return null;const{handleValue:a=()=>{},handleCoordnate:g=()=>{}}=s;let I;if(r.id.includes("Tiled")){if(!(i!=null&&i.content))return null;const{content:l,bbox:c,index:{z:C}}=i;if(!l.data||!c)return null;const{data:B,width:u,height:E}=l,{left:h,right:f,top:Q,bottom:d}=c,w=[h,B.heightD[x])}else{const{channelData:l}=r.props;if(!l)return null;const{data:c,width:C,height:B}=l;if(!c||!C||!B)return null;const u=[0,B,C,0],{zoom:E}=r.context.viewport,h=Math.max(1,2**Math.floor(-E)),f=[Math.floor((n[0]-u[0])/h),Math.floor((n[1]-u[3])/h)],Q=f[1]*C+f[0];I=c.map(d=>d[Q])}a(I),g(n)}_renderLayers(){const{onHover:A}=this,{viewStates:t}=this.state,{views:i,layerProps:n}=this.props;return i.map((r,o)=>r.getLayers({viewStates:t,props:{...n[o],onHover:A}}))}render(){const{views:A,randomize:t,useDevicePixels:i=!0,deckProps:n}=this.props,{viewStates:r}=this.state,o=A.map(s=>s.getDeckGlView());if(t){const s=Math.random(),a=o[0],g=s*1.49,I=Math.round(g*(A.length-1));o[0]=o[I],o[I]=a}return H(laA,{...n!=null?n:{},layerFilter:this.layerFilter,layers:(n==null?void 0:n.layers)===void 0?[...this._renderLayers()]:[...this._renderLayers(),...n.layers],onViewStateChange:this._onViewStateChange,views:o,viewState:r,useDevicePixels:i,getCursor:({isDragging:s})=>s?"grabbing":"crosshair"})}}const gm=e=>H(yaA,{...e}),maA=e=>{const{loader:A,contrastLimits:t,colors:i,channelsVisible:n,viewStates:r,colormap:o,overview:s,overviewOn:a,selections:g,hoverHooks:I={handleValue:()=>{},handleCoordinate:()=>{}},height:l,width:c,lensEnabled:C=!1,lensSelection:B=0,lensRadius:u=100,lensBorderColor:E=[255,255,255],lensBorderRadius:h=.02,clickCenter:f=!0,transparentColor:Q,snapScaleBar:d=!1,onViewStateChange:w,onHover:m,onViewportLoad:v,extensions:x=[new Xa],deckProps:D}=e,F=r==null?void 0:r.find(Z=>Z.id===bf),N=p.exports.useMemo(()=>F||yu(A,{height:l,width:c},.5),[A,F]),M=new BaA({id:bf,height:l,width:c,snapScaleBar:d}),U={loader:A,contrastLimits:t,colors:i,channelsVisible:n,selections:g,onViewportLoad:v,colormap:o,lensEnabled:C,lensSelection:B,lensRadius:u,lensBorderColor:E,lensBorderRadius:h,extensions:x,transparentColor:Q},P=[M],W=[U],J=[{...N,id:bf}];if(a&&A){const Z=(r==null?void 0:r.find(O=>O.id===XC))||{...N,id:XC},z=new CaA({id:XC,loader:A,detailHeight:l,detailWidth:c,clickCenter:f,...s});P.push(z),W.push({...U,lensEnabled:!1}),J.push(Z)}return A?H(gm,{layerProps:W,views:P,viewStates:J,hoverHooks:I,onViewStateChange:w,onHover:m,deckProps:D}):null},waA=e=>{const{loader:A,contrastLimits:t,colors:i,channelsVisible:n,viewStates:r,colormap:o,panLock:s,selections:a,zoomLock:g,height:I,width:l,lensEnabled:c=!1,lensSelection:C=0,lensRadius:B=100,lensBorderColor:u=[255,255,255],lensBorderRadius:E=.02,transparentColor:h,snapScaleBar:f=!1,onViewStateChange:Q,onHover:d,onViewportLoad:w,extensions:m=[new Xa],deckProps:v}=e,x=r==null?void 0:r.find(J=>J.id==="left"),D=r==null?void 0:r.find(J=>J.id==="right"),F=p.exports.useMemo(()=>{if(x&&D)return r;const J=yu(A,{height:I,width:l/2},.5);return[x||{...J,id:"left"},D||{...J,id:"right"}]},[A,x,D]),N=new tx({id:"left",linkedIds:["right"],panLock:s,zoomLock:g,height:I,width:l/2,snapScaleBar:f}),M=new tx({id:"right",x:l/2,linkedIds:["left"],panLock:s,zoomLock:g,height:I,width:l/2,snapScaleBar:f}),U={loader:A,contrastLimits:t,colors:i,channelsVisible:n,selections:a,onViewportLoad:w,colormap:o,lensEnabled:c,lensSelection:C,lensRadius:B,lensBorderColor:u,lensBorderRadius:E,extensions:m,transparentColor:h};return A?H(gm,{layerProps:[U,U],views:[M,N],randomize:!0,onViewStateChange:Q,onHover:d,viewStates:F,deckProps:v}):null},vaA=e=>{const{loader:A,contrastLimits:t,colors:i,channelsVisible:n,selections:r,colormap:o,resolution:s=Math.max(0,A.length-1),modelMatrix:a,onViewStateChange:g,xSlice:I=null,ySlice:l=null,zSlice:c=null,onViewportLoad:C,height:B,width:u,viewStates:E,clippingPlanes:h=[],useFixedAxis:f=!0,extensions:Q=[new fu.AdditiveBlendExtension]}=e,d=E==null?void 0:E.find(N=>(N==null?void 0:N.id)==="3d"),w=p.exports.useMemo(()=>d||{...yu(A,{height:B,width:u},1,!0,a),rotationX:0,rotationOrbit:0},[A,s,a]),m=[d||{...w,id:"3d"}],v=new EaA({id:"3d",target:m[0].target,useFixedAxis:f});return A?H(gm,{layerProps:[{loader:A,contrastLimits:t,colors:i,channelsVisible:n,selections:r,colormap:o,xSlice:I,ySlice:l,zSlice:c,resolution:s,extensions:Q,modelMatrix:a,onViewportLoad:()=>setTimeout(C,0),clippingPlanes:h}],views:[v],viewStates:m,onViewStateChange:g,useDevicePixels:!1}):null},SaA=e=>e.charAt(0).toUpperCase()+e.slice(1),Im=(e,A)=>{const t={};return Object.entries(e).forEach(([i,n])=>{typeof n=="boolean"&&(t[`toggle${SaA(i)}`]=()=>A(r=>({...r,[i]:!r[i]})))}),t},DaA={channelsVisible:[],contrastLimits:[],colors:[],domains:[],selections:[],ids:[],loader:[{labels:[],shape:[]}],image:0},Gf={channelsVisible:!0,contrastLimits:[0,65535],colors:[255,255,255],domains:[0,65535],selections:{z:0,c:0,t:0},ids:""},yi=xp(e=>({...DaA,...Im(Gf,e),toggleIsOn:A=>e(t=>{const i=[...t.channelsVisible];return i[A]=!i[A],{...t,channelsVisible:i}}),setPropertiesForChannel:(A,t)=>e(i=>{const n=Object.entries(t),r={};return n.forEach(([o,s])=>{r[o]=[...i[o]],r[o][A]=s}),{...i,...r}}),removeChannel:A=>e(t=>{const i={},n=Object.keys(Gf);return Object.keys(t).forEach(r=>{n.includes(r)&&(i[r]=t[r].filter((o,s)=>s!==A))}),{...t,...i}}),addChannel:A=>e(t=>{const i=Object.entries(A),n={...t};return i.forEach(([r,o])=>{n[r]=[...t[r],o]}),Object.entries(Gf).forEach(([r,o])=>{n[r].length{}},he=xp(e=>({...nx,...Im(nx,e)})),rx={isChannelLoading:[],isViewerLoading:!0,pixelValues:[],isOffsetsSnackbarOn:!1,loaderErrorSnackbar:{on:!1,message:null},isNoImageUrlSnackbarOn:!1,isVolumeRenderingWarningOn:!1,useLinkedView:!1,isControllerOn:!0,use3d:!1,useLens:!1,useColormap:!1,globalSelection:{z:0,t:0},channelOptions:[],metadata:null,viewState:null,source:"",pyramidResolution:0},_A=xp(e=>({...rx,...Im(rx,e),setIsChannelLoading:(A,t)=>e(i=>{const n=[...i.isChannelLoading];return n[A]=t,{...i,isChannelLoading:n}}),addIsChannelLoading:A=>e(t=>{const i=[...t.isChannelLoading,A];return{...t,isChannelLoading:i}}),removeIsChannelLoading:A=>e(t=>{const i=[...t.isChannelLoading];return i.splice(A,1),{...t,isChannelLoading:i}})})),hn=()=>{const[e,A]=yi(t=>[t.loader,t.image]);return Array.isArray(e[0])?e[A]:e},lm=()=>{const e=yi(t=>t.image),A=_A(t=>t.metadata);return Array.isArray(A)?A[e]:A};function Ag(e,A,t,i){function n(r){return r instanceof t?r:new t(function(o){o(r)})}return new(t||(t=Promise))(function(r,o){function s(I){try{g(i.next(I))}catch(l){o(l)}}function a(I){try{g(i.throw(I))}catch(l){o(l)}}function g(I){I.done?r(I.value):n(I.value).then(s,a)}g((i=i.apply(e,A||[])).next())})}function eg(e,A){var t={label:0,sent:function(){if(r[0]&1)throw r[1];return r[1]},trys:[],ops:[]},i,n,r,o;return o={next:s(0),throw:s(1),return:s(2)},typeof Symbol=="function"&&(o[Symbol.iterator]=function(){return this}),o;function s(g){return function(I){return a([g,I])}}function a(g){if(i)throw new TypeError("Generator is already executing.");for(;t;)try{if(i=1,n&&(r=g[0]&2?n.return:g[0]?n.throw||((r=n.return)&&r.call(n),0):n.next)&&!(r=r.call(n,g[1])).done)return r;switch(n=0,r&&(g=[g[0]&2,r.value]),g[0]){case 0:case 1:r=g;break;case 4:return t.label++,{value:g[1],done:!1};case 5:t.label++,n=g[1],g=[0];continue;case 7:g=t.ops.pop(),t.trys.pop();continue;default:if(r=t.trys,!(r=r.length>0&&r[r.length-1])&&(g[0]===6||g[0]===2)){t=0;continue}if(g[0]===3&&(!r||g[1]>r[0]&&g[1]0)&&!(n=i.next()).done;)r.push(n.value)}catch(s){o={error:s}}finally{try{n&&!n.done&&(t=i.return)&&t.call(i)}finally{if(o)throw o.error}}return r}function xaA(){for(var e=[],A=0;A0?i:e.name,writable:!1,configurable:!1,enumerable:!0})}return t}function NaA(e){var A=e.name,t=A&&A.lastIndexOf(".")!==-1;if(t&&!e.type){var i=A.split(".").pop().toLowerCase(),n=FaA.get(i);n&&Object.defineProperty(e,"type",{value:n,writable:!1,configurable:!1,enumerable:!0})}return e}var LaA=[".DS_Store","Thumbs.db"];function baA(e){return Ag(this,void 0,void 0,function(){return eg(this,function(A){return oE(e)&&GaA(e)?[2,TaA(e.dataTransfer,e.type)]:_aA(e)?[2,MaA(e)]:Array.isArray(e)&&e.every(function(t){return"getFile"in t&&typeof t.getFile=="function"})?[2,kaA(e)]:[2,[]]})})}function GaA(e){return oE(e.dataTransfer)}function _aA(e){return oE(e)&&oE(e.target)}function oE(e){return typeof e=="object"&&e!==null}function MaA(e){return Xd(e.target.files).map(function(A){return ec(A)})}function kaA(e){return Ag(this,void 0,void 0,function(){var A;return eg(this,function(t){switch(t.label){case 0:return[4,Promise.all(e.map(function(i){return i.getFile()}))];case 1:return A=t.sent(),[2,A.map(function(i){return ec(i)})]}})})}function TaA(e,A){return Ag(this,void 0,void 0,function(){var t,i;return eg(this,function(n){switch(n.label){case 0:return e===null?[2,[]]:e.items?(t=Xd(e.items).filter(function(r){return r.kind==="file"}),A!=="drop"?[2,t]:[4,Promise.all(t.map(UaA))]):[3,2];case 1:return i=n.sent(),[2,ox(EM(i))];case 2:return[2,ox(Xd(e.files).map(function(r){return ec(r)}))]}})})}function ox(e){return e.filter(function(A){return LaA.indexOf(A.name)===-1})}function Xd(e){if(e===null)return[];for(var A=[],t=0;te.length)&&(A=e.length);for(var t=0,i=new Array(A);tt)return[!1,cx(t)];if(e.sizet)return[!1,cx(t)]}return[!0,null]}function bg(e){return e!=null}function $aA(e){var A=e.files,t=e.accept,i=e.minSize,n=e.maxSize,r=e.multiple,o=e.maxFiles;return!r&&A.length>1||r&&o>=1&&A.length>o?!1:A.every(function(s){var a=fM(s,t),g=Ix(a,1),I=g[0],l=QM(s,i,n),c=Ix(l,1),C=c[0];return I&&C})}function sE(e){return typeof e.isPropagationStopped=="function"?e.isPropagationStopped():typeof e.cancelBubble!="undefined"?e.cancelBubble:!1}function lC(e){return e.dataTransfer?Array.prototype.some.call(e.dataTransfer.types,function(A){return A==="Files"||A==="application/x-moz-file"}):!!e.target&&!!e.target.files}function Bx(e){e.preventDefault()}function AgA(e){return e.indexOf("MSIE")!==-1||e.indexOf("Trident/")!==-1}function egA(e){return e.indexOf("Edge/")!==-1}function tgA(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:window.navigator.userAgent;return AgA(e)||egA(e)}function Xi(){for(var e=arguments.length,A=new Array(e),t=0;t1?n-1:0),o=1;oe.length)&&(A=e.length);for(var t=0,i=new Array(A);t=0)&&(!Object.prototype.propertyIsEnumerable.call(e,i)||(t[i]=e[i]))}return t}function EgA(e,A){if(e==null)return{};var t={},i=Object.keys(e),n,r;for(r=0;r=0)&&(t[n]=e[n]);return t}var cm=p.exports.forwardRef(function(e,A){var t=e.children,i=aE(e,ngA),n=yM(i),r=n.open,o=aE(n,rgA);return p.exports.useImperativeHandle(A,function(){return{open:r}},[r]),H(Pi,{children:t(Je(Je({},o),{},{open:r}))})});cm.displayName="Dropzone";var pM={disabled:!1,getFilesFromEvent:baA,maxSize:1/0,minSize:0,multiple:!0,maxFiles:0,preventDropOnDocument:!0,noClick:!1,noKeyboard:!1,noDrag:!1,noDragEventsBubbling:!1,validator:null,useFsAccessApi:!1};cm.defaultProps=pM;cm.propTypes={children:me.func,accept:me.oneOfType([me.string,me.arrayOf(me.string)]),multiple:me.bool,preventDropOnDocument:me.bool,noClick:me.bool,noKeyboard:me.bool,noDrag:me.bool,noDragEventsBubbling:me.bool,minSize:me.number,maxSize:me.number,maxFiles:me.number,disabled:me.bool,getFilesFromEvent:me.func,onFileDialogCancel:me.func,onFileDialogOpen:me.func,useFsAccessApi:me.bool,onDragEnter:me.func,onDragLeave:me.func,onDragOver:me.func,onDrop:me.func,onDropAccepted:me.func,onDropRejected:me.func,validator:me.func};var A0={isFocused:!1,isFileDialogActive:!1,isDragActive:!1,isDragAccept:!1,isDragReject:!1,draggedFiles:[],acceptedFiles:[],fileRejections:[]};function yM(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},A=Je(Je({},pM),e),t=A.accept,i=A.disabled,n=A.getFilesFromEvent,r=A.maxSize,o=A.minSize,s=A.multiple,a=A.maxFiles,g=A.onDragEnter,I=A.onDragLeave,l=A.onDragOver,c=A.onDrop,C=A.onDropAccepted,B=A.onDropRejected,u=A.onFileDialogCancel,E=A.onFileDialogOpen,h=A.useFsAccessApi,f=A.preventDropOnDocument,Q=A.noClick,d=A.noKeyboard,w=A.noDrag,m=A.noDragEventsBubbling,v=A.validator,x=p.exports.useMemo(function(){return typeof E=="function"?E:hx},[E]),D=p.exports.useMemo(function(){return typeof u=="function"?u:hx},[u]),F=p.exports.useRef(null),N=p.exports.useRef(null),M=p.exports.useReducer(ugA,A0),U=_f(M,2),P=U[0],W=U[1],J=P.isFocused,Z=P.isFileDialogActive,z=P.draggedFiles,O=function(){Z&&setTimeout(function(){if(N.current){var aA=N.current.files;aA.length||(W({type:"closeDialog"}),D())}},300)};p.exports.useEffect(function(){return h&&Ex()?function(){}:(window.addEventListener("focus",O,!1),function(){window.removeEventListener("focus",O,!1)})},[N,Z,D,h]);var Y=p.exports.useRef([]),k=function(aA){F.current&&F.current.contains(aA.target)||(aA.preventDefault(),Y.current=[])};p.exports.useEffect(function(){return f&&(document.addEventListener("dragover",Bx,!1),document.addEventListener("drop",k,!1)),function(){f&&(document.removeEventListener("dragover",Bx),document.removeEventListener("drop",k))}},[F,f]);var q=p.exports.useCallback(function(eA){eA.preventDefault(),eA.persist(),UA(eA),Y.current=[].concat(agA(Y.current),[eA.target]),lC(eA)&&Promise.resolve(n(eA)).then(function(aA){sE(eA)&&!m||(W({draggedFiles:aA,isDragActive:!0,type:"setDraggedFiles"}),g&&g(eA))})},[n,g,m]),j=p.exports.useCallback(function(eA){eA.preventDefault(),eA.persist(),UA(eA);var aA=lC(eA);if(aA&&eA.dataTransfer)try{eA.dataTransfer.dropEffect="copy"}catch{}return aA&&l&&l(eA),!1},[l,m]),AA=p.exports.useCallback(function(eA){eA.preventDefault(),eA.persist(),UA(eA);var aA=Y.current.filter(function(re){return F.current&&F.current.contains(re)}),FA=aA.indexOf(eA.target);FA!==-1&&aA.splice(FA,1),Y.current=aA,!(aA.length>0)&&(W({isDragActive:!1,type:"setDraggedFiles",draggedFiles:[]}),lC(eA)&&I&&I(eA))},[F,I,m]),iA=p.exports.useCallback(function(eA,aA){var FA=[],re=[];eA.forEach(function(VA){var _e=fM(VA,t),WA=_f(_e,2),qA=WA[0],xe=WA[1],se=QM(VA,o,r),JA=_f(se,2),xA=JA[0],Be=JA[1],ue=v?v(VA):null;if(qA&&xA&&!ue)FA.push(VA);else{var PA=[xe,Be];ue&&(PA=PA.concat(ue)),re.push({file:VA,errors:PA.filter(function(rA){return rA})})}}),(!s&&FA.length>1||s&&a>=1&&FA.length>a)&&(FA.forEach(function(VA){re.push({file:VA,errors:[ZaA]})}),FA.splice(0)),W({acceptedFiles:FA,fileRejections:re,type:"setFiles"}),c&&c(FA,re,aA),re.length>0&&B&&B(re,aA),FA.length>0&&C&&C(FA,aA)},[W,s,t,o,r,a,c,C,B,v]),gA=p.exports.useCallback(function(eA){eA.preventDefault(),eA.persist(),UA(eA),Y.current=[],lC(eA)&&Promise.resolve(n(eA)).then(function(aA){sE(eA)&&!m||iA(aA,eA)}),W({type:"reset"})},[n,iA,m]),sA=p.exports.useCallback(function(){if(h&&Ex()){W({type:"openDialog"}),x();var eA={multiple:s,types:igA(t)};window.showOpenFilePicker(eA).then(function(aA){return n(aA)}).then(function(aA){return iA(aA,null)}).catch(function(aA){return D(aA)}).finally(function(){return W({type:"closeDialog"})});return}N.current&&(W({type:"openDialog"}),x(),N.current.value=null,N.current.click())},[W,x,D,h,iA,t,s]),BA=p.exports.useCallback(function(eA){!F.current||!F.current.isEqualNode(eA.target)||(eA.keyCode===32||eA.keyCode===13)&&(eA.preventDefault(),sA())},[F,N,sA]),IA=p.exports.useCallback(function(){W({type:"focus"})},[]),bA=p.exports.useCallback(function(){W({type:"blur"})},[]),EA=p.exports.useCallback(function(){Q||(tgA()?setTimeout(sA,0):sA())},[N,Q,sA]),QA=function(aA){return i?null:aA},TA=function(aA){return d?null:QA(aA)},RA=function(aA){return w?null:QA(aA)},UA=function(aA){m&&aA.stopPropagation()},fA=p.exports.useMemo(function(){return function(){var eA=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},aA=eA.refKey,FA=aA===void 0?"ref":aA,re=eA.role,VA=eA.onKeyDown,_e=eA.onFocus,WA=eA.onBlur,qA=eA.onClick,xe=eA.onDragEnter,se=eA.onDragOver,JA=eA.onDragLeave,xA=eA.onDrop,Be=aE(eA,ogA);return Je(Je($d({onKeyDown:TA(Xi(VA,BA)),onFocus:TA(Xi(_e,IA)),onBlur:TA(Xi(WA,bA)),onClick:QA(Xi(qA,EA)),onDragEnter:RA(Xi(xe,q)),onDragOver:RA(Xi(se,j)),onDragLeave:RA(Xi(JA,AA)),onDrop:RA(Xi(xA,gA)),role:typeof re=="string"&&re!==""?re:"button"},FA,F),!i&&!d?{tabIndex:0}:{}),Be)}},[F,BA,IA,bA,EA,q,j,AA,gA,d,w,i]),NA=p.exports.useCallback(function(eA){eA.stopPropagation()},[]),ZA=p.exports.useMemo(function(){return function(){var eA=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},aA=eA.refKey,FA=aA===void 0?"ref":aA,re=eA.onChange,VA=eA.onClick,_e=aE(eA,sgA),WA=$d({accept:t,multiple:s,type:"file",style:{display:"none"},onChange:QA(Xi(re,gA)),onClick:QA(Xi(VA,NA)),autoComplete:"off",tabIndex:-1},FA,N);return Je(Je({},WA),_e)}},[N,t,s,gA,i]),ne=z.length,Ie=ne>0&&$aA({files:z,accept:t,minSize:o,maxSize:r,multiple:s,maxFiles:a}),KA=ne>0&&!Ie;return Je(Je({},P),{},{isDragAccept:Ie,isDragReject:KA,isFocused:J&&!i,getRootProps:fA,getInputProps:ZA,rootRef:F,inputRef:N,open:QA(sA)})}function ugA(e,A){switch(A.type){case"focus":return Je(Je({},e),{},{isFocused:!0});case"blur":return Je(Je({},e),{},{isFocused:!1});case"openDialog":return Je(Je({},A0),{},{isFileDialogActive:!0});case"closeDialog":return Je(Je({},e),{},{isFileDialogActive:!1});case"setDraggedFiles":var t=A.isDragActive,i=A.draggedFiles;return Je(Je({},e),{},{draggedFiles:i,isDragActive:t});case"setFiles":return Je(Je({},e),{},{acceptedFiles:A.acceptedFiles,fileRejections:A.fileRejections});case"reset":return Je({},A0);default:return e}}function hx(){}function Ue(e,A){if(Object.is(e,A))return!0;if(typeof e!="object"||e===null||typeof A!="object"||A===null)return!1;const t=Object.keys(e);if(t.length!==Object.keys(A).length)return!1;for(let i=0;iA.name):e instanceof File?[e.name]:e.split(",")}function mgA(e){const A=ygA(e);for(const t of A){const i=t.toLowerCase();if(!(i.includes(".tiff")||i.includes(".tif")))return!1}return!0}async function wgA(e){return Array.isArray(e)?e:e instanceof File?[e]:e.split(",")}async function vgA(e){return(await(typeof e=="string"?gu:Iu)(e)).getImageCount()}async function SgA(e){const A=await wgA(e),t=[];let i=0;for(const n of A){const r=[],o=await vgA(n);for(let s=0;s{const{Pixels:{SizeC:u,SizeT:E,SizeZ:h}}=B;return u*E*h+C},1);const s=t[0].length,{Pixels:{SizeC:a,SizeT:g,SizeZ:I}}=A[0];return a*g*I*s}async function RgA(e,A,t){try{if(pgA(e)){if(e instanceof File)return await VR(e,{images:"all",pool:!1});const r=await fetch(e.replace(/ome\.tif(f?)/gi,"offsets.json")),o=r.status!==200,s=o?void 0:await r.json(),a=await VR(e,{offsets:s,images:"all",pool:!1}),g=await DgA(e,a.map(I=>I.metadata),a.map(I=>I.data));return o&&g>dgA&&A(!0),a}if(Array.isArray(e)&&typeof e[0].arrayBuffer!="function")throw new fx("Cannot upload a local Zarr or flat TIFF files with this browser. Try using Chrome, Firefox, or Microsoft Edge.");if(mgA(e)){const n=await SgA(e);return await zeA(n,{images:"all",pool:!1})}let i;try{i=await ioA(e)}catch{const n=await noA(e,{type:"multiscales"}),r={Pixels:{Channels:n.metadata.omero.channels.map(o=>({Name:o.label,SamplesPerPixel:1}))}};i={data:n.data,metadata:r}}return i}catch(i){return i instanceof fx?t(i.message):(console.error(i),t(null)),{data:null}}}function mM(e){return e.split("?")[0].split("/").slice(-1)[0]}function xgA({labels:e,shape:A}){const t=e.map((n,r)=>[n,r]).filter(n=>Bm.includes(n[0])),i={};return t.forEach(([n,r])=>{i[n]=Math.floor((A[r]||0)/2)}),i}function wM(e){const A=e[e.length-1];return A===3||A===4}function FgA(e){let A=[];const t=xgA(e),i=e.labels.map((n,r)=>({name:n,size:e.shape[r]})).find(n=>!Bm.includes(n.name)&&n.size);for(let n=0;n{const r=()=>{n(t())};return window.addEventListener("resize",r),()=>{window.removeEventListener("resize",r)}}),i}async function NgA({loader:e,selection:A}){const i=await(Array.isArray(e)?e[e.length-1]:e).getRaster({selection:A}),n=OC(i.data),{domain:r,contrastLimits:o}=n;return{domain:r,contrastLimits:o}}async function LgA({loader:e,selection:A}){const t=e[e.length-1],{shape:i,labels:n}=t,r=i[n.indexOf("z")]>>e.length-1,o=await t.getRaster({selection:{...A,z:0}}),s=await t.getRaster({selection:{...A,z:Math.floor(r/2)}}),a=await t.getRaster({selection:{...A,z:Math.max(0,r-1)}}),g=OC(o.data),I=OC(s.data),l=OC(a.data);return{domain:[Math.min(g.domain[0],I.domain[0],l.domain[0]),Math.max(g.domain[1],I.domain[1],l.domain[1])],contrastLimits:[Math.min(g.contrastLimits[0],I.contrastLimits[0],l.contrastLimits[0]),Math.max(g.contrastLimits[1],I.contrastLimits[1],l.contrastLimits[1])]}}const um=async({loader:e,selection:A,use3d:t})=>(t?LgA:NgA)({loader:e,selection:A}),gE=async({loader:e,selections:A,use3d:t})=>{const i=await Promise.all(A.map(o=>um({loader:e,selection:o,use3d:t}))),n=i.map(o=>o.domain),r=i.map(o=>o.contrastLimits);return{domains:n,contrastLimits:r}};function bgA(){let e=!1;return function(A){(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(A)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(A.substr(0,4)))&&(e=!0)}(navigator.userAgent||navigator.vendor||window.opera),e}function vM({Pixels:e}){const A=e.Channels.length,{SamplesPerPixel:t}=e.Channels[0],i=A===3&&e.Type==="uint8",n=e.SizeC===3&&A===1&&e.Interleaved;return t===3||i||n}function hm(e,A){if(!e&&e!==0)return"";const t=e.toString();return t.length>A?t.substring(0,A).replace(/\.$/,""):t}function GgA(e){var n,r;const{x:A,y:t,z:i}=(r=(n=e==null?void 0:e.meta)==null?void 0:n.physicalSizes)!=null?r:{};if((A==null?void 0:A.size)&&(t==null?void 0:t.size)&&(i==null?void 0:i.size)){const o=Math.min(i.size,A.size,t.size),s=[A.size/o,t.size/o,i.size/o];return new fe().scale(s)}return new fe().identity()}function fm(e){const A=Array.isArray(e)?e[0]:e,{shape:t,labels:i}=A,n=GgA(A),r=[0,n[0]*t[i.indexOf("x")]],o=[0,n[5]*t[i.indexOf("y")]],s=[0,n[10]*t[i.indexOf("z")]];return[r,o,s]}function _gA(e,A){const t=e?xsA:fu;if(A===Ia.MAX_INTENSITY_PROJECTION)return new t.MaximumIntensityProjectionExtension;if(A===Ia.MIN_INTENSITY_PROJECTION)return new t.MinimumIntensityProjectionExtension;if(A===Ia.ADDITIVE)return new t.AdditiveBlendExtension;throw new Error(`${A} rendering mode not supported`)}const MgA=(e,A)=>{const[t,i,n]=_A(g=>[g.use3d,g.toggleUse3d,g.toggleIsOffsetsSnackbarOn],Ue),[r,o]=he(g=>[g.lensEnabled,g.toggleLensEnabled],Ue),s=hn(),a=lm();p.exports.useEffect(()=>{async function g(){_A.setState({isChannelLoading:[!0]}),_A.setState({isViewerLoading:!0}),t&&i();const{urlOrFile:I}=e,l=await RgA(I,n,B=>_A.setState({loaderErrorSnackbar:{on:!0,message:B}}));let c,C;Array.isArray(l)?l.length>1?(c=l.map(B=>B.metadata),C=l.map(B=>B.data)):(c=l[0].metadata,C=l[0].data):(c=l.metadata,C=l.data),C&&(console.info("Metadata (in JSON-like form) for current file being viewed: ",c),bt.exports.unstable_batchedUpdates(()=>{yi.setState({loader:C}),_A.setState({metadata:c})}),t&&i(),A==null||A.push(typeof I=="string"?`?image_url=${I}`:""))}e&&g()},[e,A]),p.exports.useEffect(()=>{a&&(async()=>{_A.setState({isChannelLoading:[!0]}),_A.setState({isViewerLoading:!0}),t&&i();const I=FgA(s[0]),{Channels:l}=a.Pixels,c=l.map((d,w)=>{var m;return(m=d.Name)!=null?m:`Channel ${w}`});let C=[],B=[],u=[];if(vM(a))wM(s[0].shape)?(C=[[0,255]],B=[[0,255]],u=[[255,0,0]]):(C=[[0,255],[0,255],[0,255]],B=[[0,255],[0,255],[0,255]],u=[[255,0,0],[0,255,0],[0,0,255]]),r&&o(),_A.setState({useColormap:!1,useLens:!1});else{const d=await gE({loader:s,selections:I,use3d:!1});B=d.domains,C=d.contrastLimits,u=B.length===1?[[255,255,255]]:B.map((w,m)=>{var v;return(v=l[m].Color&&l[m].Color.slice(0,-1))!=null?v:Cm[m]}),_A.setState({useLens:c.length!==1,useColormap:!0})}yi.setState({ids:B.map(()=>String(Math.random())),selections:I,domains:B,contrastLimits:C,colors:u,channelsVisible:u.map(()=>!0)}),_A.setState({isChannelLoading:I.map(d=>!d),isViewerLoading:!1,pixelValues:new Array(I.length).fill(e0),globalSelection:I[0],channelOptions:c});const[h,f,Q]=fm(s);he.setState({xSlice:h,ySlice:f,zSlice:Q})})()},[s,a])},SM=()=>yM({onDrop:A=>{let t;A.length===1?t={urlOrFile:A[0],description:A[0].name}:t={urlOrFile:A,description:"data.zarr"},_A.setState({source:t})}});function pt(e){return e&&e.ownerDocument||document}function jo(e,A){typeof e=="function"?e(A):e&&(e.current=A)}function ze(e,A){return p.exports.useMemo(function(){return e==null&&A==null?null:function(t){jo(e,t),jo(A,t)}},[e,A])}var kgA=typeof window!="undefined"?p.exports.useLayoutEffect:p.exports.useEffect;function Oe(e){var A=p.exports.useRef(e);return kgA(function(){A.current=e}),p.exports.useCallback(function(){return A.current.apply(void 0,arguments)},[])}function Qx(e){return e.substring(2).toLowerCase()}function TgA(e){return document.documentElement.clientWidth-1;else{var w=pt(I.current);d=!w.documentElement.contains(f.target)||I.current.contains(f.target)}!d&&(i||!Q)&&o(f)}}),E=function(Q){return function(d){c.current=!0;var w=A.props[Q];w&&w(d)}},h={ref:B};return a!==!1&&(h[a]=E(a)),p.exports.useEffect(function(){if(a!==!1){var f=Qx(a),Q=pt(I.current),d=function(){g.current=!0};return Q.addEventListener(f,u),Q.addEventListener("touchmove",d),function(){Q.removeEventListener(f,u),Q.removeEventListener("touchmove",d)}}},[u,a]),r!==!1&&(h[r]=E(r)),p.exports.useEffect(function(){if(r!==!1){var f=Qx(r),Q=pt(I.current);return Q.addEventListener(f,u),function(){Q.removeEventListener(f,u)}}},[u,r]),p.exports.createElement(p.exports.Fragment,null,p.exports.cloneElement(A,h))}function Qe(e){if(typeof e!="string")throw new Error(ua(7));return e.charAt(0).toUpperCase()+e.slice(1)}function jr(){for(var e=arguments.length,A=new Array(e),t=0;t1&&arguments[1]!==void 0?arguments[1]:166,t;function i(){for(var n=arguments.length,r=new Array(n),o=0;o0&&arguments[0]!==void 0?arguments[0]:{},m=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},v=arguments.length>2?arguments[2]:void 0,x=m.pulsate,D=x===void 0?!1:x,F=m.center,N=F===void 0?n||m.pulsate:F,M=m.fakeElement,U=M===void 0?!1:M;if(w.type==="mousedown"&&C.current){C.current=!1;return}w.type==="touchstart"&&(C.current=!0);var P=U?null:E.current,W=P?P.getBoundingClientRect():{width:0,height:0,left:0,top:0},J,Z,z;if(N||w.clientX===0&&w.clientY===0||!w.clientX&&!w.touches)J=Math.round(W.width/2),Z=Math.round(W.height/2);else{var O=w.touches?w.touches[0]:w,Y=O.clientX,k=O.clientY;J=Math.round(Y-W.left),Z=Math.round(k-W.top)}if(N)z=Math.sqrt((2*Math.pow(W.width,2)+Math.pow(W.height,2))/3),z%2===0&&(z+=1);else{var q=Math.max(Math.abs((P?P.clientWidth:0)-J),J)*2+2,j=Math.max(Math.abs((P?P.clientHeight:0)-Z),Z)*2+2;z=Math.sqrt(Math.pow(q,2)+Math.pow(j,2))}w.touches?u.current===null&&(u.current=function(){h({pulsate:D,rippleX:J,rippleY:Z,rippleSize:z,cb:v})},B.current=setTimeout(function(){u.current&&(u.current(),u.current=null)},yIA)):h({pulsate:D,rippleX:J,rippleY:Z,rippleSize:z,cb:v})},[n,h]),Q=p.exports.useCallback(function(){f({},{pulsate:!0})},[f]),d=p.exports.useCallback(function(w,m){if(clearTimeout(B.current),w.type==="touchend"&&u.current){w.persist(),u.current(),u.current=null,B.current=setTimeout(function(){d(w,m)});return}u.current=null,I(function(v){return v.length>0?v.slice(1):v}),c.current=m},[]);return p.exports.useImperativeHandle(t,function(){return{pulsate:Q,start:f,stop:d}},[Q,f,d]),p.exports.createElement("span",_({className:yA(r.root,o),ref:E},s),p.exports.createElement(VgA,{component:null,exit:!0},g))}),vIA=ee(mIA,{flip:!1,name:"MuiTouchRipple"})(p.exports.memo(wIA)),SIA={root:{display:"inline-flex",alignItems:"center",justifyContent:"center",position:"relative",WebkitTapHighlightColor:"transparent",backgroundColor:"transparent",outline:0,border:0,margin:0,borderRadius:0,padding:0,cursor:"pointer",userSelect:"none",verticalAlign:"middle","-moz-appearance":"none","-webkit-appearance":"none",textDecoration:"none",color:"inherit","&::-moz-focus-inner":{borderStyle:"none"},"&$disabled":{pointerEvents:"none",cursor:"default"},"@media print":{colorAdjust:"exact"}},disabled:{},focusVisible:{}},DIA=p.exports.forwardRef(function(A,t){var i=A.action,n=A.buttonRef,r=A.centerRipple,o=r===void 0?!1:r,s=A.children,a=A.classes,g=A.className,I=A.component,l=I===void 0?"button":I,c=A.disabled,C=c===void 0?!1:c,B=A.disableRipple,u=B===void 0?!1:B,E=A.disableTouchRipple,h=E===void 0?!1:E,f=A.focusRipple,Q=f===void 0?!1:f,d=A.focusVisibleClassName,w=A.onBlur,m=A.onClick,v=A.onFocus,x=A.onFocusVisible,D=A.onKeyDown,F=A.onKeyUp,N=A.onMouseDown,M=A.onMouseLeave,U=A.onMouseUp,P=A.onTouchEnd,W=A.onTouchMove,J=A.onTouchStart,Z=A.onDragLeave,z=A.tabIndex,O=z===void 0?0:z,Y=A.TouchRippleProps,k=A.type,q=k===void 0?"button":k,j=SA(A,["action","buttonRef","centerRipple","children","classes","className","component","disabled","disableRipple","disableTouchRipple","focusRipple","focusVisibleClassName","onBlur","onClick","onFocus","onFocusVisible","onKeyDown","onKeyUp","onMouseDown","onMouseLeave","onMouseUp","onTouchEnd","onTouchMove","onTouchStart","onDragLeave","tabIndex","TouchRippleProps","type"]),AA=p.exports.useRef(null);function iA(){return bt.exports.findDOMNode(AA.current)}var gA=p.exports.useRef(null),sA=p.exports.useState(!1),BA=sA[0],IA=sA[1];C&&BA&&IA(!1);var bA=Ru(),EA=bA.isFocusVisible,QA=bA.onBlurVisible,TA=bA.ref;p.exports.useImperativeHandle(i,function(){return{focusVisible:function(){IA(!0),AA.current.focus()}}},[]),p.exports.useEffect(function(){BA&&Q&&!u&&gA.current.pulsate()},[u,Q,BA]);function RA(rA,GA){var ve=arguments.length>2&&arguments[2]!==void 0?arguments[2]:h;return Oe(function(pe){GA&&GA(pe);var Fe=ve;return!Fe&&gA.current&&gA.current[rA](pe),!0})}var UA=RA("start",N),fA=RA("stop",Z),NA=RA("stop",U),ZA=RA("stop",function(rA){BA&&rA.preventDefault(),M&&M(rA)}),ne=RA("start",J),Ie=RA("stop",P),KA=RA("stop",W),eA=RA("stop",function(rA){BA&&(QA(rA),IA(!1)),w&&w(rA)},!1),aA=Oe(function(rA){AA.current||(AA.current=rA.currentTarget),EA(rA)&&(IA(!0),x&&x(rA)),v&&v(rA)}),FA=function(){var GA=iA();return l&&l!=="button"&&!(GA.tagName==="A"&&GA.href)},re=p.exports.useRef(!1),VA=Oe(function(rA){Q&&!re.current&&BA&&gA.current&&rA.key===" "&&(re.current=!0,rA.persist(),gA.current.stop(rA,function(){gA.current.start(rA)})),rA.target===rA.currentTarget&&FA()&&rA.key===" "&&rA.preventDefault(),D&&D(rA),rA.target===rA.currentTarget&&FA()&&rA.key==="Enter"&&!C&&(rA.preventDefault(),m&&m(rA))}),_e=Oe(function(rA){Q&&rA.key===" "&&gA.current&&BA&&!rA.defaultPrevented&&(re.current=!1,rA.persist(),gA.current.stop(rA,function(){gA.current.pulsate(rA)})),F&&F(rA),m&&rA.target===rA.currentTarget&&FA()&&rA.key===" "&&!rA.defaultPrevented&&m(rA)}),WA=l;WA==="button"&&j.href&&(WA="a");var qA={};WA==="button"?(qA.type=q,qA.disabled=C):((WA!=="a"||!j.href)&&(qA.role="button"),qA["aria-disabled"]=C);var xe=ze(n,t),se=ze(TA,AA),JA=ze(xe,se),xA=p.exports.useState(!1),Be=xA[0],ue=xA[1];p.exports.useEffect(function(){ue(!0)},[]);var PA=Be&&!u&&!C;return p.exports.createElement(WA,_({className:yA(a.root,g,BA&&[a.focusVisible,d],C&&a.disabled),onBlur:eA,onClick:m,onFocus:aA,onKeyDown:VA,onKeyUp:_e,onMouseDown:UA,onMouseLeave:ZA,onMouseUp:NA,onDragLeave:fA,onTouchEnd:Ie,onTouchMove:KA,onTouchStart:ne,ref:JA,tabIndex:C?-1:O},qA,j),s,PA?p.exports.createElement(vIA,_({ref:gA,center:o},Y)):null)}),tc=ee(SIA,{name:"MuiButtonBase"})(DIA),RIA=function(A){return{root:{textAlign:"center",flex:"0 0 auto",fontSize:A.typography.pxToRem(24),padding:12,borderRadius:"50%",overflow:"visible",color:A.palette.action.active,transition:A.transitions.create("background-color",{duration:A.transitions.duration.shortest}),"&:hover":{backgroundColor:ut(A.palette.action.active,A.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}},"&$disabled":{backgroundColor:"transparent",color:A.palette.action.disabled}},edgeStart:{marginLeft:-12,"$sizeSmall&":{marginLeft:-3}},edgeEnd:{marginRight:-12,"$sizeSmall&":{marginRight:-3}},colorInherit:{color:"inherit"},colorPrimary:{color:A.palette.primary.main,"&:hover":{backgroundColor:ut(A.palette.primary.main,A.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}}},colorSecondary:{color:A.palette.secondary.main,"&:hover":{backgroundColor:ut(A.palette.secondary.main,A.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}}},disabled:{},sizeSmall:{padding:3,fontSize:A.typography.pxToRem(18)},label:{width:"100%",display:"flex",alignItems:"inherit",justifyContent:"inherit"}}},xIA=p.exports.forwardRef(function(A,t){var i=A.edge,n=i===void 0?!1:i,r=A.children,o=A.classes,s=A.className,a=A.color,g=a===void 0?"default":a,I=A.disabled,l=I===void 0?!1:I,c=A.disableFocusRipple,C=c===void 0?!1:c,B=A.size,u=B===void 0?"medium":B,E=SA(A,["edge","children","classes","className","color","disabled","disableFocusRipple","size"]);return p.exports.createElement(tc,_({className:yA(o.root,s,g!=="default"&&o["color".concat(Qe(g))],l&&o.disabled,u==="small"&&o["size".concat(Qe(u))],{start:o.edgeStart,end:o.edgeEnd}[n]),centerRipple:!0,focusRipple:!C,disabled:l,ref:t},E),p.exports.createElement("span",{className:o.label},r))}),Xo=ee(RIA,{name:"MuiIconButton"})(xIA),FIA=function(A){var t=A.palette.type==="light"?JI:OI,i=A.palette.type==="light"?OI:JI;return{root:_({},A.typography.body2,{borderRadius:A.shape.borderRadius,backgroundColor:"transparent",display:"flex",padding:"6px 16px"}),standardSuccess:{color:t(A.palette.success.main,.6),backgroundColor:i(A.palette.success.main,.9),"& $icon":{color:A.palette.success.main}},standardInfo:{color:t(A.palette.info.main,.6),backgroundColor:i(A.palette.info.main,.9),"& $icon":{color:A.palette.info.main}},standardWarning:{color:t(A.palette.warning.main,.6),backgroundColor:i(A.palette.warning.main,.9),"& $icon":{color:A.palette.warning.main}},standardError:{color:t(A.palette.error.main,.6),backgroundColor:i(A.palette.error.main,.9),"& $icon":{color:A.palette.error.main}},outlinedSuccess:{color:t(A.palette.success.main,.6),border:"1px solid ".concat(A.palette.success.main),"& $icon":{color:A.palette.success.main}},outlinedInfo:{color:t(A.palette.info.main,.6),border:"1px solid ".concat(A.palette.info.main),"& $icon":{color:A.palette.info.main}},outlinedWarning:{color:t(A.palette.warning.main,.6),border:"1px solid ".concat(A.palette.warning.main),"& $icon":{color:A.palette.warning.main}},outlinedError:{color:t(A.palette.error.main,.6),border:"1px solid ".concat(A.palette.error.main),"& $icon":{color:A.palette.error.main}},filledSuccess:{color:"#fff",fontWeight:A.typography.fontWeightMedium,backgroundColor:A.palette.success.main},filledInfo:{color:"#fff",fontWeight:A.typography.fontWeightMedium,backgroundColor:A.palette.info.main},filledWarning:{color:"#fff",fontWeight:A.typography.fontWeightMedium,backgroundColor:A.palette.warning.main},filledError:{color:"#fff",fontWeight:A.typography.fontWeightMedium,backgroundColor:A.palette.error.main},icon:{marginRight:12,padding:"7px 0",display:"flex",fontSize:22,opacity:.9},message:{padding:"8px 0"},action:{display:"flex",alignItems:"center",marginLeft:"auto",paddingLeft:16,marginRight:-8}}},wx={success:p.exports.createElement(EIA,{fontSize:"inherit"}),warning:p.exports.createElement(uIA,{fontSize:"inherit"}),error:p.exports.createElement(hIA,{fontSize:"inherit"}),info:p.exports.createElement(fIA,{fontSize:"inherit"})},NIA=p.exports.createElement(QIA,{fontSize:"small"}),LIA=p.exports.forwardRef(function(A,t){var i=A.action,n=A.children,r=A.classes,o=A.className,s=A.closeText,a=s===void 0?"Close":s,g=A.color,I=A.icon,l=A.iconMapping,c=l===void 0?wx:l,C=A.onClose,B=A.role,u=B===void 0?"alert":B,E=A.severity,h=E===void 0?"success":E,f=A.variant,Q=f===void 0?"standard":f,d=SA(A,["action","children","classes","className","closeText","color","icon","iconMapping","onClose","role","severity","variant"]);return p.exports.createElement(ro,_({role:u,square:!0,elevation:0,className:yA(r.root,r["".concat(Q).concat(Qe(g||h))],o),ref:t},d),I!==!1?p.exports.createElement("div",{className:r.icon},I||c[h]||wx[h]):null,p.exports.createElement("div",{className:r.message},n),i!=null?p.exports.createElement("div",{className:r.action},i):null,i==null&&C?p.exports.createElement("div",{className:r.action},p.exports.createElement(Xo,{size:"small","aria-label":a,title:a,color:"inherit",onClick:C},NIA)):null)}),CC=ee(FIA,{name:"MuiAlert"})(LIA),bIA=function(A){return{root:{margin:0},body2:A.typography.body2,body1:A.typography.body1,caption:A.typography.caption,button:A.typography.button,h1:A.typography.h1,h2:A.typography.h2,h3:A.typography.h3,h4:A.typography.h4,h5:A.typography.h5,h6:A.typography.h6,subtitle1:A.typography.subtitle1,subtitle2:A.typography.subtitle2,overline:A.typography.overline,srOnly:{position:"absolute",height:1,width:1,overflow:"hidden"},alignLeft:{textAlign:"left"},alignCenter:{textAlign:"center"},alignRight:{textAlign:"right"},alignJustify:{textAlign:"justify"},noWrap:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},gutterBottom:{marginBottom:"0.35em"},paragraph:{marginBottom:16},colorInherit:{color:"inherit"},colorPrimary:{color:A.palette.primary.main},colorSecondary:{color:A.palette.secondary.main},colorTextPrimary:{color:A.palette.text.primary},colorTextSecondary:{color:A.palette.text.secondary},colorError:{color:A.palette.error.main},displayInline:{display:"inline"},displayBlock:{display:"block"}}},vx={h1:"h1",h2:"h2",h3:"h3",h4:"h4",h5:"h5",h6:"h6",subtitle1:"h6",subtitle2:"h6",body1:"p",body2:"p"},GIA=p.exports.forwardRef(function(A,t){var i=A.align,n=i===void 0?"inherit":i,r=A.classes,o=A.className,s=A.color,a=s===void 0?"initial":s,g=A.component,I=A.display,l=I===void 0?"initial":I,c=A.gutterBottom,C=c===void 0?!1:c,B=A.noWrap,u=B===void 0?!1:B,E=A.paragraph,h=E===void 0?!1:E,f=A.variant,Q=f===void 0?"body1":f,d=A.variantMapping,w=d===void 0?vx:d,m=SA(A,["align","classes","className","color","component","display","gutterBottom","noWrap","paragraph","variant","variantMapping"]),v=g||(h?"p":w[Q]||vx[Q])||"span";return p.exports.createElement(v,_({className:yA(r.root,o,Q!=="inherit"&&r[Q],a!=="initial"&&r["color".concat(Qe(a))],u&&r.noWrap,C&&r.gutterBottom,h&&r.paragraph,n!=="inherit"&&r["align".concat(Qe(n))],l!=="initial"&&r["display".concat(Qe(l))]),ref:t},m))}),Zo=ee(bIA,{name:"MuiTypography"})(GIA),_IA={root:{},underlineNone:{textDecoration:"none"},underlineHover:{textDecoration:"none","&:hover":{textDecoration:"underline"}},underlineAlways:{textDecoration:"underline"},button:{position:"relative",WebkitTapHighlightColor:"transparent",backgroundColor:"transparent",outline:0,border:0,margin:0,borderRadius:0,padding:0,cursor:"pointer",userSelect:"none",verticalAlign:"middle","-moz-appearance":"none","-webkit-appearance":"none","&::-moz-focus-inner":{borderStyle:"none"},"&$focusVisible":{outline:"auto"}},focusVisible:{}},MIA=p.exports.forwardRef(function(A,t){var i=A.classes,n=A.className,r=A.color,o=r===void 0?"primary":r,s=A.component,a=s===void 0?"a":s,g=A.onBlur,I=A.onFocus,l=A.TypographyClasses,c=A.underline,C=c===void 0?"hover":c,B=A.variant,u=B===void 0?"inherit":B,E=SA(A,["classes","className","color","component","onBlur","onFocus","TypographyClasses","underline","variant"]),h=Ru(),f=h.isFocusVisible,Q=h.onBlurVisible,d=h.ref,w=p.exports.useState(!1),m=w[0],v=w[1],x=ze(t,d),D=function(M){m&&(Q(),v(!1)),g&&g(M)},F=function(M){f(M)&&v(!0),I&&I(M)};return p.exports.createElement(Zo,_({className:yA(i.root,i["underline".concat(Qe(C))],n,m&&i.focusVisible,a==="button"&&i.button),classes:l,color:o,component:a,onBlur:D,onFocus:F,ref:x,variant:u},E))}),xu=ee(_IA,{name:"MuiLink"})(MIA);function kIA(){return XA(Pi,{children:['Avivator could not find an IFD index for the requested OME-TIFF, and therefore longer latencies are expected. Please read our documentation on "Indexed TIFF" to generate an IFD index for your OME-TIFF and improve initial load times.',H(xu,{target:"_blank",rel:"noopener noreferrer",href:"http://viv.gehlenborglab.org/#data-preparation",children:"in this section of our documentation"})," ","and then place the offsets.json adjacent to the OME-TIFF wherever hosted."]})}function TIA({message:e}){return XA(Pi,{children:[e?`The following error was thrown: "${e}". `:"Something has gone wrong loading your image. ","Please refer to the"," ",H(xu,{target:"_blank",rel:"noopener noreferrer",href:"http://viv.gehlenborglab.org",children:"docs"})," ","for information about supported file formats."]})}function UIA(){return XA(Pi,{children:['You are seeing a random demo image because no image URL was provided. To view your own images, enter a URL into the "OME-TIFF/Bioformats-Zarr URL" field. See the'," ",H(xu,{target:"_blank",rel:"noopener noreferrer",href:"http://viv.gehlenborglab.org",children:"docs"})," ","for details on how to prepare your images for viewing with Avivator."]})}function PIA(){return H(Pi,{children:"Volume rendering is only available on browsers that support WebGL2. If you are using Safari, you can turn on WebGL2 by navigating in the top menubar to check Develop > Experimental Features > WebGL 2.0 and then refreshing the page."})}const HIA=()=>{const[e,A,t,i,n,r,o]=_A(s=>[s.isOffsetsSnackbarOn,s.loaderErrorSnackbar,s.isNoImageUrlSnackbarOn,s.toggleIsOffsetsSnackbarOn,s.toggleIsNoImageUrlSnackbarOn,s.isVolumeRenderingWarningOn,s.toggleIsVolumeRenderingWarningOn],Ue);return XA(Pi,{children:[H(cC,{open:e,anchorOrigin:{vertical:"top",horizontal:"center"},elevation:6,variant:"filled",children:H(CC,{onClose:i,severity:"warning",children:H(kIA,{})})}),H(cC,{open:A.on,anchorOrigin:{vertical:"top",horizontal:"center"},elevation:6,variant:"filled",children:H(CC,{onClose:()=>_A.setState({loaderErrorSnackbar:{on:!1,message:null}}),severity:"error",children:H(TIA,{message:A.message})})}),H(cC,{open:t,anchorOrigin:{vertical:"top",horizontal:"center"},elevation:6,variant:"filled",children:H(CC,{onClose:n,severity:"info",children:H(UIA,{})})}),H(cC,{open:r,anchorOrigin:{vertical:"top",horizontal:"center"},elevation:6,variant:"filled",children:H(CC,{onClose:o,severity:"warning",children:H(PIA,{})})})]})};function qIA(e){var A=typeof e;return e!=null&&(A=="object"||A=="function")}var FM=qIA,JIA=typeof gc=="object"&&gc&&gc.Object===Object&&gc,OIA=JIA,YIA=OIA,KIA=typeof self=="object"&&self&&self.Object===Object&&self,VIA=YIA||KIA||Function("return this")(),NM=VIA,WIA=NM,zIA=function(){return WIA.Date.now()},jIA=zIA,XIA=/\s/;function ZIA(e){for(var A=e.length;A--&&XIA.test(e.charAt(A)););return A}var $IA=ZIA,AlA=$IA,elA=/^\s+/;function tlA(e){return e&&e.slice(0,AlA(e)+1).replace(elA,"")}var ilA=tlA,nlA=NM,rlA=nlA.Symbol,LM=rlA,Sx=LM,bM=Object.prototype,olA=bM.hasOwnProperty,slA=bM.toString,Gg=Sx?Sx.toStringTag:void 0;function alA(e){var A=olA.call(e,Gg),t=e[Gg];try{e[Gg]=void 0;var i=!0}catch{}var n=slA.call(e);return i&&(A?e[Gg]=t:delete e[Gg]),n}var glA=alA,IlA=Object.prototype,llA=IlA.toString;function clA(e){return llA.call(e)}var ClA=clA,Dx=LM,BlA=glA,ElA=ClA,ulA="[object Null]",hlA="[object Undefined]",Rx=Dx?Dx.toStringTag:void 0;function flA(e){return e==null?e===void 0?hlA:ulA:Rx&&Rx in Object(e)?BlA(e):ElA(e)}var QlA=flA;function dlA(e){return e!=null&&typeof e=="object"}var plA=dlA,ylA=QlA,mlA=plA,wlA="[object Symbol]";function vlA(e){return typeof e=="symbol"||mlA(e)&&ylA(e)==wlA}var SlA=vlA,DlA=ilA,xx=FM,RlA=SlA,Fx=0/0,xlA=/^[-+]0x[0-9a-f]+$/i,FlA=/^0b[01]+$/i,NlA=/^0o[0-7]+$/i,LlA=parseInt;function blA(e){if(typeof e=="number")return e;if(RlA(e))return Fx;if(xx(e)){var A=typeof e.valueOf=="function"?e.valueOf():e;e=xx(A)?A+"":A}if(typeof e!="string")return e===0?e:+e;e=DlA(e);var t=FlA.test(e);return t||NlA.test(e)?LlA(e.slice(2),t?2:8):xlA.test(e)?Fx:+e}var GlA=blA,_lA=FM,kf=jIA,Nx=GlA,MlA="Expected a function",klA=Math.max,TlA=Math.min;function UlA(e,A,t){var i,n,r,o,s,a,g=0,I=!1,l=!1,c=!0;if(typeof e!="function")throw new TypeError(MlA);A=Nx(A)||0,_lA(t)&&(I=!!t.leading,l="maxWait"in t,r=l?klA(Nx(t.maxWait)||0,A):r,c="trailing"in t?!!t.trailing:c);function C(m){var v=i,x=n;return i=n=void 0,g=m,o=e.apply(x,v),o}function B(m){return g=m,s=setTimeout(h,A),I?C(m):o}function u(m){var v=m-a,x=m-g,D=A-v;return l?TlA(D,r-x):D}function E(m){var v=m-a,x=m-g;return a===void 0||v>=A||v<0||l&&x>=r}function h(){var m=kf();if(E(m))return f(m);s=setTimeout(h,u(m))}function f(m){return s=void 0,c&&i?C(m):(i=n=void 0,o)}function Q(){s!==void 0&&clearTimeout(s),g=0,i=a=n=s=void 0}function d(){return s===void 0?o:f(kf())}function w(){var m=kf(),v=E(m);if(i=arguments,n=this,a=m,v){if(s===void 0)return B(a);if(l)return clearTimeout(s),s=setTimeout(h,A),C(a)}return s===void 0&&(s=setTimeout(h,A)),o}return w.cancel=Q,w.flush=d,w}var GM=UlA;const PlA=()=>{const[e,A,t]=_A(v=>[v.useLinkedView,v.use3d,v.viewState],Ue),[i,n,r,o]=yi(v=>[v.colors,v.contrastLimits,v.channelsVisible,v.selections],Ue),s=hn(),a=Em(),[g,I,l,c,C,B,u,E,h,f,Q,d,w]=he(v=>[v.lensSelection,v.colormap,v.renderingMode,v.xSlice,v.ySlice,v.zSlice,v.resolution,v.lensEnabled,v.zoomLock,v.panLock,v.isOverviewOn,v.onViewportLoad,v.useFixedAxis],Ue),m=({viewState:{zoom:v}})=>{const x=Math.min(Math.max(Math.round(-v),0),s.length-1);_A.setState({pyramidResolution:x})};return A?H(vaA,{loader:s,contrastLimits:n,colors:i,channelsVisible:r,selections:o,colormap:I,xSlice:c,ySlice:C,zSlice:B,resolution:u,extensions:[_gA(I,l)],height:a.height,width:a.width,onViewportLoad:d,useFixedAxis:w,viewStates:[t],onViewStateChange:GM(({viewState:v,viewId:x})=>_A.setState({viewState:{...v,id:x}}),250,{trailing:!0})}):e?H(waA,{loader:s,contrastLimits:n,colors:i,channelsVisible:r,selections:o,height:a.height,width:a.width,zoomLock:h,panLock:f,hoverHooks:{handleValue:v=>_A.setState({pixelValues:v})},lensSelection:g,lensEnabled:E,onViewportLoad:d,extensions:[I?new iE:new nE],colormap:I||"viridis",snapScaleBar:!0}):H(maA,{loader:s,contrastLimits:n,colors:i,channelsVisible:r,selections:o,height:a.height,width:a.width,overview:fgA,overviewOn:Q,hoverHooks:{handleValue:v=>_A.setState({pixelValues:v})},lensSelection:g,lensEnabled:E,onViewportLoad:d,extensions:[I?new iE:new nE],colormap:I||"viridis",onViewStateChange:m,snapScaleBar:!0})};var Ir=44,HlA=function(A){return{root:{display:"inline-block"},static:{transition:A.transitions.create("transform")},indeterminate:{animation:"$circular-rotate 1.4s linear infinite"},determinate:{transition:A.transitions.create("transform")},colorPrimary:{color:A.palette.primary.main},colorSecondary:{color:A.palette.secondary.main},svg:{display:"block"},circle:{stroke:"currentColor"},circleStatic:{transition:A.transitions.create("stroke-dashoffset")},circleIndeterminate:{animation:"$circular-dash 1.4s ease-in-out infinite",strokeDasharray:"80px, 200px",strokeDashoffset:"0px"},circleDeterminate:{transition:A.transitions.create("stroke-dashoffset")},"@keyframes circular-rotate":{"0%":{transformOrigin:"50% 50%"},"100%":{transform:"rotate(360deg)"}},"@keyframes circular-dash":{"0%":{strokeDasharray:"1px, 200px",strokeDashoffset:"0px"},"50%":{strokeDasharray:"100px, 200px",strokeDashoffset:"-15px"},"100%":{strokeDasharray:"100px, 200px",strokeDashoffset:"-125px"}},circleDisableShrink:{animation:"none"}}},qlA=p.exports.forwardRef(function(A,t){var i=A.classes,n=A.className,r=A.color,o=r===void 0?"primary":r,s=A.disableShrink,a=s===void 0?!1:s,g=A.size,I=g===void 0?40:g,l=A.style,c=A.thickness,C=c===void 0?3.6:c,B=A.value,u=B===void 0?0:B,E=A.variant,h=E===void 0?"indeterminate":E,f=SA(A,["classes","className","color","disableShrink","size","style","thickness","value","variant"]),Q={},d={},w={};if(h==="determinate"||h==="static"){var m=2*Math.PI*((Ir-C)/2);Q.strokeDasharray=m.toFixed(3),w["aria-valuenow"]=Math.round(u),Q.strokeDashoffset="".concat(((100-u)/100*m).toFixed(3),"px"),d.transform="rotate(-90deg)"}return p.exports.createElement("div",_({className:yA(i.root,n,o!=="inherit"&&i["color".concat(Qe(o))],{determinate:i.determinate,indeterminate:i.indeterminate,static:i.static}[h]),style:_({width:I,height:I},d,l),ref:t,role:"progressbar"},w,f),p.exports.createElement("svg",{className:i.svg,viewBox:"".concat(Ir/2," ").concat(Ir/2," ").concat(Ir," ").concat(Ir)},p.exports.createElement("circle",{className:yA(i.circle,a&&i.circleDisableShrink,{determinate:i.circleDeterminate,indeterminate:i.circleIndeterminate,static:i.circleStatic}[h]),style:Q,cx:Ir,cy:Ir,r:(Ir-C)/2,fill:"none",strokeWidth:C})))}),_M=ee(HlA,{name:"MuiCircularProgress",flip:!1})(qlA),JlA=[0,1,2,3,4,5,6,7,8,9,10],OlA=["auto",!0,1,2,3,4,5,6,7,8,9,10,11,12];function YlA(e,A,t){var i={};OlA.forEach(function(n){var r="grid-".concat(t,"-").concat(n);if(n===!0){i[r]={flexBasis:0,flexGrow:1,maxWidth:"100%"};return}if(n==="auto"){i[r]={flexBasis:"auto",flexGrow:0,maxWidth:"none"};return}var o="".concat(Math.round(n/12*1e8)/1e6,"%");i[r]={flexBasis:o,flexGrow:0,maxWidth:o}}),t==="xs"?_(e,i):e[A.breakpoints.up(t)]=i}function Tf(e){var A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1,t=parseFloat(e);return"".concat(t/A).concat(String(e).replace(String(t),"")||"px")}function KlA(e,A){var t={};return JlA.forEach(function(i){var n=e.spacing(i);n!==0&&(t["spacing-".concat(A,"-").concat(i)]={margin:"-".concat(Tf(n,2)),width:"calc(100% + ".concat(Tf(n),")"),"& > $item":{padding:Tf(n,2)}})}),t}var VlA=function(A){return _({root:{},container:{boxSizing:"border-box",display:"flex",flexWrap:"wrap",width:"100%"},item:{boxSizing:"border-box",margin:"0"},zeroMinWidth:{minWidth:0},"direction-xs-column":{flexDirection:"column"},"direction-xs-column-reverse":{flexDirection:"column-reverse"},"direction-xs-row-reverse":{flexDirection:"row-reverse"},"wrap-xs-nowrap":{flexWrap:"nowrap"},"wrap-xs-wrap-reverse":{flexWrap:"wrap-reverse"},"align-items-xs-center":{alignItems:"center"},"align-items-xs-flex-start":{alignItems:"flex-start"},"align-items-xs-flex-end":{alignItems:"flex-end"},"align-items-xs-baseline":{alignItems:"baseline"},"align-content-xs-center":{alignContent:"center"},"align-content-xs-flex-start":{alignContent:"flex-start"},"align-content-xs-flex-end":{alignContent:"flex-end"},"align-content-xs-space-between":{alignContent:"space-between"},"align-content-xs-space-around":{alignContent:"space-around"},"justify-content-xs-center":{justifyContent:"center"},"justify-content-xs-flex-end":{justifyContent:"flex-end"},"justify-content-xs-space-between":{justifyContent:"space-between"},"justify-content-xs-space-around":{justifyContent:"space-around"},"justify-content-xs-space-evenly":{justifyContent:"space-evenly"}},KlA(A,"xs"),A.breakpoints.keys.reduce(function(t,i){return YlA(t,A,i),t},{}))},WlA=p.exports.forwardRef(function(A,t){var i=A.alignContent,n=i===void 0?"stretch":i,r=A.alignItems,o=r===void 0?"stretch":r,s=A.classes,a=A.className,g=A.component,I=g===void 0?"div":g,l=A.container,c=l===void 0?!1:l,C=A.direction,B=C===void 0?"row":C,u=A.item,E=u===void 0?!1:u,h=A.justify,f=A.justifyContent,Q=f===void 0?"flex-start":f,d=A.lg,w=d===void 0?!1:d,m=A.md,v=m===void 0?!1:m,x=A.sm,D=x===void 0?!1:x,F=A.spacing,N=F===void 0?0:F,M=A.wrap,U=M===void 0?"wrap":M,P=A.xl,W=P===void 0?!1:P,J=A.xs,Z=J===void 0?!1:J,z=A.zeroMinWidth,O=z===void 0?!1:z,Y=SA(A,["alignContent","alignItems","classes","className","component","container","direction","item","justify","justifyContent","lg","md","sm","spacing","wrap","xl","xs","zeroMinWidth"]),k=yA(s.root,a,c&&[s.container,N!==0&&s["spacing-xs-".concat(String(N))]],E&&s.item,O&&s.zeroMinWidth,B!=="row"&&s["direction-xs-".concat(String(B))],U!=="wrap"&&s["wrap-xs-".concat(String(U))],o!=="stretch"&&s["align-items-xs-".concat(String(o))],n!=="stretch"&&s["align-content-xs-".concat(String(n))],(h||Q)!=="flex-start"&&s["justify-content-xs-".concat(String(h||Q))],Z!==!1&&s["grid-xs-".concat(String(Z))],D!==!1&&s["grid-sm-".concat(String(D))],v!==!1&&s["grid-md-".concat(String(v))],w!==!1&&s["grid-lg-".concat(String(w))],W!==!1&&s["grid-xl-".concat(String(W))]);return p.exports.createElement(I,_({className:k,ref:t},Y))}),zlA=ee(VlA,{name:"MuiGrid"})(WlA),$A=zlA,Rs;function MM(){if(Rs)return Rs;var e=document.createElement("div"),A=document.createElement("div");return A.style.width="10px",A.style.height="1px",e.appendChild(A),e.dir="rtl",e.style.fontSize="14px",e.style.width="4px",e.style.height="1px",e.style.position="absolute",e.style.top="-1000px",e.style.overflow="scroll",document.body.appendChild(e),Rs="reverse",e.scrollLeft>0?Rs="default":(e.scrollLeft=1,e.scrollLeft===0&&(Rs="negative")),document.body.removeChild(e),Rs}function Lx(e,A){var t=e.scrollLeft;if(A!=="rtl")return t;var i=MM();switch(i){case"negative":return e.scrollWidth-e.clientWidth+t;case"reverse":return e.scrollWidth-e.clientWidth-t;default:return t}}function jlA(e){return(1+Math.sin(Math.PI*e-Math.PI/2))/2}function XlA(e,A,t){var i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},n=arguments.length>4&&arguments[4]!==void 0?arguments[4]:function(){},r=i.ease,o=r===void 0?jlA:r,s=i.duration,a=s===void 0?300:s,g=null,I=A[e],l=!1,c=function(){l=!0},C=function B(u){if(l){n(new Error("Animation cancelled"));return}g===null&&(g=u);var E=Math.min(1,(u-g)/a);if(A[e]=o(E)*(t-I)+I,E>=1){requestAnimationFrame(function(){n(null)});return}requestAnimationFrame(B)};return I===t?(n(new Error("Element already at target position")),c):(requestAnimationFrame(C),c)}var ZlA={width:99,height:99,position:"absolute",top:-9999,overflow:"scroll"};function $lA(e){var A=e.onChange,t=SA(e,["onChange"]),i=p.exports.useRef(),n=p.exports.useRef(null),r=function(){i.current=n.current.offsetHeight-n.current.clientHeight};return p.exports.useEffect(function(){var o=ma(function(){var s=i.current;r(),s!==i.current&&A(i.current)});return window.addEventListener("resize",o),function(){o.clear(),window.removeEventListener("resize",o)}},[A]),p.exports.useEffect(function(){r(),A(i.current)},[A]),p.exports.createElement("div",_({style:ZlA,ref:n},t))}var AcA=function(A){return{root:{position:"absolute",height:2,bottom:0,width:"100%",transition:A.transitions.create()},colorPrimary:{backgroundColor:A.palette.primary.main},colorSecondary:{backgroundColor:A.palette.secondary.main},vertical:{height:"100%",width:2,right:0}}},ecA=p.exports.forwardRef(function(A,t){var i=A.classes,n=A.className,r=A.color,o=A.orientation,s=SA(A,["classes","className","color","orientation"]);return p.exports.createElement("span",_({className:yA(i.root,i["color".concat(Qe(r))],n,o==="vertical"&&i.vertical),ref:t},s))}),tcA=ee(AcA,{name:"PrivateTabIndicator"})(ecA),icA=wi(p.exports.createElement("path",{d:"M15.41 16.09l-4.58-4.59 4.58-4.59L14 5.5l-6 6 6 6z"})),ncA=wi(p.exports.createElement("path",{d:"M8.59 16.34l4.58-4.59-4.58-4.59L10 5.75l6 6-6 6z"})),rcA={root:{width:40,flexShrink:0,opacity:.8,"&$disabled":{opacity:0}},vertical:{width:"100%",height:40,"& svg":{transform:"rotate(90deg)"}},disabled:{}},ocA=p.exports.createElement(icA,{fontSize:"small"}),scA=p.exports.createElement(ncA,{fontSize:"small"}),acA=p.exports.forwardRef(function(A,t){var i=A.classes,n=A.className,r=A.direction,o=A.orientation,s=A.disabled,a=SA(A,["classes","className","direction","orientation","disabled"]);return p.exports.createElement(tc,_({component:"div",className:yA(i.root,n,s&&i.disabled,o==="vertical"&&i.vertical),ref:t,role:null,tabIndex:null},a),r==="left"?ocA:scA)}),gcA=ee(rcA,{name:"MuiTabScrollButton"})(acA),IcA=function(A){return{root:{overflow:"hidden",minHeight:48,WebkitOverflowScrolling:"touch",display:"flex"},vertical:{flexDirection:"column"},flexContainer:{display:"flex"},flexContainerVertical:{flexDirection:"column"},centered:{justifyContent:"center"},scroller:{position:"relative",display:"inline-block",flex:"1 1 auto",whiteSpace:"nowrap"},fixed:{overflowX:"hidden",width:"100%"},scrollable:{overflowX:"scroll",scrollbarWidth:"none","&::-webkit-scrollbar":{display:"none"}},scrollButtons:{},scrollButtonsDesktop:y({},A.breakpoints.down("xs"),{display:"none"}),indicator:{}}},lcA=p.exports.forwardRef(function(A,t){var i=A["aria-label"],n=A["aria-labelledby"],r=A.action,o=A.centered,s=o===void 0?!1:o,a=A.children,g=A.classes,I=A.className,l=A.component,c=l===void 0?"div":l,C=A.indicatorColor,B=C===void 0?"secondary":C,u=A.onChange,E=A.orientation,h=E===void 0?"horizontal":E,f=A.ScrollButtonComponent,Q=f===void 0?gcA:f,d=A.scrollButtons,w=d===void 0?"auto":d,m=A.selectionFollowsFocus,v=A.TabIndicatorProps,x=v===void 0?{}:v,D=A.TabScrollButtonProps,F=A.textColor,N=F===void 0?"inherit":F,M=A.value,U=A.variant,P=U===void 0?"standard":U,W=SA(A,["aria-label","aria-labelledby","action","centered","children","classes","className","component","indicatorColor","onChange","orientation","ScrollButtonComponent","scrollButtons","selectionFollowsFocus","TabIndicatorProps","TabScrollButtonProps","textColor","value","variant"]),J=Ll(),Z=P==="scrollable",z=J.direction==="rtl",O=h==="vertical",Y=O?"scrollTop":"scrollLeft",k=O?"top":"left",q=O?"bottom":"right",j=O?"clientHeight":"clientWidth",AA=O?"height":"width",iA=p.exports.useState(!1),gA=iA[0],sA=iA[1],BA=p.exports.useState({}),IA=BA[0],bA=BA[1],EA=p.exports.useState({start:!1,end:!1}),QA=EA[0],TA=EA[1],RA=p.exports.useState({overflow:"hidden",marginBottom:null}),UA=RA[0],fA=RA[1],NA=new Map,ZA=p.exports.useRef(null),ne=p.exports.useRef(null),Ie=function(){var rA=ZA.current,GA;if(rA){var ve=rA.getBoundingClientRect();GA={clientWidth:rA.clientWidth,scrollLeft:rA.scrollLeft,scrollTop:rA.scrollTop,scrollLeftNormalized:Lx(rA,J.direction),scrollWidth:rA.scrollWidth,top:ve.top,bottom:ve.bottom,left:ve.left,right:ve.right}}var pe;if(rA&&M!==!1){var Fe=ne.current.children;if(Fe.length>0){var Ne=Fe[NA.get(M)];pe=Ne?Ne.getBoundingClientRect():null}}return{tabsMeta:GA,tabMeta:pe}},KA=Oe(function(){var PA,rA=Ie(),GA=rA.tabsMeta,ve=rA.tabMeta,pe=0;if(ve&&GA)if(O)pe=ve.top-GA.top+GA.scrollTop;else{var Fe=z?GA.scrollLeftNormalized+GA.clientWidth-GA.scrollWidth:GA.scrollLeft;pe=ve.left-GA.left+Fe}var Ne=(PA={},y(PA,k,pe),y(PA,AA,ve?ve[AA]:0),PA);if(isNaN(IA[k])||isNaN(IA[AA]))bA(Ne);else{var Xe=Math.abs(IA[k]-Ne[k]),it=Math.abs(IA[AA]-Ne[AA]);(Xe>=1||it>=1)&&bA(Ne)}}),eA=function(rA){XlA(Y,ZA.current,rA)},aA=function(rA){var GA=ZA.current[Y];O?GA+=rA:(GA+=rA*(z?-1:1),GA*=z&&MM()==="reverse"?-1:1),eA(GA)},FA=function(){aA(-ZA.current[j])},re=function(){aA(ZA.current[j])},VA=p.exports.useCallback(function(PA){fA({overflow:null,marginBottom:-PA})},[]),_e=function(){var rA={};rA.scrollbarSizeListener=Z?p.exports.createElement($lA,{className:g.scrollable,onChange:VA}):null;var GA=QA.start||QA.end,ve=Z&&(w==="auto"&&GA||w==="desktop"||w==="on");return rA.scrollButtonStart=ve?p.exports.createElement(Q,_({orientation:h,direction:z?"right":"left",onClick:FA,disabled:!QA.start,className:yA(g.scrollButtons,w!=="on"&&g.scrollButtonsDesktop)},D)):null,rA.scrollButtonEnd=ve?p.exports.createElement(Q,_({orientation:h,direction:z?"left":"right",onClick:re,disabled:!QA.end,className:yA(g.scrollButtons,w!=="on"&&g.scrollButtonsDesktop)},D)):null,rA},WA=Oe(function(){var PA=Ie(),rA=PA.tabsMeta,GA=PA.tabMeta;if(!(!GA||!rA)){if(GA[k]rA[q]){var pe=rA[Y]+(GA[q]-rA[q]);eA(pe)}}}),qA=Oe(function(){if(Z&&w!=="off"){var PA=ZA.current,rA=PA.scrollTop,GA=PA.scrollHeight,ve=PA.clientHeight,pe=PA.scrollWidth,Fe=PA.clientWidth,Ne,Xe;if(O)Ne=rA>1,Xe=rA1,Xe=z?it>1:it *:first-child":{marginBottom:6}},textColorInherit:{color:"inherit",opacity:.7,"&$selected":{opacity:1},"&$disabled":{opacity:.5}},textColorPrimary:{color:A.palette.text.secondary,"&$selected":{color:A.palette.primary.main},"&$disabled":{color:A.palette.text.disabled}},textColorSecondary:{color:A.palette.text.secondary,"&$selected":{color:A.palette.secondary.main},"&$disabled":{color:A.palette.text.disabled}},selected:{},disabled:{},fullWidth:{flexShrink:1,flexGrow:1,flexBasis:0,maxWidth:"none"},wrapped:{fontSize:A.typography.pxToRem(12),lineHeight:1.5},wrapper:{display:"inline-flex",alignItems:"center",justifyContent:"center",width:"100%",flexDirection:"column"}}},BcA=p.exports.forwardRef(function(A,t){var i=A.classes,n=A.className,r=A.disabled,o=r===void 0?!1:r,s=A.disableFocusRipple,a=s===void 0?!1:s,g=A.fullWidth,I=A.icon,l=A.indicator,c=A.label,C=A.onChange,B=A.onClick,u=A.onFocus,E=A.selected,h=A.selectionFollowsFocus,f=A.textColor,Q=f===void 0?"inherit":f,d=A.value,w=A.wrapped,m=w===void 0?!1:w,v=SA(A,["classes","className","disabled","disableFocusRipple","fullWidth","icon","indicator","label","onChange","onClick","onFocus","selected","selectionFollowsFocus","textColor","value","wrapped"]),x=function(N){C&&C(N,d),B&&B(N)},D=function(N){h&&!E&&C&&C(N,d),u&&u(N)};return p.exports.createElement(tc,_({focusRipple:!a,className:yA(i.root,i["textColor".concat(Qe(Q))],n,o&&i.disabled,E&&i.selected,c&&I&&i.labelIcon,g&&i.fullWidth,m&&i.wrapped),ref:t,role:"tab","aria-selected":E,disabled:o,onClick:x,onFocus:D,tabIndex:E?0:-1},v),p.exports.createElement("span",{className:i.wrapper},I,c),l)}),bx=ee(CcA,{name:"MuiTab"})(BcA),EcA=function(A){return{root:{height:1,margin:0,border:"none",flexShrink:0,backgroundColor:A.palette.divider},absolute:{position:"absolute",bottom:0,left:0,width:"100%"},inset:{marginLeft:72},light:{backgroundColor:ut(A.palette.divider,.08)},middle:{marginLeft:A.spacing(2),marginRight:A.spacing(2)},vertical:{height:"100%",width:1},flexItem:{alignSelf:"stretch",height:"auto"}}},ucA=p.exports.forwardRef(function(A,t){var i=A.absolute,n=i===void 0?!1:i,r=A.classes,o=A.className,s=A.component,a=s===void 0?"hr":s,g=A.flexItem,I=g===void 0?!1:g,l=A.light,c=l===void 0?!1:l,C=A.orientation,B=C===void 0?"horizontal":C,u=A.role,E=u===void 0?a!=="hr"?"separator":void 0:u,h=A.variant,f=h===void 0?"fullWidth":h,Q=SA(A,["absolute","classes","className","component","flexItem","light","orientation","role","variant"]);return p.exports.createElement(a,_({className:yA(r.root,o,f!=="fullWidth"&&r[f],n&&r.absolute,I&&r.flexItem,c&&r.light,B==="vertical"&&r.vertical),role:E,ref:t},Q))}),o0=ee(EcA,{name:"MuiDivider"})(ucA),kM=p.exports.createContext();function hcA(){return p.exports.useContext(kM)}var pm=kM;function tg(){return p.exports.useContext(pm)}var fcA={root:{padding:9},checked:{},disabled:{},input:{cursor:"inherit",position:"absolute",opacity:0,width:"100%",height:"100%",top:0,left:0,margin:0,padding:0,zIndex:1}},QcA=p.exports.forwardRef(function(A,t){var i=A.autoFocus,n=A.checked,r=A.checkedIcon,o=A.classes,s=A.className,a=A.defaultChecked,g=A.disabled,I=A.icon,l=A.id,c=A.inputProps,C=A.inputRef,B=A.name,u=A.onBlur,E=A.onChange,h=A.onFocus,f=A.readOnly,Q=A.required,d=A.tabIndex,w=A.type,m=A.value,v=SA(A,["autoFocus","checked","checkedIcon","classes","className","defaultChecked","disabled","icon","id","inputProps","inputRef","name","onBlur","onChange","onFocus","readOnly","required","tabIndex","type","value"]),x=Su({controlled:n,default:Boolean(a),name:"SwitchBase",state:"checked"}),D=Fl(x,2),F=D[0],N=D[1],M=tg(),U=function(O){h&&h(O),M&&M.onFocus&&M.onFocus(O)},P=function(O){u&&u(O),M&&M.onBlur&&M.onBlur(O)},W=function(O){var Y=O.target.checked;N(Y),E&&E(O,Y)},J=g;M&&typeof J=="undefined"&&(J=M.disabled);var Z=w==="checkbox"||w==="radio";return p.exports.createElement(Xo,_({component:"span",className:yA(o.root,s,F&&o.checked,J&&o.disabled),disabled:J,tabIndex:null,role:void 0,onFocus:U,onBlur:P,ref:t},v),p.exports.createElement("input",_({autoFocus:i,checked:n,defaultChecked:a,className:o.input,disabled:J,id:Z&&l,name:B,onChange:W,readOnly:f,ref:C,required:Q,tabIndex:d,type:w,value:m},c)),F?r:I)}),dcA=ee(fcA,{name:"PrivateSwitchBase"})(QcA),pcA=wi(p.exports.createElement("path",{d:"M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z"})),ycA=wi(p.exports.createElement("path",{d:"M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"})),mcA=wi(p.exports.createElement("path",{d:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 10H7v-2h10v2z"})),wcA=function(A){return{root:{color:A.palette.text.secondary},checked:{},disabled:{},indeterminate:{},colorPrimary:{"&$checked":{color:A.palette.primary.main,"&:hover":{backgroundColor:ut(A.palette.primary.main,A.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}}},"&$disabled":{color:A.palette.action.disabled}},colorSecondary:{"&$checked":{color:A.palette.secondary.main,"&:hover":{backgroundColor:ut(A.palette.secondary.main,A.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}}},"&$disabled":{color:A.palette.action.disabled}}}},vcA=p.exports.createElement(ycA,null),ScA=p.exports.createElement(pcA,null),DcA=p.exports.createElement(mcA,null),RcA=p.exports.forwardRef(function(A,t){var i=A.checkedIcon,n=i===void 0?vcA:i,r=A.classes,o=A.color,s=o===void 0?"secondary":o,a=A.icon,g=a===void 0?ScA:a,I=A.indeterminate,l=I===void 0?!1:I,c=A.indeterminateIcon,C=c===void 0?DcA:c,B=A.inputProps,u=A.size,E=u===void 0?"medium":u,h=SA(A,["checkedIcon","classes","color","icon","indeterminate","indeterminateIcon","inputProps","size"]),f=l?C:g,Q=l?C:n;return p.exports.createElement(dcA,_({type:"checkbox",classes:{root:yA(r.root,r["color".concat(Qe(s))],l&&r.indeterminate),checked:r.checked,disabled:r.disabled},color:s,inputProps:_({"data-indeterminate":l},B),icon:p.exports.cloneElement(f,{fontSize:f.props.fontSize===void 0&&E==="small"?E:f.props.fontSize}),checkedIcon:p.exports.cloneElement(Q,{fontSize:Q.props.fontSize===void 0&&E==="small"?E:Q.props.fontSize}),ref:t},h))}),ym=ee(wcA,{name:"MuiCheckbox"})(RcA),xcA=function(A){return{thumb:{"&$open":{"& $offset":{transform:"scale(1) translateY(-10px)"}}},open:{},offset:_({zIndex:1},A.typography.body2,{fontSize:A.typography.pxToRem(12),lineHeight:1.2,transition:A.transitions.create(["transform"],{duration:A.transitions.duration.shortest}),top:-34,transformOrigin:"bottom center",transform:"scale(0)",position:"absolute"}),circle:{display:"flex",alignItems:"center",justifyContent:"center",width:32,height:32,borderRadius:"50% 50% 50% 0",backgroundColor:"currentColor",transform:"rotate(-45deg)"},label:{color:A.palette.primary.contrastText,transform:"rotate(45deg)"}}};function FcA(e){var A=e.children,t=e.classes,i=e.className,n=e.open,r=e.value,o=e.valueLabelDisplay;return o==="off"?A:p.exports.cloneElement(A,{className:yA(A.props.className,(n||o==="on")&&t.open,t.thumb)},p.exports.createElement("span",{className:yA(t.offset,i)},p.exports.createElement("span",{className:t.circle},p.exports.createElement("span",{className:t.label},r))))}var NcA=ee(xcA,{name:"PrivateValueLabel"})(FcA);function Uf(e,A){return e-A}function Pf(e,A,t){return Math.min(Math.max(A,e),t)}function Gx(e,A){var t=e.reduce(function(n,r,o){var s=Math.abs(A-r);return n===null||s0&&aA.some(function(wA){return wA.label})&&o.marked,Y===!1&&o.trackFalse,M==="vertical"&&o.vertical,Y==="inverted"&&o.trackInverted),onMouseDown:cs},BA),p.exports.createElement("span",{className:o.rail}),p.exports.createElement("span",{className:o.track,style:Cs}),p.exports.createElement("input",{value:eA.join(","),name:v,type:"hidden"}),aA.map(function(wA,LA){var Se=EC(wA.value,m,d),ye=hC[Fe].offset(Se),te;return Y===!1?te=eA.indexOf(wA.value)!==-1:te=Y==="normal"&&(KA?wA.value>=eA[0]&&wA.value<=eA[eA.length-1]:wA.value<=eA[0])||Y==="inverted"&&(KA?wA.value<=eA[0]||wA.value>=eA[eA.length-1]:wA.value>=eA[0]),p.exports.createElement(p.exports.Fragment,{key:wA.value},p.exports.createElement("span",{style:ye,"data-index":LA,className:yA(o.mark,te&&o.markActive)}),wA.label!=null?p.exports.createElement("span",{"aria-hidden":!0,"data-index":LA,style:ye,className:yA(o.markLabel,te&&o.markLabelActive)},wA.label):null)}),eA.map(function(wA,LA){var Se=EC(wA,m,d),ye=hC[Fe].offset(Se);return p.exports.createElement(j,{key:LA,valueLabelFormat:sA,valueLabelDisplay:iA,className:o.valueLabel,value:typeof sA=="function"?sA(P(wA),LA):sA,index:LA,open:UA===LA||QA===LA||iA==="on",disabled:B},p.exports.createElement(z,{className:yA(o.thumb,o["thumbColor".concat(Qe(g))],QA===LA&&o.active,B&&o.disabled,qA===LA&&o.focusVisible),tabIndex:B?null:0,role:"slider",style:ye,"data-index":LA,"aria-label":u?u(LA):i,"aria-labelledby":n,"aria-orientation":M,"aria-valuemax":P(d),"aria-valuemin":P(m),"aria-valuenow":P(wA),"aria-valuetext":E?E(P(wA),LA):r,onKeyDown:ve,onFocus:Be,onBlur:ue,onMouseOver:PA,onMouseLeave:rA}))}))}),mm=ee(GcA,{name:"MuiSlider"})(_cA);function McA(e){return e=typeof e=="function"?e():e,bt.exports.findDOMNode(e)}var Hf=typeof window!="undefined"?p.exports.useLayoutEffect:p.exports.useEffect,kcA=p.exports.forwardRef(function(A,t){var i=A.children,n=A.container,r=A.disablePortal,o=r===void 0?!1:r,s=A.onRendered,a=p.exports.useState(null),g=a[0],I=a[1],l=ze(p.exports.isValidElement(i)?i.ref:null,t);return Hf(function(){o||I(McA(n)||document.body)},[n,o]),Hf(function(){if(g&&!o)return jo(t,g),function(){jo(t,null)}},[t,g,o]),Hf(function(){s&&(g||o)&&s()},[s,g,o]),o?p.exports.isValidElement(i)?p.exports.cloneElement(i,{ref:l}):i:g&&bt.exports.createPortal(i,g)}),TM=kcA;function UM(){var e=document.createElement("div");e.style.width="99px",e.style.height="99px",e.style.position="absolute",e.style.top="-9999px",e.style.overflow="scroll",document.body.appendChild(e);var A=e.offsetWidth-e.clientWidth;return document.body.removeChild(e),A}function TcA(e){var A=pt(e);return A.body===e?vu(A).innerWidth>A.documentElement.clientWidth:e.scrollHeight>e.clientHeight}function DI(e,A){A?e.setAttribute("aria-hidden","true"):e.removeAttribute("aria-hidden")}function Tx(e){return parseInt(window.getComputedStyle(e)["padding-right"],10)||0}function Ux(e,A,t){var i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:[],n=arguments.length>4?arguments[4]:void 0,r=[A,t].concat(Rl(i)),o=["TEMPLATE","SCRIPT","STYLE"];[].forEach.call(e.children,function(s){s.nodeType===1&&r.indexOf(s)===-1&&o.indexOf(s.tagName)===-1&&DI(s,n)})}function qf(e,A){var t=-1;return e.some(function(i,n){return A(i)?(t=n,!0):!1}),t}function UcA(e,A){var t=[],i=[],n=e.container,r;if(!A.disableScrollLock){if(TcA(n)){var o=UM();t.push({value:n.style.paddingRight,key:"padding-right",el:n}),n.style["padding-right"]="".concat(Tx(n)+o,"px"),r=pt(n).querySelectorAll(".mui-fixed"),[].forEach.call(r,function(I){i.push(I.style.paddingRight),I.style.paddingRight="".concat(Tx(I)+o,"px")})}var s=n.parentElement,a=s.nodeName==="HTML"&&window.getComputedStyle(s)["overflow-y"]==="scroll"?s:n;t.push({value:a.style.overflow,key:"overflow",el:a}),a.style.overflow="hidden"}var g=function(){r&&[].forEach.call(r,function(l,c){i[c]?l.style.paddingRight=i[c]:l.style.removeProperty("padding-right")}),t.forEach(function(l){var c=l.value,C=l.el,B=l.key;c?C.style.setProperty(B,c):C.style.removeProperty(B)})};return g}function PcA(e){var A=[];return[].forEach.call(e.children,function(t){t.getAttribute&&t.getAttribute("aria-hidden")==="true"&&A.push(t)}),A}var HcA=function(){function e(){tq(this,e),this.modals=[],this.containers=[]}return yp(e,[{key:"add",value:function(t,i){var n=this.modals.indexOf(t);if(n!==-1)return n;n=this.modals.length,this.modals.push(t),t.modalRef&&DI(t.modalRef,!1);var r=PcA(i);Ux(i,t.mountNode,t.modalRef,r,!0);var o=qf(this.containers,function(s){return s.container===i});return o!==-1?(this.containers[o].modals.push(t),n):(this.containers.push({modals:[t],container:i,restore:null,hiddenSiblingNodes:r}),n)}},{key:"mount",value:function(t,i){var n=qf(this.containers,function(o){return o.modals.indexOf(t)!==-1}),r=this.containers[n];r.restore||(r.restore=UcA(r,i))}},{key:"remove",value:function(t){var i=this.modals.indexOf(t);if(i===-1)return i;var n=qf(this.containers,function(s){return s.modals.indexOf(t)!==-1}),r=this.containers[n];if(r.modals.splice(r.modals.indexOf(t),1),this.modals.splice(i,1),r.modals.length===0)r.restore&&r.restore(),t.modalRef&&DI(t.modalRef,!0),Ux(r.container,t.mountNode,t.modalRef,r.hiddenSiblingNodes,!1),this.containers.splice(n,1);else{var o=r.modals[r.modals.length-1];o.modalRef&&DI(o.modalRef,!1)}return i}},{key:"isTopModal",value:function(t){return this.modals.length>0&&this.modals[this.modals.length-1]===t}}]),e}();function qcA(e){var A=e.children,t=e.disableAutoFocus,i=t===void 0?!1:t,n=e.disableEnforceFocus,r=n===void 0?!1:n,o=e.disableRestoreFocus,s=o===void 0?!1:o,a=e.getDoc,g=e.isEnabled,I=e.open,l=p.exports.useRef(),c=p.exports.useRef(null),C=p.exports.useRef(null),B=p.exports.useRef(),u=p.exports.useRef(null),E=p.exports.useCallback(function(Q){u.current=bt.exports.findDOMNode(Q)},[]),h=ze(A.ref,E),f=p.exports.useRef();return p.exports.useEffect(function(){f.current=I},[I]),!f.current&&I&&typeof window!="undefined"&&(B.current=a().activeElement),p.exports.useEffect(function(){if(!!I){var Q=pt(u.current);!i&&u.current&&!u.current.contains(Q.activeElement)&&(u.current.hasAttribute("tabIndex")||u.current.setAttribute("tabIndex",-1),u.current.focus());var d=function(){var x=u.current;if(x!==null){if(!Q.hasFocus()||r||!g()||l.current){l.current=!1;return}u.current&&!u.current.contains(Q.activeElement)&&u.current.focus()}},w=function(x){r||!g()||x.keyCode!==9||Q.activeElement===u.current&&(l.current=!0,x.shiftKey?C.current.focus():c.current.focus())};Q.addEventListener("focus",d,!0),Q.addEventListener("keydown",w,!0);var m=setInterval(function(){d()},50);return function(){clearInterval(m),Q.removeEventListener("focus",d,!0),Q.removeEventListener("keydown",w,!0),s||(B.current&&B.current.focus&&B.current.focus(),B.current=null)}}},[i,r,s,g,I]),p.exports.createElement(p.exports.Fragment,null,p.exports.createElement("div",{tabIndex:0,ref:c,"data-test":"sentinelStart"}),p.exports.cloneElement(A,{ref:h}),p.exports.createElement("div",{tabIndex:0,ref:C,"data-test":"sentinelEnd"}))}var Px={root:{zIndex:-1,position:"fixed",right:0,bottom:0,top:0,left:0,backgroundColor:"rgba(0, 0, 0, 0.5)",WebkitTapHighlightColor:"transparent"},invisible:{backgroundColor:"transparent"}},JcA=p.exports.forwardRef(function(A,t){var i=A.invisible,n=i===void 0?!1:i,r=A.open,o=SA(A,["invisible","open"]);return r?p.exports.createElement("div",_({"aria-hidden":!0,ref:t},o,{style:_({},Px.root,n?Px.invisible:{},o.style)})):null}),OcA=JcA;function YcA(e){return e=typeof e=="function"?e():e,bt.exports.findDOMNode(e)}function KcA(e){return e.children?e.children.props.hasOwnProperty("in"):!1}var VcA=new HcA,WcA=function(A){return{root:{position:"fixed",zIndex:A.zIndex.modal,right:0,bottom:0,top:0,left:0},hidden:{visibility:"hidden"}}},zcA=p.exports.forwardRef(function(A,t){var i=Ma(),n=D2({name:"MuiModal",props:_({},A),theme:i}),r=n.BackdropComponent,o=r===void 0?OcA:r,s=n.BackdropProps,a=n.children,g=n.closeAfterTransition,I=g===void 0?!1:g,l=n.container,c=n.disableAutoFocus,C=c===void 0?!1:c,B=n.disableBackdropClick,u=B===void 0?!1:B,E=n.disableEnforceFocus,h=E===void 0?!1:E,f=n.disableEscapeKeyDown,Q=f===void 0?!1:f,d=n.disablePortal,w=d===void 0?!1:d,m=n.disableRestoreFocus,v=m===void 0?!1:m,x=n.disableScrollLock,D=x===void 0?!1:x,F=n.hideBackdrop,N=F===void 0?!1:F,M=n.keepMounted,U=M===void 0?!1:M,P=n.manager,W=P===void 0?VcA:P,J=n.onBackdropClick,Z=n.onClose,z=n.onEscapeKeyDown,O=n.onRendered,Y=n.open,k=SA(n,["BackdropComponent","BackdropProps","children","closeAfterTransition","container","disableAutoFocus","disableBackdropClick","disableEnforceFocus","disableEscapeKeyDown","disablePortal","disableRestoreFocus","disableScrollLock","hideBackdrop","keepMounted","manager","onBackdropClick","onClose","onEscapeKeyDown","onRendered","open"]),q=p.exports.useState(!0),j=q[0],AA=q[1],iA=p.exports.useRef({}),gA=p.exports.useRef(null),sA=p.exports.useRef(null),BA=ze(sA,t),IA=KcA(n),bA=function(){return pt(gA.current)},EA=function(){return iA.current.modalRef=sA.current,iA.current.mountNode=gA.current,iA.current},QA=function(){W.mount(EA(),{disableScrollLock:D}),sA.current.scrollTop=0},TA=Oe(function(){var aA=YcA(l)||bA().body;W.add(EA(),aA),sA.current&&QA()}),RA=p.exports.useCallback(function(){return W.isTopModal(EA())},[W]),UA=Oe(function(aA){gA.current=aA,aA&&(O&&O(),Y&&RA()?QA():DI(sA.current,!0))}),fA=p.exports.useCallback(function(){W.remove(EA())},[W]);if(p.exports.useEffect(function(){return function(){fA()}},[fA]),p.exports.useEffect(function(){Y?TA():(!IA||!I)&&fA()},[Y,fA,IA,I,TA]),!U&&!Y&&(!IA||j))return null;var NA=function(){AA(!1)},ZA=function(){AA(!0),I&&fA()},ne=function(FA){FA.target===FA.currentTarget&&(J&&J(FA),!u&&Z&&Z(FA,"backdropClick"))},Ie=function(FA){FA.key!=="Escape"||!RA()||(z&&z(FA),Q||(FA.stopPropagation(),Z&&Z(FA,"escapeKeyDown")))},KA=WcA(i||{zIndex:w2}),eA={};return a.props.tabIndex===void 0&&(eA.tabIndex=a.props.tabIndex||"-1"),IA&&(eA.onEnter=jr(NA,a.props.onEnter),eA.onExited=jr(ZA,a.props.onExited)),p.exports.createElement(TM,{ref:UA,container:l,disablePortal:w},p.exports.createElement("div",_({ref:BA,onKeyDown:Ie,role:"presentation"},k,{style:_({},KA.root,!Y&&j?KA.hidden:{},k.style)}),N?null:p.exports.createElement(o,_({open:Y,onClick:ne},s)),p.exports.createElement(qcA,{disableEnforceFocus:h,disableAutoFocus:C,disableRestoreFocus:v,getDoc:bA,isEnabled:RA,open:Y},p.exports.cloneElement(a,eA))))}),jcA=zcA;function Hx(e,A){var t=0;return typeof A=="number"?t=A:A==="center"?t=e.height/2:A==="bottom"&&(t=e.height),t}function qx(e,A){var t=0;return typeof A=="number"?t=A:A==="center"?t=e.width/2:A==="right"&&(t=e.width),t}function Jx(e){return[e.horizontal,e.vertical].map(function(A){return typeof A=="number"?"".concat(A,"px"):A}).join(" ")}function XcA(e,A){for(var t=A,i=0;t&&t!==e;)t=t.parentElement,i+=t.scrollTop;return i}function Jf(e){return typeof e=="function"?e():e}var ZcA={root:{},paper:{position:"absolute",overflowY:"auto",overflowX:"hidden",minWidth:16,minHeight:16,maxWidth:"calc(100% - 32px)",maxHeight:"calc(100% - 32px)",outline:0}},$cA=p.exports.forwardRef(function(A,t){var i=A.action,n=A.anchorEl,r=A.anchorOrigin,o=r===void 0?{vertical:"top",horizontal:"left"}:r,s=A.anchorPosition,a=A.anchorReference,g=a===void 0?"anchorEl":a,I=A.children,l=A.classes,c=A.className,C=A.container,B=A.elevation,u=B===void 0?8:B,E=A.getContentAnchorEl,h=A.marginThreshold,f=h===void 0?16:h,Q=A.onEnter,d=A.onEntered,w=A.onEntering,m=A.onExit,v=A.onExited,x=A.onExiting,D=A.open,F=A.PaperProps,N=F===void 0?{}:F,M=A.transformOrigin,U=M===void 0?{vertical:"top",horizontal:"left"}:M,P=A.TransitionComponent,W=P===void 0?RM:P,J=A.transitionDuration,Z=J===void 0?"auto":J,z=A.TransitionProps,O=z===void 0?{}:z,Y=SA(A,["action","anchorEl","anchorOrigin","anchorPosition","anchorReference","children","classes","className","container","elevation","getContentAnchorEl","marginThreshold","onEnter","onEntered","onEntering","onExit","onExited","onExiting","open","PaperProps","transformOrigin","TransitionComponent","transitionDuration","TransitionProps"]),k=p.exports.useRef(),q=p.exports.useCallback(function(EA){if(g==="anchorPosition")return s;var QA=Jf(n),TA=QA&&QA.nodeType===1?QA:pt(k.current).body,RA=TA.getBoundingClientRect(),UA=EA===0?o.vertical:"center";return{top:RA.top+Hx(RA,UA),left:RA.left+qx(RA,o.horizontal)}},[n,o.horizontal,o.vertical,s,g]),j=p.exports.useCallback(function(EA){var QA=0;if(E&&g==="anchorEl"){var TA=E(EA);if(TA&&EA.contains(TA)){var RA=XcA(EA,TA);QA=TA.offsetTop+TA.clientHeight/2-RA||0}}return QA},[o.vertical,g,E]),AA=p.exports.useCallback(function(EA){var QA=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return{vertical:Hx(EA,U.vertical)+QA,horizontal:qx(EA,U.horizontal)}},[U.horizontal,U.vertical]),iA=p.exports.useCallback(function(EA){var QA=j(EA),TA={width:EA.offsetWidth,height:EA.offsetHeight},RA=AA(TA,QA);if(g==="none")return{top:null,left:null,transformOrigin:Jx(RA)};var UA=q(QA),fA=UA.top-RA.vertical,NA=UA.left-RA.horizontal,ZA=fA+TA.height,ne=NA+TA.width,Ie=vu(Jf(n)),KA=Ie.innerHeight-f,eA=Ie.innerWidth-f;if(fAKA){var FA=ZA-KA;fA-=FA,RA.vertical+=FA}if(NAeA){var VA=ne-eA;NA-=VA,RA.horizontal+=VA}return{top:"".concat(Math.round(fA),"px"),left:"".concat(Math.round(NA),"px"),transformOrigin:Jx(RA)}},[n,g,q,j,AA,f]),gA=p.exports.useCallback(function(){var EA=k.current;if(!!EA){var QA=iA(EA);QA.top!==null&&(EA.style.top=QA.top),QA.left!==null&&(EA.style.left=QA.left),EA.style.transformOrigin=QA.transformOrigin}},[iA]),sA=function(QA,TA){w&&w(QA,TA),gA()},BA=p.exports.useCallback(function(EA){k.current=bt.exports.findDOMNode(EA)},[]);p.exports.useEffect(function(){D&&gA()}),p.exports.useImperativeHandle(i,function(){return D?{updatePosition:function(){gA()}}:null},[D,gA]),p.exports.useEffect(function(){if(!!D){var EA=ma(function(){gA()});return window.addEventListener("resize",EA),function(){EA.clear(),window.removeEventListener("resize",EA)}}},[D,gA]);var IA=Z;Z==="auto"&&!W.muiSupportAuto&&(IA=void 0);var bA=C||(n?pt(Jf(n)).body:void 0);return p.exports.createElement(jcA,_({container:bA,open:D,ref:t,BackdropProps:{invisible:!0},className:yA(l.root,c)},Y),p.exports.createElement(W,_({appear:!0,in:D,onEnter:Q,onEntered:d,onExit:m,onExited:v,onExiting:x,timeout:IA},O,{onEntering:jr(sA,O.onEntering)}),p.exports.createElement(ro,_({elevation:u,ref:BA},N,{className:yA(l.paper,N.className)}),I)))}),ACA=ee(ZcA,{name:"MuiPopover"})($cA),eCA=p.exports.createContext({}),ZC=eCA,tCA={root:{listStyle:"none",margin:0,padding:0,position:"relative"},padding:{paddingTop:8,paddingBottom:8},dense:{},subheader:{paddingTop:0}},iCA=p.exports.forwardRef(function(A,t){var i=A.children,n=A.classes,r=A.className,o=A.component,s=o===void 0?"ul":o,a=A.dense,g=a===void 0?!1:a,I=A.disablePadding,l=I===void 0?!1:I,c=A.subheader,C=SA(A,["children","classes","className","component","dense","disablePadding","subheader"]),B=p.exports.useMemo(function(){return{dense:g}},[g]);return p.exports.createElement(ZC.Provider,{value:B},p.exports.createElement(s,_({className:yA(n.root,r,g&&n.dense,!l&&n.padding,c&&n.subheader),ref:t},C),c,i))}),nCA=ee(tCA,{name:"MuiList"})(iCA);function Of(e,A,t){return e===A?e.firstChild:A&&A.nextElementSibling?A.nextElementSibling:t?null:e.firstChild}function Ox(e,A,t){return e===A?t?e.firstChild:e.lastChild:A&&A.previousElementSibling?A.previousElementSibling:t?null:e.lastChild}function PM(e,A){if(A===void 0)return!0;var t=e.innerText;return t===void 0&&(t=e.textContent),t=t.trim().toLowerCase(),t.length===0?!1:A.repeating?t[0]===A.keys[0]:t.indexOf(A.keys.join(""))===0}function _g(e,A,t,i,n,r){for(var o=!1,s=n(e,A,A?t:!1);s;){if(s===e.firstChild){if(o)return;o=!0}var a=i?!1:s.disabled||s.getAttribute("aria-disabled")==="true";if(!s.hasAttribute("tabindex")||!PM(s,r)||a)s=n(e,s,t);else{s.focus();return}}}var rCA=typeof window=="undefined"?p.exports.useEffect:p.exports.useLayoutEffect,oCA=p.exports.forwardRef(function(A,t){var i=A.actions,n=A.autoFocus,r=n===void 0?!1:n,o=A.autoFocusItem,s=o===void 0?!1:o,a=A.children,g=A.className,I=A.disabledItemsFocusable,l=I===void 0?!1:I,c=A.disableListWrap,C=c===void 0?!1:c,B=A.onKeyDown,u=A.variant,E=u===void 0?"selectedMenu":u,h=SA(A,["actions","autoFocus","autoFocusItem","children","className","disabledItemsFocusable","disableListWrap","onKeyDown","variant"]),f=p.exports.useRef(null),Q=p.exports.useRef({keys:[],repeating:!0,previousKeyMatched:!0,lastTime:null});rCA(function(){r&&f.current.focus()},[r]),p.exports.useImperativeHandle(i,function(){return{adjustStyleForScrollbar:function(F,N){var M=!f.current.style.width;if(F.clientHeight0&&(J-P.lastTime>500?(P.keys=[],P.repeating=!0,P.previousKeyMatched=!0):P.repeating&&W!==P.keys[0]&&(P.repeating=!1)),P.lastTime=J,P.keys.push(W);var Z=U&&!P.repeating&&PM(U,P);P.previousKeyMatched&&(Z||_g(N,U,!1,l,Of,P))?F.preventDefault():P.previousKeyMatched=!1}B&&B(F)},w=p.exports.useCallback(function(D){f.current=bt.exports.findDOMNode(D)},[]),m=ze(w,t),v=-1;p.exports.Children.forEach(a,function(D,F){!p.exports.isValidElement(D)||D.props.disabled||(E==="selectedMenu"&&D.props.selected||v===-1)&&(v=F)});var x=p.exports.Children.map(a,function(D,F){if(F===v){var N={};return s&&(N.autoFocus=!0),D.props.tabIndex===void 0&&E==="selectedMenu"&&(N.tabIndex=0),p.exports.cloneElement(D,N)}return D});return p.exports.createElement(nCA,_({role:"menu",ref:m,className:g,onKeyDown:d,tabIndex:r?0:-1},h),x)}),wm=oCA,Yx={vertical:"top",horizontal:"right"},Kx={vertical:"top",horizontal:"left"},sCA={paper:{maxHeight:"calc(100% - 96px)",WebkitOverflowScrolling:"touch"},list:{outline:0}},aCA=p.exports.forwardRef(function(A,t){var i=A.autoFocus,n=i===void 0?!0:i,r=A.children,o=A.classes,s=A.disableAutoFocusItem,a=s===void 0?!1:s,g=A.MenuListProps,I=g===void 0?{}:g,l=A.onClose,c=A.onEntering,C=A.open,B=A.PaperProps,u=B===void 0?{}:B,E=A.PopoverClasses,h=A.transitionDuration,f=h===void 0?"auto":h,Q=A.TransitionProps;Q=Q===void 0?{}:Q;var d=Q.onEntering,w=SA(Q,["onEntering"]),m=A.variant,v=m===void 0?"selectedMenu":m,x=SA(A,["autoFocus","children","classes","disableAutoFocusItem","MenuListProps","onClose","onEntering","open","PaperProps","PopoverClasses","transitionDuration","TransitionProps","variant"]),D=Ll(),F=n&&!a&&C,N=p.exports.useRef(null),M=p.exports.useRef(null),U=function(){return M.current},P=function(O,Y){N.current&&N.current.adjustStyleForScrollbar(O,D),c&&c(O,Y),d&&d(O,Y)},W=function(O){O.key==="Tab"&&(O.preventDefault(),l&&l(O,"tabKeyDown"))},J=-1;p.exports.Children.map(r,function(z,O){!p.exports.isValidElement(z)||z.props.disabled||(v!=="menu"&&z.props.selected||J===-1)&&(J=O)});var Z=p.exports.Children.map(r,function(z,O){return O===J?p.exports.cloneElement(z,{ref:function(k){M.current=bt.exports.findDOMNode(k),jo(z.ref,k)}}):z});return p.exports.createElement(ACA,_({getContentAnchorEl:U,classes:E,onClose:l,TransitionProps:_({onEntering:P},w),anchorOrigin:D.direction==="rtl"?Yx:Kx,transformOrigin:D.direction==="rtl"?Yx:Kx,PaperProps:_({},u,{classes:_({},u.classes,{root:o.paper})}),open:C,ref:t,transitionDuration:f},x),p.exports.createElement(wm,_({onKeyDown:W,actions:N,autoFocus:n&&(J===-1||a),autoFocusItem:F,variant:v},I,{className:yA(o.list,I.className)}),Z))}),gCA=ee(sCA,{name:"MuiMenu"})(aCA);function Vx(e){return e!=null&&!(Array.isArray(e)&&e.length===0)}function vm(e){var A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;return e&&(Vx(e.value)&&e.value!==""||A&&Vx(e.defaultValue)&&e.defaultValue!=="")}function ICA(e){return e.startAdornment}function Wx(e,A){return qI(A)==="object"&&A!==null?e===A:String(e)===String(A)}function lCA(e){return e==null||typeof e=="string"&&!e.trim()}var cCA=p.exports.forwardRef(function(A,t){var i=A["aria-label"],n=A.autoFocus,r=A.autoWidth,o=A.children,s=A.classes,a=A.className,g=A.defaultValue,I=A.disabled,l=A.displayEmpty,c=A.IconComponent,C=A.inputRef,B=A.labelId,u=A.MenuProps,E=u===void 0?{}:u,h=A.multiple,f=A.name,Q=A.onBlur,d=A.onChange,w=A.onClose,m=A.onFocus,v=A.onOpen,x=A.open,D=A.readOnly,F=A.renderValue,N=A.SelectDisplayProps,M=N===void 0?{}:N,U=A.tabIndex;A.type;var P=A.value,W=A.variant,J=W===void 0?"standard":W,Z=SA(A,["aria-label","autoFocus","autoWidth","children","classes","className","defaultValue","disabled","displayEmpty","IconComponent","inputRef","labelId","MenuProps","multiple","name","onBlur","onChange","onClose","onFocus","onOpen","open","readOnly","renderValue","SelectDisplayProps","tabIndex","type","value","variant"]),z=Su({controlled:P,default:g,name:"Select"}),O=Fl(z,2),Y=O[0],k=O[1],q=p.exports.useRef(null),j=p.exports.useState(null),AA=j[0],iA=j[1],gA=p.exports.useRef(x!=null),sA=gA.current,BA=p.exports.useState(),IA=BA[0],bA=BA[1],EA=p.exports.useState(!1),QA=EA[0],TA=EA[1],RA=ze(t,C);p.exports.useImperativeHandle(RA,function(){return{focus:function(){AA.focus()},node:q.current,value:Y}},[AA,Y]),p.exports.useEffect(function(){n&&AA&&AA.focus()},[n,AA]),p.exports.useEffect(function(){if(AA){var JA=pt(AA).getElementById(B);if(JA){var xA=function(){getSelection().isCollapsed&&AA.focus()};return JA.addEventListener("click",xA),function(){JA.removeEventListener("click",xA)}}}},[B,AA]);var UA=function(xA,Be){xA?v&&v(Be):w&&w(Be),sA||(bA(r?null:AA.clientWidth),TA(xA))},fA=function(xA){xA.button===0&&(xA.preventDefault(),AA.focus(),UA(!0,xA))},NA=function(xA){UA(!1,xA)},ZA=p.exports.Children.toArray(o),ne=function(xA){var Be=ZA.map(function(PA){return PA.props.value}).indexOf(xA.target.value);if(Be!==-1){var ue=ZA[Be];k(ue.props.value),d&&d(xA,ue)}},Ie=function(xA){return function(Be){h||UA(!1,Be);var ue;if(h){ue=Array.isArray(Y)?Y.slice():[];var PA=Y.indexOf(xA.props.value);PA===-1?ue.push(xA.props.value):ue.splice(PA,1)}else ue=xA.props.value;xA.props.onClick&&xA.props.onClick(Be),Y!==ue&&(k(ue),d&&(Be.persist(),Object.defineProperty(Be,"target",{writable:!0,value:{value:ue,name:f}}),d(Be,xA)))}},KA=function(xA){if(!D){var Be=[" ","ArrowUp","ArrowDown","Enter"];Be.indexOf(xA.key)!==-1&&(xA.preventDefault(),UA(!0,xA))}},eA=AA!==null&&(sA?x:QA),aA=function(xA){!eA&&Q&&(xA.persist(),Object.defineProperty(xA,"target",{writable:!0,value:{value:Y,name:f}}),Q(xA))};delete Z["aria-invalid"];var FA,re,VA=[],_e=!1;(vm({value:Y})||l)&&(F?FA=F(Y):_e=!0);var WA=ZA.map(function(JA){if(!p.exports.isValidElement(JA))return null;var xA;if(h){if(!Array.isArray(Y))throw new Error(ua(2));xA=Y.some(function(Be){return Wx(Be,JA.props.value)}),xA&&_e&&VA.push(JA.props.children)}else xA=Wx(Y,JA.props.value),xA&&_e&&(re=JA.props.children);return p.exports.cloneElement(JA,{"aria-selected":xA?"true":void 0,onClick:Ie(JA),onKeyUp:function(ue){ue.key===" "&&ue.preventDefault(),JA.props.onKeyUp&&JA.props.onKeyUp(ue)},role:"option",selected:xA,value:void 0,"data-value":JA.props.value})});_e&&(FA=h?VA.join(", "):re);var qA=IA;!r&&sA&&AA&&(qA=AA.clientWidth);var xe;typeof U!="undefined"?xe=U:xe=I?null:0;var se=M.id||(f?"mui-component-select-".concat(f):void 0);return p.exports.createElement(p.exports.Fragment,null,p.exports.createElement("div",_({className:yA(s.root,s.select,s.selectMenu,s[J],a,I&&s.disabled),ref:iA,tabIndex:xe,role:"button","aria-disabled":I?"true":void 0,"aria-expanded":eA?"true":void 0,"aria-haspopup":"listbox","aria-label":i,"aria-labelledby":[B,se].filter(Boolean).join(" ")||void 0,onKeyDown:KA,onMouseDown:I||D?null:fA,onBlur:aA,onFocus:m},M,{id:se}),lCA(FA)?p.exports.createElement("span",{dangerouslySetInnerHTML:{__html:"​"}}):FA),p.exports.createElement("input",_({value:Array.isArray(Y)?Y.join(","):Y,name:f,ref:q,"aria-hidden":!0,onChange:ne,tabIndex:-1,className:s.nativeInput,autoFocus:n},Z)),p.exports.createElement(c,{className:yA(s.icon,s["icon".concat(Qe(J))],eA&&s.iconOpen,I&&s.disabled)}),p.exports.createElement(gCA,_({id:"menu-".concat(f||""),anchorEl:AA,open:eA,onClose:NA},E,{MenuListProps:_({"aria-labelledby":B,role:"listbox",disableListWrap:!0},E.MenuListProps),PaperProps:_({},E.PaperProps,{style:_({minWidth:qA},E.PaperProps!=null?E.PaperProps.style:null)})}),WA))}),CCA=cCA;function ig(e){var A=e.props,t=e.states,i=e.muiFormControl;return t.reduce(function(n,r){return n[r]=A[r],i&&typeof A[r]=="undefined"&&(n[r]=i[r]),n},{})}var HM=wi(p.exports.createElement("path",{d:"M7 10l5 5 5-5z"}));function fC(e,A){return parseInt(e[A],10)||0}var BCA=typeof window!="undefined"?p.exports.useLayoutEffect:p.exports.useEffect,ECA={shadow:{visibility:"hidden",position:"absolute",overflow:"hidden",height:0,top:0,left:0,transform:"translateZ(0)"}},uCA=p.exports.forwardRef(function(A,t){var i=A.onChange,n=A.rows,r=A.rowsMax,o=A.rowsMin,s=A.maxRows,a=A.minRows,g=a===void 0?1:a,I=A.style,l=A.value,c=SA(A,["onChange","rows","rowsMax","rowsMin","maxRows","minRows","style","value"]),C=s||r,B=n||o||g,u=p.exports.useRef(l!=null),E=u.current,h=p.exports.useRef(null),f=ze(t,h),Q=p.exports.useRef(null),d=p.exports.useRef(0),w=p.exports.useState({}),m=w[0],v=w[1],x=p.exports.useCallback(function(){var F=h.current,N=window.getComputedStyle(F),M=Q.current;M.style.width=N.width,M.value=F.value||A.placeholder||"x",M.value.slice(-1)===` -`&&(M.value+=" ");var U=N["box-sizing"],P=fC(N,"padding-bottom")+fC(N,"padding-top"),W=fC(N,"border-bottom-width")+fC(N,"border-top-width"),J=M.scrollHeight-P;M.value="x";var Z=M.scrollHeight-P,z=J;B&&(z=Math.max(Number(B)*Z,z)),C&&(z=Math.min(Number(C)*Z,z)),z=Math.max(z,Z);var O=z+(U==="border-box"?P+W:0),Y=Math.abs(z-J)<=1;v(function(k){return d.current<20&&(O>0&&Math.abs((k.outerHeightStyle||0)-O)>1||k.overflow!==Y)?(d.current+=1,{overflow:Y,outerHeightStyle:O}):k})},[C,B,A.placeholder]);p.exports.useEffect(function(){var F=ma(function(){d.current=0,x()});return window.addEventListener("resize",F),function(){F.clear(),window.removeEventListener("resize",F)}},[x]),BCA(function(){x()}),p.exports.useEffect(function(){d.current=0},[l]);var D=function(N){d.current=0,E||x(),i&&i(N)};return p.exports.createElement(p.exports.Fragment,null,p.exports.createElement("textarea",_({value:l,onChange:D,ref:f,rows:B,style:_({height:m.outerHeightStyle,overflow:m.overflow?"hidden":null},I)},c)),p.exports.createElement("textarea",{"aria-hidden":!0,className:A.className,readOnly:!0,ref:Q,tabIndex:-1,style:_({},ECA.shadow,I)}))}),hCA=uCA,fCA=function(A){var t=A.palette.type==="light",i={color:"currentColor",opacity:t?.42:.5,transition:A.transitions.create("opacity",{duration:A.transitions.duration.shorter})},n={opacity:"0 !important"},r={opacity:t?.42:.5};return{"@global":{"@keyframes mui-auto-fill":{},"@keyframes mui-auto-fill-cancel":{}},root:_({},A.typography.body1,{color:A.palette.text.primary,lineHeight:"1.1876em",boxSizing:"border-box",position:"relative",cursor:"text",display:"inline-flex",alignItems:"center","&$disabled":{color:A.palette.text.disabled,cursor:"default"}}),formControl:{},focused:{},disabled:{},adornedStart:{},adornedEnd:{},error:{},marginDense:{},multiline:{padding:"".concat(8-2,"px 0 ").concat(8-1,"px"),"&$marginDense":{paddingTop:4-1}},colorSecondary:{},fullWidth:{width:"100%"},input:{font:"inherit",letterSpacing:"inherit",color:"currentColor",padding:"".concat(8-2,"px 0 ").concat(8-1,"px"),border:0,boxSizing:"content-box",background:"none",height:"1.1876em",margin:0,WebkitTapHighlightColor:"transparent",display:"block",minWidth:0,width:"100%",animationName:"mui-auto-fill-cancel",animationDuration:"10ms","&::-webkit-input-placeholder":i,"&::-moz-placeholder":i,"&:-ms-input-placeholder":i,"&::-ms-input-placeholder":i,"&:focus":{outline:0},"&:invalid":{boxShadow:"none"},"&::-webkit-search-decoration":{"-webkit-appearance":"none"},"label[data-shrink=false] + $formControl &":{"&::-webkit-input-placeholder":n,"&::-moz-placeholder":n,"&:-ms-input-placeholder":n,"&::-ms-input-placeholder":n,"&:focus::-webkit-input-placeholder":r,"&:focus::-moz-placeholder":r,"&:focus:-ms-input-placeholder":r,"&:focus::-ms-input-placeholder":r},"&$disabled":{opacity:1},"&:-webkit-autofill":{animationDuration:"5000s",animationName:"mui-auto-fill"}},inputMarginDense:{paddingTop:4-1},inputMultiline:{height:"auto",resize:"none",padding:0},inputTypeSearch:{"-moz-appearance":"textfield","-webkit-appearance":"textfield"},inputAdornedStart:{},inputAdornedEnd:{},inputHiddenLabel:{}}},QCA=typeof window=="undefined"?p.exports.useEffect:p.exports.useLayoutEffect,dCA=p.exports.forwardRef(function(A,t){var i=A["aria-describedby"],n=A.autoComplete,r=A.autoFocus,o=A.classes,s=A.className;A.color;var a=A.defaultValue,g=A.disabled,I=A.endAdornment;A.error;var l=A.fullWidth,c=l===void 0?!1:l,C=A.id,B=A.inputComponent,u=B===void 0?"input":B,E=A.inputProps,h=E===void 0?{}:E,f=A.inputRef;A.margin;var Q=A.multiline,d=Q===void 0?!1:Q,w=A.name,m=A.onBlur,v=A.onChange,x=A.onClick,D=A.onFocus,F=A.onKeyDown,N=A.onKeyUp,M=A.placeholder,U=A.readOnly,P=A.renderSuffix,W=A.rows,J=A.rowsMax,Z=A.rowsMin,z=A.maxRows,O=A.minRows,Y=A.startAdornment,k=A.type,q=k===void 0?"text":k,j=A.value,AA=SA(A,["aria-describedby","autoComplete","autoFocus","classes","className","color","defaultValue","disabled","endAdornment","error","fullWidth","id","inputComponent","inputProps","inputRef","margin","multiline","name","onBlur","onChange","onClick","onFocus","onKeyDown","onKeyUp","placeholder","readOnly","renderSuffix","rows","rowsMax","rowsMin","maxRows","minRows","startAdornment","type","value"]),iA=h.value!=null?h.value:j,gA=p.exports.useRef(iA!=null),sA=gA.current,BA=p.exports.useRef(),IA=p.exports.useCallback(function(WA){},[]),bA=ze(h.ref,IA),EA=ze(f,bA),QA=ze(BA,EA),TA=p.exports.useState(!1),RA=TA[0],UA=TA[1],fA=hcA(),NA=ig({props:A,muiFormControl:fA,states:["color","disabled","error","hiddenLabel","margin","required","filled"]});NA.focused=fA?fA.focused:RA,p.exports.useEffect(function(){!fA&&g&&RA&&(UA(!1),m&&m())},[fA,g,RA,m]);var ZA=fA&&fA.onFilled,ne=fA&&fA.onEmpty,Ie=p.exports.useCallback(function(WA){vm(WA)?ZA&&ZA():ne&&ne()},[ZA,ne]);QCA(function(){sA&&Ie({value:iA})},[iA,Ie,sA]);var KA=function(qA){if(NA.disabled){qA.stopPropagation();return}D&&D(qA),h.onFocus&&h.onFocus(qA),fA&&fA.onFocus?fA.onFocus(qA):UA(!0)},eA=function(qA){m&&m(qA),h.onBlur&&h.onBlur(qA),fA&&fA.onBlur?fA.onBlur(qA):UA(!1)},aA=function(qA){if(!sA){var xe=qA.target||BA.current;if(xe==null)throw new Error(ua(1));Ie({value:xe.value})}for(var se=arguments.length,JA=new Array(se>1?se-1:0),xA=1;xA span":{paddingLeft:5,paddingRight:5,display:"inline-block"}},legendNotched:{maxWidth:1e3,transition:A.transitions.create("max-width",{duration:100,easing:A.transitions.easing.easeOut,delay:50})}}},SCA=p.exports.forwardRef(function(A,t){A.children;var i=A.classes,n=A.className,r=A.label,o=A.labelWidth,s=A.notched,a=A.style,g=SA(A,["children","classes","className","label","labelWidth","notched","style"]),I=Ll(),l=I.direction==="rtl"?"right":"left";if(r!==void 0)return p.exports.createElement("fieldset",_({"aria-hidden":!0,className:yA(i.root,n),ref:t,style:a},g),p.exports.createElement("legend",{className:yA(i.legendLabelled,s&&i.legendNotched)},r?p.exports.createElement("span",null,r):p.exports.createElement("span",{dangerouslySetInnerHTML:{__html:"​"}})));var c=o>0?o*.75+8:.01;return p.exports.createElement("fieldset",_({"aria-hidden":!0,style:_(y({},"padding".concat(Qe(l)),8),a),className:yA(i.root,n),ref:t},g),p.exports.createElement("legend",{className:i.legend,style:{width:s?c:.01}},p.exports.createElement("span",{dangerouslySetInnerHTML:{__html:"​"}})))}),DCA=ee(vCA,{name:"PrivateNotchedOutline"})(SCA),RCA=function(A){var t=A.palette.type==="light"?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)";return{root:{position:"relative",borderRadius:A.shape.borderRadius,"&:hover $notchedOutline":{borderColor:A.palette.text.primary},"@media (hover: none)":{"&:hover $notchedOutline":{borderColor:t}},"&$focused $notchedOutline":{borderColor:A.palette.primary.main,borderWidth:2},"&$error $notchedOutline":{borderColor:A.palette.error.main},"&$disabled $notchedOutline":{borderColor:A.palette.action.disabled}},colorSecondary:{"&$focused $notchedOutline":{borderColor:A.palette.secondary.main}},focused:{},disabled:{},adornedStart:{paddingLeft:14},adornedEnd:{paddingRight:14},error:{},marginDense:{},multiline:{padding:"18.5px 14px","&$marginDense":{paddingTop:10.5,paddingBottom:10.5}},notchedOutline:{borderColor:t},input:{padding:"18.5px 14px","&:-webkit-autofill":{WebkitBoxShadow:A.palette.type==="light"?null:"0 0 0 100px #266798 inset",WebkitTextFillColor:A.palette.type==="light"?null:"#fff",caretColor:A.palette.type==="light"?null:"#fff",borderRadius:"inherit"}},inputMarginDense:{paddingTop:10.5,paddingBottom:10.5},inputMultiline:{padding:0},inputAdornedStart:{paddingLeft:0},inputAdornedEnd:{paddingRight:0}}},WM=p.exports.forwardRef(function(A,t){var i=A.classes,n=A.fullWidth,r=n===void 0?!1:n,o=A.inputComponent,s=o===void 0?"input":o,a=A.label,g=A.labelWidth,I=g===void 0?0:g,l=A.multiline,c=l===void 0?!1:l,C=A.notched,B=A.type,u=B===void 0?"text":B,E=SA(A,["classes","fullWidth","inputComponent","label","labelWidth","multiline","notched","type"]);return p.exports.createElement(Sm,_({renderSuffix:function(f){return p.exports.createElement(DCA,{className:i.notchedOutline,label:a,labelWidth:I,notched:typeof C!="undefined"?C:Boolean(f.startAdornment||f.filled||f.focused)})},classes:_({},i,{root:yA(i.root,i.underline),notchedOutline:null}),fullWidth:r,inputComponent:s,multiline:c,ref:t,type:u},E))});WM.muiName="Input";var zM=ee(RCA,{name:"MuiOutlinedInput"})(WM),xCA=OM,FCA=p.exports.createElement(Dm,null),NCA=p.exports.createElement(VM,null),jM=p.exports.forwardRef(function e(A,t){var i=A.autoWidth,n=i===void 0?!1:i,r=A.children,o=A.classes,s=A.displayEmpty,a=s===void 0?!1:s,g=A.IconComponent,I=g===void 0?HM:g,l=A.id,c=A.input,C=A.inputProps,B=A.label,u=A.labelId,E=A.labelWidth,h=E===void 0?0:E,f=A.MenuProps,Q=A.multiple,d=Q===void 0?!1:Q,w=A.native,m=w===void 0?!1:w,v=A.onClose,x=A.onOpen,D=A.open,F=A.renderValue,N=A.SelectDisplayProps,M=A.variant,U=M===void 0?"standard":M,P=SA(A,["autoWidth","children","classes","displayEmpty","IconComponent","id","input","inputProps","label","labelId","labelWidth","MenuProps","multiple","native","onClose","onOpen","open","renderValue","SelectDisplayProps","variant"]),W=m?JM:CCA,J=tg(),Z=ig({props:A,muiFormControl:J,states:["variant"]}),z=Z.variant||U,O=c||{standard:FCA,outlined:p.exports.createElement(zM,{label:B,labelWidth:h}),filled:NCA}[z];return p.exports.cloneElement(O,_({inputComponent:W,inputProps:_({children:r,IconComponent:I,variant:z,type:void 0,multiple:d},m?{id:l}:{autoWidth:n,displayEmpty:a,labelId:u,MenuProps:f,onClose:v,onOpen:x,open:D,renderValue:F,SelectDisplayProps:_({id:l},N)},C,{classes:C?Dp({baseClasses:o,newClasses:C.classes,Component:e}):o},c?c.props.inputProps:{}),ref:t},P))});jM.muiName="Select";var ng=ee(xCA,{name:"MuiSelect"})(jM),Rm={},Xn={exports:{}};(function(e){function A(t){return t&&t.__esModule?t:{default:t}}e.exports=A,e.exports.__esModule=!0,e.exports.default=e.exports})(Xn);var Zn={exports:{}},XM={exports:{}};(function(e){function A(t){return e.exports=A=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(i){return typeof i}:function(i){return i&&typeof Symbol=="function"&&i.constructor===Symbol&&i!==Symbol.prototype?"symbol":typeof i},e.exports.__esModule=!0,e.exports.default=e.exports,A(t)}e.exports=A,e.exports.__esModule=!0,e.exports.default=e.exports})(XM);(function(e){var A=XM.exports.default;function t(n){if(typeof WeakMap!="function")return null;var r=new WeakMap,o=new WeakMap;return(t=function(a){return a?o:r})(n)}function i(n,r){if(!r&&n&&n.__esModule)return n;if(n===null||A(n)!=="object"&&typeof n!="function")return{default:n};var o=t(r);if(o&&o.has(n))return o.get(n);var s={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var g in n)if(g!=="default"&&Object.prototype.hasOwnProperty.call(n,g)){var I=a?Object.getOwnPropertyDescriptor(n,g):null;I&&(I.get||I.set)?Object.defineProperty(s,g,I):s[g]=n[g]}return s.default=n,o&&o.set(n,s),s}e.exports=i,e.exports.__esModule=!0,e.exports.default=e.exports})(Zn);var $n={},LCA=Rk(BIA);(function(e){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return A.createSvgIcon}});var A=LCA})($n);var bCA=Xn.exports,GCA=Zn.exports;Object.defineProperty(Rm,"__esModule",{value:!0});var ZM=Rm.default=void 0,_CA=GCA(p.exports),MCA=bCA($n),kCA=(0,MCA.default)(_CA.createElement("path",{d:"M14.59 8L12 10.59 9.41 8 8 9.41 10.59 12 8 14.59 9.41 16 12 13.41 14.59 16 16 14.59 13.41 12 16 9.41 14.59 8zM12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"}),"HighlightOff");ZM=Rm.default=kCA;var xm={},TCA=Xn.exports,UCA=Zn.exports;Object.defineProperty(xm,"__esModule",{value:!0});var $M=xm.default=void 0,PCA=UCA(p.exports),HCA=TCA($n),qCA=(0,HCA.default)(PCA.createElement("path",{d:"M12 8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"}),"MoreVert");$M=xm.default=qCA;/**! + */var daA=p.exports,uM=60103;Ac.Fragment=60107;if(typeof Symbol=="function"&&Symbol.for){var ox=Symbol.for;uM=ox("react.element"),Ac.Fragment=ox("react.fragment")}var paA=daA.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,yaA=Object.prototype.hasOwnProperty,maA={key:!0,ref:!0,__self:!0,__source:!0};function hM(e,A,t){var i,n={},r=null,o=null;t!==void 0&&(r=""+t),A.key!==void 0&&(r=""+A.key),A.ref!==void 0&&(o=A.ref);for(i in A)yaA.call(A,i)&&!maA.hasOwnProperty(i)&&(n[i]=A[i]);if(e&&e.defaultProps)for(i in A=e.defaultProps,A)n[i]===void 0&&(n[i]=A[i]);return{$$typeof:uM,type:e,key:r,ref:o,props:n,_owner:paA.current}}Ac.jsx=hM;Ac.jsxs=hM;mu.exports=Ac;const H=mu.exports.jsx,XA=mu.exports.jsxs,Pi=mu.exports.Fragment,waA=(e,A)=>A===e||(e==null?void 0:e.zoom)===(A==null?void 0:A.zoom)&&(e==null?void 0:e.rotationX)===(A==null?void 0:A.rotationX)&&(e==null?void 0:e.rotationOrbit)===(A==null?void 0:A.rotationOrbit)&&QaA(e==null?void 0:e.target,A==null?void 0:A.target);class vaA extends p.exports.PureComponent{constructor(A){super(A),this.state={viewStates:{}};const{viewStates:t}=this.state,{views:i,viewStates:n}=this.props;i.forEach(r=>{t[r.id]=r.filterViewState({viewState:n.find(o=>o.id===r.id)})}),this._onViewStateChange=this._onViewStateChange.bind(this),this.layerFilter=this.layerFilter.bind(this),this.onHover=this.onHover.bind(this)}layerFilter({layer:A,viewport:t}){return A.id.includes(Wo(t.id))}_onViewStateChange({viewId:A,viewState:t,interactionState:i,oldViewState:n}){const{views:r,onViewStateChange:o}=this.props;return t=o&&o({viewId:A,viewState:t,interactionState:i,oldViewState:n})||t,this.setState(s=>{const a={};return r.forEach(g=>{const I=s.viewStates[g.id];a[g.id]=g.filterViewState({viewState:{...t,id:A},oldViewState:n,currentViewState:I})}),{viewStates:a}}),t}componentDidUpdate(A){const{props:t}=this,{views:i}=t,n={...this.state.viewStates};let r=!1;i.forEach(o=>{var l,c;const s=(l=t.viewStates)==null?void 0:l.find(C=>C.id===o.id);if(!s)return;const a=(c=A.viewStates)==null?void 0:c.find(C=>C.id===o.id);if(waA(s,a))return;r=!0;const{height:g,width:I}=o;n[o.id]=o.filterViewState({viewState:{...s,height:g,width:I,id:o.id}})}),r&&this.setState({viewStates:n})}static getDerivedStateFromProps(A,t){const{views:i,viewStates:n}=A;if(i.some(r=>!t.viewStates[r.id]||r.height!==t.viewStates[r.id].height||r.width!==t.viewStates[r.id].width)){const r={};return i.forEach(o=>{const{height:s,width:a}=o,g=t.viewStates[o.id];r[o.id]=o.filterViewState({viewState:{...g||n.find(I=>I.id===o.id),height:s,width:a,id:o.id}})}),{viewStates:r}}return t}onHover(A,t){const{tile:i,coordinate:n,sourceLayer:r}=A,{onHover:o,hoverHooks:s}=this.props;if(o&&o(A,t),!s||!n||!r)return null;const{handleValue:a=()=>{},handleCoordnate:g=()=>{}}=s;let I;if(r.id.includes("Tiled")){if(!(i!=null&&i.content))return null;const{content:l,bbox:c,index:{z:C}}=i;if(!l.data||!c)return null;const{data:B,width:u,height:E}=l,{left:h,right:f,top:Q,bottom:d}=c,w=[h,B.heightD[x])}else{const{channelData:l}=r.props;if(!l)return null;const{data:c,width:C,height:B}=l;if(!c||!C||!B)return null;const u=[0,B,C,0],{zoom:E}=r.context.viewport,h=Math.max(1,2**Math.floor(-E)),f=[Math.floor((n[0]-u[0])/h),Math.floor((n[1]-u[3])/h)],Q=f[1]*C+f[0];I=c.map(d=>d[Q])}a(I),g(n)}_renderLayers(){const{onHover:A}=this,{viewStates:t}=this.state,{views:i,layerProps:n}=this.props;return i.map((r,o)=>r.getLayers({viewStates:t,props:{...n[o],onHover:A}}))}render(){const{views:A,randomize:t,useDevicePixels:i=!0,deckProps:n}=this.props,{viewStates:r}=this.state,o=A.map(s=>s.getDeckGlView());if(t){const s=Math.random(),a=o[0],g=s*1.49,I=Math.round(g*(A.length-1));o[0]=o[I],o[I]=a}return H(BaA,{...n!=null?n:{},layerFilter:this.layerFilter,layers:(n==null?void 0:n.layers)===void 0?[...this._renderLayers()]:[...this._renderLayers(),...n.layers],onViewStateChange:this._onViewStateChange,views:o,viewState:r,useDevicePixels:i,getCursor:({isDragging:s})=>s?"grabbing":"crosshair"})}}const Im=e=>H(vaA,{...e}),SaA=e=>{const{loader:A,contrastLimits:t,colors:i,channelsVisible:n,viewStates:r,colormap:o,overview:s,overviewOn:a,selections:g,hoverHooks:I={handleValue:()=>{},handleCoordinate:()=>{}},height:l,width:c,lensEnabled:C=!1,lensSelection:B=0,lensRadius:u=100,lensBorderColor:E=[255,255,255],lensBorderRadius:h=.02,clickCenter:f=!0,transparentColor:Q,snapScaleBar:d=!1,onViewStateChange:w,onHover:m,onViewportLoad:v,extensions:x=[new ja],deckProps:D}=e,F=r==null?void 0:r.find(Z=>Z.id===Gf),N=p.exports.useMemo(()=>F||yu(A,{height:l,width:c},.5),[A,F]),M=new haA({id:Gf,height:l,width:c,snapScaleBar:d}),U={loader:A,contrastLimits:t,colors:i,channelsVisible:n,selections:g,onViewportLoad:v,colormap:o,lensEnabled:C,lensSelection:B,lensRadius:u,lensBorderColor:E,lensBorderRadius:h,extensions:x,transparentColor:Q},P=[M],W=[U],J=[{...N,id:Gf}];if(a&&A){const Z=(r==null?void 0:r.find(O=>O.id===XC))||{...N,id:XC},z=new uaA({id:XC,loader:A,detailHeight:l,detailWidth:c,clickCenter:f,...s});P.push(z),W.push({...U,lensEnabled:!1}),J.push(Z)}return A?H(Im,{layerProps:W,views:P,viewStates:J,hoverHooks:I,onViewStateChange:w,onHover:m,deckProps:D}):null},DaA=e=>{const{loader:A,contrastLimits:t,colors:i,channelsVisible:n,viewStates:r,colormap:o,panLock:s,selections:a,zoomLock:g,height:I,width:l,lensEnabled:c=!1,lensSelection:C=0,lensRadius:B=100,lensBorderColor:u=[255,255,255],lensBorderRadius:E=.02,transparentColor:h,snapScaleBar:f=!1,onViewStateChange:Q,onHover:d,onViewportLoad:w,extensions:m=[new ja],deckProps:v}=e,x=r==null?void 0:r.find(J=>J.id==="left"),D=r==null?void 0:r.find(J=>J.id==="right"),F=p.exports.useMemo(()=>{if(x&&D)return r;const J=yu(A,{height:I,width:l/2},.5);return[x||{...J,id:"left"},D||{...J,id:"right"}]},[A,x,D]),N=new rx({id:"left",linkedIds:["right"],panLock:s,zoomLock:g,height:I,width:l/2,snapScaleBar:f}),M=new rx({id:"right",x:l/2,linkedIds:["left"],panLock:s,zoomLock:g,height:I,width:l/2,snapScaleBar:f}),U={loader:A,contrastLimits:t,colors:i,channelsVisible:n,selections:a,onViewportLoad:w,colormap:o,lensEnabled:c,lensSelection:C,lensRadius:B,lensBorderColor:u,lensBorderRadius:E,extensions:m,transparentColor:h};return A?H(Im,{layerProps:[U,U],views:[M,N],randomize:!0,onViewStateChange:Q,onHover:d,viewStates:F,deckProps:v}):null},RaA=e=>{const{loader:A,contrastLimits:t,colors:i,channelsVisible:n,selections:r,colormap:o,resolution:s=Math.max(0,A.length-1),modelMatrix:a,onViewStateChange:g,xSlice:I=null,ySlice:l=null,zSlice:c=null,onViewportLoad:C,height:B,width:u,viewStates:E,clippingPlanes:h=[],useFixedAxis:f=!0,extensions:Q=[new fu.AdditiveBlendExtension]}=e,d=E==null?void 0:E.find(N=>(N==null?void 0:N.id)==="3d"),w=p.exports.useMemo(()=>d||{...yu(A,{height:B,width:u},1,!0,a),rotationX:0,rotationOrbit:0},[A,s,a]),m=[d||{...w,id:"3d"}],v=new faA({id:"3d",target:m[0].target,useFixedAxis:f});return A?H(Im,{layerProps:[{loader:A,contrastLimits:t,colors:i,channelsVisible:n,selections:r,colormap:o,xSlice:I,ySlice:l,zSlice:c,resolution:s,extensions:Q,modelMatrix:a,onViewportLoad:()=>setTimeout(C,0),clippingPlanes:h}],views:[v],viewStates:m,onViewStateChange:g,useDevicePixels:!1}):null},xaA=e=>e.charAt(0).toUpperCase()+e.slice(1),lm=(e,A)=>{const t={};return Object.entries(e).forEach(([i,n])=>{typeof n=="boolean"&&(t[`toggle${xaA(i)}`]=()=>A(r=>({...r,[i]:!r[i]})))}),t},FaA={channelsVisible:[],contrastLimits:[],colors:[],domains:[],selections:[],ids:[],loader:[{labels:[],shape:[]}],image:0},_f={channelsVisible:!0,contrastLimits:[0,65535],colors:[255,255,255],domains:[0,65535],selections:{z:0,c:0,t:0},ids:""},yi=Fp(e=>({...FaA,...lm(_f,e),toggleIsOn:A=>e(t=>{const i=[...t.channelsVisible];return i[A]=!i[A],{...t,channelsVisible:i}}),setPropertiesForChannel:(A,t)=>e(i=>{const n=Object.entries(t),r={};return n.forEach(([o,s])=>{r[o]=[...i[o]],r[o][A]=s}),{...i,...r}}),removeChannel:A=>e(t=>{const i={},n=Object.keys(_f);return Object.keys(t).forEach(r=>{n.includes(r)&&(i[r]=t[r].filter((o,s)=>s!==A))}),{...t,...i}}),addChannel:A=>e(t=>{const i=Object.entries(A),n={...t};return i.forEach(([r,o])=>{n[r]=[...t[r],o]}),Object.entries(_f).forEach(([r,o])=>{n[r].length{}},he=Fp(e=>({...sx,...lm(sx,e)})),ax={isChannelLoading:[],isViewerLoading:!0,pixelValues:[],isOffsetsSnackbarOn:!1,loaderErrorSnackbar:{on:!1,message:null},isNoImageUrlSnackbarOn:!1,isVolumeRenderingWarningOn:!1,useLinkedView:!1,isControllerOn:!0,use3d:!1,useLens:!1,useColormap:!1,globalSelection:{z:0,t:0},channelOptions:[],metadata:null,viewState:null,source:"",pyramidResolution:0},_A=Fp(e=>({...ax,...lm(ax,e),setIsChannelLoading:(A,t)=>e(i=>{const n=[...i.isChannelLoading];return n[A]=t,{...i,isChannelLoading:n}}),addIsChannelLoading:A=>e(t=>{const i=[...t.isChannelLoading,A];return{...t,isChannelLoading:i}}),removeIsChannelLoading:A=>e(t=>{const i=[...t.isChannelLoading];return i.splice(A,1),{...t,isChannelLoading:i}})})),hn=()=>{const[e,A]=yi(t=>[t.loader,t.image]);return Array.isArray(e[0])?e[A]:e},cm=()=>{const e=yi(t=>t.image),A=_A(t=>t.metadata);return Array.isArray(A)?A[e]:A};function $a(e,A,t,i){function n(r){return r instanceof t?r:new t(function(o){o(r)})}return new(t||(t=Promise))(function(r,o){function s(I){try{g(i.next(I))}catch(l){o(l)}}function a(I){try{g(i.throw(I))}catch(l){o(l)}}function g(I){I.done?r(I.value):n(I.value).then(s,a)}g((i=i.apply(e,A||[])).next())})}function Ag(e,A){var t={label:0,sent:function(){if(r[0]&1)throw r[1];return r[1]},trys:[],ops:[]},i,n,r,o;return o={next:s(0),throw:s(1),return:s(2)},typeof Symbol=="function"&&(o[Symbol.iterator]=function(){return this}),o;function s(g){return function(I){return a([g,I])}}function a(g){if(i)throw new TypeError("Generator is already executing.");for(;t;)try{if(i=1,n&&(r=g[0]&2?n.return:g[0]?n.throw||((r=n.return)&&r.call(n),0):n.next)&&!(r=r.call(n,g[1])).done)return r;switch(n=0,r&&(g=[g[0]&2,r.value]),g[0]){case 0:case 1:r=g;break;case 4:return t.label++,{value:g[1],done:!1};case 5:t.label++,n=g[1],g=[0];continue;case 7:g=t.ops.pop(),t.trys.pop();continue;default:if(r=t.trys,!(r=r.length>0&&r[r.length-1])&&(g[0]===6||g[0]===2)){t=0;continue}if(g[0]===3&&(!r||g[1]>r[0]&&g[1]0)&&!(n=i.next()).done;)r.push(n.value)}catch(s){o={error:s}}finally{try{n&&!n.done&&(t=i.return)&&t.call(i)}finally{if(o)throw o.error}}return r}function LaA(){for(var e=[],A=0;A0?i:e.name,writable:!1,configurable:!1,enumerable:!0})}return t}function GaA(e){var A=e.name,t=A&&A.lastIndexOf(".")!==-1;if(t&&!e.type){var i=A.split(".").pop().toLowerCase(),n=baA.get(i);n&&Object.defineProperty(e,"type",{value:n,writable:!1,configurable:!1,enumerable:!0})}return e}var _aA=[".DS_Store","Thumbs.db"];function MaA(e){return $a(this,void 0,void 0,function(){return Ag(this,function(A){return oE(e)&&kaA(e)?[2,HaA(e.dataTransfer,e.type)]:TaA(e)?[2,UaA(e)]:Array.isArray(e)&&e.every(function(t){return"getFile"in t&&typeof t.getFile=="function"})?[2,PaA(e)]:[2,[]]})})}function kaA(e){return oE(e.dataTransfer)}function TaA(e){return oE(e)&&oE(e.target)}function oE(e){return typeof e=="object"&&e!==null}function UaA(e){return Zd(e.target.files).map(function(A){return ec(A)})}function PaA(e){return $a(this,void 0,void 0,function(){var A;return Ag(this,function(t){switch(t.label){case 0:return[4,Promise.all(e.map(function(i){return i.getFile()}))];case 1:return A=t.sent(),[2,A.map(function(i){return ec(i)})]}})})}function HaA(e,A){return $a(this,void 0,void 0,function(){var t,i;return Ag(this,function(n){switch(n.label){case 0:return e===null?[2,[]]:e.items?(t=Zd(e.items).filter(function(r){return r.kind==="file"}),A!=="drop"?[2,t]:[4,Promise.all(t.map(qaA))]):[3,2];case 1:return i=n.sent(),[2,gx(fM(i))];case 2:return[2,gx(Zd(e.files).map(function(r){return ec(r)}))]}})})}function gx(e){return e.filter(function(A){return _aA.indexOf(A.name)===-1})}function Zd(e){if(e===null)return[];for(var A=[],t=0;te.length)&&(A=e.length);for(var t=0,i=new Array(A);tt)return[!1,Ex(t)];if(e.sizet)return[!1,Ex(t)]}return[!0,null]}function Lg(e){return e!=null}function tgA(e){var A=e.files,t=e.accept,i=e.minSize,n=e.maxSize,r=e.multiple,o=e.maxFiles;return!r&&A.length>1||r&&o>=1&&A.length>o?!1:A.every(function(s){var a=pM(s,t),g=Cx(a,1),I=g[0],l=yM(s,i,n),c=Cx(l,1),C=c[0];return I&&C})}function sE(e){return typeof e.isPropagationStopped=="function"?e.isPropagationStopped():typeof e.cancelBubble!="undefined"?e.cancelBubble:!1}function lC(e){return e.dataTransfer?Array.prototype.some.call(e.dataTransfer.types,function(A){return A==="Files"||A==="application/x-moz-file"}):!!e.target&&!!e.target.files}function hx(e){e.preventDefault()}function igA(e){return e.indexOf("MSIE")!==-1||e.indexOf("Trident/")!==-1}function ngA(e){return e.indexOf("Edge/")!==-1}function rgA(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:window.navigator.userAgent;return igA(e)||ngA(e)}function Xi(){for(var e=arguments.length,A=new Array(e),t=0;t1?n-1:0),o=1;oe.length)&&(A=e.length);for(var t=0,i=new Array(A);t=0)&&(!Object.prototype.propertyIsEnumerable.call(e,i)||(t[i]=e[i]))}return t}function fgA(e,A){if(e==null)return{};var t={},i=Object.keys(e),n,r;for(r=0;r=0)&&(t[n]=e[n]);return t}var Cm=p.exports.forwardRef(function(e,A){var t=e.children,i=aE(e,sgA),n=vM(i),r=n.open,o=aE(n,agA);return p.exports.useImperativeHandle(A,function(){return{open:r}},[r]),H(Pi,{children:t(Je(Je({},o),{},{open:r}))})});Cm.displayName="Dropzone";var wM={disabled:!1,getFilesFromEvent:MaA,maxSize:1/0,minSize:0,multiple:!0,maxFiles:0,preventDropOnDocument:!0,noClick:!1,noKeyboard:!1,noDrag:!1,noDragEventsBubbling:!1,validator:null,useFsAccessApi:!1};Cm.defaultProps=wM;Cm.propTypes={children:me.func,accept:me.oneOfType([me.string,me.arrayOf(me.string)]),multiple:me.bool,preventDropOnDocument:me.bool,noClick:me.bool,noKeyboard:me.bool,noDrag:me.bool,noDragEventsBubbling:me.bool,minSize:me.number,maxSize:me.number,maxFiles:me.number,disabled:me.bool,getFilesFromEvent:me.func,onFileDialogCancel:me.func,onFileDialogOpen:me.func,useFsAccessApi:me.bool,onDragEnter:me.func,onDragLeave:me.func,onDragOver:me.func,onDrop:me.func,onDropAccepted:me.func,onDropRejected:me.func,validator:me.func};var e0={isFocused:!1,isFileDialogActive:!1,isDragActive:!1,isDragAccept:!1,isDragReject:!1,draggedFiles:[],acceptedFiles:[],fileRejections:[]};function vM(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},A=Je(Je({},wM),e),t=A.accept,i=A.disabled,n=A.getFilesFromEvent,r=A.maxSize,o=A.minSize,s=A.multiple,a=A.maxFiles,g=A.onDragEnter,I=A.onDragLeave,l=A.onDragOver,c=A.onDrop,C=A.onDropAccepted,B=A.onDropRejected,u=A.onFileDialogCancel,E=A.onFileDialogOpen,h=A.useFsAccessApi,f=A.preventDropOnDocument,Q=A.noClick,d=A.noKeyboard,w=A.noDrag,m=A.noDragEventsBubbling,v=A.validator,x=p.exports.useMemo(function(){return typeof E=="function"?E:dx},[E]),D=p.exports.useMemo(function(){return typeof u=="function"?u:dx},[u]),F=p.exports.useRef(null),N=p.exports.useRef(null),M=p.exports.useReducer(QgA,e0),U=Mf(M,2),P=U[0],W=U[1],J=P.isFocused,Z=P.isFileDialogActive,z=P.draggedFiles,O=function(){Z&&setTimeout(function(){if(N.current){var aA=N.current.files;aA.length||(W({type:"closeDialog"}),D())}},300)};p.exports.useEffect(function(){return h&&fx()?function(){}:(window.addEventListener("focus",O,!1),function(){window.removeEventListener("focus",O,!1)})},[N,Z,D,h]);var Y=p.exports.useRef([]),k=function(aA){F.current&&F.current.contains(aA.target)||(aA.preventDefault(),Y.current=[])};p.exports.useEffect(function(){return f&&(document.addEventListener("dragover",hx,!1),document.addEventListener("drop",k,!1)),function(){f&&(document.removeEventListener("dragover",hx),document.removeEventListener("drop",k))}},[F,f]);var q=p.exports.useCallback(function(eA){eA.preventDefault(),eA.persist(),UA(eA),Y.current=[].concat(lgA(Y.current),[eA.target]),lC(eA)&&Promise.resolve(n(eA)).then(function(aA){sE(eA)&&!m||(W({draggedFiles:aA,isDragActive:!0,type:"setDraggedFiles"}),g&&g(eA))})},[n,g,m]),j=p.exports.useCallback(function(eA){eA.preventDefault(),eA.persist(),UA(eA);var aA=lC(eA);if(aA&&eA.dataTransfer)try{eA.dataTransfer.dropEffect="copy"}catch{}return aA&&l&&l(eA),!1},[l,m]),AA=p.exports.useCallback(function(eA){eA.preventDefault(),eA.persist(),UA(eA);var aA=Y.current.filter(function(re){return F.current&&F.current.contains(re)}),FA=aA.indexOf(eA.target);FA!==-1&&aA.splice(FA,1),Y.current=aA,!(aA.length>0)&&(W({isDragActive:!1,type:"setDraggedFiles",draggedFiles:[]}),lC(eA)&&I&&I(eA))},[F,I,m]),iA=p.exports.useCallback(function(eA,aA){var FA=[],re=[];eA.forEach(function(VA){var _e=pM(VA,t),WA=Mf(_e,2),qA=WA[0],xe=WA[1],se=yM(VA,o,r),JA=Mf(se,2),xA=JA[0],Be=JA[1],ue=v?v(VA):null;if(qA&&xA&&!ue)FA.push(VA);else{var PA=[xe,Be];ue&&(PA=PA.concat(ue)),re.push({file:VA,errors:PA.filter(function(rA){return rA})})}}),(!s&&FA.length>1||s&&a>=1&&FA.length>a)&&(FA.forEach(function(VA){re.push({file:VA,errors:[egA]})}),FA.splice(0)),W({acceptedFiles:FA,fileRejections:re,type:"setFiles"}),c&&c(FA,re,aA),re.length>0&&B&&B(re,aA),FA.length>0&&C&&C(FA,aA)},[W,s,t,o,r,a,c,C,B,v]),gA=p.exports.useCallback(function(eA){eA.preventDefault(),eA.persist(),UA(eA),Y.current=[],lC(eA)&&Promise.resolve(n(eA)).then(function(aA){sE(eA)&&!m||iA(aA,eA)}),W({type:"reset"})},[n,iA,m]),sA=p.exports.useCallback(function(){if(h&&fx()){W({type:"openDialog"}),x();var eA={multiple:s,types:ogA(t)};window.showOpenFilePicker(eA).then(function(aA){return n(aA)}).then(function(aA){return iA(aA,null)}).catch(function(aA){return D(aA)}).finally(function(){return W({type:"closeDialog"})});return}N.current&&(W({type:"openDialog"}),x(),N.current.value=null,N.current.click())},[W,x,D,h,iA,t,s]),BA=p.exports.useCallback(function(eA){!F.current||!F.current.isEqualNode(eA.target)||(eA.keyCode===32||eA.keyCode===13)&&(eA.preventDefault(),sA())},[F,N,sA]),IA=p.exports.useCallback(function(){W({type:"focus"})},[]),bA=p.exports.useCallback(function(){W({type:"blur"})},[]),EA=p.exports.useCallback(function(){Q||(rgA()?setTimeout(sA,0):sA())},[N,Q,sA]),QA=function(aA){return i?null:aA},TA=function(aA){return d?null:QA(aA)},RA=function(aA){return w?null:QA(aA)},UA=function(aA){m&&aA.stopPropagation()},fA=p.exports.useMemo(function(){return function(){var eA=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},aA=eA.refKey,FA=aA===void 0?"ref":aA,re=eA.role,VA=eA.onKeyDown,_e=eA.onFocus,WA=eA.onBlur,qA=eA.onClick,xe=eA.onDragEnter,se=eA.onDragOver,JA=eA.onDragLeave,xA=eA.onDrop,Be=aE(eA,ggA);return Je(Je(A0({onKeyDown:TA(Xi(VA,BA)),onFocus:TA(Xi(_e,IA)),onBlur:TA(Xi(WA,bA)),onClick:QA(Xi(qA,EA)),onDragEnter:RA(Xi(xe,q)),onDragOver:RA(Xi(se,j)),onDragLeave:RA(Xi(JA,AA)),onDrop:RA(Xi(xA,gA)),role:typeof re=="string"&&re!==""?re:"button"},FA,F),!i&&!d?{tabIndex:0}:{}),Be)}},[F,BA,IA,bA,EA,q,j,AA,gA,d,w,i]),NA=p.exports.useCallback(function(eA){eA.stopPropagation()},[]),ZA=p.exports.useMemo(function(){return function(){var eA=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},aA=eA.refKey,FA=aA===void 0?"ref":aA,re=eA.onChange,VA=eA.onClick,_e=aE(eA,IgA),WA=A0({accept:t,multiple:s,type:"file",style:{display:"none"},onChange:QA(Xi(re,gA)),onClick:QA(Xi(VA,NA)),autoComplete:"off",tabIndex:-1},FA,N);return Je(Je({},WA),_e)}},[N,t,s,gA,i]),ne=z.length,Ie=ne>0&&tgA({files:z,accept:t,minSize:o,maxSize:r,multiple:s,maxFiles:a}),KA=ne>0&&!Ie;return Je(Je({},P),{},{isDragAccept:Ie,isDragReject:KA,isFocused:J&&!i,getRootProps:fA,getInputProps:ZA,rootRef:F,inputRef:N,open:QA(sA)})}function QgA(e,A){switch(A.type){case"focus":return Je(Je({},e),{},{isFocused:!0});case"blur":return Je(Je({},e),{},{isFocused:!1});case"openDialog":return Je(Je({},e0),{},{isFileDialogActive:!0});case"closeDialog":return Je(Je({},e),{},{isFileDialogActive:!1});case"setDraggedFiles":var t=A.isDragActive,i=A.draggedFiles;return Je(Je({},e),{},{draggedFiles:i,isDragActive:t});case"setFiles":return Je(Je({},e),{},{acceptedFiles:A.acceptedFiles,fileRejections:A.fileRejections});case"reset":return Je({},e0);default:return e}}function dx(){}function Ue(e,A){if(Object.is(e,A))return!0;if(typeof e!="object"||e===null||typeof A!="object"||A===null)return!1;const t=Object.keys(e);if(t.length!==Object.keys(A).length)return!1;for(let i=0;iA.name):e instanceof File?[e.name]:e.split(",")}function SgA(e){const A=vgA(e);for(const t of A){const i=t.toLowerCase();if(!(i.includes(".tiff")||i.includes(".tif")))return!1}return!0}async function DgA(e){return Array.isArray(e)?e:e instanceof File?[e]:e.split(",")}async function RgA(e){return(await(typeof e=="string"?gu:Iu)(e)).getImageCount()}async function xgA(e){const A=await DgA(e),t=[];let i=0;for(const n of A){const r=[],o=await RgA(n);for(let s=0;s{const{Pixels:{SizeC:u,SizeT:E,SizeZ:h}}=B;return u*E*h+C},1);const s=t[0].length,{Pixels:{SizeC:a,SizeT:g,SizeZ:I}}=A[0];return a*g*I*s}async function NgA(e,A,t){try{if(wgA(e)){if(e instanceof File)return await WR(e,{images:"all",pool:!1});const r=await fetch(e.replace(/ome\.tif(f?)/gi,"offsets.json")),o=r.status!==200,s=o?void 0:await r.json(),a=await WR(e,{offsets:s,images:"all",pool:!1}),g=await FgA(e,a.map(I=>I.metadata),a.map(I=>I.data));return o&&g>mgA&&A(!0),a}if(Array.isArray(e)&&typeof e[0].arrayBuffer!="function")throw new px("Cannot upload a local Zarr or flat TIFF files with this browser. Try using Chrome, Firefox, or Microsoft Edge.");if(SgA(e)){const n=await xgA(e);return await ZeA(n,{images:"all",pool:!1})}let i;try{i=await ooA(e)}catch{const n=await soA(e,{type:"multiscales"}),r={Pixels:{Channels:n.metadata.omero.channels.map(o=>({Name:o.label,SamplesPerPixel:1}))}};i={data:n.data,metadata:r}}return i}catch(i){return i instanceof px?t(i.message):(console.error(i),t(null)),{data:null}}}function SM(e){return e.split("?")[0].split("/").slice(-1)[0]}function LgA({labels:e,shape:A}){const t=e.map((n,r)=>[n,r]).filter(n=>Em.includes(n[0])),i={};return t.forEach(([n,r])=>{i[n]=Math.floor((A[r]||0)/2)}),i}function DM(e){const A=e[e.length-1];return A===3||A===4}function bgA(e){let A=[];const t=LgA(e),i=e.labels.map((n,r)=>({name:n,size:e.shape[r]})).find(n=>!Em.includes(n.name)&&n.size);for(let n=0;n{const r=()=>{n(t())};return window.addEventListener("resize",r),()=>{window.removeEventListener("resize",r)}}),i}async function GgA({loader:e,selection:A}){const i=await(Array.isArray(e)?e[e.length-1]:e).getRaster({selection:A}),n=OC(i.data),{domain:r,contrastLimits:o}=n;return{domain:r,contrastLimits:o}}async function _gA({loader:e,selection:A}){const t=e[e.length-1],{shape:i,labels:n}=t,r=i[n.indexOf("z")]>>e.length-1,o=await t.getRaster({selection:{...A,z:0}}),s=await t.getRaster({selection:{...A,z:Math.floor(r/2)}}),a=await t.getRaster({selection:{...A,z:Math.max(0,r-1)}}),g=OC(o.data),I=OC(s.data),l=OC(a.data);return{domain:[Math.min(g.domain[0],I.domain[0],l.domain[0]),Math.max(g.domain[1],I.domain[1],l.domain[1])],contrastLimits:[Math.min(g.contrastLimits[0],I.contrastLimits[0],l.contrastLimits[0]),Math.max(g.contrastLimits[1],I.contrastLimits[1],l.contrastLimits[1])]}}const hm=async({loader:e,selection:A,use3d:t})=>(t?_gA:GgA)({loader:e,selection:A}),gE=async({loader:e,selections:A,use3d:t})=>{const i=await Promise.all(A.map(o=>hm({loader:e,selection:o,use3d:t}))),n=i.map(o=>o.domain),r=i.map(o=>o.contrastLimits);return{domains:n,contrastLimits:r}};function MgA(){let e=!1;return function(A){(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(A)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(A.substr(0,4)))&&(e=!0)}(navigator.userAgent||navigator.vendor||window.opera),e}function RM({Pixels:e}){const A=e.Channels.length,{SamplesPerPixel:t}=e.Channels[0],i=A===3&&e.Type==="uint8",n=e.SizeC===3&&A===1&&e.Interleaved;return t===3||i||n}function fm(e,A){if(!e&&e!==0)return"";const t=e.toString();return t.length>A?t.substring(0,A).replace(/\.$/,""):t}function kgA(e){var n,r;const{x:A,y:t,z:i}=(r=(n=e==null?void 0:e.meta)==null?void 0:n.physicalSizes)!=null?r:{};if((A==null?void 0:A.size)&&(t==null?void 0:t.size)&&(i==null?void 0:i.size)){const o=Math.min(i.size,A.size,t.size),s=[A.size/o,t.size/o,i.size/o];return new fe().scale(s)}return new fe().identity()}function Qm(e){const A=Array.isArray(e)?e[0]:e,{shape:t,labels:i}=A,n=kgA(A),r=[0,n[0]*t[i.indexOf("x")]],o=[0,n[5]*t[i.indexOf("y")]],s=[0,n[10]*t[i.indexOf("z")]];return[r,o,s]}function TgA(e,A){const t=e?LsA:fu;if(A===ga.MAX_INTENSITY_PROJECTION)return new t.MaximumIntensityProjectionExtension;if(A===ga.MIN_INTENSITY_PROJECTION)return new t.MinimumIntensityProjectionExtension;if(A===ga.ADDITIVE)return new t.AdditiveBlendExtension;throw new Error(`${A} rendering mode not supported`)}const UgA=(e,A)=>{const[t,i,n]=_A(g=>[g.use3d,g.toggleUse3d,g.toggleIsOffsetsSnackbarOn],Ue),[r,o]=he(g=>[g.lensEnabled,g.toggleLensEnabled],Ue),s=hn(),a=cm();p.exports.useEffect(()=>{async function g(){_A.setState({isChannelLoading:[!0]}),_A.setState({isViewerLoading:!0}),t&&i();const{urlOrFile:I}=e,l=await NgA(I,n,B=>_A.setState({loaderErrorSnackbar:{on:!0,message:B}}));let c,C;Array.isArray(l)?l.length>1?(c=l.map(B=>B.metadata),C=l.map(B=>B.data)):(c=l[0].metadata,C=l[0].data):(c=l.metadata,C=l.data),C&&(console.info("Metadata (in JSON-like form) for current file being viewed: ",c),bt.exports.unstable_batchedUpdates(()=>{yi.setState({loader:C}),_A.setState({metadata:c})}),t&&i(),A==null||A.push(typeof I=="string"?`?image_url=${I}`:""))}e&&g()},[e,A]),p.exports.useEffect(()=>{a&&(async()=>{_A.setState({isChannelLoading:[!0]}),_A.setState({isViewerLoading:!0}),t&&i();const I=bgA(s[0]),{Channels:l}=a.Pixels,c=l.map((d,w)=>{var m;return(m=d.Name)!=null?m:`Channel ${w}`});let C=[],B=[],u=[];if(RM(a))DM(s[0].shape)?(C=[[0,255]],B=[[0,255]],u=[[255,0,0]]):(C=[[0,255],[0,255],[0,255]],B=[[0,255],[0,255],[0,255]],u=[[255,0,0],[0,255,0],[0,0,255]]),r&&o(),_A.setState({useColormap:!1,useLens:!1});else{const d=await gE({loader:s,selections:I,use3d:!1});B=d.domains,C=d.contrastLimits,u=B.length===1?[[255,255,255]]:B.map((w,m)=>{var v;return(v=l[m].Color&&l[m].Color.slice(0,-1))!=null?v:Bm[m]}),_A.setState({useLens:c.length!==1,useColormap:!0})}yi.setState({ids:B.map(()=>String(Math.random())),selections:I,domains:B,contrastLimits:C,colors:u,channelsVisible:u.map(()=>!0)}),_A.setState({isChannelLoading:I.map(d=>!d),isViewerLoading:!1,pixelValues:new Array(I.length).fill(t0),globalSelection:I[0],channelOptions:c});const[h,f,Q]=Qm(s);he.setState({xSlice:h,ySlice:f,zSlice:Q})})()},[s,a])},xM=()=>vM({onDrop:A=>{let t;A.length===1?t={urlOrFile:A[0],description:A[0].name}:t={urlOrFile:A,description:"data.zarr"},_A.setState({source:t})}});function pt(e){return e&&e.ownerDocument||document}function zo(e,A){typeof e=="function"?e(A):e&&(e.current=A)}function ze(e,A){return p.exports.useMemo(function(){return e==null&&A==null?null:function(t){zo(e,t),zo(A,t)}},[e,A])}var PgA=typeof window!="undefined"?p.exports.useLayoutEffect:p.exports.useEffect;function Oe(e){var A=p.exports.useRef(e);return PgA(function(){A.current=e}),p.exports.useCallback(function(){return A.current.apply(void 0,arguments)},[])}function yx(e){return e.substring(2).toLowerCase()}function HgA(e){return document.documentElement.clientWidth-1;else{var w=pt(I.current);d=!w.documentElement.contains(f.target)||I.current.contains(f.target)}!d&&(i||!Q)&&o(f)}}),E=function(Q){return function(d){c.current=!0;var w=A.props[Q];w&&w(d)}},h={ref:B};return a!==!1&&(h[a]=E(a)),p.exports.useEffect(function(){if(a!==!1){var f=yx(a),Q=pt(I.current),d=function(){g.current=!0};return Q.addEventListener(f,u),Q.addEventListener("touchmove",d),function(){Q.removeEventListener(f,u),Q.removeEventListener("touchmove",d)}}},[u,a]),r!==!1&&(h[r]=E(r)),p.exports.useEffect(function(){if(r!==!1){var f=yx(r),Q=pt(I.current);return Q.addEventListener(f,u),function(){Q.removeEventListener(f,u)}}},[u,r]),p.exports.createElement(p.exports.Fragment,null,p.exports.cloneElement(A,h))}function Qe(e){if(typeof e!="string")throw new Error(Ea(7));return e.charAt(0).toUpperCase()+e.slice(1)}function zr(){for(var e=arguments.length,A=new Array(e),t=0;t1&&arguments[1]!==void 0?arguments[1]:166,t;function i(){for(var n=arguments.length,r=new Array(n),o=0;o0&&arguments[0]!==void 0?arguments[0]:{},m=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},v=arguments.length>2?arguments[2]:void 0,x=m.pulsate,D=x===void 0?!1:x,F=m.center,N=F===void 0?n||m.pulsate:F,M=m.fakeElement,U=M===void 0?!1:M;if(w.type==="mousedown"&&C.current){C.current=!1;return}w.type==="touchstart"&&(C.current=!0);var P=U?null:E.current,W=P?P.getBoundingClientRect():{width:0,height:0,left:0,top:0},J,Z,z;if(N||w.clientX===0&&w.clientY===0||!w.clientX&&!w.touches)J=Math.round(W.width/2),Z=Math.round(W.height/2);else{var O=w.touches?w.touches[0]:w,Y=O.clientX,k=O.clientY;J=Math.round(Y-W.left),Z=Math.round(k-W.top)}if(N)z=Math.sqrt((2*Math.pow(W.width,2)+Math.pow(W.height,2))/3),z%2===0&&(z+=1);else{var q=Math.max(Math.abs((P?P.clientWidth:0)-J),J)*2+2,j=Math.max(Math.abs((P?P.clientHeight:0)-Z),Z)*2+2;z=Math.sqrt(Math.pow(q,2)+Math.pow(j,2))}w.touches?u.current===null&&(u.current=function(){h({pulsate:D,rippleX:J,rippleY:Z,rippleSize:z,cb:v})},B.current=setTimeout(function(){u.current&&(u.current(),u.current=null)},vIA)):h({pulsate:D,rippleX:J,rippleY:Z,rippleSize:z,cb:v})},[n,h]),Q=p.exports.useCallback(function(){f({},{pulsate:!0})},[f]),d=p.exports.useCallback(function(w,m){if(clearTimeout(B.current),w.type==="touchend"&&u.current){w.persist(),u.current(),u.current=null,B.current=setTimeout(function(){d(w,m)});return}u.current=null,I(function(v){return v.length>0?v.slice(1):v}),c.current=m},[]);return p.exports.useImperativeHandle(t,function(){return{pulsate:Q,start:f,stop:d}},[Q,f,d]),p.exports.createElement("span",_({className:yA(r.root,o),ref:E},s),p.exports.createElement(jgA,{component:null,exit:!0},g))}),RIA=ee(SIA,{flip:!1,name:"MuiTouchRipple"})(p.exports.memo(DIA)),xIA={root:{display:"inline-flex",alignItems:"center",justifyContent:"center",position:"relative",WebkitTapHighlightColor:"transparent",backgroundColor:"transparent",outline:0,border:0,margin:0,borderRadius:0,padding:0,cursor:"pointer",userSelect:"none",verticalAlign:"middle","-moz-appearance":"none","-webkit-appearance":"none",textDecoration:"none",color:"inherit","&::-moz-focus-inner":{borderStyle:"none"},"&$disabled":{pointerEvents:"none",cursor:"default"},"@media print":{colorAdjust:"exact"}},disabled:{},focusVisible:{}},FIA=p.exports.forwardRef(function(A,t){var i=A.action,n=A.buttonRef,r=A.centerRipple,o=r===void 0?!1:r,s=A.children,a=A.classes,g=A.className,I=A.component,l=I===void 0?"button":I,c=A.disabled,C=c===void 0?!1:c,B=A.disableRipple,u=B===void 0?!1:B,E=A.disableTouchRipple,h=E===void 0?!1:E,f=A.focusRipple,Q=f===void 0?!1:f,d=A.focusVisibleClassName,w=A.onBlur,m=A.onClick,v=A.onFocus,x=A.onFocusVisible,D=A.onKeyDown,F=A.onKeyUp,N=A.onMouseDown,M=A.onMouseLeave,U=A.onMouseUp,P=A.onTouchEnd,W=A.onTouchMove,J=A.onTouchStart,Z=A.onDragLeave,z=A.tabIndex,O=z===void 0?0:z,Y=A.TouchRippleProps,k=A.type,q=k===void 0?"button":k,j=SA(A,["action","buttonRef","centerRipple","children","classes","className","component","disabled","disableRipple","disableTouchRipple","focusRipple","focusVisibleClassName","onBlur","onClick","onFocus","onFocusVisible","onKeyDown","onKeyUp","onMouseDown","onMouseLeave","onMouseUp","onTouchEnd","onTouchMove","onTouchStart","onDragLeave","tabIndex","TouchRippleProps","type"]),AA=p.exports.useRef(null);function iA(){return bt.exports.findDOMNode(AA.current)}var gA=p.exports.useRef(null),sA=p.exports.useState(!1),BA=sA[0],IA=sA[1];C&&BA&&IA(!1);var bA=Ru(),EA=bA.isFocusVisible,QA=bA.onBlurVisible,TA=bA.ref;p.exports.useImperativeHandle(i,function(){return{focusVisible:function(){IA(!0),AA.current.focus()}}},[]),p.exports.useEffect(function(){BA&&Q&&!u&&gA.current.pulsate()},[u,Q,BA]);function RA(rA,GA){var ve=arguments.length>2&&arguments[2]!==void 0?arguments[2]:h;return Oe(function(pe){GA&&GA(pe);var Fe=ve;return!Fe&&gA.current&&gA.current[rA](pe),!0})}var UA=RA("start",N),fA=RA("stop",Z),NA=RA("stop",U),ZA=RA("stop",function(rA){BA&&rA.preventDefault(),M&&M(rA)}),ne=RA("start",J),Ie=RA("stop",P),KA=RA("stop",W),eA=RA("stop",function(rA){BA&&(QA(rA),IA(!1)),w&&w(rA)},!1),aA=Oe(function(rA){AA.current||(AA.current=rA.currentTarget),EA(rA)&&(IA(!0),x&&x(rA)),v&&v(rA)}),FA=function(){var GA=iA();return l&&l!=="button"&&!(GA.tagName==="A"&&GA.href)},re=p.exports.useRef(!1),VA=Oe(function(rA){Q&&!re.current&&BA&&gA.current&&rA.key===" "&&(re.current=!0,rA.persist(),gA.current.stop(rA,function(){gA.current.start(rA)})),rA.target===rA.currentTarget&&FA()&&rA.key===" "&&rA.preventDefault(),D&&D(rA),rA.target===rA.currentTarget&&FA()&&rA.key==="Enter"&&!C&&(rA.preventDefault(),m&&m(rA))}),_e=Oe(function(rA){Q&&rA.key===" "&&gA.current&&BA&&!rA.defaultPrevented&&(re.current=!1,rA.persist(),gA.current.stop(rA,function(){gA.current.pulsate(rA)})),F&&F(rA),m&&rA.target===rA.currentTarget&&FA()&&rA.key===" "&&!rA.defaultPrevented&&m(rA)}),WA=l;WA==="button"&&j.href&&(WA="a");var qA={};WA==="button"?(qA.type=q,qA.disabled=C):((WA!=="a"||!j.href)&&(qA.role="button"),qA["aria-disabled"]=C);var xe=ze(n,t),se=ze(TA,AA),JA=ze(xe,se),xA=p.exports.useState(!1),Be=xA[0],ue=xA[1];p.exports.useEffect(function(){ue(!0)},[]);var PA=Be&&!u&&!C;return p.exports.createElement(WA,_({className:yA(a.root,g,BA&&[a.focusVisible,d],C&&a.disabled),onBlur:eA,onClick:m,onFocus:aA,onKeyDown:VA,onKeyUp:_e,onMouseDown:UA,onMouseLeave:ZA,onMouseUp:NA,onDragLeave:fA,onTouchEnd:Ie,onTouchMove:KA,onTouchStart:ne,ref:JA,tabIndex:C?-1:O},qA,j),s,PA?p.exports.createElement(RIA,_({ref:gA,center:o},Y)):null)}),tc=ee(xIA,{name:"MuiButtonBase"})(FIA),NIA=function(A){return{root:{textAlign:"center",flex:"0 0 auto",fontSize:A.typography.pxToRem(24),padding:12,borderRadius:"50%",overflow:"visible",color:A.palette.action.active,transition:A.transitions.create("background-color",{duration:A.transitions.duration.shortest}),"&:hover":{backgroundColor:ut(A.palette.action.active,A.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}},"&$disabled":{backgroundColor:"transparent",color:A.palette.action.disabled}},edgeStart:{marginLeft:-12,"$sizeSmall&":{marginLeft:-3}},edgeEnd:{marginRight:-12,"$sizeSmall&":{marginRight:-3}},colorInherit:{color:"inherit"},colorPrimary:{color:A.palette.primary.main,"&:hover":{backgroundColor:ut(A.palette.primary.main,A.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}}},colorSecondary:{color:A.palette.secondary.main,"&:hover":{backgroundColor:ut(A.palette.secondary.main,A.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}}},disabled:{},sizeSmall:{padding:3,fontSize:A.typography.pxToRem(18)},label:{width:"100%",display:"flex",alignItems:"inherit",justifyContent:"inherit"}}},LIA=p.exports.forwardRef(function(A,t){var i=A.edge,n=i===void 0?!1:i,r=A.children,o=A.classes,s=A.className,a=A.color,g=a===void 0?"default":a,I=A.disabled,l=I===void 0?!1:I,c=A.disableFocusRipple,C=c===void 0?!1:c,B=A.size,u=B===void 0?"medium":B,E=SA(A,["edge","children","classes","className","color","disabled","disableFocusRipple","size"]);return p.exports.createElement(tc,_({className:yA(o.root,s,g!=="default"&&o["color".concat(Qe(g))],l&&o.disabled,u==="small"&&o["size".concat(Qe(u))],{start:o.edgeStart,end:o.edgeEnd}[n]),centerRipple:!0,focusRipple:!C,disabled:l,ref:t},E),p.exports.createElement("span",{className:o.label},r))}),jo=ee(NIA,{name:"MuiIconButton"})(LIA),bIA=function(A){var t=A.palette.type==="light"?qI:JI,i=A.palette.type==="light"?JI:qI;return{root:_({},A.typography.body2,{borderRadius:A.shape.borderRadius,backgroundColor:"transparent",display:"flex",padding:"6px 16px"}),standardSuccess:{color:t(A.palette.success.main,.6),backgroundColor:i(A.palette.success.main,.9),"& $icon":{color:A.palette.success.main}},standardInfo:{color:t(A.palette.info.main,.6),backgroundColor:i(A.palette.info.main,.9),"& $icon":{color:A.palette.info.main}},standardWarning:{color:t(A.palette.warning.main,.6),backgroundColor:i(A.palette.warning.main,.9),"& $icon":{color:A.palette.warning.main}},standardError:{color:t(A.palette.error.main,.6),backgroundColor:i(A.palette.error.main,.9),"& $icon":{color:A.palette.error.main}},outlinedSuccess:{color:t(A.palette.success.main,.6),border:"1px solid ".concat(A.palette.success.main),"& $icon":{color:A.palette.success.main}},outlinedInfo:{color:t(A.palette.info.main,.6),border:"1px solid ".concat(A.palette.info.main),"& $icon":{color:A.palette.info.main}},outlinedWarning:{color:t(A.palette.warning.main,.6),border:"1px solid ".concat(A.palette.warning.main),"& $icon":{color:A.palette.warning.main}},outlinedError:{color:t(A.palette.error.main,.6),border:"1px solid ".concat(A.palette.error.main),"& $icon":{color:A.palette.error.main}},filledSuccess:{color:"#fff",fontWeight:A.typography.fontWeightMedium,backgroundColor:A.palette.success.main},filledInfo:{color:"#fff",fontWeight:A.typography.fontWeightMedium,backgroundColor:A.palette.info.main},filledWarning:{color:"#fff",fontWeight:A.typography.fontWeightMedium,backgroundColor:A.palette.warning.main},filledError:{color:"#fff",fontWeight:A.typography.fontWeightMedium,backgroundColor:A.palette.error.main},icon:{marginRight:12,padding:"7px 0",display:"flex",fontSize:22,opacity:.9},message:{padding:"8px 0"},action:{display:"flex",alignItems:"center",marginLeft:"auto",paddingLeft:16,marginRight:-8}}},Dx={success:p.exports.createElement(fIA,{fontSize:"inherit"}),warning:p.exports.createElement(QIA,{fontSize:"inherit"}),error:p.exports.createElement(dIA,{fontSize:"inherit"}),info:p.exports.createElement(pIA,{fontSize:"inherit"})},GIA=p.exports.createElement(yIA,{fontSize:"small"}),_IA=p.exports.forwardRef(function(A,t){var i=A.action,n=A.children,r=A.classes,o=A.className,s=A.closeText,a=s===void 0?"Close":s,g=A.color,I=A.icon,l=A.iconMapping,c=l===void 0?Dx:l,C=A.onClose,B=A.role,u=B===void 0?"alert":B,E=A.severity,h=E===void 0?"success":E,f=A.variant,Q=f===void 0?"standard":f,d=SA(A,["action","children","classes","className","closeText","color","icon","iconMapping","onClose","role","severity","variant"]);return p.exports.createElement(no,_({role:u,square:!0,elevation:0,className:yA(r.root,r["".concat(Q).concat(Qe(g||h))],o),ref:t},d),I!==!1?p.exports.createElement("div",{className:r.icon},I||c[h]||Dx[h]):null,p.exports.createElement("div",{className:r.message},n),i!=null?p.exports.createElement("div",{className:r.action},i):null,i==null&&C?p.exports.createElement("div",{className:r.action},p.exports.createElement(jo,{size:"small","aria-label":a,title:a,color:"inherit",onClick:C},GIA)):null)}),CC=ee(bIA,{name:"MuiAlert"})(_IA),MIA=function(A){return{root:{margin:0},body2:A.typography.body2,body1:A.typography.body1,caption:A.typography.caption,button:A.typography.button,h1:A.typography.h1,h2:A.typography.h2,h3:A.typography.h3,h4:A.typography.h4,h5:A.typography.h5,h6:A.typography.h6,subtitle1:A.typography.subtitle1,subtitle2:A.typography.subtitle2,overline:A.typography.overline,srOnly:{position:"absolute",height:1,width:1,overflow:"hidden"},alignLeft:{textAlign:"left"},alignCenter:{textAlign:"center"},alignRight:{textAlign:"right"},alignJustify:{textAlign:"justify"},noWrap:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},gutterBottom:{marginBottom:"0.35em"},paragraph:{marginBottom:16},colorInherit:{color:"inherit"},colorPrimary:{color:A.palette.primary.main},colorSecondary:{color:A.palette.secondary.main},colorTextPrimary:{color:A.palette.text.primary},colorTextSecondary:{color:A.palette.text.secondary},colorError:{color:A.palette.error.main},displayInline:{display:"inline"},displayBlock:{display:"block"}}},Rx={h1:"h1",h2:"h2",h3:"h3",h4:"h4",h5:"h5",h6:"h6",subtitle1:"h6",subtitle2:"h6",body1:"p",body2:"p"},kIA=p.exports.forwardRef(function(A,t){var i=A.align,n=i===void 0?"inherit":i,r=A.classes,o=A.className,s=A.color,a=s===void 0?"initial":s,g=A.component,I=A.display,l=I===void 0?"initial":I,c=A.gutterBottom,C=c===void 0?!1:c,B=A.noWrap,u=B===void 0?!1:B,E=A.paragraph,h=E===void 0?!1:E,f=A.variant,Q=f===void 0?"body1":f,d=A.variantMapping,w=d===void 0?Rx:d,m=SA(A,["align","classes","className","color","component","display","gutterBottom","noWrap","paragraph","variant","variantMapping"]),v=g||(h?"p":w[Q]||Rx[Q])||"span";return p.exports.createElement(v,_({className:yA(r.root,o,Q!=="inherit"&&r[Q],a!=="initial"&&r["color".concat(Qe(a))],u&&r.noWrap,C&&r.gutterBottom,h&&r.paragraph,n!=="inherit"&&r["align".concat(Qe(n))],l!=="initial"&&r["display".concat(Qe(l))]),ref:t},m))}),Xo=ee(MIA,{name:"MuiTypography"})(kIA),TIA={root:{},underlineNone:{textDecoration:"none"},underlineHover:{textDecoration:"none","&:hover":{textDecoration:"underline"}},underlineAlways:{textDecoration:"underline"},button:{position:"relative",WebkitTapHighlightColor:"transparent",backgroundColor:"transparent",outline:0,border:0,margin:0,borderRadius:0,padding:0,cursor:"pointer",userSelect:"none",verticalAlign:"middle","-moz-appearance":"none","-webkit-appearance":"none","&::-moz-focus-inner":{borderStyle:"none"},"&$focusVisible":{outline:"auto"}},focusVisible:{}},UIA=p.exports.forwardRef(function(A,t){var i=A.classes,n=A.className,r=A.color,o=r===void 0?"primary":r,s=A.component,a=s===void 0?"a":s,g=A.onBlur,I=A.onFocus,l=A.TypographyClasses,c=A.underline,C=c===void 0?"hover":c,B=A.variant,u=B===void 0?"inherit":B,E=SA(A,["classes","className","color","component","onBlur","onFocus","TypographyClasses","underline","variant"]),h=Ru(),f=h.isFocusVisible,Q=h.onBlurVisible,d=h.ref,w=p.exports.useState(!1),m=w[0],v=w[1],x=ze(t,d),D=function(M){m&&(Q(),v(!1)),g&&g(M)},F=function(M){f(M)&&v(!0),I&&I(M)};return p.exports.createElement(Xo,_({className:yA(i.root,i["underline".concat(Qe(C))],n,m&&i.focusVisible,a==="button"&&i.button),classes:l,color:o,component:a,onBlur:D,onFocus:F,ref:x,variant:u},E))}),xu=ee(TIA,{name:"MuiLink"})(UIA);function PIA(){return XA(Pi,{children:['Avivator could not find an IFD index for the requested OME-TIFF, and therefore longer latencies are expected. Please read our documentation on "Indexed TIFF" to generate an IFD index for your OME-TIFF and improve initial load times.',H(xu,{target:"_blank",rel:"noopener noreferrer",href:"http://viv.gehlenborglab.org/#data-preparation",children:"in this section of our documentation"})," ","and then place the offsets.json adjacent to the OME-TIFF wherever hosted."]})}function HIA({message:e}){return XA(Pi,{children:[e?`The following error was thrown: "${e}". `:"Something has gone wrong loading your image. ","Please refer to the"," ",H(xu,{target:"_blank",rel:"noopener noreferrer",href:"http://viv.gehlenborglab.org",children:"docs"})," ","for information about supported file formats."]})}function qIA(){return XA(Pi,{children:['You are seeing a random demo image because no image URL was provided. To view your own images, enter a URL into the "OME-TIFF/Bioformats-Zarr URL" field. See the'," ",H(xu,{target:"_blank",rel:"noopener noreferrer",href:"http://viv.gehlenborglab.org",children:"docs"})," ","for details on how to prepare your images for viewing with Avivator."]})}function JIA(){return H(Pi,{children:"Volume rendering is only available on browsers that support WebGL2. If you are using Safari, you can turn on WebGL2 by navigating in the top menubar to check Develop > Experimental Features > WebGL 2.0 and then refreshing the page."})}const OIA=()=>{const[e,A,t,i,n,r,o]=_A(s=>[s.isOffsetsSnackbarOn,s.loaderErrorSnackbar,s.isNoImageUrlSnackbarOn,s.toggleIsOffsetsSnackbarOn,s.toggleIsNoImageUrlSnackbarOn,s.isVolumeRenderingWarningOn,s.toggleIsVolumeRenderingWarningOn],Ue);return XA(Pi,{children:[H(cC,{open:e,anchorOrigin:{vertical:"top",horizontal:"center"},elevation:6,variant:"filled",children:H(CC,{onClose:i,severity:"warning",children:H(PIA,{})})}),H(cC,{open:A.on,anchorOrigin:{vertical:"top",horizontal:"center"},elevation:6,variant:"filled",children:H(CC,{onClose:()=>_A.setState({loaderErrorSnackbar:{on:!1,message:null}}),severity:"error",children:H(HIA,{message:A.message})})}),H(cC,{open:t,anchorOrigin:{vertical:"top",horizontal:"center"},elevation:6,variant:"filled",children:H(CC,{onClose:n,severity:"info",children:H(qIA,{})})}),H(cC,{open:r,anchorOrigin:{vertical:"top",horizontal:"center"},elevation:6,variant:"filled",children:H(CC,{onClose:o,severity:"warning",children:H(JIA,{})})})]})};function YIA(e){var A=typeof e;return e!=null&&(A=="object"||A=="function")}var bM=YIA,KIA=typeof gc=="object"&&gc&&gc.Object===Object&&gc,VIA=KIA,WIA=VIA,zIA=typeof self=="object"&&self&&self.Object===Object&&self,jIA=WIA||zIA||Function("return this")(),GM=jIA,XIA=GM,ZIA=function(){return XIA.Date.now()},$IA=ZIA,AlA=/\s/;function elA(e){for(var A=e.length;A--&&AlA.test(e.charAt(A)););return A}var tlA=elA,ilA=tlA,nlA=/^\s+/;function rlA(e){return e&&e.slice(0,ilA(e)+1).replace(nlA,"")}var olA=rlA,slA=GM,alA=slA.Symbol,_M=alA,xx=_M,MM=Object.prototype,glA=MM.hasOwnProperty,IlA=MM.toString,bg=xx?xx.toStringTag:void 0;function llA(e){var A=glA.call(e,bg),t=e[bg];try{e[bg]=void 0;var i=!0}catch{}var n=IlA.call(e);return i&&(A?e[bg]=t:delete e[bg]),n}var clA=llA,ClA=Object.prototype,BlA=ClA.toString;function ElA(e){return BlA.call(e)}var ulA=ElA,Fx=_M,hlA=clA,flA=ulA,QlA="[object Null]",dlA="[object Undefined]",Nx=Fx?Fx.toStringTag:void 0;function plA(e){return e==null?e===void 0?dlA:QlA:Nx&&Nx in Object(e)?hlA(e):flA(e)}var ylA=plA;function mlA(e){return e!=null&&typeof e=="object"}var wlA=mlA,vlA=ylA,SlA=wlA,DlA="[object Symbol]";function RlA(e){return typeof e=="symbol"||SlA(e)&&vlA(e)==DlA}var xlA=RlA,FlA=olA,Lx=bM,NlA=xlA,bx=0/0,LlA=/^[-+]0x[0-9a-f]+$/i,blA=/^0b[01]+$/i,GlA=/^0o[0-7]+$/i,_lA=parseInt;function MlA(e){if(typeof e=="number")return e;if(NlA(e))return bx;if(Lx(e)){var A=typeof e.valueOf=="function"?e.valueOf():e;e=Lx(A)?A+"":A}if(typeof e!="string")return e===0?e:+e;e=FlA(e);var t=blA.test(e);return t||GlA.test(e)?_lA(e.slice(2),t?2:8):LlA.test(e)?bx:+e}var klA=MlA,TlA=bM,Tf=$IA,Gx=klA,UlA="Expected a function",PlA=Math.max,HlA=Math.min;function qlA(e,A,t){var i,n,r,o,s,a,g=0,I=!1,l=!1,c=!0;if(typeof e!="function")throw new TypeError(UlA);A=Gx(A)||0,TlA(t)&&(I=!!t.leading,l="maxWait"in t,r=l?PlA(Gx(t.maxWait)||0,A):r,c="trailing"in t?!!t.trailing:c);function C(m){var v=i,x=n;return i=n=void 0,g=m,o=e.apply(x,v),o}function B(m){return g=m,s=setTimeout(h,A),I?C(m):o}function u(m){var v=m-a,x=m-g,D=A-v;return l?HlA(D,r-x):D}function E(m){var v=m-a,x=m-g;return a===void 0||v>=A||v<0||l&&x>=r}function h(){var m=Tf();if(E(m))return f(m);s=setTimeout(h,u(m))}function f(m){return s=void 0,c&&i?C(m):(i=n=void 0,o)}function Q(){s!==void 0&&clearTimeout(s),g=0,i=a=n=s=void 0}function d(){return s===void 0?o:f(Tf())}function w(){var m=Tf(),v=E(m);if(i=arguments,n=this,a=m,v){if(s===void 0)return B(a);if(l)return clearTimeout(s),s=setTimeout(h,A),C(a)}return s===void 0&&(s=setTimeout(h,A)),o}return w.cancel=Q,w.flush=d,w}var kM=qlA;const JlA=()=>{const[e,A,t]=_A(v=>[v.useLinkedView,v.use3d,v.viewState],Ue),[i,n,r,o]=yi(v=>[v.colors,v.contrastLimits,v.channelsVisible,v.selections],Ue),s=hn(),a=um(),[g,I,l,c,C,B,u,E,h,f,Q,d,w]=he(v=>[v.lensSelection,v.colormap,v.renderingMode,v.xSlice,v.ySlice,v.zSlice,v.resolution,v.lensEnabled,v.zoomLock,v.panLock,v.isOverviewOn,v.onViewportLoad,v.useFixedAxis],Ue),m=({viewState:{zoom:v}})=>{const x=Math.min(Math.max(Math.round(-v),0),s.length-1);_A.setState({pyramidResolution:x})};return A?H(RaA,{loader:s,contrastLimits:n,colors:i,channelsVisible:r,selections:o,colormap:I,xSlice:c,ySlice:C,zSlice:B,resolution:u,extensions:[TgA(I,l)],height:a.height,width:a.width,onViewportLoad:d,useFixedAxis:w,viewStates:[t],onViewStateChange:kM(({viewState:v,viewId:x})=>_A.setState({viewState:{...v,id:x}}),250,{trailing:!0})}):e?H(DaA,{loader:s,contrastLimits:n,colors:i,channelsVisible:r,selections:o,height:a.height,width:a.width,zoomLock:h,panLock:f,hoverHooks:{handleValue:v=>_A.setState({pixelValues:v})},lensSelection:g,lensEnabled:E,onViewportLoad:d,extensions:[I?new iE:new nE],colormap:I||"viridis",snapScaleBar:!0}):H(SaA,{loader:s,contrastLimits:n,colors:i,channelsVisible:r,selections:o,height:a.height,width:a.width,overview:pgA,overviewOn:Q,hoverHooks:{handleValue:v=>_A.setState({pixelValues:v})},lensSelection:g,lensEnabled:E,onViewportLoad:d,extensions:[I?new iE:new nE],colormap:I||"viridis",onViewStateChange:m,snapScaleBar:!0})};var gr=44,OlA=function(A){return{root:{display:"inline-block"},static:{transition:A.transitions.create("transform")},indeterminate:{animation:"$circular-rotate 1.4s linear infinite"},determinate:{transition:A.transitions.create("transform")},colorPrimary:{color:A.palette.primary.main},colorSecondary:{color:A.palette.secondary.main},svg:{display:"block"},circle:{stroke:"currentColor"},circleStatic:{transition:A.transitions.create("stroke-dashoffset")},circleIndeterminate:{animation:"$circular-dash 1.4s ease-in-out infinite",strokeDasharray:"80px, 200px",strokeDashoffset:"0px"},circleDeterminate:{transition:A.transitions.create("stroke-dashoffset")},"@keyframes circular-rotate":{"0%":{transformOrigin:"50% 50%"},"100%":{transform:"rotate(360deg)"}},"@keyframes circular-dash":{"0%":{strokeDasharray:"1px, 200px",strokeDashoffset:"0px"},"50%":{strokeDasharray:"100px, 200px",strokeDashoffset:"-15px"},"100%":{strokeDasharray:"100px, 200px",strokeDashoffset:"-125px"}},circleDisableShrink:{animation:"none"}}},YlA=p.exports.forwardRef(function(A,t){var i=A.classes,n=A.className,r=A.color,o=r===void 0?"primary":r,s=A.disableShrink,a=s===void 0?!1:s,g=A.size,I=g===void 0?40:g,l=A.style,c=A.thickness,C=c===void 0?3.6:c,B=A.value,u=B===void 0?0:B,E=A.variant,h=E===void 0?"indeterminate":E,f=SA(A,["classes","className","color","disableShrink","size","style","thickness","value","variant"]),Q={},d={},w={};if(h==="determinate"||h==="static"){var m=2*Math.PI*((gr-C)/2);Q.strokeDasharray=m.toFixed(3),w["aria-valuenow"]=Math.round(u),Q.strokeDashoffset="".concat(((100-u)/100*m).toFixed(3),"px"),d.transform="rotate(-90deg)"}return p.exports.createElement("div",_({className:yA(i.root,n,o!=="inherit"&&i["color".concat(Qe(o))],{determinate:i.determinate,indeterminate:i.indeterminate,static:i.static}[h]),style:_({width:I,height:I},d,l),ref:t,role:"progressbar"},w,f),p.exports.createElement("svg",{className:i.svg,viewBox:"".concat(gr/2," ").concat(gr/2," ").concat(gr," ").concat(gr)},p.exports.createElement("circle",{className:yA(i.circle,a&&i.circleDisableShrink,{determinate:i.circleDeterminate,indeterminate:i.circleIndeterminate,static:i.circleStatic}[h]),style:Q,cx:gr,cy:gr,r:(gr-C)/2,fill:"none",strokeWidth:C})))}),TM=ee(OlA,{name:"MuiCircularProgress",flip:!1})(YlA),KlA=[0,1,2,3,4,5,6,7,8,9,10],VlA=["auto",!0,1,2,3,4,5,6,7,8,9,10,11,12];function WlA(e,A,t){var i={};VlA.forEach(function(n){var r="grid-".concat(t,"-").concat(n);if(n===!0){i[r]={flexBasis:0,flexGrow:1,maxWidth:"100%"};return}if(n==="auto"){i[r]={flexBasis:"auto",flexGrow:0,maxWidth:"none"};return}var o="".concat(Math.round(n/12*1e8)/1e6,"%");i[r]={flexBasis:o,flexGrow:0,maxWidth:o}}),t==="xs"?_(e,i):e[A.breakpoints.up(t)]=i}function Uf(e){var A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1,t=parseFloat(e);return"".concat(t/A).concat(String(e).replace(String(t),"")||"px")}function zlA(e,A){var t={};return KlA.forEach(function(i){var n=e.spacing(i);n!==0&&(t["spacing-".concat(A,"-").concat(i)]={margin:"-".concat(Uf(n,2)),width:"calc(100% + ".concat(Uf(n),")"),"& > $item":{padding:Uf(n,2)}})}),t}var jlA=function(A){return _({root:{},container:{boxSizing:"border-box",display:"flex",flexWrap:"wrap",width:"100%"},item:{boxSizing:"border-box",margin:"0"},zeroMinWidth:{minWidth:0},"direction-xs-column":{flexDirection:"column"},"direction-xs-column-reverse":{flexDirection:"column-reverse"},"direction-xs-row-reverse":{flexDirection:"row-reverse"},"wrap-xs-nowrap":{flexWrap:"nowrap"},"wrap-xs-wrap-reverse":{flexWrap:"wrap-reverse"},"align-items-xs-center":{alignItems:"center"},"align-items-xs-flex-start":{alignItems:"flex-start"},"align-items-xs-flex-end":{alignItems:"flex-end"},"align-items-xs-baseline":{alignItems:"baseline"},"align-content-xs-center":{alignContent:"center"},"align-content-xs-flex-start":{alignContent:"flex-start"},"align-content-xs-flex-end":{alignContent:"flex-end"},"align-content-xs-space-between":{alignContent:"space-between"},"align-content-xs-space-around":{alignContent:"space-around"},"justify-content-xs-center":{justifyContent:"center"},"justify-content-xs-flex-end":{justifyContent:"flex-end"},"justify-content-xs-space-between":{justifyContent:"space-between"},"justify-content-xs-space-around":{justifyContent:"space-around"},"justify-content-xs-space-evenly":{justifyContent:"space-evenly"}},zlA(A,"xs"),A.breakpoints.keys.reduce(function(t,i){return WlA(t,A,i),t},{}))},XlA=p.exports.forwardRef(function(A,t){var i=A.alignContent,n=i===void 0?"stretch":i,r=A.alignItems,o=r===void 0?"stretch":r,s=A.classes,a=A.className,g=A.component,I=g===void 0?"div":g,l=A.container,c=l===void 0?!1:l,C=A.direction,B=C===void 0?"row":C,u=A.item,E=u===void 0?!1:u,h=A.justify,f=A.justifyContent,Q=f===void 0?"flex-start":f,d=A.lg,w=d===void 0?!1:d,m=A.md,v=m===void 0?!1:m,x=A.sm,D=x===void 0?!1:x,F=A.spacing,N=F===void 0?0:F,M=A.wrap,U=M===void 0?"wrap":M,P=A.xl,W=P===void 0?!1:P,J=A.xs,Z=J===void 0?!1:J,z=A.zeroMinWidth,O=z===void 0?!1:z,Y=SA(A,["alignContent","alignItems","classes","className","component","container","direction","item","justify","justifyContent","lg","md","sm","spacing","wrap","xl","xs","zeroMinWidth"]),k=yA(s.root,a,c&&[s.container,N!==0&&s["spacing-xs-".concat(String(N))]],E&&s.item,O&&s.zeroMinWidth,B!=="row"&&s["direction-xs-".concat(String(B))],U!=="wrap"&&s["wrap-xs-".concat(String(U))],o!=="stretch"&&s["align-items-xs-".concat(String(o))],n!=="stretch"&&s["align-content-xs-".concat(String(n))],(h||Q)!=="flex-start"&&s["justify-content-xs-".concat(String(h||Q))],Z!==!1&&s["grid-xs-".concat(String(Z))],D!==!1&&s["grid-sm-".concat(String(D))],v!==!1&&s["grid-md-".concat(String(v))],w!==!1&&s["grid-lg-".concat(String(w))],W!==!1&&s["grid-xl-".concat(String(W))]);return p.exports.createElement(I,_({className:k,ref:t},Y))}),ZlA=ee(jlA,{name:"MuiGrid"})(XlA),$A=ZlA,Ds;function UM(){if(Ds)return Ds;var e=document.createElement("div"),A=document.createElement("div");return A.style.width="10px",A.style.height="1px",e.appendChild(A),e.dir="rtl",e.style.fontSize="14px",e.style.width="4px",e.style.height="1px",e.style.position="absolute",e.style.top="-1000px",e.style.overflow="scroll",document.body.appendChild(e),Ds="reverse",e.scrollLeft>0?Ds="default":(e.scrollLeft=1,e.scrollLeft===0&&(Ds="negative")),document.body.removeChild(e),Ds}function _x(e,A){var t=e.scrollLeft;if(A!=="rtl")return t;var i=UM();switch(i){case"negative":return e.scrollWidth-e.clientWidth+t;case"reverse":return e.scrollWidth-e.clientWidth-t;default:return t}}function $lA(e){return(1+Math.sin(Math.PI*e-Math.PI/2))/2}function AcA(e,A,t){var i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},n=arguments.length>4&&arguments[4]!==void 0?arguments[4]:function(){},r=i.ease,o=r===void 0?$lA:r,s=i.duration,a=s===void 0?300:s,g=null,I=A[e],l=!1,c=function(){l=!0},C=function B(u){if(l){n(new Error("Animation cancelled"));return}g===null&&(g=u);var E=Math.min(1,(u-g)/a);if(A[e]=o(E)*(t-I)+I,E>=1){requestAnimationFrame(function(){n(null)});return}requestAnimationFrame(B)};return I===t?(n(new Error("Element already at target position")),c):(requestAnimationFrame(C),c)}var ecA={width:99,height:99,position:"absolute",top:-9999,overflow:"scroll"};function tcA(e){var A=e.onChange,t=SA(e,["onChange"]),i=p.exports.useRef(),n=p.exports.useRef(null),r=function(){i.current=n.current.offsetHeight-n.current.clientHeight};return p.exports.useEffect(function(){var o=ya(function(){var s=i.current;r(),s!==i.current&&A(i.current)});return window.addEventListener("resize",o),function(){o.clear(),window.removeEventListener("resize",o)}},[A]),p.exports.useEffect(function(){r(),A(i.current)},[A]),p.exports.createElement("div",_({style:ecA,ref:n},t))}var icA=function(A){return{root:{position:"absolute",height:2,bottom:0,width:"100%",transition:A.transitions.create()},colorPrimary:{backgroundColor:A.palette.primary.main},colorSecondary:{backgroundColor:A.palette.secondary.main},vertical:{height:"100%",width:2,right:0}}},ncA=p.exports.forwardRef(function(A,t){var i=A.classes,n=A.className,r=A.color,o=A.orientation,s=SA(A,["classes","className","color","orientation"]);return p.exports.createElement("span",_({className:yA(i.root,i["color".concat(Qe(r))],n,o==="vertical"&&i.vertical),ref:t},s))}),rcA=ee(icA,{name:"PrivateTabIndicator"})(ncA),ocA=wi(p.exports.createElement("path",{d:"M15.41 16.09l-4.58-4.59 4.58-4.59L14 5.5l-6 6 6 6z"})),scA=wi(p.exports.createElement("path",{d:"M8.59 16.34l4.58-4.59-4.58-4.59L10 5.75l6 6-6 6z"})),acA={root:{width:40,flexShrink:0,opacity:.8,"&$disabled":{opacity:0}},vertical:{width:"100%",height:40,"& svg":{transform:"rotate(90deg)"}},disabled:{}},gcA=p.exports.createElement(ocA,{fontSize:"small"}),IcA=p.exports.createElement(scA,{fontSize:"small"}),lcA=p.exports.forwardRef(function(A,t){var i=A.classes,n=A.className,r=A.direction,o=A.orientation,s=A.disabled,a=SA(A,["classes","className","direction","orientation","disabled"]);return p.exports.createElement(tc,_({component:"div",className:yA(i.root,n,s&&i.disabled,o==="vertical"&&i.vertical),ref:t,role:null,tabIndex:null},a),r==="left"?gcA:IcA)}),ccA=ee(acA,{name:"MuiTabScrollButton"})(lcA),CcA=function(A){return{root:{overflow:"hidden",minHeight:48,WebkitOverflowScrolling:"touch",display:"flex"},vertical:{flexDirection:"column"},flexContainer:{display:"flex"},flexContainerVertical:{flexDirection:"column"},centered:{justifyContent:"center"},scroller:{position:"relative",display:"inline-block",flex:"1 1 auto",whiteSpace:"nowrap"},fixed:{overflowX:"hidden",width:"100%"},scrollable:{overflowX:"scroll",scrollbarWidth:"none","&::-webkit-scrollbar":{display:"none"}},scrollButtons:{},scrollButtonsDesktop:y({},A.breakpoints.down("xs"),{display:"none"}),indicator:{}}},BcA=p.exports.forwardRef(function(A,t){var i=A["aria-label"],n=A["aria-labelledby"],r=A.action,o=A.centered,s=o===void 0?!1:o,a=A.children,g=A.classes,I=A.className,l=A.component,c=l===void 0?"div":l,C=A.indicatorColor,B=C===void 0?"secondary":C,u=A.onChange,E=A.orientation,h=E===void 0?"horizontal":E,f=A.ScrollButtonComponent,Q=f===void 0?ccA:f,d=A.scrollButtons,w=d===void 0?"auto":d,m=A.selectionFollowsFocus,v=A.TabIndicatorProps,x=v===void 0?{}:v,D=A.TabScrollButtonProps,F=A.textColor,N=F===void 0?"inherit":F,M=A.value,U=A.variant,P=U===void 0?"standard":U,W=SA(A,["aria-label","aria-labelledby","action","centered","children","classes","className","component","indicatorColor","onChange","orientation","ScrollButtonComponent","scrollButtons","selectionFollowsFocus","TabIndicatorProps","TabScrollButtonProps","textColor","value","variant"]),J=Ll(),Z=P==="scrollable",z=J.direction==="rtl",O=h==="vertical",Y=O?"scrollTop":"scrollLeft",k=O?"top":"left",q=O?"bottom":"right",j=O?"clientHeight":"clientWidth",AA=O?"height":"width",iA=p.exports.useState(!1),gA=iA[0],sA=iA[1],BA=p.exports.useState({}),IA=BA[0],bA=BA[1],EA=p.exports.useState({start:!1,end:!1}),QA=EA[0],TA=EA[1],RA=p.exports.useState({overflow:"hidden",marginBottom:null}),UA=RA[0],fA=RA[1],NA=new Map,ZA=p.exports.useRef(null),ne=p.exports.useRef(null),Ie=function(){var rA=ZA.current,GA;if(rA){var ve=rA.getBoundingClientRect();GA={clientWidth:rA.clientWidth,scrollLeft:rA.scrollLeft,scrollTop:rA.scrollTop,scrollLeftNormalized:_x(rA,J.direction),scrollWidth:rA.scrollWidth,top:ve.top,bottom:ve.bottom,left:ve.left,right:ve.right}}var pe;if(rA&&M!==!1){var Fe=ne.current.children;if(Fe.length>0){var Ne=Fe[NA.get(M)];pe=Ne?Ne.getBoundingClientRect():null}}return{tabsMeta:GA,tabMeta:pe}},KA=Oe(function(){var PA,rA=Ie(),GA=rA.tabsMeta,ve=rA.tabMeta,pe=0;if(ve&&GA)if(O)pe=ve.top-GA.top+GA.scrollTop;else{var Fe=z?GA.scrollLeftNormalized+GA.clientWidth-GA.scrollWidth:GA.scrollLeft;pe=ve.left-GA.left+Fe}var Ne=(PA={},y(PA,k,pe),y(PA,AA,ve?ve[AA]:0),PA);if(isNaN(IA[k])||isNaN(IA[AA]))bA(Ne);else{var Xe=Math.abs(IA[k]-Ne[k]),it=Math.abs(IA[AA]-Ne[AA]);(Xe>=1||it>=1)&&bA(Ne)}}),eA=function(rA){AcA(Y,ZA.current,rA)},aA=function(rA){var GA=ZA.current[Y];O?GA+=rA:(GA+=rA*(z?-1:1),GA*=z&&UM()==="reverse"?-1:1),eA(GA)},FA=function(){aA(-ZA.current[j])},re=function(){aA(ZA.current[j])},VA=p.exports.useCallback(function(PA){fA({overflow:null,marginBottom:-PA})},[]),_e=function(){var rA={};rA.scrollbarSizeListener=Z?p.exports.createElement(tcA,{className:g.scrollable,onChange:VA}):null;var GA=QA.start||QA.end,ve=Z&&(w==="auto"&&GA||w==="desktop"||w==="on");return rA.scrollButtonStart=ve?p.exports.createElement(Q,_({orientation:h,direction:z?"right":"left",onClick:FA,disabled:!QA.start,className:yA(g.scrollButtons,w!=="on"&&g.scrollButtonsDesktop)},D)):null,rA.scrollButtonEnd=ve?p.exports.createElement(Q,_({orientation:h,direction:z?"left":"right",onClick:re,disabled:!QA.end,className:yA(g.scrollButtons,w!=="on"&&g.scrollButtonsDesktop)},D)):null,rA},WA=Oe(function(){var PA=Ie(),rA=PA.tabsMeta,GA=PA.tabMeta;if(!(!GA||!rA)){if(GA[k]rA[q]){var pe=rA[Y]+(GA[q]-rA[q]);eA(pe)}}}),qA=Oe(function(){if(Z&&w!=="off"){var PA=ZA.current,rA=PA.scrollTop,GA=PA.scrollHeight,ve=PA.clientHeight,pe=PA.scrollWidth,Fe=PA.clientWidth,Ne,Xe;if(O)Ne=rA>1,Xe=rA1,Xe=z?it>1:it *:first-child":{marginBottom:6}},textColorInherit:{color:"inherit",opacity:.7,"&$selected":{opacity:1},"&$disabled":{opacity:.5}},textColorPrimary:{color:A.palette.text.secondary,"&$selected":{color:A.palette.primary.main},"&$disabled":{color:A.palette.text.disabled}},textColorSecondary:{color:A.palette.text.secondary,"&$selected":{color:A.palette.secondary.main},"&$disabled":{color:A.palette.text.disabled}},selected:{},disabled:{},fullWidth:{flexShrink:1,flexGrow:1,flexBasis:0,maxWidth:"none"},wrapped:{fontSize:A.typography.pxToRem(12),lineHeight:1.5},wrapper:{display:"inline-flex",alignItems:"center",justifyContent:"center",width:"100%",flexDirection:"column"}}},hcA=p.exports.forwardRef(function(A,t){var i=A.classes,n=A.className,r=A.disabled,o=r===void 0?!1:r,s=A.disableFocusRipple,a=s===void 0?!1:s,g=A.fullWidth,I=A.icon,l=A.indicator,c=A.label,C=A.onChange,B=A.onClick,u=A.onFocus,E=A.selected,h=A.selectionFollowsFocus,f=A.textColor,Q=f===void 0?"inherit":f,d=A.value,w=A.wrapped,m=w===void 0?!1:w,v=SA(A,["classes","className","disabled","disableFocusRipple","fullWidth","icon","indicator","label","onChange","onClick","onFocus","selected","selectionFollowsFocus","textColor","value","wrapped"]),x=function(N){C&&C(N,d),B&&B(N)},D=function(N){h&&!E&&C&&C(N,d),u&&u(N)};return p.exports.createElement(tc,_({focusRipple:!a,className:yA(i.root,i["textColor".concat(Qe(Q))],n,o&&i.disabled,E&&i.selected,c&&I&&i.labelIcon,g&&i.fullWidth,m&&i.wrapped),ref:t,role:"tab","aria-selected":E,disabled:o,onClick:x,onFocus:D,tabIndex:E?0:-1},v),p.exports.createElement("span",{className:i.wrapper},I,c),l)}),Mx=ee(ucA,{name:"MuiTab"})(hcA),fcA=function(A){return{root:{height:1,margin:0,border:"none",flexShrink:0,backgroundColor:A.palette.divider},absolute:{position:"absolute",bottom:0,left:0,width:"100%"},inset:{marginLeft:72},light:{backgroundColor:ut(A.palette.divider,.08)},middle:{marginLeft:A.spacing(2),marginRight:A.spacing(2)},vertical:{height:"100%",width:1},flexItem:{alignSelf:"stretch",height:"auto"}}},QcA=p.exports.forwardRef(function(A,t){var i=A.absolute,n=i===void 0?!1:i,r=A.classes,o=A.className,s=A.component,a=s===void 0?"hr":s,g=A.flexItem,I=g===void 0?!1:g,l=A.light,c=l===void 0?!1:l,C=A.orientation,B=C===void 0?"horizontal":C,u=A.role,E=u===void 0?a!=="hr"?"separator":void 0:u,h=A.variant,f=h===void 0?"fullWidth":h,Q=SA(A,["absolute","classes","className","component","flexItem","light","orientation","role","variant"]);return p.exports.createElement(a,_({className:yA(r.root,o,f!=="fullWidth"&&r[f],n&&r.absolute,I&&r.flexItem,c&&r.light,B==="vertical"&&r.vertical),role:E,ref:t},Q))}),s0=ee(fcA,{name:"MuiDivider"})(QcA),PM=p.exports.createContext();function dcA(){return p.exports.useContext(PM)}var ym=PM;function eg(){return p.exports.useContext(ym)}var pcA={root:{padding:9},checked:{},disabled:{},input:{cursor:"inherit",position:"absolute",opacity:0,width:"100%",height:"100%",top:0,left:0,margin:0,padding:0,zIndex:1}},ycA=p.exports.forwardRef(function(A,t){var i=A.autoFocus,n=A.checked,r=A.checkedIcon,o=A.classes,s=A.className,a=A.defaultChecked,g=A.disabled,I=A.icon,l=A.id,c=A.inputProps,C=A.inputRef,B=A.name,u=A.onBlur,E=A.onChange,h=A.onFocus,f=A.readOnly,Q=A.required,d=A.tabIndex,w=A.type,m=A.value,v=SA(A,["autoFocus","checked","checkedIcon","classes","className","defaultChecked","disabled","icon","id","inputProps","inputRef","name","onBlur","onChange","onFocus","readOnly","required","tabIndex","type","value"]),x=Su({controlled:n,default:Boolean(a),name:"SwitchBase",state:"checked"}),D=Fl(x,2),F=D[0],N=D[1],M=eg(),U=function(O){h&&h(O),M&&M.onFocus&&M.onFocus(O)},P=function(O){u&&u(O),M&&M.onBlur&&M.onBlur(O)},W=function(O){var Y=O.target.checked;N(Y),E&&E(O,Y)},J=g;M&&typeof J=="undefined"&&(J=M.disabled);var Z=w==="checkbox"||w==="radio";return p.exports.createElement(jo,_({component:"span",className:yA(o.root,s,F&&o.checked,J&&o.disabled),disabled:J,tabIndex:null,role:void 0,onFocus:U,onBlur:P,ref:t},v),p.exports.createElement("input",_({autoFocus:i,checked:n,defaultChecked:a,className:o.input,disabled:J,id:Z&&l,name:B,onChange:W,readOnly:f,ref:C,required:Q,tabIndex:d,type:w,value:m},c)),F?r:I)}),mcA=ee(pcA,{name:"PrivateSwitchBase"})(ycA),wcA=wi(p.exports.createElement("path",{d:"M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z"})),vcA=wi(p.exports.createElement("path",{d:"M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"})),ScA=wi(p.exports.createElement("path",{d:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 10H7v-2h10v2z"})),DcA=function(A){return{root:{color:A.palette.text.secondary},checked:{},disabled:{},indeterminate:{},colorPrimary:{"&$checked":{color:A.palette.primary.main,"&:hover":{backgroundColor:ut(A.palette.primary.main,A.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}}},"&$disabled":{color:A.palette.action.disabled}},colorSecondary:{"&$checked":{color:A.palette.secondary.main,"&:hover":{backgroundColor:ut(A.palette.secondary.main,A.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}}},"&$disabled":{color:A.palette.action.disabled}}}},RcA=p.exports.createElement(vcA,null),xcA=p.exports.createElement(wcA,null),FcA=p.exports.createElement(ScA,null),NcA=p.exports.forwardRef(function(A,t){var i=A.checkedIcon,n=i===void 0?RcA:i,r=A.classes,o=A.color,s=o===void 0?"secondary":o,a=A.icon,g=a===void 0?xcA:a,I=A.indeterminate,l=I===void 0?!1:I,c=A.indeterminateIcon,C=c===void 0?FcA:c,B=A.inputProps,u=A.size,E=u===void 0?"medium":u,h=SA(A,["checkedIcon","classes","color","icon","indeterminate","indeterminateIcon","inputProps","size"]),f=l?C:g,Q=l?C:n;return p.exports.createElement(mcA,_({type:"checkbox",classes:{root:yA(r.root,r["color".concat(Qe(s))],l&&r.indeterminate),checked:r.checked,disabled:r.disabled},color:s,inputProps:_({"data-indeterminate":l},B),icon:p.exports.cloneElement(f,{fontSize:f.props.fontSize===void 0&&E==="small"?E:f.props.fontSize}),checkedIcon:p.exports.cloneElement(Q,{fontSize:Q.props.fontSize===void 0&&E==="small"?E:Q.props.fontSize}),ref:t},h))}),mm=ee(DcA,{name:"MuiCheckbox"})(NcA),LcA=function(A){return{thumb:{"&$open":{"& $offset":{transform:"scale(1) translateY(-10px)"}}},open:{},offset:_({zIndex:1},A.typography.body2,{fontSize:A.typography.pxToRem(12),lineHeight:1.2,transition:A.transitions.create(["transform"],{duration:A.transitions.duration.shortest}),top:-34,transformOrigin:"bottom center",transform:"scale(0)",position:"absolute"}),circle:{display:"flex",alignItems:"center",justifyContent:"center",width:32,height:32,borderRadius:"50% 50% 50% 0",backgroundColor:"currentColor",transform:"rotate(-45deg)"},label:{color:A.palette.primary.contrastText,transform:"rotate(45deg)"}}};function bcA(e){var A=e.children,t=e.classes,i=e.className,n=e.open,r=e.value,o=e.valueLabelDisplay;return o==="off"?A:p.exports.cloneElement(A,{className:yA(A.props.className,(n||o==="on")&&t.open,t.thumb)},p.exports.createElement("span",{className:yA(t.offset,i)},p.exports.createElement("span",{className:t.circle},p.exports.createElement("span",{className:t.label},r))))}var GcA=ee(LcA,{name:"PrivateValueLabel"})(bcA);function Pf(e,A){return e-A}function Hf(e,A,t){return Math.min(Math.max(A,e),t)}function kx(e,A){var t=e.reduce(function(n,r,o){var s=Math.abs(A-r);return n===null||s0&&aA.some(function(wA){return wA.label})&&o.marked,Y===!1&&o.trackFalse,M==="vertical"&&o.vertical,Y==="inverted"&&o.trackInverted),onMouseDown:ls},BA),p.exports.createElement("span",{className:o.rail}),p.exports.createElement("span",{className:o.track,style:cs}),p.exports.createElement("input",{value:eA.join(","),name:v,type:"hidden"}),aA.map(function(wA,LA){var Se=EC(wA.value,m,d),ye=hC[Fe].offset(Se),te;return Y===!1?te=eA.indexOf(wA.value)!==-1:te=Y==="normal"&&(KA?wA.value>=eA[0]&&wA.value<=eA[eA.length-1]:wA.value<=eA[0])||Y==="inverted"&&(KA?wA.value<=eA[0]||wA.value>=eA[eA.length-1]:wA.value>=eA[0]),p.exports.createElement(p.exports.Fragment,{key:wA.value},p.exports.createElement("span",{style:ye,"data-index":LA,className:yA(o.mark,te&&o.markActive)}),wA.label!=null?p.exports.createElement("span",{"aria-hidden":!0,"data-index":LA,style:ye,className:yA(o.markLabel,te&&o.markLabelActive)},wA.label):null)}),eA.map(function(wA,LA){var Se=EC(wA,m,d),ye=hC[Fe].offset(Se);return p.exports.createElement(j,{key:LA,valueLabelFormat:sA,valueLabelDisplay:iA,className:o.valueLabel,value:typeof sA=="function"?sA(P(wA),LA):sA,index:LA,open:UA===LA||QA===LA||iA==="on",disabled:B},p.exports.createElement(z,{className:yA(o.thumb,o["thumbColor".concat(Qe(g))],QA===LA&&o.active,B&&o.disabled,qA===LA&&o.focusVisible),tabIndex:B?null:0,role:"slider",style:ye,"data-index":LA,"aria-label":u?u(LA):i,"aria-labelledby":n,"aria-orientation":M,"aria-valuemax":P(d),"aria-valuemin":P(m),"aria-valuenow":P(wA),"aria-valuetext":E?E(P(wA),LA):r,onKeyDown:ve,onFocus:Be,onBlur:ue,onMouseOver:PA,onMouseLeave:rA}))}))}),wm=ee(kcA,{name:"MuiSlider"})(TcA);function UcA(e){return e=typeof e=="function"?e():e,bt.exports.findDOMNode(e)}var qf=typeof window!="undefined"?p.exports.useLayoutEffect:p.exports.useEffect,PcA=p.exports.forwardRef(function(A,t){var i=A.children,n=A.container,r=A.disablePortal,o=r===void 0?!1:r,s=A.onRendered,a=p.exports.useState(null),g=a[0],I=a[1],l=ze(p.exports.isValidElement(i)?i.ref:null,t);return qf(function(){o||I(UcA(n)||document.body)},[n,o]),qf(function(){if(g&&!o)return zo(t,g),function(){zo(t,null)}},[t,g,o]),qf(function(){s&&(g||o)&&s()},[s,g,o]),o?p.exports.isValidElement(i)?p.exports.cloneElement(i,{ref:l}):i:g&&bt.exports.createPortal(i,g)}),HM=PcA;function qM(){var e=document.createElement("div");e.style.width="99px",e.style.height="99px",e.style.position="absolute",e.style.top="-9999px",e.style.overflow="scroll",document.body.appendChild(e);var A=e.offsetWidth-e.clientWidth;return document.body.removeChild(e),A}function HcA(e){var A=pt(e);return A.body===e?vu(A).innerWidth>A.documentElement.clientWidth:e.scrollHeight>e.clientHeight}function SI(e,A){A?e.setAttribute("aria-hidden","true"):e.removeAttribute("aria-hidden")}function Hx(e){return parseInt(window.getComputedStyle(e)["padding-right"],10)||0}function qx(e,A,t){var i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:[],n=arguments.length>4?arguments[4]:void 0,r=[A,t].concat(Rl(i)),o=["TEMPLATE","SCRIPT","STYLE"];[].forEach.call(e.children,function(s){s.nodeType===1&&r.indexOf(s)===-1&&o.indexOf(s.tagName)===-1&&SI(s,n)})}function Jf(e,A){var t=-1;return e.some(function(i,n){return A(i)?(t=n,!0):!1}),t}function qcA(e,A){var t=[],i=[],n=e.container,r;if(!A.disableScrollLock){if(HcA(n)){var o=qM();t.push({value:n.style.paddingRight,key:"padding-right",el:n}),n.style["padding-right"]="".concat(Hx(n)+o,"px"),r=pt(n).querySelectorAll(".mui-fixed"),[].forEach.call(r,function(I){i.push(I.style.paddingRight),I.style.paddingRight="".concat(Hx(I)+o,"px")})}var s=n.parentElement,a=s.nodeName==="HTML"&&window.getComputedStyle(s)["overflow-y"]==="scroll"?s:n;t.push({value:a.style.overflow,key:"overflow",el:a}),a.style.overflow="hidden"}var g=function(){r&&[].forEach.call(r,function(l,c){i[c]?l.style.paddingRight=i[c]:l.style.removeProperty("padding-right")}),t.forEach(function(l){var c=l.value,C=l.el,B=l.key;c?C.style.setProperty(B,c):C.style.removeProperty(B)})};return g}function JcA(e){var A=[];return[].forEach.call(e.children,function(t){t.getAttribute&&t.getAttribute("aria-hidden")==="true"&&A.push(t)}),A}var OcA=function(){function e(){rq(this,e),this.modals=[],this.containers=[]}return mp(e,[{key:"add",value:function(t,i){var n=this.modals.indexOf(t);if(n!==-1)return n;n=this.modals.length,this.modals.push(t),t.modalRef&&SI(t.modalRef,!1);var r=JcA(i);qx(i,t.mountNode,t.modalRef,r,!0);var o=Jf(this.containers,function(s){return s.container===i});return o!==-1?(this.containers[o].modals.push(t),n):(this.containers.push({modals:[t],container:i,restore:null,hiddenSiblingNodes:r}),n)}},{key:"mount",value:function(t,i){var n=Jf(this.containers,function(o){return o.modals.indexOf(t)!==-1}),r=this.containers[n];r.restore||(r.restore=qcA(r,i))}},{key:"remove",value:function(t){var i=this.modals.indexOf(t);if(i===-1)return i;var n=Jf(this.containers,function(s){return s.modals.indexOf(t)!==-1}),r=this.containers[n];if(r.modals.splice(r.modals.indexOf(t),1),this.modals.splice(i,1),r.modals.length===0)r.restore&&r.restore(),t.modalRef&&SI(t.modalRef,!0),qx(r.container,t.mountNode,t.modalRef,r.hiddenSiblingNodes,!1),this.containers.splice(n,1);else{var o=r.modals[r.modals.length-1];o.modalRef&&SI(o.modalRef,!1)}return i}},{key:"isTopModal",value:function(t){return this.modals.length>0&&this.modals[this.modals.length-1]===t}}]),e}();function YcA(e){var A=e.children,t=e.disableAutoFocus,i=t===void 0?!1:t,n=e.disableEnforceFocus,r=n===void 0?!1:n,o=e.disableRestoreFocus,s=o===void 0?!1:o,a=e.getDoc,g=e.isEnabled,I=e.open,l=p.exports.useRef(),c=p.exports.useRef(null),C=p.exports.useRef(null),B=p.exports.useRef(),u=p.exports.useRef(null),E=p.exports.useCallback(function(Q){u.current=bt.exports.findDOMNode(Q)},[]),h=ze(A.ref,E),f=p.exports.useRef();return p.exports.useEffect(function(){f.current=I},[I]),!f.current&&I&&typeof window!="undefined"&&(B.current=a().activeElement),p.exports.useEffect(function(){if(!!I){var Q=pt(u.current);!i&&u.current&&!u.current.contains(Q.activeElement)&&(u.current.hasAttribute("tabIndex")||u.current.setAttribute("tabIndex",-1),u.current.focus());var d=function(){var x=u.current;if(x!==null){if(!Q.hasFocus()||r||!g()||l.current){l.current=!1;return}u.current&&!u.current.contains(Q.activeElement)&&u.current.focus()}},w=function(x){r||!g()||x.keyCode!==9||Q.activeElement===u.current&&(l.current=!0,x.shiftKey?C.current.focus():c.current.focus())};Q.addEventListener("focus",d,!0),Q.addEventListener("keydown",w,!0);var m=setInterval(function(){d()},50);return function(){clearInterval(m),Q.removeEventListener("focus",d,!0),Q.removeEventListener("keydown",w,!0),s||(B.current&&B.current.focus&&B.current.focus(),B.current=null)}}},[i,r,s,g,I]),p.exports.createElement(p.exports.Fragment,null,p.exports.createElement("div",{tabIndex:0,ref:c,"data-test":"sentinelStart"}),p.exports.cloneElement(A,{ref:h}),p.exports.createElement("div",{tabIndex:0,ref:C,"data-test":"sentinelEnd"}))}var Jx={root:{zIndex:-1,position:"fixed",right:0,bottom:0,top:0,left:0,backgroundColor:"rgba(0, 0, 0, 0.5)",WebkitTapHighlightColor:"transparent"},invisible:{backgroundColor:"transparent"}},KcA=p.exports.forwardRef(function(A,t){var i=A.invisible,n=i===void 0?!1:i,r=A.open,o=SA(A,["invisible","open"]);return r?p.exports.createElement("div",_({"aria-hidden":!0,ref:t},o,{style:_({},Jx.root,n?Jx.invisible:{},o.style)})):null}),VcA=KcA;function WcA(e){return e=typeof e=="function"?e():e,bt.exports.findDOMNode(e)}function zcA(e){return e.children?e.children.props.hasOwnProperty("in"):!1}var jcA=new OcA,XcA=function(A){return{root:{position:"fixed",zIndex:A.zIndex.modal,right:0,bottom:0,top:0,left:0},hidden:{visibility:"hidden"}}},ZcA=p.exports.forwardRef(function(A,t){var i=_a(),n=F2({name:"MuiModal",props:_({},A),theme:i}),r=n.BackdropComponent,o=r===void 0?VcA:r,s=n.BackdropProps,a=n.children,g=n.closeAfterTransition,I=g===void 0?!1:g,l=n.container,c=n.disableAutoFocus,C=c===void 0?!1:c,B=n.disableBackdropClick,u=B===void 0?!1:B,E=n.disableEnforceFocus,h=E===void 0?!1:E,f=n.disableEscapeKeyDown,Q=f===void 0?!1:f,d=n.disablePortal,w=d===void 0?!1:d,m=n.disableRestoreFocus,v=m===void 0?!1:m,x=n.disableScrollLock,D=x===void 0?!1:x,F=n.hideBackdrop,N=F===void 0?!1:F,M=n.keepMounted,U=M===void 0?!1:M,P=n.manager,W=P===void 0?jcA:P,J=n.onBackdropClick,Z=n.onClose,z=n.onEscapeKeyDown,O=n.onRendered,Y=n.open,k=SA(n,["BackdropComponent","BackdropProps","children","closeAfterTransition","container","disableAutoFocus","disableBackdropClick","disableEnforceFocus","disableEscapeKeyDown","disablePortal","disableRestoreFocus","disableScrollLock","hideBackdrop","keepMounted","manager","onBackdropClick","onClose","onEscapeKeyDown","onRendered","open"]),q=p.exports.useState(!0),j=q[0],AA=q[1],iA=p.exports.useRef({}),gA=p.exports.useRef(null),sA=p.exports.useRef(null),BA=ze(sA,t),IA=zcA(n),bA=function(){return pt(gA.current)},EA=function(){return iA.current.modalRef=sA.current,iA.current.mountNode=gA.current,iA.current},QA=function(){W.mount(EA(),{disableScrollLock:D}),sA.current.scrollTop=0},TA=Oe(function(){var aA=WcA(l)||bA().body;W.add(EA(),aA),sA.current&&QA()}),RA=p.exports.useCallback(function(){return W.isTopModal(EA())},[W]),UA=Oe(function(aA){gA.current=aA,aA&&(O&&O(),Y&&RA()?QA():SI(sA.current,!0))}),fA=p.exports.useCallback(function(){W.remove(EA())},[W]);if(p.exports.useEffect(function(){return function(){fA()}},[fA]),p.exports.useEffect(function(){Y?TA():(!IA||!I)&&fA()},[Y,fA,IA,I,TA]),!U&&!Y&&(!IA||j))return null;var NA=function(){AA(!1)},ZA=function(){AA(!0),I&&fA()},ne=function(FA){FA.target===FA.currentTarget&&(J&&J(FA),!u&&Z&&Z(FA,"backdropClick"))},Ie=function(FA){FA.key!=="Escape"||!RA()||(z&&z(FA),Q||(FA.stopPropagation(),Z&&Z(FA,"escapeKeyDown")))},KA=XcA(i||{zIndex:D2}),eA={};return a.props.tabIndex===void 0&&(eA.tabIndex=a.props.tabIndex||"-1"),IA&&(eA.onEnter=zr(NA,a.props.onEnter),eA.onExited=zr(ZA,a.props.onExited)),p.exports.createElement(HM,{ref:UA,container:l,disablePortal:w},p.exports.createElement("div",_({ref:BA,onKeyDown:Ie,role:"presentation"},k,{style:_({},KA.root,!Y&&j?KA.hidden:{},k.style)}),N?null:p.exports.createElement(o,_({open:Y,onClick:ne},s)),p.exports.createElement(YcA,{disableEnforceFocus:h,disableAutoFocus:C,disableRestoreFocus:v,getDoc:bA,isEnabled:RA,open:Y},p.exports.cloneElement(a,eA))))}),$cA=ZcA;function Ox(e,A){var t=0;return typeof A=="number"?t=A:A==="center"?t=e.height/2:A==="bottom"&&(t=e.height),t}function Yx(e,A){var t=0;return typeof A=="number"?t=A:A==="center"?t=e.width/2:A==="right"&&(t=e.width),t}function Kx(e){return[e.horizontal,e.vertical].map(function(A){return typeof A=="number"?"".concat(A,"px"):A}).join(" ")}function ACA(e,A){for(var t=A,i=0;t&&t!==e;)t=t.parentElement,i+=t.scrollTop;return i}function Of(e){return typeof e=="function"?e():e}var eCA={root:{},paper:{position:"absolute",overflowY:"auto",overflowX:"hidden",minWidth:16,minHeight:16,maxWidth:"calc(100% - 32px)",maxHeight:"calc(100% - 32px)",outline:0}},tCA=p.exports.forwardRef(function(A,t){var i=A.action,n=A.anchorEl,r=A.anchorOrigin,o=r===void 0?{vertical:"top",horizontal:"left"}:r,s=A.anchorPosition,a=A.anchorReference,g=a===void 0?"anchorEl":a,I=A.children,l=A.classes,c=A.className,C=A.container,B=A.elevation,u=B===void 0?8:B,E=A.getContentAnchorEl,h=A.marginThreshold,f=h===void 0?16:h,Q=A.onEnter,d=A.onEntered,w=A.onEntering,m=A.onExit,v=A.onExited,x=A.onExiting,D=A.open,F=A.PaperProps,N=F===void 0?{}:F,M=A.transformOrigin,U=M===void 0?{vertical:"top",horizontal:"left"}:M,P=A.TransitionComponent,W=P===void 0?NM:P,J=A.transitionDuration,Z=J===void 0?"auto":J,z=A.TransitionProps,O=z===void 0?{}:z,Y=SA(A,["action","anchorEl","anchorOrigin","anchorPosition","anchorReference","children","classes","className","container","elevation","getContentAnchorEl","marginThreshold","onEnter","onEntered","onEntering","onExit","onExited","onExiting","open","PaperProps","transformOrigin","TransitionComponent","transitionDuration","TransitionProps"]),k=p.exports.useRef(),q=p.exports.useCallback(function(EA){if(g==="anchorPosition")return s;var QA=Of(n),TA=QA&&QA.nodeType===1?QA:pt(k.current).body,RA=TA.getBoundingClientRect(),UA=EA===0?o.vertical:"center";return{top:RA.top+Ox(RA,UA),left:RA.left+Yx(RA,o.horizontal)}},[n,o.horizontal,o.vertical,s,g]),j=p.exports.useCallback(function(EA){var QA=0;if(E&&g==="anchorEl"){var TA=E(EA);if(TA&&EA.contains(TA)){var RA=ACA(EA,TA);QA=TA.offsetTop+TA.clientHeight/2-RA||0}}return QA},[o.vertical,g,E]),AA=p.exports.useCallback(function(EA){var QA=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return{vertical:Ox(EA,U.vertical)+QA,horizontal:Yx(EA,U.horizontal)}},[U.horizontal,U.vertical]),iA=p.exports.useCallback(function(EA){var QA=j(EA),TA={width:EA.offsetWidth,height:EA.offsetHeight},RA=AA(TA,QA);if(g==="none")return{top:null,left:null,transformOrigin:Kx(RA)};var UA=q(QA),fA=UA.top-RA.vertical,NA=UA.left-RA.horizontal,ZA=fA+TA.height,ne=NA+TA.width,Ie=vu(Of(n)),KA=Ie.innerHeight-f,eA=Ie.innerWidth-f;if(fAKA){var FA=ZA-KA;fA-=FA,RA.vertical+=FA}if(NAeA){var VA=ne-eA;NA-=VA,RA.horizontal+=VA}return{top:"".concat(Math.round(fA),"px"),left:"".concat(Math.round(NA),"px"),transformOrigin:Kx(RA)}},[n,g,q,j,AA,f]),gA=p.exports.useCallback(function(){var EA=k.current;if(!!EA){var QA=iA(EA);QA.top!==null&&(EA.style.top=QA.top),QA.left!==null&&(EA.style.left=QA.left),EA.style.transformOrigin=QA.transformOrigin}},[iA]),sA=function(QA,TA){w&&w(QA,TA),gA()},BA=p.exports.useCallback(function(EA){k.current=bt.exports.findDOMNode(EA)},[]);p.exports.useEffect(function(){D&&gA()}),p.exports.useImperativeHandle(i,function(){return D?{updatePosition:function(){gA()}}:null},[D,gA]),p.exports.useEffect(function(){if(!!D){var EA=ya(function(){gA()});return window.addEventListener("resize",EA),function(){EA.clear(),window.removeEventListener("resize",EA)}}},[D,gA]);var IA=Z;Z==="auto"&&!W.muiSupportAuto&&(IA=void 0);var bA=C||(n?pt(Of(n)).body:void 0);return p.exports.createElement($cA,_({container:bA,open:D,ref:t,BackdropProps:{invisible:!0},className:yA(l.root,c)},Y),p.exports.createElement(W,_({appear:!0,in:D,onEnter:Q,onEntered:d,onExit:m,onExited:v,onExiting:x,timeout:IA},O,{onEntering:zr(sA,O.onEntering)}),p.exports.createElement(no,_({elevation:u,ref:BA},N,{className:yA(l.paper,N.className)}),I)))}),iCA=ee(eCA,{name:"MuiPopover"})(tCA),nCA=p.exports.createContext({}),ZC=nCA,rCA={root:{listStyle:"none",margin:0,padding:0,position:"relative"},padding:{paddingTop:8,paddingBottom:8},dense:{},subheader:{paddingTop:0}},oCA=p.exports.forwardRef(function(A,t){var i=A.children,n=A.classes,r=A.className,o=A.component,s=o===void 0?"ul":o,a=A.dense,g=a===void 0?!1:a,I=A.disablePadding,l=I===void 0?!1:I,c=A.subheader,C=SA(A,["children","classes","className","component","dense","disablePadding","subheader"]),B=p.exports.useMemo(function(){return{dense:g}},[g]);return p.exports.createElement(ZC.Provider,{value:B},p.exports.createElement(s,_({className:yA(n.root,r,g&&n.dense,!l&&n.padding,c&&n.subheader),ref:t},C),c,i))}),sCA=ee(rCA,{name:"MuiList"})(oCA);function Yf(e,A,t){return e===A?e.firstChild:A&&A.nextElementSibling?A.nextElementSibling:t?null:e.firstChild}function Vx(e,A,t){return e===A?t?e.firstChild:e.lastChild:A&&A.previousElementSibling?A.previousElementSibling:t?null:e.lastChild}function JM(e,A){if(A===void 0)return!0;var t=e.innerText;return t===void 0&&(t=e.textContent),t=t.trim().toLowerCase(),t.length===0?!1:A.repeating?t[0]===A.keys[0]:t.indexOf(A.keys.join(""))===0}function Gg(e,A,t,i,n,r){for(var o=!1,s=n(e,A,A?t:!1);s;){if(s===e.firstChild){if(o)return;o=!0}var a=i?!1:s.disabled||s.getAttribute("aria-disabled")==="true";if(!s.hasAttribute("tabindex")||!JM(s,r)||a)s=n(e,s,t);else{s.focus();return}}}var aCA=typeof window=="undefined"?p.exports.useEffect:p.exports.useLayoutEffect,gCA=p.exports.forwardRef(function(A,t){var i=A.actions,n=A.autoFocus,r=n===void 0?!1:n,o=A.autoFocusItem,s=o===void 0?!1:o,a=A.children,g=A.className,I=A.disabledItemsFocusable,l=I===void 0?!1:I,c=A.disableListWrap,C=c===void 0?!1:c,B=A.onKeyDown,u=A.variant,E=u===void 0?"selectedMenu":u,h=SA(A,["actions","autoFocus","autoFocusItem","children","className","disabledItemsFocusable","disableListWrap","onKeyDown","variant"]),f=p.exports.useRef(null),Q=p.exports.useRef({keys:[],repeating:!0,previousKeyMatched:!0,lastTime:null});aCA(function(){r&&f.current.focus()},[r]),p.exports.useImperativeHandle(i,function(){return{adjustStyleForScrollbar:function(F,N){var M=!f.current.style.width;if(F.clientHeight0&&(J-P.lastTime>500?(P.keys=[],P.repeating=!0,P.previousKeyMatched=!0):P.repeating&&W!==P.keys[0]&&(P.repeating=!1)),P.lastTime=J,P.keys.push(W);var Z=U&&!P.repeating&&JM(U,P);P.previousKeyMatched&&(Z||Gg(N,U,!1,l,Yf,P))?F.preventDefault():P.previousKeyMatched=!1}B&&B(F)},w=p.exports.useCallback(function(D){f.current=bt.exports.findDOMNode(D)},[]),m=ze(w,t),v=-1;p.exports.Children.forEach(a,function(D,F){!p.exports.isValidElement(D)||D.props.disabled||(E==="selectedMenu"&&D.props.selected||v===-1)&&(v=F)});var x=p.exports.Children.map(a,function(D,F){if(F===v){var N={};return s&&(N.autoFocus=!0),D.props.tabIndex===void 0&&E==="selectedMenu"&&(N.tabIndex=0),p.exports.cloneElement(D,N)}return D});return p.exports.createElement(sCA,_({role:"menu",ref:m,className:g,onKeyDown:d,tabIndex:r?0:-1},h),x)}),vm=gCA,Wx={vertical:"top",horizontal:"right"},zx={vertical:"top",horizontal:"left"},ICA={paper:{maxHeight:"calc(100% - 96px)",WebkitOverflowScrolling:"touch"},list:{outline:0}},lCA=p.exports.forwardRef(function(A,t){var i=A.autoFocus,n=i===void 0?!0:i,r=A.children,o=A.classes,s=A.disableAutoFocusItem,a=s===void 0?!1:s,g=A.MenuListProps,I=g===void 0?{}:g,l=A.onClose,c=A.onEntering,C=A.open,B=A.PaperProps,u=B===void 0?{}:B,E=A.PopoverClasses,h=A.transitionDuration,f=h===void 0?"auto":h,Q=A.TransitionProps;Q=Q===void 0?{}:Q;var d=Q.onEntering,w=SA(Q,["onEntering"]),m=A.variant,v=m===void 0?"selectedMenu":m,x=SA(A,["autoFocus","children","classes","disableAutoFocusItem","MenuListProps","onClose","onEntering","open","PaperProps","PopoverClasses","transitionDuration","TransitionProps","variant"]),D=Ll(),F=n&&!a&&C,N=p.exports.useRef(null),M=p.exports.useRef(null),U=function(){return M.current},P=function(O,Y){N.current&&N.current.adjustStyleForScrollbar(O,D),c&&c(O,Y),d&&d(O,Y)},W=function(O){O.key==="Tab"&&(O.preventDefault(),l&&l(O,"tabKeyDown"))},J=-1;p.exports.Children.map(r,function(z,O){!p.exports.isValidElement(z)||z.props.disabled||(v!=="menu"&&z.props.selected||J===-1)&&(J=O)});var Z=p.exports.Children.map(r,function(z,O){return O===J?p.exports.cloneElement(z,{ref:function(k){M.current=bt.exports.findDOMNode(k),zo(z.ref,k)}}):z});return p.exports.createElement(iCA,_({getContentAnchorEl:U,classes:E,onClose:l,TransitionProps:_({onEntering:P},w),anchorOrigin:D.direction==="rtl"?Wx:zx,transformOrigin:D.direction==="rtl"?Wx:zx,PaperProps:_({},u,{classes:_({},u.classes,{root:o.paper})}),open:C,ref:t,transitionDuration:f},x),p.exports.createElement(vm,_({onKeyDown:W,actions:N,autoFocus:n&&(J===-1||a),autoFocusItem:F,variant:v},I,{className:yA(o.list,I.className)}),Z))}),cCA=ee(ICA,{name:"MuiMenu"})(lCA);function jx(e){return e!=null&&!(Array.isArray(e)&&e.length===0)}function Sm(e){var A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;return e&&(jx(e.value)&&e.value!==""||A&&jx(e.defaultValue)&&e.defaultValue!=="")}function CCA(e){return e.startAdornment}function Xx(e,A){return HI(A)==="object"&&A!==null?e===A:String(e)===String(A)}function BCA(e){return e==null||typeof e=="string"&&!e.trim()}var ECA=p.exports.forwardRef(function(A,t){var i=A["aria-label"],n=A.autoFocus,r=A.autoWidth,o=A.children,s=A.classes,a=A.className,g=A.defaultValue,I=A.disabled,l=A.displayEmpty,c=A.IconComponent,C=A.inputRef,B=A.labelId,u=A.MenuProps,E=u===void 0?{}:u,h=A.multiple,f=A.name,Q=A.onBlur,d=A.onChange,w=A.onClose,m=A.onFocus,v=A.onOpen,x=A.open,D=A.readOnly,F=A.renderValue,N=A.SelectDisplayProps,M=N===void 0?{}:N,U=A.tabIndex;A.type;var P=A.value,W=A.variant,J=W===void 0?"standard":W,Z=SA(A,["aria-label","autoFocus","autoWidth","children","classes","className","defaultValue","disabled","displayEmpty","IconComponent","inputRef","labelId","MenuProps","multiple","name","onBlur","onChange","onClose","onFocus","onOpen","open","readOnly","renderValue","SelectDisplayProps","tabIndex","type","value","variant"]),z=Su({controlled:P,default:g,name:"Select"}),O=Fl(z,2),Y=O[0],k=O[1],q=p.exports.useRef(null),j=p.exports.useState(null),AA=j[0],iA=j[1],gA=p.exports.useRef(x!=null),sA=gA.current,BA=p.exports.useState(),IA=BA[0],bA=BA[1],EA=p.exports.useState(!1),QA=EA[0],TA=EA[1],RA=ze(t,C);p.exports.useImperativeHandle(RA,function(){return{focus:function(){AA.focus()},node:q.current,value:Y}},[AA,Y]),p.exports.useEffect(function(){n&&AA&&AA.focus()},[n,AA]),p.exports.useEffect(function(){if(AA){var JA=pt(AA).getElementById(B);if(JA){var xA=function(){getSelection().isCollapsed&&AA.focus()};return JA.addEventListener("click",xA),function(){JA.removeEventListener("click",xA)}}}},[B,AA]);var UA=function(xA,Be){xA?v&&v(Be):w&&w(Be),sA||(bA(r?null:AA.clientWidth),TA(xA))},fA=function(xA){xA.button===0&&(xA.preventDefault(),AA.focus(),UA(!0,xA))},NA=function(xA){UA(!1,xA)},ZA=p.exports.Children.toArray(o),ne=function(xA){var Be=ZA.map(function(PA){return PA.props.value}).indexOf(xA.target.value);if(Be!==-1){var ue=ZA[Be];k(ue.props.value),d&&d(xA,ue)}},Ie=function(xA){return function(Be){h||UA(!1,Be);var ue;if(h){ue=Array.isArray(Y)?Y.slice():[];var PA=Y.indexOf(xA.props.value);PA===-1?ue.push(xA.props.value):ue.splice(PA,1)}else ue=xA.props.value;xA.props.onClick&&xA.props.onClick(Be),Y!==ue&&(k(ue),d&&(Be.persist(),Object.defineProperty(Be,"target",{writable:!0,value:{value:ue,name:f}}),d(Be,xA)))}},KA=function(xA){if(!D){var Be=[" ","ArrowUp","ArrowDown","Enter"];Be.indexOf(xA.key)!==-1&&(xA.preventDefault(),UA(!0,xA))}},eA=AA!==null&&(sA?x:QA),aA=function(xA){!eA&&Q&&(xA.persist(),Object.defineProperty(xA,"target",{writable:!0,value:{value:Y,name:f}}),Q(xA))};delete Z["aria-invalid"];var FA,re,VA=[],_e=!1;(Sm({value:Y})||l)&&(F?FA=F(Y):_e=!0);var WA=ZA.map(function(JA){if(!p.exports.isValidElement(JA))return null;var xA;if(h){if(!Array.isArray(Y))throw new Error(Ea(2));xA=Y.some(function(Be){return Xx(Be,JA.props.value)}),xA&&_e&&VA.push(JA.props.children)}else xA=Xx(Y,JA.props.value),xA&&_e&&(re=JA.props.children);return p.exports.cloneElement(JA,{"aria-selected":xA?"true":void 0,onClick:Ie(JA),onKeyUp:function(ue){ue.key===" "&&ue.preventDefault(),JA.props.onKeyUp&&JA.props.onKeyUp(ue)},role:"option",selected:xA,value:void 0,"data-value":JA.props.value})});_e&&(FA=h?VA.join(", "):re);var qA=IA;!r&&sA&&AA&&(qA=AA.clientWidth);var xe;typeof U!="undefined"?xe=U:xe=I?null:0;var se=M.id||(f?"mui-component-select-".concat(f):void 0);return p.exports.createElement(p.exports.Fragment,null,p.exports.createElement("div",_({className:yA(s.root,s.select,s.selectMenu,s[J],a,I&&s.disabled),ref:iA,tabIndex:xe,role:"button","aria-disabled":I?"true":void 0,"aria-expanded":eA?"true":void 0,"aria-haspopup":"listbox","aria-label":i,"aria-labelledby":[B,se].filter(Boolean).join(" ")||void 0,onKeyDown:KA,onMouseDown:I||D?null:fA,onBlur:aA,onFocus:m},M,{id:se}),BCA(FA)?p.exports.createElement("span",{dangerouslySetInnerHTML:{__html:"​"}}):FA),p.exports.createElement("input",_({value:Array.isArray(Y)?Y.join(","):Y,name:f,ref:q,"aria-hidden":!0,onChange:ne,tabIndex:-1,className:s.nativeInput,autoFocus:n},Z)),p.exports.createElement(c,{className:yA(s.icon,s["icon".concat(Qe(J))],eA&&s.iconOpen,I&&s.disabled)}),p.exports.createElement(cCA,_({id:"menu-".concat(f||""),anchorEl:AA,open:eA,onClose:NA},E,{MenuListProps:_({"aria-labelledby":B,role:"listbox",disableListWrap:!0},E.MenuListProps),PaperProps:_({},E.PaperProps,{style:_({minWidth:qA},E.PaperProps!=null?E.PaperProps.style:null)})}),WA))}),uCA=ECA;function tg(e){var A=e.props,t=e.states,i=e.muiFormControl;return t.reduce(function(n,r){return n[r]=A[r],i&&typeof A[r]=="undefined"&&(n[r]=i[r]),n},{})}var OM=wi(p.exports.createElement("path",{d:"M7 10l5 5 5-5z"}));function fC(e,A){return parseInt(e[A],10)||0}var hCA=typeof window!="undefined"?p.exports.useLayoutEffect:p.exports.useEffect,fCA={shadow:{visibility:"hidden",position:"absolute",overflow:"hidden",height:0,top:0,left:0,transform:"translateZ(0)"}},QCA=p.exports.forwardRef(function(A,t){var i=A.onChange,n=A.rows,r=A.rowsMax,o=A.rowsMin,s=A.maxRows,a=A.minRows,g=a===void 0?1:a,I=A.style,l=A.value,c=SA(A,["onChange","rows","rowsMax","rowsMin","maxRows","minRows","style","value"]),C=s||r,B=n||o||g,u=p.exports.useRef(l!=null),E=u.current,h=p.exports.useRef(null),f=ze(t,h),Q=p.exports.useRef(null),d=p.exports.useRef(0),w=p.exports.useState({}),m=w[0],v=w[1],x=p.exports.useCallback(function(){var F=h.current,N=window.getComputedStyle(F),M=Q.current;M.style.width=N.width,M.value=F.value||A.placeholder||"x",M.value.slice(-1)===` +`&&(M.value+=" ");var U=N["box-sizing"],P=fC(N,"padding-bottom")+fC(N,"padding-top"),W=fC(N,"border-bottom-width")+fC(N,"border-top-width"),J=M.scrollHeight-P;M.value="x";var Z=M.scrollHeight-P,z=J;B&&(z=Math.max(Number(B)*Z,z)),C&&(z=Math.min(Number(C)*Z,z)),z=Math.max(z,Z);var O=z+(U==="border-box"?P+W:0),Y=Math.abs(z-J)<=1;v(function(k){return d.current<20&&(O>0&&Math.abs((k.outerHeightStyle||0)-O)>1||k.overflow!==Y)?(d.current+=1,{overflow:Y,outerHeightStyle:O}):k})},[C,B,A.placeholder]);p.exports.useEffect(function(){var F=ya(function(){d.current=0,x()});return window.addEventListener("resize",F),function(){F.clear(),window.removeEventListener("resize",F)}},[x]),hCA(function(){x()}),p.exports.useEffect(function(){d.current=0},[l]);var D=function(N){d.current=0,E||x(),i&&i(N)};return p.exports.createElement(p.exports.Fragment,null,p.exports.createElement("textarea",_({value:l,onChange:D,ref:f,rows:B,style:_({height:m.outerHeightStyle,overflow:m.overflow?"hidden":null},I)},c)),p.exports.createElement("textarea",{"aria-hidden":!0,className:A.className,readOnly:!0,ref:Q,tabIndex:-1,style:_({},fCA.shadow,I)}))}),dCA=QCA,pCA=function(A){var t=A.palette.type==="light",i={color:"currentColor",opacity:t?.42:.5,transition:A.transitions.create("opacity",{duration:A.transitions.duration.shorter})},n={opacity:"0 !important"},r={opacity:t?.42:.5};return{"@global":{"@keyframes mui-auto-fill":{},"@keyframes mui-auto-fill-cancel":{}},root:_({},A.typography.body1,{color:A.palette.text.primary,lineHeight:"1.1876em",boxSizing:"border-box",position:"relative",cursor:"text",display:"inline-flex",alignItems:"center","&$disabled":{color:A.palette.text.disabled,cursor:"default"}}),formControl:{},focused:{},disabled:{},adornedStart:{},adornedEnd:{},error:{},marginDense:{},multiline:{padding:"".concat(8-2,"px 0 ").concat(8-1,"px"),"&$marginDense":{paddingTop:4-1}},colorSecondary:{},fullWidth:{width:"100%"},input:{font:"inherit",letterSpacing:"inherit",color:"currentColor",padding:"".concat(8-2,"px 0 ").concat(8-1,"px"),border:0,boxSizing:"content-box",background:"none",height:"1.1876em",margin:0,WebkitTapHighlightColor:"transparent",display:"block",minWidth:0,width:"100%",animationName:"mui-auto-fill-cancel",animationDuration:"10ms","&::-webkit-input-placeholder":i,"&::-moz-placeholder":i,"&:-ms-input-placeholder":i,"&::-ms-input-placeholder":i,"&:focus":{outline:0},"&:invalid":{boxShadow:"none"},"&::-webkit-search-decoration":{"-webkit-appearance":"none"},"label[data-shrink=false] + $formControl &":{"&::-webkit-input-placeholder":n,"&::-moz-placeholder":n,"&:-ms-input-placeholder":n,"&::-ms-input-placeholder":n,"&:focus::-webkit-input-placeholder":r,"&:focus::-moz-placeholder":r,"&:focus:-ms-input-placeholder":r,"&:focus::-ms-input-placeholder":r},"&$disabled":{opacity:1},"&:-webkit-autofill":{animationDuration:"5000s",animationName:"mui-auto-fill"}},inputMarginDense:{paddingTop:4-1},inputMultiline:{height:"auto",resize:"none",padding:0},inputTypeSearch:{"-moz-appearance":"textfield","-webkit-appearance":"textfield"},inputAdornedStart:{},inputAdornedEnd:{},inputHiddenLabel:{}}},yCA=typeof window=="undefined"?p.exports.useEffect:p.exports.useLayoutEffect,mCA=p.exports.forwardRef(function(A,t){var i=A["aria-describedby"],n=A.autoComplete,r=A.autoFocus,o=A.classes,s=A.className;A.color;var a=A.defaultValue,g=A.disabled,I=A.endAdornment;A.error;var l=A.fullWidth,c=l===void 0?!1:l,C=A.id,B=A.inputComponent,u=B===void 0?"input":B,E=A.inputProps,h=E===void 0?{}:E,f=A.inputRef;A.margin;var Q=A.multiline,d=Q===void 0?!1:Q,w=A.name,m=A.onBlur,v=A.onChange,x=A.onClick,D=A.onFocus,F=A.onKeyDown,N=A.onKeyUp,M=A.placeholder,U=A.readOnly,P=A.renderSuffix,W=A.rows,J=A.rowsMax,Z=A.rowsMin,z=A.maxRows,O=A.minRows,Y=A.startAdornment,k=A.type,q=k===void 0?"text":k,j=A.value,AA=SA(A,["aria-describedby","autoComplete","autoFocus","classes","className","color","defaultValue","disabled","endAdornment","error","fullWidth","id","inputComponent","inputProps","inputRef","margin","multiline","name","onBlur","onChange","onClick","onFocus","onKeyDown","onKeyUp","placeholder","readOnly","renderSuffix","rows","rowsMax","rowsMin","maxRows","minRows","startAdornment","type","value"]),iA=h.value!=null?h.value:j,gA=p.exports.useRef(iA!=null),sA=gA.current,BA=p.exports.useRef(),IA=p.exports.useCallback(function(WA){},[]),bA=ze(h.ref,IA),EA=ze(f,bA),QA=ze(BA,EA),TA=p.exports.useState(!1),RA=TA[0],UA=TA[1],fA=dcA(),NA=tg({props:A,muiFormControl:fA,states:["color","disabled","error","hiddenLabel","margin","required","filled"]});NA.focused=fA?fA.focused:RA,p.exports.useEffect(function(){!fA&&g&&RA&&(UA(!1),m&&m())},[fA,g,RA,m]);var ZA=fA&&fA.onFilled,ne=fA&&fA.onEmpty,Ie=p.exports.useCallback(function(WA){Sm(WA)?ZA&&ZA():ne&&ne()},[ZA,ne]);yCA(function(){sA&&Ie({value:iA})},[iA,Ie,sA]);var KA=function(qA){if(NA.disabled){qA.stopPropagation();return}D&&D(qA),h.onFocus&&h.onFocus(qA),fA&&fA.onFocus?fA.onFocus(qA):UA(!0)},eA=function(qA){m&&m(qA),h.onBlur&&h.onBlur(qA),fA&&fA.onBlur?fA.onBlur(qA):UA(!1)},aA=function(qA){if(!sA){var xe=qA.target||BA.current;if(xe==null)throw new Error(Ea(1));Ie({value:xe.value})}for(var se=arguments.length,JA=new Array(se>1?se-1:0),xA=1;xA span":{paddingLeft:5,paddingRight:5,display:"inline-block"}},legendNotched:{maxWidth:1e3,transition:A.transitions.create("max-width",{duration:100,easing:A.transitions.easing.easeOut,delay:50})}}},xCA=p.exports.forwardRef(function(A,t){A.children;var i=A.classes,n=A.className,r=A.label,o=A.labelWidth,s=A.notched,a=A.style,g=SA(A,["children","classes","className","label","labelWidth","notched","style"]),I=Ll(),l=I.direction==="rtl"?"right":"left";if(r!==void 0)return p.exports.createElement("fieldset",_({"aria-hidden":!0,className:yA(i.root,n),ref:t,style:a},g),p.exports.createElement("legend",{className:yA(i.legendLabelled,s&&i.legendNotched)},r?p.exports.createElement("span",null,r):p.exports.createElement("span",{dangerouslySetInnerHTML:{__html:"​"}})));var c=o>0?o*.75+8:.01;return p.exports.createElement("fieldset",_({"aria-hidden":!0,style:_(y({},"padding".concat(Qe(l)),8),a),className:yA(i.root,n),ref:t},g),p.exports.createElement("legend",{className:i.legend,style:{width:s?c:.01}},p.exports.createElement("span",{dangerouslySetInnerHTML:{__html:"​"}})))}),FCA=ee(RCA,{name:"PrivateNotchedOutline"})(xCA),NCA=function(A){var t=A.palette.type==="light"?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)";return{root:{position:"relative",borderRadius:A.shape.borderRadius,"&:hover $notchedOutline":{borderColor:A.palette.text.primary},"@media (hover: none)":{"&:hover $notchedOutline":{borderColor:t}},"&$focused $notchedOutline":{borderColor:A.palette.primary.main,borderWidth:2},"&$error $notchedOutline":{borderColor:A.palette.error.main},"&$disabled $notchedOutline":{borderColor:A.palette.action.disabled}},colorSecondary:{"&$focused $notchedOutline":{borderColor:A.palette.secondary.main}},focused:{},disabled:{},adornedStart:{paddingLeft:14},adornedEnd:{paddingRight:14},error:{},marginDense:{},multiline:{padding:"18.5px 14px","&$marginDense":{paddingTop:10.5,paddingBottom:10.5}},notchedOutline:{borderColor:t},input:{padding:"18.5px 14px","&:-webkit-autofill":{WebkitBoxShadow:A.palette.type==="light"?null:"0 0 0 100px #266798 inset",WebkitTextFillColor:A.palette.type==="light"?null:"#fff",caretColor:A.palette.type==="light"?null:"#fff",borderRadius:"inherit"}},inputMarginDense:{paddingTop:10.5,paddingBottom:10.5},inputMultiline:{padding:0},inputAdornedStart:{paddingLeft:0},inputAdornedEnd:{paddingRight:0}}},XM=p.exports.forwardRef(function(A,t){var i=A.classes,n=A.fullWidth,r=n===void 0?!1:n,o=A.inputComponent,s=o===void 0?"input":o,a=A.label,g=A.labelWidth,I=g===void 0?0:g,l=A.multiline,c=l===void 0?!1:l,C=A.notched,B=A.type,u=B===void 0?"text":B,E=SA(A,["classes","fullWidth","inputComponent","label","labelWidth","multiline","notched","type"]);return p.exports.createElement(Dm,_({renderSuffix:function(f){return p.exports.createElement(FCA,{className:i.notchedOutline,label:a,labelWidth:I,notched:typeof C!="undefined"?C:Boolean(f.startAdornment||f.filled||f.focused)})},classes:_({},i,{root:yA(i.root,i.underline),notchedOutline:null}),fullWidth:r,inputComponent:s,multiline:c,ref:t,type:u},E))});XM.muiName="Input";var ZM=ee(NCA,{name:"MuiOutlinedInput"})(XM),LCA=VM,bCA=p.exports.createElement(Rm,null),GCA=p.exports.createElement(jM,null),$M=p.exports.forwardRef(function e(A,t){var i=A.autoWidth,n=i===void 0?!1:i,r=A.children,o=A.classes,s=A.displayEmpty,a=s===void 0?!1:s,g=A.IconComponent,I=g===void 0?OM:g,l=A.id,c=A.input,C=A.inputProps,B=A.label,u=A.labelId,E=A.labelWidth,h=E===void 0?0:E,f=A.MenuProps,Q=A.multiple,d=Q===void 0?!1:Q,w=A.native,m=w===void 0?!1:w,v=A.onClose,x=A.onOpen,D=A.open,F=A.renderValue,N=A.SelectDisplayProps,M=A.variant,U=M===void 0?"standard":M,P=SA(A,["autoWidth","children","classes","displayEmpty","IconComponent","id","input","inputProps","label","labelId","labelWidth","MenuProps","multiple","native","onClose","onOpen","open","renderValue","SelectDisplayProps","variant"]),W=m?KM:uCA,J=eg(),Z=tg({props:A,muiFormControl:J,states:["variant"]}),z=Z.variant||U,O=c||{standard:bCA,outlined:p.exports.createElement(ZM,{label:B,labelWidth:h}),filled:GCA}[z];return p.exports.cloneElement(O,_({inputComponent:W,inputProps:_({children:r,IconComponent:I,variant:z,type:void 0,multiple:d},m?{id:l}:{autoWidth:n,displayEmpty:a,labelId:u,MenuProps:f,onClose:v,onOpen:x,open:D,renderValue:F,SelectDisplayProps:_({id:l},N)},C,{classes:C?Rp({baseClasses:o,newClasses:C.classes,Component:e}):o},c?c.props.inputProps:{}),ref:t},P))});$M.muiName="Select";var ig=ee(LCA,{name:"MuiSelect"})($M),xm={},jn={exports:{}};(function(e){function A(t){return t&&t.__esModule?t:{default:t}}e.exports=A,e.exports.__esModule=!0,e.exports.default=e.exports})(jn);var Xn={exports:{}},Ak={exports:{}};(function(e){function A(t){return e.exports=A=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(i){return typeof i}:function(i){return i&&typeof Symbol=="function"&&i.constructor===Symbol&&i!==Symbol.prototype?"symbol":typeof i},e.exports.__esModule=!0,e.exports.default=e.exports,A(t)}e.exports=A,e.exports.__esModule=!0,e.exports.default=e.exports})(Ak);(function(e){var A=Ak.exports.default;function t(n){if(typeof WeakMap!="function")return null;var r=new WeakMap,o=new WeakMap;return(t=function(a){return a?o:r})(n)}function i(n,r){if(!r&&n&&n.__esModule)return n;if(n===null||A(n)!=="object"&&typeof n!="function")return{default:n};var o=t(r);if(o&&o.has(n))return o.get(n);var s={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var g in n)if(g!=="default"&&Object.prototype.hasOwnProperty.call(n,g)){var I=a?Object.getOwnPropertyDescriptor(n,g):null;I&&(I.get||I.set)?Object.defineProperty(s,g,I):s[g]=n[g]}return s.default=n,o&&o.set(n,s),s}e.exports=i,e.exports.__esModule=!0,e.exports.default=e.exports})(Xn);var Zn={},_CA=Nk(hIA);(function(e){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return A.createSvgIcon}});var A=_CA})(Zn);var MCA=jn.exports,kCA=Xn.exports;Object.defineProperty(xm,"__esModule",{value:!0});var ek=xm.default=void 0,TCA=kCA(p.exports),UCA=MCA(Zn),PCA=(0,UCA.default)(TCA.createElement("path",{d:"M14.59 8L12 10.59 9.41 8 8 9.41 10.59 12 8 14.59 9.41 16 12 13.41 14.59 16 16 14.59 13.41 12 16 9.41 14.59 8zM12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"}),"HighlightOff");ek=xm.default=PCA;var Fm={},HCA=jn.exports,qCA=Xn.exports;Object.defineProperty(Fm,"__esModule",{value:!0});var tk=Fm.default=void 0,JCA=qCA(p.exports),OCA=HCA(Zn),YCA=(0,OCA.default)(JCA.createElement("path",{d:"M12 8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"}),"MoreVert");tk=Fm.default=YCA;/**! * @fileOverview Kickass library to create and place poppers near their reference elements. * @version 1.16.1-lts * @license @@ -3921,4 +3921,4 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. - */var ic=typeof window!="undefined"&&typeof document!="undefined"&&typeof navigator!="undefined",JCA=function(){for(var e=["Edge","Trident","Firefox"],A=0;A=0)return 1;return 0}();function OCA(e){var A=!1;return function(){A||(A=!0,window.Promise.resolve().then(function(){A=!1,e()}))}}function YCA(e){var A=!1;return function(){A||(A=!0,setTimeout(function(){A=!1,e()},JCA))}}var KCA=ic&&window.Promise,VCA=KCA?OCA:YCA;function Ak(e){var A={};return e&&A.toString.call(e)==="[object Function]"}function ls(e,A){if(e.nodeType!==1)return[];var t=e.ownerDocument.defaultView,i=t.getComputedStyle(e,null);return A?i[A]:i}function Fm(e){return e.nodeName==="HTML"?e:e.parentNode||e.host}function nc(e){if(!e)return document.body;switch(e.nodeName){case"HTML":case"BODY":return e.ownerDocument.body;case"#document":return e.body}var A=ls(e),t=A.overflow,i=A.overflowX,n=A.overflowY;return/(auto|scroll|overlay)/.test(t+n+i)?e:nc(Fm(e))}function ek(e){return e&&e.referenceNode?e.referenceNode:e}var zx=ic&&!!(window.MSInputMethodContext&&document.documentMode),jx=ic&&/MSIE 10/.test(navigator.userAgent);function rg(e){return e===11?zx:e===10?jx:zx||jx}function wa(e){if(!e)return document.documentElement;for(var A=rg(10)?document.body:null,t=e.offsetParent||null;t===A&&e.nextElementSibling;)t=(e=e.nextElementSibling).offsetParent;var i=t&&t.nodeName;return!i||i==="BODY"||i==="HTML"?e?e.ownerDocument.documentElement:document.documentElement:["TH","TD","TABLE"].indexOf(t.nodeName)!==-1&&ls(t,"position")==="static"?wa(t):t}function WCA(e){var A=e.nodeName;return A==="BODY"?!1:A==="HTML"||wa(e.firstElementChild)===e}function s0(e){return e.parentNode!==null?s0(e.parentNode):e}function lE(e,A){if(!e||!e.nodeType||!A||!A.nodeType)return document.documentElement;var t=e.compareDocumentPosition(A)&Node.DOCUMENT_POSITION_FOLLOWING,i=t?e:A,n=t?A:e,r=document.createRange();r.setStart(i,0),r.setEnd(n,0);var o=r.commonAncestorContainer;if(e!==o&&A!==o||i.contains(n))return WCA(o)?o:wa(o);var s=s0(e);return s.host?lE(s.host,A):lE(e,s0(A).host)}function va(e){var A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"top",t=A==="top"?"scrollTop":"scrollLeft",i=e.nodeName;if(i==="BODY"||i==="HTML"){var n=e.ownerDocument.documentElement,r=e.ownerDocument.scrollingElement||n;return r[t]}return e[t]}function zCA(e,A){var t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,i=va(A,"top"),n=va(A,"left"),r=t?-1:1;return e.top+=i*r,e.bottom+=i*r,e.left+=n*r,e.right+=n*r,e}function Xx(e,A){var t=A==="x"?"Left":"Top",i=t==="Left"?"Right":"Bottom";return parseFloat(e["border"+t+"Width"])+parseFloat(e["border"+i+"Width"])}function Zx(e,A,t,i){return Math.max(A["offset"+e],A["scroll"+e],t["client"+e],t["offset"+e],t["scroll"+e],rg(10)?parseInt(t["offset"+e])+parseInt(i["margin"+(e==="Height"?"Top":"Left")])+parseInt(i["margin"+(e==="Height"?"Bottom":"Right")]):0)}function tk(e){var A=e.body,t=e.documentElement,i=rg(10)&&getComputedStyle(t);return{height:Zx("Height",A,t,i),width:Zx("Width",A,t,i)}}var jCA=function(e,A){if(!(e instanceof A))throw new TypeError("Cannot call a class as a function")},XCA=function(){function e(A,t){for(var i=0;i2&&arguments[2]!==void 0?arguments[2]:!1,i=rg(10),n=A.nodeName==="HTML",r=a0(e),o=a0(A),s=nc(e),a=ls(A),g=parseFloat(a.borderTopWidth),I=parseFloat(a.borderLeftWidth);t&&n&&(o.top=Math.max(o.top,0),o.left=Math.max(o.left,0));var l=Xr({top:r.top-o.top-g,left:r.left-o.left-I,width:r.width,height:r.height});if(l.marginTop=0,l.marginLeft=0,!i&&n){var c=parseFloat(a.marginTop),C=parseFloat(a.marginLeft);l.top-=g-c,l.bottom-=g-c,l.left-=I-C,l.right-=I-C,l.marginTop=c,l.marginLeft=C}return(i&&!t?A.contains(s):A===s&&s.nodeName!=="BODY")&&(l=zCA(l,A)),l}function ZCA(e){var A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,t=e.ownerDocument.documentElement,i=Nm(e,t),n=Math.max(t.clientWidth,window.innerWidth||0),r=Math.max(t.clientHeight,window.innerHeight||0),o=A?0:va(t),s=A?0:va(t,"left"),a={top:o-i.top+i.marginTop,left:s-i.left+i.marginLeft,width:n,height:r};return Xr(a)}function ik(e){var A=e.nodeName;if(A==="BODY"||A==="HTML")return!1;if(ls(e,"position")==="fixed")return!0;var t=Fm(e);return t?ik(t):!1}function nk(e){if(!e||!e.parentElement||rg())return document.documentElement;for(var A=e.parentElement;A&&ls(A,"transform")==="none";)A=A.parentElement;return A||document.documentElement}function Lm(e,A,t,i){var n=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!1,r={top:0,left:0},o=n?nk(e):lE(e,ek(A));if(i==="viewport")r=ZCA(o,n);else{var s=void 0;i==="scrollParent"?(s=nc(Fm(A)),s.nodeName==="BODY"&&(s=e.ownerDocument.documentElement)):i==="window"?s=e.ownerDocument.documentElement:s=i;var a=Nm(s,o,n);if(s.nodeName==="HTML"&&!ik(o)){var g=tk(e.ownerDocument),I=g.height,l=g.width;r.top+=a.top-a.marginTop,r.bottom=I+a.top,r.left+=a.left-a.marginLeft,r.right=l+a.left}else r=a}t=t||0;var c=typeof t=="number";return r.left+=c?t:t.left||0,r.top+=c?t:t.top||0,r.right-=c?t:t.right||0,r.bottom-=c?t:t.bottom||0,r}function $CA(e){var A=e.width,t=e.height;return A*t}function rk(e,A,t,i,n){var r=arguments.length>5&&arguments[5]!==void 0?arguments[5]:0;if(e.indexOf("auto")===-1)return e;var o=Lm(t,i,r,n),s={top:{width:o.width,height:A.top-o.top},right:{width:o.right-A.right,height:o.height},bottom:{width:o.width,height:o.bottom-A.bottom},left:{width:A.left-o.left,height:o.height}},a=Object.keys(s).map(function(c){return Bi({key:c},s[c],{area:$CA(s[c])})}).sort(function(c,C){return C.area-c.area}),g=a.filter(function(c){var C=c.width,B=c.height;return C>=t.clientWidth&&B>=t.clientHeight}),I=g.length>0?g[0].key:a[0].key,l=e.split("-")[1];return I+(l?"-"+l:"")}function ok(e,A,t){var i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:null,n=i?nk(A):lE(A,ek(t));return Nm(t,n,i)}function sk(e){var A=e.ownerDocument.defaultView,t=A.getComputedStyle(e),i=parseFloat(t.marginTop||0)+parseFloat(t.marginBottom||0),n=parseFloat(t.marginLeft||0)+parseFloat(t.marginRight||0),r={width:e.offsetWidth+n,height:e.offsetHeight+i};return r}function cE(e){var A={left:"right",right:"left",bottom:"top",top:"bottom"};return e.replace(/left|right|bottom|top/g,function(t){return A[t]})}function ak(e,A,t){t=t.split("-")[0];var i=sk(e),n={width:i.width,height:i.height},r=["right","left"].indexOf(t)!==-1,o=r?"top":"left",s=r?"left":"top",a=r?"height":"width",g=r?"width":"height";return n[o]=A[o]+A[a]/2-i[a]/2,t===s?n[s]=A[s]-i[g]:n[s]=A[cE(s)],n}function rc(e,A){return Array.prototype.find?e.find(A):e.filter(A)[0]}function ABA(e,A,t){if(Array.prototype.findIndex)return e.findIndex(function(n){return n[A]===t});var i=rc(e,function(n){return n[A]===t});return e.indexOf(i)}function gk(e,A,t){var i=t===void 0?e:e.slice(0,ABA(e,"name",t));return i.forEach(function(n){n.function&&console.warn("`modifier.function` is deprecated, use `modifier.fn`!");var r=n.function||n.fn;n.enabled&&Ak(r)&&(A.offsets.popper=Xr(A.offsets.popper),A.offsets.reference=Xr(A.offsets.reference),A=r(A,n))}),A}function eBA(){if(!this.state.isDestroyed){var e={instance:this,styles:{},arrowStyles:{},attributes:{},flipped:!1,offsets:{}};e.offsets.reference=ok(this.state,this.popper,this.reference,this.options.positionFixed),e.placement=rk(this.options.placement,e.offsets.reference,this.popper,this.reference,this.options.modifiers.flip.boundariesElement,this.options.modifiers.flip.padding),e.originalPlacement=e.placement,e.positionFixed=this.options.positionFixed,e.offsets.popper=ak(this.popper,e.offsets.reference,e.placement),e.offsets.popper.position=this.options.positionFixed?"fixed":"absolute",e=gk(this.modifiers,e),this.state.isCreated?this.options.onUpdate(e):(this.state.isCreated=!0,this.options.onCreate(e))}}function Ik(e,A){return e.some(function(t){var i=t.name,n=t.enabled;return n&&i===A})}function bm(e){for(var A=[!1,"ms","Webkit","Moz","O"],t=e.charAt(0).toUpperCase()+e.slice(1),i=0;io[C]&&(e.offsets.popper[l]+=s[l]+B-o[C]),e.offsets.popper=Xr(e.offsets.popper);var u=s[l]+s[g]/2-B/2,E=ls(e.instance.popper),h=parseFloat(E["margin"+I]),f=parseFloat(E["border"+I+"Width"]),Q=u-e.offsets.popper[l]-h-f;return Q=Math.max(Math.min(o[g]-B,Q),0),e.arrowElement=i,e.offsets.arrow=(t={},Sa(t,l,Math.round(Q)),Sa(t,c,""),t),e}function BBA(e){return e==="end"?"start":e==="start"?"end":e}var Bk=["auto-start","auto","auto-end","top-start","top","top-end","right-start","right","right-end","bottom-end","bottom","bottom-start","left-end","left","left-start"],Yf=Bk.slice(3);function $x(e){var A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,t=Yf.indexOf(e),i=Yf.slice(t+1).concat(Yf.slice(0,t));return A?i.reverse():i}var Kf={FLIP:"flip",CLOCKWISE:"clockwise",COUNTERCLOCKWISE:"counterclockwise"};function EBA(e,A){if(Ik(e.instance.modifiers,"inner")||e.flipped&&e.placement===e.originalPlacement)return e;var t=Lm(e.instance.popper,e.instance.reference,A.padding,A.boundariesElement,e.positionFixed),i=e.placement.split("-")[0],n=cE(i),r=e.placement.split("-")[1]||"",o=[];switch(A.behavior){case Kf.FLIP:o=[i,n];break;case Kf.CLOCKWISE:o=$x(i);break;case Kf.COUNTERCLOCKWISE:o=$x(i,!0);break;default:o=A.behavior}return o.forEach(function(s,a){if(i!==s||o.length===a+1)return e;i=e.placement.split("-")[0],n=cE(i);var g=e.offsets.popper,I=e.offsets.reference,l=Math.floor,c=i==="left"&&l(g.right)>l(I.left)||i==="right"&&l(g.left)l(I.top)||i==="bottom"&&l(g.top)l(t.right),u=l(g.top)l(t.bottom),h=i==="left"&&C||i==="right"&&B||i==="top"&&u||i==="bottom"&&E,f=["top","bottom"].indexOf(i)!==-1,Q=!!A.flipVariations&&(f&&r==="start"&&C||f&&r==="end"&&B||!f&&r==="start"&&u||!f&&r==="end"&&E),d=!!A.flipVariationsByContent&&(f&&r==="start"&&B||f&&r==="end"&&C||!f&&r==="start"&&E||!f&&r==="end"&&u),w=Q||d;(c||h||w)&&(e.flipped=!0,(c||h)&&(i=o[a+1]),w&&(r=BBA(r)),e.placement=i+(r?"-"+r:""),e.offsets.popper=Bi({},e.offsets.popper,ak(e.instance.popper,e.offsets.reference,e.placement)),e=gk(e.instance.modifiers,e,"flip"))}),e}function uBA(e){var A=e.offsets,t=A.popper,i=A.reference,n=e.placement.split("-")[0],r=Math.floor,o=["top","bottom"].indexOf(n)!==-1,s=o?"right":"bottom",a=o?"left":"top",g=o?"width":"height";return t[s]r(i[s])&&(e.offsets.popper[a]=r(i[s])),e}function hBA(e,A,t,i){var n=e.match(/((?:\-|\+)?\d*\.?\d*)(.*)/),r=+n[1],o=n[2];if(!r)return e;if(o.indexOf("%")===0){var s=void 0;switch(o){case"%p":s=t;break;case"%":case"%r":default:s=i}var a=Xr(s);return a[A]/100*r}else if(o==="vh"||o==="vw"){var g=void 0;return o==="vh"?g=Math.max(document.documentElement.clientHeight,window.innerHeight||0):g=Math.max(document.documentElement.clientWidth,window.innerWidth||0),g/100*r}else return r}function fBA(e,A,t,i){var n=[0,0],r=["right","left"].indexOf(i)!==-1,o=e.split(/(\+|\-)/).map(function(I){return I.trim()}),s=o.indexOf(rc(o,function(I){return I.search(/,|\s/)!==-1}));o[s]&&o[s].indexOf(",")===-1&&console.warn("Offsets separated by white space(s) are deprecated, use a comma (,) instead.");var a=/\s*,\s*|\s+/,g=s!==-1?[o.slice(0,s).concat([o[s].split(a)[0]]),[o[s].split(a)[1]].concat(o.slice(s+1))]:[o];return g=g.map(function(I,l){var c=(l===1?!r:r)?"height":"width",C=!1;return I.reduce(function(B,u){return B[B.length-1]===""&&["+","-"].indexOf(u)!==-1?(B[B.length-1]=u,C=!0,B):C?(B[B.length-1]+=u,C=!1,B):B.concat(u)},[]).map(function(B){return hBA(B,c,A,t)})}),g.forEach(function(I,l){I.forEach(function(c,C){Gm(c)&&(n[l]+=c*(I[C-1]==="-"?-1:1))})}),n}function QBA(e,A){var t=A.offset,i=e.placement,n=e.offsets,r=n.popper,o=n.reference,s=i.split("-")[0],a=void 0;return Gm(+t)?a=[+t,0]:a=fBA(t,r,o,s),s==="left"?(r.top+=a[0],r.left-=a[1]):s==="right"?(r.top+=a[0],r.left+=a[1]):s==="top"?(r.left+=a[0],r.top-=a[1]):s==="bottom"&&(r.left+=a[0],r.top+=a[1]),e.popper=r,e}function dBA(e,A){var t=A.boundariesElement||wa(e.instance.popper);e.instance.reference===t&&(t=wa(t));var i=bm("transform"),n=e.instance.popper.style,r=n.top,o=n.left,s=n[i];n.top="",n.left="",n[i]="";var a=Lm(e.instance.popper,e.instance.reference,A.padding,t,e.positionFixed);n.top=r,n.left=o,n[i]=s,A.boundaries=a;var g=A.priority,I=e.offsets.popper,l={primary:function(C){var B=I[C];return I[C]a[C]&&!A.escapeWithReference&&(u=Math.min(I[B],a[C]-(C==="right"?I.width:I.height))),Sa({},B,u)}};return g.forEach(function(c){var C=["left","top"].indexOf(c)!==-1?"primary":"secondary";I=Bi({},I,l[C](c))}),e.offsets.popper=I,e}function pBA(e){var A=e.placement,t=A.split("-")[0],i=A.split("-")[1];if(i){var n=e.offsets,r=n.reference,o=n.popper,s=["bottom","top"].indexOf(t)!==-1,a=s?"left":"top",g=s?"width":"height",I={start:Sa({},a,r[a]),end:Sa({},a,r[a]+r[g]-o[g])};e.offsets.popper=Bi({},o,I[i])}return e}function yBA(e){if(!Ck(e.instance.modifiers,"hide","preventOverflow"))return e;var A=e.offsets.reference,t=rc(e.instance.modifiers,function(i){return i.name==="preventOverflow"}).boundaries;if(A.bottomt.right||A.top>t.bottom||A.right2&&arguments[2]!==void 0?arguments[2]:{};jCA(this,e),this.scheduleUpdate=function(){return requestAnimationFrame(i.update)},this.update=VCA(this.update.bind(this)),this.options=Bi({},e.Defaults,n),this.state={isDestroyed:!1,isCreated:!1,scrollParents:[]},this.reference=A&&A.jquery?A[0]:A,this.popper=t&&t.jquery?t[0]:t,this.options.modifiers={},Object.keys(Bi({},e.Defaults.modifiers,n.modifiers)).forEach(function(o){i.options.modifiers[o]=Bi({},e.Defaults.modifiers[o]||{},n.modifiers?n.modifiers[o]:{})}),this.modifiers=Object.keys(this.options.modifiers).map(function(o){return Bi({name:o},i.options.modifiers[o])}).sort(function(o,s){return o.order-s.order}),this.modifiers.forEach(function(o){o.enabled&&Ak(o.onLoad)&&o.onLoad(i.reference,i.popper,i.options,o,i.state)}),this.update();var r=this.options.eventsEnabled;r&&this.enableEventListeners(),this.state.eventsEnabled=r}return XCA(e,[{key:"update",value:function(){return eBA.call(this)}},{key:"destroy",value:function(){return tBA.call(this)}},{key:"enableEventListeners",value:function(){return nBA.call(this)}},{key:"disableEventListeners",value:function(){return oBA.call(this)}}]),e}();Fu.Utils=(typeof window!="undefined"?window:global).PopperUtils;Fu.placements=Bk;Fu.Defaults=vBA;var SBA=Fu;function DBA(e,A){var t=A&&A.direction||"ltr";if(t==="ltr")return e;switch(e){case"bottom-end":return"bottom-start";case"bottom-start":return"bottom-end";case"top-end":return"top-start";case"top-start":return"top-end";default:return e}}function AF(e){return typeof e=="function"?e():e}var RBA=typeof window!="undefined"?p.exports.useLayoutEffect:p.exports.useEffect,xBA={},FBA=p.exports.forwardRef(function(A,t){var i=A.anchorEl,n=A.children,r=A.container,o=A.disablePortal,s=o===void 0?!1:o,a=A.keepMounted,g=a===void 0?!1:a,I=A.modifiers,l=A.open,c=A.placement,C=c===void 0?"bottom":c,B=A.popperOptions,u=B===void 0?xBA:B,E=A.popperRef,h=A.style,f=A.transition,Q=f===void 0?!1:f,d=SA(A,["anchorEl","children","container","disablePortal","keepMounted","modifiers","open","placement","popperOptions","popperRef","style","transition"]),w=p.exports.useRef(null),m=ze(w,t),v=p.exports.useRef(null),x=ze(v,E),D=p.exports.useRef(x);RBA(function(){D.current=x},[x]),p.exports.useImperativeHandle(E,function(){return v.current},[]);var F=p.exports.useState(!0),N=F[0],M=F[1],U=Ma(),P=DBA(C,U),W=p.exports.useState(P),J=W[0],Z=W[1];p.exports.useEffect(function(){v.current&&v.current.update()});var z=p.exports.useCallback(function(){if(!(!w.current||!i||!l)){v.current&&(v.current.destroy(),D.current(null));var AA=function(sA){Z(sA.placement)};AF(i);var iA=new SBA(AF(i),w.current,_({placement:P},u,{modifiers:_({},s?{}:{preventOverflow:{boundariesElement:"window"}},I,u.modifiers),onCreate:jr(AA,u.onCreate),onUpdate:jr(AA,u.onUpdate)}));D.current(iA)}},[i,s,I,l,P,u]),O=p.exports.useCallback(function(AA){jo(m,AA),z()},[m,z]),Y=function(){M(!1)},k=function(){!v.current||(v.current.destroy(),D.current(null))},q=function(){M(!0),k()};if(p.exports.useEffect(function(){return function(){k()}},[]),p.exports.useEffect(function(){!l&&!Q&&k()},[l,Q]),!g&&!l&&(!Q||N))return null;var j={placement:J};return Q&&(j.TransitionProps={in:l,onEnter:Y,onExited:q}),p.exports.createElement(TM,{disablePortal:s,container:r},p.exports.createElement("div",_({ref:O,role:"tooltip"},d,{style:_({position:"fixed",top:0,left:0,display:!l&&g&&!Q?"none":null},h)}),typeof n=="function"?n(j):n))}),_m=FBA,NBA=function(A){return{root:{display:"flex",justifyContent:"flex-start",alignItems:"center",position:"relative",textDecoration:"none",width:"100%",boxSizing:"border-box",textAlign:"left",paddingTop:8,paddingBottom:8,"&$focusVisible":{backgroundColor:A.palette.action.selected},"&$selected, &$selected:hover":{backgroundColor:A.palette.action.selected},"&$disabled":{opacity:.5}},container:{position:"relative"},focusVisible:{},dense:{paddingTop:4,paddingBottom:4},alignItemsFlexStart:{alignItems:"flex-start"},disabled:{},divider:{borderBottom:"1px solid ".concat(A.palette.divider),backgroundClip:"padding-box"},gutters:{paddingLeft:16,paddingRight:16},button:{transition:A.transitions.create("background-color",{duration:A.transitions.duration.shortest}),"&:hover":{textDecoration:"none",backgroundColor:A.palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}}},secondaryAction:{paddingRight:48},selected:{}}},LBA=typeof window=="undefined"?p.exports.useEffect:p.exports.useLayoutEffect,bBA=p.exports.forwardRef(function(A,t){var i=A.alignItems,n=i===void 0?"center":i,r=A.autoFocus,o=r===void 0?!1:r,s=A.button,a=s===void 0?!1:s,g=A.children,I=A.classes,l=A.className,c=A.component,C=A.ContainerComponent,B=C===void 0?"li":C,u=A.ContainerProps;u=u===void 0?{}:u;var E=u.className,h=SA(u,["className"]),f=A.dense,Q=f===void 0?!1:f,d=A.disabled,w=d===void 0?!1:d,m=A.disableGutters,v=m===void 0?!1:m,x=A.divider,D=x===void 0?!1:x,F=A.focusVisibleClassName,N=A.selected,M=N===void 0?!1:N,U=SA(A,["alignItems","autoFocus","button","children","classes","className","component","ContainerComponent","ContainerProps","dense","disabled","disableGutters","divider","focusVisibleClassName","selected"]),P=p.exports.useContext(ZC),W={dense:Q||P.dense||!1,alignItems:n},J=p.exports.useRef(null);LBA(function(){o&&J.current&&J.current.focus()},[o]);var Z=p.exports.Children.toArray(g),z=Z.length&&SI(Z[Z.length-1],["ListItemSecondaryAction"]),O=p.exports.useCallback(function(j){J.current=bt.exports.findDOMNode(j)},[]),Y=ze(O,t),k=_({className:yA(I.root,l,W.dense&&I.dense,!v&&I.gutters,D&&I.divider,w&&I.disabled,a&&I.button,n!=="center"&&I.alignItemsFlexStart,z&&I.secondaryAction,M&&I.selected),disabled:w},U),q=c||"li";return a&&(k.component=c||"div",k.focusVisibleClassName=yA(I.focusVisible,F),q=tc),z?(q=!k.component&&!c?"div":q,B==="li"&&(q==="li"?q="div":k.component==="li"&&(k.component="div")),p.exports.createElement(ZC.Provider,{value:W},p.exports.createElement(B,_({className:yA(I.container,E),ref:Y},h),p.exports.createElement(q,k,Z),Z.pop()))):p.exports.createElement(ZC.Provider,{value:W},p.exports.createElement(q,_({ref:Y},k),Z))}),GBA=ee(NBA,{name:"MuiListItem"})(bBA),_BA=function(A){return{root:_({},A.typography.body1,y({minHeight:48,paddingTop:6,paddingBottom:6,boxSizing:"border-box",width:"auto",overflow:"hidden",whiteSpace:"nowrap"},A.breakpoints.up("sm"),{minHeight:"auto"})),gutters:{},selected:{},dense:_({},A.typography.body2,{minHeight:"auto"})}},MBA=p.exports.forwardRef(function(A,t){var i=A.classes,n=A.className,r=A.component,o=r===void 0?"li":r,s=A.disableGutters,a=s===void 0?!1:s,g=A.ListItemClasses,I=A.role,l=I===void 0?"menuitem":I,c=A.selected,C=A.tabIndex,B=SA(A,["classes","className","component","disableGutters","ListItemClasses","role","selected","tabIndex"]),u;return A.disabled||(u=C!==void 0?C:-1),p.exports.createElement(GBA,_({button:!0,role:l,tabIndex:u,component:o,selected:c,disableGutters:a,classes:_({dense:i.dense},g),className:yA(i.root,n,c&&i.selected,!a&&i.gutters),ref:t},B))}),$C=ee(_BA,{name:"MuiMenuItem"})(MBA),Mm={},kBA=Xn.exports,TBA=Zn.exports;Object.defineProperty(Mm,"__esModule",{value:!0});var Ek=Mm.default=void 0,UBA=TBA(p.exports),PBA=kBA($n),HBA=(0,PBA.default)(UBA.createElement("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2z"}),"Lens");Ek=Mm.default=HBA;const qBA=ns(()=>({container:{width:"70px",height:"40px",display:"flex",justifyContent:"space-between",alignItems:"center",flexWrap:"wrap"},button:{padding:"3px",width:"16px",height:"16px"},icon:{width:"17px",height:"17px"}})),JBA=({handleColorSelect:e})=>{const A=qBA();return H("div",{className:A.container,"aria-label":"color-swatch",children:Cm.map(t=>H(Xo,{className:A.button,onClick:()=>e(t),children:H(Ek,{fontSize:"small",style:{color:`rgb(${t})`},className:A.icon})},t))})},OBA=ns(()=>({paper:{backgroundColor:"rgba(0, 0, 0, 0.75)"},span:{width:"70px",textAlign:"center",paddingLeft:"2px",paddingRight:"2px"},colors:{"&:hover":{backgroundColor:"transparent"},paddingLeft:"2px",paddingRight:"2px"}}));function YBA({handleColorSelect:e,disabled:A,handleModeSelect:t}){const[i,n]=p.exports.useReducer(a=>!a,!1),r=p.exports.useRef(null),o=OBA();function s(a){const{mode:g}=a.currentTarget.dataset;t(g)}return XA(Pi,{children:[H(Xo,{"aria-label":"Remove channel",size:"small",onClick:n,ref:r,disabled:A,children:H($M,{fontSize:"small"})}),H(_m,{open:i,anchorEl:r.current,placement:"bottom-end",children:H(ro,{className:o.paper,children:H(wu,{onClickAway:n,children:XA(wm,{id:"channel-options",children:[H($C,{dense:!0,disableGutters:!0,className:o.colors,children:H(JBA,{handleColorSelect:e})}),H($C,{"data-mode":"full",dense:!0,disableGutters:!0,onClick:s,children:H("span",{className:o.span,children:"Full"})}),H($C,{"data-mode":"max/min",dense:!0,disableGutters:!0,onClick:s,children:H("span",{className:o.span,children:"Max/Min"})})]})})})})]})}const KBA=[220,220,220],VBA=(e,A)=>`rgb(${e?KBA:A})`,WBA=(e,A,t)=>A?H(_M,{size:"50%"}):t&&(e||typeof e=="number")?hm(e,7):e0;function zBA({name:e,onSelectionChange:A,channelsVisible:t,pixelValue:i,toggleIsOn:n,handleSliderChange:r,domain:o,slider:s,color:a,handleRemoveChannel:g,handleColorSelect:I,isLoading:l}){const c=hn(),C=he(N=>N.colormap),[B,u,E]=_A(N=>[N.channelOptions,N.useLinkedView,N.use3d],Ue),h=VBA(C,a),f=({domain:N,mode:M,loader:U})=>{switch(M){case"max/min":return N;case"full":{const{dtype:P}=U[0],{max:W}=Wd[P];return[P.startsWith("Int")?-W:0,W]}default:throw new Error}},[Q,d]=p.exports.useState("max/min"),[w,m]=f({domain:o,mode:Q,loader:c}),{dtype:v}=c[0],x=v==="Float32"||v==="Float64",D=m-w<500&&x?(m-w)/500:1,F=!u&&!E;return XA($A,{container:!0,direction:"column",m:2,justifyContent:"center",children:[XA($A,{container:!0,direction:"row",justifyContent:"space-between",children:[H($A,{item:!0,xs:10,children:H(ng,{native:!0,value:e,onChange:A,children:B.map(N=>H("option",{disabled:l,value:N,children:N},N))})}),H($A,{item:!0,xs:1,children:H(YBA,{handleColorSelect:I,disabled:l,handleModeSelect:d})}),H($A,{item:!0,xs:1,children:H(Xo,{"aria-label":"remove-channel",component:"span",size:"small",onClick:g,children:H(ZM,{fontSize:"small"})})})]}),XA($A,{container:!0,direction:"row",justifyContent:"flex-start",alignItems:"center",children:[H($A,{item:!0,xs:2,children:WBA(i,l,F)}),H($A,{item:!0,xs:2,children:H(ym,{onChange:n,disabled:l,checked:t,style:{color:h,"&$checked":{color:h}}})}),H($A,{item:!0,xs:7,children:H(mm,{disabled:l,value:s,onChange:r,valueLabelDisplay:"auto",getAriaLabel:()=>`${e}-${a}-${s}`,valueLabelFormat:N=>hm(N,5),min:w,max:m,step:D,orientation:"horizontal",style:{color:h,marginTop:"7px"}})})]})]})}var jBA=NP(Yn(FP,TP,$P,C4,w4,h4,S4,_4,pp,$4)),XBA=Iq("div")(jBA,{name:"MuiBox"}),I0=XBA,ZBA=function(A){return{root:_({color:A.palette.text.secondary},A.typography.body1,{lineHeight:1,padding:0,"&$focused":{color:A.palette.primary.main},"&$disabled":{color:A.palette.text.disabled},"&$error":{color:A.palette.error.main}}),colorSecondary:{"&$focused":{color:A.palette.secondary.main}},focused:{},disabled:{},error:{},filled:{},required:{},asterisk:{"&$error":{color:A.palette.error.main}}}},$BA=p.exports.forwardRef(function(A,t){var i=A.children,n=A.classes,r=A.className;A.color;var o=A.component,s=o===void 0?"label":o;A.disabled,A.error,A.filled,A.focused,A.required;var a=SA(A,["children","classes","className","color","component","disabled","error","filled","focused","required"]),g=tg(),I=ig({props:A,muiFormControl:g,states:["color","required","focused","disabled","error","filled"]});return p.exports.createElement(s,_({className:yA(n.root,n["color".concat(Qe(I.color||"primary"))],r,I.disabled&&n.disabled,I.error&&n.error,I.filled&&n.filled,I.focused&&n.focused,I.required&&n.required),ref:t},a),i,I.required&&p.exports.createElement("span",{"aria-hidden":!0,className:yA(n.asterisk,I.error&&n.error)},"\u2009","*"))}),AEA=ee(ZBA,{name:"MuiFormLabel"})($BA),eEA=function(A){return{root:{display:"block",transformOrigin:"top left"},focused:{},disabled:{},error:{},required:{},asterisk:{},formControl:{position:"absolute",left:0,top:0,transform:"translate(0, 24px) scale(1)"},marginDense:{transform:"translate(0, 21px) scale(1)"},shrink:{transform:"translate(0, 1.5px) scale(0.75)",transformOrigin:"top left"},animated:{transition:A.transitions.create(["color","transform"],{duration:A.transitions.duration.shorter,easing:A.transitions.easing.easeOut})},filled:{zIndex:1,pointerEvents:"none",transform:"translate(12px, 20px) scale(1)","&$marginDense":{transform:"translate(12px, 17px) scale(1)"},"&$shrink":{transform:"translate(12px, 10px) scale(0.75)","&$marginDense":{transform:"translate(12px, 7px) scale(0.75)"}}},outlined:{zIndex:1,pointerEvents:"none",transform:"translate(14px, 20px) scale(1)","&$marginDense":{transform:"translate(14px, 12px) scale(1)"},"&$shrink":{transform:"translate(14px, -6px) scale(0.75)"}}}},tEA=p.exports.forwardRef(function(A,t){var i=A.classes,n=A.className,r=A.disableAnimation,o=r===void 0?!1:r;A.margin;var s=A.shrink;A.variant;var a=SA(A,["classes","className","disableAnimation","margin","shrink","variant"]),g=tg(),I=s;typeof I=="undefined"&&g&&(I=g.filled||g.focused||g.adornedStart);var l=ig({props:A,muiFormControl:g,states:["margin","variant"]});return p.exports.createElement(AEA,_({"data-shrink":I,className:yA(i.root,n,g&&i.formControl,!o&&i.animated,I&&i.shrink,l.margin==="dense"&&i.marginDense,{filled:i.filled,outlined:i.outlined}[l.variant]),classes:{focused:i.focused,disabled:i.disabled,error:i.error,required:i.required,asterisk:i.asterisk},ref:t},a))}),km=ee(eEA,{name:"MuiInputLabel"})(tEA),iEA={root:{display:"inline-flex",flexDirection:"column",position:"relative",minWidth:0,padding:0,margin:0,border:0,verticalAlign:"top"},marginNormal:{marginTop:16,marginBottom:8},marginDense:{marginTop:8,marginBottom:4},fullWidth:{width:"100%"}},nEA=p.exports.forwardRef(function(A,t){var i=A.children,n=A.classes,r=A.className,o=A.color,s=o===void 0?"primary":o,a=A.component,g=a===void 0?"div":a,I=A.disabled,l=I===void 0?!1:I,c=A.error,C=c===void 0?!1:c,B=A.fullWidth,u=B===void 0?!1:B,E=A.focused,h=A.hiddenLabel,f=h===void 0?!1:h,Q=A.margin,d=Q===void 0?"none":Q,w=A.required,m=w===void 0?!1:w,v=A.size,x=A.variant,D=x===void 0?"standard":x,F=SA(A,["children","classes","className","color","component","disabled","error","fullWidth","focused","hiddenLabel","margin","required","size","variant"]),N=p.exports.useState(function(){var iA=!1;return i&&p.exports.Children.forEach(i,function(gA){if(!!SI(gA,["Input","Select"])){var sA=SI(gA,["Select"])?gA.props.input:gA;sA&&ICA(sA.props)&&(iA=!0)}}),iA}),M=N[0],U=N[1],P=p.exports.useState(function(){var iA=!1;return i&&p.exports.Children.forEach(i,function(gA){!SI(gA,["Input","Select"])||vm(gA.props,!0)&&(iA=!0)}),iA}),W=P[0],J=P[1],Z=p.exports.useState(!1),z=Z[0],O=Z[1],Y=E!==void 0?E:z;l&&Y&&O(!1);var k,q=p.exports.useCallback(function(){J(!0)},[]),j=p.exports.useCallback(function(){J(!1)},[]),AA={adornedStart:M,setAdornedStart:U,color:s,disabled:l,error:C,filled:W,focused:Y,fullWidth:u,hiddenLabel:f,margin:(v==="small"?"dense":void 0)||d,onBlur:function(){O(!1)},onEmpty:j,onFilled:q,onFocus:function(){O(!0)},registerEffect:k,required:m,variant:D};return p.exports.createElement(pm.Provider,{value:AA},p.exports.createElement(g,_({className:yA(n.root,r,d!=="none"&&n["margin".concat(Qe(d))],u&&n.fullWidth),ref:t},F),i))}),Tm=ee(iEA,{name:"MuiFormControl"})(nEA),rEA=function(A){return{root:_({color:A.palette.text.secondary},A.typography.caption,{textAlign:"left",marginTop:3,margin:0,"&$disabled":{color:A.palette.text.disabled},"&$error":{color:A.palette.error.main}}),error:{},disabled:{},marginDense:{marginTop:4},contained:{marginLeft:14,marginRight:14},focused:{},filled:{},required:{}}},oEA=p.exports.forwardRef(function(A,t){var i=A.children,n=A.classes,r=A.className,o=A.component,s=o===void 0?"p":o;A.disabled,A.error,A.filled,A.focused,A.margin,A.required,A.variant;var a=SA(A,["children","classes","className","component","disabled","error","filled","focused","margin","required","variant"]),g=tg(),I=ig({props:A,muiFormControl:g,states:["variant","margin","disabled","error","filled","focused","required"]});return p.exports.createElement(s,_({className:yA(n.root,(I.variant==="filled"||I.variant==="outlined")&&n.contained,r,I.disabled&&n.disabled,I.error&&n.error,I.filled&&n.filled,I.focused&&n.focused,I.required&&n.required,I.margin==="dense"&&n.marginDense),ref:t},a),i===" "?p.exports.createElement("span",{dangerouslySetInnerHTML:{__html:"​"}}):i)}),sEA=ee(rEA,{name:"MuiFormHelperText"})(oEA),aEA={standard:Dm,filled:VM,outlined:zM},gEA={root:{}},IEA=p.exports.forwardRef(function(A,t){var i=A.autoComplete,n=A.autoFocus,r=n===void 0?!1:n,o=A.children,s=A.classes,a=A.className,g=A.color,I=g===void 0?"primary":g,l=A.defaultValue,c=A.disabled,C=c===void 0?!1:c,B=A.error,u=B===void 0?!1:B,E=A.FormHelperTextProps,h=A.fullWidth,f=h===void 0?!1:h,Q=A.helperText,d=A.hiddenLabel,w=A.id,m=A.InputLabelProps,v=A.inputProps,x=A.InputProps,D=A.inputRef,F=A.label,N=A.multiline,M=N===void 0?!1:N,U=A.name,P=A.onBlur,W=A.onChange,J=A.onFocus,Z=A.placeholder,z=A.required,O=z===void 0?!1:z,Y=A.rows,k=A.rowsMax,q=A.maxRows,j=A.minRows,AA=A.select,iA=AA===void 0?!1:AA,gA=A.SelectProps,sA=A.type,BA=A.value,IA=A.variant,bA=IA===void 0?"standard":IA,EA=SA(A,["autoComplete","autoFocus","children","classes","className","color","defaultValue","disabled","error","FormHelperTextProps","fullWidth","helperText","hiddenLabel","id","InputLabelProps","inputProps","InputProps","inputRef","label","multiline","name","onBlur","onChange","onFocus","placeholder","required","rows","rowsMax","maxRows","minRows","select","SelectProps","type","value","variant"]),QA={};if(bA==="outlined"&&(m&&typeof m.shrink!="undefined"&&(QA.notched=m.shrink),F)){var TA,RA=(TA=m==null?void 0:m.required)!==null&&TA!==void 0?TA:O;QA.label=p.exports.createElement(p.exports.Fragment,null,F,RA&&"\xA0*")}iA&&((!gA||!gA.native)&&(QA.id=void 0),QA["aria-describedby"]=void 0);var UA=Q&&w?"".concat(w,"-helper-text"):void 0,fA=F&&w?"".concat(w,"-label"):void 0,NA=aEA[bA],ZA=p.exports.createElement(NA,_({"aria-describedby":UA,autoComplete:i,autoFocus:r,defaultValue:l,fullWidth:f,multiline:M,name:U,rows:Y,rowsMax:k,maxRows:q,minRows:j,type:sA,value:BA,id:w,inputRef:D,onBlur:P,onChange:W,onFocus:J,placeholder:Z,inputProps:v},QA,x));return p.exports.createElement(Tm,_({className:yA(s.root,a),disabled:C,error:u,fullWidth:f,hiddenLabel:d,ref:t,required:O,color:I,variant:bA},EA),F&&p.exports.createElement(km,_({htmlFor:w,id:fA},m),F),iA?p.exports.createElement(ng,_({"aria-describedby":UA,id:w,labelId:fA,value:BA,input:ZA},gA),o):ZA,Q&&p.exports.createElement(sEA,_({id:UA},E),Q))}),lEA=ee(gEA,{name:"MuiTextField"})(IEA),Um={},cEA=Xn.exports,CEA=Zn.exports;Object.defineProperty(Um,"__esModule",{value:!0});var uk=Um.default=void 0,BEA=CEA(p.exports),EEA=cEA($n),uEA=(0,EEA.default)(BEA.createElement("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z"}),"Info");uk=Um.default=uEA;var hEA=function(A){return{root:_({},A.typography.button,{boxSizing:"border-box",minWidth:64,padding:"6px 16px",borderRadius:A.shape.borderRadius,color:A.palette.text.primary,transition:A.transitions.create(["background-color","box-shadow","border"],{duration:A.transitions.duration.short}),"&:hover":{textDecoration:"none",backgroundColor:ut(A.palette.text.primary,A.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"},"&$disabled":{backgroundColor:"transparent"}},"&$disabled":{color:A.palette.action.disabled}}),label:{width:"100%",display:"inherit",alignItems:"inherit",justifyContent:"inherit"},text:{padding:"6px 8px"},textPrimary:{color:A.palette.primary.main,"&:hover":{backgroundColor:ut(A.palette.primary.main,A.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}}},textSecondary:{color:A.palette.secondary.main,"&:hover":{backgroundColor:ut(A.palette.secondary.main,A.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}}},outlined:{padding:"5px 15px",border:"1px solid ".concat(A.palette.type==="light"?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)"),"&$disabled":{border:"1px solid ".concat(A.palette.action.disabledBackground)}},outlinedPrimary:{color:A.palette.primary.main,border:"1px solid ".concat(ut(A.palette.primary.main,.5)),"&:hover":{border:"1px solid ".concat(A.palette.primary.main),backgroundColor:ut(A.palette.primary.main,A.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}}},outlinedSecondary:{color:A.palette.secondary.main,border:"1px solid ".concat(ut(A.palette.secondary.main,.5)),"&:hover":{border:"1px solid ".concat(A.palette.secondary.main),backgroundColor:ut(A.palette.secondary.main,A.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}},"&$disabled":{border:"1px solid ".concat(A.palette.action.disabled)}},contained:{color:A.palette.getContrastText(A.palette.grey[300]),backgroundColor:A.palette.grey[300],boxShadow:A.shadows[2],"&:hover":{backgroundColor:A.palette.grey.A100,boxShadow:A.shadows[4],"@media (hover: none)":{boxShadow:A.shadows[2],backgroundColor:A.palette.grey[300]},"&$disabled":{backgroundColor:A.palette.action.disabledBackground}},"&$focusVisible":{boxShadow:A.shadows[6]},"&:active":{boxShadow:A.shadows[8]},"&$disabled":{color:A.palette.action.disabled,boxShadow:A.shadows[0],backgroundColor:A.palette.action.disabledBackground}},containedPrimary:{color:A.palette.primary.contrastText,backgroundColor:A.palette.primary.main,"&:hover":{backgroundColor:A.palette.primary.dark,"@media (hover: none)":{backgroundColor:A.palette.primary.main}}},containedSecondary:{color:A.palette.secondary.contrastText,backgroundColor:A.palette.secondary.main,"&:hover":{backgroundColor:A.palette.secondary.dark,"@media (hover: none)":{backgroundColor:A.palette.secondary.main}}},disableElevation:{boxShadow:"none","&:hover":{boxShadow:"none"},"&$focusVisible":{boxShadow:"none"},"&:active":{boxShadow:"none"},"&$disabled":{boxShadow:"none"}},focusVisible:{},disabled:{},colorInherit:{color:"inherit",borderColor:"currentColor"},textSizeSmall:{padding:"4px 5px",fontSize:A.typography.pxToRem(13)},textSizeLarge:{padding:"8px 11px",fontSize:A.typography.pxToRem(15)},outlinedSizeSmall:{padding:"3px 9px",fontSize:A.typography.pxToRem(13)},outlinedSizeLarge:{padding:"7px 21px",fontSize:A.typography.pxToRem(15)},containedSizeSmall:{padding:"4px 10px",fontSize:A.typography.pxToRem(13)},containedSizeLarge:{padding:"8px 22px",fontSize:A.typography.pxToRem(15)},sizeSmall:{},sizeLarge:{},fullWidth:{width:"100%"},startIcon:{display:"inherit",marginRight:8,marginLeft:-4,"&$iconSizeSmall":{marginLeft:-2}},endIcon:{display:"inherit",marginRight:-4,marginLeft:8,"&$iconSizeSmall":{marginRight:-2}},iconSizeSmall:{"& > *:first-child":{fontSize:18}},iconSizeMedium:{"& > *:first-child":{fontSize:20}},iconSizeLarge:{"& > *:first-child":{fontSize:22}}}},fEA=p.exports.forwardRef(function(A,t){var i=A.children,n=A.classes,r=A.className,o=A.color,s=o===void 0?"default":o,a=A.component,g=a===void 0?"button":a,I=A.disabled,l=I===void 0?!1:I,c=A.disableElevation,C=c===void 0?!1:c,B=A.disableFocusRipple,u=B===void 0?!1:B,E=A.endIcon,h=A.focusVisibleClassName,f=A.fullWidth,Q=f===void 0?!1:f,d=A.size,w=d===void 0?"medium":d,m=A.startIcon,v=A.type,x=v===void 0?"button":v,D=A.variant,F=D===void 0?"text":D,N=SA(A,["children","classes","className","color","component","disabled","disableElevation","disableFocusRipple","endIcon","focusVisibleClassName","fullWidth","size","startIcon","type","variant"]),M=m&&p.exports.createElement("span",{className:yA(n.startIcon,n["iconSize".concat(Qe(w))])},m),U=E&&p.exports.createElement("span",{className:yA(n.endIcon,n["iconSize".concat(Qe(w))])},E);return p.exports.createElement(tc,_({className:yA(n.root,n[F],r,s==="inherit"?n.colorInherit:s!=="default"&&n["".concat(F).concat(Qe(s))],w!=="medium"&&[n["".concat(F,"Size").concat(Qe(w))],n["size".concat(Qe(w))]],C&&n.disableElevation,l&&n.disabled,Q&&n.fullWidth),component:g,disabled:l,focusRipple:!u,focusVisibleClassName:yA(n.focusVisible,h),ref:t,type:x},N),p.exports.createElement("span",{className:n.label},M,i,U))}),Ar=ee(hEA,{name:"MuiButton"})(fEA),Pm={},QEA=Xn.exports,dEA=Zn.exports;Object.defineProperty(Pm,"__esModule",{value:!0});var hk=Pm.default=void 0,pEA=dEA(p.exports),yEA=QEA($n),mEA=(0,yEA.default)(pEA.createElement("path",{d:"M19.14 12.94c.04-.3.06-.61.06-.94 0-.32-.02-.64-.07-.94l2.03-1.58c.18-.14.23-.41.12-.61l-1.92-3.32c-.12-.22-.37-.29-.59-.22l-2.39.96c-.5-.38-1.03-.7-1.62-.94l-.36-2.54c-.04-.24-.24-.41-.48-.41h-3.84c-.24 0-.43.17-.47.41l-.36 2.54c-.59.24-1.13.57-1.62.94l-2.39-.96c-.22-.08-.47 0-.59.22L2.74 8.87c-.12.21-.08.47.12.61l2.03 1.58c-.05.3-.09.63-.09.94s.02.64.07.94l-2.03 1.58c-.18.14-.23.41-.12.61l1.92 3.32c.12.22.37.29.59.22l2.39-.96c.5.38 1.03.7 1.62.94l.36 2.54c.05.24.24.41.48.41h3.84c.24 0 .44-.17.47-.41l.36-2.54c.59-.24 1.13-.56 1.62-.94l2.39.96c.22.08.47 0 .59-.22l1.92-3.32c.12-.22.07-.47-.12-.61l-2.01-1.58zM12 15.6c-1.98 0-3.6-1.62-3.6-3.6s1.62-3.6 3.6-3.6 3.6 1.62 3.6 3.6-1.62 3.6-3.6 3.6z"}),"Settings");hk=Pm.default=mEA;var Hm={},wEA=Xn.exports,vEA=Zn.exports;Object.defineProperty(Hm,"__esModule",{value:!0});var fk=Hm.default=void 0,SEA=vEA(p.exports),DEA=wEA($n),REA=(0,DEA.default)(SEA.createElement("path",{d:"M12 .3a12 12 0 0 0-3.8 23.4c.6.1.8-.3.8-.6v-2c-3.3.7-4-1.6-4-1.6-.6-1.4-1.4-1.8-1.4-1.8-1-.7.1-.7.1-.7 1.2 0 1.9 1.2 1.9 1.2 1 1.8 2.8 1.3 3.5 1 0-.8.4-1.3.7-1.6-2.7-.3-5.5-1.3-5.5-6 0-1.2.5-2.3 1.3-3.1-.2-.4-.6-1.6 0-3.2 0 0 1-.3 3.4 1.2a11.5 11.5 0 0 1 6 0c2.3-1.5 3.3-1.2 3.3-1.2.6 1.6.2 2.8 0 3.2.9.8 1.3 1.9 1.3 3.2 0 4.6-2.8 5.6-5.5 5.9.5.4.9 1 .9 2.2v3.3c0 .3.1.7.8.6A12 12 0 0 0 12 .3"}),"GitHub");fk=Hm.default=REA;var qm={},xEA=Xn.exports,FEA=Zn.exports;Object.defineProperty(qm,"__esModule",{value:!0});var Qk=qm.default=void 0,NEA=FEA(p.exports),LEA=xEA($n),bEA=(0,LEA.default)(NEA.createElement("path",{d:"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"}),"Close");Qk=qm.default=bEA;const GEA={marginRight:"4.5px",marginTop:"3px"};function _EA(){const e=_A(A=>A.toggleIsControllerOn);return XA($A,{container:!0,direction:"row",justifyContent:"flex-end",alignItems:"center",children:[H($A,{style:{marginRight:"auto"},item:!0,children:H(Zo,{variant:"body1",children:H("strong",{children:"AVIVATOR"})})}),H($A,{item:!0,children:H(Xo,{href:"https://github.com/hms-dbmi/viv","aria-label":"GitHub Repository",disableRipple:!0,children:H(fk,{})})}),H($A,{item:!0,children:H(Xo,{size:"small",onClick:e,disableRipple:!0,"aria-label":"hide-menu",style:GEA,children:H(Qk,{fontSize:"small"})})})]})}function MEA(){const{getRootProps:e,getInputProps:A}=SM();return XA(Ar,{fullWidth:!0,variant:"outlined",style:{borderStyle:"dashed",backgroundColor:"transparent",height:"2rem"},size:"small",...e(),children:[H("input",{...A({accept:".tif, .tiff"})}),"Choose a file"]})}const dk=ns(e=>({root:{maxHeight:A=>`${A.maxHeight-e.spacing(4)}px`,width:"365px",overflowX:"hidden",overflowY:"scroll","&::-webkit-scrollbar":{display:"none",background:"transparent"},scrollbarWidth:"none"},typography:{fontSize:".8rem"},paper:{paddingBottom:e.spacing(2),paddingRight:e.spacing(2),paddingLeft:e.spacing(2),backgroundColor:"rgba(0, 0, 0, 0.75)",borderRadius:2},item:{width:"100%"},divider:{paddingBottom:e.spacing(1),paddingTop:e.spacing(2)}}));function kEA(e){const A=yi(C=>C.image),[t,i]=_A(C=>[C.source,C.metadata]),n=(C,B)=>{C.preventDefault();const u={urlOrFile:B,description:mM(B)};_A.setState({source:u})},r=C=>yi.setState({image:C.target.value}),o=typeof t.urlOrFile=="string"?t.urlOrFile:"",[s,a]=p.exports.useState(o),[g,I]=p.exports.useReducer(C=>!C,!1),l=p.exports.useRef(null),c=dk(e);return p.exports.useEffect(()=>a(o),[o]),XA($A,{container:!0,direction:"column",spacing:0,children:[H($A,{item:!0,xs:12,children:H(_EA,{})}),XA($A,{container:!0,direction:"row",justifyContent:"space-between",alignItems:"center",children:[XA($A,{item:!0,xs:1,children:[H(uk,{onClick:I,ref:l}),H(_m,{open:g,anchorEl:l.current,placement:"bottom-start",style:{width:"25%"},children:H(ro,{style:{padding:8},children:H(wu,{onClickAway:I,children:XA(Zo,{className:c.typography,children:["Provide a URL to an OME-TIFF file or a Bio-Formats Zarr store to view the image. View the"," ",H(xu,{target:"_blank",rel:"noopener noreferrer",href:"http://viv.gehlenborglab.org",children:"docs"})," ","to learn more about the supported file formats."]})})})})]}),H($A,{item:!0,xs:11,children:H("form",{onSubmit:C=>{n(C,s)},children:H(lEA,{id:"ome-input",label:"OME-TIFF/Bioformats-Zarr URL",variant:"filled",size:"small",fullWidth:!0,value:s,onChange:C=>a(C.target.value)})})})]}),!bgA()&&H($A,{item:!0,xs:12,style:{paddingTop:16},children:H(MEA,{})}),Array.isArray(i)&&H($A,{item:!0,xs:12,children:H(ng,{native:!0,value:A,onChange:r,children:i.map((C,B)=>H("option",{value:B,children:C.Name},C.Name))})}),H($A,{item:!0,xs:12,className:c.divider,children:H(o0,{})})]})}function TEA({children:e,...A}){const t=dk(A),[i,n]=_A(r=>[r.isControllerOn,r.toggleIsControllerOn],Ue);return i?H(I0,{position:"absolute",right:0,top:0,m:1,className:t.root,children:XA(ro,{className:t.paper,children:[H(kEA,{}),H($A,{container:!0,direction:"column",justifyContent:"center",alignItems:"center",children:e.map((r,o)=>H($A,{item:!0,className:t.item,children:r},o))})]})}):H(I0,{position:"absolute",right:-8,top:-8,m:2,children:H(Ar,{variant:"outlined",color:"default",size:"small",endIcon:H(hk,{}),onClick:n,"aria-label":"show-menu",children:"AVIVATOR"})})}function UEA(){const e=he(t=>t.colormap),A=_A(t=>t.isViewerLoading);return XA(Tm,{fullWidth:!0,children:[XA(km,{htmlFor:"colormap-select",children:["Additive ",e===""?" Blending":"Color Mapping"]}),XA(ng,{native:!0,onChange:t=>he.setState({colormap:t.target.value}),value:e,inputProps:{name:"colormap",id:"colormap-select"},disabled:A,children:[H("option",{"aria-label":"None",value:""}),QgA.map(t=>H("option",{value:t,children:t},t))]})]})}function PEA(e){const{size:A,label:t}=e,[i,n]=yi(a=>[a.selections,a.setPropertiesForChannel],Ue),r=hn(),o=_A(a=>a.globalSelection),s=p.exports.useCallback(GM((a,g)=>{_A.setState({isChannelLoading:i.map(()=>!0)});const I=[...i].map(l=>({...l,[t]:g}));gE({loader:r,selections:I,use3d:!1}).then(({domains:l,contrastLimits:c})=>{bt.exports.unstable_batchedUpdates(()=>{vI(I.length).forEach((C,B)=>n(C,{domains:l[B],contrastLimits:c[B]}))}),bt.exports.unstable_batchedUpdates(()=>{he.setState({onViewportLoad:()=>{he.setState({onViewportLoad:()=>{}}),_A.setState({isChannelLoading:i.map(()=>!1)})}}),vI(I.length).forEach((C,B)=>n(C,{selections:I[B]}))})})},50,{trailing:!0}),[r,i]);return XA($A,{container:!0,direction:"row",justifyContent:"space-between",alignItems:"center",children:[XA($A,{item:!0,xs:1,children:[t,":"]}),H($A,{item:!0,xs:11,children:H(mm,{value:o[t],onChange:(a,g)=>{_A.setState({globalSelection:{...o,[t]:g}}),a.type==="keydown"&&s(a,g)},onChangeCommitted:s,valueLabelDisplay:"auto",getAriaLabel:()=>`${t} slider`,marks:vI(A).map(a=>({value:a})),min:0,max:A,orientation:"horizontal",style:{marginTop:"7px"},step:null})})]})}function HEA(){const e=yi(s=>s.selections),[A,t,i]=he(s=>[s.lensEnabled,s.toggleLensEnabled,s.lensSelection],Ue),n=_A(s=>s.channelOptions),r=e.map(s=>s.c),o=`rgb(${[255,255,255]})`;return XA($A,{container:!0,direction:"row",justifyContent:"flex-start",alignItems:"center",children:[H($A,{item:!0,xs:2,children:"Lens:"}),H($A,{item:!0,xs:2,children:H(ym,{onChange:t,checked:A,style:{color:o,"&$checked":{color:o}}})}),H($A,{item:!0,xs:7,children:H(ng,{native:!0,value:i,onChange:s=>he.setState({lensSelection:s.target.value}),children:r.map((s,a)=>H("option",{value:a,children:n[s]},n[s]+String(a)))})})]})}function qEA(e,A=2){if(e===0)return"0 Bytes";const t=1024,i=A<0?0:A,n=["Bytes","KB","MB","GB"],r=Math.floor(Math.log(e)/Math.log(t));return`${parseFloat((e/Math.pow(t,r)).toFixed(i))} ${n[r]}`}const pk=(e,A)=>{const{shape:t,labels:i}=e[A],n=t[i.indexOf("y")],r=t[i.indexOf("x")],o=t[i.indexOf("z")],s=Math.max(1,o>>A),a=4*n*r*s;return{height:n,width:r,depthDownsampled:s,totalBytes:a}},eF=(e,A)=>{var a,g,I;const{totalBytes:t,height:i,width:n,depthDownsampled:r}=pk(e,A),s=((a=window.performance)==null?void 0:a.memory)&&((I=(g=window.performance)==null?void 0:g.memory)==null?void 0:I.jsHeapSizeLimit)/2||2**31-1;return t1},JEA=ns(()=>({paper:{backgroundColor:"rgba(0, 0, 0, 1)"},span:{width:"70px",textAlign:"center",paddingLeft:"2px",paddingRight:"2px"},colors:{"&:hover":{backgroundColor:"transparent"},paddingLeft:"2px",paddingRight:"2px"}}));function OEA(){const[e,A]=yi(B=>[B.selections,B.setPropertiesForChannel],Ue),t=hn(),[i,n,r,o]=_A(B=>[B.use3d,B.toggleUse3d,B.toggleIsVolumeRenderingWarningOn,B.isViewerLoading],Ue),[s,a]=p.exports.useReducer(B=>!B,!1),g=p.exports.useRef(null),I=JEA(),{shape:l,labels:c}=Array.isArray(t)?t[0]:t,C=Array.from({length:t.length}).filter((B,u)=>eF(t,u)).length;return XA(Pi,{children:[XA(Ar,{variant:"outlined",size:"small",ref:g,disabled:!(l[c.indexOf("z")]>1)||o||!C,onClick:()=>{a(),i&&(n(),_A.setState({isChannelLoading:Array(e.length).fill(!0)}),gE({loader:t,selections:e,use3d:!i}).then(({domains:B,contrastLimits:u})=>{vI(e.length).forEach((E,h)=>A(E,{domains:B[h],contrastLimits:u[h]})),_A.setState({isChannelLoading:Array(e.length).fill(!1)})}))},fullWidth:!0,children:[i?"Hide":"Show"," Volumetric Rendering"]}),H(_m,{open:s,anchorEl:g.current,placement:"bottom-end",children:H(ro,{className:I.paper,children:H(wu,{onClickAway:a,children:H(wm,{id:"resolution-options",children:Array.from({length:t.length}).fill(0).map((B,u)=>{if(t&&eF(t,u)){const{height:E,width:h,depthDownsampled:f,totalBytes:Q}=pk(t,u);return H($C,{dense:!0,disableGutters:!0,onClick:()=>{_A.setState({isChannelLoading:Array(e.length).fill(!0)});const[d,w,m]=fm(t);he.setState({resolution:u,xSlice:d,ySlice:w,zSlice:m}),a(),gE({loader:t,selections:e,use3d:!0}).then(({domains:v,contrastLimits:x})=>{vI(e.length).forEach((F,N)=>A(F,{domains:v[N],contrastLimits:x[N]})),he.setState({onViewportLoad:()=>{he.setState({onViewportLoad:()=>{}}),_A.setState({isChannelLoading:Array(e.length).fill(!1)})}}),n(),!!document.createElement("canvas").getContext("webgl2")||r()})},children:`${u}x Downsampled, ~${qEA(Q)} per channel, (${E}, ${h}, ${f})`},`(${E}, ${h}, ${f})`)}return null})})})})})]})}const tF=Object.values(Ia);function YEA(){const e=he(n=>n.renderingMode),[A,t]=_A(n=>[n.isViewerLoading,n.use3d],Ue),i=t?tF:[...tF,""];return XA(Tm,{fullWidth:!0,children:[H(km,{htmlFor:"rendering-mode-select",children:"Rendering Mode"}),H(ng,{native:!0,onChange:n=>he.setState({renderingMode:n.target.value}),value:t?e:"",inputProps:{name:"rendering-mode",id:"rendering-mode-select"},disabled:A||!t,children:i.map(n=>H("option",{value:n,children:n},n))})]})}const KEA=ns(e=>O2({enabled:{},disabled:{color:e.palette.text.disabled,"& .MuiSlider-thumb":{color:"rgb(100, 100, 100, 1.0)"},"& .MuiSlider-track":{color:"rgb(100, 100, 100, 1.0)"}}})),VEA=()=>{const[e,A,t]=he(l=>[l.xSlice,l.ySlice,l.zSlice],Ue),i=hn(),n=_A(l=>l.use3d),[r,o,s]=fm(i),a=[[e,l=>he.setState({xSlice:l}),"x",r],[A,l=>he.setState({ySlice:l}),"y",o],[t,l=>he.setState({zSlice:l}),"z",s]],g=KEA(),I=a.map(([l,c,C,[B,u]])=>XA($A,{container:!0,direction:"row",justifyContent:"flex-start",alignItems:"center",children:[H($A,{item:!0,xs:1,style:{marginBottom:8},children:XA(Zo,{className:n?g.enabled:g.disabled,style:{marginTop:4},children:[C,":"]})}),H($A,{item:!0,xs:11,children:H(mm,{disabled:!n,className:n?g.enabled:g.disabled,value:l,onChange:(E,h)=>c(h),valueLabelDisplay:"auto",valueLabelFormat:E=>hm(E,5),getAriaLabel:()=>`${C} slider`,min:B,max:u,step:.005,orientation:"horizontal"})})]},C));return XA(Pi,{children:[XA(Zo,{className:n?g.enabled:g.disabled,style:{marginTop:16},children:["Clipping Planes:"," "]})," ",I]})};var Jm={},WEA=Xn.exports,zEA=Zn.exports;Object.defineProperty(Jm,"__esModule",{value:!0});var yk=Jm.default=void 0,jEA=zEA(p.exports),XEA=WEA($n),ZEA=(0,XEA.default)(jEA.createElement("path",{d:"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"}),"Add");yk=Jm.default=ZEA;const $EA=()=>{const[e,A,t,i,n]=_A(c=>[c.globalSelection,c.isViewerLoading,c.use3d,c.setIsChannelLoading,c.addIsChannelLoading],Ue),[r,o,s]=yi(c=>[c.selections,c.addChannel,c.setPropertiesForChannel],Ue),a=hn(),g=lm(),{labels:I}=a[0],l=p.exports.useCallback(()=>{let c=Object.fromEntries(I.map(B=>[B,0]));c={...c,...e};const C=r.length;um({loader:a,selection:c,use3d:t}).then(({domain:B,contrastLimits:u})=>{var f;s(C,{domains:B,contrastLimits:u,channelsVisible:!0}),he.setState({onViewportLoad:()=>{he.setState({onViewportLoad:()=>{}}),i(C,!1)}}),n(!0);const{Pixels:{Channels:E}}=g,{c:h}=c;o({selections:c,ids:String(Math.random()),channelsVisible:!1,colors:(f=E[h].Color&&E[h].Color.slice(0,-1))!=null?f:Cm[h]||[255,255,255]})})},[I,a,e,t,o,n,r,i,s,g]);return H(Ar,{disabled:r.length===hgA||A,onClick:l,fullWidth:!0,variant:"outlined",style:{borderStyle:"dashed"},startIcon:H(yk,{}),size:"small",children:"Add Channel"})},AuA=()=>{const[e,A]=he(i=>[i.togglePanLock,i.panLock],Ue),t=_A(i=>i.isViewerLoading);return XA(Ar,{disabled:t,onClick:e,variant:"outlined",size:"small",fullWidth:!0,children:[A?"Unlock":"Lock"," Pan"]})},euA=()=>{const[e,A]=he(i=>[i.toggleZoomLock,i.zoomLock],Ue),t=_A(i=>i.isViewerLoading);return XA(Ar,{disabled:t,onClick:e,variant:"outlined",size:"small",fullWidth:!0,children:[A?"Unlock":"Lock"," Zoom"]})},tuA=()=>{const e=he(r=>r.isOverviewOn),[A,t,i,n]=_A(r=>[r.isViewerLoading,r.toggleUseLinkedView,r.useLinkedView,r.use3d],Ue);return XA(Ar,{disabled:A||e||n,onClick:t,variant:"outlined",size:"small",fullWidth:!0,children:[i?"Hide":"Show"," Side-by-Side"]})},iuA=()=>{const[e,A]=he(r=>[r.isOverviewOn,r.toggleIsOverviewOn],Ue),[t,i,n]=_A(r=>[r.isViewerLoading,r.useLinkedView,r.use3d],Ue);return XA(Ar,{disabled:t||i||n,onClick:A,variant:"outlined",size:"small",fullWidth:!0,children:[e?"Hide":"Show"," Picture-In-Picture"]})},nuA=ns(e=>O2({enabled:{marginLeft:"4px"},disabled:{color:e.palette.text.disabled,marginLeft:"4px"}})),ruA=()=>{const e=hn(),[A,t]=he(I=>[I.useFixedAxis,I.toggleUseFixedAxis],Ue),[i,n]=_A(I=>[I.viewState,I.use3d]),{height:r,width:o}=Em(),s=nuA(),a=H($A,{item:!0,xs:"auto",children:XA($A,{container:!0,direction:"row",children:[H(ym,{onClick:t,style:{padding:0},disabled:!n,checked:A}),H(Zo,{className:n?s.enabled:s.disabled,children:"Fix Camera Axis"})]})},"toggle-fixed-axis");return H($A,{container:!0,direction:"row",justifyContent:"space-between",alignItems:"center",style:{marginTop:16},children:[a,H($A,{item:!0,xs:"auto",children:H(Ar,{onClick:()=>_A.setState({viewState:{...i,...yu(e,{height:r,width:o},1,!0),rotationX:0,rotationOrbit:0}}),disabled:!n,style:{padding:0},children:"Re-Center"})},"recenter")]})};function iF(e){const{children:A,value:t,index:i,...n}=e;return H("div",{role:"tabpanel",hidden:t!==i,id:`simple-tabpanel-${i}`,"aria-labelledby":`simple-tab-${i}`,...n,children:t===i&&A})}const ouA=()=>{const[e,A,t,i,n,r,o,s,a]=yi(J=>[J.channelsVisible,J.contrastLimits,J.colors,J.domains,J.selections,J.ids,J.setPropertiesForChannel,J.toggleIsOn,J.removeChannel],Ue),g=hn(),I=he(J=>J.colormap),[l,c,C,B,u,E,h,f,Q,d]=_A(J=>[J.channelOptions,J.useLinkedView,J.use3d,J.useColormap,J.useLens,J.isChannelLoading,J.setIsChannelLoading,J.removeIsChannelLoading,J.pixelValues,J.isViewerLoading],Ue),w=lm(),m=Em(),v=w&&vM(w),{shape:x,labels:D}=g[0],F=D.filter(J=>Bm.includes(J)),N=r.map((J,Z)=>{const z=AA=>{const iA={...n[Z],c:l.indexOf(AA.target.value)};h(Z,!0),um({loader:g,selection:iA,use3d:C}).then(({domain:gA,contrastLimits:sA})=>{const{Pixels:{Channels:BA}}=w,{c:IA}=iA,bA={contrastLimits:sA,domains:gA};BA[IA].Color&&(bA.colors=BA[IA].Color.slice(0,-1)),o(Z,bA),he.setState({onViewportLoad:()=>{he.setState({onViewportLoad:()=>{}}),h(Z,!1)}}),o(Z,{selections:iA})})},O=()=>s(Z),Y=(AA,iA)=>o(Z,{contrastLimits:iA}),k=()=>{a(Z),f(Z)},q=AA=>{o(Z,{colors:AA})},j=l[n[Z].c];return H($A,{style:{width:"100%"},item:!0,children:H(zBA,{name:j,onSelectionChange:z,channelsVisible:e[Z],pixelValue:Q[Z],toggleIsOn:O,handleSliderChange:Y,domain:i[Z],slider:A[Z],color:t[Z],handleRemoveChannel:k,handleColorSelect:q,isLoading:E[Z]})},`channel-controller-${j}-${J}`)}),M=F.map(J=>{const Z=x[D.indexOf(J)];return Z>1?H(PEA,{size:Z,label:J},J):null}),[U,P]=p.exports.useState(0),W=(J,Z)=>{P(Z)};return XA(TEA,{maxHeight:m.height,children:[XA(ccA,{value:U,onChange:W,"aria-label":"simple tabs example",style:{height:"24px",minHeight:"24px"},children:[H(bx,{label:"Channels",style:{fontSize:".75rem",bottom:12}}),H(bx,{label:"Volume",style:{fontSize:".75rem",bottom:12}})]}),H(o0,{}),XA(iF,{value:U,index:0,children:[B&&H(UEA,{}),u&&!I&&!C&&x[D.indexOf("c")]>1&&H(HEA,{channelOptions:n.map(J=>l[J.c])}),!C&&M,!d&&!v?H($A,{container:!0,children:N}):H($A,{container:!0,justifyContent:"center",children:!v&&H(_M,{})}),!v&&H($EA,{})]}),XA(iF,{value:U,index:1,children:[H(YEA,{}),H(VEA,{}),H(ruA,{})]}),H(o0,{style:{marginTop:"8px",marginBottom:"8px"}}),H(OEA,{}),H(iuA,{}),H(tuA,{}),c&&!C&&XA(Pi,{children:[H(euA,{}),H(AuA,{})]})]})};function suA({children:e}){const{getRootProps:A,getInputProps:t}=SM();return XA("div",{...A({onClick:i=>i.stopPropagation()}),children:[H("input",{...t()}),e]})}const auA=ns(e=>({typography:{fontSize:".8rem"},paper:{paddingRight:e.spacing(1),paddingLeft:e.spacing(1),backgroundColor:"rgba(0, 0, 0, 0.75)",borderRadius:2}}));function guA(e,A,t){return`${e}/${A} [${t.join(", ")}]`}function IuA(){const e=auA(),[A,t]=_A(s=>[s.use3d,s.pyramidResolution],Ue),i=hn(),n=he(s=>s.resolution),r=A?n:t,o=i[r];return o?H(I0,{style:{position:"fixed",marginTop:"calc(5% + 60px)",bottom:0},children:H(ro,{className:e.paper,children:H(Zo,{className:e.typography,children:guA(r+1,i.length,o.shape)})})}):null}function nF(e){const{history:A,source:t,isDemoImage:i}=e,n=_A(s=>s.isViewerLoading),r=_A(s=>s.source),o=_A(s=>s.useLinkedView);return p.exports.useEffect(()=>{_A.setState({source:t,isNoImageUrlSnackbarOn:i})},[]),MgA(r,A),XA(Pi,{children:[H(suA,{children:!n&&H(PlA,{})}),H(ouA,{}),H(HIA,{}),!o&&H(IuA,{})]})}const rF=v2({palette:{type:"dark",primary:YI,secondary:YI},props:{MuiButtonBase:{disableRipple:!0}}});function luA(){return Xv[Math.floor(Math.random()*Xv.length)]}function cuA(){return new URLSearchParams(L3().search)}function CuA(e){const t=cuA().get("image_url"),{routeProps:{history:i}}=e;if(t){const r={urlOrFile:t,description:mM(t)};return H(jv,{theme:rF,children:H(nF,{source:r,history:i})})}const n=luA();return H(jv,{theme:rF,children:H(nF,{source:n,history:i,isDemoImage:!0})})}Hg.render(H(b3,{children:H(F3,{children:H(D3,{path:"/",render:e=>H(CuA,{routeProps:e})})})}),document.getElementById("root"));export{FAA as B,wuA as L,vuA as a}; + */var ic=typeof window!="undefined"&&typeof document!="undefined"&&typeof navigator!="undefined",KCA=function(){for(var e=["Edge","Trident","Firefox"],A=0;A=0)return 1;return 0}();function VCA(e){var A=!1;return function(){A||(A=!0,window.Promise.resolve().then(function(){A=!1,e()}))}}function WCA(e){var A=!1;return function(){A||(A=!0,setTimeout(function(){A=!1,e()},KCA))}}var zCA=ic&&window.Promise,jCA=zCA?VCA:WCA;function ik(e){var A={};return e&&A.toString.call(e)==="[object Function]"}function Is(e,A){if(e.nodeType!==1)return[];var t=e.ownerDocument.defaultView,i=t.getComputedStyle(e,null);return A?i[A]:i}function Nm(e){return e.nodeName==="HTML"?e:e.parentNode||e.host}function nc(e){if(!e)return document.body;switch(e.nodeName){case"HTML":case"BODY":return e.ownerDocument.body;case"#document":return e.body}var A=Is(e),t=A.overflow,i=A.overflowX,n=A.overflowY;return/(auto|scroll|overlay)/.test(t+n+i)?e:nc(Nm(e))}function nk(e){return e&&e.referenceNode?e.referenceNode:e}var Zx=ic&&!!(window.MSInputMethodContext&&document.documentMode),$x=ic&&/MSIE 10/.test(navigator.userAgent);function ng(e){return e===11?Zx:e===10?$x:Zx||$x}function ma(e){if(!e)return document.documentElement;for(var A=ng(10)?document.body:null,t=e.offsetParent||null;t===A&&e.nextElementSibling;)t=(e=e.nextElementSibling).offsetParent;var i=t&&t.nodeName;return!i||i==="BODY"||i==="HTML"?e?e.ownerDocument.documentElement:document.documentElement:["TH","TD","TABLE"].indexOf(t.nodeName)!==-1&&Is(t,"position")==="static"?ma(t):t}function XCA(e){var A=e.nodeName;return A==="BODY"?!1:A==="HTML"||ma(e.firstElementChild)===e}function a0(e){return e.parentNode!==null?a0(e.parentNode):e}function lE(e,A){if(!e||!e.nodeType||!A||!A.nodeType)return document.documentElement;var t=e.compareDocumentPosition(A)&Node.DOCUMENT_POSITION_FOLLOWING,i=t?e:A,n=t?A:e,r=document.createRange();r.setStart(i,0),r.setEnd(n,0);var o=r.commonAncestorContainer;if(e!==o&&A!==o||i.contains(n))return XCA(o)?o:ma(o);var s=a0(e);return s.host?lE(s.host,A):lE(e,a0(A).host)}function wa(e){var A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"top",t=A==="top"?"scrollTop":"scrollLeft",i=e.nodeName;if(i==="BODY"||i==="HTML"){var n=e.ownerDocument.documentElement,r=e.ownerDocument.scrollingElement||n;return r[t]}return e[t]}function ZCA(e,A){var t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,i=wa(A,"top"),n=wa(A,"left"),r=t?-1:1;return e.top+=i*r,e.bottom+=i*r,e.left+=n*r,e.right+=n*r,e}function AF(e,A){var t=A==="x"?"Left":"Top",i=t==="Left"?"Right":"Bottom";return parseFloat(e["border"+t+"Width"])+parseFloat(e["border"+i+"Width"])}function eF(e,A,t,i){return Math.max(A["offset"+e],A["scroll"+e],t["client"+e],t["offset"+e],t["scroll"+e],ng(10)?parseInt(t["offset"+e])+parseInt(i["margin"+(e==="Height"?"Top":"Left")])+parseInt(i["margin"+(e==="Height"?"Bottom":"Right")]):0)}function rk(e){var A=e.body,t=e.documentElement,i=ng(10)&&getComputedStyle(t);return{height:eF("Height",A,t,i),width:eF("Width",A,t,i)}}var $CA=function(e,A){if(!(e instanceof A))throw new TypeError("Cannot call a class as a function")},ABA=function(){function e(A,t){for(var i=0;i2&&arguments[2]!==void 0?arguments[2]:!1,i=ng(10),n=A.nodeName==="HTML",r=g0(e),o=g0(A),s=nc(e),a=Is(A),g=parseFloat(a.borderTopWidth),I=parseFloat(a.borderLeftWidth);t&&n&&(o.top=Math.max(o.top,0),o.left=Math.max(o.left,0));var l=jr({top:r.top-o.top-g,left:r.left-o.left-I,width:r.width,height:r.height});if(l.marginTop=0,l.marginLeft=0,!i&&n){var c=parseFloat(a.marginTop),C=parseFloat(a.marginLeft);l.top-=g-c,l.bottom-=g-c,l.left-=I-C,l.right-=I-C,l.marginTop=c,l.marginLeft=C}return(i&&!t?A.contains(s):A===s&&s.nodeName!=="BODY")&&(l=ZCA(l,A)),l}function eBA(e){var A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,t=e.ownerDocument.documentElement,i=Lm(e,t),n=Math.max(t.clientWidth,window.innerWidth||0),r=Math.max(t.clientHeight,window.innerHeight||0),o=A?0:wa(t),s=A?0:wa(t,"left"),a={top:o-i.top+i.marginTop,left:s-i.left+i.marginLeft,width:n,height:r};return jr(a)}function ok(e){var A=e.nodeName;if(A==="BODY"||A==="HTML")return!1;if(Is(e,"position")==="fixed")return!0;var t=Nm(e);return t?ok(t):!1}function sk(e){if(!e||!e.parentElement||ng())return document.documentElement;for(var A=e.parentElement;A&&Is(A,"transform")==="none";)A=A.parentElement;return A||document.documentElement}function bm(e,A,t,i){var n=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!1,r={top:0,left:0},o=n?sk(e):lE(e,nk(A));if(i==="viewport")r=eBA(o,n);else{var s=void 0;i==="scrollParent"?(s=nc(Nm(A)),s.nodeName==="BODY"&&(s=e.ownerDocument.documentElement)):i==="window"?s=e.ownerDocument.documentElement:s=i;var a=Lm(s,o,n);if(s.nodeName==="HTML"&&!ok(o)){var g=rk(e.ownerDocument),I=g.height,l=g.width;r.top+=a.top-a.marginTop,r.bottom=I+a.top,r.left+=a.left-a.marginLeft,r.right=l+a.left}else r=a}t=t||0;var c=typeof t=="number";return r.left+=c?t:t.left||0,r.top+=c?t:t.top||0,r.right-=c?t:t.right||0,r.bottom-=c?t:t.bottom||0,r}function tBA(e){var A=e.width,t=e.height;return A*t}function ak(e,A,t,i,n){var r=arguments.length>5&&arguments[5]!==void 0?arguments[5]:0;if(e.indexOf("auto")===-1)return e;var o=bm(t,i,r,n),s={top:{width:o.width,height:A.top-o.top},right:{width:o.right-A.right,height:o.height},bottom:{width:o.width,height:o.bottom-A.bottom},left:{width:A.left-o.left,height:o.height}},a=Object.keys(s).map(function(c){return Bi({key:c},s[c],{area:tBA(s[c])})}).sort(function(c,C){return C.area-c.area}),g=a.filter(function(c){var C=c.width,B=c.height;return C>=t.clientWidth&&B>=t.clientHeight}),I=g.length>0?g[0].key:a[0].key,l=e.split("-")[1];return I+(l?"-"+l:"")}function gk(e,A,t){var i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:null,n=i?sk(A):lE(A,nk(t));return Lm(t,n,i)}function Ik(e){var A=e.ownerDocument.defaultView,t=A.getComputedStyle(e),i=parseFloat(t.marginTop||0)+parseFloat(t.marginBottom||0),n=parseFloat(t.marginLeft||0)+parseFloat(t.marginRight||0),r={width:e.offsetWidth+n,height:e.offsetHeight+i};return r}function cE(e){var A={left:"right",right:"left",bottom:"top",top:"bottom"};return e.replace(/left|right|bottom|top/g,function(t){return A[t]})}function lk(e,A,t){t=t.split("-")[0];var i=Ik(e),n={width:i.width,height:i.height},r=["right","left"].indexOf(t)!==-1,o=r?"top":"left",s=r?"left":"top",a=r?"height":"width",g=r?"width":"height";return n[o]=A[o]+A[a]/2-i[a]/2,t===s?n[s]=A[s]-i[g]:n[s]=A[cE(s)],n}function rc(e,A){return Array.prototype.find?e.find(A):e.filter(A)[0]}function iBA(e,A,t){if(Array.prototype.findIndex)return e.findIndex(function(n){return n[A]===t});var i=rc(e,function(n){return n[A]===t});return e.indexOf(i)}function ck(e,A,t){var i=t===void 0?e:e.slice(0,iBA(e,"name",t));return i.forEach(function(n){n.function&&console.warn("`modifier.function` is deprecated, use `modifier.fn`!");var r=n.function||n.fn;n.enabled&&ik(r)&&(A.offsets.popper=jr(A.offsets.popper),A.offsets.reference=jr(A.offsets.reference),A=r(A,n))}),A}function nBA(){if(!this.state.isDestroyed){var e={instance:this,styles:{},arrowStyles:{},attributes:{},flipped:!1,offsets:{}};e.offsets.reference=gk(this.state,this.popper,this.reference,this.options.positionFixed),e.placement=ak(this.options.placement,e.offsets.reference,this.popper,this.reference,this.options.modifiers.flip.boundariesElement,this.options.modifiers.flip.padding),e.originalPlacement=e.placement,e.positionFixed=this.options.positionFixed,e.offsets.popper=lk(this.popper,e.offsets.reference,e.placement),e.offsets.popper.position=this.options.positionFixed?"fixed":"absolute",e=ck(this.modifiers,e),this.state.isCreated?this.options.onUpdate(e):(this.state.isCreated=!0,this.options.onCreate(e))}}function Ck(e,A){return e.some(function(t){var i=t.name,n=t.enabled;return n&&i===A})}function Gm(e){for(var A=[!1,"ms","Webkit","Moz","O"],t=e.charAt(0).toUpperCase()+e.slice(1),i=0;io[C]&&(e.offsets.popper[l]+=s[l]+B-o[C]),e.offsets.popper=jr(e.offsets.popper);var u=s[l]+s[g]/2-B/2,E=Is(e.instance.popper),h=parseFloat(E["margin"+I]),f=parseFloat(E["border"+I+"Width"]),Q=u-e.offsets.popper[l]-h-f;return Q=Math.max(Math.min(o[g]-B,Q),0),e.arrowElement=i,e.offsets.arrow=(t={},va(t,l,Math.round(Q)),va(t,c,""),t),e}function hBA(e){return e==="end"?"start":e==="start"?"end":e}var hk=["auto-start","auto","auto-end","top-start","top","top-end","right-start","right","right-end","bottom-end","bottom","bottom-start","left-end","left","left-start"],Kf=hk.slice(3);function tF(e){var A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,t=Kf.indexOf(e),i=Kf.slice(t+1).concat(Kf.slice(0,t));return A?i.reverse():i}var Vf={FLIP:"flip",CLOCKWISE:"clockwise",COUNTERCLOCKWISE:"counterclockwise"};function fBA(e,A){if(Ck(e.instance.modifiers,"inner")||e.flipped&&e.placement===e.originalPlacement)return e;var t=bm(e.instance.popper,e.instance.reference,A.padding,A.boundariesElement,e.positionFixed),i=e.placement.split("-")[0],n=cE(i),r=e.placement.split("-")[1]||"",o=[];switch(A.behavior){case Vf.FLIP:o=[i,n];break;case Vf.CLOCKWISE:o=tF(i);break;case Vf.COUNTERCLOCKWISE:o=tF(i,!0);break;default:o=A.behavior}return o.forEach(function(s,a){if(i!==s||o.length===a+1)return e;i=e.placement.split("-")[0],n=cE(i);var g=e.offsets.popper,I=e.offsets.reference,l=Math.floor,c=i==="left"&&l(g.right)>l(I.left)||i==="right"&&l(g.left)l(I.top)||i==="bottom"&&l(g.top)l(t.right),u=l(g.top)l(t.bottom),h=i==="left"&&C||i==="right"&&B||i==="top"&&u||i==="bottom"&&E,f=["top","bottom"].indexOf(i)!==-1,Q=!!A.flipVariations&&(f&&r==="start"&&C||f&&r==="end"&&B||!f&&r==="start"&&u||!f&&r==="end"&&E),d=!!A.flipVariationsByContent&&(f&&r==="start"&&B||f&&r==="end"&&C||!f&&r==="start"&&E||!f&&r==="end"&&u),w=Q||d;(c||h||w)&&(e.flipped=!0,(c||h)&&(i=o[a+1]),w&&(r=hBA(r)),e.placement=i+(r?"-"+r:""),e.offsets.popper=Bi({},e.offsets.popper,lk(e.instance.popper,e.offsets.reference,e.placement)),e=ck(e.instance.modifiers,e,"flip"))}),e}function QBA(e){var A=e.offsets,t=A.popper,i=A.reference,n=e.placement.split("-")[0],r=Math.floor,o=["top","bottom"].indexOf(n)!==-1,s=o?"right":"bottom",a=o?"left":"top",g=o?"width":"height";return t[s]r(i[s])&&(e.offsets.popper[a]=r(i[s])),e}function dBA(e,A,t,i){var n=e.match(/((?:\-|\+)?\d*\.?\d*)(.*)/),r=+n[1],o=n[2];if(!r)return e;if(o.indexOf("%")===0){var s=void 0;switch(o){case"%p":s=t;break;case"%":case"%r":default:s=i}var a=jr(s);return a[A]/100*r}else if(o==="vh"||o==="vw"){var g=void 0;return o==="vh"?g=Math.max(document.documentElement.clientHeight,window.innerHeight||0):g=Math.max(document.documentElement.clientWidth,window.innerWidth||0),g/100*r}else return r}function pBA(e,A,t,i){var n=[0,0],r=["right","left"].indexOf(i)!==-1,o=e.split(/(\+|\-)/).map(function(I){return I.trim()}),s=o.indexOf(rc(o,function(I){return I.search(/,|\s/)!==-1}));o[s]&&o[s].indexOf(",")===-1&&console.warn("Offsets separated by white space(s) are deprecated, use a comma (,) instead.");var a=/\s*,\s*|\s+/,g=s!==-1?[o.slice(0,s).concat([o[s].split(a)[0]]),[o[s].split(a)[1]].concat(o.slice(s+1))]:[o];return g=g.map(function(I,l){var c=(l===1?!r:r)?"height":"width",C=!1;return I.reduce(function(B,u){return B[B.length-1]===""&&["+","-"].indexOf(u)!==-1?(B[B.length-1]=u,C=!0,B):C?(B[B.length-1]+=u,C=!1,B):B.concat(u)},[]).map(function(B){return dBA(B,c,A,t)})}),g.forEach(function(I,l){I.forEach(function(c,C){_m(c)&&(n[l]+=c*(I[C-1]==="-"?-1:1))})}),n}function yBA(e,A){var t=A.offset,i=e.placement,n=e.offsets,r=n.popper,o=n.reference,s=i.split("-")[0],a=void 0;return _m(+t)?a=[+t,0]:a=pBA(t,r,o,s),s==="left"?(r.top+=a[0],r.left-=a[1]):s==="right"?(r.top+=a[0],r.left+=a[1]):s==="top"?(r.left+=a[0],r.top-=a[1]):s==="bottom"&&(r.left+=a[0],r.top+=a[1]),e.popper=r,e}function mBA(e,A){var t=A.boundariesElement||ma(e.instance.popper);e.instance.reference===t&&(t=ma(t));var i=Gm("transform"),n=e.instance.popper.style,r=n.top,o=n.left,s=n[i];n.top="",n.left="",n[i]="";var a=bm(e.instance.popper,e.instance.reference,A.padding,t,e.positionFixed);n.top=r,n.left=o,n[i]=s,A.boundaries=a;var g=A.priority,I=e.offsets.popper,l={primary:function(C){var B=I[C];return I[C]a[C]&&!A.escapeWithReference&&(u=Math.min(I[B],a[C]-(C==="right"?I.width:I.height))),va({},B,u)}};return g.forEach(function(c){var C=["left","top"].indexOf(c)!==-1?"primary":"secondary";I=Bi({},I,l[C](c))}),e.offsets.popper=I,e}function wBA(e){var A=e.placement,t=A.split("-")[0],i=A.split("-")[1];if(i){var n=e.offsets,r=n.reference,o=n.popper,s=["bottom","top"].indexOf(t)!==-1,a=s?"left":"top",g=s?"width":"height",I={start:va({},a,r[a]),end:va({},a,r[a]+r[g]-o[g])};e.offsets.popper=Bi({},o,I[i])}return e}function vBA(e){if(!uk(e.instance.modifiers,"hide","preventOverflow"))return e;var A=e.offsets.reference,t=rc(e.instance.modifiers,function(i){return i.name==="preventOverflow"}).boundaries;if(A.bottomt.right||A.top>t.bottom||A.right2&&arguments[2]!==void 0?arguments[2]:{};$CA(this,e),this.scheduleUpdate=function(){return requestAnimationFrame(i.update)},this.update=jCA(this.update.bind(this)),this.options=Bi({},e.Defaults,n),this.state={isDestroyed:!1,isCreated:!1,scrollParents:[]},this.reference=A&&A.jquery?A[0]:A,this.popper=t&&t.jquery?t[0]:t,this.options.modifiers={},Object.keys(Bi({},e.Defaults.modifiers,n.modifiers)).forEach(function(o){i.options.modifiers[o]=Bi({},e.Defaults.modifiers[o]||{},n.modifiers?n.modifiers[o]:{})}),this.modifiers=Object.keys(this.options.modifiers).map(function(o){return Bi({name:o},i.options.modifiers[o])}).sort(function(o,s){return o.order-s.order}),this.modifiers.forEach(function(o){o.enabled&&ik(o.onLoad)&&o.onLoad(i.reference,i.popper,i.options,o,i.state)}),this.update();var r=this.options.eventsEnabled;r&&this.enableEventListeners(),this.state.eventsEnabled=r}return ABA(e,[{key:"update",value:function(){return nBA.call(this)}},{key:"destroy",value:function(){return rBA.call(this)}},{key:"enableEventListeners",value:function(){return sBA.call(this)}},{key:"disableEventListeners",value:function(){return gBA.call(this)}}]),e}();Fu.Utils=(typeof window!="undefined"?window:global).PopperUtils;Fu.placements=hk;Fu.Defaults=RBA;var xBA=Fu;function FBA(e,A){var t=A&&A.direction||"ltr";if(t==="ltr")return e;switch(e){case"bottom-end":return"bottom-start";case"bottom-start":return"bottom-end";case"top-end":return"top-start";case"top-start":return"top-end";default:return e}}function iF(e){return typeof e=="function"?e():e}var NBA=typeof window!="undefined"?p.exports.useLayoutEffect:p.exports.useEffect,LBA={},bBA=p.exports.forwardRef(function(A,t){var i=A.anchorEl,n=A.children,r=A.container,o=A.disablePortal,s=o===void 0?!1:o,a=A.keepMounted,g=a===void 0?!1:a,I=A.modifiers,l=A.open,c=A.placement,C=c===void 0?"bottom":c,B=A.popperOptions,u=B===void 0?LBA:B,E=A.popperRef,h=A.style,f=A.transition,Q=f===void 0?!1:f,d=SA(A,["anchorEl","children","container","disablePortal","keepMounted","modifiers","open","placement","popperOptions","popperRef","style","transition"]),w=p.exports.useRef(null),m=ze(w,t),v=p.exports.useRef(null),x=ze(v,E),D=p.exports.useRef(x);NBA(function(){D.current=x},[x]),p.exports.useImperativeHandle(E,function(){return v.current},[]);var F=p.exports.useState(!0),N=F[0],M=F[1],U=_a(),P=FBA(C,U),W=p.exports.useState(P),J=W[0],Z=W[1];p.exports.useEffect(function(){v.current&&v.current.update()});var z=p.exports.useCallback(function(){if(!(!w.current||!i||!l)){v.current&&(v.current.destroy(),D.current(null));var AA=function(sA){Z(sA.placement)};iF(i);var iA=new xBA(iF(i),w.current,_({placement:P},u,{modifiers:_({},s?{}:{preventOverflow:{boundariesElement:"window"}},I,u.modifiers),onCreate:zr(AA,u.onCreate),onUpdate:zr(AA,u.onUpdate)}));D.current(iA)}},[i,s,I,l,P,u]),O=p.exports.useCallback(function(AA){zo(m,AA),z()},[m,z]),Y=function(){M(!1)},k=function(){!v.current||(v.current.destroy(),D.current(null))},q=function(){M(!0),k()};if(p.exports.useEffect(function(){return function(){k()}},[]),p.exports.useEffect(function(){!l&&!Q&&k()},[l,Q]),!g&&!l&&(!Q||N))return null;var j={placement:J};return Q&&(j.TransitionProps={in:l,onEnter:Y,onExited:q}),p.exports.createElement(HM,{disablePortal:s,container:r},p.exports.createElement("div",_({ref:O,role:"tooltip"},d,{style:_({position:"fixed",top:0,left:0,display:!l&&g&&!Q?"none":null},h)}),typeof n=="function"?n(j):n))}),Mm=bBA,GBA=function(A){return{root:{display:"flex",justifyContent:"flex-start",alignItems:"center",position:"relative",textDecoration:"none",width:"100%",boxSizing:"border-box",textAlign:"left",paddingTop:8,paddingBottom:8,"&$focusVisible":{backgroundColor:A.palette.action.selected},"&$selected, &$selected:hover":{backgroundColor:A.palette.action.selected},"&$disabled":{opacity:.5}},container:{position:"relative"},focusVisible:{},dense:{paddingTop:4,paddingBottom:4},alignItemsFlexStart:{alignItems:"flex-start"},disabled:{},divider:{borderBottom:"1px solid ".concat(A.palette.divider),backgroundClip:"padding-box"},gutters:{paddingLeft:16,paddingRight:16},button:{transition:A.transitions.create("background-color",{duration:A.transitions.duration.shortest}),"&:hover":{textDecoration:"none",backgroundColor:A.palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}}},secondaryAction:{paddingRight:48},selected:{}}},_BA=typeof window=="undefined"?p.exports.useEffect:p.exports.useLayoutEffect,MBA=p.exports.forwardRef(function(A,t){var i=A.alignItems,n=i===void 0?"center":i,r=A.autoFocus,o=r===void 0?!1:r,s=A.button,a=s===void 0?!1:s,g=A.children,I=A.classes,l=A.className,c=A.component,C=A.ContainerComponent,B=C===void 0?"li":C,u=A.ContainerProps;u=u===void 0?{}:u;var E=u.className,h=SA(u,["className"]),f=A.dense,Q=f===void 0?!1:f,d=A.disabled,w=d===void 0?!1:d,m=A.disableGutters,v=m===void 0?!1:m,x=A.divider,D=x===void 0?!1:x,F=A.focusVisibleClassName,N=A.selected,M=N===void 0?!1:N,U=SA(A,["alignItems","autoFocus","button","children","classes","className","component","ContainerComponent","ContainerProps","dense","disabled","disableGutters","divider","focusVisibleClassName","selected"]),P=p.exports.useContext(ZC),W={dense:Q||P.dense||!1,alignItems:n},J=p.exports.useRef(null);_BA(function(){o&&J.current&&J.current.focus()},[o]);var Z=p.exports.Children.toArray(g),z=Z.length&&vI(Z[Z.length-1],["ListItemSecondaryAction"]),O=p.exports.useCallback(function(j){J.current=bt.exports.findDOMNode(j)},[]),Y=ze(O,t),k=_({className:yA(I.root,l,W.dense&&I.dense,!v&&I.gutters,D&&I.divider,w&&I.disabled,a&&I.button,n!=="center"&&I.alignItemsFlexStart,z&&I.secondaryAction,M&&I.selected),disabled:w},U),q=c||"li";return a&&(k.component=c||"div",k.focusVisibleClassName=yA(I.focusVisible,F),q=tc),z?(q=!k.component&&!c?"div":q,B==="li"&&(q==="li"?q="div":k.component==="li"&&(k.component="div")),p.exports.createElement(ZC.Provider,{value:W},p.exports.createElement(B,_({className:yA(I.container,E),ref:Y},h),p.exports.createElement(q,k,Z),Z.pop()))):p.exports.createElement(ZC.Provider,{value:W},p.exports.createElement(q,_({ref:Y},k),Z))}),kBA=ee(GBA,{name:"MuiListItem"})(MBA),TBA=function(A){return{root:_({},A.typography.body1,y({minHeight:48,paddingTop:6,paddingBottom:6,boxSizing:"border-box",width:"auto",overflow:"hidden",whiteSpace:"nowrap"},A.breakpoints.up("sm"),{minHeight:"auto"})),gutters:{},selected:{},dense:_({},A.typography.body2,{minHeight:"auto"})}},UBA=p.exports.forwardRef(function(A,t){var i=A.classes,n=A.className,r=A.component,o=r===void 0?"li":r,s=A.disableGutters,a=s===void 0?!1:s,g=A.ListItemClasses,I=A.role,l=I===void 0?"menuitem":I,c=A.selected,C=A.tabIndex,B=SA(A,["classes","className","component","disableGutters","ListItemClasses","role","selected","tabIndex"]),u;return A.disabled||(u=C!==void 0?C:-1),p.exports.createElement(kBA,_({button:!0,role:l,tabIndex:u,component:o,selected:c,disableGutters:a,classes:_({dense:i.dense},g),className:yA(i.root,n,c&&i.selected,!a&&i.gutters),ref:t},B))}),$C=ee(TBA,{name:"MuiMenuItem"})(UBA),km={},PBA=jn.exports,HBA=Xn.exports;Object.defineProperty(km,"__esModule",{value:!0});var fk=km.default=void 0,qBA=HBA(p.exports),JBA=PBA(Zn),OBA=(0,JBA.default)(qBA.createElement("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2z"}),"Lens");fk=km.default=OBA;const YBA=is(()=>({container:{width:"70px",height:"40px",display:"flex",justifyContent:"space-between",alignItems:"center",flexWrap:"wrap"},button:{padding:"3px",width:"16px",height:"16px"},icon:{width:"17px",height:"17px"}})),KBA=({handleColorSelect:e})=>{const A=YBA();return H("div",{className:A.container,"aria-label":"color-swatch",children:Bm.map(t=>H(jo,{className:A.button,onClick:()=>e(t),children:H(fk,{fontSize:"small",style:{color:`rgb(${t})`},className:A.icon})},t))})},VBA=is(()=>({paper:{backgroundColor:"rgba(0, 0, 0, 0.75)"},span:{width:"70px",textAlign:"center",paddingLeft:"2px",paddingRight:"2px"},colors:{"&:hover":{backgroundColor:"transparent"},paddingLeft:"2px",paddingRight:"2px"}}));function WBA({handleColorSelect:e,disabled:A,handleModeSelect:t}){const[i,n]=p.exports.useReducer(a=>!a,!1),r=p.exports.useRef(null),o=VBA();function s(a){const{mode:g}=a.currentTarget.dataset;t(g)}return XA(Pi,{children:[H(jo,{"aria-label":"Remove channel",size:"small",onClick:n,ref:r,disabled:A,children:H(tk,{fontSize:"small"})}),H(Mm,{open:i,anchorEl:r.current,placement:"bottom-end",children:H(no,{className:o.paper,children:H(wu,{onClickAway:n,children:XA(vm,{id:"channel-options",children:[H($C,{dense:!0,disableGutters:!0,className:o.colors,children:H(KBA,{handleColorSelect:e})}),H($C,{"data-mode":"full",dense:!0,disableGutters:!0,onClick:s,children:H("span",{className:o.span,children:"Full"})}),H($C,{"data-mode":"max/min",dense:!0,disableGutters:!0,onClick:s,children:H("span",{className:o.span,children:"Max/Min"})})]})})})})]})}const zBA=[220,220,220],jBA=(e,A)=>`rgb(${e?zBA:A})`,XBA=(e,A,t)=>A?H(TM,{size:"50%"}):t&&(e||typeof e=="number")?fm(e,7):t0;function ZBA({name:e,onSelectionChange:A,channelsVisible:t,pixelValue:i,toggleIsOn:n,handleSliderChange:r,domain:o,slider:s,color:a,handleRemoveChannel:g,handleColorSelect:I,isLoading:l}){const c=hn(),C=he(N=>N.colormap),[B,u,E]=_A(N=>[N.channelOptions,N.useLinkedView,N.use3d],Ue),h=jBA(C,a),f=({domain:N,mode:M,loader:U})=>{switch(M){case"max/min":return N;case"full":{const{dtype:P}=U[0],{max:W}=zd[P];return[P.startsWith("Int")?-W:0,W]}default:throw new Error}},[Q,d]=p.exports.useState("max/min"),[w,m]=f({domain:o,mode:Q,loader:c}),{dtype:v}=c[0],x=v==="Float32"||v==="Float64",D=m-w<500&&x?(m-w)/500:1,F=!u&&!E;return XA($A,{container:!0,direction:"column",m:2,justifyContent:"center",children:[XA($A,{container:!0,direction:"row",justifyContent:"space-between",children:[H($A,{item:!0,xs:10,children:H(ig,{native:!0,value:e,onChange:A,children:B.map(N=>H("option",{disabled:l,value:N,children:N},N))})}),H($A,{item:!0,xs:1,children:H(WBA,{handleColorSelect:I,disabled:l,handleModeSelect:d})}),H($A,{item:!0,xs:1,children:H(jo,{"aria-label":"remove-channel",component:"span",size:"small",onClick:g,children:H(ek,{fontSize:"small"})})})]}),XA($A,{container:!0,direction:"row",justifyContent:"flex-start",alignItems:"center",children:[H($A,{item:!0,xs:2,children:XBA(i,l,F)}),H($A,{item:!0,xs:2,children:H(mm,{onChange:n,disabled:l,checked:t,style:{color:h,"&$checked":{color:h}}})}),H($A,{item:!0,xs:7,children:H(wm,{disabled:l,value:s,onChange:r,valueLabelDisplay:"auto",getAriaLabel:()=>`${e}-${a}-${s}`,valueLabelFormat:N=>fm(N,5),min:w,max:m,step:D,orientation:"horizontal",style:{color:h,marginTop:"7px"}})})]})]})}var $BA=GP(On(bP,HP,t4,u4,D4,d4,x4,T4,yp,t8)),AEA=Cq("div")($BA,{name:"MuiBox"}),l0=AEA,eEA=function(A){return{root:_({color:A.palette.text.secondary},A.typography.body1,{lineHeight:1,padding:0,"&$focused":{color:A.palette.primary.main},"&$disabled":{color:A.palette.text.disabled},"&$error":{color:A.palette.error.main}}),colorSecondary:{"&$focused":{color:A.palette.secondary.main}},focused:{},disabled:{},error:{},filled:{},required:{},asterisk:{"&$error":{color:A.palette.error.main}}}},tEA=p.exports.forwardRef(function(A,t){var i=A.children,n=A.classes,r=A.className;A.color;var o=A.component,s=o===void 0?"label":o;A.disabled,A.error,A.filled,A.focused,A.required;var a=SA(A,["children","classes","className","color","component","disabled","error","filled","focused","required"]),g=eg(),I=tg({props:A,muiFormControl:g,states:["color","required","focused","disabled","error","filled"]});return p.exports.createElement(s,_({className:yA(n.root,n["color".concat(Qe(I.color||"primary"))],r,I.disabled&&n.disabled,I.error&&n.error,I.filled&&n.filled,I.focused&&n.focused,I.required&&n.required),ref:t},a),i,I.required&&p.exports.createElement("span",{"aria-hidden":!0,className:yA(n.asterisk,I.error&&n.error)},"\u2009","*"))}),iEA=ee(eEA,{name:"MuiFormLabel"})(tEA),nEA=function(A){return{root:{display:"block",transformOrigin:"top left"},focused:{},disabled:{},error:{},required:{},asterisk:{},formControl:{position:"absolute",left:0,top:0,transform:"translate(0, 24px) scale(1)"},marginDense:{transform:"translate(0, 21px) scale(1)"},shrink:{transform:"translate(0, 1.5px) scale(0.75)",transformOrigin:"top left"},animated:{transition:A.transitions.create(["color","transform"],{duration:A.transitions.duration.shorter,easing:A.transitions.easing.easeOut})},filled:{zIndex:1,pointerEvents:"none",transform:"translate(12px, 20px) scale(1)","&$marginDense":{transform:"translate(12px, 17px) scale(1)"},"&$shrink":{transform:"translate(12px, 10px) scale(0.75)","&$marginDense":{transform:"translate(12px, 7px) scale(0.75)"}}},outlined:{zIndex:1,pointerEvents:"none",transform:"translate(14px, 20px) scale(1)","&$marginDense":{transform:"translate(14px, 12px) scale(1)"},"&$shrink":{transform:"translate(14px, -6px) scale(0.75)"}}}},rEA=p.exports.forwardRef(function(A,t){var i=A.classes,n=A.className,r=A.disableAnimation,o=r===void 0?!1:r;A.margin;var s=A.shrink;A.variant;var a=SA(A,["classes","className","disableAnimation","margin","shrink","variant"]),g=eg(),I=s;typeof I=="undefined"&&g&&(I=g.filled||g.focused||g.adornedStart);var l=tg({props:A,muiFormControl:g,states:["margin","variant"]});return p.exports.createElement(iEA,_({"data-shrink":I,className:yA(i.root,n,g&&i.formControl,!o&&i.animated,I&&i.shrink,l.margin==="dense"&&i.marginDense,{filled:i.filled,outlined:i.outlined}[l.variant]),classes:{focused:i.focused,disabled:i.disabled,error:i.error,required:i.required,asterisk:i.asterisk},ref:t},a))}),Tm=ee(nEA,{name:"MuiInputLabel"})(rEA),oEA={root:{display:"inline-flex",flexDirection:"column",position:"relative",minWidth:0,padding:0,margin:0,border:0,verticalAlign:"top"},marginNormal:{marginTop:16,marginBottom:8},marginDense:{marginTop:8,marginBottom:4},fullWidth:{width:"100%"}},sEA=p.exports.forwardRef(function(A,t){var i=A.children,n=A.classes,r=A.className,o=A.color,s=o===void 0?"primary":o,a=A.component,g=a===void 0?"div":a,I=A.disabled,l=I===void 0?!1:I,c=A.error,C=c===void 0?!1:c,B=A.fullWidth,u=B===void 0?!1:B,E=A.focused,h=A.hiddenLabel,f=h===void 0?!1:h,Q=A.margin,d=Q===void 0?"none":Q,w=A.required,m=w===void 0?!1:w,v=A.size,x=A.variant,D=x===void 0?"standard":x,F=SA(A,["children","classes","className","color","component","disabled","error","fullWidth","focused","hiddenLabel","margin","required","size","variant"]),N=p.exports.useState(function(){var iA=!1;return i&&p.exports.Children.forEach(i,function(gA){if(!!vI(gA,["Input","Select"])){var sA=vI(gA,["Select"])?gA.props.input:gA;sA&&CCA(sA.props)&&(iA=!0)}}),iA}),M=N[0],U=N[1],P=p.exports.useState(function(){var iA=!1;return i&&p.exports.Children.forEach(i,function(gA){!vI(gA,["Input","Select"])||Sm(gA.props,!0)&&(iA=!0)}),iA}),W=P[0],J=P[1],Z=p.exports.useState(!1),z=Z[0],O=Z[1],Y=E!==void 0?E:z;l&&Y&&O(!1);var k,q=p.exports.useCallback(function(){J(!0)},[]),j=p.exports.useCallback(function(){J(!1)},[]),AA={adornedStart:M,setAdornedStart:U,color:s,disabled:l,error:C,filled:W,focused:Y,fullWidth:u,hiddenLabel:f,margin:(v==="small"?"dense":void 0)||d,onBlur:function(){O(!1)},onEmpty:j,onFilled:q,onFocus:function(){O(!0)},registerEffect:k,required:m,variant:D};return p.exports.createElement(ym.Provider,{value:AA},p.exports.createElement(g,_({className:yA(n.root,r,d!=="none"&&n["margin".concat(Qe(d))],u&&n.fullWidth),ref:t},F),i))}),Um=ee(oEA,{name:"MuiFormControl"})(sEA),aEA=function(A){return{root:_({color:A.palette.text.secondary},A.typography.caption,{textAlign:"left",marginTop:3,margin:0,"&$disabled":{color:A.palette.text.disabled},"&$error":{color:A.palette.error.main}}),error:{},disabled:{},marginDense:{marginTop:4},contained:{marginLeft:14,marginRight:14},focused:{},filled:{},required:{}}},gEA=p.exports.forwardRef(function(A,t){var i=A.children,n=A.classes,r=A.className,o=A.component,s=o===void 0?"p":o;A.disabled,A.error,A.filled,A.focused,A.margin,A.required,A.variant;var a=SA(A,["children","classes","className","component","disabled","error","filled","focused","margin","required","variant"]),g=eg(),I=tg({props:A,muiFormControl:g,states:["variant","margin","disabled","error","filled","focused","required"]});return p.exports.createElement(s,_({className:yA(n.root,(I.variant==="filled"||I.variant==="outlined")&&n.contained,r,I.disabled&&n.disabled,I.error&&n.error,I.filled&&n.filled,I.focused&&n.focused,I.required&&n.required,I.margin==="dense"&&n.marginDense),ref:t},a),i===" "?p.exports.createElement("span",{dangerouslySetInnerHTML:{__html:"​"}}):i)}),IEA=ee(aEA,{name:"MuiFormHelperText"})(gEA),lEA={standard:Rm,filled:jM,outlined:ZM},cEA={root:{}},CEA=p.exports.forwardRef(function(A,t){var i=A.autoComplete,n=A.autoFocus,r=n===void 0?!1:n,o=A.children,s=A.classes,a=A.className,g=A.color,I=g===void 0?"primary":g,l=A.defaultValue,c=A.disabled,C=c===void 0?!1:c,B=A.error,u=B===void 0?!1:B,E=A.FormHelperTextProps,h=A.fullWidth,f=h===void 0?!1:h,Q=A.helperText,d=A.hiddenLabel,w=A.id,m=A.InputLabelProps,v=A.inputProps,x=A.InputProps,D=A.inputRef,F=A.label,N=A.multiline,M=N===void 0?!1:N,U=A.name,P=A.onBlur,W=A.onChange,J=A.onFocus,Z=A.placeholder,z=A.required,O=z===void 0?!1:z,Y=A.rows,k=A.rowsMax,q=A.maxRows,j=A.minRows,AA=A.select,iA=AA===void 0?!1:AA,gA=A.SelectProps,sA=A.type,BA=A.value,IA=A.variant,bA=IA===void 0?"standard":IA,EA=SA(A,["autoComplete","autoFocus","children","classes","className","color","defaultValue","disabled","error","FormHelperTextProps","fullWidth","helperText","hiddenLabel","id","InputLabelProps","inputProps","InputProps","inputRef","label","multiline","name","onBlur","onChange","onFocus","placeholder","required","rows","rowsMax","maxRows","minRows","select","SelectProps","type","value","variant"]),QA={};if(bA==="outlined"&&(m&&typeof m.shrink!="undefined"&&(QA.notched=m.shrink),F)){var TA,RA=(TA=m==null?void 0:m.required)!==null&&TA!==void 0?TA:O;QA.label=p.exports.createElement(p.exports.Fragment,null,F,RA&&"\xA0*")}iA&&((!gA||!gA.native)&&(QA.id=void 0),QA["aria-describedby"]=void 0);var UA=Q&&w?"".concat(w,"-helper-text"):void 0,fA=F&&w?"".concat(w,"-label"):void 0,NA=lEA[bA],ZA=p.exports.createElement(NA,_({"aria-describedby":UA,autoComplete:i,autoFocus:r,defaultValue:l,fullWidth:f,multiline:M,name:U,rows:Y,rowsMax:k,maxRows:q,minRows:j,type:sA,value:BA,id:w,inputRef:D,onBlur:P,onChange:W,onFocus:J,placeholder:Z,inputProps:v},QA,x));return p.exports.createElement(Um,_({className:yA(s.root,a),disabled:C,error:u,fullWidth:f,hiddenLabel:d,ref:t,required:O,color:I,variant:bA},EA),F&&p.exports.createElement(Tm,_({htmlFor:w,id:fA},m),F),iA?p.exports.createElement(ig,_({"aria-describedby":UA,id:w,labelId:fA,value:BA,input:ZA},gA),o):ZA,Q&&p.exports.createElement(IEA,_({id:UA},E),Q))}),BEA=ee(cEA,{name:"MuiTextField"})(CEA),Pm={},EEA=jn.exports,uEA=Xn.exports;Object.defineProperty(Pm,"__esModule",{value:!0});var Qk=Pm.default=void 0,hEA=uEA(p.exports),fEA=EEA(Zn),QEA=(0,fEA.default)(hEA.createElement("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z"}),"Info");Qk=Pm.default=QEA;var dEA=function(A){return{root:_({},A.typography.button,{boxSizing:"border-box",minWidth:64,padding:"6px 16px",borderRadius:A.shape.borderRadius,color:A.palette.text.primary,transition:A.transitions.create(["background-color","box-shadow","border"],{duration:A.transitions.duration.short}),"&:hover":{textDecoration:"none",backgroundColor:ut(A.palette.text.primary,A.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"},"&$disabled":{backgroundColor:"transparent"}},"&$disabled":{color:A.palette.action.disabled}}),label:{width:"100%",display:"inherit",alignItems:"inherit",justifyContent:"inherit"},text:{padding:"6px 8px"},textPrimary:{color:A.palette.primary.main,"&:hover":{backgroundColor:ut(A.palette.primary.main,A.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}}},textSecondary:{color:A.palette.secondary.main,"&:hover":{backgroundColor:ut(A.palette.secondary.main,A.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}}},outlined:{padding:"5px 15px",border:"1px solid ".concat(A.palette.type==="light"?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)"),"&$disabled":{border:"1px solid ".concat(A.palette.action.disabledBackground)}},outlinedPrimary:{color:A.palette.primary.main,border:"1px solid ".concat(ut(A.palette.primary.main,.5)),"&:hover":{border:"1px solid ".concat(A.palette.primary.main),backgroundColor:ut(A.palette.primary.main,A.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}}},outlinedSecondary:{color:A.palette.secondary.main,border:"1px solid ".concat(ut(A.palette.secondary.main,.5)),"&:hover":{border:"1px solid ".concat(A.palette.secondary.main),backgroundColor:ut(A.palette.secondary.main,A.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}},"&$disabled":{border:"1px solid ".concat(A.palette.action.disabled)}},contained:{color:A.palette.getContrastText(A.palette.grey[300]),backgroundColor:A.palette.grey[300],boxShadow:A.shadows[2],"&:hover":{backgroundColor:A.palette.grey.A100,boxShadow:A.shadows[4],"@media (hover: none)":{boxShadow:A.shadows[2],backgroundColor:A.palette.grey[300]},"&$disabled":{backgroundColor:A.palette.action.disabledBackground}},"&$focusVisible":{boxShadow:A.shadows[6]},"&:active":{boxShadow:A.shadows[8]},"&$disabled":{color:A.palette.action.disabled,boxShadow:A.shadows[0],backgroundColor:A.palette.action.disabledBackground}},containedPrimary:{color:A.palette.primary.contrastText,backgroundColor:A.palette.primary.main,"&:hover":{backgroundColor:A.palette.primary.dark,"@media (hover: none)":{backgroundColor:A.palette.primary.main}}},containedSecondary:{color:A.palette.secondary.contrastText,backgroundColor:A.palette.secondary.main,"&:hover":{backgroundColor:A.palette.secondary.dark,"@media (hover: none)":{backgroundColor:A.palette.secondary.main}}},disableElevation:{boxShadow:"none","&:hover":{boxShadow:"none"},"&$focusVisible":{boxShadow:"none"},"&:active":{boxShadow:"none"},"&$disabled":{boxShadow:"none"}},focusVisible:{},disabled:{},colorInherit:{color:"inherit",borderColor:"currentColor"},textSizeSmall:{padding:"4px 5px",fontSize:A.typography.pxToRem(13)},textSizeLarge:{padding:"8px 11px",fontSize:A.typography.pxToRem(15)},outlinedSizeSmall:{padding:"3px 9px",fontSize:A.typography.pxToRem(13)},outlinedSizeLarge:{padding:"7px 21px",fontSize:A.typography.pxToRem(15)},containedSizeSmall:{padding:"4px 10px",fontSize:A.typography.pxToRem(13)},containedSizeLarge:{padding:"8px 22px",fontSize:A.typography.pxToRem(15)},sizeSmall:{},sizeLarge:{},fullWidth:{width:"100%"},startIcon:{display:"inherit",marginRight:8,marginLeft:-4,"&$iconSizeSmall":{marginLeft:-2}},endIcon:{display:"inherit",marginRight:-4,marginLeft:8,"&$iconSizeSmall":{marginRight:-2}},iconSizeSmall:{"& > *:first-child":{fontSize:18}},iconSizeMedium:{"& > *:first-child":{fontSize:20}},iconSizeLarge:{"& > *:first-child":{fontSize:22}}}},pEA=p.exports.forwardRef(function(A,t){var i=A.children,n=A.classes,r=A.className,o=A.color,s=o===void 0?"default":o,a=A.component,g=a===void 0?"button":a,I=A.disabled,l=I===void 0?!1:I,c=A.disableElevation,C=c===void 0?!1:c,B=A.disableFocusRipple,u=B===void 0?!1:B,E=A.endIcon,h=A.focusVisibleClassName,f=A.fullWidth,Q=f===void 0?!1:f,d=A.size,w=d===void 0?"medium":d,m=A.startIcon,v=A.type,x=v===void 0?"button":v,D=A.variant,F=D===void 0?"text":D,N=SA(A,["children","classes","className","color","component","disabled","disableElevation","disableFocusRipple","endIcon","focusVisibleClassName","fullWidth","size","startIcon","type","variant"]),M=m&&p.exports.createElement("span",{className:yA(n.startIcon,n["iconSize".concat(Qe(w))])},m),U=E&&p.exports.createElement("span",{className:yA(n.endIcon,n["iconSize".concat(Qe(w))])},E);return p.exports.createElement(tc,_({className:yA(n.root,n[F],r,s==="inherit"?n.colorInherit:s!=="default"&&n["".concat(F).concat(Qe(s))],w!=="medium"&&[n["".concat(F,"Size").concat(Qe(w))],n["size".concat(Qe(w))]],C&&n.disableElevation,l&&n.disabled,Q&&n.fullWidth),component:g,disabled:l,focusRipple:!u,focusVisibleClassName:yA(n.focusVisible,h),ref:t,type:x},N),p.exports.createElement("span",{className:n.label},M,i,U))}),$n=ee(dEA,{name:"MuiButton"})(pEA),Hm={},yEA=jn.exports,mEA=Xn.exports;Object.defineProperty(Hm,"__esModule",{value:!0});var dk=Hm.default=void 0,wEA=mEA(p.exports),vEA=yEA(Zn),SEA=(0,vEA.default)(wEA.createElement("path",{d:"M19.14 12.94c.04-.3.06-.61.06-.94 0-.32-.02-.64-.07-.94l2.03-1.58c.18-.14.23-.41.12-.61l-1.92-3.32c-.12-.22-.37-.29-.59-.22l-2.39.96c-.5-.38-1.03-.7-1.62-.94l-.36-2.54c-.04-.24-.24-.41-.48-.41h-3.84c-.24 0-.43.17-.47.41l-.36 2.54c-.59.24-1.13.57-1.62.94l-2.39-.96c-.22-.08-.47 0-.59.22L2.74 8.87c-.12.21-.08.47.12.61l2.03 1.58c-.05.3-.09.63-.09.94s.02.64.07.94l-2.03 1.58c-.18.14-.23.41-.12.61l1.92 3.32c.12.22.37.29.59.22l2.39-.96c.5.38 1.03.7 1.62.94l.36 2.54c.05.24.24.41.48.41h3.84c.24 0 .44-.17.47-.41l.36-2.54c.59-.24 1.13-.56 1.62-.94l2.39.96c.22.08.47 0 .59-.22l1.92-3.32c.12-.22.07-.47-.12-.61l-2.01-1.58zM12 15.6c-1.98 0-3.6-1.62-3.6-3.6s1.62-3.6 3.6-3.6 3.6 1.62 3.6 3.6-1.62 3.6-3.6 3.6z"}),"Settings");dk=Hm.default=SEA;var qm={},DEA=jn.exports,REA=Xn.exports;Object.defineProperty(qm,"__esModule",{value:!0});var pk=qm.default=void 0,xEA=REA(p.exports),FEA=DEA(Zn),NEA=(0,FEA.default)(xEA.createElement("path",{d:"M12 .3a12 12 0 0 0-3.8 23.4c.6.1.8-.3.8-.6v-2c-3.3.7-4-1.6-4-1.6-.6-1.4-1.4-1.8-1.4-1.8-1-.7.1-.7.1-.7 1.2 0 1.9 1.2 1.9 1.2 1 1.8 2.8 1.3 3.5 1 0-.8.4-1.3.7-1.6-2.7-.3-5.5-1.3-5.5-6 0-1.2.5-2.3 1.3-3.1-.2-.4-.6-1.6 0-3.2 0 0 1-.3 3.4 1.2a11.5 11.5 0 0 1 6 0c2.3-1.5 3.3-1.2 3.3-1.2.6 1.6.2 2.8 0 3.2.9.8 1.3 1.9 1.3 3.2 0 4.6-2.8 5.6-5.5 5.9.5.4.9 1 .9 2.2v3.3c0 .3.1.7.8.6A12 12 0 0 0 12 .3"}),"GitHub");pk=qm.default=NEA;var Jm={},LEA=jn.exports,bEA=Xn.exports;Object.defineProperty(Jm,"__esModule",{value:!0});var yk=Jm.default=void 0,GEA=bEA(p.exports),_EA=LEA(Zn),MEA=(0,_EA.default)(GEA.createElement("path",{d:"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"}),"Close");yk=Jm.default=MEA;const kEA={marginRight:"4.5px",marginTop:"3px"};function TEA(){const e=_A(A=>A.toggleIsControllerOn);return XA($A,{container:!0,direction:"row",justifyContent:"flex-end",alignItems:"center",children:[H($A,{style:{marginRight:"auto"},item:!0,children:H(Xo,{variant:"body1",children:H("strong",{children:"AVIVATOR"})})}),H($A,{item:!0,children:H(jo,{href:"https://github.com/hms-dbmi/viv","aria-label":"GitHub Repository",disableRipple:!0,children:H(pk,{})})}),H($A,{item:!0,children:H(jo,{size:"small",onClick:e,disableRipple:!0,"aria-label":"hide-menu",style:kEA,children:H(yk,{fontSize:"small"})})})]})}function UEA(){const{getRootProps:e,getInputProps:A}=xM();return XA($n,{fullWidth:!0,variant:"outlined",style:{borderStyle:"dashed",backgroundColor:"transparent",height:"2rem"},size:"small",...e(),children:[H("input",{...A({accept:".tif, .tiff"})}),"Choose a file"]})}const mk=is(e=>({root:{maxHeight:A=>`${A.maxHeight-e.spacing(4)}px`,width:"365px",overflowX:"hidden",overflowY:"scroll","&::-webkit-scrollbar":{display:"none",background:"transparent"},scrollbarWidth:"none"},typography:{fontSize:".8rem"},paper:{paddingBottom:e.spacing(2),paddingRight:e.spacing(2),paddingLeft:e.spacing(2),backgroundColor:"rgba(0, 0, 0, 0.75)",borderRadius:2},item:{width:"100%"},divider:{paddingBottom:e.spacing(1),paddingTop:e.spacing(2)}}));function PEA(e){const A=yi(C=>C.image),[t,i]=_A(C=>[C.source,C.metadata]),n=(C,B)=>{C.preventDefault();const u={urlOrFile:B,description:SM(B)};_A.setState({source:u})},r=C=>yi.setState({image:C.target.value}),o=typeof t.urlOrFile=="string"?t.urlOrFile:"",[s,a]=p.exports.useState(o),[g,I]=p.exports.useReducer(C=>!C,!1),l=p.exports.useRef(null),c=mk(e);return p.exports.useEffect(()=>a(o),[o]),XA($A,{container:!0,direction:"column",spacing:0,children:[H($A,{item:!0,xs:12,children:H(TEA,{})}),XA($A,{container:!0,direction:"row",justifyContent:"space-between",alignItems:"center",children:[XA($A,{item:!0,xs:1,children:[H(Qk,{onClick:I,ref:l}),H(Mm,{open:g,anchorEl:l.current,placement:"bottom-start",style:{width:"25%"},children:H(no,{style:{padding:8},children:H(wu,{onClickAway:I,children:XA(Xo,{className:c.typography,children:["Provide a URL to an OME-TIFF file or a Bio-Formats Zarr store to view the image. View the"," ",H(xu,{target:"_blank",rel:"noopener noreferrer",href:"http://viv.gehlenborglab.org",children:"docs"})," ","to learn more about the supported file formats."]})})})})]}),H($A,{item:!0,xs:11,children:H("form",{onSubmit:C=>{n(C,s)},children:H(BEA,{id:"ome-input",label:"OME-TIFF/Bioformats-Zarr URL",variant:"filled",size:"small",fullWidth:!0,value:s,onChange:C=>a(C.target.value)})})})]}),!MgA()&&H($A,{item:!0,xs:12,style:{paddingTop:16},children:H(UEA,{})}),Array.isArray(i)&&H($A,{item:!0,xs:12,children:H(ig,{native:!0,value:A,onChange:r,children:i.map((C,B)=>H("option",{value:B,children:C.Name},C.Name))})}),H($A,{item:!0,xs:12,className:c.divider,children:H(s0,{})})]})}function HEA({children:e,...A}){const t=mk(A),[i,n]=_A(r=>[r.isControllerOn,r.toggleIsControllerOn],Ue);return i?H(l0,{position:"absolute",right:0,top:0,m:1,className:t.root,children:XA(no,{className:t.paper,children:[H(PEA,{}),H($A,{container:!0,direction:"column",justifyContent:"center",alignItems:"center",children:e.map((r,o)=>H($A,{item:!0,className:t.item,children:r},o))})]})}):H(l0,{position:"absolute",right:-8,top:-8,m:2,children:H($n,{variant:"outlined",color:"default",size:"small",endIcon:H(dk,{}),onClick:n,"aria-label":"show-menu",children:"AVIVATOR"})})}function qEA(){const e=he(t=>t.colormap),A=_A(t=>t.isViewerLoading);return XA(Um,{fullWidth:!0,children:[XA(Tm,{htmlFor:"colormap-select",children:["Additive ",e===""?" Blending":"Color Mapping"]}),XA(ig,{native:!0,onChange:t=>he.setState({colormap:t.target.value}),value:e,inputProps:{name:"colormap",id:"colormap-select"},disabled:A,children:[H("option",{"aria-label":"None",value:""}),ygA.map(t=>H("option",{value:t,children:t},t))]})]})}function JEA(e){const{size:A,label:t}=e,[i,n]=yi(a=>[a.selections,a.setPropertiesForChannel],Ue),r=hn(),o=_A(a=>a.globalSelection),s=p.exports.useCallback(kM((a,g)=>{_A.setState({isChannelLoading:i.map(()=>!0)});const I=[...i].map(l=>({...l,[t]:g}));gE({loader:r,selections:I,use3d:!1}).then(({domains:l,contrastLimits:c})=>{bt.exports.unstable_batchedUpdates(()=>{wI(I.length).forEach((C,B)=>n(C,{domains:l[B],contrastLimits:c[B]}))}),bt.exports.unstable_batchedUpdates(()=>{he.setState({onViewportLoad:()=>{he.setState({onViewportLoad:()=>{}}),_A.setState({isChannelLoading:i.map(()=>!1)})}}),wI(I.length).forEach((C,B)=>n(C,{selections:I[B]}))})})},50,{trailing:!0}),[r,i]);return XA($A,{container:!0,direction:"row",justifyContent:"space-between",alignItems:"center",children:[XA($A,{item:!0,xs:1,children:[t,":"]}),H($A,{item:!0,xs:11,children:H(wm,{value:o[t],onChange:(a,g)=>{_A.setState({globalSelection:{...o,[t]:g}}),a.type==="keydown"&&s(a,g)},onChangeCommitted:s,valueLabelDisplay:"auto",getAriaLabel:()=>`${t} slider`,marks:wI(A).map(a=>({value:a})),min:0,max:A,orientation:"horizontal",style:{marginTop:"7px"},step:null})})]})}function OEA(){const e=yi(s=>s.selections),[A,t,i]=he(s=>[s.lensEnabled,s.toggleLensEnabled,s.lensSelection],Ue),n=_A(s=>s.channelOptions),r=e.map(s=>s.c),o=`rgb(${[255,255,255]})`;return XA($A,{container:!0,direction:"row",justifyContent:"flex-start",alignItems:"center",children:[H($A,{item:!0,xs:2,children:"Lens:"}),H($A,{item:!0,xs:2,children:H(mm,{onChange:t,checked:A,style:{color:o,"&$checked":{color:o}}})}),H($A,{item:!0,xs:7,children:H(ig,{native:!0,value:i,onChange:s=>he.setState({lensSelection:s.target.value}),children:r.map((s,a)=>H("option",{value:a,children:n[s]},n[s]+String(a)))})})]})}function YEA(e,A=2){if(e===0)return"0 Bytes";const t=1024,i=A<0?0:A,n=["Bytes","KB","MB","GB"],r=Math.floor(Math.log(e)/Math.log(t));return`${parseFloat((e/Math.pow(t,r)).toFixed(i))} ${n[r]}`}const wk=(e,A)=>{const{shape:t,labels:i}=e[A],n=t[i.indexOf("y")],r=t[i.indexOf("x")],o=t[i.indexOf("z")],s=Math.max(1,o>>A),a=4*n*r*s;return{height:n,width:r,depthDownsampled:s,totalBytes:a}},nF=(e,A)=>{var a,g,I;const{totalBytes:t,height:i,width:n,depthDownsampled:r}=wk(e,A),s=((a=window.performance)==null?void 0:a.memory)&&((I=(g=window.performance)==null?void 0:g.memory)==null?void 0:I.jsHeapSizeLimit)/2||2**31-1;return t1},KEA=is(()=>({paper:{backgroundColor:"rgba(0, 0, 0, 1)"},span:{width:"70px",textAlign:"center",paddingLeft:"2px",paddingRight:"2px"},colors:{"&:hover":{backgroundColor:"transparent"},paddingLeft:"2px",paddingRight:"2px"}}));function VEA(){const[e,A]=yi(B=>[B.selections,B.setPropertiesForChannel],Ue),t=hn(),[i,n,r,o]=_A(B=>[B.use3d,B.toggleUse3d,B.toggleIsVolumeRenderingWarningOn,B.isViewerLoading],Ue),[s,a]=p.exports.useReducer(B=>!B,!1),g=p.exports.useRef(null),I=KEA(),{shape:l,labels:c}=Array.isArray(t)?t[0]:t,C=Array.from({length:t.length}).filter((B,u)=>nF(t,u)).length;return XA(Pi,{children:[XA($n,{variant:"outlined",size:"small",ref:g,disabled:!(l[c.indexOf("z")]>1)||o||!C,onClick:()=>{a(),i&&(n(),_A.setState({isChannelLoading:Array(e.length).fill(!0)}),gE({loader:t,selections:e,use3d:!i}).then(({domains:B,contrastLimits:u})=>{wI(e.length).forEach((E,h)=>A(E,{domains:B[h],contrastLimits:u[h]})),_A.setState({isChannelLoading:Array(e.length).fill(!1)})}))},fullWidth:!0,children:[i?"Hide":"Show"," Volumetric Rendering"]}),H(Mm,{open:s,anchorEl:g.current,placement:"bottom-end",children:H(no,{className:I.paper,children:H(wu,{onClickAway:a,children:H(vm,{id:"resolution-options",children:Array.from({length:t.length}).fill(0).map((B,u)=>{if(t&&nF(t,u)){const{height:E,width:h,depthDownsampled:f,totalBytes:Q}=wk(t,u);return H($C,{dense:!0,disableGutters:!0,onClick:()=>{_A.setState({isChannelLoading:Array(e.length).fill(!0)});const[d,w,m]=Qm(t);he.setState({resolution:u,xSlice:d,ySlice:w,zSlice:m}),a(),gE({loader:t,selections:e,use3d:!0}).then(({domains:v,contrastLimits:x})=>{wI(e.length).forEach((F,N)=>A(F,{domains:v[N],contrastLimits:x[N]})),he.setState({onViewportLoad:()=>{he.setState({onViewportLoad:()=>{}}),_A.setState({isChannelLoading:Array(e.length).fill(!1)})}}),n(),!!document.createElement("canvas").getContext("webgl2")||r()})},children:`${u}x Downsampled, ~${YEA(Q)} per channel, (${E}, ${h}, ${f})`},`(${E}, ${h}, ${f})`)}return null})})})})})]})}const rF=Object.values(ga);function WEA(){const e=he(n=>n.renderingMode),[A,t]=_A(n=>[n.isViewerLoading,n.use3d],Ue),i=t?rF:[...rF,""];return XA(Um,{fullWidth:!0,children:[H(Tm,{htmlFor:"rendering-mode-select",children:"Rendering Mode"}),H(ig,{native:!0,onChange:n=>he.setState({renderingMode:n.target.value}),value:t?e:"",inputProps:{name:"rendering-mode",id:"rendering-mode-select"},disabled:A||!t,children:i.map(n=>H("option",{value:n,children:n},n))})]})}const zEA=is(e=>V2({enabled:{},disabled:{color:e.palette.text.disabled,"& .MuiSlider-thumb":{color:"rgb(100, 100, 100, 1.0)"},"& .MuiSlider-track":{color:"rgb(100, 100, 100, 1.0)"}}})),jEA=()=>{const[e,A,t]=he(l=>[l.xSlice,l.ySlice,l.zSlice],Ue),i=hn(),n=_A(l=>l.use3d),[r,o,s]=Qm(i),a=[[e,l=>he.setState({xSlice:l}),"x",r],[A,l=>he.setState({ySlice:l}),"y",o],[t,l=>he.setState({zSlice:l}),"z",s]],g=zEA(),I=a.map(([l,c,C,[B,u]])=>XA($A,{container:!0,direction:"row",justifyContent:"flex-start",alignItems:"center",children:[H($A,{item:!0,xs:1,style:{marginBottom:8},children:XA(Xo,{className:n?g.enabled:g.disabled,style:{marginTop:4},children:[C,":"]})}),H($A,{item:!0,xs:11,children:H(wm,{disabled:!n,className:n?g.enabled:g.disabled,value:l,onChange:(E,h)=>c(h),valueLabelDisplay:"auto",valueLabelFormat:E=>fm(E,5),getAriaLabel:()=>`${C} slider`,min:B,max:u,step:.005,orientation:"horizontal"})})]},C));return XA(Pi,{children:[XA(Xo,{className:n?g.enabled:g.disabled,style:{marginTop:16},children:["Clipping Planes:"," "]})," ",I]})};var Om={},XEA=jn.exports,ZEA=Xn.exports;Object.defineProperty(Om,"__esModule",{value:!0});var vk=Om.default=void 0,$EA=ZEA(p.exports),AuA=XEA(Zn),euA=(0,AuA.default)($EA.createElement("path",{d:"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"}),"Add");vk=Om.default=euA;const tuA=()=>{const[e,A,t,i,n]=_A(c=>[c.globalSelection,c.isViewerLoading,c.use3d,c.setIsChannelLoading,c.addIsChannelLoading],Ue),[r,o,s]=yi(c=>[c.selections,c.addChannel,c.setPropertiesForChannel],Ue),a=hn(),g=cm(),{labels:I}=a[0],l=p.exports.useCallback(()=>{let c=Object.fromEntries(I.map(B=>[B,0]));c={...c,...e};const C=r.length;hm({loader:a,selection:c,use3d:t}).then(({domain:B,contrastLimits:u})=>{var f;s(C,{domains:B,contrastLimits:u,channelsVisible:!0}),he.setState({onViewportLoad:()=>{he.setState({onViewportLoad:()=>{}}),i(C,!1)}}),n(!0);const{Pixels:{Channels:E}}=g,{c:h}=c;o({selections:c,ids:String(Math.random()),channelsVisible:!1,colors:(f=E[h].Color&&E[h].Color.slice(0,-1))!=null?f:Bm[h]||[255,255,255]})})},[I,a,e,t,o,n,r,i,s,g]);return H($n,{disabled:r.length===dgA||A,onClick:l,fullWidth:!0,variant:"outlined",style:{borderStyle:"dashed"},startIcon:H(vk,{}),size:"small",children:"Add Channel"})},iuA=()=>{const[e,A]=he(i=>[i.togglePanLock,i.panLock],Ue),t=_A(i=>i.isViewerLoading);return XA($n,{disabled:t,onClick:e,variant:"outlined",size:"small",fullWidth:!0,children:[A?"Unlock":"Lock"," Pan"]})},nuA=()=>{const[e,A]=he(i=>[i.toggleZoomLock,i.zoomLock],Ue),t=_A(i=>i.isViewerLoading);return XA($n,{disabled:t,onClick:e,variant:"outlined",size:"small",fullWidth:!0,children:[A?"Unlock":"Lock"," Zoom"]})},ruA=()=>{const e=he(r=>r.isOverviewOn),[A,t,i,n]=_A(r=>[r.isViewerLoading,r.toggleUseLinkedView,r.useLinkedView,r.use3d],Ue);return XA($n,{disabled:A||e||n,onClick:t,variant:"outlined",size:"small",fullWidth:!0,children:[i?"Hide":"Show"," Side-by-Side"]})},ouA=()=>{const[e,A]=he(r=>[r.isOverviewOn,r.toggleIsOverviewOn],Ue),[t,i,n]=_A(r=>[r.isViewerLoading,r.useLinkedView,r.use3d],Ue);return XA($n,{disabled:t||i||n,onClick:A,variant:"outlined",size:"small",fullWidth:!0,children:[e?"Hide":"Show"," Picture-In-Picture"]})},suA=is(e=>V2({enabled:{marginLeft:"4px"},disabled:{color:e.palette.text.disabled,marginLeft:"4px"}})),auA=()=>{const e=hn(),[A,t]=he(I=>[I.useFixedAxis,I.toggleUseFixedAxis],Ue),[i,n]=_A(I=>[I.viewState,I.use3d]),{height:r,width:o}=um(),s=suA(),a=H($A,{item:!0,xs:"auto",children:XA($A,{container:!0,direction:"row",children:[H(mm,{onClick:t,style:{padding:0},disabled:!n,checked:A}),H(Xo,{className:n?s.enabled:s.disabled,children:"Fix Camera Axis"})]})},"toggle-fixed-axis");return H($A,{container:!0,direction:"row",justifyContent:"space-between",alignItems:"center",style:{marginTop:16},children:[a,H($A,{item:!0,xs:"auto",children:H($n,{onClick:()=>_A.setState({viewState:{...i,...yu(e,{height:r,width:o},1,!0),rotationX:0,rotationOrbit:0}}),disabled:!n,style:{padding:0},children:"Re-Center"})},"recenter")]})};function oF(e){const{children:A,value:t,index:i,...n}=e;return H("div",{role:"tabpanel",hidden:t!==i,id:`simple-tabpanel-${i}`,"aria-labelledby":`simple-tab-${i}`,...n,children:t===i&&A})}const guA=()=>{const[e,A,t,i,n,r,o,s,a]=yi(J=>[J.channelsVisible,J.contrastLimits,J.colors,J.domains,J.selections,J.ids,J.setPropertiesForChannel,J.toggleIsOn,J.removeChannel],Ue),g=hn(),I=he(J=>J.colormap),[l,c,C,B,u,E,h,f,Q,d]=_A(J=>[J.channelOptions,J.useLinkedView,J.use3d,J.useColormap,J.useLens,J.isChannelLoading,J.setIsChannelLoading,J.removeIsChannelLoading,J.pixelValues,J.isViewerLoading],Ue),w=cm(),m=um(),v=w&&RM(w),{shape:x,labels:D}=g[0],F=D.filter(J=>Em.includes(J)),N=r.map((J,Z)=>{const z=AA=>{const iA={...n[Z],c:l.indexOf(AA.target.value)};h(Z,!0),hm({loader:g,selection:iA,use3d:C}).then(({domain:gA,contrastLimits:sA})=>{const{Pixels:{Channels:BA}}=w,{c:IA}=iA,bA={contrastLimits:sA,domains:gA};BA[IA].Color&&(bA.colors=BA[IA].Color.slice(0,-1)),o(Z,bA),he.setState({onViewportLoad:()=>{he.setState({onViewportLoad:()=>{}}),h(Z,!1)}}),o(Z,{selections:iA})})},O=()=>s(Z),Y=(AA,iA)=>o(Z,{contrastLimits:iA}),k=()=>{a(Z),f(Z)},q=AA=>{o(Z,{colors:AA})},j=l[n[Z].c];return H($A,{style:{width:"100%"},item:!0,children:H(ZBA,{name:j,onSelectionChange:z,channelsVisible:e[Z],pixelValue:Q[Z],toggleIsOn:O,handleSliderChange:Y,domain:i[Z],slider:A[Z],color:t[Z],handleRemoveChannel:k,handleColorSelect:q,isLoading:E[Z]})},`channel-controller-${j}-${J}`)}),M=F.map(J=>{const Z=x[D.indexOf(J)];return Z>1?H(JEA,{size:Z,label:J},J):null}),[U,P]=p.exports.useState(0),W=(J,Z)=>{P(Z)};return XA(HEA,{maxHeight:m.height,children:[XA(EcA,{value:U,onChange:W,"aria-label":"simple tabs example",style:{height:"24px",minHeight:"24px"},children:[H(Mx,{label:"Channels",style:{fontSize:".75rem",bottom:12}}),H(Mx,{label:"Volume",style:{fontSize:".75rem",bottom:12}})]}),H(s0,{}),XA(oF,{value:U,index:0,children:[B&&H(qEA,{}),u&&!I&&!C&&x[D.indexOf("c")]>1&&H(OEA,{channelOptions:n.map(J=>l[J.c])}),!C&&M,!d&&!v?H($A,{container:!0,children:N}):H($A,{container:!0,justifyContent:"center",children:!v&&H(TM,{})}),!v&&H(tuA,{})]}),XA(oF,{value:U,index:1,children:[H(WEA,{}),H(jEA,{}),H(auA,{})]}),H(s0,{style:{marginTop:"8px",marginBottom:"8px"}}),H(VEA,{}),H(ouA,{}),H(ruA,{}),c&&!C&&XA(Pi,{children:[H(nuA,{}),H(iuA,{})]})]})};function IuA({children:e}){const{getRootProps:A,getInputProps:t}=xM();return XA("div",{...A({onClick:i=>i.stopPropagation()}),children:[H("input",{...t()}),e]})}const luA=is(e=>({typography:{fontSize:".8rem"},paper:{paddingRight:e.spacing(1),paddingLeft:e.spacing(1),backgroundColor:"rgba(0, 0, 0, 0.75)",borderRadius:2}}));function cuA(e,A,t){return`${e}/${A} [${t.join(", ")}]`}function CuA(){const e=luA(),[A,t]=_A(s=>[s.use3d,s.pyramidResolution],Ue),i=hn(),n=he(s=>s.resolution),r=A?n:t,o=i[r];return o?H(l0,{style:{position:"fixed",marginTop:"calc(5% + 60px)",bottom:0},children:H(no,{className:e.paper,children:H(Xo,{className:e.typography,children:cuA(r+1,i.length,o.shape)})})}):null}function sF(e){const{history:A,source:t,isDemoImage:i}=e,n=_A(s=>s.isViewerLoading),r=_A(s=>s.source),o=_A(s=>s.useLinkedView);return p.exports.useEffect(()=>{_A.setState({source:t,isNoImageUrlSnackbarOn:i})},[]),UgA(r,A),XA(Pi,{children:[H(IuA,{children:!n&&H(JlA,{})}),H(guA,{}),H(OIA,{}),!o&&H(CuA,{})]})}const aF=R2({palette:{type:"dark",primary:OI,secondary:OI},props:{MuiButtonBase:{disableRipple:!0}}});function BuA(){return Zv[Math.floor(Math.random()*Zv.length)]}function EuA(){return new URLSearchParams(_3().search)}function uuA(e){const t=EuA().get("image_url"),{routeProps:{history:i}}=e;if(t){const r={urlOrFile:t,description:SM(t)};return H(Xv,{theme:aF,children:H(sF,{source:r,history:i})})}const n=BuA();return H(Xv,{theme:aF,children:H(sF,{source:n,history:i,isDemoImage:!0})})}Pg.render(H(M3,{children:H(b3,{children:H(F3,{path:"/",render:e=>H(uuA,{routeProps:e})})})}),document.getElementById("root"));export{bAA as B,DuA as L,RuA as a}; diff --git a/assets/jpeg.6dba04cc.js b/assets/jpeg.b48bde09.js similarity index 99% rename from assets/jpeg.6dba04cc.js rename to assets/jpeg.b48bde09.js index 73161d415..58749fe98 100644 --- a/assets/jpeg.6dba04cc.js +++ b/assets/jpeg.b48bde09.js @@ -1 +1 @@ -import{B as re}from"./index.66be1e2e.js";const O=new Int32Array([0,1,8,16,9,2,3,10,17,24,32,25,18,11,4,5,12,19,26,33,40,48,41,34,27,20,13,6,7,14,21,28,35,42,49,56,57,50,43,36,29,22,15,23,30,37,44,51,58,59,52,45,38,31,39,46,53,60,61,54,47,55,62,63]),Y=4017,Z=799,$=3406,N=2276,Q=1567,W=3784,R=5793,K=2896;function ne(q,l){let o=0;const u=[];let T=16;for(;T>0&&!q[T-1];)--T;u.push({children:[],index:0});let w=u[0],C;for(let t=0;t0;)w=u.pop();for(w.index++,u.push(w);u.length<=t;)u.push(C={children:[],index:0}),w.children[w.index]=C.children,w=C;o++}t+10)return d--,i>>d&1;if(i=q[b++],i===255){const a=q[b++];if(a)throw new Error(`unexpected marker: ${(i<<8|a).toString(16)}`)}return d=7,i>>>7}function x(a){let f=a,p;for(;(p=m())!==null;){if(f=f[p],typeof f=="number")return f;if(typeof f!="object")throw new Error("invalid huffman sequence")}return null}function E(a){let f=a,p=0;for(;f>0;){const L=m();if(L===null)return;p=p<<1|L,--f}return p}function k(a){const f=E(a);return f>=1<>4;if(y===0){if(S<15)break;D+=16}else{D+=S;const I=O[D];f[I]=k(y),D++}}}function v(a,f){const p=x(a.huffmanTableDC),L=p===0?0:k(p)<0){n--;return}let p=w;const L=C;for(;p<=L;){const D=x(a.huffmanTableAC),P=D&15,y=D>>4;if(P===0){if(y<15){n=E(y)+(1<>4,I===0)D<15?(n=E(D)+(1<=65488&&z<=65495)b+=2;else break}return b-r}function ie(q,l){const o=[],{blocksPerLine:u,blocksPerColumn:T}=l,w=u<<3,C=new Int32Array(64),t=new Uint8Array(64);function h(F,c,r){const b=l.quantizationTable;let i,d,m,x,E,k,A,v,s;const n=r;let g;for(g=0;g<64;g++)n[g]=F[g]*b[g];for(g=0;g<8;++g){const e=8*g;if(n[1+e]===0&&n[2+e]===0&&n[3+e]===0&&n[4+e]===0&&n[5+e]===0&&n[6+e]===0&&n[7+e]===0){s=R*n[0+e]+512>>10,n[0+e]=s,n[1+e]=s,n[2+e]=s,n[3+e]=s,n[4+e]=s,n[5+e]=s,n[6+e]=s,n[7+e]=s;continue}i=R*n[0+e]+128>>8,d=R*n[4+e]+128>>8,m=n[2+e],x=n[6+e],E=K*(n[1+e]-n[7+e])+128>>8,v=K*(n[1+e]+n[7+e])+128>>8,k=n[3+e]<<4,A=n[5+e]<<4,s=i-d+1>>1,i=i+d+1>>1,d=s,s=m*W+x*Q+128>>8,m=m*Q-x*W+128>>8,x=s,s=E-A+1>>1,E=E+A+1>>1,A=s,s=v+k+1>>1,k=v-k+1>>1,v=s,s=i-x+1>>1,i=i+x+1>>1,x=s,s=d-m+1>>1,d=d+m+1>>1,m=s,s=E*N+v*$+2048>>12,E=E*$-v*N+2048>>12,v=s,s=k*Z+A*Y+2048>>12,k=k*Y-A*Z+2048>>12,A=s,n[0+e]=i+v,n[7+e]=i-v,n[1+e]=d+A,n[6+e]=d-A,n[2+e]=m+k,n[5+e]=m-k,n[3+e]=x+E,n[4+e]=x-E}for(g=0;g<8;++g){const e=g;if(n[1*8+e]===0&&n[2*8+e]===0&&n[3*8+e]===0&&n[4*8+e]===0&&n[5*8+e]===0&&n[6*8+e]===0&&n[7*8+e]===0){s=R*r[g+0]+8192>>14,n[0*8+e]=s,n[1*8+e]=s,n[2*8+e]=s,n[3*8+e]=s,n[4*8+e]=s,n[5*8+e]=s,n[6*8+e]=s,n[7*8+e]=s;continue}i=R*n[0*8+e]+2048>>12,d=R*n[4*8+e]+2048>>12,m=n[2*8+e],x=n[6*8+e],E=K*(n[1*8+e]-n[7*8+e])+2048>>12,v=K*(n[1*8+e]+n[7*8+e])+2048>>12,k=n[3*8+e],A=n[5*8+e],s=i-d+1>>1,i=i+d+1>>1,d=s,s=m*W+x*Q+2048>>12,m=m*Q-x*W+2048>>12,x=s,s=E-A+1>>1,E=E+A+1>>1,A=s,s=v+k+1>>1,k=v-k+1>>1,v=s,s=i-x+1>>1,i=i+x+1>>1,x=s,s=d-m+1>>1,d=d+m+1>>1,m=s,s=E*N+v*$+2048>>12,E=E*$-v*N+2048>>12,v=s,s=k*Z+A*Y+2048>>12,k=k*Y-A*Z+2048>>12,A=s,n[0*8+e]=i+v,n[7*8+e]=i-v,n[1*8+e]=d+A,n[6*8+e]=d-A,n[2*8+e]=m+k,n[5*8+e]=m-k,n[3*8+e]=x+E,n[4*8+e]=x-E}for(g=0;g<64;++g){const e=128+(n[g]+8>>4);e<0?c[g]=0:e>255?c[g]=255:c[g]=e}}for(let F=0;F>4===0)for(let r=0;r<64;r++){const b=O[r];c[b]=l[o++]}else if(F>>4===1)for(let r=0;r<64;r++){const b=O[r];c[b]=u()}else throw new Error("DQT: invalid table spec");this.quantizationTables[F&15]=c}break}case 65472:case 65473:case 65474:{u();const t={extended:C===65473,progressive:C===65474,precision:l[o++],scanLines:u(),samplesPerLine:u(),components:{},componentsOrder:[]},h=l[o++];let F;for(let c=0;c>4,b=l[o+1]&15,i=l[o+2];t.componentsOrder.push(F),t.components[F]={h:r,v:b,quantizationIdx:i},o+=3}w(t),this.frames.push(t);break}case 65476:{const t=u();for(let h=2;h>4===0?this.huffmanTablesDC[F&15]=ne(c,b):this.huffmanTablesAC[F&15]=ne(c,b)}break}case 65501:u(),this.resetInterval=u();break;case 65498:{u();const t=l[o++],h=[],F=this.frames[0];for(let d=0;d>4],m.huffmanTableAC=this.huffmanTablesAC[x&15],h.push(m)}const c=l[o++],r=l[o++],b=l[o++];o+=ce(l,o,F,h,this.resetInterval,c,r,b>>4,b&15);break}case 65535:l[o]!==255&&o--;break;default:if(l[o-3]===255&&l[o-2]>=192&&l[o-2]<=254){o-=3;break}throw new Error(`unknown JPEG marker ${C.toString(16)}`)}C=u()}}getResult(){const{frames:l}=this;if(this.frames.length===0)throw new Error("no frames were decoded");this.frames.length>1&&console.warn("more than one frame is not supported");for(let c=0;c0&&!q[T-1];)--T;u.push({children:[],index:0});let w=u[0],C;for(let t=0;t0;)w=u.pop();for(w.index++,u.push(w);u.length<=t;)u.push(C={children:[],index:0}),w.children[w.index]=C.children,w=C;o++}t+10)return d--,i>>d&1;if(i=q[b++],i===255){const a=q[b++];if(a)throw new Error(`unexpected marker: ${(i<<8|a).toString(16)}`)}return d=7,i>>>7}function x(a){let f=a,p;for(;(p=m())!==null;){if(f=f[p],typeof f=="number")return f;if(typeof f!="object")throw new Error("invalid huffman sequence")}return null}function E(a){let f=a,p=0;for(;f>0;){const L=m();if(L===null)return;p=p<<1|L,--f}return p}function k(a){const f=E(a);return f>=1<>4;if(y===0){if(S<15)break;D+=16}else{D+=S;const I=O[D];f[I]=k(y),D++}}}function v(a,f){const p=x(a.huffmanTableDC),L=p===0?0:k(p)<0){n--;return}let p=w;const L=C;for(;p<=L;){const D=x(a.huffmanTableAC),P=D&15,y=D>>4;if(P===0){if(y<15){n=E(y)+(1<>4,I===0)D<15?(n=E(D)+(1<=65488&&z<=65495)b+=2;else break}return b-r}function ie(q,l){const o=[],{blocksPerLine:u,blocksPerColumn:T}=l,w=u<<3,C=new Int32Array(64),t=new Uint8Array(64);function h(F,c,r){const b=l.quantizationTable;let i,d,m,x,E,k,A,v,s;const n=r;let g;for(g=0;g<64;g++)n[g]=F[g]*b[g];for(g=0;g<8;++g){const e=8*g;if(n[1+e]===0&&n[2+e]===0&&n[3+e]===0&&n[4+e]===0&&n[5+e]===0&&n[6+e]===0&&n[7+e]===0){s=R*n[0+e]+512>>10,n[0+e]=s,n[1+e]=s,n[2+e]=s,n[3+e]=s,n[4+e]=s,n[5+e]=s,n[6+e]=s,n[7+e]=s;continue}i=R*n[0+e]+128>>8,d=R*n[4+e]+128>>8,m=n[2+e],x=n[6+e],E=K*(n[1+e]-n[7+e])+128>>8,v=K*(n[1+e]+n[7+e])+128>>8,k=n[3+e]<<4,A=n[5+e]<<4,s=i-d+1>>1,i=i+d+1>>1,d=s,s=m*W+x*Q+128>>8,m=m*Q-x*W+128>>8,x=s,s=E-A+1>>1,E=E+A+1>>1,A=s,s=v+k+1>>1,k=v-k+1>>1,v=s,s=i-x+1>>1,i=i+x+1>>1,x=s,s=d-m+1>>1,d=d+m+1>>1,m=s,s=E*N+v*$+2048>>12,E=E*$-v*N+2048>>12,v=s,s=k*Z+A*Y+2048>>12,k=k*Y-A*Z+2048>>12,A=s,n[0+e]=i+v,n[7+e]=i-v,n[1+e]=d+A,n[6+e]=d-A,n[2+e]=m+k,n[5+e]=m-k,n[3+e]=x+E,n[4+e]=x-E}for(g=0;g<8;++g){const e=g;if(n[1*8+e]===0&&n[2*8+e]===0&&n[3*8+e]===0&&n[4*8+e]===0&&n[5*8+e]===0&&n[6*8+e]===0&&n[7*8+e]===0){s=R*r[g+0]+8192>>14,n[0*8+e]=s,n[1*8+e]=s,n[2*8+e]=s,n[3*8+e]=s,n[4*8+e]=s,n[5*8+e]=s,n[6*8+e]=s,n[7*8+e]=s;continue}i=R*n[0*8+e]+2048>>12,d=R*n[4*8+e]+2048>>12,m=n[2*8+e],x=n[6*8+e],E=K*(n[1*8+e]-n[7*8+e])+2048>>12,v=K*(n[1*8+e]+n[7*8+e])+2048>>12,k=n[3*8+e],A=n[5*8+e],s=i-d+1>>1,i=i+d+1>>1,d=s,s=m*W+x*Q+2048>>12,m=m*Q-x*W+2048>>12,x=s,s=E-A+1>>1,E=E+A+1>>1,A=s,s=v+k+1>>1,k=v-k+1>>1,v=s,s=i-x+1>>1,i=i+x+1>>1,x=s,s=d-m+1>>1,d=d+m+1>>1,m=s,s=E*N+v*$+2048>>12,E=E*$-v*N+2048>>12,v=s,s=k*Z+A*Y+2048>>12,k=k*Y-A*Z+2048>>12,A=s,n[0*8+e]=i+v,n[7*8+e]=i-v,n[1*8+e]=d+A,n[6*8+e]=d-A,n[2*8+e]=m+k,n[5*8+e]=m-k,n[3*8+e]=x+E,n[4*8+e]=x-E}for(g=0;g<64;++g){const e=128+(n[g]+8>>4);e<0?c[g]=0:e>255?c[g]=255:c[g]=e}}for(let F=0;F>4===0)for(let r=0;r<64;r++){const b=O[r];c[b]=l[o++]}else if(F>>4===1)for(let r=0;r<64;r++){const b=O[r];c[b]=u()}else throw new Error("DQT: invalid table spec");this.quantizationTables[F&15]=c}break}case 65472:case 65473:case 65474:{u();const t={extended:C===65473,progressive:C===65474,precision:l[o++],scanLines:u(),samplesPerLine:u(),components:{},componentsOrder:[]},h=l[o++];let F;for(let c=0;c>4,b=l[o+1]&15,i=l[o+2];t.componentsOrder.push(F),t.components[F]={h:r,v:b,quantizationIdx:i},o+=3}w(t),this.frames.push(t);break}case 65476:{const t=u();for(let h=2;h>4===0?this.huffmanTablesDC[F&15]=ne(c,b):this.huffmanTablesAC[F&15]=ne(c,b)}break}case 65501:u(),this.resetInterval=u();break;case 65498:{u();const t=l[o++],h=[],F=this.frames[0];for(let d=0;d>4],m.huffmanTableAC=this.huffmanTablesAC[x&15],h.push(m)}const c=l[o++],r=l[o++],b=l[o++];o+=ce(l,o,F,h,this.resetInterval,c,r,b>>4,b&15);break}case 65535:l[o]!==255&&o--;break;default:if(l[o-3]===255&&l[o-2]>=192&&l[o-2]<=254){o-=3;break}throw new Error(`unknown JPEG marker ${C.toString(16)}`)}C=u()}}getResult(){const{frames:l}=this;if(this.frames.length===0)throw new Error("no frames were decoded");this.frames.length>1&&console.warn("more than one frame is not supported");for(let c=0;c>3],B<<=U&7),p=0;p>3]),B&128?(k&&(k[U]=1),s=M.encoding<2?T[V++]:S,l=l>s?s:l,w[U++]=s):(k&&(k[U]=0),w[U++]=i),B<<=1;U+=I}else if(M.encoding<2)for(y=0;ys?s:l,w[U++]=s;U+=I}else for(l=l>S?S:l,y=0;y0){var f=new Uint8Array(Math.ceil(i.width*i.height/8));n=new DataView(r,o,i.mask.numBytes);var v=n.getInt16(0,!0),u=2,h=0;do{if(v>0)for(;v--;)f[h++]=n.getUint8(u++);else{var g=n.getUint8(u++);for(v=-v;v--;)f[h++]=g}v=n.getInt16(u,!0),u+=2}while(u0?1:0),k=s+(i.height%s>0?1:0);i.pixels.blocks=new Array(w*k);for(var D=0,p=0;p3)throw"Invalid block encoding ("+d.encoding+")";if(d.encoding===2){o++;continue}if(c!==0&&c!==2){if(c>>=6,d.offsetType=c,c===2)d.offset=n.getInt8(1),x++;else if(c===1)d.offset=n.getInt16(1,!0),x+=2;else if(c===0)d.offset=n.getFloat32(1,!0),x+=4;else throw"Invalid block offset type";if(d.encoding===1)if(c=n.getUint8(x),x++,d.bitsPerPixel=c&63,c>>=6,d.numValidPixelsType=c,c===2)d.numValidPixels=n.getUint8(x),x++;else if(c===1)d.numValidPixels=n.getUint16(x,!0),x+=2;else if(c===0)d.numValidPixels=n.getUint32(x,!0),x+=4;else throw"Invalid valid pixel count type"}if(o+=x,d.encoding!==3){var U,I;if(d.encoding===0){var M=(i.pixels.numBytes-1)/4;if(M!==Math.floor(M))throw"uncompressed block has invalid length";U=new ArrayBuffer(M*4),I=new Uint8Array(U),I.set(new Uint8Array(r,o,M*4));var T=new Float32Array(U);d.rawData=T,o+=M*4}else if(d.encoding===1){var V=Math.ceil(d.numValidPixels*d.bitsPerPixel/8),S=Math.ceil(V/4);U=new ArrayBuffer(S*4),I=new Uint8Array(U),I.set(new Uint8Array(r,o,V)),d.stuffedData=new Uint32Array(U),o+=V}}}return i.eofOffset=o,i},e=function(r,o,a,i,m,n,f){var v=(1<=o)l=s>>>g-o&v,g-=o;else{var D=o-g;l=(s&v)<>>g}n[h]=l=r?(g=l>>>h-r&f,h-=r):(s=r-h,g=(l&f)<>>h),e[u]=a[g];else for(w=Math.ceil((n-i)/m),u=0;u=r?(g=l>>>h-r&f,h-=r):(s=r-h,g=(l&f)<>>h),e[u]=g=e?(h=g>>>u-e&m,u-=e):(v=e-u,h=(g&m)<>>u),l[f]=h=r?(l=s>>>g&f,h-=r,g+=r):(w=r-h,l=s>>>g&f,s=t[v++],h=32-w,l|=(s&(1<=r?(l=s>>>g&f,h-=r,g+=r):(w=r-h,l=s>>>g&f,s=t[v++],h=32-w,l|=(s&(1<=e?(h=l>>>g&m,u-=e,g+=e):(v=e-u,h=l>>>g&m,l=t[n++],u=32-v,h|=(l&(1<=r?(f=v>>>n-r&a,n-=r):(u=r-n,f=(v&a)<>>n),e[m]=f;return e},originalUnstuff2:function(t,e,r,o){var a=(1<=r?(v=u>>>f&a,n-=r,f+=r):(h=r-n,v=u>>>f&a,u=t[i++],n=32-h,v|=(u&(1<=359?359:a;a-=m;do e+=t[i++]<<8,r+=e+=t[i++];while(--m);e=(e&65535)+(e>>>16),r=(r&65535)+(r>>>16)}return o&1&&(r+=e+=t[i]<<8),e=(e&65535)+(e>>>16),r=(r&65535)+(r>>>16),(r<<16|e)>>>0},readHeaderInfo:function(t,e){var r=e.ptr,o=new Uint8Array(t,r,6),a={};if(a.fileIdentifierString=String.fromCharCode.apply(null,o),a.fileIdentifierString.lastIndexOf("Lerc2",0)!==0)throw"Unexpected file identifier string (expect Lerc2 ): "+a.fileIdentifierString;r+=6;var i=new DataView(t,r,8),m=i.getInt32(0,!0);a.fileVersion=m,r+=4,m>=3&&(a.checksum=i.getUint32(4,!0),r+=4),i=new DataView(t,r,12),a.height=i.getUint32(0,!0),a.width=i.getUint32(4,!0),r+=8,m>=4?(a.numDims=i.getUint32(8,!0),r+=4):a.numDims=1,i=new DataView(t,r,40),a.numValidPixel=i.getUint32(0,!0),a.microBlockSize=i.getInt32(4,!0),a.blobSize=i.getInt32(8,!0),a.imageType=i.getInt32(12,!0),a.maxZError=i.getFloat64(16,!0),a.zMin=i.getFloat64(24,!0),a.zMax=i.getFloat64(32,!0),r+=40,e.headerInfo=a,e.ptr=r;var n,f;if(m>=3&&(f=m>=4?52:48,n=this.computeChecksumFletcher32(new Uint8Array(t,r-f,a.blobSize-14)),n!==a.checksum))throw"Checksum failed.";return!0},checkMinMaxRanges:function(t,e){var r=e.headerInfo,o=this.getDataTypeArray(r.imageType),a=r.numDims*this.getDataTypeSize(r.imageType),i=this.readSubArray(t,e.ptr,o,a),m=this.readSubArray(t,e.ptr+a,o,a);e.ptr+=2*a;var n,f=!0;for(n=0;n0){f=new Uint8Array(Math.ceil(a/8)),m=new DataView(t,r,n.numBytes);var u=m.getInt16(0,!0),h=2,g=0,l=0;do{if(u>0)for(;u--;)f[g++]=m.getUint8(h++);else for(l=m.getUint8(h++),u=-u;u--;)f[g++]=l;u=m.getInt16(h,!0),h+=2}while(h>3],s<<=w&7):s=f[w>>3],s&128&&(v[w]=1);e.pixels.resultMask=v,n.bitset=f,r+=n.numBytes}return e.ptr=r,e.mask=n,!0},readDataOneSweep:function(t,e,r,o){var a=e.ptr,i=e.headerInfo,m=i.numDims,n=i.width*i.height,f=i.imageType,v=i.numValidPixel*A.getDataTypeSize(f)*m,u,h=e.pixels.resultMask;if(r===Uint8Array)u=new Uint8Array(t,a,v);else{var g=new ArrayBuffer(v),l=new Uint8Array(g);l.set(new Uint8Array(t,a,v)),u=new r(g)}if(u.length===n*m)o?e.pixels.resultPixels=A.swapDimensionOrder(u,n,m,r,!0):e.pixels.resultPixels=u;else{e.pixels.resultPixels=new r(n*m);var s=0,w=0,k=0,D=0;if(m>1){if(o){for(w=0;w=n)return!1;var f=new Uint32Array(n-m);A.decodeBits(t,e,f);var v=[],u,h,g,l;for(u=m;u0&&(v[h].second=x<>>32-l,32-y>=l?(y+=l,y===32&&(y=0,L++,x=p[L])):(y+=l-32,L++,x=p[L],v[h].second|=x>>>32-y));var d=0,c=0,U=new X;for(u=0;u=r?c=r:c=d;var I=[],M,T,V,S,B,C;for(u=m;u0)if(M=[l,h],l<=c)for(T=v[h].second<=0;S--)B=T>>>S&1,B?(C.right||(C.right=new X),C=C.right):(C.left||(C.left=new X),C=C.left),S===0&&!C.val&&(C.val=M[1]);return{decodeLut:I,numBitsLUTQick:c,numBitsLUT:d,tree:U,stuffedData:p,srcPtr:L,bitPos:y}},readHuffman:function(t,e,r,o){var a=e.headerInfo,i=a.numDims,m=e.headerInfo.height,n=e.headerInfo.width,f=n*m,v=this.readHuffmanTree(t,e),u=v.decodeLut,h=v.tree,g=v.stuffedData,l=v.srcPtr,s=v.bitPos,w=v.numBitsLUTQick,k=v.numBitsLUT,D=e.headerInfo.imageType===0?128:0,p,y,x,L=e.pixels.resultMask,d,c,U,I,M,T,V,S=0;s>0&&(l++,s=0);var B=g[l],C=e.encodeMode===1,_=new r(f*i),O=_,b;if(i<2||C){for(b=0;b1&&(O=new r(_.buffer,f*b,f),S=0),e.headerInfo.numValidPixel===n*m)for(T=0,I=0;I>>32-w,c=d,32-s>>64-s-w,c=d),u[c])y=u[c][1],s+=u[c][0];else for(d=B<>>32-k,c=d,32-s>>64-s-k,c=d),p=h,V=0;V>>k-V-1&1,p=U?p.right:p.left,!(p.left||p.right)){y=p.val,s=s+V+1;break}s>=32&&(s-=32,l++,B=g[l]),x=y-D,C?(M>0?x+=S:I>0?x+=O[T-n]:x+=S,x&=255,O[T]=x,S=x):O[T]=x}else for(T=0,I=0;I>>32-w,c=d,32-s>>64-s-w,c=d),u[c])y=u[c][1],s+=u[c][0];else for(d=B<>>32-k,c=d,32-s>>64-s-k,c=d),p=h,V=0;V>>k-V-1&1,p=U?p.right:p.left,!(p.left||p.right)){y=p.val,s=s+V+1;break}s>=32&&(s-=32,l++,B=g[l]),x=y-D,C?(M>0&&L[T-1]?x+=S:I>0&&L[T-n]?x+=O[T-n]:x+=S,x&=255,O[T]=x,S=x):O[T]=x}}else for(T=0,I=0;I>>32-w,c=d,32-s>>64-s-w,c=d),u[c])y=u[c][1],s+=u[c][0];else for(d=B<>>32-k,c=d,32-s>>64-s-k,c=d),p=h,V=0;V>>k-V-1&1,p=U?p.right:p.left,!(p.left||p.right)){y=p.val,s=s+V+1;break}s>=32&&(s-=32,l++,B=g[l]),x=y-D,O[T]=x}e.ptr=e.ptr+(l+1)*4+(s>0?4:0),e.pixels.resultPixels=_,i>1&&!o&&(e.pixels.resultPixels=A.swapDimensionOrder(_,f,i,r))},decodeBits:function(t,e,r,o,a){{var i=e.headerInfo,m=i.fileVersion,n=0,f=t.byteLength-e.ptr>=5?5:t.byteLength-e.ptr,v=new DataView(t,e.ptr,f),u=v.getUint8(0);n++;var h=u>>6,g=h===0?4:3-h,l=(u&32)>0,s=u&31,w=0;if(g===1)w=v.getUint8(n),n++;else if(g===2)w=v.getUint16(n,!0),n+=2;else if(g===4)w=v.getUint32(n,!0),n+=4;else throw"Invalid valid pixel count type";var k=2*i.maxZError,D,p,y,x,L,d,c,U,I,M=i.numDims>1?i.maxValues[a]:i.zMax;if(l){for(e.counter.lut++,U=v.getUint8(n),n++,x=Math.ceil((U-1)*s/8),L=Math.ceil(x/4),p=new ArrayBuffer(L*4),y=new Uint8Array(p),e.ptr+=n,y.set(new Uint8Array(t,e.ptr,x)),c=new Uint32Array(p),e.ptr+=x,I=0;U-1>>>I;)I++;x=Math.ceil(w*I/8),L=Math.ceil(x/4),p=new ArrayBuffer(L*4),y=new Uint8Array(p),y.set(new Uint8Array(t,e.ptr,x)),D=new Uint32Array(p),e.ptr+=x,m>=3?d=F.unstuffLUT2(c,s,U-1,o,k,M):d=F.unstuffLUT(c,s,U-1,o,k,M),m>=3?F.unstuff2(D,r,I,w,d):F.unstuff(D,r,I,w,d)}else e.counter.bitstuffer++,I=s,e.ptr+=n,I>0&&(x=Math.ceil(w*I/8),L=Math.ceil(x/4),p=new ArrayBuffer(L*4),y=new Uint8Array(p),y.set(new Uint8Array(t,e.ptr,x)),D=new Uint32Array(p),e.ptr+=x,m>=3?o==null?F.originalUnstuff2(D,r,I,w):F.unstuff2(D,r,I,w,!1,o,k,M):o==null?F.originalUnstuff(D,r,I,w):F.unstuff(D,r,I,w,!1,o,k,M))}},readTiles:function(t,e,r,o){var a=e.headerInfo,i=a.width,m=a.height,n=i*m,f=a.microBlockSize,v=a.imageType,u=A.getDataTypeSize(v),h=Math.ceil(i/f),g=Math.ceil(m/f);e.pixels.numBlocksY=g,e.pixels.numBlocksX=h,e.pixels.ptr=0;var l=0,s=0,w=0,k=0,D=0,p=0,y=0,x=0,L=0,d=0,c=0,U=0,I=0,M=0,T=0,V=0,S,B,C,_,O,b,Q=new r(f*f),ne=m%f||f,ae=i%f||f,G,H,q=a.numDims,j,Z=e.pixels.resultMask,z=e.pixels.resultPixels,fe=a.fileVersion,ee=fe>=5?14:15,E,J=a.zMax,N;for(w=0;w1?(N=z,c=w*i*f+k*f,z=new r(e.pixels.resultPixels.buffer,n*j*u,n),J=a.maxValues[j]):N=null,y=t.byteLength-e.ptr,S=new DataView(t,e.ptr,Math.min(10,y)),B={},V=0,x=S.getUint8(0),V++,E=a.fileVersion>=5?x&4:0,L=x>>6&255,d=x>>2&ee,d!==(k*f>>3&ee)||E&&j===0)throw"integrity issue";if(b=x&3,b>3)throw e.ptr+=V,"Invalid block encoding ("+b+")";if(b===2){if(E)if(Z)for(l=0;l1&&!o&&(e.pixels.resultPixels=A.swapDimensionOrder(e.pixels.resultPixels,n,q,r))},formatFileInfo:function(t){return{fileIdentifierString:t.headerInfo.fileIdentifierString,fileVersion:t.headerInfo.fileVersion,imageType:t.headerInfo.imageType,height:t.headerInfo.height,width:t.headerInfo.width,numValidPixel:t.headerInfo.numValidPixel,microBlockSize:t.headerInfo.microBlockSize,blobSize:t.headerInfo.blobSize,maxZError:t.headerInfo.maxZError,pixelType:A.getPixelType(t.headerInfo.imageType),eofOffset:t.eofOffset,mask:t.mask?{numBytes:t.mask.numBytes}:null,pixels:{numBlocksX:t.pixels.numBlocksX,numBlocksY:t.pixels.numBlocksY,maxValue:t.headerInfo.zMax,minValue:t.headerInfo.zMin,noDataValue:t.noDataValue}}},constructConstantSurface:function(t,e){var r=t.headerInfo.zMax,o=t.headerInfo.zMin,a=t.headerInfo.maxValues,i=t.headerInfo.numDims,m=t.headerInfo.height*t.headerInfo.width,n=0,f=0,v=0,u=t.pixels.resultMask,h=t.pixels.resultPixels;if(u)if(i>1){if(e)for(n=0;n1&&o!==r)if(e)for(n=0;n=-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>=-17976931348623157e292&&e<=17976931348623157e292;break;default:r=!1}return r},getDataTypeSize:function(t){var e=0;switch(t){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=t}return e},getDataTypeUsed:function(t,e){var r=t;switch(t){case 2:case 4:r=t-e;break;case 3:case 5:r=t-2*e;break;case 6:e===0?r=t:e===1?r=2:r=1;break;case 7:e===0?r=t:r=t-2*e+1;break;default:r=t;break}return r},getOnePixel:function(t,e,r,o){var a=0;switch(r){case 0:a=o.getInt8(e);break;case 1:a=o.getUint8(e);break;case 2:a=o.getInt16(e,!0);break;case 3:a=o.getUint16(e,!0);break;case 4:a=o.getInt32(e,!0);break;case 5:a=o.getUInt32(e,!0);break;case 6:a=o.getFloat32(e,!0);break;case 7:a=o.getFloat64(e,!0);break;default:throw"the decoder does not understand this pixel type"}return a},swapDimensionOrder:function(t,e,r,o,a){var i=0,m=0,n=0,f=0,v=t;if(r>1)if(v=new o(e*r),a)for(i=0;i5)throw"unsupported lerc version 2."+m;A.readMask(t,a),i.numValidPixel!==i.width*i.height&&!a.pixels.resultMask&&(a.pixels.resultMask=e.maskData);var f=i.width*i.height;a.pixels.resultPixels=new n(f*i.numDims),a.counter={onesweep:0,uncompressed:0,lut:0,bitstuffer:0,constant:0,constantoffset:0};var v=!e.returnPixelInterleavedDims;if(i.numValidPixel!==0)if(i.zMax===i.zMin)A.constructConstantSurface(a,v);else if(m>=4&&A.checkMinMaxRanges(t,a))A.constructConstantSurface(a,v);else{var u=new DataView(t,a.ptr,2),h=u.getUint8(0);if(a.ptr++,h)A.readDataOneSweep(t,a,n,v);else if(m>1&&i.imageType<=1&&Math.abs(i.maxZError-.5)<1e-5){var g=u.getUint8(1);if(a.ptr++,a.encodeMode=g,g>2||m<4&&g>1)throw"Invalid Huffman flag "+g;g?A.readHuffman(t,a,n,v):A.readTiles(t,a,n,v)}else A.readTiles(t,a,n,v)}a.eofOffset=a.ptr;var l;e.inputOffset?(l=a.headerInfo.blobSize+e.inputOffset-a.ptr,Math.abs(l)>=1&&(a.eofOffset=e.inputOffset+a.headerInfo.blobSize)):(l=a.headerInfo.blobSize-a.ptr,Math.abs(l)>=1&&(a.eofOffset=a.headerInfo.blobSize));var s={width:i.width,height:i.height,pixelData:a.pixels.resultPixels,minValue:i.zMin,maxValue:i.zMax,validPixelCount:i.numValidPixel,dimCount:i.numDims,dimStats:{minValues:i.minValues,maxValues:i.maxValues},maskData:a.pixels.resultMask};if(a.pixels.resultMask&&A.isValidPixelValue(i.imageType,r)){var w=a.pixels.resultMask;for(o=0;o1&&(f&&m.push(f),h.fileInfo.mask&&h.fileInfo.mask.numBytes>0&&u++),o++,v.pixels.push(h.pixelData),v.statistics.push({minValue:h.minValue,maxValue:h.maxValue,noDataValue:h.noDataValue,dimStats:h.dimStats})}var g,l,s;if(r>1&&u>1){for(s=v.width*v.height,v.bandMasks=m,f=new Uint8Array(s),f.set(m[0]),g=1;g>3],B<<=U&7),p=0;p>3]),B&128?(k&&(k[U]=1),s=M.encoding<2?T[V++]:S,l=l>s?s:l,w[U++]=s):(k&&(k[U]=0),w[U++]=i),B<<=1;U+=I}else if(M.encoding<2)for(y=0;ys?s:l,w[U++]=s;U+=I}else for(l=l>S?S:l,y=0;y0){var f=new Uint8Array(Math.ceil(i.width*i.height/8));n=new DataView(r,o,i.mask.numBytes);var v=n.getInt16(0,!0),u=2,h=0;do{if(v>0)for(;v--;)f[h++]=n.getUint8(u++);else{var g=n.getUint8(u++);for(v=-v;v--;)f[h++]=g}v=n.getInt16(u,!0),u+=2}while(u0?1:0),k=s+(i.height%s>0?1:0);i.pixels.blocks=new Array(w*k);for(var D=0,p=0;p3)throw"Invalid block encoding ("+d.encoding+")";if(d.encoding===2){o++;continue}if(c!==0&&c!==2){if(c>>=6,d.offsetType=c,c===2)d.offset=n.getInt8(1),x++;else if(c===1)d.offset=n.getInt16(1,!0),x+=2;else if(c===0)d.offset=n.getFloat32(1,!0),x+=4;else throw"Invalid block offset type";if(d.encoding===1)if(c=n.getUint8(x),x++,d.bitsPerPixel=c&63,c>>=6,d.numValidPixelsType=c,c===2)d.numValidPixels=n.getUint8(x),x++;else if(c===1)d.numValidPixels=n.getUint16(x,!0),x+=2;else if(c===0)d.numValidPixels=n.getUint32(x,!0),x+=4;else throw"Invalid valid pixel count type"}if(o+=x,d.encoding!==3){var U,I;if(d.encoding===0){var M=(i.pixels.numBytes-1)/4;if(M!==Math.floor(M))throw"uncompressed block has invalid length";U=new ArrayBuffer(M*4),I=new Uint8Array(U),I.set(new Uint8Array(r,o,M*4));var T=new Float32Array(U);d.rawData=T,o+=M*4}else if(d.encoding===1){var V=Math.ceil(d.numValidPixels*d.bitsPerPixel/8),S=Math.ceil(V/4);U=new ArrayBuffer(S*4),I=new Uint8Array(U),I.set(new Uint8Array(r,o,V)),d.stuffedData=new Uint32Array(U),o+=V}}}return i.eofOffset=o,i},e=function(r,o,a,i,m,n,f){var v=(1<=o)l=s>>>g-o&v,g-=o;else{var D=o-g;l=(s&v)<>>g}n[h]=l=r?(g=l>>>h-r&f,h-=r):(s=r-h,g=(l&f)<>>h),e[u]=a[g];else for(w=Math.ceil((n-i)/m),u=0;u=r?(g=l>>>h-r&f,h-=r):(s=r-h,g=(l&f)<>>h),e[u]=g=e?(h=g>>>u-e&m,u-=e):(v=e-u,h=(g&m)<>>u),l[f]=h=r?(l=s>>>g&f,h-=r,g+=r):(w=r-h,l=s>>>g&f,s=t[v++],h=32-w,l|=(s&(1<=r?(l=s>>>g&f,h-=r,g+=r):(w=r-h,l=s>>>g&f,s=t[v++],h=32-w,l|=(s&(1<=e?(h=l>>>g&m,u-=e,g+=e):(v=e-u,h=l>>>g&m,l=t[n++],u=32-v,h|=(l&(1<=r?(f=v>>>n-r&a,n-=r):(u=r-n,f=(v&a)<>>n),e[m]=f;return e},originalUnstuff2:function(t,e,r,o){var a=(1<=r?(v=u>>>f&a,n-=r,f+=r):(h=r-n,v=u>>>f&a,u=t[i++],n=32-h,v|=(u&(1<=359?359:a;a-=m;do e+=t[i++]<<8,r+=e+=t[i++];while(--m);e=(e&65535)+(e>>>16),r=(r&65535)+(r>>>16)}return o&1&&(r+=e+=t[i]<<8),e=(e&65535)+(e>>>16),r=(r&65535)+(r>>>16),(r<<16|e)>>>0},readHeaderInfo:function(t,e){var r=e.ptr,o=new Uint8Array(t,r,6),a={};if(a.fileIdentifierString=String.fromCharCode.apply(null,o),a.fileIdentifierString.lastIndexOf("Lerc2",0)!==0)throw"Unexpected file identifier string (expect Lerc2 ): "+a.fileIdentifierString;r+=6;var i=new DataView(t,r,8),m=i.getInt32(0,!0);a.fileVersion=m,r+=4,m>=3&&(a.checksum=i.getUint32(4,!0),r+=4),i=new DataView(t,r,12),a.height=i.getUint32(0,!0),a.width=i.getUint32(4,!0),r+=8,m>=4?(a.numDims=i.getUint32(8,!0),r+=4):a.numDims=1,i=new DataView(t,r,40),a.numValidPixel=i.getUint32(0,!0),a.microBlockSize=i.getInt32(4,!0),a.blobSize=i.getInt32(8,!0),a.imageType=i.getInt32(12,!0),a.maxZError=i.getFloat64(16,!0),a.zMin=i.getFloat64(24,!0),a.zMax=i.getFloat64(32,!0),r+=40,e.headerInfo=a,e.ptr=r;var n,f;if(m>=3&&(f=m>=4?52:48,n=this.computeChecksumFletcher32(new Uint8Array(t,r-f,a.blobSize-14)),n!==a.checksum))throw"Checksum failed.";return!0},checkMinMaxRanges:function(t,e){var r=e.headerInfo,o=this.getDataTypeArray(r.imageType),a=r.numDims*this.getDataTypeSize(r.imageType),i=this.readSubArray(t,e.ptr,o,a),m=this.readSubArray(t,e.ptr+a,o,a);e.ptr+=2*a;var n,f=!0;for(n=0;n0){f=new Uint8Array(Math.ceil(a/8)),m=new DataView(t,r,n.numBytes);var u=m.getInt16(0,!0),h=2,g=0,l=0;do{if(u>0)for(;u--;)f[g++]=m.getUint8(h++);else for(l=m.getUint8(h++),u=-u;u--;)f[g++]=l;u=m.getInt16(h,!0),h+=2}while(h>3],s<<=w&7):s=f[w>>3],s&128&&(v[w]=1);e.pixels.resultMask=v,n.bitset=f,r+=n.numBytes}return e.ptr=r,e.mask=n,!0},readDataOneSweep:function(t,e,r,o){var a=e.ptr,i=e.headerInfo,m=i.numDims,n=i.width*i.height,f=i.imageType,v=i.numValidPixel*A.getDataTypeSize(f)*m,u,h=e.pixels.resultMask;if(r===Uint8Array)u=new Uint8Array(t,a,v);else{var g=new ArrayBuffer(v),l=new Uint8Array(g);l.set(new Uint8Array(t,a,v)),u=new r(g)}if(u.length===n*m)o?e.pixels.resultPixels=A.swapDimensionOrder(u,n,m,r,!0):e.pixels.resultPixels=u;else{e.pixels.resultPixels=new r(n*m);var s=0,w=0,k=0,D=0;if(m>1){if(o){for(w=0;w=n)return!1;var f=new Uint32Array(n-m);A.decodeBits(t,e,f);var v=[],u,h,g,l;for(u=m;u0&&(v[h].second=x<>>32-l,32-y>=l?(y+=l,y===32&&(y=0,L++,x=p[L])):(y+=l-32,L++,x=p[L],v[h].second|=x>>>32-y));var d=0,c=0,U=new X;for(u=0;u=r?c=r:c=d;var I=[],M,T,V,S,B,C;for(u=m;u0)if(M=[l,h],l<=c)for(T=v[h].second<=0;S--)B=T>>>S&1,B?(C.right||(C.right=new X),C=C.right):(C.left||(C.left=new X),C=C.left),S===0&&!C.val&&(C.val=M[1]);return{decodeLut:I,numBitsLUTQick:c,numBitsLUT:d,tree:U,stuffedData:p,srcPtr:L,bitPos:y}},readHuffman:function(t,e,r,o){var a=e.headerInfo,i=a.numDims,m=e.headerInfo.height,n=e.headerInfo.width,f=n*m,v=this.readHuffmanTree(t,e),u=v.decodeLut,h=v.tree,g=v.stuffedData,l=v.srcPtr,s=v.bitPos,w=v.numBitsLUTQick,k=v.numBitsLUT,D=e.headerInfo.imageType===0?128:0,p,y,x,L=e.pixels.resultMask,d,c,U,I,M,T,V,S=0;s>0&&(l++,s=0);var B=g[l],C=e.encodeMode===1,_=new r(f*i),O=_,b;if(i<2||C){for(b=0;b1&&(O=new r(_.buffer,f*b,f),S=0),e.headerInfo.numValidPixel===n*m)for(T=0,I=0;I>>32-w,c=d,32-s>>64-s-w,c=d),u[c])y=u[c][1],s+=u[c][0];else for(d=B<>>32-k,c=d,32-s>>64-s-k,c=d),p=h,V=0;V>>k-V-1&1,p=U?p.right:p.left,!(p.left||p.right)){y=p.val,s=s+V+1;break}s>=32&&(s-=32,l++,B=g[l]),x=y-D,C?(M>0?x+=S:I>0?x+=O[T-n]:x+=S,x&=255,O[T]=x,S=x):O[T]=x}else for(T=0,I=0;I>>32-w,c=d,32-s>>64-s-w,c=d),u[c])y=u[c][1],s+=u[c][0];else for(d=B<>>32-k,c=d,32-s>>64-s-k,c=d),p=h,V=0;V>>k-V-1&1,p=U?p.right:p.left,!(p.left||p.right)){y=p.val,s=s+V+1;break}s>=32&&(s-=32,l++,B=g[l]),x=y-D,C?(M>0&&L[T-1]?x+=S:I>0&&L[T-n]?x+=O[T-n]:x+=S,x&=255,O[T]=x,S=x):O[T]=x}}else for(T=0,I=0;I>>32-w,c=d,32-s>>64-s-w,c=d),u[c])y=u[c][1],s+=u[c][0];else for(d=B<>>32-k,c=d,32-s>>64-s-k,c=d),p=h,V=0;V>>k-V-1&1,p=U?p.right:p.left,!(p.left||p.right)){y=p.val,s=s+V+1;break}s>=32&&(s-=32,l++,B=g[l]),x=y-D,O[T]=x}e.ptr=e.ptr+(l+1)*4+(s>0?4:0),e.pixels.resultPixels=_,i>1&&!o&&(e.pixels.resultPixels=A.swapDimensionOrder(_,f,i,r))},decodeBits:function(t,e,r,o,a){{var i=e.headerInfo,m=i.fileVersion,n=0,f=t.byteLength-e.ptr>=5?5:t.byteLength-e.ptr,v=new DataView(t,e.ptr,f),u=v.getUint8(0);n++;var h=u>>6,g=h===0?4:3-h,l=(u&32)>0,s=u&31,w=0;if(g===1)w=v.getUint8(n),n++;else if(g===2)w=v.getUint16(n,!0),n+=2;else if(g===4)w=v.getUint32(n,!0),n+=4;else throw"Invalid valid pixel count type";var k=2*i.maxZError,D,p,y,x,L,d,c,U,I,M=i.numDims>1?i.maxValues[a]:i.zMax;if(l){for(e.counter.lut++,U=v.getUint8(n),n++,x=Math.ceil((U-1)*s/8),L=Math.ceil(x/4),p=new ArrayBuffer(L*4),y=new Uint8Array(p),e.ptr+=n,y.set(new Uint8Array(t,e.ptr,x)),c=new Uint32Array(p),e.ptr+=x,I=0;U-1>>>I;)I++;x=Math.ceil(w*I/8),L=Math.ceil(x/4),p=new ArrayBuffer(L*4),y=new Uint8Array(p),y.set(new Uint8Array(t,e.ptr,x)),D=new Uint32Array(p),e.ptr+=x,m>=3?d=F.unstuffLUT2(c,s,U-1,o,k,M):d=F.unstuffLUT(c,s,U-1,o,k,M),m>=3?F.unstuff2(D,r,I,w,d):F.unstuff(D,r,I,w,d)}else e.counter.bitstuffer++,I=s,e.ptr+=n,I>0&&(x=Math.ceil(w*I/8),L=Math.ceil(x/4),p=new ArrayBuffer(L*4),y=new Uint8Array(p),y.set(new Uint8Array(t,e.ptr,x)),D=new Uint32Array(p),e.ptr+=x,m>=3?o==null?F.originalUnstuff2(D,r,I,w):F.unstuff2(D,r,I,w,!1,o,k,M):o==null?F.originalUnstuff(D,r,I,w):F.unstuff(D,r,I,w,!1,o,k,M))}},readTiles:function(t,e,r,o){var a=e.headerInfo,i=a.width,m=a.height,n=i*m,f=a.microBlockSize,v=a.imageType,u=A.getDataTypeSize(v),h=Math.ceil(i/f),g=Math.ceil(m/f);e.pixels.numBlocksY=g,e.pixels.numBlocksX=h,e.pixels.ptr=0;var l=0,s=0,w=0,k=0,D=0,p=0,y=0,x=0,L=0,d=0,c=0,U=0,I=0,M=0,T=0,V=0,S,B,C,_,O,b,Q=new r(f*f),ne=m%f||f,ae=i%f||f,G,H,q=a.numDims,j,Z=e.pixels.resultMask,z=e.pixels.resultPixels,fe=a.fileVersion,ee=fe>=5?14:15,E,J=a.zMax,N;for(w=0;w1?(N=z,c=w*i*f+k*f,z=new r(e.pixels.resultPixels.buffer,n*j*u,n),J=a.maxValues[j]):N=null,y=t.byteLength-e.ptr,S=new DataView(t,e.ptr,Math.min(10,y)),B={},V=0,x=S.getUint8(0),V++,E=a.fileVersion>=5?x&4:0,L=x>>6&255,d=x>>2&ee,d!==(k*f>>3&ee)||E&&j===0)throw"integrity issue";if(b=x&3,b>3)throw e.ptr+=V,"Invalid block encoding ("+b+")";if(b===2){if(E)if(Z)for(l=0;l1&&!o&&(e.pixels.resultPixels=A.swapDimensionOrder(e.pixels.resultPixels,n,q,r))},formatFileInfo:function(t){return{fileIdentifierString:t.headerInfo.fileIdentifierString,fileVersion:t.headerInfo.fileVersion,imageType:t.headerInfo.imageType,height:t.headerInfo.height,width:t.headerInfo.width,numValidPixel:t.headerInfo.numValidPixel,microBlockSize:t.headerInfo.microBlockSize,blobSize:t.headerInfo.blobSize,maxZError:t.headerInfo.maxZError,pixelType:A.getPixelType(t.headerInfo.imageType),eofOffset:t.eofOffset,mask:t.mask?{numBytes:t.mask.numBytes}:null,pixels:{numBlocksX:t.pixels.numBlocksX,numBlocksY:t.pixels.numBlocksY,maxValue:t.headerInfo.zMax,minValue:t.headerInfo.zMin,noDataValue:t.noDataValue}}},constructConstantSurface:function(t,e){var r=t.headerInfo.zMax,o=t.headerInfo.zMin,a=t.headerInfo.maxValues,i=t.headerInfo.numDims,m=t.headerInfo.height*t.headerInfo.width,n=0,f=0,v=0,u=t.pixels.resultMask,h=t.pixels.resultPixels;if(u)if(i>1){if(e)for(n=0;n1&&o!==r)if(e)for(n=0;n=-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>=-17976931348623157e292&&e<=17976931348623157e292;break;default:r=!1}return r},getDataTypeSize:function(t){var e=0;switch(t){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=t}return e},getDataTypeUsed:function(t,e){var r=t;switch(t){case 2:case 4:r=t-e;break;case 3:case 5:r=t-2*e;break;case 6:e===0?r=t:e===1?r=2:r=1;break;case 7:e===0?r=t:r=t-2*e+1;break;default:r=t;break}return r},getOnePixel:function(t,e,r,o){var a=0;switch(r){case 0:a=o.getInt8(e);break;case 1:a=o.getUint8(e);break;case 2:a=o.getInt16(e,!0);break;case 3:a=o.getUint16(e,!0);break;case 4:a=o.getInt32(e,!0);break;case 5:a=o.getUInt32(e,!0);break;case 6:a=o.getFloat32(e,!0);break;case 7:a=o.getFloat64(e,!0);break;default:throw"the decoder does not understand this pixel type"}return a},swapDimensionOrder:function(t,e,r,o,a){var i=0,m=0,n=0,f=0,v=t;if(r>1)if(v=new o(e*r),a)for(i=0;i5)throw"unsupported lerc version 2."+m;A.readMask(t,a),i.numValidPixel!==i.width*i.height&&!a.pixels.resultMask&&(a.pixels.resultMask=e.maskData);var f=i.width*i.height;a.pixels.resultPixels=new n(f*i.numDims),a.counter={onesweep:0,uncompressed:0,lut:0,bitstuffer:0,constant:0,constantoffset:0};var v=!e.returnPixelInterleavedDims;if(i.numValidPixel!==0)if(i.zMax===i.zMin)A.constructConstantSurface(a,v);else if(m>=4&&A.checkMinMaxRanges(t,a))A.constructConstantSurface(a,v);else{var u=new DataView(t,a.ptr,2),h=u.getUint8(0);if(a.ptr++,h)A.readDataOneSweep(t,a,n,v);else if(m>1&&i.imageType<=1&&Math.abs(i.maxZError-.5)<1e-5){var g=u.getUint8(1);if(a.ptr++,a.encodeMode=g,g>2||m<4&&g>1)throw"Invalid Huffman flag "+g;g?A.readHuffman(t,a,n,v):A.readTiles(t,a,n,v)}else A.readTiles(t,a,n,v)}a.eofOffset=a.ptr;var l;e.inputOffset?(l=a.headerInfo.blobSize+e.inputOffset-a.ptr,Math.abs(l)>=1&&(a.eofOffset=e.inputOffset+a.headerInfo.blobSize)):(l=a.headerInfo.blobSize-a.ptr,Math.abs(l)>=1&&(a.eofOffset=a.headerInfo.blobSize));var s={width:i.width,height:i.height,pixelData:a.pixels.resultPixels,minValue:i.zMin,maxValue:i.zMax,validPixelCount:i.numValidPixel,dimCount:i.numDims,dimStats:{minValues:i.minValues,maxValues:i.maxValues},maskData:a.pixels.resultMask};if(a.pixels.resultMask&&A.isValidPixelValue(i.imageType,r)){var w=a.pixels.resultMask;for(o=0;o1&&(f&&m.push(f),h.fileInfo.mask&&h.fileInfo.mask.numBytes>0&&u++),o++,v.pixels.push(h.pixelData),v.statistics.push({minValue:h.minValue,maxValue:h.maxValue,noDataValue:h.noDataValue,dimStats:h.dimStats})}var g,l,s;if(r>1&&u>1){for(s=v.width*v.height,v.bandMasks=m,f=new Uint8Array(s),f.set(m[0]),g=1;g=c.length)return console.warn("ran off the end of the buffer before finding EOI_CODE (end on input code)"),k;let u=c[n]&2**(8-i)-1;u<<=r-h;let s=u;if(n+1>>l;f<<=Math.max(0,r-w),s+=f}if(g>8&&n+2>>f}return s}function D(c,o){for(let r=o.length-1;r>=0;r--)c.push(o[r]);return c}function A(c){const o=new Uint16Array(4093),r=new Uint8Array(4093);for(let e=0;e<=257;e++)o[e]=4096,r[e]=e;let i=258,n=p,h=0;function g(){i=258,n=p}function l(e){const a=x(e,h,n);return h+=n,a}function w(e,a){return r[i]=a,o[i]=e,i++,i-1}function u(e){const a=[];for(let y=e;y!==4096;y=o[y])a.push(r[y]);return a}const s=[];g();const f=new Uint8Array(c);let t=l(f),d;for(;t!==k;){if(t===E){for(g(),t=l(f);t===E;)t=l(f);if(t===k)break;if(t>E)throw new Error(`corrupted code at scanline ${t}`);{const e=u(t);D(s,e),d=t}}else if(t=2**n&&(n===b?d=void 0:n++),t=l(f)}return new Uint8Array(s)}class m extends B{decodeBlock(o){return A(o).buffer}}export{m as default}; +import{B}from"./index.ed0b1304.js";const p=9,E=256,k=257,b=12;function x(c,o,r){const i=o%8,n=Math.floor(o/8),h=8-i,g=o+r-(n+1)*8;let l=8*(n+2)-(o+r);const w=(n+2)*8-o;if(l=Math.max(0,l),n>=c.length)return console.warn("ran off the end of the buffer before finding EOI_CODE (end on input code)"),k;let u=c[n]&2**(8-i)-1;u<<=r-h;let s=u;if(n+1>>l;f<<=Math.max(0,r-w),s+=f}if(g>8&&n+2>>f}return s}function D(c,o){for(let r=o.length-1;r>=0;r--)c.push(o[r]);return c}function A(c){const o=new Uint16Array(4093),r=new Uint8Array(4093);for(let e=0;e<=257;e++)o[e]=4096,r[e]=e;let i=258,n=p,h=0;function g(){i=258,n=p}function l(e){const a=x(e,h,n);return h+=n,a}function w(e,a){return r[i]=a,o[i]=e,i++,i-1}function u(e){const a=[];for(let y=e;y!==4096;y=o[y])a.push(r[y]);return a}const s=[];g();const f=new Uint8Array(c);let t=l(f),d;for(;t!==k;){if(t===E){for(g(),t=l(f);t===E;)t=l(f);if(t===k)break;if(t>E)throw new Error(`corrupted code at scanline ${t}`);{const e=u(t);D(s,e),d=t}}else if(t=2**n&&(n===b?d=void 0:n++),t=l(f)}return new Uint8Array(s)}class m extends B{decodeBlock(o){return A(o).buffer}}export{m as default}; diff --git a/assets/packbits.ba6d8eef.js b/assets/packbits.14d99599.js similarity index 81% rename from assets/packbits.ba6d8eef.js rename to assets/packbits.14d99599.js index e06a2ec2e..6106c2aea 100644 --- a/assets/packbits.ba6d8eef.js +++ b/assets/packbits.14d99599.js @@ -1 +1 @@ -import{B as c}from"./index.66be1e2e.js";class l extends c{decodeBlock(s){const n=new DataView(s),r=[];for(let e=0;e AVIVATOR - +