Skip to content

public/client/main.js

4517 lines · 1.7 MB · JavaScript
Raw
var KG=Object.create;var oI=Object.defineProperty;var ZG=Object.getOwnPropertyDescriptor;var $G=Object.getOwnPropertyNames;var JG=Object.getPrototypeOf,e9=Object.prototype.hasOwnProperty;var Da=(n,e)=>()=>(n&&(e=n(n=0)),e);var to=(n,e)=>()=>(e||n((e={exports:{}}).exports,e),e.exports),pu=(n,e)=>{for(var t in e)oI(n,t,{get:e[t],enumerable:!0})},t9=(n,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of $G(e))!e9.call(n,r)&&r!==t&&oI(n,r,{get:()=>e[r],enumerable:!(i=ZG(e,r))||i.enumerable});return n};var ci=(n,e,t)=>(t=n!=null?KG(JG(n)):{},t9(e||!n||!n.__esModule?oI(t,"default",{value:n,enumerable:!0}):t,n));var fP=to(Ln=>{"use strict";var cI=Symbol.for("react.transitional.element"),n9=Symbol.for("react.portal"),i9=Symbol.for("react.fragment"),r9=Symbol.for("react.strict_mode"),a9=Symbol.for("react.profiler"),s9=Symbol.for("react.consumer"),o9=Symbol.for("react.context"),l9=Symbol.for("react.forward_ref"),u9=Symbol.for("react.suspense"),c9=Symbol.for("react.memo"),iP=Symbol.for("react.lazy"),f9=Symbol.for("react.activity"),d9=Symbol.for("react.view_transition"),JF=Symbol.iterator;function h9(n){return n===null||typeof n!="object"?null:(n=JF&&n[JF]||n["@@iterator"],typeof n=="function"?n:null)}var rP={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},aP=Object.assign,sP={};function Nv(n,e,t){this.props=n,this.context=e,this.refs=sP,this.updater=t||rP}Nv.prototype.isReactComponent={};Nv.prototype.setState=function(n,e){if(typeof n!="object"&&typeof n!="function"&&n!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,n,e,"setState")};Nv.prototype.forceUpdate=function(n){this.updater.enqueueForceUpdate(this,n,"forceUpdate")};function oP(){}oP.prototype=Nv.prototype;function fI(n,e,t){this.props=n,this.context=e,this.refs=sP,this.updater=t||rP}var dI=fI.prototype=new oP;dI.constructor=fI;aP(dI,Nv.prototype);dI.isPureReactComponent=!0;var eP=Array.isArray;function uI(){}var Yi={H:null,A:null,T:null,S:null},lP=Object.prototype.hasOwnProperty;function hI(n,e,t){var i=t.ref;return{$$typeof:cI,type:n,key:e,ref:i!==void 0?i:null,props:t}}function p9(n,e){return hI(n.type,e,n.props)}function pI(n){return typeof n=="object"&&n!==null&&n.$$typeof===cI}function m9(n){var e={"=":"=0",":":"=2"};return"$"+n.replace(/[=:]/g,function(t){return e[t]})}var tP=/\/+/g;function lI(n,e){return typeof n=="object"&&n!==null&&n.key!=null?m9(""+n.key):e.toString(36)}function _9(n){switch(n.status){case"fulfilled":return n.value;case"rejected":throw n.reason;default:switch(typeof n.status=="string"?n.then(uI,uI):(n.status="pending",n.then(function(e){n.status==="pending"&&(n.status="fulfilled",n.value=e)},function(e){n.status==="pending"&&(n.status="rejected",n.reason=e)})),n.status){case"fulfilled":return n.value;case"rejected":throw n.reason}}throw n}function Lv(n,e,t,i,r){var a=typeof n;(a==="undefined"||a==="boolean")&&(n=null);var s=!1;if(n===null)s=!0;else switch(a){case"bigint":case"string":case"number":s=!0;break;case"object":switch(n.$$typeof){case cI:case n9:s=!0;break;case iP:return s=n._init,Lv(s(n._payload),e,t,i,r)}}if(s)return r=r(n),s=i===""?"."+lI(n,0):i,eP(r)?(t="",s!=null&&(t=s.replace(tP,"$&/")+"/"),Lv(r,e,t,"",function(f){return f})):r!=null&&(pI(r)&&(r=p9(r,t+(r.key==null||n&&n.key===r.key?"":(""+r.key).replace(tP,"$&/")+"/")+s)),e.push(r)),1;s=0;var l=i===""?".":i+":";if(eP(n))for(var c=0;c<n.length;c++)i=n[c],a=l+lI(i,c),s+=Lv(i,e,t,a,r);else if(c=h9(n),typeof c=="function")for(n=c.call(n),c=0;!(i=n.next()).done;)i=i.value,a=l+lI(i,c++),s+=Lv(i,e,t,a,r);else if(a==="object"){if(typeof n.then=="function")return Lv(_9(n),e,t,i,r);throw e=String(n),Error("Objects are not valid as a React child (found: "+(e==="[object Object]"?"object with keys {"+Object.keys(n).join(", ")+"}":e)+"). If you meant to render a collection of children, use an array instead.")}return s}function a3(n,e,t){if(n==null)return n;var i=[],r=0;return Lv(n,i,"","",function(a){return e.call(t,a,r++)}),i}function g9(n){if(n._status===-1){var e=n._result,t=e();t.then(function(i){(n._status===0||n._status===-1)&&(n._status=1,n._result=i,t.status===void 0&&(t.status="fulfilled",t.value=i))},function(i){(n._status===0||n._status===-1)&&(n._status=2,n._result=i,t.status===void 0&&(t.status="rejected",t.reason=i))}),n._status===-1&&(n._status=0,n._result=t)}if(n._status===1)return n._result.default;throw n._result}var nP=typeof reportError=="function"?reportError:function(n){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var e=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof n=="object"&&n!==null&&typeof n.message=="string"?String(n.message):String(n),error:n});if(!window.dispatchEvent(e))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",n);return}console.error(n)};function uP(n){var e=Yi.T,t={};t.types=e!==null?e.types:null,Yi.T=t;try{var i=n(),r=Yi.S;r!==null&&r(t,i),typeof i=="object"&&i!==null&&typeof i.then=="function"&&i.then(uI,nP)}catch(a){nP(a)}finally{e!==null&&t.types!==null&&(e.types=t.types),Yi.T=e}}function cP(n){var e=Yi.T;if(e!==null){var t=e.types;t===null?e.types=[n]:t.indexOf(n)===-1&&t.push(n)}else uP(cP.bind(null,n))}var v9={map:a3,forEach:function(n,e,t){a3(n,function(){e.apply(this,arguments)},t)},count:function(n){var e=0;return a3(n,function(){e++}),e},toArray:function(n){return a3(n,function(e){return e})||[]},only:function(n){if(!pI(n))throw Error("React.Children.only expected to receive a single React element child.");return n}};Ln.Activity=f9;Ln.Children=v9;Ln.Component=Nv;Ln.Fragment=i9;Ln.Profiler=a9;Ln.PureComponent=fI;Ln.StrictMode=r9;Ln.Suspense=u9;Ln.ViewTransition=d9;Ln.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=Yi;Ln.__COMPILER_RUNTIME={__proto__:null,c:function(n){return Yi.H.useMemoCache(n)}};Ln.addTransitionType=cP;Ln.cache=function(n){return function(){return n.apply(null,arguments)}};Ln.cacheSignal=function(){return null};Ln.cloneElement=function(n,e,t){if(n==null)throw Error("The argument must be a React element, but you passed "+n+".");var i=aP({},n.props),r=n.key;if(e!=null)for(a in e.key!==void 0&&(r=""+e.key),e)!lP.call(e,a)||a==="key"||a==="__self"||a==="__source"||a==="ref"&&e.ref===void 0||(i[a]=e[a]);var a=arguments.length-2;if(a===1)i.children=t;else if(1<a){for(var s=Array(a),l=0;l<a;l++)s[l]=arguments[l+2];i.children=s}return hI(n.type,r,i)};Ln.createContext=function(n){return n={$$typeof:o9,_currentValue:n,_currentValue2:n,_threadCount:0,Provider:null,Consumer:null},n.Provider=n,n.Consumer={$$typeof:s9,_context:n},n};Ln.createElement=function(n,e,t){var i,r={},a=null;if(e!=null)for(i in e.key!==void 0&&(a=""+e.key),e)lP.call(e,i)&&i!=="key"&&i!=="__self"&&i!=="__source"&&(r[i]=e[i]);var s=arguments.length-2;if(s===1)r.children=t;else if(1<s){for(var l=Array(s),c=0;c<s;c++)l[c]=arguments[c+2];r.children=l}if(n&&n.defaultProps)for(i in s=n.defaultProps,s)r[i]===void 0&&(r[i]=s[i]);return hI(n,a,r)};Ln.createRef=function(){return{current:null}};Ln.forwardRef=function(n){return{$$typeof:l9,render:n}};Ln.isValidElement=pI;Ln.lazy=function(n){return{$$typeof:iP,_payload:{_status:-1,_result:n},_init:g9}};Ln.memo=function(n,e){return{$$typeof:c9,type:n,compare:e===void 0?null:e}};Ln.startTransition=uP;Ln.unstable_useCacheRefresh=function(){return Yi.H.useCacheRefresh()};Ln.use=function(n){return Yi.H.use(n)};Ln.useActionState=function(n,e,t){return Yi.H.useActionState(n,e,t)};Ln.useCallback=function(n,e){return Yi.H.useCallback(n,e)};Ln.useContext=function(n){return Yi.H.useContext(n)};Ln.useDebugValue=function(){};Ln.useDeferredValue=function(n,e){return Yi.H.useDeferredValue(n,e)};Ln.useEffect=function(n,e){return Yi.H.useEffect(n,e)};Ln.useEffectEvent=function(n){return Yi.H.useEffectEvent(n)};Ln.useId=function(){return Yi.H.useId()};Ln.useImperativeHandle=function(n,e,t){return Yi.H.useImperativeHandle(n,e,t)};Ln.useInsertionEffect=function(n,e){return Yi.H.useInsertionEffect(n,e)};Ln.useLayoutEffect=function(n,e){return Yi.H.useLayoutEffect(n,e)};Ln.useMemo=function(n,e){return Yi.H.useMemo(n,e)};Ln.useOptimistic=function(n,e){return Yi.H.useOptimistic(n,e)};Ln.useReducer=function(n,e,t){return Yi.H.useReducer(n,e,t)};Ln.useRef=function(n){return Yi.H.useRef(n)};Ln.useState=function(n){return Yi.H.useState(n)};Ln.useSyncExternalStore=function(n,e,t){return Yi.H.useSyncExternalStore(n,e,t)};Ln.useTransition=function(){return Yi.H.useTransition()};Ln.version="19.3.0"});var tr=to((lie,dP)=>{"use strict";dP.exports=fP()});var IP=to(ir=>{"use strict";function xI(n,e){var t=n.length;n.push(e);e:for(;0<t;){var i=t-1>>>1,r=n[i];if(0<v3(r,e))n[i]=e,n[t]=r,t=i;else break e}}function Ec(n){return n.length===0?null:n[0]}function b3(n){if(n.length===0)return null;var e=n[0],t=n.pop();if(t!==e){n[0]=t;e:for(var i=0,r=n.length,a=r>>>1;i<a;){var s=2*(i+1)-1,l=n[s],c=s+1,f=n[c];if(0>v3(l,t))c<r&&0>v3(f,l)?(n[i]=f,n[c]=t,i=c):(n[i]=l,n[s]=t,i=s);else if(c<r&&0>v3(f,t))n[i]=f,n[c]=t,i=c;else break e}}return e}function v3(n,e){var t=n.sortIndex-e.sortIndex;return t!==0?t:n.id-e.id}ir.unstable_now=void 0;typeof performance=="object"&&typeof performance.now=="function"?(SP=performance,ir.unstable_now=function(){return SP.now()}):(SI=Date,EP=SI.now(),ir.unstable_now=function(){return SI.now()-EP});var SP,SI,EP,yf=[],Yd=[],O9=1,Pl=null,Ja=3,TI=!1,sE=!1,oE=!1,MI=!1,TP=typeof setTimeout=="function"?setTimeout:null,MP=typeof clearTimeout=="function"?clearTimeout:null,wP=typeof setImmediate<"u"?setImmediate:null;function y3(n){for(var e=Ec(Yd);e!==null;){if(e.callback===null)b3(Yd);else if(e.startTime<=n)b3(Yd),e.sortIndex=e.expirationTime,xI(yf,e);else break;e=Ec(Yd)}}function AI(n){if(oE=!1,y3(n),!sE)if(Ec(yf)!==null)sE=!0,Bv||(Bv=!0,qv());else{var e=Ec(Yd);e!==null&&CI(AI,e.startTime-n)}}var Bv=!1,lE=-1,AP=5,CP=-1;function RP(){return MI?!0:!(ir.unstable_now()-CP<AP)}function EI(){if(MI=!1,Bv){var n=ir.unstable_now();CP=n;var e=!0;try{e:{sE=!1,oE&&(oE=!1,MP(lE),lE=-1),TI=!0;var t=Ja;try{t:{for(y3(n),Pl=Ec(yf);Pl!==null&&!(Pl.expirationTime>n&&RP());){var i=Pl.callback;if(typeof i=="function"){Pl.callback=null,Ja=Pl.priorityLevel;var r=i(Pl.expirationTime<=n);if(n=ir.unstable_now(),typeof r=="function"){Pl.callback=r,y3(n),e=!0;break t}Pl===Ec(yf)&&b3(yf),y3(n)}else b3(yf);Pl=Ec(yf)}if(Pl!==null)e=!0;else{var a=Ec(Yd);a!==null&&CI(AI,a.startTime-n),e=!1}}break e}finally{Pl=null,Ja=t,TI=!1}e=void 0}}finally{e?qv():Bv=!1}}}var qv;typeof wP=="function"?qv=function(){wP(EI)}:typeof MessageChannel<"u"?(wI=new MessageChannel,xP=wI.port2,wI.port1.onmessage=EI,qv=function(){xP.postMessage(null)}):qv=function(){TP(EI,0)};var wI,xP;function CI(n,e){lE=TP(function(){n(ir.unstable_now())},e)}ir.unstable_IdlePriority=5;ir.unstable_ImmediatePriority=1;ir.unstable_LowPriority=4;ir.unstable_NormalPriority=3;ir.unstable_Profiling=null;ir.unstable_UserBlockingPriority=2;ir.unstable_cancelCallback=function(n){n.callback=null};ir.unstable_forceFrameRate=function(n){0>n||125<n?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):AP=0<n?Math.floor(1e3/n):5};ir.unstable_getCurrentPriorityLevel=function(){return Ja};ir.unstable_next=function(n){switch(Ja){case 1:case 2:case 3:var e=3;break;default:e=Ja}var t=Ja;Ja=e;try{return n()}finally{Ja=t}};ir.unstable_requestPaint=function(){MI=!0};ir.unstable_runWithPriority=function(n,e){switch(n){case 1:case 2:case 3:case 4:case 5:break;default:n=3}var t=Ja;Ja=n;try{return e()}finally{Ja=t}};ir.unstable_scheduleCallback=function(n,e,t){var i=ir.unstable_now();switch(typeof t=="object"&&t!==null?(t=t.delay,t=typeof t=="number"&&0<t?i+t:i):t=i,n){case 1:var r=-1;break;case 2:r=250;break;case 5:r=1073741823;break;case 4:r=1e4;break;default:r=5e3}return r=t+r,n={id:O9++,callback:e,priorityLevel:n,startTime:t,expirationTime:r,sortIndex:-1},t>i?(n.sortIndex=t,xI(Yd,n),Ec(yf)===null&&n===Ec(Yd)&&(oE?(MP(lE),lE=-1):oE=!0,CI(AI,t-i))):(n.sortIndex=r,xI(yf,n),sE||TI||(sE=!0,Bv||(Bv=!0,qv()))),n};ir.unstable_shouldYield=RP;ir.unstable_wrapCallback=function(n){var e=Ja;return function(){var t=Ja;Ja=e;try{return n.apply(this,arguments)}finally{Ja=t}}}});var S3=to((nse,LP)=>{"use strict";LP.exports=IP()});var OP=to(es=>{"use strict";var D9=tr();function kP(n){var e="https://react.dev/errors/"+n;if(1<arguments.length){e+="?args[]="+encodeURIComponent(arguments[1]);for(var t=2;t<arguments.length;t++)e+="&args[]="+encodeURIComponent(arguments[t])}return"Minified React error #"+n+"; visit "+e+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function Kd(){}var ys={d:{f:Kd,r:function(){throw Error(kP(522))},D:Kd,C:Kd,L:Kd,m:Kd,X:Kd,S:Kd,M:Kd},p:0,findDOMNode:null},F9=Symbol.for("react.portal"),P9=Symbol.for("react.recoverable"),NP=Symbol.for("react.optimistic_key");function U9(n,e,t){var i=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:F9,key:i==null?null:i===NP?NP:""+i,children:n,containerInfo:e,implementation:t}}var uE=D9.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function E3(n,e){if(n==="font")return"";if(typeof e=="string")return e==="use-credentials"?e:""}es.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=ys;es.browser=function(n){return{$$typeof:P9,_reason:n}};es.createPortal=function(n,e){var t=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11)throw Error(kP(299));return U9(n,e,null,t)};es.flushSync=function(n){var e=uE.T,t=ys.p;try{if(uE.T=null,ys.p=2,n)return n()}finally{uE.T=e,ys.p=t,ys.d.f()}};es.preconnect=function(n,e){typeof n=="string"&&(e?(e=e.crossOrigin,e=typeof e=="string"?e==="use-credentials"?e:"":void 0):e=null,ys.d.C(n,e))};es.prefetchDNS=function(n){typeof n=="string"&&ys.d.D(n)};es.preinit=function(n,e){if(typeof n=="string"&&e&&typeof e.as=="string"){var t=e.as,i=E3(t,e.crossOrigin),r=typeof e.integrity=="string"?e.integrity:void 0,a=typeof e.fetchPriority=="string"?e.fetchPriority:void 0;t==="style"?ys.d.S(n,typeof e.precedence=="string"?e.precedence:void 0,{crossOrigin:i,integrity:r,fetchPriority:a}):t==="script"&&ys.d.X(n,{crossOrigin:i,integrity:r,fetchPriority:a,nonce:typeof e.nonce=="string"?e.nonce:void 0})}};es.preinitModule=function(n,e){if(typeof n=="string")if(typeof e=="object"&&e!==null){if(e.as==null||e.as==="script"){var t=E3(e.as,e.crossOrigin);ys.d.M(n,{crossOrigin:t,integrity:typeof e.integrity=="string"?e.integrity:void 0,nonce:typeof e.nonce=="string"?e.nonce:void 0,fetchPriority:typeof e.fetchPriority=="string"?e.fetchPriority:void 0})}}else e==null&&ys.d.M(n)};es.preload=function(n,e){if(typeof n=="string"&&typeof e=="object"&&e!==null&&typeof e.as=="string"){var t=e.as,i=E3(t,e.crossOrigin);ys.d.L(n,t,{crossOrigin:i,integrity:typeof e.integrity=="string"?e.integrity:void 0,nonce:typeof e.nonce=="string"?e.nonce:void 0,type:typeof e.type=="string"?e.type:void 0,fetchPriority:typeof e.fetchPriority=="string"?e.fetchPriority:void 0,referrerPolicy:typeof e.referrerPolicy=="string"?e.referrerPolicy:void 0,imageSrcSet:typeof e.imageSrcSet=="string"?e.imageSrcSet:void 0,imageSizes:typeof e.imageSizes=="string"?e.imageSizes:void 0,media:typeof e.media=="string"?e.media:void 0})}};es.preloadModule=function(n,e){if(typeof n=="string")if(e){var t=E3(e.as,e.crossOrigin);ys.d.m(n,{as:typeof e.as=="string"&&e.as!=="script"?e.as:void 0,crossOrigin:t,integrity:typeof e.integrity=="string"?e.integrity:void 0,nonce:typeof e.nonce=="string"?e.nonce:void 0,fetchPriority:typeof e.fetchPriority=="string"?e.fetchPriority:void 0})}else ys.d.m(n)};es.requestFormReset=function(n){ys.d.r(n)};es.unstable_batchedUpdates=function(n,e){return n(e)};es.useFormState=function(n,e,t){return uE.H.useFormState(n,e,t)};es.useFormStatus=function(){return uE.H.useHostTransitionStatus()};es.version="19.3.0"});var PP=to((rse,FP)=>{"use strict";function DP(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(DP)}catch(n){console.error(n)}}DP(),FP.exports=OP()});var wB=to(iA=>{"use strict";var aa=S3(),E4=tr(),z9=PP();function ct(n){var e="https://react.dev/errors/"+n;if(1<arguments.length){e+="?args[]="+encodeURIComponent(arguments[1]);for(var t=2;t<arguments.length;t++)e+="&args[]="+encodeURIComponent(arguments[t])}return"Minified React error #"+n+"; visit "+e+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function w4(n){return!(!n||n.nodeType!==1&&n.nodeType!==9&&n.nodeType!==11)}function KE(n){for(var e=n,t=e;t&&!t.alternate;)e=t,(e.flags&4098)!==0&&(n=e.return),t=e.return;for(;e.return;)e=e.return;return e.tag===3?n:null}function x4(n){if(n.tag===13){var e=n.memoizedState;if(e===null&&(n=n.alternate,n!==null&&(e=n.memoizedState)),e!==null)return e.dehydrated}return null}function T4(n){if(n.tag===31){var e=n.memoizedState;if(e===null&&(n=n.alternate,n!==null&&(e=n.memoizedState)),e!==null)return e.dehydrated}return null}function UP(n){if(KE(n)!==n)throw Error(ct(188))}function q9(n){var e=n.alternate;if(!e){if(e=KE(n),e===null)throw Error(ct(188));return e!==n?null:n}for(var t=n,i=e;;){var r=t.return;if(r===null)break;var a=r.alternate;if(a===null){if(i=r.return,i!==null){t=i;continue}break}if(r.child===a.child){for(a=r.child;a;){if(a===t)return UP(r),n;if(a===i)return UP(r),e;a=a.sibling}throw Error(ct(188))}if(t.return!==i.return)t=r,i=a;else{for(var s=!1,l=r.child;l;){if(l===t){s=!0,t=r,i=a;break}if(l===i){s=!0,i=r,t=a;break}l=l.sibling}if(!s){for(l=a.child;l;){if(l===t){s=!0,t=a,i=r;break}if(l===i){s=!0,i=a,t=r;break}l=l.sibling}if(!s)throw Error(ct(189))}}if(t.alternate!==i)throw Error(ct(190))}if(t.tag!==3)throw Error(ct(188));return t.stateNode.current===t?n:e}function M4(n){var e=n.tag;if(e===5||e===26||e===27||e===6)return n;for(n=n.child;n!==null;){if(e=M4(n),e!==null)return e;n=n.sibling}return null}function oo(n,e,t,i,r,a){for(;n!==null;){if((n.tag===5||n.tag===27||n.tag===6)&&t(n,i,r,a)||(n.tag!==22||n.memoizedState===null)&&(e||n.tag!==5&&n.tag!==27)&&oo(n.child,e,t,i,r,a))return!0;n=n.sibling}return!1}function Bm(n){for(n=n.return;n!==null;){if(n.tag===3||n.tag===5||n.tag===27)return n;n=n.return}return null}function zP(n){var e=!1;for(n=n.return;n!==null&&(n.tag===4&&(e=!0),!(n.tag===3||n.tag===5||n.tag===27));)n=n.return;return e}function A4(n){var e=[null,null],t=Bm(n);return t===null||C4(e,n,t.child,{foundSelf:!1}),e}function C4(n,e,t,i){for(;t!==null;){if(t===e)i.foundSelf=!0;else if(t.tag===5||t.tag===27||t.tag===6){if(i.foundSelf)return n[1]=t,!0;n[0]=t}else if((t.tag!==22||t.memoizedState===null)&&C4(n,e,t.child,i))return!0;t=t.sibling}return!1}function ra(n){switch(n.tag){case 5:case 27:case 6:return n.stateNode;case 3:return n.stateNode.containerInfo;default:throw Error(ct(559))}}var Xv=null,sL=null;function B9(n,e,t){return n===t?!0:n===e?(Xv=n,!0):!1}function H9(n,e,t){return n===t?(sL=n,!1):n===e?(sL!==null&&(Xv=n),!0):!1}function qP(n){if(n===null)return null;do n=n===null?null:n.return;while(n&&n.tag!==5&&n.tag!==27&&n.tag!==3);return n||null}function oL(n,e,t){for(var i=0,r=n;r;r=t(r))i++;r=0;for(var a=e;a;a=t(a))r++;for(;0<i-r;)n=t(n),i--;for(;0<r-i;)e=t(e),r--;for(;i--;){if(n===e||e!==null&&n===e.alternate)return n;n=t(n),e=t(e)}return null}var Qi=Object.assign,V9=Symbol.for("react.element"),w3=Symbol.for("react.transitional.element"),_E=Symbol.for("react.portal"),Yv=Symbol.for("react.fragment"),R4=Symbol.for("react.strict_mode"),lL=Symbol.for("react.profiler"),I4=Symbol.for("react.consumer"),Cc=Symbol.for("react.context"),gN=Symbol.for("react.forward_ref"),uL=Symbol.for("react.suspense"),cL=Symbol.for("react.suspense_list"),vN=Symbol.for("react.memo"),eh=Symbol.for("react.lazy");Symbol.for("react.scope");var fL=Symbol.for("react.activity"),G9=Symbol.for("react.legacy_hidden");Symbol.for("react.tracing_marker");var W9=Symbol.for("react.memo_cache_sentinel"),dL=Symbol.for("react.view_transition"),j9=Symbol.for("react.recoverable"),BP=Symbol.iterator;function cE(n){return n===null||typeof n!="object"?null:(n=BP&&n[BP]||n["@@iterator"],typeof n=="function"?n:null)}var Q9=Symbol.for("react.client.reference");function hL(n){if(n==null)return null;if(typeof n=="function")return n.$$typeof===Q9?null:n.displayName||n.name||null;if(typeof n=="string")return n;switch(n){case Yv:return"Fragment";case lL:return"Profiler";case R4:return"StrictMode";case uL:return"Suspense";case cL:return"SuspenseList";case fL:return"Activity";case dL:return"ViewTransition"}if(typeof n=="object")switch(n.$$typeof){case _E:return"Portal";case Cc:return n.displayName||"Context";case I4:return(n._context.displayName||"Context")+".Consumer";case gN:var e=n.render;return n=n.displayName,n||(n=e.displayName||e.name||"",n=n!==""?"ForwardRef("+n+")":"ForwardRef"),n;case vN:return e=n.displayName||null,e!==null?e:hL(n.type)||"Memo";case eh:e=n._payload,n=n._init;try{return hL(n(e))}catch{}}return null}var gE=Array.isArray,An=E4.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,wi=z9.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,Cm={pending:!1,data:null,method:null,action:null},pL=[],Kv=-1;function Dc(n){return{current:n}}function za(n){0>Kv||(n.current=pL[Kv],pL[Kv]=null,Kv--)}function $i(n,e){Kv++,pL[Kv]=n.current,n.current=e}var Nc=Dc(null),OE=Dc(null),uh=Dc(null),uM=Dc(null);function cM(n,e){switch($i(uh,e),$i(OE,n),$i(Nc,null),e.nodeType){case 9:case 11:n=(n=e.documentElement)&&(n=n.namespaceURI)?t4(n):0;break;default:if(n=e.tagName,e=e.namespaceURI)e=t4(e),n=$q(e,n);else switch(n){case"svg":n=1;break;case"math":n=2;break;default:n=0}}za(Nc),$i(Nc,n)}function _y(){za(Nc),za(OE),za(uh)}function mL(n){var e=n.memoizedState;e!==null&&(My._currentValue=e.memoizedState,$i(uM,n)),e=Nc.current;var t=$q(e,n.type);e!==t&&($i(OE,n),$i(Nc,t))}function fM(n){OE.current===n&&(za(Nc),za(OE)),uM.current===n&&(za(uM),My._currentValue=Cm)}var RI,HP;function $d(n){if(RI===void 0)try{throw Error()}catch(t){var e=t.stack.trim().match(/\n( *(at )?)/);RI=e&&e[1]||"",HP=-1<t.stack.indexOf(`
    at`)?" (<anonymous>)":-1<t.stack.indexOf("@")?"@unknown:0:0":""}return`
`+RI+n+HP}var II=!1;function LI(n,e){if(!n||II)return"";II=!0;var t=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var i={DetermineComponentFrameRoot:function(){try{if(e){var h=function(){throw Error()};if(Object.defineProperty(h.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(h,[])}catch(E){var _=E}Reflect.construct(n,[],h)}else{try{h.call()}catch(E){_=E}h=!1;try{var g=Object.getOwnPropertyDescriptor(n.prototype,"props");Object.defineProperty(n.prototype,"props",{configurable:!0,set:function(){throw Error()}}),h=!0,new n}finally{h&&(g!==void 0?Object.defineProperty(n.prototype,"props",g):delete n.prototype.props)}}}else{try{throw Error()}catch(E){_=E}(h=n())&&typeof h.catch=="function"&&h.catch(function(){})}}catch(E){if(E&&_&&typeof E.stack=="string")return[E.stack,_.stack]}return[null,null]}};i.DetermineComponentFrameRoot.displayName="DetermineComponentFrameRoot";var r=Object.getOwnPropertyDescriptor(i.DetermineComponentFrameRoot,"name");r&&r.configurable&&Object.defineProperty(i.DetermineComponentFrameRoot,"name",{value:"DetermineComponentFrameRoot"});var a=i.DetermineComponentFrameRoot(),s=a[0],l=a[1];if(s&&l){var c=s.split(`
`),f=l.split(`
`);for(r=i=0;i<c.length&&!c[i].includes("DetermineComponentFrameRoot");)i++;for(;r<f.length&&!f[r].includes("DetermineComponentFrameRoot");)r++;if(i===c.length||r===f.length)for(i=c.length-1,r=f.length-1;1<=i&&0<=r&&c[i]!==f[r];)r--;for(;1<=i&&0<=r;i--,r--)if(c[i]!==f[r]){if(i!==1||r!==1)do if(i--,r--,0>r||c[i]!==f[r]){var p=`
`+c[i].replace(" at new "," at ");return n.displayName&&p.includes("<anonymous>")&&(p=p.replace("<anonymous>",n.displayName)),p}while(1<=i&&0<=r);break}}}finally{II=!1,Error.prepareStackTrace=t}return(t=n?n.displayName||n.name:"")?$d(t):""}function X9(n,e){switch(n.tag){case 26:case 27:case 5:return $d(n.type);case 16:return $d("Lazy");case 13:return n.child!==e&&e!==null?$d("Suspense Fallback"):$d("Suspense");case 19:return $d("SuspenseList");case 0:case 15:return LI(n.type,!1);case 11:return LI(n.type.render,!1);case 1:return LI(n.type,!0);case 31:return $d("Activity");case 30:return $d("ViewTransition");default:return""}}function VP(n){try{var e="",t=null;do e+=X9(n,t),t=n,n=n.return;while(n);return e}catch(i){return`
Error generating stack: `+i.message+`
`+i.stack}}var _L=Object.prototype.hasOwnProperty,yN=aa.unstable_scheduleCallback,NI=aa.unstable_cancelCallback,Y9=aa.unstable_shouldYield,K9=aa.unstable_requestPaint,jo=aa.unstable_now,Z9=aa.unstable_getCurrentPriorityLevel,L4=aa.unstable_ImmediatePriority,N4=aa.unstable_UserBlockingPriority,dM=aa.unstable_NormalPriority,$9=aa.unstable_LowPriority,k4=aa.unstable_IdlePriority,J9=aa.log,e7=aa.unstable_setDisableYieldValue,ZE=null,Qo=null;function ih(n){if(typeof J9=="function"&&e7(n),Qo&&typeof Qo.setStrictMode=="function")try{Qo.setStrictMode(ZE,n)}catch{}}var Xo=Math.clz32?Math.clz32:i7,t7=Math.log,n7=Math.LN2;function i7(n){return n>>>=0,n===0?32:31-(t7(n)/n7|0)|0}var x3=256,T3=262144,M3=4194304;function wm(n){var e=n&42;if(e!==0)return e;switch(n&-n){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return n&-n;case 262144:case 524288:case 1048576:case 2097152:return n&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return n&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return n}}function UM(n,e,t){var i=n.pendingLanes;if(i===0)return 0;var r=0,a=n.suspendedLanes,s=n.pingedLanes;n=n.warmLanes;var l=i&134217727;return l!==0?(i=l&~a,i!==0?r=wm(i):(s&=l,s!==0?r=wm(s):t||(t=l&~n,t!==0&&(r=wm(t))))):(l=i&~a,l!==0?r=wm(l):s!==0?r=wm(s):t||(t=i&~n,t!==0&&(r=wm(t)))),r===0?0:e!==0&&e!==r&&(e&a)===0&&(a=r&-r,t=e&-e,a>=t||a===32&&(t&4194048)!==0)?e:r}function $E(n,e){return(n.pendingLanes&~(n.suspendedLanes&~n.pingedLanes)&e)===0}function O4(n,e){(e&8)!==0&&(e|=e&32);var t=n.entangledLanes;if(t!==0)for(n=n.entanglements,t&=e;0<t;){var i=31-Xo(t),r=1<<i;e|=n[i],t&=~r}return e}function r7(n,e){switch(n){case 1:case 2:case 4:case 8:case 64:return e+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function D4(){var n=M3;return M3<<=1,(M3&62914560)===0&&(M3=4194304),n}function kI(n){for(var e=[],t=0;31>t;t++)e.push(n);return e}function JE(n,e){n.pendingLanes|=e,e!==268435456&&(n.suspendedLanes=0,n.pingedLanes=0,n.warmLanes=0)}function a7(n,e,t,i,r,a){var s=n.pendingLanes;n.pendingLanes=t,n.suspendedLanes=0,n.pingedLanes=0,n.warmLanes=0,n.expiredLanes&=t,n.entangledLanes&=t,n.errorRecoveryDisabledLanes&=t,n.shellSuspendCounter=0;var l=n.entanglements,c=n.expirationTimes,f=n.hiddenUpdates;for(t=s&~t;0<t;){var p=31-Xo(t),h=1<<p;l[p]=0,c[p]=-1;var _=f[p];if(_!==null)for(f[p]=null,p=0;p<_.length;p++){var g=_[p];g!==null&&(g.lane&=-536870913)}t&=~h}i!==0&&F4(n,i,0),a!==0&&r===0&&n.tag!==0&&(n.suspendedLanes|=a&~(s&~e))}function F4(n,e,t){n.pendingLanes|=e,n.suspendedLanes&=~e;var i=31-Xo(e);n.entangledLanes|=e,n.entanglements[i]=n.entanglements[i]|1073741824|t&261930}function P4(n,e){var t=n.entangledLanes|=e;for(n=n.entanglements;t;){var i=31-Xo(t),r=1<<i;r&e|n[i]&e&&(n[i]|=e),t&=~r}}function U4(n,e){var t=e&-e;return t=(t&42)!==0?1:bN(t),(t&(n.suspendedLanes|e))!==0?0:t}function bN(n){switch(n){case 2:n=1;break;case 8:n=4;break;case 32:n=16;break;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:n=128;break;case 268435456:n=134217728;break;default:n=0}return n}function SN(n){return n&=-n,2<n?8<n?(n&134217727)!==0?32:268435456:8:2}function z4(){var n=wi.p;return n!==0?n:(n=window.event,n===void 0?32:bB(n.type))}function GP(n,e){var t=wi.p;try{return wi.p=n,e()}finally{wi.p=t}}var Nf=Math.random().toString(36).slice(2),Pa="__reactFiber$"+Nf,lo="__reactProps$"+Nf,Ry="__reactContainer$"+Nf,WP="__reactEvents$"+Nf,s7="__reactListeners$"+Nf,o7="__reactHandles$"+Nf,jP="__reactResources$"+Nf,ew="__reactMarker$"+Nf,hM="__reactLoad$"+Nf;function zM(n){delete n[Pa],delete n[lo],delete n[s7],delete n[o7]}function Mm(n){var e;if(e=n[Pa])return e;for(var t=n.parentNode;t;){if(e=t[Ry]||t[Pa]){if(t=e.alternate,e.child!==null||t!==null&&t.child!==null)for(n=u4(n);n!==null;){if(t=n[Pa])return t;n=u4(n)}return e}n=t,t=n.parentNode}return null}function Iy(n){if(n=n[Pa]||n[Ry]){var e=n.tag;if(e===5||e===6||e===13||e===31||e===26||e===27||e===3)return n}return null}function vE(n){var e=n.tag;if(e===5||e===26||e===27||e===6)return n.stateNode;throw Error(ct(33))}function sy(n){var e=n[jP];return e||(e=n[jP]={hoistableStyles:new Map,hoistableScripts:new Map}),e}function ba(n){n[ew]=!0}function q4(n){n[hM]=void 0}var B4=new Set,H4={};function Hm(n,e){gy(n,e),gy(n+"Capture",e)}function gy(n,e){for(H4[n]=e,n=0;n<e.length;n++)B4.add(e[n])}var l7=RegExp("^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$"),QP={},XP={};function u7(n){return _L.call(XP,n)?!0:_L.call(QP,n)?!1:l7.test(n)?XP[n]=!0:(QP[n]=!0,!1)}var Si=!1;function YP(){var n=Si;return Si=!1,n}function G3(n,e,t){if(u7(e))if(t===null)n.removeAttribute(e);else{switch(typeof t){case"undefined":case"function":case"symbol":n.removeAttribute(e);return;case"boolean":var i=e.toLowerCase().slice(0,5);if(i!=="data-"&&i!=="aria-"){n.removeAttribute(e);return}}n.setAttribute(e,t)}}function A3(n,e,t){if(t===null)n.removeAttribute(e);else{switch(typeof t){case"undefined":case"function":case"symbol":case"boolean":n.removeAttribute(e);return}n.setAttribute(e,t)}}function bf(n,e,t,i){if(i===null)n.removeAttribute(t);else{switch(typeof i){case"undefined":case"function":case"symbol":case"boolean":n.removeAttribute(t);return}n.setAttributeNS(e,t,i)}}function Ho(n){switch(typeof n){case"bigint":case"boolean":case"number":case"string":case"undefined":return n;case"object":return n;default:return""}}function V4(n){var e=n.type;return(n=n.nodeName)&&n.toLowerCase()==="input"&&(e==="checkbox"||e==="radio")}function c7(n,e,t){var i=Object.getOwnPropertyDescriptor(n.constructor.prototype,e);if(!n.hasOwnProperty(e)&&typeof i<"u"&&typeof i.get=="function"&&typeof i.set=="function"){var r=i.get,a=i.set;return Object.defineProperty(n,e,{configurable:!0,get:function(){return r.call(this)},set:function(s){t=""+s,a.call(this,s)}}),Object.defineProperty(n,e,{enumerable:i.enumerable}),{getValue:function(){return t},setValue:function(s){t=""+s},stopTracking:function(){n._valueTracker=null,delete n[e]}}}}function gL(n){if(!n._valueTracker){var e=V4(n)?"checked":"value";n._valueTracker=c7(n,e,""+n[e])}}function G4(n){if(!n)return!1;var e=n._valueTracker;if(!e)return!0;var t=e.getValue(),i="";return n&&(i=V4(n)?n.checked?"true":"false":n.value),n=i,n!==t?(e.setValue(n),!0):!1}var f7=/[\n"\\]/g;function Hl(n){return n.replace(f7,function(e){return"\\"+e.charCodeAt(0).toString(16)+" "})}function vL(n,e,t,i,r,a,s,l){n.name="",s!=null&&typeof s!="function"&&typeof s!="symbol"&&typeof s!="boolean"?n.type=s:n.removeAttribute("type"),e!=null?s==="number"?(e===0&&n.value===""||n.value!=e)&&(n.value=""+Ho(e)):n.value!==""+Ho(e)&&(n.value=""+Ho(e)):s!=="submit"&&s!=="reset"||n.removeAttribute("value"),e!=null?s==="number"&&n.value==e?OI(n,Ho(n.value)):OI(n,Ho(e)):t!=null?OI(n,Ho(t)):i!=null&&n.removeAttribute("value"),r==null&&a!=null&&(n.defaultChecked=!!a),r!=null&&(n.checked=r&&typeof r!="function"&&typeof r!="symbol"),l!=null&&typeof l!="function"&&typeof l!="symbol"&&typeof l!="boolean"?n.name=""+Ho(l):n.removeAttribute("name")}function W4(n,e,t,i,r,a,s,l){if(a!=null&&typeof a!="function"&&typeof a!="symbol"&&typeof a!="boolean"&&(n.type=a),e!=null||t!=null){if(!(a!=="submit"&&a!=="reset"||e!=null)){gL(n);return}t=t!=null?""+Ho(t):"",e=e!=null?""+Ho(e):t,l||e===n.value||(n.value=e),n.defaultValue=e}i=i??r,i=typeof i!="function"&&typeof i!="symbol"&&!!i,n.checked=l?n.checked:!!i,n.defaultChecked=!!i,s!=null&&typeof s!="function"&&typeof s!="symbol"&&typeof s!="boolean"&&(n.name=s),gL(n)}function OI(n,e){n.defaultValue!==""+e&&(n.defaultValue=""+e)}function oy(n,e,t,i){if(n=n.options,e){e={};for(var r=0;r<t.length;r++)e["$"+t[r]]=!0;for(t=0;t<n.length;t++)r=e.hasOwnProperty("$"+n[t].value),n[t].selected!==r&&(n[t].selected=r),r&&i&&(n[t].defaultSelected=!0)}else{for(t=""+Ho(t),e=null,r=0;r<n.length;r++){if(n[r].value===t){n[r].selected=!0,i&&(n[r].defaultSelected=!0);return}e!==null||n[r].disabled||(e=n[r])}e!==null&&(e.selected=!0)}}function j4(n,e,t){if(e!=null&&(e=""+Ho(e),e!==n.value&&(n.value=e),t==null)){n.defaultValue!==e&&(n.defaultValue=e);return}n.defaultValue=t!=null?""+Ho(t):""}function Q4(n,e,t,i){if(e==null){if(i!=null){if(t!=null)throw Error(ct(92));if(gE(i)){if(1<i.length)throw Error(ct(93));i=i[0]}t=i}t==null&&(t=""),e=t}t=Ho(e),n.defaultValue=t,i=n.textContent,i===t&&i!==""&&i!==null&&(n.value=i),gL(n)}function vy(n,e){if(e){var t=n.firstChild;if(t&&t===n.lastChild&&t.nodeType===3){t.nodeValue=e;return}}n.textContent=e}var d7=new Set("animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp".split(" "));function KP(n,e,t){var i=e.indexOf("--")===0;t==null||typeof t=="boolean"||t===""?i?n.setProperty(e,""):e==="float"?n.cssFloat="":n[e]="":i?n.setProperty(e,t):typeof t!="number"||t===0||d7.has(e)?e==="float"?n.cssFloat=t:n[e]=(""+t).trim():n[e]=t+"px"}function X4(n,e,t){if(e!=null&&typeof e!="object")throw Error(ct(62));if(n=n.style,t!=null){for(var i in t)!t.hasOwnProperty(i)||e!=null&&e.hasOwnProperty(i)||(i.indexOf("--")===0?n.setProperty(i,""):i==="float"?n.cssFloat="":n[i]="",Si=!0);for(var r in e)i=e[r],e.hasOwnProperty(r)&&t[r]!==i&&(KP(n,r,i),Si=!0)}else for(var a in e)e.hasOwnProperty(a)&&KP(n,a,e[a])}function EN(n){if(n.indexOf("-")===-1)return!1;switch(n){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}}var h7=new Map([["acceptCharset","accept-charset"],["htmlFor","for"],["httpEquiv","http-equiv"],["crossOrigin","crossorigin"],["accentHeight","accent-height"],["alignmentBaseline","alignment-baseline"],["arabicForm","arabic-form"],["baselineShift","baseline-shift"],["capHeight","cap-height"],["clipPath","clip-path"],["clipRule","clip-rule"],["colorInterpolation","color-interpolation"],["colorInterpolationFilters","color-interpolation-filters"],["colorProfile","color-profile"],["colorRendering","color-rendering"],["dominantBaseline","dominant-baseline"],["enableBackground","enable-background"],["fillOpacity","fill-opacity"],["fillRule","fill-rule"],["floodColor","flood-color"],["floodOpacity","flood-opacity"],["fontFamily","font-family"],["fontSize","font-size"],["fontSizeAdjust","font-size-adjust"],["fontStretch","font-stretch"],["fontStyle","font-style"],["fontVariant","font-variant"],["fontWeight","font-weight"],["glyphName","glyph-name"],["glyphOrientationHorizontal","glyph-orientation-horizontal"],["glyphOrientationVertical","glyph-orientation-vertical"],["horizAdvX","horiz-adv-x"],["horizOriginX","horiz-origin-x"],["imageRendering","image-rendering"],["letterSpacing","letter-spacing"],["lightingColor","lighting-color"],["markerEnd","marker-end"],["markerMid","marker-mid"],["markerStart","marker-start"],["maskType","mask-type"],["overlinePosition","overline-position"],["overlineThickness","overline-thickness"],["paintOrder","paint-order"],["panose-1","panose-1"],["pointerEvents","pointer-events"],["renderingIntent","rendering-intent"],["shapeRendering","shape-rendering"],["stopColor","stop-color"],["stopOpacity","stop-opacity"],["strikethroughPosition","strikethrough-position"],["strikethroughThickness","strikethrough-thickness"],["strokeDasharray","stroke-dasharray"],["strokeDashoffset","stroke-dashoffset"],["strokeLinecap","stroke-linecap"],["strokeLinejoin","stroke-linejoin"],["strokeMiterlimit","stroke-miterlimit"],["strokeOpacity","stroke-opacity"],["strokeWidth","stroke-width"],["textAnchor","text-anchor"],["textDecoration","text-decoration"],["textRendering","text-rendering"],["transformOrigin","transform-origin"],["underlinePosition","underline-position"],["underlineThickness","underline-thickness"],["unicodeBidi","unicode-bidi"],["unicodeRange","unicode-range"],["unitsPerEm","units-per-em"],["vAlphabetic","v-alphabetic"],["vHanging","v-hanging"],["vIdeographic","v-ideographic"],["vMathematical","v-mathematical"],["vectorEffect","vector-effect"],["vertAdvY","vert-adv-y"],["vertOriginX","vert-origin-x"],["vertOriginY","vert-origin-y"],["wordSpacing","word-spacing"],["writingMode","writing-mode"],["xmlnsXlink","xmlns:xlink"],["xHeight","x-height"]]),p7=/^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*:/i;function W3(n){return p7.test(""+n)?"javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')":n}function Rc(){}var yL=null;function wN(n){return n=n.target||n.srcElement||window,n.correspondingUseElement&&(n=n.correspondingUseElement),n.nodeType===3?n.parentNode:n}var Zv=null,ly=null;function ZP(n){var e=Iy(n);if(e&&(n=e.stateNode)){var t=n[lo]||null;e:switch(n=e.stateNode,e.type){case"input":if(vL(n,t.value,t.defaultValue,t.defaultValue,t.checked,t.defaultChecked,t.type,t.name),e=t.name,t.type==="radio"&&e!=null){for(t=n;t.parentNode;)t=t.parentNode;for(t=t.querySelectorAll('input[name="'+Hl(""+e)+'"][type="radio"]'),e=0;e<t.length;e++){var i=t[e];if(i!==n&&i.form===n.form){var r=i[lo]||null;if(!r)throw Error(ct(90));vL(i,r.value,r.defaultValue,r.defaultValue,r.checked,r.defaultChecked,r.type,r.name)}}for(e=0;e<t.length;e++)i=t[e],i.form===n.form&&G4(i)}break e;case"textarea":j4(n,t.value,t.defaultValue);break e;case"select":e=t.value,e!=null&&oy(n,!!t.multiple,e,!1)}}}var DI=!1;function Y4(n,e,t){if(DI)return n(e,t);DI=!0;try{var i=n(e);return i}finally{if(DI=!1,(Zv!==null||ly!==null)&&(JM(),Zv&&(e=Zv,n=ly,ly=Zv=null,ZP(e),n)))for(e=0;e<n.length;e++)ZP(n[e])}}function DE(n,e){var t=n.stateNode;if(t===null)return null;var i=t[lo]||null;if(i===null)return null;t=i[e];e:switch(e){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(i=!i.disabled)||(n=n.type,i=!(n==="button"||n==="input"||n==="select"||n==="textarea")),n=!i;break e;default:n=!1}if(n)return null;if(t&&typeof t!="function")throw Error(ct(231,e,typeof t));return t}var Mf=!(typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),bL=!1;if(Mf)try{Hv={},Object.defineProperty(Hv,"passive",{get:function(){bL=!0}}),window.addEventListener("test",Hv,Hv),window.removeEventListener("test",Hv,Hv)}catch{bL=!1}var Hv,rh=null,xN=null,j3=null;function K4(){if(j3)return j3;var n,e=xN,t=e.length,i,r="value"in rh?rh.value:rh.textContent,a=r.length;for(n=0;n<t&&e[n]===r[n];n++);var s=t-n;for(i=1;i<=s&&e[t-i]===r[a-i];i++);return j3=r.slice(n,1<i?1-i:void 0)}function Q3(n){var e=n.keyCode;return"charCode"in n?(n=n.charCode,n===0&&e===13&&(n=13)):n=e,n===10&&(n=13),32<=n||n===13?n:0}function C3(){return!0}function $P(){return!1}function ws(n){function e(t,i,r,a,s){this._reactName=t,this._targetInst=r,this.type=i,this.nativeEvent=a,this.target=s,this.currentTarget=null;for(var l in n)n.hasOwnProperty(l)&&(t=n[l],this[l]=t?t(a):a[l]);return this.isDefaultPrevented=(a.defaultPrevented!=null?a.defaultPrevented:a.returnValue===!1)?C3:$P,this.isPropagationStopped=$P,this}return Qi(e.prototype,{preventDefault:function(){this.defaultPrevented=!0;var t=this.nativeEvent;t&&(t.preventDefault?t.preventDefault():typeof t.returnValue!="unknown"&&(t.returnValue=!1),this.isDefaultPrevented=C3)},stopPropagation:function(){var t=this.nativeEvent;t&&(t.stopPropagation?t.stopPropagation():typeof t.cancelBubble!="unknown"&&(t.cancelBubble=!0),this.isPropagationStopped=C3)},persist:function(){},isPersistent:C3}),e}var xh={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(n){return n.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},qM=ws(xh),tw=Qi({},xh,{view:0,detail:0}),m7=ws(tw),FI,PI,fE,BM=Qi({},tw,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:TN,button:0,buttons:0,relatedTarget:function(n){return n.relatedTarget===void 0?n.fromElement===n.srcElement?n.toElement:n.fromElement:n.relatedTarget},movementX:function(n){return"movementX"in n?n.movementX:(n!==fE&&(fE&&n.type==="mousemove"?(FI=n.screenX-fE.screenX,PI=n.screenY-fE.screenY):PI=FI=0,fE=n),FI)},movementY:function(n){return"movementY"in n?n.movementY:PI}}),JP=ws(BM),_7=Qi({},BM,{dataTransfer:0}),g7=ws(_7),v7=Qi({},tw,{relatedTarget:0}),UI=ws(v7),y7=Qi({},xh,{animationName:0,elapsedTime:0,pseudoElement:0}),b7=ws(y7),S7=Qi({},xh,{clipboardData:function(n){return"clipboardData"in n?n.clipboardData:window.clipboardData}}),E7=ws(S7),w7=Qi({},xh,{data:0}),eU=ws(w7),x7={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},T7={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},M7={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function A7(n){var e=this.nativeEvent;return e.getModifierState?e.getModifierState(n):(n=M7[n])?!!e[n]:!1}function TN(){return A7}var C7=Qi({},tw,{key:function(n){if(n.key){var e=x7[n.key]||n.key;if(e!=="Unidentified")return e}return n.type==="keypress"?(n=Q3(n),n===13?"Enter":String.fromCharCode(n)):n.type==="keydown"||n.type==="keyup"?T7[n.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:TN,charCode:function(n){return n.type==="keypress"?Q3(n):0},keyCode:function(n){return n.type==="keydown"||n.type==="keyup"?n.keyCode:0},which:function(n){return n.type==="keypress"?Q3(n):n.type==="keydown"||n.type==="keyup"?n.keyCode:0}}),R7=ws(C7),I7=Qi({},BM,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),tU=ws(I7),L7=Qi({},xh,{submitter:0}),N7=ws(L7),k7=Qi({},tw,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:TN}),O7=ws(k7),D7=Qi({},xh,{propertyName:0,elapsedTime:0,pseudoElement:0}),F7=ws(D7),P7=Qi({},BM,{deltaX:function(n){return"deltaX"in n?n.deltaX:"wheelDeltaX"in n?-n.wheelDeltaX:0},deltaY:function(n){return"deltaY"in n?n.deltaY:"wheelDeltaY"in n?-n.wheelDeltaY:"wheelDelta"in n?-n.wheelDelta:0},deltaZ:0,deltaMode:0}),U7=ws(P7),z7=Qi({},xh,{newState:0,oldState:0,source:0}),q7=ws(z7),B7=[9,13,27,32],MN=Mf&&"CompositionEvent"in window,SE=null;Mf&&"documentMode"in document&&(SE=document.documentMode);var H7=Mf&&"TextEvent"in window&&!SE,Z4=Mf&&(!MN||SE&&8<SE&&11>=SE),nU=" ",iU=!1;function $4(n,e){switch(n){case"keyup":return B7.indexOf(e.keyCode)!==-1;case"keydown":return e.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function J4(n){return n=n.detail,typeof n=="object"&&"data"in n?n.data:null}var $v=!1;function V7(n,e){switch(n){case"compositionend":return J4(e);case"keypress":return e.which!==32?null:(iU=!0,nU);case"textInput":return n=e.data,n===nU&&iU?null:n;default:return null}}function G7(n,e){if($v)return n==="compositionend"||!MN&&$4(n,e)?(n=K4(),j3=xN=rh=null,$v=!1,n):null;switch(n){case"paste":return null;case"keypress":if(!(e.ctrlKey||e.altKey||e.metaKey)||e.ctrlKey&&e.altKey){if(e.char&&1<e.char.length)return e.char;if(e.which)return String.fromCharCode(e.which)}return null;case"compositionend":return Z4&&e.locale!=="ko"?null:e.data;default:return null}}var W7={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function rU(n){var e=n&&n.nodeName&&n.nodeName.toLowerCase();return e==="input"?!!W7[n.type]:e==="textarea"}function ez(n,e,t,i){Zv?ly?ly.push(i):ly=[i]:Zv=i,e=DM(e,"onChange"),0<e.length&&(t=new qM("onChange","change",null,t,i),n.push({event:t,listeners:e}))}var EE=null,FE=null;function j7(n){Yq(n,0)}function HM(n){var e=vE(n);if(G4(e))return n}function aU(n,e){if(n==="change")return e}var tz=!1;Mf&&(Mf?(I3="oninput"in document,I3||(zI=document.createElement("div"),zI.setAttribute("oninput","return;"),I3=typeof zI.oninput=="function"),R3=I3):R3=!1,tz=R3&&(!document.documentMode||9<document.documentMode));var R3,I3,zI;function sU(){EE&&(EE.detachEvent("onpropertychange",nz),FE=EE=null)}function nz(n){if(n.propertyName==="value"&&HM(FE)){var e=[];ez(e,FE,n,wN(n)),Y4(j7,e)}}function Q7(n,e,t){n==="focusin"?(sU(),EE=e,FE=t,EE.attachEvent("onpropertychange",nz)):n==="focusout"&&sU()}function X7(n){if(n==="selectionchange"||n==="keyup"||n==="keydown")return HM(FE)}function Y7(n,e){if(n==="click")return HM(e)}function K7(n,e){if(n==="input"||n==="change")return HM(e)}function Z7(n,e){return n===e&&(n!==0||1/n===1/e)||n!==n&&e!==e}var Ko=typeof Object.is=="function"?Object.is:Z7;function PE(n,e){if(Ko(n,e))return!0;if(typeof n!="object"||n===null||typeof e!="object"||e===null)return!1;var t=Object.keys(n),i=Object.keys(e);if(t.length!==i.length)return!1;for(i=0;i<t.length;i++){var r=t[i];if(!_L.call(e,r)||!Ko(n[r],e[r]))return!1}return!0}function SL(n){if(n=n||(typeof document<"u"?document:void 0),typeof n>"u")return null;try{return n.activeElement||n.body}catch{return n.body}}function oU(n){for(;n&&n.firstChild;)n=n.firstChild;return n}function lU(n,e){var t=oU(n);n=0;for(var i;t;){if(t.nodeType===3){if(i=n+t.textContent.length,n<=e&&i>=e)return{node:t,offset:e-n};n=i}e:{for(;t;){if(t.nextSibling){t=t.nextSibling;break e}t=t.parentNode}t=void 0}t=oU(t)}}function iz(n,e){return n&&e?n===e?!0:n&&n.nodeType===3?!1:e&&e.nodeType===3?iz(n,e.parentNode):"contains"in n?n.contains(e):n.compareDocumentPosition?!!(n.compareDocumentPosition(e)&16):!1:!1}function rz(n){n=n!=null&&n.ownerDocument!=null&&n.ownerDocument.defaultView!=null?n.ownerDocument.defaultView:window;for(var e=SL(n.document);e instanceof n.HTMLIFrameElement;){try{var t=typeof e.contentWindow.location.href=="string"}catch{t=!1}if(t)n=e.contentWindow;else break;e=SL(n.document)}return e}function AN(n){var e=n&&n.nodeName&&n.nodeName.toLowerCase();return e&&(e==="input"&&(n.type==="text"||n.type==="search"||n.type==="tel"||n.type==="url"||n.type==="password")||e==="textarea"||n.contentEditable==="true")}var $7=Mf&&"documentMode"in document&&11>=document.documentMode,Jv=null,EL=null,wE=null,wL=!1;function uU(n,e,t){var i=t.window===t?t.document:t.nodeType===9?t:t.ownerDocument;wL||Jv==null||Jv!==SL(i)||(i=Jv,"selectionStart"in i&&AN(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}),wE&&PE(wE,i)||(wE=i,i=DM(EL,"onSelect"),0<i.length&&(e=new qM("onSelect","select",null,e,t),n.push({event:e,listeners:i}),e.target=Jv)))}function Sm(n,e){var t={};return t[n.toLowerCase()]=e.toLowerCase(),t["Webkit"+n]="webkit"+e,t["Moz"+n]="moz"+e,t}var ey={animationend:Sm("Animation","AnimationEnd"),animationiteration:Sm("Animation","AnimationIteration"),animationstart:Sm("Animation","AnimationStart"),transitionrun:Sm("Transition","TransitionRun"),transitionstart:Sm("Transition","TransitionStart"),transitioncancel:Sm("Transition","TransitionCancel"),transitionend:Sm("Transition","TransitionEnd")},qI={},az={};Mf&&(az=document.createElement("div").style,"AnimationEvent"in window||(delete ey.animationend.animation,delete ey.animationiteration.animation,delete ey.animationstart.animation),"TransitionEvent"in window||delete ey.transitionend.transition);function Vm(n){if(qI[n])return qI[n];if(!ey[n])return n;var e=ey[n],t;for(t in e)if(e.hasOwnProperty(t)&&t in az)return qI[n]=e[t];return n}var sz=Vm("animationend"),oz=Vm("animationiteration"),lz=Vm("animationstart"),J7=Vm("transitionrun"),eW=Vm("transitionstart"),tW=Vm("transitioncancel"),uz=Vm("transitionend"),cz=new Map,xL="abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error fullscreenChange fullscreenError gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");xL.push("scrollEnd");function bu(n,e){cz.set(n,e),Hm(e,[n])}var nW=0;function Af(n,e){if(n.name!=null&&n.name!=="auto")return n.name;if(e.autoName!==null)return e.autoName;n=yu.identifierPrefix;var t=nW++;return n="_"+n+"t_"+t.toString(32)+"_",e.autoName=n}function cU(n){if(n==null||typeof n=="string")return n;var e=null,t=my;if(t!==null)for(var i=0;i<t.length;i++){var r=n[t[i]];if(r!=null){if(r==="none")return"none";e=e==null?r:e+(" "+r)}}return e??n.default}function kf(n,e){return n=cU(n),e=cU(e),e==null?n==="auto"?null:n:e==="auto"?null:e}var pM=typeof reportError=="function"?reportError:function(n){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var e=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof n=="object"&&n!==null&&typeof n.message=="string"?String(n.message):String(n),error:n});if(!window.dispatchEvent(e))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",n);return}console.error(n)},zl=[],ty=0,CN=0;function VM(){for(var n=ty,e=CN=ty=0;e<n;){var t=zl[e];zl[e++]=null;var i=zl[e];zl[e++]=null;var r=zl[e];zl[e++]=null;var a=zl[e];if(zl[e++]=null,i!==null&&r!==null){var s=i.pending;s===null?r.next=r:(r.next=s.next,s.next=r),i.pending=r}a!==0&&fz(t,r,a)}}function GM(n,e,t,i){zl[ty++]=n,zl[ty++]=e,zl[ty++]=t,zl[ty++]=i,CN|=i,n.lanes|=i,n=n.alternate,n!==null&&(n.lanes|=i)}function RN(n,e,t,i){return GM(n,e,t,i),mM(n)}function Gm(n,e){return GM(n,null,null,e),mM(n)}function fz(n,e,t){n.lanes|=t;var i=n.alternate;i!==null&&(i.lanes|=t);for(var r=!1,a=n.return;a!==null;)a.childLanes|=t,i=a.alternate,i!==null&&(i.childLanes|=t),a.tag===22&&(n=a.stateNode,n===null||n._visibility&1||(r=!0)),n=a,a=a.return;return n.tag===3?(a=n.stateNode,r&&e!==null&&(r=31-Xo(t),n=a.hiddenUpdates,i=n[r],i===null?n[r]=[e]:i.push(e),e.lane=t|536870912),a):null}function mM(n){if(50<kE)throw kE=0,iM=null,Error(ct(185));for(var e=n.return;e!==null;)n=e,e=n.return;return n.tag===3?n.stateNode:null}var ny={};function iW(n,e,t,i){this.tag=n,this.key=t,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.refCleanup=this.ref=null,this.pendingProps=e,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=i,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function ao(n,e,t,i){return new iW(n,e,t,i)}function IN(n){return n=n.prototype,!(!n||!n.isReactComponent)}function xf(n,e){var t=n.alternate;return t===null?(t=ao(n.tag,e,n.key,n.mode),t.elementType=n.elementType,t.type=n.type,t.stateNode=n.stateNode,t.alternate=n,n.alternate=t):(t.pendingProps=e,t.type=n.type,t.flags=0,t.subtreeFlags=0,t.deletions=null),t.flags=n.flags&1206910976,t.childLanes=n.childLanes,t.lanes=n.lanes,t.child=n.child,t.memoizedProps=n.memoizedProps,t.memoizedState=n.memoizedState,t.updateQueue=n.updateQueue,e=n.dependencies,t.dependencies=e===null?null:{lanes:e.lanes,firstContext:e.firstContext},t.sibling=n.sibling,t.index=n.index,t.ref=n.ref,t.refCleanup=n.refCleanup,t}function dz(n,e){n.flags&=1206910978;var t=n.alternate;return t===null?(n.childLanes=0,n.lanes=e,n.child=null,n.subtreeFlags=0,n.memoizedProps=null,n.memoizedState=null,n.updateQueue=null,n.dependencies=null,n.stateNode=null):(n.childLanes=t.childLanes,n.lanes=t.lanes,n.child=t.child,n.subtreeFlags=0,n.deletions=null,n.memoizedProps=t.memoizedProps,n.memoizedState=t.memoizedState,n.updateQueue=t.updateQueue,n.type=t.type,e=t.dependencies,n.dependencies=e===null?null:{lanes:e.lanes,firstContext:e.firstContext}),n}function X3(n,e,t,i,r,a){var s=0;if(i=n,typeof i=="function")IN(i)&&(s=1);else if(typeof i=="string")s=Rj(n,t,Nc.current)?26:n==="html"||n==="head"||n==="body"?27:5;else e:switch(i){case fL:return n=ao(31,t,e,r),n.elementType=fL,n.lanes=a,n;case Yv:return Rm(t.children,r,a,e);case R4:s=8,r|=24;break;case lL:return n=ao(12,t,e,r|2),n.elementType=lL,n.lanes=a,n;case uL:return n=ao(13,t,e,r),n.elementType=uL,n.lanes=a,n;case cL:return n=ao(19,t,e,r),n.elementType=cL,n.lanes=a,n;case G9:case dL:return n=r|32,n=ao(30,t,e,n),n.elementType=dL,n.lanes=a,n.stateNode={autoName:null,paired:null,clones:null,ref:null},n;default:if(typeof i=="object"&&i!==null)switch(i.$$typeof){case Cc:s=10;break e;case I4:s=9;break e;case gN:s=11;break e;case vN:s=14;break e;case eh:s=16,i=null;break e}s=29,t=Error(ct(130,n===null?"null":typeof n,"")),i=null}return e=ao(s,t,e,r),e.elementType=n,e.type=i,e.lanes=a,e}function Rm(n,e,t,i){return n=ao(7,n,i,e),n.lanes=t,n}function BI(n,e,t){return n=ao(6,n,null,e),n.lanes=t,n}function hz(n){var e=ao(18,null,null,0);return e.stateNode=n,e}function HI(n,e,t){return e=ao(4,n.children!==null?n.children:[],n.key,e),e.lanes=t,e.stateNode={containerInfo:n.containerInfo,pendingChildren:null,implementation:n.implementation},e}var fU=new WeakMap;function Vl(n,e){if(typeof n=="object"&&n!==null){var t=fU.get(n);return t!==void 0?t:(e={value:n,source:e,stack:VP(e)},fU.set(n,e),e)}return{value:n,source:e,stack:VP(e)}}var iy=[],ry=0,_M=null,UE=0,ql=[],Bl=0,yh=null,Ic=1,Lc="";function Ef(n,e){iy[ry++]=UE,iy[ry++]=_M,_M=n,UE=e}function pz(n,e,t){ql[Bl++]=Ic,ql[Bl++]=Lc,ql[Bl++]=yh,yh=n;var i=Ic;n=Lc;var r=32-Xo(i)-1;i&=~(1<<r),t+=1;var a=32-Xo(e)+r;if(30<a){var s=r-r%5;a=(i&(1<<s)-1).toString(32),i>>=s,r-=s,Ic=1<<32-Xo(e)+r|t<<r|i,Lc=a+n}else Ic=1<<a|t<<r|i,Lc=n}function WM(n){n.return!==null&&(Ef(n,1),pz(n,1,0))}function LN(n){for(;n===_M;)_M=iy[--ry],iy[ry]=null,UE=iy[--ry],iy[ry]=null;for(;n===yh;)yh=ql[--Bl],ql[Bl]=null,Lc=ql[--Bl],ql[Bl]=null,Ic=ql[--Bl],ql[Bl]=null}function mz(n,e){ql[Bl++]=Ic,ql[Bl++]=Lc,ql[Bl++]=yh,Ic=e.id,Lc=e.overflow,yh=n}var Sa=null,Zi=null,Yn=!1,ch=null,Gl=!1,TL=Error(ct(519));function bh(n){var e=Error(ct(418,1<arguments.length&&arguments[1]!==void 0&&arguments[1]?"text":"HTML",""));throw zE(Vl(e,n)),TL}function dU(n){var e=n.stateNode,t=n.type,i=n.memoizedProps;switch(e[Pa]=n,e[lo]=i,t){case"dialog":ni("cancel",e),ni("close",e);break;case"iframe":case"object":case"embed":ni("load",e);break;case"video":case"audio":for(t=0;t<VE.length;t++)ni(VE[t],e);break;case"source":ni("error",e);break;case"img":case"image":case"link":ni("error",e),ni("load",e);break;case"details":ni("toggle",e);break;case"input":ni("invalid",e),W4(e,i.value,i.defaultValue,i.checked,i.defaultChecked,i.type,i.name,!0);break;case"select":ni("invalid",e);break;case"textarea":ni("invalid",e),Q4(e,i.value,i.defaultValue,i.children)}t=i.children,typeof t!="string"&&typeof t!="number"&&typeof t!="bigint"||e.textContent===""+t||i.suppressHydrationWarning===!0||Zq(e.textContent,t)?(i.popover!=null&&(ni("beforetoggle",e),ni("toggle",e)),i.onScroll!=null&&ni("scroll",e),i.onScrollEnd!=null&&ni("scrollend",e),i.onClick!=null&&(e.onclick=Rc),e=!0):e=!1,e||bh(n,!0)}function gM(n){for(Sa=n.return;Sa;)switch(Sa.tag){case 5:case 31:case 13:Gl=!1;return;case 27:case 3:Gl=!0;return;default:Sa=Sa.return}}function Vv(n){if(n!==Sa)return!1;if(!Yn)return gM(n),Yn=!0,!1;var e=n.tag,t;if((t=e!==3&&e!==27)&&((t=e===5)&&(t=n.type,t=!(t!=="form"&&t!=="button")||uN(n.type,n.memoizedProps)),t=!t),t&&Zi&&bh(n),gM(n),e===13){if(n=n.memoizedState,n=n!==null?n.dehydrated:null,!n)throw Error(ct(317));Zi=l4(n)}else if(e===31){if(n=n.memoizedState,n=n!==null?n.dehydrated:null,!n)throw Error(ct(317));Zi=l4(n)}else e===27?(e=Zi,Th(n.type)?(n=hN,hN=null,Zi=n):Zi=e):Zi=Sa?Wl(n.stateNode.nextSibling):null;return!0}function km(){Zi=Sa=null,Yn=!1}function VI(){var n=ch;return n!==null&&(io===null?io=n:io.push.apply(io,n),ch=null),n}function zE(n){ch===null?ch=[n]:ch.push(n)}var ML=Dc(null),Wm=null,wf=null;function ah(n,e,t){$i(ML,e._currentValue),e._currentValue=t}function Tf(n){n._currentValue=ML.current,za(ML)}function Y3(n,e,t){for(;n!==null;){var i=n.alternate;if((n.childLanes&e)!==e?(n.childLanes|=e,i!==null&&(i.childLanes|=e)):i!==null&&(i.childLanes&e)!==e&&(i.childLanes|=e),n===t)break;n=n.return}}function AL(n,e,t,i){var r=n.child;for(r!==null&&(r.return=n);r!==null;){var a=r.dependencies;if(a!==null){var s=r.child;a=a.firstContext;e:for(;a!==null;){var l=a;a=r;for(var c=0;c<e.length;c++)if(l.context===e[c]){a.lanes|=t,l=a.alternate,l!==null&&(l.lanes|=t),Y3(a.return,t,n),i||(s=null);break e}a=l.next}}else if(r.tag===18){if(s=r.return,s===null)throw Error(ct(341));s.lanes|=t,a=s.alternate,a!==null&&(a.lanes|=t),Y3(s,t,n),s=null}else r.tag===13&&r.memoizedState!==null&&r.memoizedState.dehydrated===null?(r.lanes|=t,s=r.alternate,s!==null&&(s.lanes|=t),Y3(r.return,t,n),s=r.child,s=s!==null?s.sibling:null):s=r.child;if(s!==null)s.return=r;else for(s=r;s!==null;){if(s===n){s=null;break}if(r=s.sibling,r!==null){r.return=s.return,s=r;break}s=s.return}r=s}}function Om(n,e,t,i){n=null;for(var r=e,a=!1;r!==null;){if(!a){if((r.flags&524288)!==0)a=!0;else if((r.flags&262144)!==0)break}if(r.tag===10){var s=r.alternate;if(s===null)throw Error(ct(387));if(s=s.memoizedProps,s!==null){var l=r.type;Ko(r.pendingProps.value,s.value)||(n!==null?n.push(l):n=[l])}}else if(r===uM.current){if(s=r.alternate,s===null)throw Error(ct(387));s.memoizedState.memoizedState!==r.memoizedState.memoizedState&&(n!==null?n.push(My):n=[My])}r=r.return}return n!==null&&AL(e,n,t,i),e.flags|=262144,n!==null}function vM(n){for(n=n.firstContext;n!==null;){if(!Ko(n.context._currentValue,n.memoizedValue))return!0;n=n.next}return!1}function Dm(n){Wm=n,wf=null,n=n.dependencies,n!==null&&(n.firstContext=null)}function Ua(n){return _z(Wm,n)}function L3(n,e){return Wm===null&&Dm(n),_z(n,e)}function _z(n,e){var t=e._currentValue;if(e={context:e,memoizedValue:t,next:null},wf===null){if(n===null)throw Error(ct(308));wf=e,n.dependencies={lanes:0,firstContext:e},n.flags|=524288}else wf=wf.next=e;return t}var rW=typeof AbortController<"u"?AbortController:function(){var n=[],e=this.signal={aborted:!1,addEventListener:function(t,i){n.push(i)}};this.abort=function(){e.aborted=!0,n.forEach(function(t){return t()})}},aW=aa.unstable_scheduleCallback,sW=aa.unstable_NormalPriority,jr={$$typeof:Cc,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0};function NN(){return{controller:new rW,data:new Map,refCount:0}}function nw(n){n.refCount--,n.refCount===0&&aW(sW,function(){n.controller.abort()})}function hU(n,e){if((n.pendingLanes&4194048)!==0){var t=n.transitionTypes;for(t===null&&(t=n.transitionTypes=[]),n=0;n<e.length;n++){var i=e[n];t.indexOf(i)===-1&&t.push(i)}}}var yE=null;function oW(n){var e=n.transitionTypes;return n.transitionTypes=null,e}var xE=null,CL=0,Fm=0,uy=null;function lW(n,e){if(xE===null){var t=xE=[];CL=0,Fm=sk(),uy={status:"pending",value:void 0,then:function(i){t.push(i)}}}return CL++,e.then(pU,pU),e}function pU(){if(--CL===0&&(yE=null,xE!==null)){uy!==null&&(uy.status="fulfilled");var n=xE;xE=null,Fm=0,uy=null;for(var e=0;e<n.length;e++)(0,n[e])()}}function uW(n,e){var t=[],i={status:"pending",value:null,reason:null,then:function(r){t.push(r)}};return n.then(function(){i.status="fulfilled",i.value=e;for(var r=0;r<t.length;r++)(0,t[r])(e)},function(r){for(i.status="rejected",i.reason=r,r=0;r<t.length;r++)(0,t[r])(void 0)}),i}var mU=An.S;An.S=function(n,e){if(Oq=jo(),typeof e=="object"&&e!==null&&typeof e.then=="function"&&lW(n,e),yE!==null)for(var t=wy;t!==null;)hU(t,yE),t=t.next;if(t=n.types,t!==null){for(var i=wy;i!==null;)hU(i,t),i=i.next;if(Fm!==0){i=yE,i===null&&(i=yE=[]);for(var r=0;r<t.length;r++){var a=t[r];i.indexOf(a)===-1&&i.push(a)}}}mU!==null&&mU(n,e)};var Im=Dc(null);function kN(){var n=Im.current;return n!==null?n:ji.pooledCache}function K3(n,e){e===null?$i(Im,Im.current):$i(Im,e.pool)}function gz(){var n=kN();return n===null?null:{parent:jr._currentValue,pool:n}}var Ly=Error(ct(460)),ON=Error(ct(474)),jM=Error(ct(542)),yM={then:function(){}};function _U(n){return n=n.status,n==="fulfilled"||n==="rejected"}function vz(n,e,t){switch(t=n[t],t===void 0?n.push(e):t!==e&&(e.then(Rc,Rc),e=t),e.status){case"fulfilled":return e.value;case"rejected":throw n=e.reason,vU(n),n===void 0&&!("reason"in e)?Error(ct(600)):n;default:if(typeof e.status=="string")e.then(Rc,Rc);else{if(n=ji,n!==null&&100<n.shellSuspendCounter)throw Error(ct(482));n=e,n.status="pending",n.then(function(i){if(e.status==="pending"){var r=e;r.status="fulfilled",r.value=i}},function(i){if(e.status==="pending"){var r=e;r.status="rejected",r.reason=i}})}switch(e.status){case"fulfilled":return e.value;case"rejected":throw n=e.reason,vU(n),n}throw Lm=e,Ly}}function xm(n){try{var e=n._init;return e(n._payload)}catch(t){throw t!==null&&typeof t=="object"&&typeof t.then=="function"?(Lm=t,Ly):t}}var Lm=null;function gU(){if(Lm===null)throw Error(ct(459));var n=Lm;return Lm=null,n}function vU(n){if(n===Ly||n===jM)throw Error(ct(483))}var cy=null,qE=0;function N3(n){var e=qE;return qE+=1,cy===null&&(cy=[]),vz(cy,n,e)}function Zd(n,e){e=e.props.ref,n.ref=e!==void 0?e:null}function k3(n,e){throw e.$$typeof===V9?Error(ct(525)):(n=Object.prototype.toString.call(e),Error(ct(31,n==="[object Object]"?"object with keys {"+Object.keys(e).join(", ")+"}":n)))}function yz(n){function e(v,M){if(n){var O=v.deletions;O===null?(v.deletions=[M],v.flags|=16):O.push(M)}}function t(v,M){if(!n)return null;for(;M!==null;)e(v,M),M=M.sibling;return null}function i(v){for(var M=new Map;v!==null;)v.key===null?M.set(v.index,v):M.set(v.key,v),v=v.sibling;return M}function r(v,M){return v=xf(v,M),v.index=0,v.sibling=null,v}function a(v,M,O){return v.index=O,n?(O=v.alternate,O!==null?(O=O.index,O<M?(v.flags|=2,M):O):(v.flags|=134217730,M)):(v.flags|=1048576,M)}function s(v){return n&&v.alternate===null&&(v.flags|=134217730),v}function l(v,M,O,k){return M===null||M.tag!==6?(M=BI(O,v.mode,k),M.return=v,M):(M=r(M,O),M.return=v,M)}function c(v,M,O,k){var q=O.type;return q===Yv?(v=p(v,M,O.props.children,k,O.key),Zd(v,O),v):M!==null&&(M.elementType===q||typeof q=="object"&&q!==null&&q.$$typeof===eh&&xm(q)===M.type)?(M=r(M,O.props),Zd(M,O),M.return=v,M):(M=X3(O.type,O.key,O.props,null,v.mode,k),Zd(M,O),M.return=v,M)}function f(v,M,O,k){return M===null||M.tag!==4||M.stateNode.containerInfo!==O.containerInfo||M.stateNode.implementation!==O.implementation?(M=HI(O,v.mode,k),M.return=v,M):(M=r(M,O.children||[]),M.return=v,M)}function p(v,M,O,k,q){return M===null||M.tag!==7?(M=Rm(O,v.mode,k,q),M.return=v,M):(M=r(M,O),M.return=v,M)}function h(v,M,O){if(typeof M=="string"&&M!==""||typeof M=="number"||typeof M=="bigint")return M=BI(""+M,v.mode,O),M.return=v,M;if(typeof M=="object"&&M!==null){switch(M.$$typeof){case w3:return O=X3(M.type,M.key,M.props,null,v.mode,O),Zd(O,M),O.return=v,O;case _E:return M=HI(M,v.mode,O),M.return=v,M;case eh:return M=xm(M),h(v,M,O)}if(gE(M)||cE(M))return M=Rm(M,v.mode,O,null),M.return=v,M;if(typeof M.then=="function")return h(v,N3(M),O);if(M.$$typeof===Cc)return h(v,L3(v,M),O);k3(v,M)}return null}function _(v,M,O,k){var q=M!==null?M.key:null;if(typeof O=="string"&&O!==""||typeof O=="number"||typeof O=="bigint")return q!==null?null:l(v,M,""+O,k);if(typeof O=="object"&&O!==null){switch(O.$$typeof){case w3:return O.key===q?c(v,M,O,k):null;case _E:return O.key===q?f(v,M,O,k):null;case eh:return O=xm(O),_(v,M,O,k)}if(gE(O)||cE(O))return q!==null?null:p(v,M,O,k,null);if(typeof O.then=="function")return _(v,M,N3(O),k);if(O.$$typeof===Cc)return _(v,M,L3(v,O),k);k3(v,O)}return null}function g(v,M,O,k,q){if(typeof k=="string"&&k!==""||typeof k=="number"||typeof k=="bigint")return v=v.get(O)||null,l(M,v,""+k,q);if(typeof k=="object"&&k!==null){switch(k.$$typeof){case w3:return v=v.get(k.key===null?O:k.key)||null,c(M,v,k,q);case _E:return v=v.get(k.key===null?O:k.key)||null,f(M,v,k,q);case eh:return k=xm(k),g(v,M,O,k,q)}if(gE(k)||cE(k))return v=v.get(O)||null,p(M,v,k,q,null);if(typeof k.then=="function")return g(v,M,O,N3(k),q);if(k.$$typeof===Cc)return g(v,M,O,L3(M,k),q);k3(M,k)}return null}function E(v,M,O,k){for(var q=null,G=null,Q=M,H=M=0,Z=null;Q!==null&&H<O.length;H++){Q.index>H?(Z=Q,Q=null):Z=Q.sibling;var te=_(v,Q,O[H],k);if(te===null){Q===null&&(Q=Z);break}n&&Q&&te.alternate===null&&e(v,Q),M=a(te,M,H),G===null?q=te:G.sibling=te,G=te,Q=Z}if(H===O.length)return t(v,Q),Yn&&Ef(v,H),q;if(Q===null){for(;H<O.length;H++)Q=h(v,O[H],k),Q!==null&&(M=a(Q,M,H),G===null?q=Q:G.sibling=Q,G=Q);return Yn&&Ef(v,H),q}for(Q=i(Q);H<O.length;H++)Z=g(Q,v,H,O[H],k),Z!==null&&(n&&(te=Z.alternate,te!==null&&Q.delete(te.key===null?H:te.key)),M=a(Z,M,H),G===null?q=Z:G.sibling=Z,G=Z);return n&&Q.forEach(function(j){return e(v,j)}),Yn&&Ef(v,H),q}function x(v,M,O,k){if(O==null)throw Error(ct(151));for(var q=null,G=null,Q=M,H=M=0,Z=null,te=O.next();Q!==null&&!te.done;H++,te=O.next()){Q.index>H?(Z=Q,Q=null):Z=Q.sibling;var j=_(v,Q,te.value,k);if(j===null){Q===null&&(Q=Z);break}n&&Q&&j.alternate===null&&e(v,Q),M=a(j,M,H),G===null?q=j:G.sibling=j,G=j,Q=Z}if(te.done)return t(v,Q),Yn&&Ef(v,H),q;if(Q===null){for(;!te.done;H++,te=O.next())te=h(v,te.value,k),te!==null&&(M=a(te,M,H),G===null?q=te:G.sibling=te,G=te);return Yn&&Ef(v,H),q}for(Q=i(Q);!te.done;H++,te=O.next())te=g(Q,v,H,te.value,k),te!==null&&(n&&(Z=te.alternate,Z!==null&&Q.delete(Z.key===null?H:Z.key)),M=a(te,M,H),G===null?q=te:G.sibling=te,G=te);return n&&Q.forEach(function(he){return e(v,he)}),Yn&&Ef(v,H),q}function S(v,M,O,k){if(typeof O=="object"&&O!==null&&O.type===Yv&&O.key===null&&O.props.ref===void 0&&(O=O.props.children),typeof O=="object"&&O!==null){switch(O.$$typeof){case w3:e:{for(var q=O.key;M!==null;){if(M.key===q){if(q=O.type,q===Yv){if(M.tag===7){t(v,M.sibling),k=r(M,O.props.children),Zd(k,O),k.return=v,v=k;break e}}else if(M.elementType===q||typeof q=="object"&&q!==null&&q.$$typeof===eh&&xm(q)===M.type){t(v,M.sibling),k=r(M,O.props),Zd(k,O),k.return=v,v=k;break e}t(v,M);break}else e(v,M);M=M.sibling}O.type===Yv?(k=Rm(O.props.children,v.mode,k,O.key),Zd(k,O),k.return=v,v=k):(k=X3(O.type,O.key,O.props,null,v.mode,k),Zd(k,O),k.return=v,v=k)}return s(v);case _E:e:{for(q=O.key;M!==null;){if(M.key===q)if(M.tag===4&&M.stateNode.containerInfo===O.containerInfo&&M.stateNode.implementation===O.implementation){t(v,M.sibling),k=r(M,O.children||[]),k.return=v,v=k;break e}else{t(v,M);break}else e(v,M);M=M.sibling}k=HI(O,v.mode,k),k.return=v,v=k}return s(v);case eh:return O=xm(O),S(v,M,O,k)}if(gE(O))return E(v,M,O,k);if(cE(O)){if(q=cE(O),typeof q!="function")throw Error(ct(150));return O=q.call(O),x(v,M,O,k)}if(typeof O.then=="function")return S(v,M,N3(O),k);if(O.$$typeof===Cc)return S(v,M,L3(v,O),k);k3(v,O)}return typeof O=="string"&&O!==""||typeof O=="number"||typeof O=="bigint"?(O=""+O,M!==null&&M.tag===6?(t(v,M.sibling),k=r(M,O),k.return=v,v=k):(t(v,M),k=BI(O,v.mode,k),k.return=v,v=k),s(v)):t(v,M)}return function(v,M,O,k){try{qE=0;var q=S(v,M,O,k);return cy=null,q}catch(Q){if(Q===Ly||Q===jM)throw Q;var G=ao(29,Q,null,v.mode);return G.lanes=k,G.return=v,G}finally{}}}var Pm=yz(!0),bz=yz(!1),th=!1;function DN(n){n.updateQueue={baseState:n.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function RL(n,e){n=n.updateQueue,e.updateQueue===n&&(e.updateQueue={baseState:n.baseState,firstBaseUpdate:n.firstBaseUpdate,lastBaseUpdate:n.lastBaseUpdate,shared:n.shared,callbacks:null})}function fh(n){return{lane:n,tag:0,payload:null,callback:null,next:null}}function dh(n,e,t){var i=n.updateQueue;if(i===null)return null;if(i=i.shared,(Ei&2)!==0){var r=i.pending;return r===null?e.next=e:(e.next=r.next,r.next=e),i.pending=e,e=mM(n),fz(n,null,t),e}return GM(n,i,e,t),mM(n)}function TE(n,e,t){if(e=e.updateQueue,e!==null&&(e=e.shared,(t&4194048)!==0)){var i=e.lanes;i&=n.pendingLanes,t|=i,e.lanes=t,P4(n,t)}}function GI(n,e){var t=n.updateQueue,i=n.alternate;if(i!==null&&(i=i.updateQueue,t===i)){var r=null,a=null;if(t=t.firstBaseUpdate,t!==null){do{var s={lane:t.lane,tag:t.tag,payload:t.payload,callback:null,next:null};a===null?r=a=s:a=a.next=s,t=t.next}while(t!==null);a===null?r=a=e:a=a.next=e}else r=a=e;t={baseState:i.baseState,firstBaseUpdate:r,lastBaseUpdate:a,shared:i.shared,callbacks:i.callbacks},n.updateQueue=t;return}n=t.lastBaseUpdate,n===null?t.firstBaseUpdate=e:n.next=e,t.lastBaseUpdate=e}var IL=!1;function ME(){if(IL){var n=uy;if(n!==null)throw n}}function AE(n,e,t,i){IL=!1;var r=n.updateQueue;th=!1;var a=r.firstBaseUpdate,s=r.lastBaseUpdate,l=r.shared.pending;if(l!==null){r.shared.pending=null;var c=l,f=c.next;c.next=null,s===null?a=f:s.next=f,s=c;var p=n.alternate;p!==null&&(p=p.updateQueue,l=p.lastBaseUpdate,l!==s&&(l===null?p.firstBaseUpdate=f:l.next=f,p.lastBaseUpdate=c))}if(a!==null){var h=r.baseState;s=0,p=f=c=null,l=a;do{var _=l.lane&-536870913,g=_!==l.lane;if(g?(fi&_)===_:(i&_)===_){_!==0&&_===Fm&&(IL=!0),p!==null&&(p=p.next={lane:0,tag:l.tag,payload:l.payload,callback:null,next:null});e:{var E=n,x=l;_=e;var S=t;switch(x.tag){case 1:if(E=x.payload,typeof E=="function"){h=E.call(S,h,_);break e}h=E;break e;case 3:E.flags=E.flags&-65537|128;case 0:if(E=x.payload,_=typeof E=="function"?E.call(S,h,_):E,_==null)break e;h=Qi({},h,_);break e;case 2:th=!0}}_=l.callback,_!==null&&(n.flags|=64,g&&(n.flags|=8192),g=r.callbacks,g===null?r.callbacks=[_]:g.push(_))}else g={lane:_,tag:l.tag,payload:l.payload,callback:l.callback,next:null},p===null?(f=p=g,c=h):p=p.next=g,s|=_;if(l=l.next,l===null){if(l=r.shared.pending,l===null)break;g=l,l=g.next,g.next=null,r.lastBaseUpdate=g,r.shared.pending=null}}while(!0);p===null&&(c=h),r.baseState=c,r.firstBaseUpdate=f,r.lastBaseUpdate=p,a===null&&(r.shared.lanes=0),wh|=s,n.lanes=s,n.memoizedState=h}}function Sz(n,e){if(typeof n!="function")throw Error(ct(191,n));n.call(e)}function Ez(n,e){var t=n.callbacks;if(t!==null)for(n.callbacks=null,n=0;n<t.length;n++)Sz(t[n],e)}var Sh=Dc(null),bM=Dc(0);function yU(n,e){n=Lf,$i(bM,n),$i(Sh,e),Lf=n|e.baseLanes}function LL(){$i(bM,Lf),$i(Sh,Sh.current)}function FN(){Lf=bM.current,za(Sh),za(bM)}var Ha=Dc(null),ts=null;function hh(n){var e=n.alternate;$i(qa,qa.current&1),$i(Ha,n),ts===null&&(e===null||Sh.current!==null||e.memoizedState!==null)&&(ts=n)}function NL(n){$i(qa,qa.current),$i(Ha,n),ts===null&&(ts=n)}function wz(n){n.tag===22?($i(qa,qa.current),$i(Ha,n),ts===null&&(ts=n)):ph()}function ph(){$i(qa,qa.current),$i(Ha,Ha.current)}function Vo(n){za(Ha),ts===n&&(ts=null),za(qa)}var qa=Dc(0);function BE(n,e){$i(Ha,Ha.current),$i(qa,e)}function PN(n){za(qa),za(Ha),ts===n&&(ts=null)}function SM(n){for(var e=n;e!==null;){if(e.tag===13){var t=e.memoizedState;if(t!==null&&(t=t.dehydrated,t===null||dN(t)||ck(t)))return e}else if(e.tag===19&&e.memoizedProps.revealOrder!=="independent"){if((e.flags&128)!==0)return e}else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===n)break;for(;e.sibling===null;){if(e.return===null||e.return===n)return null;e=e.return}e.sibling.return=e.return,e=e.sibling}return null}var Cf=0,Fn=null,Bi=null,Wr=null,EM=!1,fy=!1,Um=!1,wM=0,HE=0,dy=null,cW=0;function mr(){throw Error(ct(321))}function UN(n,e){if(e===null)return!1;for(var t=0;t<e.length&&t<n.length;t++)if(!Ko(n[t],e[t]))return!1;return!0}function zN(n,e,t,i,r,a){return Cf=a,Fn=e,e.memoizedState=null,e.updateQueue=null,e.lanes=0,An.H=n===null||n.memoizedState===null?eq:tq,Um=!1,a=t(i,r),Um=!1,fy&&(a=Tz(e,t,i,r)),xz(n),a}function xz(n){An.H=xM;var e=Bi!==null&&Bi.next!==null;if(Cf=0,Wr=Bi=Fn=null,EM=!1,HE=0,dy=null,e)throw Error(ct(300));n===null||Qr||(n=n.dependencies,n!==null&&vM(n)&&(Qr=!0))}function Tz(n,e,t,i){Fn=n;var r=0;do{if(fy&&(dy=null),HE=0,fy=!1,25<=r)throw Error(ct(301));if(r+=1,Wr=Bi=null,n.updateQueue!=null){var a=n.updateQueue;a.lastEffect=null,a.events=null,a.stores=null,a.memoCache!=null&&(a.memoCache.index=0)}An.H=vW,a=e(t,i)}while(fy);return a}function fW(){var n=An.H,e=n.useState()[0];return e=typeof e.then=="function"?iw(e):e,n=n.useState()[0],(Bi!==null?Bi.memoizedState:null)!==n&&(Fn.flags|=1024),e}function qN(){var n=wM!==0;return wM=0,n}function BN(n,e,t){e.updateQueue=n.updateQueue,e.flags&=-2053,n.lanes&=~t}function HN(n){if(EM){for(n=n.memoizedState;n!==null;){var e=n.queue;e!==null&&(e.pending=null),n=n.next}EM=!1}Cf=0,Wr=Bi=Fn=null,fy=!1,HE=wM=0,dy=null}function Es(){var n={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return Wr===null?Fn.memoizedState=Wr=n:Wr=Wr.next=n,Wr}function Rr(){if(Bi===null){var n=Fn.alternate;n=n!==null?n.memoizedState:null}else n=Bi.next;var e=Wr===null?Fn.memoizedState:Wr.next;if(e!==null)Wr=e,Bi=n;else{if(n===null)throw Fn.alternate===null?Error(ct(467)):Error(ct(310));Bi=n,n={memoizedState:Bi.memoizedState,baseState:Bi.baseState,baseQueue:Bi.baseQueue,queue:Bi.queue,next:null},Wr===null?Fn.memoizedState=Wr=n:Wr=Wr.next=n}return Wr}function QM(){return{lastEffect:null,events:null,stores:null,memoCache:null}}function iw(n){var e=HE;return HE+=1,dy===null&&(dy=[]),n=vz(dy,n,e),e=Fn,(Wr===null?e.memoizedState:Wr.next)===null&&(e=e.alternate,An.H=e===null||e.memoizedState===null?eq:tq),n}function XM(n){if(n!==null&&typeof n=="object"){if(typeof n.then=="function")return iw(n);if(n.$$typeof===j9)return;if(n.$$typeof===Cc)return Ua(n)}throw Error(ct(438,String(n)))}function VN(n){var e=null,t=Fn.updateQueue;if(t!==null&&(e=t.memoCache),e==null){var i=Fn.alternate;i!==null&&(i=i.updateQueue,i!==null&&(i=i.memoCache,i!=null&&(e={data:i.data.map(function(r){return r.slice()}),index:0})))}if(e==null&&(e={data:[],index:0}),t===null&&(t=QM(),Fn.updateQueue=t),t.memoCache=e,t=e.data[e.index],t===void 0)for(t=e.data[e.index]=Array(n),i=0;i<n;i++)t[i]=W9;return e.index++,t}function Rf(n,e){return typeof e=="function"?e(n):e}function Z3(n){var e=Rr();return GN(e,Bi,n)}function GN(n,e,t){var i=n.queue;if(i===null)throw Error(ct(311));i.lastRenderedReducer=t;var r=n.baseQueue,a=i.pending;if(a!==null){if(r!==null){var s=r.next;r.next=a.next,a.next=s}e.baseQueue=r=a,i.pending=null}if(a=n.baseState,r===null)n.memoizedState=a;else{e=r.next;var l=s=null,c=null,f=e,p=!1;do{var h=f.lane&-536870913;if(h!==f.lane?(fi&h)===h:(Cf&h)===h){var _=f.revertLane;if(_===0)c!==null&&(c=c.next={lane:0,revertLane:0,gesture:null,action:f.action,hasEagerState:f.hasEagerState,eagerState:f.eagerState,next:null}),h===Fm&&(p=!0);else if((Cf&_)===_){f=f.next,_===Fm&&(p=!0);continue}else h={lane:0,revertLane:f.revertLane,gesture:null,action:f.action,hasEagerState:f.hasEagerState,eagerState:f.eagerState,next:null},c===null?(l=c=h,s=a):c=c.next=h,Fn.lanes|=_,wh|=_;h=f.action,Um&&t(a,h),a=f.hasEagerState?f.eagerState:t(a,h)}else _={lane:h,revertLane:f.revertLane,gesture:f.gesture,action:f.action,hasEagerState:f.hasEagerState,eagerState:f.eagerState,next:null},c===null?(l=c=_,s=a):c=c.next=_,Fn.lanes|=h,wh|=h;f=f.next}while(f!==null&&f!==e);if(c===null?s=a:c.next=l,!Ko(a,n.memoizedState)&&(Qr=!0,p&&(t=uy,t!==null)))throw t;n.memoizedState=a,n.baseState=s,n.baseQueue=c,i.lastRenderedState=a}return r===null&&(i.lanes=0),[n.memoizedState,i.dispatch]}function WI(n){var e=Rr(),t=e.queue;if(t===null)throw Error(ct(311));t.lastRenderedReducer=n;var i=t.dispatch,r=t.pending,a=e.memoizedState;if(r!==null){t.pending=null;var s=r=r.next;do a=n(a,s.action),s=s.next;while(s!==r);Ko(a,e.memoizedState)||(Qr=!0),e.memoizedState=a,e.baseQueue===null&&(e.baseState=a),t.lastRenderedState=a}return[a,i]}function Mz(n,e,t){var i=Fn,r=Rr(),a=Yn;if(a){if(t===void 0)throw Error(ct(407));t=t()}else t=e();var s=!Ko((Bi||r).memoizedState,t);if(s&&(r.memoizedState=t,Qr=!0),r=r.queue,WN(Rz.bind(null,i,r,n),[n]),n=r.getSnapshot!==e||s||Wr!==null&&(Wr.memoizedState.tag&1)!==0,yy(n?9:8,{destroy:void 0},Cz.bind(null,i,r,t,e),null),n){if(i.flags|=2048,ji===null)throw Error(ct(349));a||(Cf&127)!==0||Az(i,e,t)}return t}function Az(n,e,t){n.flags|=16384,n={getSnapshot:e,value:t},e=Fn.updateQueue,e===null?(e=QM(),Fn.updateQueue=e,e.stores=[n]):(t=e.stores,t===null?e.stores=[n]:t.push(n))}function Cz(n,e,t,i){e.value=t,e.getSnapshot=i,Iz(e)&&Lz(n)}function Rz(n,e,t){return t(function(){Iz(e)&&Lz(n)})}function Iz(n){var e=n.getSnapshot;n=n.value;try{var t=e();return!Ko(n,t)}catch{return!0}}function Lz(n){var e=Gm(n,2);e!==null&&so(e,n,2)}function kL(n){var e=Es();if(typeof n=="function"){var t=n;if(n=t(),Um){ih(!0);try{t()}finally{ih(!1)}}}return e.memoizedState=e.baseState=n,e.queue={pending:null,lanes:0,dispatch:null,lastRenderedReducer:Rf,lastRenderedState:n},e}function Nz(n,e,t,i){return n.baseState=t,GN(n,Bi,typeof i=="function"?i:Rf)}function dW(n,e,t,i,r){if(KM(n))throw Error(ct(485));if(n=e.action,n!==null){var a={payload:r,action:n,next:null,isTransition:!0,status:"pending",value:null,reason:null,listeners:[],then:function(s){a.listeners.push(s)}};An.T!==null?t(!0):a.isTransition=!1,i(a),t=e.pending,t===null?(a.next=e.pending=a,kz(e,a)):(a.next=t.next,e.pending=t.next=a)}}function kz(n,e){var t=e.action,i=e.payload,r=n.state;if(e.isTransition){var a=An.T,s={};s.types=a!==null?a.types:null,An.T=s;try{var l=t(r,i),c=An.S;c!==null&&c(s,l),bU(n,e,l)}catch(f){OL(n,e,f)}finally{a!==null&&s.types!==null&&(a.types=s.types),An.T=a}}else try{a=t(r,i),bU(n,e,a)}catch(f){OL(n,e,f)}}function bU(n,e,t){t!==null&&typeof t=="object"&&typeof t.then=="function"?t.then(function(i){SU(n,e,i)},function(i){return OL(n,e,i)}):SU(n,e,t)}function SU(n,e,t){e.status="fulfilled",e.value=t,Oz(e),n.state=t,e=n.pending,e!==null&&(t=e.next,t===e?n.pending=null:(t=t.next,e.next=t,kz(n,t)))}function OL(n,e,t){var i=n.pending;if(n.pending=null,i!==null){i=i.next;do e.status="rejected",e.reason=t,Oz(e),e=e.next;while(e!==i)}n.action=null}function Oz(n){n=n.listeners;for(var e=0;e<n.length;e++)(0,n[e])()}function Dz(n,e){return e}function EU(n,e){if(Yn){var t=ji.formState;if(t!==null){e:{var i=Fn;if(Yn){if(Zi){t:{for(var r=Zi,a=Gl;r.nodeType!==8;){if(!a){r=null;break t}if(r=Wl(r.nextSibling),r===null){r=null;break t}}a=r.data,r=a==="F!"||a==="F"?r:null}if(r){Zi=Wl(r.nextSibling),i=r.data==="F!";break e}}bh(i)}i=!1}i&&(e=t[0])}}return t=Es(),t.memoizedState=t.baseState=e,i={pending:null,lanes:0,dispatch:null,lastRenderedReducer:Dz,lastRenderedState:e},t.queue=i,t=Zz.bind(null,Fn,i),i.dispatch=t,i=kL(!1),a=YN.bind(null,Fn,!1,i.queue),i=Es(),r={state:e,dispatch:null,action:n,pending:null},i.queue=r,t=dW.bind(null,Fn,r,a,t),r.dispatch=t,i.memoizedState=n,[e,t,!1]}function wU(n){var e=Rr();return Fz(e,Bi,n)}function Fz(n,e,t){if(e=GN(n,e,Dz)[0],n=Z3(Rf)[0],typeof e=="object"&&e!==null&&typeof e.then=="function")try{var i=iw(e)}catch(s){throw s===Ly?jM:s}else i=e;e=Rr();var r=e.queue,a=r.dispatch;return t!==e.memoizedState&&(Fn.flags|=2048,yy(9,{destroy:void 0},hW.bind(null,r,t),null)),[i,a,n]}function hW(n,e){n.action=e}function xU(n){var e=Rr(),t=Bi;if(t!==null)return Fz(e,t,n);Rr(),e=e.memoizedState,t=Rr();var i=t.queue.dispatch;return t.memoizedState=n,[e,i,!1]}function yy(n,e,t,i){return n={tag:n,create:t,deps:i,inst:e,next:null},e=Fn.updateQueue,e===null&&(e=QM(),Fn.updateQueue=e),t=e.lastEffect,t===null?e.lastEffect=n.next=n:(i=t.next,t.next=n,n.next=i,e.lastEffect=n),n}function Pz(){return Rr().memoizedState}function $3(n,e,t,i){var r=Es();Fn.flags|=n,r.memoizedState=yy(1|e,{destroy:void 0},t,i===void 0?null:i)}function YM(n,e,t,i){var r=Rr();i=i===void 0?null:i;var a=r.memoizedState.inst;Bi!==null&&i!==null&&UN(i,Bi.memoizedState.deps)?r.memoizedState=yy(e,a,t,i):(Fn.flags|=n,r.memoizedState=yy(1|e,a,t,i))}function TU(n,e){$3(8390656,8,n,e)}function WN(n,e){YM(2048,8,n,e)}function pW(n){Fn.flags|=4;var e=Fn.updateQueue;if(e===null)e=QM(),Fn.updateQueue=e,e.events=[n];else{var t=e.events;t===null?e.events=[n]:t.push(n)}}function Uz(n){var e=Rr().memoizedState;return pW({ref:e,nextImpl:n}),function(){if((Ei&2)!==0)throw Error(ct(440));return e.impl.apply(void 0,arguments)}}function zz(n,e){return YM(4,2,n,e)}function qz(n,e){return YM(4,4,n,e)}function Bz(n,e){if(typeof e=="function"){n=n();var t=e(n);return function(){typeof t=="function"?t():e(null)}}if(e!=null)return n=n(),e.current=n,function(){e.current=null}}function Hz(n,e,t){t=t!=null?t.concat([n]):null,YM(4,4,Bz.bind(null,e,n),t)}function jN(){}function Vz(n,e){var t=Rr();e=e===void 0?null:e;var i=t.memoizedState;return e!==null&&UN(e,i[1])?i[0]:(t.memoizedState=[n,e],n)}function Gz(n,e){var t=Rr();e=e===void 0?null:e;var i=t.memoizedState;if(e!==null&&UN(e,i[1]))return i[0];if(i=n(),Um){ih(!0);try{n()}finally{ih(!1)}}return t.memoizedState=[i,e],i}function QN(n,e,t){return t===void 0||(Cf&1073741824)!==0&&(fi&261930)===0?n.memoizedState=e:(n.memoizedState=t,n=Fq(),Fn.lanes|=n,wh|=n,t)}function Wz(n,e,t,i){return Ko(t,e)?t:Sh.current!==null?(n=QN(n,t,i),Ko(n,e)||(Qr=!0),n):(Cf&106)===0||(Cf&1073741824)!==0&&(fi&261930)===0?(Qr=!0,n.memoizedState=t):(n=Fq(),Fn.lanes|=n,wh|=n,e)}function jz(n,e,t,i,r){var a=wi.p;wi.p=a!==0&&8>a?a:8;var s=An.T,l={};l.types=s!==null?s.types:null,An.T=l,YN(n,!1,e,t);try{var c=r(),f=An.S;if(f!==null&&f(l,c),c!==null&&typeof c=="object"&&typeof c.then=="function"){var p=uW(c,i);CE(n,e,p,Yo(n))}else CE(n,e,i,Yo(n))}catch(h){CE(n,e,{then:function(){},status:"rejected",reason:h},Yo())}finally{wi.p=a,s!==null&&l.types!==null&&(s.types=l.types),An.T=s}}function mW(){}function DL(n,e,t,i){if(n.tag!==5)throw Error(ct(476));var r=Qz(n).queue;jz(n,r,e,Cm,t===null?mW:function(){return Xz(n),t(i)})}function Qz(n){var e=n.memoizedState;if(e!==null)return e;e={memoizedState:Cm,baseState:Cm,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Rf,lastRenderedState:Cm},next:null};var t={};return e.next={memoizedState:t,baseState:t,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Rf,lastRenderedState:t},next:null},n.memoizedState=e,n=n.alternate,n!==null&&(n.memoizedState=e),e}function Xz(n){var e=Qz(n);e.next===null&&(e=n.alternate.memoizedState),CE(n,e.next.queue,{},Yo())}function XN(){return Ua(My)}function Yz(){return Rr().memoizedState}function Kz(){return Rr().memoizedState}function _W(n){for(var e=n.return;e!==null;){switch(e.tag){case 24:case 3:var t=Yo();n=fh(t);var i=dh(e,n,t);i!==null&&(so(i,e,t),TE(i,e,t)),e={cache:NN()},n.payload=e;return}e=e.return}}function gW(n,e,t){var i=Yo();t={lane:i,revertLane:0,gesture:null,action:t,hasEagerState:!1,eagerState:null,next:null},KM(n)?$z(e,t):(t=RN(n,e,t,i),t!==null&&(so(t,n,i),Jz(t,e,i)))}function Zz(n,e,t){var i=Yo();CE(n,e,t,i)}function CE(n,e,t,i){var r={lane:i,revertLane:0,gesture:null,action:t,hasEagerState:!1,eagerState:null,next:null};if(KM(n))$z(e,r);else{var a=n.alternate;if(n.lanes===0&&(a===null||a.lanes===0)&&(a=e.lastRenderedReducer,a!==null))try{var s=e.lastRenderedState,l=a(s,t);if(r.hasEagerState=!0,r.eagerState=l,Ko(l,s))return GM(n,e,r,0),ji===null&&VM(),!1}catch{}finally{}if(t=RN(n,e,r,i),t!==null)return so(t,n,i),Jz(t,e,i),!0}return!1}function YN(n,e,t,i){if(i={lane:2,revertLane:sk(),gesture:null,action:i,hasEagerState:!1,eagerState:null,next:null},KM(n)){if(e)throw Error(ct(479))}else e=RN(n,t,i,2),e!==null&&so(e,n,2)}function KM(n){var e=n.alternate;return n===Fn||e!==null&&e===Fn}function $z(n,e){fy=EM=!0;var t=n.pending;t===null?e.next=e:(e.next=t.next,t.next=e),n.pending=e}function Jz(n,e,t){if((t&4194048)!==0){var i=e.lanes;i&=n.pendingLanes,t|=i,e.lanes=t,P4(n,t)}}var xM={readContext:Ua,use:XM,useCallback:mr,useContext:mr,useEffect:mr,useImperativeHandle:mr,useLayoutEffect:mr,useInsertionEffect:mr,useMemo:mr,useReducer:mr,useRef:mr,useState:mr,useDebugValue:mr,useDeferredValue:mr,useTransition:mr,useSyncExternalStore:mr,useId:mr,useHostTransitionStatus:mr,useFormState:mr,useActionState:mr,useOptimistic:mr,useMemoCache:mr,useCacheRefresh:mr,useEffectEvent:mr},eq={readContext:Ua,use:XM,useCallback:function(n,e){return Es().memoizedState=[n,e===void 0?null:e],n},useContext:Ua,useEffect:TU,useImperativeHandle:function(n,e,t){t=t!=null?t.concat([n]):null,$3(4194308,4,Bz.bind(null,e,n),t)},useLayoutEffect:function(n,e){return $3(4194308,4,n,e)},useInsertionEffect:function(n,e){$3(4,2,n,e)},useMemo:function(n,e){var t=Es();e=e===void 0?null:e;var i=n();if(Um){ih(!0);try{n()}finally{ih(!1)}}return t.memoizedState=[i,e],i},useReducer:function(n,e,t){var i=Es();if(t!==void 0){var r=t(e);if(Um){ih(!0);try{t(e)}finally{ih(!1)}}}else r=e;return i.memoizedState=i.baseState=r,n={pending:null,lanes:0,dispatch:null,lastRenderedReducer:n,lastRenderedState:r},i.queue=n,n=n.dispatch=gW.bind(null,Fn,n),[i.memoizedState,n]},useRef:function(n){var e=Es();return n={current:n},e.memoizedState=n},useState:function(n){n=kL(n);var e=n.queue,t=Zz.bind(null,Fn,e);return e.dispatch=t,[n.memoizedState,t]},useDebugValue:jN,useDeferredValue:function(n,e){var t=Es();return QN(t,n,e)},useTransition:function(){var n=kL(!1);return n=jz.bind(null,Fn,n.queue,!0,!1),Es().memoizedState=n,[!1,n]},useSyncExternalStore:function(n,e,t){var i=Fn,r=Es();if(Yn){if(t===void 0)throw Error(ct(407));t=t()}else{if(t=e(),ji===null)throw Error(ct(349));(fi&127)!==0||Az(i,e,t)}r.memoizedState=t;var a={value:t,getSnapshot:e};return r.queue=a,TU(Rz.bind(null,i,a,n),[n]),i.flags|=2048,yy(9,{destroy:void 0},Cz.bind(null,i,a,t,e),null),t},useId:function(){var n=Es(),e=ji.identifierPrefix;if(Yn){var t=Lc,i=Ic;t=(i&~(1<<32-Xo(i)-1)).toString(32)+t,e="_"+e+"R_"+t,t=wM++,0<t&&(e+="H"+t.toString(32)),e+="_"}else t=cW++,e="_"+e+"r_"+t.toString(32)+"_";return n.memoizedState=e},useHostTransitionStatus:XN,useFormState:EU,useActionState:EU,useOptimistic:function(n){var e=Es();e.memoizedState=e.baseState=n;var t={pending:null,lanes:0,dispatch:null,lastRenderedReducer:null,lastRenderedState:null};return e.queue=t,e=YN.bind(null,Fn,!0,t),t.dispatch=e,[n,e]},useMemoCache:VN,useCacheRefresh:function(){return Es().memoizedState=_W.bind(null,Fn)},useEffectEvent:function(n){var e=Es(),t={impl:n};return e.memoizedState=t,function(){if((Ei&2)!==0)throw Error(ct(440));return t.impl.apply(void 0,arguments)}}},tq={readContext:Ua,use:XM,useCallback:Vz,useContext:Ua,useEffect:WN,useImperativeHandle:Hz,useInsertionEffect:zz,useLayoutEffect:qz,useMemo:Gz,useReducer:Z3,useRef:Pz,useState:function(){return Z3(Rf)},useDebugValue:jN,useDeferredValue:function(n,e){var t=Rr();return Wz(t,Bi.memoizedState,n,e)},useTransition:function(){var n=Z3(Rf)[0],e=Rr().memoizedState;return[typeof n=="boolean"?n:iw(n),e]},useSyncExternalStore:Mz,useId:Yz,useHostTransitionStatus:XN,useFormState:wU,useActionState:wU,useOptimistic:function(n,e){var t=Rr();return Nz(t,Bi,n,e)},useMemoCache:VN,useCacheRefresh:Kz,useEffectEvent:Uz},vW={readContext:Ua,use:XM,useCallback:Vz,useContext:Ua,useEffect:WN,useImperativeHandle:Hz,useInsertionEffect:zz,useLayoutEffect:qz,useMemo:Gz,useReducer:WI,useRef:Pz,useState:function(){return WI(Rf)},useDebugValue:jN,useDeferredValue:function(n,e){var t=Rr();return Bi===null?QN(t,n,e):Wz(t,Bi.memoizedState,n,e)},useTransition:function(){var n=WI(Rf)[0],e=Rr().memoizedState;return[typeof n=="boolean"?n:iw(n),e]},useSyncExternalStore:Mz,useId:Yz,useHostTransitionStatus:XN,useFormState:xU,useActionState:xU,useOptimistic:function(n,e){var t=Rr();return Bi!==null?Nz(t,Bi,n,e):(t.baseState=n,[n,t.queue.dispatch])},useMemoCache:VN,useCacheRefresh:Kz,useEffectEvent:Uz};function jI(n,e,t,i){e=n.memoizedState,t=t(i,e),t=t==null?e:Qi({},e,t),n.memoizedState=t,n.lanes===0&&(n.updateQueue.baseState=t)}var FL={enqueueSetState:function(n,e,t){n=n._reactInternals;var i=Yo(),r=fh(i);r.payload=e,t!=null&&(r.callback=t),e=dh(n,r,i),e!==null&&(so(e,n,i),TE(e,n,i))},enqueueReplaceState:function(n,e,t){n=n._reactInternals;var i=Yo(),r=fh(i);r.tag=1,r.payload=e,t!=null&&(r.callback=t),e=dh(n,r,i),e!==null&&(so(e,n,i),TE(e,n,i))},enqueueForceUpdate:function(n,e){n=n._reactInternals;var t=Yo(),i=fh(t);i.tag=2,e!=null&&(i.callback=e),e=dh(n,i,t),e!==null&&(so(e,n,t),TE(e,n,t))}};function MU(n,e,t,i,r,a,s){return n=n.stateNode,typeof n.shouldComponentUpdate=="function"?n.shouldComponentUpdate(i,a,s):e.prototype&&e.prototype.isPureReactComponent?!PE(t,i)||!PE(r,a):!0}function AU(n,e,t,i){n=e.state,typeof e.componentWillReceiveProps=="function"&&e.componentWillReceiveProps(t,i),typeof e.UNSAFE_componentWillReceiveProps=="function"&&e.UNSAFE_componentWillReceiveProps(t,i),e.state!==n&&FL.enqueueReplaceState(e,e.state,null)}function zm(n,e){var t=e;if("ref"in e){t={};for(var i in e)i!=="ref"&&(t[i]=e[i])}if(n=n.defaultProps){t===e&&(t=Qi({},t));for(var r in n)t[r]===void 0&&(t[r]=n[r])}return t}function nq(n){pM(n)}function iq(n){console.error(n)}function rq(n){pM(n)}function TM(n,e){try{var t=n.onUncaughtError;t(e.value,{componentStack:e.stack})}catch(i){setTimeout(function(){throw i})}}function CU(n,e,t){try{var i=n.onCaughtError;i(t.value,{componentStack:t.stack,errorBoundary:e.tag===1?e.stateNode:null})}catch(r){setTimeout(function(){throw r})}}function PL(n,e,t){return t=fh(t),t.tag=3,t.payload={element:null},t.callback=function(){TM(n,e)},t}function aq(n){return n=fh(n),n.tag=3,n}function sq(n,e,t,i){var r=t.type.getDerivedStateFromError;if(typeof r=="function"){var a=i.value;n.payload=function(){return r(a)},n.callback=function(){CU(e,t,i)}}var s=t.stateNode;s!==null&&typeof s.componentDidCatch=="function"&&(n.callback=function(){CU(e,t,i),typeof r!="function"&&(mh===null?mh=new Set([this]):mh.add(this));var l=i.stack;this.componentDidCatch(i.value,{componentStack:l!==null?l:""})})}function yW(n,e,t,i,r){if(t.flags|=32768,i!==null&&typeof i=="object"&&typeof i.then=="function"){if(e=t.alternate,e!==null&&Om(e,t,r,!0),t=Ha.current,t!==null){switch(t.tag){case 31:case 13:case 19:return ts===null?kM():t.alternate===null&&_r===0&&(_r=3),t.flags&=-257,t.flags|=65536,t.lanes=r,i===yM?t.flags|=16384:(e=t.updateQueue,e===null?t.updateQueue=new Set([i]):e.add(i),JI(n,i,r)),!1;case 22:return t.flags|=65536,i===yM?t.flags|=16384:(e=t.updateQueue,e===null?(e={transitions:null,markerInstances:null,retryQueue:new Set([i])},t.updateQueue=e):(t=e.retryQueue,t===null?e.retryQueue=new Set([i]):t.add(i)),JI(n,i,r)),!1}throw Error(ct(435,t.tag))}return JI(n,i,r),kM(),!1}if(Yn)return e=Ha.current,e!==null?((e.flags&65536)===0&&(e.flags|=256),e.flags|=65536,e.lanes=r,i!==TL&&(n=Error(ct(422),{cause:i}),zE(Vl(n,t)))):(i!==TL&&(e=Error(ct(423),{cause:i}),zE(Vl(e,t))),n=n.current.alternate,n.flags|=65536,r&=-r,n.lanes|=r,i=Vl(i,t),r=PL(n.stateNode,i,r),GI(n,r),_r!==4&&(_r=2)),!1;var a=Error(ct(520),{cause:i});if(a=Vl(a,t),NE===null?NE=[a]:NE.push(a),_r!==4&&(_r=2),e===null)return!0;i=Vl(i,t),t=e;do{switch(t.tag){case 3:return t.flags|=65536,n=r&-r,t.lanes|=n,n=PL(t.stateNode,i,n),GI(t,n),!1;case 1:if(e=t.type,a=t.stateNode,(t.flags&128)===0&&(typeof e.getDerivedStateFromError=="function"||a!==null&&typeof a.componentDidCatch=="function"&&(mh===null||!mh.has(a))))return t.flags|=65536,r&=-r,t.lanes|=r,r=aq(r),sq(r,n,t,i),GI(t,r),!1;break;case 22:if(t.memoizedState!==null)return t.flags|=65536,!1}t=t.return}while(t!==null);return!1}var KN=Error(ct(461)),Qr=!1;function ia(n,e,t,i){e.child=n===null?bz(e,null,t,i):Pm(e,n.child,t,i)}function RU(n,e,t,i,r){t=t.render;var a=e.ref;if("ref"in i){var s={};for(var l in i)l!=="ref"&&(s[l]=i[l])}else s=i;return Dm(e),i=zN(n,e,t,s,a,r),l=qN(),n!==null&&!Qr?(BN(n,e,r),If(n,e,r)):(Yn&&l&&WM(e),e.flags|=1,ia(n,e,i,r),e.child)}function IU(n,e,t,i,r){if(n===null){var a=t.type;return typeof a=="function"&&!IN(a)&&a.defaultProps===void 0&&t.compare===null?(e.tag=15,e.type=a,oq(n,e,a,i,r)):(n=X3(t.type,null,i,e,e.mode,r),n.ref=e.ref,n.return=e,e.child=n)}if(a=n.child,!$N(n,r)){var s=a.memoizedProps;if(t=t.compare,t=t!==null?t:PE,t(s,i)&&n.ref===e.ref)return If(n,e,r)}return e.flags|=1,n=xf(a,i),n.ref=e.ref,n.return=e,e.child=n}function oq(n,e,t,i,r){if(n!==null){var a=n.memoizedProps;if(PE(a,i)&&n.ref===e.ref)if(Qr=!1,e.pendingProps=i=a,$N(n,r))(n.flags&131072)!==0&&(Qr=!0);else return e.lanes=n.lanes,If(n,e,r)}return UL(n,e,t,i,r)}function lq(n,e,t,i){var r=i.children,a=n!==null?n.memoizedState:null;if(n===null&&e.stateNode===null&&(e.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),i.mode==="hidden"){if((e.flags&128)!==0){if(a=a!==null?a.baseLanes|t:t,n!==null){for(i=e.child=n.child,r=0;i!==null;)r=r|i.lanes|i.childLanes,i=i.sibling;i=r&~a}else i=0,e.child=null;return LU(n,e,a,t,i)}if((t&536870912)!==0)e.memoizedState={baseLanes:0,cachePool:null},n!==null&&K3(e,a!==null?a.cachePool:null),a!==null?yU(e,a):LL(),wz(e);else return i=e.lanes=536870912,LU(n,e,a!==null?a.baseLanes|t:t,t,i)}else a!==null?(K3(e,a.cachePool),yU(e,a),ph(),e.memoizedState=null):(n!==null&&K3(e,null),LL(),ph());return ia(n,e,r,t),e.child}function RE(n,e){return n!==null&&n.tag===22||e.stateNode!==null||(e.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),e.sibling}function LU(n,e,t,i,r){var a=kN();return a=a===null?null:{parent:jr._currentValue,pool:a},e.memoizedState={baseLanes:t,cachePool:a},n!==null&&K3(e,null),LL(),wz(e),n!==null&&Om(n,e,i,!0),e.childLanes=r,null}function J3(n,e){return e=ZM({mode:e.mode,children:e.children},n.mode),e.ref=n.ref,n.child=e,e.return=n,e}function NU(n,e,t){return Pm(e,n.child,null,t),n=J3(e,e.pendingProps),n.flags|=2,Vo(e),e.memoizedState=null,n}function bW(n,e,t){var i=e.pendingProps,r=(e.flags&128)!==0;if(e.flags&=-129,n===null){if(Yn){if(i.mode==="hidden")return n=J3(e,i),e.lanes=536870912,n.memoizedState={baseLanes:0,cachePool:null},RE(null,n);if(NL(e),(n=Zi)?(n=lB(n,Gl),n=n!==null&&n.data==="&"?n:null,n!==null&&(e.memoizedState={dehydrated:n,treeContext:yh!==null?{id:Ic,overflow:Lc}:null,retryLane:536870912,hydrationErrors:null},t=hz(n),t.return=e,e.child=t,Sa=e,Zi=null)):n=null,n===null)throw bh(e);return e.lanes=536870912,null}return J3(e,i)}var a=n.memoizedState;if(a!==null){var s=a.dehydrated;if(NL(e),r)if(e.flags&256)e.flags&=-257,e=NU(n,e,t);else if(e.memoizedState!==null)e.child=n.child,e.flags|=128,e=null;else throw Error(ct(558));else if(Qr||Om(n,e,t,!1),r=(t&n.childLanes)!==0,Qr||r){if(Sh.current===null){if(i=ji,i!==null&&(s=U4(i,t),s!==0&&s!==a.retryLane))throw a.retryLane=s,Gm(n,s),so(i,n,s),KN;kM()}e=NU(n,e,t)}else n=a.treeContext,Zi=Wl(s.nextSibling),Sa=e,Yn=!0,ch=null,Gl=!1,n!==null&&mz(e,n),e=J3(e,i),e.flags|=134221824;return e}return n=xf(n.child,{mode:i.mode,children:i.children}),n.ref=e.ref,e.child=n,n.return=e,n}function Wv(n,e){var t=e.ref;if(t===null)n!==null&&n.ref!==null&&(e.flags|=4194816);else{if(typeof t!="function"&&typeof t!="object")throw Error(ct(284));(n===null||n.ref!==t)&&(e.flags|=4194816)}}function UL(n,e,t,i,r){return Dm(e),t=zN(n,e,t,i,void 0,r),i=qN(),n!==null&&!Qr?(BN(n,e,r),If(n,e,r)):(Yn&&i&&WM(e),e.flags|=1,ia(n,e,t,r),e.child)}function kU(n,e,t,i,r,a){return Dm(e),e.updateQueue=null,t=Tz(e,i,t,r),xz(n),i=qN(),n!==null&&!Qr?(BN(n,e,a),If(n,e,a)):(Yn&&i&&WM(e),e.flags|=1,ia(n,e,t,a),e.child)}function OU(n,e,t,i,r){if(Dm(e),e.stateNode===null){var a=ny,s=t.contextType;typeof s=="object"&&s!==null&&(a=Ua(s)),a=new t(i,a),e.memoizedState=a.state!==null&&a.state!==void 0?a.state:null,a.updater=FL,e.stateNode=a,a._reactInternals=e,a=e.stateNode,a.props=i,a.state=e.memoizedState,a.refs={},DN(e),s=t.contextType,a.context=typeof s=="object"&&s!==null?Ua(s):ny,a.state=e.memoizedState,s=t.getDerivedStateFromProps,typeof s=="function"&&(jI(e,t,s,i),a.state=e.memoizedState),typeof t.getDerivedStateFromProps=="function"||typeof a.getSnapshotBeforeUpdate=="function"||typeof a.UNSAFE_componentWillMount!="function"&&typeof a.componentWillMount!="function"||(s=a.state,typeof a.componentWillMount=="function"&&a.componentWillMount(),typeof a.UNSAFE_componentWillMount=="function"&&a.UNSAFE_componentWillMount(),s!==a.state&&FL.enqueueReplaceState(a,a.state,null),AE(e,i,a,r),ME(),a.state=e.memoizedState),typeof a.componentDidMount=="function"&&(e.flags|=4194308),i=!0}else if(n===null){a=e.stateNode;var l=e.memoizedProps,c=zm(t,l);a.props=c;var f=a.context,p=t.contextType;s=ny,typeof p=="object"&&p!==null&&(s=Ua(p));var h=t.getDerivedStateFromProps;p=typeof h=="function"||typeof a.getSnapshotBeforeUpdate=="function",l=e.pendingProps!==l,p||typeof a.UNSAFE_componentWillReceiveProps!="function"&&typeof a.componentWillReceiveProps!="function"||(l||f!==s)&&AU(e,a,i,s),th=!1;var _=e.memoizedState;a.state=_,AE(e,i,a,r),ME(),f=e.memoizedState,l||_!==f||th?(typeof h=="function"&&(jI(e,t,h,i),f=e.memoizedState),(c=th||MU(e,t,c,i,_,f,s))?(p||typeof a.UNSAFE_componentWillMount!="function"&&typeof a.componentWillMount!="function"||(typeof a.componentWillMount=="function"&&a.componentWillMount(),typeof a.UNSAFE_componentWillMount=="function"&&a.UNSAFE_componentWillMount()),typeof a.componentDidMount=="function"&&(e.flags|=4194308)):(typeof a.componentDidMount=="function"&&(e.flags|=4194308),e.memoizedProps=i,e.memoizedState=f),a.props=i,a.state=f,a.context=s,i=c):(typeof a.componentDidMount=="function"&&(e.flags|=4194308),i=!1)}else{a=e.stateNode,RL(n,e),s=e.memoizedProps,p=zm(t,s),a.props=p,h=e.pendingProps,_=a.context,f=t.contextType,c=ny,typeof f=="object"&&f!==null&&(c=Ua(f)),l=t.getDerivedStateFromProps,(f=typeof l=="function"||typeof a.getSnapshotBeforeUpdate=="function")||typeof a.UNSAFE_componentWillReceiveProps!="function"&&typeof a.componentWillReceiveProps!="function"||(s!==h||_!==c)&&AU(e,a,i,c),th=!1,_=e.memoizedState,a.state=_,AE(e,i,a,r),ME();var g=e.memoizedState;s!==h||_!==g||th||n!==null&&n.dependencies!==null&&vM(n.dependencies)?(typeof l=="function"&&(jI(e,t,l,i),g=e.memoizedState),(p=th||MU(e,t,p,i,_,g,c)||n!==null&&n.dependencies!==null&&vM(n.dependencies))?(f||typeof a.UNSAFE_componentWillUpdate!="function"&&typeof a.componentWillUpdate!="function"||(typeof a.componentWillUpdate=="function"&&a.componentWillUpdate(i,g,c),typeof a.UNSAFE_componentWillUpdate=="function"&&a.UNSAFE_componentWillUpdate(i,g,c)),typeof a.componentDidUpdate=="function"&&(e.flags|=4),typeof a.getSnapshotBeforeUpdate=="function"&&(e.flags|=1024)):(typeof a.componentDidUpdate!="function"||s===n.memoizedProps&&_===n.memoizedState||(e.flags|=4),typeof a.getSnapshotBeforeUpdate!="function"||s===n.memoizedProps&&_===n.memoizedState||(e.flags|=1024),e.memoizedProps=i,e.memoizedState=g),a.props=i,a.state=g,a.context=c,i=p):(typeof a.componentDidUpdate!="function"||s===n.memoizedProps&&_===n.memoizedState||(e.flags|=4),typeof a.getSnapshotBeforeUpdate!="function"||s===n.memoizedProps&&_===n.memoizedState||(e.flags|=1024),i=!1)}return a=i,Wv(n,e),i=(e.flags&128)!==0,a||i?(a=e.stateNode,t=i&&typeof t.getDerivedStateFromError!="function"?null:a.render(),e.flags|=1,n!==null&&i?(e.child=Pm(e,n.child,null,r),e.child=Pm(e,null,t,r)):ia(n,e,t,r),e.memoizedState=a.state,n=e.child):n=If(n,e,r),n}function DU(n,e,t,i){return km(),e.flags|=256,ia(n,e,t,i),e.child}var zL={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function qL(n){return{baseLanes:n,cachePool:gz()}}function BL(n,e,t){return n=n!==null?n.childLanes&~t:0,e&&(n|=Wo),n}function uq(n,e,t){var i=e.pendingProps,r=!1,a=(e.flags&128)!==0,s;if((s=a)||(s=n!==null&&n.memoizedState===null?!1:(qa.current&2)!==0),s&&(r=!0,e.flags&=-129),s=(e.flags&32)!==0,e.flags&=-33,n===null){if(Yn){if(r?hh(e):ph(),(n=Zi)?(n=lB(n,Gl),n=n!==null&&n.data!=="&"?n:null,n!==null&&(e.memoizedState={dehydrated:n,treeContext:yh!==null?{id:Ic,overflow:Lc}:null,retryLane:536870912,hydrationErrors:null},t=hz(n),t.return=e,e.child=t,Sa=e,Zi=null)):n=null,n===null)throw bh(e);return ck(n)?e.lanes=32:e.lanes=536870912,null}return a=i.children,i=i.fallback,r?(ph(),r=e.mode,a=ZM({mode:"hidden",children:a},r),i=Rm(i,r,t,null),a.return=e,i.return=e,a.sibling=i,e.child=a,i=e.child,i.memoizedState=qL(t),i.childLanes=BL(n,s,t),e.memoizedState=zL,RE(null,i)):(hh(e),ZN(e,a))}var l=n.memoizedState;if(l!==null){var c=l.dehydrated;if(c!==null)return SW(n,e,a,s,i,c,l,t)}return r?(ph(),r=i.fallback,a=e.mode,l=n.child,c=l.sibling,i=xf(l,{mode:"hidden",children:i.children}),i.subtreeFlags=l.subtreeFlags&1206910976,c!==null?r=xf(c,r):(r=Rm(r,a,t,null),r.flags|=2),r.return=e,i.return=e,i.sibling=r,e.child=i,RE(null,i),i=e.child,r=n.child.memoizedState,r===null?r=qL(t):(a=r.cachePool,a!==null?(l=jr._currentValue,a=a.parent!==l?{parent:l,pool:l}:a):a=gz(),r={baseLanes:r.baseLanes|t,cachePool:a}),i.memoizedState=r,i.childLanes=BL(n,s,t),e.memoizedState=zL,RE(n.child,i)):(hh(e),t=n.child,n=t.sibling,t=xf(t,{mode:"visible",children:i.children}),t.return=e,t.sibling=null,n!==null&&(s=e.deletions,s===null?(e.deletions=[n],e.flags|=16):s.push(n)),e.child=t,e.memoizedState=null,t)}function ZN(n,e){return e=ZM({mode:"visible",children:e},n.mode),e.return=n,n.child=e}function ZM(n,e){return n=ao(22,n,null,e),n.lanes=0,n}function O3(n,e,t){return Pm(e,n.child,null,t),n=ZN(e,e.pendingProps.children),n.flags|=2,e.memoizedState=null,n}function SW(n,e,t,i,r,a,s,l){if(t)return e.flags&256?(hh(e),e.flags&=-257,O3(n,e,l)):e.memoizedState!==null?(ph(),e.child=n.child,e.flags|=128,null):(ph(),a=r.fallback,s=e.mode,r=ZM({mode:"visible",children:r.children},s),a=Rm(a,s,l,null),a.flags|=2,r.return=e,a.return=e,r.sibling=a,e.child=r,Pm(e,n.child,null,l),r=e.child,r.memoizedState=qL(l),r.childLanes=BL(n,i,l),e.memoizedState=zL,RE(null,r));if(hh(e),ck(a)){if(i=a.nextSibling&&a.nextSibling.dataset,i)var c=i.dgst;return i=c,i!==""&&(r=Error(ct(419)),r.stack="",r.digest=i,zE({value:r,source:null,stack:null})),O3(n,e,l)}if(Qr||Om(n,e,l,!1),i=(l&n.childLanes)!==0,Qr||i){if(Sh.current!==null)return O3(n,e,l);if(i=ji,i!==null&&(r=U4(i,l),r!==0&&r!==s.retryLane))throw s.retryLane=r,Gm(n,r),so(i,n,r),KN;return dN(a)||kM(),O3(n,e,l)}return dN(a)?(e.flags|=192,e.child=n.child,null):(n=s.treeContext,Zi=Wl(a.nextSibling),Sa=e,Yn=!0,ch=null,Gl=!1,n!==null&&mz(e,n),e=ZN(e,r.children),e.flags|=134221824,e)}function FU(n,e,t){n.lanes|=e;var i=n.alternate;i!==null&&(i.lanes|=e),Y3(n.return,e,t)}function PU(n){for(var e=null;n!==null;){var t=n.alternate;t!==null&&SM(t)===null&&(e=n),n=n.sibling}return e}function D3(n,e,t,i,r,a){var s=n.memoizedState;s===null?n.memoizedState={isBackwards:e,rendering:null,renderingStartTime:0,last:i,tail:t,tailMode:r,treeForkCount:a}:(s.isBackwards=e,s.rendering=null,s.renderingStartTime=0,s.last=i,s.tail=t,s.tailMode=r,s.treeForkCount=a)}function QI(n){var e=n.child;for(n.child=null;e!==null;){var t=e.sibling;e.sibling=n.child,n.child=e,e=t}}function HL(n,e,t){var i=e.pendingProps,r=i.revealOrder,a=i.tail;i=i.children;var s=qa.current;if(e.flags&128)return BE(e,s),null;var l=(s&2)!==0;if(l?(s=s&1|2,e.flags|=128):s&=1,BE(e,s),r==="backwards"&&n!==null?(QI(n),ia(n,e,i,t),QI(n)):ia(n,e,i,t),i=Yn?UE:0,!l&&n!==null&&(n.flags&128)!==0)e:for(n=e.child;n!==null;){if(n.tag===13)n.memoizedState!==null&&FU(n,t,e);else if(n.tag===19)FU(n,t,e);else if(n.child!==null){n.child.return=n,n=n.child;continue}if(n===e)break e;for(;n.sibling===null;){if(n.return===null||n.return===e)break e;n=n.return}n.sibling.return=n.return,n=n.sibling}switch(r){case"backwards":t=PU(e.child),t===null?(r=e.child,e.child=null):(r=t.sibling,t.sibling=null,QI(e)),D3(e,!0,r,null,a,i);break;case"unstable_legacy-backwards":for(t=null,r=e.child,e.child=null;r!==null;){if(n=r.alternate,n!==null&&SM(n)===null){e.child=r;break}n=r.sibling,r.sibling=t,t=r,r=n}D3(e,!0,t,null,a,i);break;case"together":D3(e,!1,null,null,void 0,i);break;case"independent":e.memoizedState=null;break;default:t=PU(e.child),t===null?(r=e.child,e.child=null):(r=t.sibling,t.sibling=null),D3(e,!1,r,t,a,i)}return e.child}function UU(n,e,t){var i=e.pendingProps;return ah(e,e.type,i.value),ia(n,e,i.children,t),e.child}function If(n,e,t){if(n!==null&&(e.dependencies=n.dependencies),wh|=e.lanes,(t&e.childLanes)===0)if(n!==null){if(Om(n,e,t,!1),(t&e.childLanes)===0)return null}else return null;if(n!==null&&e.child!==n.child)throw Error(ct(153));if(e.child!==null){for(n=e.child,t=xf(n,n.pendingProps),e.child=t,t.return=e;n.sibling!==null;)n=n.sibling,t=t.sibling=xf(n,n.pendingProps),t.return=e;t.sibling=null}return e.child}function $N(n,e){return(n.lanes&e)!==0?!0:(n=n.dependencies,!!(n!==null&&vM(n)))}function EW(n,e,t){switch(e.tag){case 3:cM(e,e.stateNode.containerInfo),ah(e,jr,n.memoizedState.cache),km();break;case 27:case 5:mL(e);break;case 4:cM(e,e.stateNode.containerInfo);break;case 10:ah(e,e.type,e.memoizedProps.value);break;case 31:if(e.memoizedState!==null)return e.flags|=128,NL(e),null;break;case 13:var i=e.memoizedState;if(i!==null){if(i.dehydrated!==null)return hh(e),e.flags|=128,null;i=Om(n,e,t,!1);var r=e.child.childLanes;return i||(t&r)!==0?uq(n,e,t):(hh(e),n=If(n,e,t),n!==null?n.sibling:null)}hh(e);break;case 19:if(e.flags&128)return HL(n,e,t);if(r=(n.flags&128)!==0,i=(t&e.childLanes)!==0,i||(Om(n,e,t,!1),i=(t&e.childLanes)!==0),r){if(i)return HL(n,e,t);e.flags|=128}if(r=e.memoizedState,r!==null&&(r.rendering=null,r.tail=null,r.lastEffect=null),BE(e,qa.current),i)break;return null;case 22:return e.lanes=0,lq(n,e,t,e.pendingProps);case 24:ah(e,jr,n.memoizedState.cache)}return If(n,e,t)}function cq(n,e,t){if(n!==null)if(n.memoizedProps!==e.pendingProps)Qr=!0;else{if(!$N(n,t)&&(e.flags&128)===0)return Qr=!1,EW(n,e,t);Qr=(n.flags&131072)!==0}else Qr=!1,Yn&&(e.flags&1048576)!==0&&pz(e,UE,e.index);switch(e.lanes=0,e.tag){case 16:e:{var i=e.pendingProps;if(n=xm(e.elementType),e.type=n,typeof n=="function")IN(n)?(i=zm(n,i),e.tag=1,e=OU(null,e,n,i,t)):(e.tag=0,e=UL(null,e,n,i,t));else{if(n!=null){var r=n.$$typeof;if(r===gN){e.tag=11,e=RU(null,e,n,i,t);break e}else if(r===vN){e.tag=14,e=IU(null,e,n,i,t);break e}else if(r===Cc){e.tag=10,e.type=n,e=UU(null,e,t);break e}}throw e=hL(n)||n,Error(ct(306,e,""))}}return e;case 0:return UL(n,e,e.type,e.pendingProps,t);case 1:return i=e.type,r=zm(i,e.pendingProps),OU(n,e,i,r,t);case 3:e:{if(cM(e,e.stateNode.containerInfo),n===null)throw Error(ct(387));i=e.pendingProps;var a=e.memoizedState;r=a.element,RL(n,e),AE(e,i,null,t);var s=e.memoizedState;if(i=s.cache,ah(e,jr,i),i!==a.cache&&AL(e,[jr],t,!0),ME(),i=s.element,a.isDehydrated)if(a={element:i,isDehydrated:!1,cache:s.cache},e.updateQueue.baseState=a,e.memoizedState=a,e.flags&256){e=DU(n,e,i,t);break e}else if(i!==r){r=Vl(Error(ct(424)),e),zE(r),e=DU(n,e,i,t);break e}else{switch(n=e.stateNode.containerInfo,n.nodeType){case 9:n=n.body;break;default:n=n.nodeName==="HTML"?n.ownerDocument.body:n}for(Zi=Wl(n.firstChild),Sa=e,Yn=!0,ch=null,Gl=!0,t=bz(e,null,i,t),e.child=t;t;)t.flags=t.flags&-3|134221824,t=t.sibling}else{if(km(),i===r){e=If(n,e,t);break e}ia(n,e,i,t)}e=e.child}return e;case 26:return Wv(n,e),n===null?(t=f4(e.type,null,e.pendingProps,null))?e.memoizedState=t:Yn||(e.stateNode=Jq(e.type,e.pendingProps,uh.current,e)):e.memoizedState=f4(e.type,n.memoizedProps,e.pendingProps,n.memoizedState),null;case 27:return mL(e),n===null&&Yn&&(i=e.stateNode=uB(e.type,e.pendingProps,uh.current),Sa=e,Gl=!0,r=Zi,Th(e.type)?(hN=r,Zi=Wl(i.firstChild)):Zi=r),ia(n,e,e.pendingProps.children,t),Wv(n,e),n===null&&(e.flags|=4194304),e.child;case 5:return n===null&&Yn&&((r=i=Zi)&&(i=pj(i,e.type,e.pendingProps,Gl),i!==null?(e.stateNode=i,Sa=e,Zi=Wl(i.firstChild),Gl=!1,r=!0):r=!1),r||bh(e)),mL(e),r=e.type,a=e.pendingProps,s=n!==null?n.memoizedProps:null,i=a.children,uN(r,a)?i=null:s!==null&&uN(r,s)&&(e.flags|=32),e.memoizedState!==null&&(r=zN(n,e,fW,null,null,t),My._currentValue=r),Wv(n,e),ia(n,e,i,t),e.child;case 6:return n===null&&Yn&&((n=t=Zi)&&(t=mj(t,e.pendingProps,Gl),t!==null?(e.stateNode=t,Sa=e,Zi=null,n=!0):n=!1),n||bh(e)),null;case 13:return uq(n,e,t);case 4:return cM(e,e.stateNode.containerInfo),i=e.pendingProps,n===null?e.child=Pm(e,null,i,t):ia(n,e,i,t),e.child;case 11:return RU(n,e,e.type,e.pendingProps,t);case 7:return i=e.pendingProps,Wv(n,e),ia(n,e,i,t),e.child;case 8:return ia(n,e,e.pendingProps.children,t),e.child;case 12:return ia(n,e,e.pendingProps.children,t),e.child;case 10:return UU(n,e,t);case 9:return r=e.type._context,i=e.pendingProps.children,Dm(e),r=Ua(r),i=i(r),e.flags|=1,ia(n,e,i,t),e.child;case 14:return IU(n,e,e.type,e.pendingProps,t);case 15:return oq(n,e,e.type,e.pendingProps,t);case 19:return HL(n,e,t);case 31:return bW(n,e,t);case 22:return lq(n,e,t,e.pendingProps);case 24:return Dm(e),i=Ua(jr),n===null?(r=kN(),r===null&&(r=ji,a=NN(),r.pooledCache=a,a.refCount++,a!==null&&(r.pooledCacheLanes|=t),r=a),e.memoizedState={parent:i,cache:r},DN(e),ah(e,jr,r)):((n.lanes&t)!==0&&(RL(n,e),AE(e,null,null,t),ME()),r=n.memoizedState,a=e.memoizedState,r.parent!==i?(r={parent:i,cache:i},e.memoizedState=r,e.lanes===0&&(e.memoizedState=e.updateQueue.baseState=r),ah(e,jr,i)):(i=a.cache,ah(e,jr,i),i!==r.cache&&AL(e,[jr],t,!0))),ia(n,e,e.pendingProps.children,t),e.child;case 30:return e.stateNode===null&&(e.stateNode={autoName:null,paired:null,clones:null,ref:null}),i=e.pendingProps,i.name!=null&&i.name!=="auto"?e.flags|=n===null?18882560:18874368:Yn&&WM(e),n!==null&&n.memoizedProps.name!==i.name?e.flags|=4194816:Wv(n,e),ia(n,e,i.children,t),e.child;case 29:throw e.pendingProps}throw Error(ct(156,e.tag))}function Sf(n){n.flags|=4}function XI(n,e,t,i,r){var a;if((a=(n.mode&32)!==0)&&(a=t===null?p4(e,i):p4(e,i)&&(i.src!==t.src||i.srcSet!==t.srcSet)),a){if(n.flags|=16777216,(r&335544128)===r)if(n.stateNode.complete)n.flags|=8192;else if(zq())n.flags|=8192;else throw Lm=yM,ON}else n.flags&=-16777217}function zU(n,e){if(e.type!=="stylesheet"||(e.state.loading&4)!==0)n.flags&=-16777217;else if(n.flags|=16777216,!hB(e))if(zq())n.flags|=8192;else throw Lm=yM,ON}function F3(n,e){e!==null&&(n.flags|=4),n.flags&16384&&(e=n.tag!==22?D4():536870912,n.lanes|=e,by|=e)}function dE(n,e){if(!Yn)switch(n.tailMode){case"visible":break;case"collapsed":for(var t=n.tail,i=null;t!==null;)t.alternate!==null&&(i=t),t=t.sibling;i===null?e||n.tail===null?n.tail=null:n.tail.sibling=null:i.sibling=null;break;default:for(e=n.tail,t=null;e!==null;)e.alternate!==null&&(t=e),e=e.sibling;t===null?n.tail=null:t.sibling=null}}function Ki(n){var e=n.alternate!==null&&n.alternate.child===n.child,t=0,i=0;if(e)for(var r=n.child;r!==null;)t|=r.lanes|r.childLanes,i|=r.subtreeFlags&1206910976,i|=r.flags&1206910976,r.return=n,r=r.sibling;else for(r=n.child;r!==null;)t|=r.lanes|r.childLanes,i|=r.subtreeFlags,i|=r.flags,r.return=n,r=r.sibling;return n.subtreeFlags|=i,n.childLanes=t,e}function wW(n,e,t){var i=e.pendingProps;switch(LN(e),e.tag){case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Ki(e),null;case 1:return Ki(e),null;case 3:return t=e.stateNode,i=null,n!==null&&(i=n.memoizedState.cache),e.memoizedState.cache!==i&&(e.flags|=2048),Tf(jr),_y(),t.pendingContext&&(t.context=t.pendingContext,t.pendingContext=null),(n===null||n.child===null)&&(Vv(e)?Sf(e):n===null||n.memoizedState.isDehydrated&&(e.flags&256)===0||(e.flags|=1024,VI())),Ki(e),null;case 26:var r=e.type,a=e.memoizedState;return n===null?(Sf(e),a!==null?(Ki(e),zU(e,a)):(Ki(e),XI(e,r,null,i,t))):a?a!==n.memoizedState?(Sf(e),Ki(e),zU(e,a)):(Ki(e),e.flags&=-16777217):(n=n.memoizedProps,n!==i&&Sf(e),Ki(e),XI(e,r,n,i,t)),null;case 27:if(fM(e),t=uh.current,r=e.type,n!==null&&e.stateNode!=null)n.memoizedProps!==i&&Sf(e);else{if(!i){if(e.stateNode===null)throw Error(ct(166));return Ki(e),e.subtreeFlags&=-33554433,null}n=Nc.current,Vv(e)?dU(e,n):(n=uB(r,i,t),e.stateNode=n,Sf(e))}return Ki(e),e.subtreeFlags&=-33554433,null;case 5:if(fM(e),r=e.type,n!==null&&e.stateNode!=null)n.memoizedProps!==i&&Sf(e);else{if(!i){if(e.stateNode===null)throw Error(ct(166));return Ki(e),e.subtreeFlags&=-33554433,null}if(a=Nc.current,Vv(e))dU(e,a);else{var s=WE(uh.current);switch(a){case 1:a=s.createElementNS("http://www.w3.org/2000/svg",r);break;case 2:a=s.createElementNS("http://www.w3.org/1998/Math/MathML",r);break;default:switch(r){case"svg":a=s.createElementNS("http://www.w3.org/2000/svg",r);break;case"math":a=s.createElementNS("http://www.w3.org/1998/Math/MathML",r);break;case"script":a=s.createElement("div"),a.innerHTML="<script><\/script>",a=a.removeChild(a.firstChild);break;case"select":a=typeof i.is=="string"?s.createElement("select",{is:i.is}):s.createElement("select"),i.multiple?a.multiple=!0:i.size&&(a.size=i.size);break;default:a=typeof i.is=="string"?s.createElement(r,{is:i.is}):s.createElement(r)}}a[Pa]=e,a[lo]=i;e:for(s=e.child;s!==null;){if(s.tag===5||s.tag===6)a.appendChild(s.stateNode);else if(s.tag!==4&&s.tag!==27&&s.child!==null){s.child.return=s,s=s.child;continue}if(s===e)break e;for(;s.sibling===null;){if(s.return===null||s.return===e)break e;s=s.return}s.sibling.return=s.return,s=s.sibling}e.stateNode=a;e:switch(Ba(a,r,i),r){case"button":case"input":case"select":case"textarea":i=!!i.autoFocus;break e;case"img":i=!0;break e;default:i=!1}i&&Sf(e)}}return Ki(e),e.subtreeFlags&=-33554433,XI(e,e.type,n===null?null:n.memoizedProps,e.pendingProps,t),null;case 6:if(n&&e.stateNode!=null)n.memoizedProps!==i&&Sf(e);else{if(typeof i!="string"&&e.stateNode===null)throw Error(ct(166));if(n=uh.current,Vv(e)){if(n=e.stateNode,t=e.memoizedProps,i=null,r=Sa,r!==null)switch(r.tag){case 27:case 5:i=r.memoizedProps}n[Pa]=e,n=!!(n.nodeValue===t||i!==null&&i.suppressHydrationWarning===!0||Zq(n.nodeValue,t)),n||bh(e,!0)}else n=WE(n).createTextNode(i),n[Pa]=e,e.stateNode=n}return Ki(e),null;case 31:if(t=e.memoizedState,n===null||n.memoizedState!==null){if(i=Vv(e),t!==null){if(n===null){if(!i)throw Error(ct(318));if(n=e.memoizedState,n=n!==null?n.dehydrated:null,!n)throw Error(ct(557));n[Pa]=e}else km(),(e.flags&128)===0&&(e.memoizedState=null),e.flags|=4;Ki(e),n=!1}else t=VI(),n!==null&&n.memoizedState!==null&&(n.memoizedState.hydrationErrors=t),n=!0;if(!n)return e.flags&256?(Vo(e),e):(Vo(e),null);if((e.flags&128)!==0)throw Error(ct(558))}return Ki(e),null;case 13:if(i=e.memoizedState,n===null||n.memoizedState!==null&&n.memoizedState.dehydrated!==null){if(r=Vv(e),i!==null&&i.dehydrated!==null){if(n===null){if(!r)throw Error(ct(318));if(r=e.memoizedState,r=r!==null?r.dehydrated:null,!r)throw Error(ct(317));r[Pa]=e}else km(),(e.flags&128)===0&&(e.memoizedState=null),e.flags|=4;Ki(e),r=!1}else r=VI(),n!==null&&n.memoizedState!==null&&(n.memoizedState.hydrationErrors=r),r=!0;if(!r)return e.flags&256?(Vo(e),e):(Vo(e),null)}return Vo(e),(e.flags&128)!==0?(e.lanes=t,e):(t=i!==null,n=n!==null&&n.memoizedState!==null,t&&(i=e.child,r=null,i.alternate!==null&&i.alternate.memoizedState!==null&&i.alternate.memoizedState.cachePool!==null&&(r=i.alternate.memoizedState.cachePool.pool),a=null,i.memoizedState!==null&&i.memoizedState.cachePool!==null&&(a=i.memoizedState.cachePool.pool),a!==r&&(i.flags|=2048)),t!==n&&t&&(e.child.flags|=8192),F3(e,e.updateQueue),Ki(e),null);case 4:return _y(),n===null&&ok(e.stateNode.containerInfo),e.flags|=67108864,Ki(e),null;case 10:return Tf(e.type),Ki(e),null;case 19:if(PN(e),i=e.memoizedState,i===null)return Ki(e),null;if(r=(e.flags&128)!==0,a=i.rendering,a===null)if(r)dE(i,!1);else{if(_r!==0||n!==null&&(n.flags&128)!==0)for(n=e.child;n!==null;){if(a=SM(n),a!==null){for(e.flags|=128,dE(i,!1),n=a.updateQueue,e.updateQueue=n,F3(e,n),e.subtreeFlags=0,n=t,t=e.child;t!==null;)dz(t,n),t=t.sibling;return BE(e,qa.current&1|2),Yn&&Ef(e,i.treeForkCount),e.child}n=n.sibling}i.tail!==null&&jo()>LM&&(e.flags|=128,r=!0,dE(i,!1),e.lanes=4194304)}else{if(!r)if(n=SM(a),n!==null){if(e.flags|=128,r=!0,n=n.updateQueue,e.updateQueue=n,F3(e,n),dE(i,!0),i.tail===null&&i.tailMode!=="collapsed"&&i.tailMode!=="visible"&&!a.alternate&&!Yn)return Ki(e),null}else 2*jo()-i.renderingStartTime>LM&&t!==536870912&&(e.flags|=128,r=!0,dE(i,!1),e.lanes=4194304);i.isBackwards?(a.sibling=e.child,e.child=a):(n=i.last,n!==null?n.sibling=a:e.child=a,i.last=a)}if(i.tail!==null){n=i.tail;e:{for(t=n;t!==null;){if(t.alternate!==null){t=!1;break e}t=t.sibling}t=!0}return i.rendering=n,i.tail=n.sibling,i.renderingStartTime=jo(),n.sibling=null,a=qa.current,a=r?a&1|2:a&1,i.tailMode==="visible"||i.tailMode==="collapsed"||!t||Yn?BE(e,a):(t=a,$i(Ha,e),$i(qa,t),ts===null&&(ts=e)),Yn&&Ef(e,i.treeForkCount),n}return Ki(e),null;case 22:case 23:return Vo(e),FN(),i=e.memoizedState!==null,n!==null?n.memoizedState!==null!==i&&(e.flags|=8192):i&&(e.flags|=8192),i?(t&536870912)!==0&&(e.flags&128)===0&&(Ki(e),e.subtreeFlags&6&&(e.flags|=8192)):Ki(e),t=e.updateQueue,t!==null&&F3(e,t.retryQueue),t=null,n!==null&&n.memoizedState!==null&&n.memoizedState.cachePool!==null&&(t=n.memoizedState.cachePool.pool),i=null,e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(i=e.memoizedState.cachePool.pool),i!==t&&(e.flags|=2048),n!==null&&za(Im),null;case 24:return t=null,n!==null&&(t=n.memoizedState.cache),e.memoizedState.cache!==t&&(e.flags|=2048),Tf(jr),Ki(e),null;case 25:return null;case 30:return e.flags|=33554432,Ki(e),null}throw Error(ct(156,e.tag))}function xW(n,e){switch(LN(e),e.tag){case 1:return n=e.flags,n&65536?(e.flags=n&-65537|128,e):null;case 3:return Tf(jr),_y(),n=e.flags,(n&65536)!==0&&(n&128)===0?(e.flags=n&-65537|128,e):null;case 26:case 27:case 5:return fM(e),null;case 31:if(e.memoizedState!==null){if(Vo(e),e.alternate===null)throw Error(ct(340));km()}return n=e.flags,n&65536?(e.flags=n&-65537|128,e):null;case 13:if(Vo(e),n=e.memoizedState,n!==null&&n.dehydrated!==null){if(e.alternate===null)throw Error(ct(340));km()}return n=e.flags,n&65536?(e.flags=n&-65537|128,e):null;case 19:return PN(e),n=e.flags,n&65536?(e.flags=n&-65537|128,n=e.memoizedState,n!==null&&(n.rendering=null,n.tail=null),e.flags|=4,e):null;case 4:return _y(),null;case 10:return Tf(e.type),null;case 22:case 23:return Vo(e),FN(),n!==null&&za(Im),n=e.flags,n&65536?(e.flags=n&-65537|128,e):null;case 24:return Tf(jr),null;case 25:return null;default:return null}}function fq(n,e){switch(LN(e),e.tag){case 3:Tf(jr),_y();break;case 26:case 27:case 5:fM(e);break;case 4:_y();break;case 31:e.memoizedState!==null&&Vo(e);break;case 13:Vo(e);break;case 19:PN(e);break;case 10:Tf(e.type);break;case 22:case 23:Vo(e),FN(),n!==null&&za(Im);break;case 24:Tf(jr)}}function rw(n,e){try{var t=e.updateQueue,i=t!==null?t.lastEffect:null;if(i!==null){var r=i.next;t=r;do{if((t.tag&n)===n){i=void 0;var a=t.create,s=t.inst;i=a(),s.destroy=i}t=t.next}while(t!==r)}}catch(l){Ui(e,e.return,l)}}function Eh(n,e,t){try{var i=e.updateQueue,r=i!==null?i.lastEffect:null;if(r!==null){var a=r.next;i=a;do{if((i.tag&n)===n){var s=i.inst,l=s.destroy;if(l!==void 0){s.destroy=void 0,r=e;var c=t,f=l;try{f()}catch(p){Ui(r,c,p)}}}i=i.next}while(i!==a)}}catch(p){Ui(e,e.return,p)}}function dq(n){var e=n.updateQueue;if(e!==null){var t=n.stateNode;try{Ez(e,t)}catch(i){Ui(n,n.return,i)}}}function hq(n,e,t){t.props=zm(n.type,n.memoizedProps),t.state=n.memoizedState;try{t.componentWillUnmount()}catch(i){Ui(n,e,i)}}function Mc(n,e){try{var t=n.ref;if(t!==null){switch(n.tag){case 26:case 27:case 5:var i=n.stateNode;break;case 30:var r=n.stateNode,a=Af(n.memoizedProps,r);(r.ref===null||r.ref.name!==a)&&(r.ref=iB(a)),i=r.ref;break;case 7:if(n.stateNode===null){var s=new Zo(n);oo(n.child,!1,dj,s,void 0,void 0),n.stateNode=s}i=n.stateNode;break;default:i=n.stateNode}typeof t=="function"?n.refCleanup=t(i):t.current=i}}catch(l){Ui(n,e,l)}}function Fa(n,e){var t=n.ref,i=n.refCleanup;if(t!==null)if(typeof i=="function")try{i()}catch(r){Ui(n,e,r)}finally{n.refCleanup=null,n=n.alternate,n!=null&&(n.refCleanup=null)}else if(typeof t=="function")try{t(null)}catch(r){Ui(n,e,r)}else t.current=null}function MM(n,e){if((n.tag===5||n.tag===27||n.tag===6)&&n.alternate===null&&e!==null)for(var t=0;t<e.length;t++)oB(n.stateNode,e[t])}function qU(n){for(var e=n.return;e!==null&&(ek(e)&&oB(n.stateNode,e.stateNode),!JN(e));)e=e.return}function IE(n){for(var e=n.return;e!==null&&(ek(e)&&hj(n.stateNode,e.stateNode),!JN(e));)e=e.return}function JN(n){return n.tag===5||n.tag===3||n.tag===27}function ek(n){return n&&n.tag===7&&n.stateNode!==null}function VL(n){var e=n.type,t=n.memoizedProps,i=n.stateNode;try{e:switch(e){case"button":case"input":case"select":case"textarea":t.autoFocus&&i.focus();break e;case"img":t.src?i.src=t.src:t.srcSet&&(i.srcset=t.srcSet)}}catch(r){Ui(n,n.return,r)}}function YI(n,e,t){try{var i=n.stateNode;XW(i,n.type,t,e),i[lo]=e}catch(r){Ui(n,n.return,r)}}function pq(n){return n.tag===5||n.tag===3||n.tag===26||n.tag===27&&Th(n.type)||n.tag===4}function KI(n){e:for(;;){for(;n.sibling===null;){if(n.return===null||pq(n.return))return null;n=n.return}for(n.sibling.return=n.return,n=n.sibling;n.tag!==5&&n.tag!==6&&n.tag!==18;){if(n.tag===27&&Th(n.type)||n.flags&2||n.child===null||n.tag===4)continue e;n.child.return=n,n=n.child}if(!(n.flags&2))return n.stateNode}}function GL(n,e,t,i){var r=n.tag;if(r===5||r===6)r=n.stateNode,e?(t.nodeType===9?t.body:t.nodeName==="HTML"?t.ownerDocument.body:t).insertBefore(r,e):(e=t.nodeType===9?t.body:t.nodeName==="HTML"?t.ownerDocument.body:t,e.appendChild(r),t=t._reactRootContainer,t!=null||e.onclick!==null||(e.onclick=Rc)),MM(n,i),Si=!0;else if(r!==4&&(r===27&&(MM(n,i),i=null,Th(n.type)&&(t=n.stateNode,e=null)),n=n.child,n!==null))for(GL(n,e,t,i),n=n.sibling;n!==null;)GL(n,e,t,i),n=n.sibling}function AM(n,e,t,i){var r=n.tag;if(r===5||r===6)r=n.stateNode,e?t.insertBefore(r,e):t.appendChild(r),MM(n,i),Si=!0;else if(r!==4&&(r===27&&(MM(n,i),i=null,Th(n.type)&&(t=n.stateNode)),n=n.child,n!==null))for(AM(n,e,t,i),n=n.sibling;n!==null;)AM(n,e,t,i),n=n.sibling}function mq(n){var e=n.stateNode,t=n.memoizedProps;try{for(var i=n.type,r=e.attributes;r.length;)e.removeAttributeNode(r[0]);Ba(e,i,t),e[Pa]=n,e[lo]=t}catch(a){Ui(n,n.return,a)}}var CM=!1,Go=null;function BU(n){(n.tag===30||(n.subtreeFlags&33554432)!==0)&&(CM=!0)}var Ac=null;function HU(){var n=Ac;return Ac=null,n}var ro=0;function Ny(n,e,t,i,r){return ro=0,_q(n.child,e,t,i,r)}function _q(n,e,t,i,r){for(var a=!1;n!==null;){if(n.tag===5){var s=n.stateNode;if(i!==null){var l=cN(s);i.push(l),l.view&&(a=!0)}else a||cN(s).view&&(a=!0);CM=!0,eB(s,ro===0?e:e+"_"+ro,t),ro++}else(n.tag!==22||n.memoizedState===null)&&(n.tag===30&&r||_q(n.child,e,t,i,r)&&(a=!0));n=n.sibling}return a}function Oc(n,e){for(;n!==null;)n.tag===5?tB(n.stateNode,n.memoizedProps):(n.tag!==22||n.memoizedState===null)&&(n.tag===30&&e||Oc(n.child,e)),n=n.sibling}function eM(n){if((n.subtreeFlags&18874368)!==0)for(n=n.child;n!==null;){if((n.tag!==22||n.memoizedState===null)&&(eM(n),n.tag===30&&(n.flags&18874368)!==0&&n.stateNode.paired)){var e=n.memoizedProps;if(e.name==null||e.name==="auto")throw Error(ct(544));var t=e.name;e=kf(e.default,e.share),e!=="none"&&(Ny(n,t,e,null,!1)||Oc(n.child,!1))}n=n.sibling}}function WL(n,e){if(n.tag===30){var t=n.stateNode,i=n.memoizedProps,r=Af(i,t),a=kf(i.default,t.paired?i.share:i.enter);a!=="none"?Ny(n,r,a,null,!1)?(eM(n),t.paired||e||Sy(n,i.onEnter)):Oc(n.child,!1):eM(n)}else if((n.subtreeFlags&33554432)!==0)for(n=n.child;n!==null;)WL(n,e),n=n.sibling;else eM(n)}function jL(n){if(Go!==null&&Go.size!==0){var e=Go;if((n.subtreeFlags&18874368)!==0)for(n=n.child;n!==null;){if(n.tag!==22||n.memoizedState===null){if(n.tag===30&&(n.flags&18874368)!==0){var t=n.memoizedProps,i=t.name;if(i!=null&&i!=="auto"){var r=e.get(i);if(r!==void 0){var a=kf(t.default,t.share);if(a!=="none"&&(Ny(n,i,a,null,!1)?(a=n.stateNode,r.paired=a,a.paired=r,Sy(n,t.onShare)):Oc(n.child,!1)),e.delete(i),e.size===0)break}}}jL(n)}n=n.sibling}}}function QL(n){if(n.tag===30){var e=n.memoizedProps,t=Af(e,n.stateNode),i=Go!==null?Go.get(t):void 0,r=kf(e.default,i!==void 0?e.share:e.exit);r!=="none"&&(Ny(n,t,r,null,!1)?i!==void 0?(r=n.stateNode,i.paired=r,r.paired=i,Go.delete(t),Sy(n,e.onShare)):Sy(n,e.onExit):Oc(n.child,!1)),Go!==null&&jL(n)}else if((n.subtreeFlags&33554432)!==0)for(n=n.child;n!==null;)QL(n),n=n.sibling;else Go!==null&&jL(n)}function gq(n){for(n=n.child;n!==null;){if(n.tag===30){var e=n.memoizedProps,t=Af(e,n.stateNode);e=kf(e.default,e.update),n.flags&=-5,e!=="none"&&Ny(n,t,e,n.memoizedState=[],!1)}else(n.subtreeFlags&33554432)!==0&&gq(n);n=n.sibling}}function XL(n){if((n.subtreeFlags&18874368)!==0)for(n=n.child;n!==null;){if(n.tag!==22||n.memoizedState===null){if(n.tag===30&&(n.flags&18874368)!==0){var e=n.stateNode;e.paired!==null&&(e.paired=null,Oc(n.child,!1))}XL(n)}n=n.sibling}}function tM(n){if(n.tag===30)n.stateNode.paired=null,Oc(n.child,!1),XL(n);else if((n.subtreeFlags&33554432)!==0)for(n=n.child;n!==null;)tM(n),n=n.sibling;else XL(n)}function vq(n){for(n=n.child;n!==null;)n.tag===30?Oc(n.child,!1):(n.subtreeFlags&33554432)!==0&&vq(n),n=n.sibling}function tk(n,e,t,i,r,a,s){for(var l=!1;e!==null;){if(e.tag===5){var c=e.stateNode;if(a!==null&&ro<a.length){var f=a[ro],p=cN(c);(f.view||p.view)&&(l=!0);var h;if(h=(n.flags&4)===0)if(p.clip)h=!0;else{h=f.rect;var _=p.rect;h=h.y!==_.y||h.x!==_.x||h.height!==_.height||h.width!==_.width}h&&(n.flags|=4),p.abs?p=!f.abs:(f=f.rect,p=p.rect,p=f.height!==p.height||f.width!==p.width),p&&(n.flags|=32)}else n.flags|=32;(n.flags&4)!==0&&eB(c,ro===0?t:t+"_"+ro,r),l&&(n.flags&4)!==0||(Ac===null&&(Ac=[]),Ac.push(c,ro===0?i:i+"_"+ro,e.memoizedProps)),ro++}else(e.tag!==22||e.memoizedState===null)&&(e.tag===30&&s?n.flags|=e.flags&32:tk(n,e.child,t,i,r,a,s)&&(l=!0));e=e.sibling}return l}function yq(n,e){for(n=n.child;n!==null;){if(n.tag===30){var t=n.memoizedProps,i=n.stateNode,r=Af(t,i),a=kf(t.default,t.update);if(e){i=i.clones;var s=i===null?null:i.map(ej)}else s=n.memoizedState,n.memoizedState=null;i=n;var l=n.child;ro=0,r=tk(i,l,r,r,a,s,!1),(n.flags&4)!==0&&r&&(e||Sy(n,t.onUpdate))}else(n.subtreeFlags&33554432)!==0&&yq(n,e);n=n.sibling}}var va=!1,Ri=!1,wc=!1,ZI=!1,VU=typeof WeakSet=="function"?WeakSet:Set,ya=null,xc=!1,bE=!1,RM=!1,YL=!1;function TW(n,e,t){if(n=n.containerInfo,oN=Ay,n=rz(n),AN(n)){if("selectionStart"in n)var i={start:n.selectionStart,end:n.selectionEnd};else e:{i=(i=n.ownerDocument)&&i.defaultView||window;var r=i.getSelection&&i.getSelection();if(r&&r.rangeCount!==0){i=r.anchorNode;var a=r.anchorOffset,s=r.focusNode;r=r.focusOffset;try{i.nodeType,s.nodeType}catch{i=null;break e}var l=0,c=-1,f=-1,p=0,h=0,_=n,g=null;t:for(;;){for(var E;_!==i||a!==0&&_.nodeType!==3||(c=l+a),_!==s||r!==0&&_.nodeType!==3||(f=l+r),_.nodeType===3&&(l+=_.nodeValue.length),(E=_.firstChild)!==null;)g=_,_=E;for(;;){if(_===n)break t;if(g===i&&++p===a&&(c=l),g===s&&++h===r&&(f=l),(E=_.nextSibling)!==null)break;_=g,g=_.parentNode}_=E}i=c===-1||f===-1?null:{start:c,end:f}}else i=null}i=i||{start:0,end:0}}else i=null;for(lN={focusedElem:n,selectionRange:i},Ay=!1,t=(t&335544064)===t,ya=e,e=t?9270:1024;ya!==null;){if(n=ya,t&&(i=n.deletions,i!==null))for(a=0;a<i.length;a++)t&&QL(i[a]);if(n.alternate===null&&(n.flags&2)!==0)t&&BU(n),P3(t);else{if(n.tag===22){if(i=n.alternate,n.memoizedState!==null){i!==null&&i.memoizedState===null&&t&&QL(i),P3(t);continue}else if(i!==null&&i.memoizedState!==null){t&&BU(n),P3(t);continue}}i=n.child,(n.subtreeFlags&e)!==0&&i!==null?(i.return=n,ya=i):(t&&gq(n),P3(t))}}Go=null}function P3(n){for(;ya!==null;){var e=ya,t=n,i=e.alternate,r=e.flags;switch(e.tag){case 0:case 11:case 15:break;case 1:if((r&1024)!==0&&i!==null){t=void 0,r=i.memoizedProps,i=i.memoizedState;var a=e.stateNode;try{var s=zm(e.type,r);t=a.getSnapshotBeforeUpdate(s,i),a.__reactInternalSnapshotBeforeUpdate=t}catch(l){Ui(e,e.return,l)}}break;case 3:if((r&1024)!==0){if(i=e.stateNode.containerInfo,t=i.nodeType,t===9)fN(i);else if(t===1)switch(i.nodeName){case"HEAD":case"HTML":case"BODY":fN(i);break;default:i.textContent=""}}break;case 5:case 26:case 27:case 6:case 4:case 17:break;case 30:t&&i!==null&&(t=Af(i.memoizedProps,i.stateNode),r=e.memoizedProps,r=kf(r.default,r.update),r!=="none"&&Ny(i,t,r,i.memoizedState=[],!0));break;default:if((r&1024)!==0)throw Error(ct(163))}if(i=e.sibling,i!==null){i.return=e.return,ya=i;break}ya=e.return}}function bq(n,e,t){var i=t.flags;switch(t.tag){case 0:case 11:case 15:Tc(n,t),i&4&&rw(5,t);break;case 1:if(Tc(n,t),i&4)if(n=t.stateNode,e===null)try{n.componentDidMount()}catch(s){Ui(t,t.return,s)}else{var r=zm(t.type,e.memoizedProps);e=e.memoizedState;try{n.componentDidUpdate(r,e,n.__reactInternalSnapshotBeforeUpdate)}catch(s){Ui(t,t.return,s)}}i&64&&dq(t),i&512&&Mc(t,t.return);break;case 3:if(Tc(n,t),i&64&&(n=t.updateQueue,n!==null)){if(e=null,t.child!==null)switch(t.child.tag){case 27:case 5:e=t.child.stateNode;break;case 1:e=t.child.stateNode}try{Ez(n,e)}catch(s){Ui(t,t.return,s)}}break;case 27:e===null&&i&4&&mq(t);case 26:case 5:Tc(n,t),e===null&&i&4&&VL(t),i&512&&Mc(t,t.return);break;case 12:Tc(n,t);break;case 31:Tc(n,t),i&4&&xq(n,t);break;case 13:Tc(n,t),i&4&&Tq(n,t),i&64&&(n=t.memoizedState,n!==null&&(n=n.dehydrated,n!==null&&(t=PW.bind(null,t),_j(n,t))));break;case 22:if(i=t.memoizedState!==null||va,!i){var a=e!==null&&e.memoizedState!==null||Ri;e=va,r=Ri,va=i,(Ri=a)&&!r?(i=2,(t.subtreeFlags&8772)!==0&&(i|=1),_u(n,t,i)):Tc(n,t),va=e,Ri=r}break;case 30:Tc(n,t),i&512&&Mc(t,t.return);break;case 7:i&512&&Mc(t,t.return);default:Tc(n,t)}}function KL(n,e){for(n=n.child;n!==null;)Sq(n,e),n=n.sibling}function Sq(n,e){switch(n.tag){case 5:case 26:try{var t=n.stateNode;if(e){var i=t.style;typeof i.setProperty=="function"?i.setProperty("display","none","important"):i.display="none"}else{var r=n.stateNode,a=n.memoizedProps.style,s=a!=null&&a.hasOwnProperty("display")?a.display:null;r.style.display=s==null||typeof s=="boolean"?"":(""+s).trim()}}catch(c){Ui(n,n.return,c)}ZL(n,e);break;case 6:try{n.stateNode.nodeValue=e?"":n.memoizedProps,Si=!0}catch(c){Ui(n,n.return,c)}break;case 18:try{var l=n.stateNode;e?a4(l,!0):a4(n.stateNode,!1)}catch(c){Ui(n,n.return,c)}break;case 22:case 23:n.memoizedState===null&&KL(n,e);break;default:KL(n,e)}}function ZL(n,e){if(n.subtreeFlags&67108864)for(n=n.child;n!==null;){e:{var t=n,i=e;switch(t.tag){case 4:Sq(t,i);break e;case 22:t.memoizedState===null&&ZL(t,i);break e;default:ZL(t,i)}}n=n.sibling}}function Eq(n){var e=n.alternate;e!==null&&(n.alternate=null,Eq(e)),n.child=null,n.deletions=null,n.sibling=null,n.tag===5&&(e=n.stateNode,e!==null&&zM(e)),n.stateNode=null,n.return=null,n.dependencies=null,n.memoizedProps=null,n.memoizedState=null,n.pendingProps=null,n.stateNode=null,n.updateQueue=null}var rr=null,no=!1;function mu(n,e,t){for(t=t.child;t!==null;)wq(n,e,t),t=t.sibling}function wq(n,e,t){if(Qo&&typeof Qo.onCommitFiberUnmount=="function")try{Qo.onCommitFiberUnmount(ZE,t)}catch{}switch(t.tag){case 26:Ri||Fa(t,e),mu(n,e,t),t.memoizedState?t.memoizedState.count--:t.stateNode&&!Ri&&(t=t.stateNode,t.parentNode.removeChild(t));break;case 27:Ri||Fa(t,e),IE(t);var i=rr,r=no;Th(t.type)&&(rr=t.stateNode,no=!1),mu(n,e,t),cB(t.stateNode,t.type,t.memoizedProps),rr=i,no=r;break;case 5:Ri||Fa(t,e),IE(t);case 6:if(t.tag===6&&IE(t),i=rr,r=no,rr=null,mu(n,e,t),rr=i,no=r,rr!==null)if(no)try{(rr.nodeType===9?rr.body:rr.nodeName==="HTML"?rr.ownerDocument.body:rr).removeChild(t.stateNode),Si=!0}catch(a){Ui(t,e,a)}else try{rr.removeChild(t.stateNode),Si=!0}catch(a){Ui(t,e,a)}break;case 18:rr!==null&&(no?(n=rr,r4(n.nodeType===9?n.body:n.nodeName==="HTML"?n.ownerDocument.body:n,t.stateNode),Cy(n)):r4(rr,t.stateNode));break;case 4:i=rr,r=no,rr=t.stateNode.containerInfo,no=!0,mu(n,e,t),rr=i,no=r;break;case 0:case 11:case 14:case 15:Eh(2,t,e),Ri||Eh(4,t,e),mu(n,e,t);break;case 1:Ri||(Fa(t,e),i=t.stateNode,typeof i.componentWillUnmount=="function"&&hq(t,e,i)),mu(n,e,t);break;case 21:mu(n,e,t);break;case 22:Ri=(i=Ri)||t.memoizedState!==null,mu(n,e,t),Ri=i;break;case 30:Fa(t,e),mu(n,e,t);break;case 7:Ri||Fa(t,e),mu(n,e,t);break;default:mu(n,e,t)}}function xq(n,e){if(e.memoizedState===null&&(n=e.alternate,n!==null&&(n=n.memoizedState,n!==null))){n=n.dehydrated;try{Cy(n)}catch(t){Ui(e,e.return,t)}}}function Tq(n,e){if(e.memoizedState===null&&(n=e.alternate,n!==null&&(n=n.memoizedState,n!==null&&(n=n.dehydrated,n!==null))))try{Cy(n)}catch(t){Ui(e,e.return,t)}}function MW(n){switch(n.tag){case 31:case 13:case 19:var e=n.stateNode;return e===null&&(e=n.stateNode=new VU),e;case 22:return n=n.stateNode,e=n._retryCache,e===null&&(e=n._retryCache=new VU),e;default:throw Error(ct(435,n.tag))}}function U3(n,e){var t=MW(n);e.forEach(function(i){if(!t.has(i)){t.add(i);var r=UW.bind(null,n,i);i.then(r,r)}})}function bs(n,e,t){var i=e.deletions;if(i!==null)for(var r=0;r<i.length;r++){var a=i[r],s=n,l=e,c=l;e:for(;c!==null;){switch(c.tag){case 27:if(Th(c.type)){rr=c.stateNode,no=!1;break e}break;case 5:rr=c.stateNode,no=!1;break e;case 3:case 4:rr=c.stateNode.containerInfo,no=!0;break e}c=c.return}if(rr===null)throw Error(ct(160));wq(s,l,a),rr=null,no=!1,s=a.alternate,s!==null&&(s.return=null),a.return=null}if(e.subtreeFlags&13886)for(e=e.child;e!==null;)Mq(e,n,t),e=e.sibling}var gu=null;function Mq(n,e,t){var i=n.alternate,r=n.flags;switch(n.tag){case 0:case 11:case 14:case 15:if(r&4&&(i=n.updateQueue,i=i!==null?i.events:null,i!==null))for(var a=0;a<i.length;a++){var s=i[a];s.ref.impl=s.nextImpl}bs(e,n,t),Ss(n),r&4&&(Eh(3,n,n.return),rw(3,n),Eh(5,n,n.return));break;case 1:bs(e,n,t),Ss(n),r&512&&(Ri||i===null||Fa(i,i.return)),r&64&&va&&(n=n.updateQueue,n!==null&&(e=n.callbacks,e!==null&&(t=n.shared.hiddenCallbacks,n.shared.hiddenCallbacks=t===null?e:t.concat(e))));break;case 26:if(a=gu,bs(e,n,t),Ss(n),r&512&&(Ri||i===null||Fa(i,i.return)),r&4)if(r=i!==null?i.memoizedState:null,t=n.memoizedState,i===null)if(t===null)if(n.stateNode===null)if(va)n.stateNode=Jq(n.type,n.memoizedProps,e.containerInfo,n);else{e:{e=n.type,t=n.memoizedProps,r=a.ownerDocument||a;t:switch(e){case"title":i=r.getElementsByTagName("title")[0],(!i||i[ew]||i[Pa]||i.namespaceURI==="http://www.w3.org/2000/svg"||i.hasAttribute("itemprop"))&&(i=r.createElement(e),r.head.insertBefore(i,r.querySelector("head > title"))),Ba(i,e,t),i[Pa]=n,ba(i),e=i;break e;case"link":if(a=h4("link","href",r).get(e+(t.href||""))){for(s=0;s<a.length;s++)if(i=a[s],i.getAttribute("href")===(t.href==null||t.href===""?null:t.href)&&i.getAttribute("rel")===(t.rel==null?null:t.rel)&&i.getAttribute("title")===(t.title==null?null:t.title)&&i.getAttribute("crossorigin")===(t.crossOrigin==null?null:t.crossOrigin)){a.splice(s,1);break t}}i=r.createElement(e),Ba(i,e,t),r.head.appendChild(i);break;case"meta":if(a=h4("meta","content",r).get(e+(t.content||""))){for(s=0;s<a.length;s++)if(i=a[s],i.getAttribute("content")===(t.content==null?null:""+t.content)&&i.getAttribute("name")===(t.name==null?null:t.name)&&i.getAttribute("property")===(t.property==null?null:t.property)&&i.getAttribute("http-equiv")===(t.httpEquiv==null?null:t.httpEquiv)&&i.getAttribute("charset")===(t.charSet==null?null:t.charSet)){a.splice(s,1);break t}}i=r.createElement(e),Ba(i,e,t),r.head.appendChild(i);break;default:throw Error(ct(468,e))}i[Pa]=n,ba(i),e=i}n.stateNode=e}else va||pN(a,n.type,n.stateNode);else n.stateNode=d4(a,t,n.memoizedProps);else r!==t?(r===null?(e=i.stateNode,e===null||Ri||e.parentNode.removeChild(e)):r.count--,t===null?va||pN(a,n.type,n.stateNode):d4(a,t,n.memoizedProps)):t===null&&n.stateNode!==null&&YI(n,n.memoizedProps,i.memoizedProps);break;case 27:bs(e,n,t),Ss(n),r&512&&(Ri||i===null||Fa(i,i.return)),i!==null&&r&4&&YI(n,n.memoizedProps,i.memoizedProps);break;case 5:if(a=wc,wc=!1,bs(e,n,t),wc=a,Ss(n),r&512&&(Ri||i===null||Fa(i,i.return)),n.flags&32){e=n.stateNode;try{vy(e,""),Si=!0}catch(p){Ui(n,n.return,p)}}r&4&&n.stateNode!=null&&(e=n.memoizedProps,YI(n,e,i!==null?i.memoizedProps:e)),r&1024&&(ZI=!0);break;case 6:if(bs(e,n,t),Ss(n),r&4){if(n.stateNode===null)throw Error(ct(162));e=n.memoizedProps,t=n.stateNode;try{t.nodeValue=e,Si=!0}catch(p){Ui(n,n.return,p)}}break;case 3:if(Si=!1,aM=null,a=gu,gu=jE(e.containerInfo),bs(e,n,t),gu=a,Ss(n),r&4&&i!==null&&i.memoizedState.isDehydrated)try{Cy(e.containerInfo)}catch(p){Ui(n,n.return,p)}ZI&&(ZI=!1,Aq(n)),Si=!1;break;case 4:r=wc,wc=va,i=YP(),a=gu,gu=jE(n.stateNode.containerInfo),bs(e,n,t),Ss(n),gu=a,Si&&bE&&(RM=!0),Si=i,wc=r;break;case 12:bs(e,n,t),Ss(n);break;case 31:bs(e,n,t),Ss(n),r&4&&(e=n.updateQueue,e!==null&&(n.updateQueue=null,U3(n,e)));break;case 13:bs(e,n,t),Ss(n),n.child.flags&8192&&n.memoizedState!==null!=(i!==null&&i.memoizedState!==null)&&($M=jo()),r&4&&(e=n.updateQueue,e!==null&&(n.updateQueue=null,U3(n,e)));break;case 22:a=n.memoizedState!==null,s=i!==null&&i.memoizedState!==null;var l=va,c=Ri,f=wc;va=l||a,wc=f||a,Ri=c||s,bs(e,n,t),Ri=c,wc=f,va=l,Ss(n),r&8192&&(e=n.stateNode,e._visibility=a?e._visibility&-2:e._visibility|1,!a||i===null||s||va||Ri||(e=s||Ri,t=va,i=Ri,va=a||va,Ri=e,Jd(n,2),va=t,Ri=i),!a&&wc||KL(n,a)),r&4&&(e=n.updateQueue,e!==null&&(t=e.retryQueue,t!==null&&(e.retryQueue=null,U3(n,t))));break;case 19:bs(e,n,t),Ss(n),r&4&&(e=n.updateQueue,e!==null&&(n.updateQueue=null,U3(n,e)));break;case 30:r&512&&(Ri||i===null||Fa(i,i.return)),r=YP(),a=bE,s=(t&335544064)===t,l=n.memoizedProps,bE=s&&kf(l.default,l.update)!=="none",bs(e,n,t),Ss(n),s&&i!==null&&Si&&(n.flags|=4),bE=a,Si=r;break;case 21:break;case 7:r&512&&(Ri||i===null||Fa(i,i.return)),i&&i.stateNode!==null&&(i.stateNode._fragmentFiber=n);default:bs(e,n,t),Ss(n)}}function Ss(n){var e=n.flags;if(e&2){try{for(var t,i=n.return;i!==null;){if(pq(i)){t=i;break}i=i.return}i=null;for(var r=n.return;r!==null;){if(ek(r)){var a=r.stateNode;i===null?i=[a]:i.push(a)}if(JN(r))break;r=r.return}var s=i;if(t==null)throw Error(ct(160));switch(t.tag){case 27:var l=t.stateNode,c=KI(n);AM(n,c,l,s);break;case 5:var f=t.stateNode;t.flags&32&&(vy(f,""),t.flags&=-33);var p=KI(n);AM(n,p,f,s);break;case 3:case 4:var h=t.stateNode.containerInfo,_=KI(n);GL(n,_,h,s);break;default:throw Error(ct(161))}}catch(g){Ui(n,n.return,g)}n.flags&=-3}e&4096&&(n.flags&=-4097)}function Aq(n){if(n.subtreeFlags&1024)for(n=n.child;n!==null;){var e=n;Aq(e),e.tag===5&&e.flags&1024&&(e=e.stateNode,Ay=!0,e.reset(),Ay=!1),n=n.sibling}}function Gv(n,e){if(e.subtreeFlags&9270)for(e=e.child;e!==null;)Cq(e,n),e=e.sibling;else yq(e,!1)}function Cq(n,e){var t=n.alternate;if(t===null)WL(n,!1);else switch(n.tag){case 3:if(YL=xc=!1,HU(),Gv(e,n),!xc&&!RM){if(n=Ac,n!==null)for(var i=0;i<n.length;i+=3){t=n[i];var r=n[i+1];tB(t,n[i+2]),t=t.ownerDocument.documentElement,t!==null&&t.animate({opacity:[0,0],pointerEvents:["none","none"]},{duration:0,fill:"forwards",pseudoElement:"::view-transition-group("+r+")"})}n=e.containerInfo,n=n.nodeType===9?n.documentElement:n.ownerDocument.documentElement,n!==null&&n.style.viewTransitionName===""&&(n.style.viewTransitionName="none",n.animate({opacity:[0,0],pointerEvents:["none","none"]},{duration:0,fill:"forwards",pseudoElement:"::view-transition-group(root)"}),n.animate({width:[0,0],height:[0,0]},{duration:0,fill:"forwards",pseudoElement:"::view-transition"})),YL=!0}Ac=null;break;case 5:Gv(e,n);break;case 4:i=xc,xc=!1,Gv(e,n),xc&&(RM=!0),xc=i;break;case 22:n.memoizedState===null&&(t.memoizedState!==null?WL(n,!1):Gv(e,n));break;case 30:i=xc,r=HU(),xc=!1,Gv(e,n),xc&&(n.flags|=4);var a=n.memoizedProps,s=n.stateNode;e=Af(a,s),s=Af(t.memoizedProps,s);var l=kf(a.default,a.update);l==="none"?e=!1:(a=t.memoizedState,t.memoizedState=null,t=n.child,ro=0,e=tk(n,t,e,s,l,a,!0),ro!==(a===null?0:a.length)&&(n.flags|=32)),(n.flags&4)!==0&&e?(Sy(n,n.memoizedProps.onUpdate),Ac=r):r!==null&&(r.push.apply(r,Ac),Ac=r),xc=(n.flags&32)!==0?!0:i;break;default:Gv(e,n)}}function Tc(n,e){if(e.subtreeFlags&8772)for(e=e.child;e!==null;)bq(n,e.alternate,e),e=e.sibling}function Jd(n,e){for(n=n.child;n!==null;){var t=n,i=e;switch(t.tag){case 0:case 11:case 14:case 15:Eh(4,t,t.return),Jd(t,i);break;case 1:Fa(t,t.return);var r=t.stateNode;typeof r.componentWillUnmount=="function"&&hq(t,t.return,r),Jd(t,i);break;case 27:(i&2)!==0&&cB(t.stateNode,t.type,t.memoizedProps);case 5:Fa(t,t.return),t.tag!==5&&t.tag!==27||IE(t),Jd(t,i);break;case 6:IE(t);break;case 26:Fa(t,t.return),r=t.stateNode,t.memoizedState!==null||r===null||Ri||r.parentNode.removeChild(r),Jd(t,i);break;case 22:t.memoizedState===null&&Jd(t,i);break;case 30:Fa(t,t.return),Jd(t,i);break;case 7:Fa(t,t.return);default:Jd(t,i)}n=n.sibling}}function _u(n,e,t){for(t=(e.subtreeFlags&8772)!==0?t:t&-2,e=e.child;e!==null;){var i=e.alternate,r=n,a=e,s=a.flags,l=(t&1)!==0;switch(a.tag){case 0:case 11:case 15:_u(r,a,t),rw(4,a);break;case 1:if(_u(r,a,t),i=a,r=i.stateNode,typeof r.componentDidMount=="function")try{r.componentDidMount()}catch(p){Ui(i,i.return,p)}if(i=a,r=i.updateQueue,r!==null){var c=i.stateNode;try{var f=r.shared.hiddenCallbacks;if(f!==null)for(r.shared.hiddenCallbacks=null,r=0;r<f.length;r++)Sz(f[r],c)}catch(p){Ui(i,i.return,p)}}l&&s&64&&dq(a),Mc(a,a.return);break;case 27:(t&2)!==0&&mq(a);case 5:a.tag!==5&&a.tag!==27||qU(a),_u(r,a,t),l&&i===null&&s&4&&VL(a),Mc(a,a.return);break;case 6:qU(a);break;case 26:c=a.stateNode,a.memoizedState!==null||c===null||va||pN(jE(c.ownerDocument),a.type,c),_u(r,a,t),l&&i===null&&s&4&&VL(a),Mc(a,a.return);break;case 12:_u(r,a,t);break;case 31:_u(r,a,t),l&&s&4&&xq(r,a);break;case 13:_u(r,a,t),l&&s&4&&Tq(r,a);break;case 22:a.memoizedState===null&&_u(r,a,t),Mc(a,a.return);break;case 30:_u(r,a,t),Mc(a,a.return);break;case 7:Mc(a,a.return);default:_u(r,a,t)}e=e.sibling}}function nk(n,e){var t=null;n!==null&&n.memoizedState!==null&&n.memoizedState.cachePool!==null&&(t=n.memoizedState.cachePool.pool),n=null,e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(n=e.memoizedState.cachePool.pool),n!==t&&(n!=null&&n.refCount++,t!=null&&nw(t))}function ik(n,e){n=null,e.alternate!==null&&(n=e.alternate.memoizedState.cache),e=e.memoizedState.cache,e!==n&&(e.refCount++,n!=null&&nw(n))}function Ul(n,e,t,i){var r=(t&335544064)===t;if(e.subtreeFlags&(r?10262:10256))for(e=e.child;e!==null;)Rq(n,e,t,i),e=e.sibling;else r&&vq(e)}function Rq(n,e,t,i){var r=(t&335544064)===t;r&&e.alternate===null&&e.return!==null&&e.return.alternate!==null&&tM(e);var a=e.flags;switch(e.tag){case 0:case 11:case 15:Ul(n,e,t,i),a&2048&&rw(9,e);break;case 1:Ul(n,e,t,i);break;case 3:Ul(n,e,t,i),r&&YL&&(n=n.containerInfo,n=n.nodeType===9?n.body:n.nodeName==="HTML"?n.ownerDocument.body:n,n.style.viewTransitionName==="root"&&(n.style.viewTransitionName=""),n=n.ownerDocument.documentElement,n!==null&&n.style.viewTransitionName==="none"&&(n.style.viewTransitionName="")),a&2048&&(a=null,e.alternate!==null&&(a=e.alternate.memoizedState.cache),e=e.memoizedState.cache,e!==a&&(e.refCount++,a!=null&&nw(a)));break;case 12:if(a&2048){Ul(n,e,t,i),a=e.stateNode;try{var s=e.memoizedProps,l=s.id,c=s.onPostCommit;typeof c=="function"&&c(l,e.alternate===null?"mount":"update",a.passiveEffectDuration,-0)}catch(f){Ui(e,e.return,f)}}else Ul(n,e,t,i);break;case 31:Ul(n,e,t,i);break;case 13:Ul(n,e,t,i);break;case 23:break;case 22:s=e.stateNode,l=e.alternate,e.memoizedState!==null?(r&&l!==null&&l.memoizedState===null&&tM(l),s._visibility&2?Ul(n,e,t,i):LE(n,e)):(r&&l!==null&&l.memoizedState!==null&&tM(e),s._visibility&2?Ul(n,e,t,i):(s._visibility|=2,jv(n,e,t,i,(e.subtreeFlags&10256)!==0||!1))),a&2048&&nk(l,e);break;case 24:Ul(n,e,t,i),a&2048&&ik(e.alternate,e);break;case 30:r&&(a=e.alternate,a!==null&&(Oc(a.child,!0),Oc(e.child,!0))),Ul(n,e,t,i);break;default:Ul(n,e,t,i)}}function jv(n,e,t,i,r){for(r=r&&((e.subtreeFlags&10256)!==0||!1),e=e.child;e!==null;){var a=n,s=e,l=t,c=i,f=s.flags;switch(s.tag){case 0:case 11:case 15:jv(a,s,l,c,r),rw(8,s);break;case 23:break;case 22:var p=s.stateNode;s.memoizedState!==null?p._visibility&2?jv(a,s,l,c,r):LE(a,s):(p._visibility|=2,jv(a,s,l,c,r)),r&&f&2048&&nk(s.alternate,s);break;case 24:jv(a,s,l,c,r),r&&f&2048&&ik(s.alternate,s);break;default:jv(a,s,l,c,r)}e=e.sibling}}function LE(n,e){if(e.subtreeFlags&10256)for(e=e.child;e!==null;){var t=n,i=e,r=i.flags;switch(i.tag){case 22:LE(t,i),r&2048&&nk(i.alternate,i);break;case 24:LE(t,i),r&2048&&ik(i.alternate,i);break;default:LE(t,i)}e=e.sibling}}var Tm=8192;function Em(n,e,t){if(n.subtreeFlags&Tm)for(n=n.child;n!==null;)Iq(n,e,t),n=n.sibling}function Iq(n,e,t){switch(n.tag){case 26:Em(n,e,t),n.flags&Tm&&(n.memoizedState!==null?Ij(t,gu,n.memoizedState,n.memoizedProps):(n=n.stateNode,(e&335544128)===e&&m4(t,n)));break;case 5:Em(n,e,t),n.flags&Tm&&(n=n.stateNode,(e&335544128)===e&&m4(t,n));break;case 3:case 4:var i=gu;gu=jE(n.stateNode.containerInfo),Em(n,e,t),gu=i;break;case 22:n.memoizedState===null&&(i=n.alternate,i!==null&&i.memoizedState!==null?(i=Tm,Tm=16777216,Em(n,e,t),Tm=i):Em(n,e,t));break;case 30:if((n.flags&Tm)!==0&&(i=n.memoizedProps.name,i!=null&&i!=="auto")){var r=n.stateNode;r.paired=null,Go===null&&(Go=new Map),Go.set(i,r)}Em(n,e,t);break;default:Em(n,e,t)}}function Lq(n){var e=n.alternate;if(e!==null&&(n=e.child,n!==null)){e.child=null;do e=n.sibling,n.sibling=null,n=e;while(n!==null)}}function hE(n){var e=n.deletions;if((n.flags&16)!==0){if(e!==null)for(var t=0;t<e.length;t++){var i=e[t];ya=i,kq(i,n)}Lq(n)}if(n.subtreeFlags&10256)for(n=n.child;n!==null;)Nq(n),n=n.sibling}function Nq(n){switch(n.tag){case 0:case 11:case 15:hE(n),n.flags&2048&&Eh(9,n,n.return);break;case 3:hE(n);break;case 12:hE(n);break;case 22:var e=n.stateNode;n.memoizedState!==null&&e._visibility&2&&(n.return===null||n.return.tag!==13)?(e._visibility&=-3,nM(n)):hE(n);break;default:hE(n)}}function nM(n){var e=n.deletions;if((n.flags&16)!==0){if(e!==null)for(var t=0;t<e.length;t++){var i=e[t];ya=i,kq(i,n)}Lq(n)}for(n=n.child;n!==null;){switch(e=n,e.tag){case 0:case 11:case 15:Eh(8,e,e.return),nM(e);break;case 22:t=e.stateNode,t._visibility&2&&(t._visibility&=-3,nM(e));break;default:nM(e)}n=n.sibling}}function kq(n,e){for(;ya!==null;){var t=ya;switch(t.tag){case 0:case 11:case 15:Eh(8,t,e);break;case 23:case 22:if(t.memoizedState!==null&&t.memoizedState.cachePool!==null){var i=t.memoizedState.cachePool.pool;i!=null&&i.refCount++}break;case 24:nw(t.memoizedState.cache)}if(i=t.child,i!==null)i.return=t,ya=i;else e:for(t=n;ya!==null;){i=ya;var r=i.sibling,a=i.return;if(Eq(i),i===t){ya=null;break e}if(r!==null){r.return=a,ya=r;break e}ya=a}}}var AW={getCacheForType:function(n){var e=Ua(jr),t=e.data.get(n);return t===void 0&&(t=n(),e.data.set(n,t)),t},cacheSignal:function(){return Ua(jr).controller.signal}},CW=typeof WeakMap=="function"?WeakMap:Map,Ei=0,ji=null,ii=null,fi=0,Fi=0,Bo=null,sh=!1,ky=!1,rk=!1,Lf=0,_r=0,wh=0,Nm=0,IM=0,Wo=0,by=0,NE=null,io=null,$L=!1,$M=0,Oq=0,LM=1/0,NM=null,mh=null,cr=0,yu=null,qm=null,kc=0,JL=0,eN=null,Dq=null,hy=null,py=null,my=null,kE=0,iM=null;function Yo(){return(Ei&2)!==0&&fi!==0?fi&-fi:An.T!==null?sk():z4()}function Fq(){if(Wo===0)if((fi&536870912)===0||Yn){var n=T3;T3<<=1,(T3&3932160)===0&&(T3=262144),Wo=n}else Wo=536870912;return n=Ha.current,n!==null&&(n.flags|=32),Wo}function Sy(n,e){if(e!=null){var t=n.stateNode,i=t.ref;i===null&&(i=t.ref=iB(Af(n.memoizedProps,t))),py===null&&(py=[]),py.push(e.bind(null,i))}}function so(n,e,t){(n===ji&&(Fi===2||Fi===9)||n.cancelPendingCommit!==null)&&(Ey(n,0),oh(n,fi,Wo,!1)),JE(n,t),((Ei&2)===0||n!==ji)&&(n===ji&&((Ei&2)===0&&(Nm|=t),_r===4&&oh(n,fi,Wo,!1)),Fc(n))}function Pq(n,e,t){if((Ei&6)!==0)throw Error(ct(327));var i=!t&&(e&127)===0&&(e&n.expiredLanes)===0||$E(n,e),r=i?LW(n,e):$I(n,e,!0),a=i;do{if(r===0){ky&&!i&&oh(n,e,0,!1);break}else{if(t=n.current.alternate,a&&!RW(t)){r=$I(n,e,!1),a=!1;continue}if(r===2){if(a=e,n.errorRecoveryDisabledLanes&a)var s=0;else s=n.pendingLanes&-536870913,s=s!==0?s:s&536870912?536870912:0;if(s!==0){e=s;e:{var l=n;r=NE;var c=l.current.memoizedState.isDehydrated;if(c&&(Ey(l,s).flags|=256),s=$I(l,s,!1),s!==2&&s!==6){if(rk&&!c){l.errorRecoveryDisabledLanes|=a,Nm|=a,r=4;break e}a=io,io=r,a!==null&&(io===null?io=a:io.push.apply(io,a))}r=s}if(a=!1,r!==2)continue}}if(r===1){Ey(n,0),oh(n,e,0,!0);break}e:{switch(i=n,a=r,a){case 0:case 1:throw Error(ct(345));case 4:if((e&4194048)!==e&&(e&62914560)!==e)break;case 6:oh(i,e,Wo,!sh);break e;case 2:io=null;break;case 3:case 5:break;default:throw Error(ct(329))}if((e&62914560)===e&&(r=$M+300-jo(),10<r)){if(oh(i,e,Wo,!sh),UM(i,0,!0)!==0)break e;kc=e,i.timeoutHandle=lk(GU.bind(null,i,t,io,NM,$L,e,Wo,Nm,by,sh,a,"Throttled",-0,0),r);break e}GU(i,t,io,NM,$L,e,Wo,Nm,by,sh,a,null,-0,0)}}break}while(!0);Fc(n)}function GU(n,e,t,i,r,a,s,l,c,f,p,h,_,g){n.timeoutHandle=-1;var E=e.subtreeFlags,x=(a&335544064)===a;if(h=null,(x||E&8192||(E&16785408)===16785408)&&(h={stylesheets:null,count:0,imgCount:0,imgBytes:0,suspenseyImages:[],waitingForImages:!0,waitingForViewTransition:!1,unsuspend:Rc},Go=null,Iq(e,a,h),x&&(E=h,x=n.containerInfo,x=(x.nodeType===9?x:x.ownerDocument).__reactViewTransition,x!=null&&(E.count++,E.waitingForViewTransition=!0,E=QE.bind(E),x.finished.then(E,E))),E=(a&62914560)===a?$M-jo():(a&4194048)===a?Oq-jo():0,E=Lj(h,E),E!==null)){kc=a,n.cancelPendingCommit=E(jU.bind(null,n,e,a,t,i,r,s,l,c,f,p,h,null,_,g)),oh(n,a,s,!f);return}jU(n,e,a,t,i,r,s,l,c,f,p,h)}function RW(n){for(var e=n;;){var t=e.tag;if((t===0||t===11||t===15)&&e.flags&16384&&(t=e.updateQueue,t!==null&&(t=t.stores,t!==null)))for(var i=0;i<t.length;i++){var r=t[i],a=r.getSnapshot;r=r.value;try{if(!Ko(a(),r))return!1}catch{return!1}}if(t=e.child,e.subtreeFlags&16384&&t!==null)t.return=e,e=t;else{if(e===n)break;for(;e.sibling===null;){if(e.return===null||e.return===n)return!0;e=e.return}e.sibling.return=e.return,e=e.sibling}}return!0}function oh(n,e,t,i){e=O4(n,e),e&=~IM,e&=~Nm,n.suspendedLanes|=e,n.pingedLanes&=~e,i&&(n.warmLanes|=e),i=n.expirationTimes;for(var r=e;0<r;){var a=31-Xo(r),s=1<<a;i[a]=-1,r&=~s}t!==0&&F4(n,t,e)}function JM(){return(Ei&6)===0?(aw(0,!1),!1):!0}function ak(){if(ii!==null){if(Fi===0)var n=ii.return;else n=ii,wf=Wm=null,HN(n),cy=null,qE=0,n=ii;for(;n!==null;)fq(n.alternate,n),n=n.return;ii=null}}function Ey(n,e){var t=n.timeoutHandle;return t!==-1&&(n.timeoutHandle=-1,ZW(t)),t=n.cancelPendingCommit,t!==null&&(n.cancelPendingCommit=null,t()),kc=0,ak(),ji=n,ii=t=xf(n.current,null),fi=e,Fi=0,Bo=null,sh=!1,ky=$E(n,e),rk=!1,by=Wo=IM=Nm=wh=_r=0,io=NE=null,$L=!1,Lf=O4(n,e),VM(),t}function Uq(n,e){Fn=null,An.H=xM,e===Ly||e===jM?(e=gU(),Fi=3):e===ON?(e=gU(),Fi=4):Fi=e===KN?8:e!==null&&typeof e=="object"&&typeof e.then=="function"?6:1,Bo=e,ii===null&&(_r=1,TM(n,Vl(e,n.current)))}function zq(){var n=Ha.current;return n===null?!0:(fi&4194048)===fi?ts===null:(fi&62914560)===fi||(fi&536870912)!==0?n===ts:!1}function qq(){var n=An.H;return An.H=xM,n===null?xM:n}function Bq(){var n=An.A;return An.A=AW,n}function kM(){_r=4,sh||(fi&4194048)!==fi&&Ha.current!==null||(ky=!0),(wh&134217727)===0&&(Nm&134217727)===0||ji===null||oh(ji,fi,Wo,!1)}function $I(n,e,t){var i=Ei;Ei|=2;var r=qq(),a=Bq();(ji!==n||fi!==e)&&(NM=null,Ey(n,e)),e=!1;var s=_r;e:do try{if(Fi!==0&&ii!==null){var l=ii,c=Bo;switch(Fi){case 8:ak(),s=6;break e;case 3:case 2:case 9:case 6:Ha.current===null&&(e=!0);var f=Fi;if(Fi=0,Bo=null,ay(n,l,c,f),t&&ky){s=0;break e}break;default:f=Fi,Fi=0,Bo=null,ay(n,l,c,f)}}IW(),s=_r;break}catch(p){Uq(n,p)}while(!0);return e&&n.shellSuspendCounter++,wf=Wm=null,Ei=i,An.H=r,An.A=a,ii===null&&(ji=null,fi=0,VM()),s}function IW(){for(;ii!==null;)Hq(ii)}function LW(n,e){var t=Ei;Ei|=2;var i=qq(),r=Bq();ji!==n||fi!==e?(NM=null,LM=jo()+500,Ey(n,e)):ky=$E(n,e);e:do try{if(Fi!==0&&ii!==null){e=ii;var a=Bo;t:switch(Fi){case 1:Fi=0,Bo=null,ay(n,e,a,1);break;case 2:case 9:if(_U(a)){Fi=0,Bo=null,WU(e);break}e=function(){Fi!==2&&Fi!==9||ji!==n||(Fi=7),Fc(n)},a.then(e,e);break e;case 3:Fi=7;break e;case 4:Fi=5;break e;case 7:_U(a)?(Fi=0,Bo=null,WU(e)):(Fi=0,Bo=null,ay(n,e,a,7));break;case 5:var s=null;switch(ii.tag){case 26:s=ii.memoizedState;case 5:case 27:var l=ii;if(s?hB(s):l.stateNode.complete){Fi=0,Bo=null;var c=l.sibling;if(c!==null)ii=c;else{var f=l.return;f!==null?(ii=f,eA(f)):ii=null}break t}}Fi=0,Bo=null,ay(n,e,a,5);break;case 6:Fi=0,Bo=null,ay(n,e,a,6);break;case 8:ak(),_r=6;break e;default:throw Error(ct(462))}}NW();break}catch(p){Uq(n,p)}while(!0);return wf=Wm=null,An.H=i,An.A=r,Ei=t,ii!==null?0:(ji=null,fi=0,VM(),_r)}function NW(){for(;ii!==null&&!Y9();)Hq(ii)}function Hq(n){var e=cq(n.alternate,n,Lf);n.memoizedProps=n.pendingProps,e===null?eA(n):ii=e}function WU(n){var e=n,t=e.alternate;switch(e.tag){case 15:case 0:e=kU(t,e,e.pendingProps,e.type,void 0,fi);break;case 11:e=kU(t,e,e.pendingProps,e.type.render,e.ref,fi);break;case 5:HN(e);var i=e;i===Sa&&(Yn?(gM(i),i.tag===5&&i.stateNode!=null&&(Zi=i.stateNode)):(gM(i),Yn=!0));default:fq(t,e),e=ii=dz(e,Lf),e=cq(t,e,Lf)}n.memoizedProps=n.pendingProps,e===null?eA(n):ii=e}function ay(n,e,t,i){wf=Wm=null,HN(e),cy=null,qE=0;var r=e.return;try{if(yW(n,r,e,t,fi)){_r=1,TM(n,Vl(t,n.current)),ii=null;return}}catch(a){if(r!==null)throw ii=r,a;_r=1,TM(n,Vl(t,n.current)),ii=null;return}e.flags&32768?(Yn||i===1?n=!0:ky||(fi&536870912)!==0?n=!1:(sh=n=!0,(i===2||i===9||i===3||i===6)&&(i=Ha.current,i!==null&&i.tag===13&&(i.flags|=16384))),Vq(e,n)):eA(e)}function eA(n){var e=n;do{if((e.flags&32768)!==0){Vq(e,sh);return}n=e.return;var t=wW(e.alternate,e,Lf);if(t!==null){ii=t;return}if(e=e.sibling,e!==null){ii=e;return}ii=e=n}while(e!==null);_r===0&&(_r=5)}function Vq(n,e){do{var t=xW(n.alternate,n);if(t!==null){t.flags&=32767,ii=t;return}if(t=n.return,t!==null&&(t.flags|=32768,t.subtreeFlags=0,t.deletions=null),!e&&(n=n.sibling,n!==null)){ii=n;return}ii=n=t}while(n!==null);_r=6,ii=null}function jU(n,e,t,i,r,a,s,l,c,f,p,h){n.cancelPendingCommit=null;do tA();while(cr!==0);if((Ei&6)!==0)throw Error(ct(327));if(e!==null){if(e===n.current)throw Error(ct(177));n===ji&&(ii=ji=null,fi=0),qm=e,yu=n,kc=t,eN=r,Dq=i,kW(n,e,t,s,l,c,h)}}function kW(n,e,t,i,r,a,s){var l=e.lanes|e.childLanes;if(JL=l,l|=CN,a7(n,t,l,i,r,a),py=null,(t&335544064)===t?(my=oW(n),i=10262):(my=null,i=10256),(e.subtreeFlags&i)!==0||(e.flags&i)!==0?(n.callbackNode=null,n.callbackPriority=0,zW(dM,function(){return rN(),null})):(n.callbackNode=null,n.callbackPriority=0),CM=!1,i=(e.flags&13878)!==0,(e.subtreeFlags&13878)!==0||i){i=An.T,An.T=null,r=wi.p,wi.p=2,a=Ei,Ei|=4;try{TW(n,e,t)}finally{Ei=a,wi.p=r,An.T=i}}cr=1,CM?hy=ij(s,n.containerInfo,my,tN,nN,DW,iN,rN,OW,null,null):(tN(),nN(),iN())}function OW(n){if(cr!==0){var e=yu.onRecoverableError;e(n,{componentStack:null})}}function DW(){cr===3&&(cr=0,Cq(qm,yu),cr=4)}function tN(){if(cr===1){cr=0;var n=yu,e=qm,t=kc,i=(e.flags&13878)!==0;if((e.subtreeFlags&13878)!==0||i){i=An.T,An.T=null;var r=wi.p;wi.p=2;var a=Ei;Ei|=4;try{bE=RM=!1,Mq(e,n,t),t=lN;var s=rz(n.containerInfo),l=t.focusedElem,c=t.selectionRange;if(s!==l&&l&&l.ownerDocument&&iz(l.ownerDocument.documentElement,l)){if(c!==null&&AN(l)){var f=c.start,p=c.end;if(p===void 0&&(p=f),"selectionStart"in l)l.selectionStart=f,l.selectionEnd=Math.min(p,l.value.length);else{var h=l.ownerDocument||document,_=h&&h.defaultView||window;if(_.getSelection){var g=_.getSelection(),E=l.textContent.length,x=Math.min(c.start,E),S=c.end===void 0?x:Math.min(c.end,E);!g.extend&&x>S&&(s=S,S=x,x=s);var v=lU(l,x),M=lU(l,S);if(v&&M&&(g.rangeCount!==1||g.anchorNode!==v.node||g.anchorOffset!==v.offset||g.focusNode!==M.node||g.focusOffset!==M.offset)){var O=h.createRange();O.setStart(v.node,v.offset),g.removeAllRanges(),x>S?(g.addRange(O),g.extend(M.node,M.offset)):(O.setEnd(M.node,M.offset),g.addRange(O))}}}}for(h=[],g=l;g=g.parentNode;)g.nodeType===1&&h.push({element:g,left:g.scrollLeft,top:g.scrollTop});for(typeof l.focus=="function"&&l.focus(),l=0;l<h.length;l++){var k=h[l];k.element.scrollLeft=k.left,k.element.scrollTop=k.top}}Ay=!!oN,lN=oN=null}finally{Ei=a,wi.p=r,An.T=i}}n.current=e,cr=2}}function nN(){if(cr===2){cr=0;var n=yu,e=qm,t=(e.flags&8772)!==0;if((e.subtreeFlags&8772)!==0||t){t=An.T,An.T=null;var i=wi.p;wi.p=2;var r=Ei;Ei|=4;try{bq(n,e.alternate,e)}finally{Ei=r,wi.p=i,An.T=t}}cr=3}}function iN(){if(cr===4||cr===3){cr=0;var n=hy;hy=null,K9();var e=yu,t=qm,i=kc,r=Dq,a=(i&335544064)===i?10262:10256;if((t.subtreeFlags&a)!==0||(t.flags&a)!==0?cr=5:(cr=0,qm=yu=null,Gq(e,e.pendingLanes)),a=e.pendingLanes,a===0&&(mh=null),SN(i),t=t.stateNode,Qo&&typeof Qo.onCommitFiberRoot=="function")try{Qo.onCommitFiberRoot(ZE,t,void 0,(t.current.flags&128)===128)}catch{}if(r!==null){t=An.T,a=wi.p,wi.p=2,An.T=null;try{for(var s=e.onRecoverableError,l=0;l<r.length;l++){var c=r[l];s(c.value,{componentStack:c.stack})}}finally{An.T=t,wi.p=a}}if(r=py,s=my,my=null,r!==null&&(py=null,s===null&&(s=[]),n!==null))for(c=0;c<r.length;c++)t=(0,r[c])(s),t!==void 0&&n.finished.finally(t);(kc&3)!==0&&tA(),Fc(e),a=e.pendingLanes,(i&261930)!==0&&(a&42)!==0?e===iM?kE++:(kE=0,iM=e):(kE=0,iM=null),aw(0,!1)}}function Gq(n,e){(n.pooledCacheLanes&=e)===0&&(e=n.pooledCache,e!=null&&(n.pooledCache=null,nw(e)))}function tA(){return hy!==null&&(hy.skipTransition(),hy=null),tN(),nN(),iN(),rN()}function rN(){if(cr!==5)return!1;var n=yu,e=JL;JL=0;var t=SN(kc),i=An.T,r=wi.p;try{wi.p=32>t?32:t,An.T=null,t=eN,eN=null;var a=yu,s=kc;if(cr=0,qm=yu=null,kc=0,(Ei&6)!==0)throw Error(ct(331));var l=Ei;if(Ei|=4,Nq(a.current),Rq(a,a.current,s,t),Ei=l,aw(0,!1),Qo&&typeof Qo.onPostCommitFiberRoot=="function")try{Qo.onPostCommitFiberRoot(ZE,a)}catch{}return!0}finally{wi.p=r,An.T=i,Gq(n,e)}}function QU(n,e,t){e=Vl(t,e),e=PL(n.stateNode,e,2),n=dh(n,e,2),n!==null&&(JE(n,2),Fc(n))}function Ui(n,e,t){if(n.tag===3)QU(n,n,t);else for(;e!==null;){if(e.tag===3){QU(e,n,t);break}else if(e.tag===1){var i=e.stateNode;if(typeof e.type.getDerivedStateFromError=="function"||typeof i.componentDidCatch=="function"&&(mh===null||!mh.has(i))){n=Vl(t,n),t=aq(2),i=dh(e,t,2),i!==null&&(sq(t,i,e,n),JE(i,2),Fc(i));break}}e=e.return}}function JI(n,e,t){var i=n.pingCache;if(i===null){i=n.pingCache=new CW;var r=new Set;i.set(e,r)}else r=i.get(e),r===void 0&&(r=new Set,i.set(e,r));r.has(t)||(rk=!0,r.add(t),n=FW.bind(null,n,e,t),e.then(n,n))}function FW(n,e,t){var i=n.pingCache;i!==null&&i.delete(e),n.pingedLanes|=n.suspendedLanes&t,n.warmLanes&=~t,ji===n&&(fi&t)===t&&((_r===4||_r===3&&(fi&62914560)===fi&&300>jo()-$M)&&(Ei&2)===0?Ey(n,0):IM|=t,by===fi&&(by=0)),Fc(n)}function Wq(n,e){e===0&&(e=D4()),n=Gm(n,e),n!==null&&(JE(n,e),Fc(n))}function PW(n){var e=n.memoizedState,t=0;e!==null&&(t=e.retryLane),Wq(n,t)}function UW(n,e){var t=0;switch(n.tag){case 31:case 13:var i=n.stateNode,r=n.memoizedState;r!==null&&(t=r.retryLane);break;case 19:i=n.stateNode;break;case 22:i=n.stateNode._retryCache;break;default:throw Error(ct(314))}i!==null&&i.delete(e),Wq(n,t)}function zW(n,e){return yN(n,e)}var wy=null,Qv=null,aN=!1,OM=!1,eL=!1,lh=0;function Fc(n){n!==Qv&&n.next===null&&(Qv===null?wy=Qv=n:Qv=Qv.next=n),OM=!0,aN||(aN=!0,BW())}function aw(n,e){if(!eL&&OM){eL=!0;do for(var t=!1,i=wy;i!==null;){if(!e)if(n!==0){var r=i.pendingLanes;if(r===0)var a=0;else{var s=i.suspendedLanes,l=i.pingedLanes;a=(1<<31-Xo(42|n)+1)-1,a&=r&~(s&~l),a=a&201326741?a&201326741|1:a?a|2:0}a!==0&&(t=!0,XU(i,a))}else a=fi,a=UM(i,i===ji?a:0,i.cancelPendingCommit!==null||i.timeoutHandle!==-1),(a&3)===0||$E(i,a)||(t=!0,XU(i,a));i=i.next}while(t);eL=!1}}function qW(){jq()}function jq(){OM=aN=!1;var n=0;lh!==0&&KW()&&(n=lh);for(var e=jo(),t=null,i=wy;i!==null;){var r=i.next,a=Qq(i,e);a===0?(i.next=null,t===null?wy=r:t.next=r,r===null&&(Qv=t)):(t=i,(n!==0||(a&3)!==0)&&(OM=!0)),i=r}cr!==0&&cr!==5||aw(n,!1),lh!==0&&(lh=0)}function Qq(n,e){for(var t=n.suspendedLanes,i=n.pingedLanes,r=n.expirationTimes,a=n.pendingLanes&-62914561;0<a;){var s=31-Xo(a),l=1<<s,c=r[s];c===-1?((l&t)===0||(l&i)!==0)&&(r[s]=r7(l,e)):c<=e&&(n.expiredLanes|=l),a&=~l}if(e=ji,t=fi,t=UM(n,n===e?t:0,n.cancelPendingCommit!==null||n.timeoutHandle!==-1),i=n.callbackNode,t===0||n===e&&(Fi===2||Fi===9)||n.cancelPendingCommit!==null)return i!==null&&i!==null&&NI(i),n.callbackNode=null,n.callbackPriority=0;if((t&3)===0||$E(n,t)){if(e=t&-t,e===n.callbackPriority)return e;switch(i!==null&&NI(i),SN(t)){case 2:case 8:t=N4;break;case 32:t=dM;break;case 268435456:t=k4;break;default:t=dM}return i=Xq.bind(null,n),t=yN(t,i),n.callbackPriority=e,n.callbackNode=t,e}return i!==null&&i!==null&&NI(i),n.callbackPriority=2,n.callbackNode=null,2}function Xq(n,e){if(cr!==0&&cr!==5)return n.callbackNode=null,n.callbackPriority=0,null;var t=n.callbackNode;if(tA()&&n.callbackNode!==t)return null;var i=fi;return i=UM(n,n===ji?i:0,n.cancelPendingCommit!==null||n.timeoutHandle!==-1),i===0?null:(Pq(n,i,e),Qq(n,jo()),n.callbackNode!=null&&n.callbackNode===t?Xq.bind(null,n):null)}function XU(n,e){if(tA())return null;Pq(n,e,!0)}function BW(){$W(function(){(Ei&6)!==0?yN(L4,qW):jq()})}function sk(){if(lh===0){var n=Fm;n===0&&(n=x3,x3<<=1,(x3&261888)===0&&(x3=256)),lh=n}return lh}function YU(n){return n==null||typeof n=="symbol"||typeof n=="boolean"?null:typeof n=="function"?n:W3(n)}function HW(n,e,t,i,r){if(e==="submit"&&t&&t.stateNode===r){var a=YU((r[lo]||null).action),s=i.submitter;s&&(e=(e=s[lo]||null)?YU(e.formAction):s.getAttribute("formAction"),e!==null&&(a=e,s=null));var l=new qM("action","action",null,i,r);n.push({event:l,listeners:[{instance:null,listener:function(){if(i.defaultPrevented){if(lh!==0){var c=new FormData(r,s);DL(t,{pending:!0,data:c,method:r.method,action:a},null,c)}}else typeof a=="function"&&(l.preventDefault(),c=new FormData(r,s),DL(t,{pending:!0,data:c,method:r.method,action:a},a,c))},currentTarget:r}]})}}for(z3=0;z3<xL.length;z3++)q3=xL[z3],KU=q3.toLowerCase(),ZU=q3[0].toUpperCase()+q3.slice(1),bu(KU,"on"+ZU);var q3,KU,ZU,z3;bu(sz,"onAnimationEnd");bu(oz,"onAnimationIteration");bu(lz,"onAnimationStart");bu("dblclick","onDoubleClick");bu("focusin","onFocus");bu("focusout","onBlur");bu(J7,"onTransitionRun");bu(eW,"onTransitionStart");bu(tW,"onTransitionCancel");bu(uz,"onTransitionEnd");gy("onMouseEnter",["mouseout","mouseover"]);gy("onMouseLeave",["mouseout","mouseover"]);gy("onPointerEnter",["pointerout","pointerover"]);gy("onPointerLeave",["pointerout","pointerover"]);Hm("onChange","change click focusin focusout input keydown keyup selectionchange".split(" "));Hm("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" "));Hm("onBeforeInput",["compositionend","keypress","textInput","paste"]);Hm("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" "));Hm("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" "));Hm("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var VE="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),VW=new Set("beforetoggle cancel close invalid load scroll scrollend toggle".split(" ").concat(VE));function Yq(n,e){e=(e&4)!==0;for(var t=0;t<n.length;t++){var i=n[t],r=i.event;i=i.listeners;e:{var a=void 0;if(e)for(var s=i.length-1;0<=s;s--){var l=i[s],c=l.instance,f=l.currentTarget;if(l=l.listener,c!==a&&r.isPropagationStopped())break e;a=l,r.currentTarget=f;try{a(r)}catch(p){pM(p)}r.currentTarget=null,a=c}else for(s=0;s<i.length;s++){if(l=i[s],c=l.instance,f=l.currentTarget,l=l.listener,c!==a&&r.isPropagationStopped())break e;a=l,r.currentTarget=f;try{a(r)}catch(p){pM(p)}r.currentTarget=null,a=c}}}}function ni(n,e){var t=e[WP];t===void 0&&(t=e[WP]=new Set);var i=n+"__bubble";t.has(i)||(Kq(e,n,2,!1),t.add(i))}function tL(n,e,t){var i=0;e&&(i|=4),Kq(t,n,i,e)}var B3="_reactListening"+Math.random().toString(36).slice(2);function ok(n){if(!n[B3]){n[B3]=!0,B4.forEach(function(t){t!=="selectionchange"&&(VW.has(t)||tL(t,!1,n),tL(t,!0,n))});var e=n.nodeType===9?n:n.ownerDocument;e===null||e[B3]||(e[B3]=!0,tL("selectionchange",!1,e))}}function Kq(n,e,t,i){switch(bB(e)){case 2:var r=Dj;break;case 8:r=Fj;break;default:r=pk}t=r.bind(null,e,t,n),r=void 0,!bL||e!=="touchstart"&&e!=="touchmove"&&e!=="wheel"||(r=!0),i?r!==void 0?n.addEventListener(e,t,{capture:!0,passive:r}):n.addEventListener(e,t,!0):r!==void 0?n.addEventListener(e,t,{passive:r}):n.addEventListener(e,t,!1)}function nL(n,e,t,i,r){var a=i;if((e&1)===0&&(e&2)===0&&i!==null)e:for(;;){if(i===null)return;var s=i.tag;if(s===3||s===4){var l=i.stateNode.containerInfo;if(l===r)break;if(s===4)for(s=i.return;s!==null;){var c=s.tag;if((c===3||c===4)&&s.stateNode.containerInfo===r)return;s=s.return}for(;l!==null;){if(s=Mm(l),s===null)return;if(c=s.tag,c===5||c===6||c===26||c===27){i=a=s;continue e}l=l.parentNode}}i=i.return}Y4(function(){var f=a,p=wN(t),h=[];e:{var _=cz.get(n);if(_!==void 0){var g=qM,E=n;switch(n){case"keypress":if(Q3(t)===0)break e;case"keydown":case"keyup":g=R7;break;case"focusin":E="focus",g=UI;break;case"focusout":E="blur",g=UI;break;case"beforeblur":case"afterblur":g=UI;break;case"click":if(t.button===2)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":g=JP;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":g=g7;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":g=O7;break;case sz:case oz:case lz:g=b7;break;case uz:g=F7;break;case"scroll":case"scrollend":g=m7;break;case"wheel":g=U7;break;case"copy":case"cut":case"paste":g=E7;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":g=tU;break;case"submit":g=N7;break;case"toggle":case"beforetoggle":g=q7}var x=(e&4)!==0,S=!x&&(n==="scroll"||n==="scrollend"),v=x?_!==null?_+"Capture":null:_;x=[];for(var M=f,O;M!==null;){var k=M;if(O=k.stateNode,k=k.tag,k!==5&&k!==26&&k!==27||O===null||v===null||(k=DE(M,v),k!=null&&x.push(GE(M,k,O))),S)break;M=M.return}0<x.length&&(_=new g(_,E,null,t,p),h.push({event:_,listeners:x}))}}if((e&7)===0){e:{if(g=n==="mouseover"||n==="pointerover",_=n==="mouseout"||n==="pointerout",g&&t!==yL&&(E=t.relatedTarget||t.fromElement)&&(Mm(E)||E[Ry]))break e;(_||g)&&(E=p.window===p?p:(g=p.ownerDocument)?g.defaultView||g.parentWindow:window,_?(g=t.relatedTarget||t.toElement,_=f,g=g?Mm(g):null,g!==null&&(S=KE(g),x=g.tag,g!==S||x!==5&&x!==27&&x!==6)&&(g=null)):(_=null,g=f),_!==g&&(x=JP,k="onMouseLeave",v="onMouseEnter",M="mouse",(n==="pointerout"||n==="pointerover")&&(x=tU,k="onPointerLeave",v="onPointerEnter",M="pointer"),S=_==null?E:vE(_),O=g==null?E:vE(g),E=new x(k,M+"leave",_,t,p),E.target=S,E.relatedTarget=O,k=null,Mm(p)===f&&(x=new x(v,M+"enter",g,t,p),x.target=O,x.relatedTarget=S,k=x),S=k,x=_&&g?oL(_,g,GW):null,_!==null&&$U(h,E,_,x,!1),g!==null&&S!==null&&$U(h,S,g,x,!0)))}e:{if(_=f?vE(f):window,g=_.nodeName&&_.nodeName.toLowerCase(),g==="select"||g==="input"&&_.type==="file")var q=aU;else if(rU(_))if(tz)q=K7;else{q=X7;var G=Q7}else g=_.nodeName,!g||g.toLowerCase()!=="input"||_.type!=="checkbox"&&_.type!=="radio"?f&&EN(f.elementType)&&(q=aU):q=Y7;if(q&&(q=q(n,f))){ez(h,q,t,p);break e}G&&G(n,_,f)}switch(G=f?vE(f):window,n){case"focusin":(rU(G)||G.contentEditable==="true")&&(Jv=G,EL=f,wE=null);break;case"focusout":wE=EL=Jv=null;break;case"mousedown":wL=!0;break;case"contextmenu":case"mouseup":case"dragend":wL=!1,uU(h,t,p);break;case"selectionchange":if($7)break;case"keydown":case"keyup":uU(h,t,p)}var Q;if(MN)e:{switch(n){case"compositionstart":var H="onCompositionStart";break e;case"compositionend":H="onCompositionEnd";break e;case"compositionupdate":H="onCompositionUpdate";break e}H=void 0}else $v?$4(n,t)&&(H="onCompositionEnd"):n==="keydown"&&t.keyCode===229&&(H="onCompositionStart");H&&(Z4&&t.locale!=="ko"&&($v||H!=="onCompositionStart"?H==="onCompositionEnd"&&$v&&(Q=K4()):(rh=p,xN="value"in rh?rh.value:rh.textContent,$v=!0)),G=DM(f,H),0<G.length&&(H=new eU(H,n,null,t,p),h.push({event:H,listeners:G}),Q?H.data=Q:(Q=J4(t),Q!==null&&(H.data=Q)))),(Q=H7?V7(n,t):G7(n,t))&&(H=DM(f,"onBeforeInput"),0<H.length&&(G=new eU("onBeforeInput","beforeinput",null,t,p),h.push({event:G,listeners:H}),G.data=Q)),HW(h,n,f,t,p)}Yq(h,e)})}function GE(n,e,t){return{instance:n,listener:e,currentTarget:t}}function DM(n,e){for(var t=e+"Capture",i=[];n!==null;){var r=n,a=r.stateNode;if(r=r.tag,r!==5&&r!==26&&r!==27||a===null||(r=DE(n,t),r!=null&&i.unshift(GE(n,r,a)),r=DE(n,e),r!=null&&i.push(GE(n,r,a))),n.tag===3)return i;n=n.return}return[]}function GW(n){if(n===null)return null;do n=n.return;while(n&&n.tag!==5&&n.tag!==27);return n||null}function $U(n,e,t,i,r){for(var a=e._reactName,s=[];t!==null&&t!==i;){var l=t,c=l.alternate,f=l.stateNode;if(l=l.tag,c!==null&&c===i)break;l!==5&&l!==26&&l!==27||f===null||(c=f,r?(f=DE(t,a),f!=null&&s.unshift(GE(t,f,c))):r||(f=DE(t,a),f!=null&&s.push(GE(t,f,c)))),t=t.return}s.length!==0&&n.push({event:e,listeners:s})}var WW=/\r\n?/g,jW=/\u0000|\uFFFD/g;function JU(n){return(typeof n=="string"?n:""+n).replace(WW,`
`).replace(jW,"")}function Zq(n,e){return e=JU(e),JU(n)===e}function Pi(n,e,t,i,r,a){switch(t){case"children":if(typeof i=="string")e==="body"||e==="textarea"&&i===""||vy(n,i);else if(typeof i=="number"||typeof i=="bigint")e!=="body"&&vy(n,""+i);else return;break;case"className":A3(n,"class",i);break;case"tabIndex":A3(n,"tabindex",i);break;case"dir":case"role":case"viewBox":case"width":case"height":A3(n,t,i);break;case"style":X4(n,i,a);return;case"data":if(e!=="object"){A3(n,"data",i);break}case"src":case"href":if(i===""&&(e!=="a"||t!=="href")){n.removeAttribute(t);break}if(i==null||typeof i=="function"||typeof i=="symbol"||typeof i=="boolean"){n.removeAttribute(t);break}i=W3(i),n.setAttribute(t,i);break;case"action":case"formAction":if(typeof i=="function"){n.setAttribute(t,"javascript:throw new Error('A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().')");break}else typeof a=="function"&&(t==="formAction"?(e!=="input"&&Pi(n,e,"name",r.name,r,null),Pi(n,e,"formEncType",r.formEncType,r,null),Pi(n,e,"formMethod",r.formMethod,r,null),Pi(n,e,"formTarget",r.formTarget,r,null)):(Pi(n,e,"encType",r.encType,r,null),Pi(n,e,"method",r.method,r,null),Pi(n,e,"target",r.target,r,null)));if(i==null||typeof i=="symbol"||typeof i=="boolean"){n.removeAttribute(t);break}i=W3(i),n.setAttribute(t,i);break;case"onClick":i!=null&&(n.onclick=Rc);return;case"onScroll":i!=null&&ni("scroll",n);return;case"onScrollEnd":i!=null&&ni("scrollend",n);return;case"dangerouslySetInnerHTML":if(i!=null){if(typeof i!="object"||!("__html"in i))throw Error(ct(61));if(t=i.__html,t!=null){if(r.children!=null)throw Error(ct(60));a?.__html!==t&&(n.innerHTML=t)}}break;case"multiple":n.multiple=i&&typeof i!="function"&&typeof i!="symbol";break;case"muted":n.muted=i&&typeof i!="function"&&typeof i!="symbol";break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"defaultValue":case"defaultChecked":case"innerHTML":case"ref":break;case"autoFocus":break;case"xlinkHref":if(i==null||typeof i=="function"||typeof i=="boolean"||typeof i=="symbol"){n.removeAttribute("xlink:href");break}t=W3(i),n.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",t);break;case"contentEditable":case"spellCheck":case"draggable":case"value":case"autoReverse":case"externalResourcesRequired":case"focusable":case"preserveAlpha":i!=null&&typeof i!="function"&&typeof i!="symbol"?n.setAttribute(t,i):n.removeAttribute(t);break;case"inert":case"allowFullScreen":case"async":case"autoPlay":case"controls":case"credentialless":case"default":case"defer":case"disabled":case"disablePictureInPicture":case"disableRemotePlayback":case"formNoValidate":case"hidden":case"loop":case"noModule":case"noValidate":case"open":case"playsInline":case"readOnly":case"required":case"reversed":case"scoped":case"seamless":case"itemScope":i&&typeof i!="function"&&typeof i!="symbol"?n.setAttribute(t,""):n.removeAttribute(t);break;case"capture":case"download":i===!0?n.setAttribute(t,""):i!==!1&&i!=null&&typeof i!="function"&&typeof i!="symbol"?n.setAttribute(t,i):n.removeAttribute(t);break;case"cols":case"rows":case"size":case"span":i!=null&&typeof i!="function"&&typeof i!="symbol"&&!isNaN(i)&&1<=i?n.setAttribute(t,i):n.removeAttribute(t);break;case"rowSpan":case"start":i==null||typeof i=="function"||typeof i=="symbol"||isNaN(i)?n.removeAttribute(t):n.setAttribute(t,i);break;case"popover":ni("beforetoggle",n),ni("toggle",n),G3(n,"popover",i);break;case"xlinkActuate":bf(n,"http://www.w3.org/1999/xlink","xlink:actuate",i);break;case"xlinkArcrole":bf(n,"http://www.w3.org/1999/xlink","xlink:arcrole",i);break;case"xlinkRole":bf(n,"http://www.w3.org/1999/xlink","xlink:role",i);break;case"xlinkShow":bf(n,"http://www.w3.org/1999/xlink","xlink:show",i);break;case"xlinkTitle":bf(n,"http://www.w3.org/1999/xlink","xlink:title",i);break;case"xlinkType":bf(n,"http://www.w3.org/1999/xlink","xlink:type",i);break;case"xmlBase":bf(n,"http://www.w3.org/XML/1998/namespace","xml:base",i);break;case"xmlLang":bf(n,"http://www.w3.org/XML/1998/namespace","xml:lang",i);break;case"xmlSpace":bf(n,"http://www.w3.org/XML/1998/namespace","xml:space",i);break;case"is":G3(n,"is",i);break;case"innerText":case"textContent":return;default:if(!(2<t.length)||t[0]!=="o"&&t[0]!=="O"||t[1]!=="n"&&t[1]!=="N")t=h7.get(t)||t,G3(n,t,i);else return}Si=!0}function sN(n,e,t,i,r,a){switch(t){case"style":X4(n,i,a);return;case"dangerouslySetInnerHTML":if(i!=null){if(typeof i!="object"||!("__html"in i))throw Error(ct(61));if(t=i.__html,t!=null){if(r.children!=null)throw Error(ct(60));a?.__html!==t&&(n.innerHTML=t)}}break;case"children":if(typeof i=="string")vy(n,i);else if(typeof i=="number"||typeof i=="bigint")vy(n,""+i);else return;break;case"onScroll":i!=null&&ni("scroll",n);return;case"onScrollEnd":i!=null&&ni("scrollend",n);return;case"onClick":i!=null&&(n.onclick=Rc);return;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"innerHTML":case"ref":return;case"innerText":case"textContent":return;default:if(!H4.hasOwnProperty(t))e:{if(t[0]==="o"&&t[1]==="n"&&(r=t.endsWith("Capture"),a=t.slice(2,r?t.length-7:void 0),e=n[lo]||null,e=e!=null?e[t]:null,typeof e=="function"&&n.removeEventListener(a,e,r),typeof i=="function")){typeof e!="function"&&e!==null&&(t in n?n[t]=null:n.hasAttribute(t)&&n.removeAttribute(t)),n.addEventListener(a,i,r);break e}Si=!0,t in n?n[t]=i:i===!0?n.setAttribute(t,""):G3(n,t,i)}return}Si=!0}function Ba(n,e,t){switch(e){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":break;case"img":ni("error",n),ni("load",n);var i=!1,r=!1,a;for(a in t)if(t.hasOwnProperty(a)){var s=t[a];if(s!=null)switch(a){case"src":i=!0;break;case"srcSet":r=!0;break;case"children":case"dangerouslySetInnerHTML":throw Error(ct(137,e));default:Pi(n,e,a,s,t,null)}}r&&Pi(n,e,"srcSet",t.srcSet,t,null),i&&Pi(n,e,"src",t.src,t,null);return;case"input":ni("invalid",n);var l=a=s=r=null,c=null,f=null;for(i in t)if(t.hasOwnProperty(i)){var p=t[i];if(p!=null)switch(i){case"name":r=p;break;case"type":s=p;break;case"checked":c=p;break;case"defaultChecked":f=p;break;case"value":a=p;break;case"defaultValue":l=p;break;case"children":case"dangerouslySetInnerHTML":if(p!=null)throw Error(ct(137,e));break;default:Pi(n,e,i,p,t,null)}}W4(n,a,l,c,f,s,r,!1);return;case"select":ni("invalid",n),i=s=a=null;for(r in t)if(t.hasOwnProperty(r)&&(l=t[r],l!=null))switch(r){case"value":a=l;break;case"defaultValue":s=l;break;case"multiple":i=l;default:Pi(n,e,r,l,t,null)}e=a,t=s,n.multiple=!!i,e!=null?oy(n,!!i,e,!1):t!=null&&oy(n,!!i,t,!0);return;case"textarea":ni("invalid",n),a=r=i=null;for(s in t)if(t.hasOwnProperty(s)&&(l=t[s],l!=null))switch(s){case"value":i=l;break;case"defaultValue":r=l;break;case"children":a=l;break;case"dangerouslySetInnerHTML":if(l!=null)throw Error(ct(91));break;default:Pi(n,e,s,l,t,null)}Q4(n,i,r,a);return;case"option":for(c in t)if(t.hasOwnProperty(c)&&(i=t[c],i!=null))switch(c){case"selected":n.selected=i&&typeof i!="function"&&typeof i!="symbol";break;default:Pi(n,e,c,i,t,null)}return;case"dialog":ni("beforetoggle",n),ni("toggle",n),ni("cancel",n),ni("close",n);break;case"iframe":case"object":ni("load",n);break;case"video":case"audio":for(i=0;i<VE.length;i++)ni(VE[i],n);break;case"image":ni("error",n),ni("load",n);break;case"details":ni("toggle",n);break;case"embed":case"source":case"link":ni("error",n),ni("load",n);case"area":case"base":case"br":case"col":case"hr":case"keygen":case"meta":case"param":case"track":case"wbr":case"menuitem":for(f in t)if(t.hasOwnProperty(f)&&(i=t[f],i!=null))switch(f){case"children":case"dangerouslySetInnerHTML":throw Error(ct(137,e));default:Pi(n,e,f,i,t,null)}return;default:if(EN(e)){for(p in t)t.hasOwnProperty(p)&&(i=t[p],i!==void 0&&sN(n,e,p,i,t,void 0));return}}for(l in t)t.hasOwnProperty(l)&&(i=t[l],i!=null&&Pi(n,e,l,i,t,null))}var QW={};function XW(n,e,t,i){switch(e){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":break;case"input":var r=null,a=null,s=null,l=null,c=null,f=null,p=null;for(g in t){var h=t[g];if(t.hasOwnProperty(g)&&h!=null)switch(g){case"checked":break;case"value":break;case"defaultValue":c=h;default:i.hasOwnProperty(g)||Pi(n,e,g,null,i,h)}}for(var _ in i){var g=i[_];if(h=t[_],i.hasOwnProperty(_)&&(g!=null||h!=null))switch(_){case"type":g!==h&&(Si=!0),a=g;break;case"name":g!==h&&(Si=!0),r=g;break;case"checked":g!==h&&(Si=!0),f=g;break;case"defaultChecked":g!==h&&(Si=!0),p=g;break;case"value":g!==h&&(Si=!0),s=g;break;case"defaultValue":g!==h&&(Si=!0),l=g;break;case"children":case"dangerouslySetInnerHTML":if(g!=null)throw Error(ct(137,e));break;default:g!==h&&Pi(n,e,_,g,i,h)}}vL(n,s,l,c,f,p,a,r);return;case"select":g=s=l=_=null;for(a in t)if(c=t[a],t.hasOwnProperty(a)&&c!=null)switch(a){case"value":break;case"multiple":g=c;default:i.hasOwnProperty(a)||Pi(n,e,a,null,i,c)}for(r in i)if(a=i[r],c=t[r],i.hasOwnProperty(r)&&(a!=null||c!=null))switch(r){case"value":a!==c&&(Si=!0),_=a;break;case"defaultValue":a!==c&&(Si=!0),l=a;break;case"multiple":a!==c&&(Si=!0),s=a;default:a!==c&&Pi(n,e,r,a,i,c)}e=l,t=s,i=g,_!=null?oy(n,!!t,_,!1):!!i!=!!t&&(e!=null?oy(n,!!t,e,!0):oy(n,!!t,t?[]:"",!1));return;case"textarea":g=_=null;for(l in t)if(r=t[l],t.hasOwnProperty(l)&&r!=null&&!i.hasOwnProperty(l))switch(l){case"value":break;case"children":break;default:Pi(n,e,l,null,i,r)}for(s in i)if(r=i[s],a=t[s],i.hasOwnProperty(s)&&(r!=null||a!=null))switch(s){case"value":r!==a&&(Si=!0),_=r;break;case"defaultValue":r!==a&&(Si=!0),g=r;break;case"children":break;case"dangerouslySetInnerHTML":if(r!=null)throw Error(ct(91));break;default:r!==a&&Pi(n,e,s,r,i,a)}j4(n,_,g);return;case"option":for(var E in t)if(_=t[E],t.hasOwnProperty(E)&&_!=null&&!i.hasOwnProperty(E))switch(E){case"selected":n.selected=!1;break;default:Pi(n,e,E,null,i,_)}for(c in i)if(_=i[c],g=t[c],i.hasOwnProperty(c)&&_!==g&&(_!=null||g!=null))switch(c){case"selected":_!==g&&(Si=!0),n.selected=_&&typeof _!="function"&&typeof _!="symbol";break;default:Pi(n,e,c,_,i,g)}return;case"img":case"link":case"area":case"base":case"br":case"col":case"embed":case"hr":case"keygen":case"meta":case"param":case"source":case"track":case"wbr":case"menuitem":for(var x in t)_=t[x],t.hasOwnProperty(x)&&_!=null&&!i.hasOwnProperty(x)&&Pi(n,e,x,null,i,_);for(f in i)if(_=i[f],g=t[f],i.hasOwnProperty(f)&&_!==g&&(_!=null||g!=null))switch(f){case"children":case"dangerouslySetInnerHTML":if(_!=null)throw Error(ct(137,e));break;default:Pi(n,e,f,_,i,g)}return;default:if(EN(e)){for(var S in t)_=t[S],t.hasOwnProperty(S)&&_!==void 0&&!i.hasOwnProperty(S)&&sN(n,e,S,void 0,i,_);for(p in i)_=i[p],g=t[p],!i.hasOwnProperty(p)||_===g||_===void 0&&g===void 0||sN(n,e,p,_,i,g);return}}for(var v in t)_=t[v],t.hasOwnProperty(v)&&_!=null&&!i.hasOwnProperty(v)&&Pi(n,e,v,null,i,_);for(h in i)_=i[h],g=t[h],!i.hasOwnProperty(h)||_===g||_==null&&g==null||Pi(n,e,h,_,i,g)}function e4(n){switch(n){case"css":case"script":case"font":case"img":case"image":case"input":case"link":return!0;default:return!1}}function YW(){if(typeof performance.getEntriesByType=="function"){for(var n=0,e=0,t=performance.getEntriesByType("resource"),i=0;i<t.length;i++){var r=t[i],a=r.transferSize,s=r.initiatorType,l=r.duration;if(a&&l&&e4(s)){for(s=0,l=r.responseEnd,i+=1;i<t.length;i++){var c=t[i],f=c.startTime;if(f>l)break;var p=c.transferSize,h=c.initiatorType;p&&e4(h)&&(c=c.responseEnd,s+=p*(c<l?1:(l-f)/(c-f)))}if(--i,e+=8*(a+s)/(r.duration/1e3),n++,10<n)break}}if(0<n)return e/n/1e6}return navigator.connection&&(n=navigator.connection.downlink,typeof n=="number")?n:5}var oN=null,lN=null;function WE(n){return n.nodeType===9?n:n.ownerDocument}function t4(n){switch(n){case"http://www.w3.org/2000/svg":return 1;case"http://www.w3.org/1998/Math/MathML":return 2;default:return 0}}function $q(n,e){if(n===0)switch(e){case"svg":return 1;case"math":return 2;default:return 0}return n===1&&e==="foreignObject"?0:n}function Jq(n,e,t,i){return t=WE(t).createElement(n),t[Pa]=i,t[lo]=e,Ba(t,n,e),ba(t),t}function uN(n,e){return n==="textarea"||n==="noscript"||typeof e.children=="string"||typeof e.children=="number"||typeof e.children=="bigint"||typeof e.dangerouslySetInnerHTML=="object"&&e.dangerouslySetInnerHTML!==null&&e.dangerouslySetInnerHTML.__html!=null}var iL=null;function KW(){var n=window.event;return n&&n.type==="popstate"?n===iL?!1:(iL=n,!0):(iL=null,!1)}var lk=typeof setTimeout=="function"?setTimeout:void 0,ZW=typeof clearTimeout=="function"?clearTimeout:void 0,n4=typeof Promise=="function"?Promise:void 0,i4=typeof requestAnimationFrame=="function"?requestAnimationFrame:lk,$W=typeof queueMicrotask=="function"?queueMicrotask:typeof n4<"u"?function(n){return n4.resolve(null).then(n).catch(JW)}:lk;function JW(n){setTimeout(function(){throw n})}function Th(n){return n==="head"}function r4(n,e){var t=e,i=0;do{var r=t.nextSibling;if(n.removeChild(t),r&&r.nodeType===8)if(t=r.data,t==="/$"||t==="/&"){if(i===0){n.removeChild(r),Cy(e);return}i--}else if(t==="$"||t==="$?"||t==="$~"||t==="$!"||t==="&")i++;else if(t==="html")aL(n.ownerDocument.documentElement);else if(t==="head"){t=n.ownerDocument.head,aL(t);for(var a=t.firstChild;a;){var s=a.nextSibling,l=a.nodeName;a[ew]||l==="SCRIPT"||l==="STYLE"||l==="LINK"&&a.rel.toLowerCase()==="stylesheet"||t.removeChild(a),a=s}}else t==="body"&&aL(n.ownerDocument.body);t=r}while(t);Cy(e)}function a4(n,e){var t=n;n=0;do{var i=t.nextSibling;if(t.nodeType===1?e?(t._stashedDisplay=t.style.display,t.style.display="none"):(t.style.display=t._stashedDisplay||"",t.getAttribute("style")===""&&t.removeAttribute("style")):t.nodeType===3&&(e?(t._stashedText=t.nodeValue,t.nodeValue=""):t.nodeValue=t._stashedText||""),i&&i.nodeType===8)if(t=i.data,t==="/$"){if(n===0)break;n--}else t!=="$"&&t!=="$?"&&t!=="$~"&&t!=="$!"||n++;t=i}while(t)}function eB(n,e,t){if(e=CSS.escape(e)!==e?"r-"+btoa(e).replace(/=/g,""):e,n.style.viewTransitionName=e,t!=null&&(n.style.viewTransitionClass=t),t=getComputedStyle(n),t.display==="inline"){if(e=n.getClientRects(),e.length===1)var i=1;else for(var r=i=0;r<e.length;r++){var a=e[r];0<a.width&&0<a.height&&i++}i===1&&(n=n.style,n.display=e.length===1?"inline-block":"block",n.marginTop="-"+t.paddingTop,n.marginBottom="-"+t.paddingBottom)}}function tB(n,e){n=n.style,e=e.style;var t=e!=null?e.hasOwnProperty("viewTransitionName")?e.viewTransitionName:e.hasOwnProperty("view-transition-name")?e["view-transition-name"]:null:null;n.viewTransitionName=t==null||typeof t=="boolean"?"":(""+t).trim(),t=e!=null?e.hasOwnProperty("viewTransitionClass")?e.viewTransitionClass:e.hasOwnProperty("view-transition-class")?e["view-transition-class"]:null:null,n.viewTransitionClass=t==null||typeof t=="boolean"?"":(""+t).trim(),n.display==="inline-block"&&(e==null?n.display=n.margin="":(t=e.display,n.display=t==null||typeof t=="boolean"?"":t,t=e.margin,t!=null?n.margin=t:(t=e.hasOwnProperty("marginTop")?e.marginTop:e["margin-top"],n.marginTop=t==null||typeof t=="boolean"?"":t,e=e.hasOwnProperty("marginBottom")?e.marginBottom:e["margin-bottom"],n.marginBottom=e==null||typeof e=="boolean"?"":e)))}function nB(n,e,t){return t=t.ownerDocument.defaultView,{rect:n,abs:e.position==="absolute"||e.position==="fixed",clip:e.clipPath!=="none"||e.overflow!=="visible"||e.filter!=="none"||e.mask!=="none"||e.mask!=="none"||e.borderRadius!=="0px",view:0<=n.bottom&&0<=n.right&&n.top<=t.innerHeight&&n.left<=t.innerWidth}}function cN(n){var e=n.getBoundingClientRect(),t=getComputedStyle(n);return nB(e,t,n)}function ej(n){var e=n.getBoundingClientRect();e=new DOMRect(e.x+2e4,e.y+2e4,e.width,e.height);var t=getComputedStyle(n);return nB(e,t,n)}function tj(n){return n.documentElement.clientHeight}function nj(n){this.addEventListener("load",n),this.addEventListener("error",n)}function ij(n,e,t,i,r,a,s,l,c){var f=e.nodeType===9?e:e.ownerDocument;try{var p=f.startViewTransition({update:function(){var _=f.defaultView,g=_.navigation&&_.navigation.transition,E=f.fonts.status;i();var x=[];if(E==="loaded"&&(tj(f),f.fonts.status==="loading"&&x.push(f.fonts.ready)),E=x.length,n!==null)for(var S=n.suspenseyImages,v=0,M=0;M<S.length;M++){var O=S[M];if(!O.complete){var k=O.getBoundingClientRect();if(0<k.bottom&&0<k.right&&k.top<_.innerHeight&&k.left<_.innerWidth){if(v+=pB(O),v>sM){x.length=E;break}O=new Promise(nj.bind(O)),x.push(O)}}}if(0<x.length)return _=Promise.race([Promise.all(x),new Promise(function(q){return setTimeout(q,500)})]).then(r,r),(g?Promise.allSettled([g.finished,_]):_).then(a,a);if(r(),g)return g.finished.then(a,a);a()},types:t});f.__reactViewTransition=p;var h=[];return p.ready.then(function(){for(var _=f.documentElement.getAnimations({subtree:!0}),g=0;g<_.length;g++){var E=_[g],x=E.effect,S=x.pseudoElement;if(S!=null&&S.startsWith("::view-transition")){h.push(E),E=x.getKeyframes();for(var v=S=void 0,M=!0,O=0;O<E.length;O++){var k=E[O],q=k.width;if(S===void 0)S=q;else if(S!==q){M=!1;break}if(q=k.height,v===void 0)v=q;else if(v!==q){M=!1;break}delete k.width,delete k.height,k.transform==="none"&&delete k.transform}M&&S!==void 0&&v!==void 0&&(x.setKeyframes(E),M=getComputedStyle(x.target,x.pseudoElement),M.width!==S||M.height!==v)&&(M=E[0],M.width=S,M.height=v,M=E[E.length-1],M.width=S,M.height=v,x.setKeyframes(E))}}s()},function(_){f.__reactViewTransition===p&&(f.__reactViewTransition=null);try{if(typeof _=="object"&&_!==null)switch(_.name){case"InvalidStateError":(_.message==="View transition was skipped because document visibility state is hidden."||_.message==="Skipping view transition because document visibility state has become hidden."||_.message==="Skipping view transition because viewport size changed."||_.message==="Transition was aborted because of invalid state")&&(_=null)}_!==null&&c(_)}finally{i(),r(),s()}}),p.finished.finally(function(){for(var _=0;_<h.length;_++)h[_].cancel();f.__reactViewTransition===p&&(f.__reactViewTransition=null),l()}),p}catch{return i(),r(),s(),null}}function Am(n,e){this._scope=document.documentElement,this._selector="::view-transition-"+n+"("+e+")"}Am.prototype.animate=function(n,e){return e=typeof e=="number"?{duration:e}:Qi({},e),e.pseudoElement=this._selector,this._scope.animate(n,e)};Am.prototype.getAnimations=function(){for(var n=this._scope,e=this._selector,t=n.getAnimations({subtree:!0}),i=[],r=0;r<t.length;r++){var a=t[r].effect;a!==null&&a.target===n&&a.pseudoElement===e&&i.push(t[r])}return i};Am.prototype.getComputedStyle=function(){return getComputedStyle(this._scope,this._selector)};function iB(n){return{name:n,group:new Am("group",n),imagePair:new Am("image-pair",n),old:new Am("old",n),new:new Am("new",n)}}function Zo(n){this._fragmentFiber=n,this._observers=this._eventListeners=null}Zo.prototype.addEventListener=function(n,e,t){var i=null,r=null;if(!(t!=null&&typeof t!="boolean"&&(i=t.signal||null,i!==null&&i.aborted))){this._eventListeners===null&&(this._eventListeners=[]);var a=this._eventListeners;if(rB(a,n,e,t)===-1){var s=this,l=e;t!=null&&typeof t!="boolean"&&t.once===!0&&(l=function(c){s.removeEventListener(n,e,t),typeof e=="function"?e.call(this,c):e.handleEvent(c)}),i!==null&&(r=s.removeEventListener.bind(s,n,e,t),i.addEventListener("abort",r,{once:!0}),r=i.removeEventListener.bind(i,"abort",r)),i=xy(t),a.push({type:n,listener:e,optionsOrUseCapture:t,attachedListener:l,cleanup:r}),oo(this._fragmentFiber.child,!1,rj,n,l,i)}this._eventListeners=a}};function rj(n,e,t,i){return ra(n).addEventListener(e,t,i),!1}Zo.prototype.removeEventListener=function(n,e,t){var i=this._eventListeners;if(i!==null&&(e=rB(i,n,e,t),e!==-1)){var r=i[e];t=r.attachedListener;var a=r.cleanup;r=xy(r.optionsOrUseCapture),oo(this._fragmentFiber.child,!1,aj,n,t,r),i.splice(e,1),a!==null&&a()}};function aj(n,e,t,i){return ra(n).removeEventListener(e,t,i),!1}function xy(n){return n!=null&&typeof n!="boolean"&&(n.once===!0||n.signal instanceof AbortSignal)?{capture:n.capture,passive:n.passive}:n}function s4(n){return n==null?"c=0":typeof n=="boolean"?"c="+(n?"1":"0"):"c="+(n.capture?"1":"0")}function rB(n,e,t,i){if(n.length===0)return-1;i=s4(i);for(var r=0;r<n.length;r++){var a=n[r];if(a.type===e&&a.listener===t&&s4(a.optionsOrUseCapture)===i)return r}return-1}Zo.prototype.dispatchEvent=function(n){var e=Bm(this._fragmentFiber);if(e===null)return!0;e=ra(e);var t=this._eventListeners;if(t!==null&&0<t.length||!n.bubbles){var i=e.nodeType===9?e.createComment(""):document.createTextNode("");if(t)for(var r=0;r<t.length;r++){var a=t[r];i.addEventListener(a.type,a.attachedListener,xy(a.optionsOrUseCapture))}if(e.appendChild(i),n=i.dispatchEvent(n),t)for(r=0;r<t.length;r++)a=t[r],i.removeEventListener(a.type,a.attachedListener,xy(a.optionsOrUseCapture));return e.removeChild(i),n}return e.dispatchEvent(n)};Zo.prototype.focus=function(n){oo(this._fragmentFiber.child,!0,aB,n,void 0,void 0)};function aB(n,e){return n.tag===6?!1:(n=ra(n),gj(n,e))}Zo.prototype.focusLast=function(n){var e=[];oo(this._fragmentFiber.child,!0,uk,e,void 0,void 0);for(var t=e.length-1;0<=t&&!aB(e[t],n);t--);};function uk(n,e){return e.push(n),!1}Zo.prototype.blur=function(){var n=Bm(this._fragmentFiber);n!==null&&(n=ra(n),n=WE(n).activeElement,n!==null&&oo(this._fragmentFiber.child,!1,sj,n,void 0,void 0))};function sj(n,e){return n.tag===6?!1:(n=ra(n),n===e||n.contains(e)?(e.blur(),!0):!1)}Zo.prototype.observeUsing=function(n){this._observers===null&&(this._observers=new Set),this._observers.add(n),oo(this._fragmentFiber.child,!1,oj,n,void 0,void 0)};function oj(n,e){return n.tag===6||(n=ra(n),e.observe(n)),!1}Zo.prototype.unobserveUsing=function(n){var e=this._observers;if(e!==null&&e.has(n)){e.delete(n),oo(this._fragmentFiber.child,!1,lj,n,void 0,void 0);for(var t=e=0;t<vu.length;t++){var i=vu[t];i.fragmentInstance===this&&i.observer===n?n.unobserve(i.instance):vu[e++]=i}vu.length=e}};function lj(n,e){return n.tag===6||(n=ra(n),e.unobserve(n)),!1}var vu=[],rL=!1;function uj(n,e,t){vu.push({fragmentInstance:n,observer:e,instance:t}),rL||(rL=!0,vj(function(){rL=!1;var i=vu;vu=[];for(var r=0;r<i.length;r++){var a=i[r];a.observer.unobserve(a.instance)}}))}Zo.prototype.getClientRects=function(){var n=[];return oo(this._fragmentFiber.child,!1,cj,n,void 0,void 0),n};function cj(n,e){if(n.tag===6){n=n.stateNode;var t=n.ownerDocument.createRange();t.selectNodeContents(n),e.push.apply(e,t.getClientRects())}else n=ra(n),e.push.apply(e,n.getClientRects());return!1}Zo.prototype.getRootNode=function(n){var e=Bm(this._fragmentFiber);return e===null?this:ra(e).getRootNode(n)};Zo.prototype.compareDocumentPosition=function(n){var e=Bm(this._fragmentFiber);if(e===null)return Node.DOCUMENT_POSITION_DISCONNECTED;var t=[];oo(this._fragmentFiber.child,!1,uk,t,void 0,void 0);var i=ra(e);if(t.length===0){if(t=i,zP(this._fragmentFiber)){e:{for(e=this._fragmentFiber.return;e!==null;){if(e.tag===4){e=e.stateNode.containerInfo;break e}if(e.tag===3||e.tag===5||e.tag===27)break;e=e.return}e=null}e!=null&&(t=e)}e=this._fragmentFiber;var r=i=t.compareDocumentPosition(n);return t===n?r=Node.DOCUMENT_POSITION_CONTAINS:i&Node.DOCUMENT_POSITION_CONTAINED_BY&&(t=A4(e)[1],t===null?r=Node.DOCUMENT_POSITION_PRECEDING:(n=ra(t).compareDocumentPosition(n),r=n===0||n&Node.DOCUMENT_POSITION_FOLLOWING?Node.DOCUMENT_POSITION_FOLLOWING:Node.DOCUMENT_POSITION_PRECEDING)),r|=Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC}e=ra(t[0]),r=ra(t[t.length-1]);var a=zP(this._fragmentFiber)?e.parentElement:i;if(a==null)return Node.DOCUMENT_POSITION_DISCONNECTED;i=a.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_CONTAINED_BY,a=a.compareDocumentPosition(r)&Node.DOCUMENT_POSITION_CONTAINED_BY;var s=e.compareDocumentPosition(n),l=r.compareDocumentPosition(n),c=s&Node.DOCUMENT_POSITION_CONTAINED_BY||l&Node.DOCUMENT_POSITION_CONTAINED_BY;return l=i&&a&&s&Node.DOCUMENT_POSITION_FOLLOWING&&l&Node.DOCUMENT_POSITION_PRECEDING,e=i&&e===n||a&&r===n||c||l?Node.DOCUMENT_POSITION_CONTAINED_BY:!i&&e===n||!a&&r===n?Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC:s,e&Node.DOCUMENT_POSITION_DISCONNECTED||e&Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC||fj(e,this._fragmentFiber,t[0],t[t.length-1],n)?e:Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC};function fj(n,e,t,i,r){var a=Mm(r);if(n&Node.DOCUMENT_POSITION_CONTAINED_BY){if(t=!!a)e:{for(;a!==null;){if(a.tag===7&&(a===e||a.alternate===e)){t=!0;break e}a=a.return}t=!1}return t}if(n&Node.DOCUMENT_POSITION_CONTAINS){if(a===null)return a=r.ownerDocument,r===a||r===a.documentElement||r===a.body;e:{for(a=e,e=Bm(e);a!==null;){if(!(a.tag!==5&&a.tag!==3&&a.tag!==27||a!==e&&a.alternate!==e)){a=!0;break e}a=a.return}a=!1}return a}return n&Node.DOCUMENT_POSITION_PRECEDING?((e=!!a)&&!(e=a===t)&&(e=oL(t,a,qP),e===null?e=!1:(oo(e,!0,B9,a,t),a=Xv,Xv=null,e=a!==null)),e):n&Node.DOCUMENT_POSITION_FOLLOWING?((e=!!a)&&!(e=a===i)&&(e=oL(i,a,qP),e===null?e=!1:(oo(e,!0,H9,a,i),a=Xv,sL=Xv=null,e=a!==null)),e):!1}function o4(n,e){var t=n.ownerDocument.createRange();t.selectNodeContents(n),n=t.getBoundingClientRect(),window.scrollTo(window.scrollX+n.left,e?window.scrollY+n.top:window.scrollY+n.bottom-window.innerHeight)}Zo.prototype.scrollIntoView=function(n){if(typeof n=="object")throw Error(ct(566));var e=[];oo(this._fragmentFiber.child,!1,uk,e,void 0,void 0);var t=n!==!1;if(e.length===0){var i=A4(this._fragmentFiber);if(i=t?i[1]||i[0]||Bm(this._fragmentFiber):i[0]||i[1],i===null)return;if(i.tag===6){n=ra(i),o4(n,t);return}if(i=ra(i),i.nodeType!==9){if(i.nodeType===11){t="host"in i?i.host:null,t!==null&&t.scrollIntoView(n);return}i.scrollIntoView(n)}}for(i=t?e.length-1:0;i!==(t?-1:e.length);){var r=e[i];r.tag===6?(r=ra(r),o4(r,t)):ra(r).scrollIntoView(n),i+=t?-1:1}};function dj(n,e){return n=ra(n),sB(n,e),!1}function sB(n,e){n.reactFragments==null&&(n.reactFragments=new Set),n.reactFragments.add(e)}function oB(n,e){var t=e._eventListeners;if(t!==null)for(var i=0;i<t.length;i++){var r=t[i];n.addEventListener(r.type,r.attachedListener,xy(r.optionsOrUseCapture))}n.nodeType!==3&&(t=e._observers,t!==null&&t.forEach(function(a){for(var s=0,l=0;l<vu.length;l++){var c=vu[l];(c.fragmentInstance!==e||c.observer!==a||c.instance!==n)&&(vu[s++]=c)}vu.length=s,a.observe(n)}),sB(n,e))}function hj(n,e){var t=e._eventListeners;if(t!==null)for(var i=0;i<t.length;i++){var r=t[i];n.removeEventListener(r.type,r.attachedListener,xy(r.optionsOrUseCapture))}n.nodeType!==3&&(t=e._observers,t!==null&&t.forEach(function(a){typeof a.rootMargin=="string"?uj(e,a,n):a.unobserve(n)}),n.reactFragments!=null&&n.reactFragments.delete(e))}function fN(n){var e=n.firstChild;for(e&&e.nodeType===10&&(e=e.nextSibling);e;){var t=e;switch(e=e.nextSibling,t.nodeName){case"HTML":case"HEAD":case"BODY":fN(t),zM(t);continue;case"SCRIPT":case"STYLE":continue;case"LINK":if(t.rel.toLowerCase()==="stylesheet")continue}n.removeChild(t)}}function pj(n,e,t,i){for(;n.nodeType===1;){var r=t;if(n.nodeName.toLowerCase()!==e.toLowerCase()){if(!i&&(n.nodeName!=="INPUT"||n.type!=="hidden"))break}else if(i){if(!n[ew])switch(e){case"meta":if(!n.hasAttribute("itemprop"))break;return n;case"link":if(a=n.getAttribute("rel"),a==="stylesheet"&&n.hasAttribute("data-precedence"))break;if(a!==r.rel||n.getAttribute("href")!==(r.href==null||r.href===""?null:r.href)||n.getAttribute("crossorigin")!==(r.crossOrigin==null?null:r.crossOrigin)||n.getAttribute("title")!==(r.title==null?null:r.title))break;return n;case"style":if(n.hasAttribute("data-precedence"))break;return n;case"script":if(a=n.getAttribute("src"),(a!==(r.src==null?null:r.src)||n.getAttribute("type")!==(r.type==null?null:r.type)||n.getAttribute("crossorigin")!==(r.crossOrigin==null?null:r.crossOrigin))&&a&&n.hasAttribute("async")&&!n.hasAttribute("itemprop"))break;return n;default:return n}}else if(e==="input"&&n.type==="hidden"){var a=r.name==null?null:""+r.name;if(r.type==="hidden"&&n.getAttribute("name")===a)return n}else return n;if(n=Wl(n.nextSibling),n===null)break}return null}function mj(n,e,t){if(e==="")return null;for(;n.nodeType!==3;)if((n.nodeType!==1||n.nodeName!=="INPUT"||n.type!=="hidden")&&!t||(n=Wl(n.nextSibling),n===null))return null;return n}function lB(n,e){for(;n.nodeType!==8;)if((n.nodeType!==1||n.nodeName!=="INPUT"||n.type!=="hidden")&&!e||(n=Wl(n.nextSibling),n===null))return null;return n}function dN(n){return n.data==="$?"||n.data==="$~"}function ck(n){return n.data==="$!"||n.data==="$?"&&n.ownerDocument.readyState!=="loading"}function _j(n,e){var t=n.ownerDocument;if(n.data==="$~")n._reactRetry=e;else if(n.data!=="$?"||t.readyState!=="loading")e();else{var i=function(){e(),t.removeEventListener("DOMContentLoaded",i)};t.addEventListener("DOMContentLoaded",i),n._reactRetry=i}}function Wl(n){for(;n!=null;n=n.nextSibling){var e=n.nodeType;if(e===1||e===3)break;if(e===8){if(e=n.data,e==="$"||e==="$!"||e==="$?"||e==="$~"||e==="&"||e==="F!"||e==="F")break;if(e==="/$"||e==="/&")return null}}return n}var hN=null;function l4(n){n=n.nextSibling;for(var e=0;n;){if(n.nodeType===8){var t=n.data;if(t==="/$"||t==="/&"){if(e===0)return Wl(n.nextSibling);e--}else t!=="$"&&t!=="$!"&&t!=="$?"&&t!=="$~"&&t!=="&"||e++}n=n.nextSibling}return null}function u4(n){n=n.previousSibling;for(var e=0;n;){if(n.nodeType===8){var t=n.data;if(t==="$"||t==="$!"||t==="$?"||t==="$~"||t==="&"){if(e===0)return n;e--}else t!=="/$"&&t!=="/&"||e++}n=n.previousSibling}return null}function gj(n,e){function t(){i=!0}if(n.ownerDocument.activeElement===n)return!0;var i=!1;try{n.ownerDocument.addEventListener("focus",t,!0),(n.focus||HTMLElement.prototype.focus).call(n,e)}finally{n.ownerDocument.removeEventListener("focus",t,!0)}return i}function vj(n){i4(function(){i4(function(e){return n(e)})})}function uB(n,e,t){switch(e=WE(t),n){case"html":if(n=e.documentElement,!n)throw Error(ct(452));return n;case"head":if(n=e.head,!n)throw Error(ct(453));return n;case"body":if(n=e.body,!n)throw Error(ct(454));return n;default:throw Error(ct(451))}}function cB(n,e,t){for(var i in t){var r=t[i];t.hasOwnProperty(i)&&r!=null&&Pi(n,e,i,null,QW,r)}t.dangerouslySetInnerHTML!=null&&(n.textContent=""),n.onclick===Rc&&(n.onclick=null),zM(n)}function aL(n){for(var e=n.attributes;e.length;)n.removeAttributeNode(e[0]);zM(n)}var jl=new Map,c4=new Set;function jE(n){if(typeof n.getRootNode=="function"){var e=n.getRootNode();if(e.nodeType===9||e.nodeType===11)return e}return n.nodeType===9?n:n.ownerDocument}var Of=wi.d;wi.d={f:yj,r:bj,D:Sj,C:Ej,L:wj,m:xj,X:Mj,S:Tj,M:Aj};function yj(){var n=Of.f(),e=JM();return n||e}function bj(n){var e=Iy(n);e!==null&&e.tag===5&&e.type==="form"?Xz(e):Of.r(n)}var Oy=typeof document>"u"?null:document;function fB(n,e,t){var i=Oy;if(i&&typeof e=="string"&&e){var r=Hl(e);r='link[rel="'+n+'"][href="'+r+'"]',typeof t=="string"&&(r+='[crossorigin="'+t+'"]'),c4.has(r)||(c4.add(r),n={rel:n,crossOrigin:t,href:e},i.querySelector(r)===null&&(e=i.createElement("link"),Ba(e,"link",n),ba(e),i.head.appendChild(e)))}}function Sj(n){Of.D(n),fB("dns-prefetch",n,null)}function Ej(n,e){Of.C(n,e),fB("preconnect",n,e)}function wj(n,e,t){Of.L(n,e,t);var i=Oy;if(i&&n&&e){var r='link[rel="preload"][as="'+Hl(e)+'"]';e==="image"&&t&&t.imageSrcSet?(r+='[imagesrcset="'+Hl(t.imageSrcSet)+'"]',typeof t.imageSizes=="string"&&(r+='[imagesizes="'+Hl(t.imageSizes)+'"]')):r+='[href="'+Hl(n)+'"]';var a=r;switch(e){case"style":a=Ty(n);break;case"script":a=Dy(n)}if(!(jl.has(a)||(n=Qi({rel:"preload",href:e==="image"&&t&&t.imageSrcSet?void 0:n,as:e},t),jl.set(a,n),i.querySelector(r)!==null||e==="style"&&i.querySelector(sw(a))||e==="script"&&i.querySelector(ow(a))))){var s=i.createElement("link");Ba(s,"link",n),e==="style"&&(s[hM]=!0,s.onload=s.onerror=function(){q4(s)}),ba(s),i.head.appendChild(s)}}}function xj(n,e){Of.m(n,e);var t=Oy;if(t&&n){var i=e&&typeof e.as=="string"?e.as:"script",r='link[rel="modulepreload"][as="'+Hl(i)+'"][href="'+Hl(n)+'"]',a=r;switch(i){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":a=Dy(n)}if(!jl.has(a)&&(n=Qi({rel:"modulepreload",href:n},e),jl.set(a,n),t.querySelector(r)===null)){switch(i){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(t.querySelector(ow(a)))return}i=t.createElement("link"),Ba(i,"link",n),ba(i),t.head.appendChild(i)}}}function Tj(n,e,t){Of.S(n,e,t);var i=Oy;if(i&&n){var r=sy(i).hoistableStyles,a=Ty(n);e=e||"default";var s=r.get(a);if(!s){var l={loading:0,preload:null};if(s=i.querySelector(sw(a)))l.loading=5;else{n=Qi({rel:"stylesheet",href:n,"data-precedence":e},t),(t=jl.get(a))&&fk(n,t);var c=s=i.createElement("link");ba(c),Ba(c,"link",n),c._p=new Promise(function(f,p){c.onload=f,c.onerror=p}),c.addEventListener("load",function(){l.loading|=1}),c.addEventListener("error",function(){l.loading|=2}),l.loading|=4,rM(s,e,i)}s={type:"stylesheet",instance:s,count:1,state:l},r.set(a,s)}}}function Mj(n,e){Of.X(n,e);var t=Oy;if(t&&n){var i=sy(t).hoistableScripts,r=Dy(n),a=i.get(r);a||(a=t.querySelector(ow(r)),a||(n=Qi({src:n,async:!0},e),(e=jl.get(r))&&dk(n,e),a=t.createElement("script"),ba(a),Ba(a,"link",n),t.head.appendChild(a)),a={type:"script",instance:a,count:1,state:null},i.set(r,a))}}function Aj(n,e){Of.M(n,e);var t=Oy;if(t&&n){var i=sy(t).hoistableScripts,r=Dy(n),a=i.get(r);a||(a=t.querySelector(ow(r)),a||(n=Qi({src:n,async:!0,type:"module"},e),(e=jl.get(r))&&dk(n,e),a=t.createElement("script"),ba(a),Ba(a,"link",n),t.head.appendChild(a)),a={type:"script",instance:a,count:1,state:null},i.set(r,a))}}function f4(n,e,t,i){var r=(r=uh.current)?jE(r):null;if(!r)throw Error(ct(446));switch(n){case"meta":case"title":return null;case"style":return typeof t.precedence=="string"&&typeof t.href=="string"?(t=Ty(t.href),e=sy(r).hoistableStyles,i=e.get(t),i||(i={type:"style",instance:null,count:0,state:null},e.set(t,i)),i):{type:"void",instance:null,count:0,state:null};case"link":if(t.rel==="stylesheet"&&typeof t.href=="string"&&typeof t.precedence=="string"){n=Ty(t.href);var a=sy(r).hoistableStyles,s=a.get(n);if(s||(r=r.ownerDocument||r,s={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},a.set(n,s),(a=r.querySelector(sw(n)))?a._p||(s.instance=a,s.state.loading=5):(a=jl.get(n),a||(a={rel:"preload",as:"style",href:t.href,crossOrigin:t.crossOrigin,integrity:t.integrity,media:t.media,hrefLang:t.hrefLang,referrerPolicy:t.referrerPolicy},jl.set(n,a)),Cj(r,n,a,s.state))),e&&i===null)throw Error(ct(528,""));return s}if(e&&i!==null)throw Error(ct(529,""));return null;case"script":return e=t.async,t=t.src,typeof t=="string"&&e&&typeof e!="function"&&typeof e!="symbol"?(t=Dy(t),e=sy(r).hoistableScripts,i=e.get(t),i||(i={type:"script",instance:null,count:0,state:null},e.set(t,i)),i):{type:"void",instance:null,count:0,state:null};default:throw Error(ct(444,n))}}function Ty(n){return'href="'+Hl(n)+'"'}function sw(n){return'link[rel="stylesheet"]['+n+"]"}function dB(n){return Qi({},n,{"data-precedence":n.precedence,precedence:null})}function Cj(n,e,t,i){if(e=n.querySelector('link[rel="preload"][as="style"]['+e+"]")){if(e[hM]!==!0){i.loading=1;return}}else e=n.createElement("link"),e[hM]=!0,e.onload=e.onerror=q4.bind(null,e),Ba(e,"link",t),ba(e),n.head.appendChild(e);i.preload=e,e.addEventListener("load",function(){return i.loading|=1}),e.addEventListener("error",function(){return i.loading|=2})}function Dy(n){return'[src="'+Hl(n)+'"]'}function ow(n){return"script[async]"+n}function d4(n,e,t){if(e.count++,e.instance===null)switch(e.type){case"style":var i=n.querySelector('style[data-href~="'+Hl(t.href)+'"]');if(i)return e.instance=i,ba(i),i;var r=Qi({},t,{"data-href":t.href,"data-precedence":t.precedence,href:null,precedence:null});return i=(n.ownerDocument||n).createElement("style"),ba(i),Ba(i,"style",r),rM(i,t.precedence,n),e.instance=i;case"stylesheet":r=Ty(t.href);var a=n.querySelector(sw(r));if(a)return e.state.loading|=4,e.instance=a,ba(a),a;i=dB(t),(r=jl.get(r))&&fk(i,r),a=(n.ownerDocument||n).createElement("link"),ba(a);var s=a;return s._p=new Promise(function(l,c){s.onload=l,s.onerror=c}),Ba(a,"link",i),e.state.loading|=4,rM(a,t.precedence,n),e.instance=a;case"script":return a=Dy(t.src),(r=n.querySelector(ow(a)))?(e.instance=r,ba(r),r):(i=t,(r=jl.get(a))&&(i=Qi({},t),dk(i,r)),n=n.ownerDocument||n,r=n.createElement("script"),ba(r),Ba(r,"link",i),n.head.appendChild(r),e.instance=r);case"void":return null;default:throw Error(ct(443,e.type))}else e.type==="stylesheet"&&(e.state.loading&4)===0&&(i=e.instance,e.state.loading|=4,rM(i,t.precedence,n));return e.instance}function rM(n,e,t){for(var i=t.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),r=i.length?i[i.length-1]:null,a=r,s=0;s<i.length;s++){var l=i[s];if(l.dataset.precedence===e)a=l;else if(a!==r)break}a?a.parentNode.insertBefore(n,a.nextSibling):(e=t.nodeType===9?t.head:t,e.insertBefore(n,e.firstChild))}function fk(n,e){n.crossOrigin==null&&(n.crossOrigin=e.crossOrigin),n.referrerPolicy==null&&(n.referrerPolicy=e.referrerPolicy),n.title==null&&(n.title=e.title)}function dk(n,e){n.crossOrigin==null&&(n.crossOrigin=e.crossOrigin),n.referrerPolicy==null&&(n.referrerPolicy=e.referrerPolicy),n.integrity==null&&(n.integrity=e.integrity)}var aM=null;function h4(n,e,t){if(aM===null){var i=new Map,r=aM=new Map;r.set(t,i)}else r=aM,i=r.get(t),i||(i=new Map,r.set(t,i));if(i.has(n))return i;for(i.set(n,null),t=t.getElementsByTagName(n),r=0;r<t.length;r++){var a=t[r];if(!(a[ew]||a[Pa]||n==="link"&&a.getAttribute("rel")==="stylesheet")&&a.namespaceURI!=="http://www.w3.org/2000/svg"){var s=a.getAttribute(e)||"";s=n+s;var l=i.get(s);l?l.push(a):i.set(s,[a])}}return i}function pN(n,e,t){n=n.ownerDocument||n,n.head.insertBefore(t,e==="title"?n.querySelector("head > title"):null)}function Rj(n,e,t){if(t===1||e.itemProp!=null)return!1;switch(n){case"meta":case"title":return!0;case"style":if(typeof e.precedence!="string"||typeof e.href!="string"||e.href==="")break;return!0;case"link":if(typeof e.rel!="string"||typeof e.href!="string"||e.href===""||e.onLoad||e.onError)break;switch(e.rel){case"stylesheet":return n=e.disabled,typeof e.precedence=="string"&&n==null;default:return!0}case"script":if(e.async&&typeof e.async!="function"&&typeof e.async!="symbol"&&!e.onLoad&&!e.onError&&e.src&&typeof e.src=="string")return!0}return!1}function p4(n,e){return n==="img"&&e.src!=null&&e.src!==""&&e.onLoad==null&&e.loading!=="lazy"}function hB(n){return!(n.type==="stylesheet"&&(n.state.loading&3)===0)}function pB(n){return(n.width||100)*(n.height||100)*(typeof devicePixelRatio=="number"?devicePixelRatio:1)*.25}function m4(n,e){typeof e.decode=="function"&&(n.imgCount++,e.complete||(n.imgBytes+=pB(e),n.suspenseyImages.push(e)),n=Nj.bind(n),e.decode().then(n,n))}function Ij(n,e,t,i){if(t.type==="stylesheet"&&(typeof i.media!="string"||matchMedia(i.media).matches!==!1)&&(t.state.loading&4)===0){if(t.instance===null){var r=Ty(i.href),a=e.querySelector(sw(r));if(a){e=a._p,e!==null&&typeof e=="object"&&typeof e.then=="function"&&(n.count++,n=QE.bind(n),e.then(n,n)),t.state.loading|=4,t.instance=a,ba(a);return}a=e.ownerDocument||e,i=dB(i),(r=jl.get(r))&&fk(i,r),a=a.createElement("link"),ba(a);var s=a;s._p=new Promise(function(l,c){s.onload=l,s.onerror=c}),Ba(a,"link",i),t.instance=a}n.stylesheets===null&&(n.stylesheets=new Map),n.stylesheets.set(t,e),(e=t.state.preload)&&(t.state.loading&3)===0&&(n.count++,t=QE.bind(n),e.addEventListener("load",t),e.addEventListener("error",t))}}var sM=0;function Lj(n,e){return n.stylesheets&&n.count===0&&oM(n,n.stylesheets),0<n.count||0<n.imgCount?function(t){var i=setTimeout(function(){if(n.stylesheets&&oM(n,n.stylesheets),n.unsuspend){var a=n.unsuspend;n.unsuspend=null,a()}},6e4+e);0<n.imgBytes&&sM===0&&(sM=62500*YW());var r=setTimeout(function(){if(n.waitingForImages=!1,n.count===0&&(n.stylesheets&&oM(n,n.stylesheets),n.unsuspend)){var a=n.unsuspend;n.unsuspend=null,a()}},(n.imgBytes>sM?50:800)+e);return n.unsuspend=t,function(){n.unsuspend=null,clearTimeout(i),clearTimeout(r)}}:null}function mB(n){if(n.count===0&&(n.imgCount===0||!n.waitingForImages)){if(n.stylesheets)oM(n,n.stylesheets);else if(n.unsuspend){var e=n.unsuspend;n.unsuspend=null,e()}}}function QE(){this.count--,mB(this)}function Nj(){this.imgCount--,mB(this)}var FM=null;function oM(n,e){n.stylesheets=null,n.unsuspend!==null&&(n.count++,FM=new Map,e.forEach(kj,n),FM=null,QE.call(n))}function kj(n,e){if(!(e.state.loading&4)){var t=FM.get(n);if(t)var i=t.get(null);else{t=new Map,FM.set(n,t);for(var r=n.querySelectorAll("link[data-precedence],style[data-precedence]"),a=0;a<r.length;a++){var s=r[a];(s.nodeName==="LINK"||s.getAttribute("media")!=="not all")&&(t.set(s.dataset.precedence,s),i=s)}i&&t.set(null,i)}r=e.instance,s=r.getAttribute("data-precedence"),a=t.get(s)||i,a===i&&t.set(null,r),t.set(s,r),this.count++,i=QE.bind(this),r.addEventListener("load",i),r.addEventListener("error",i),a?a.parentNode.insertBefore(r,a.nextSibling):(n=n.nodeType===9?n.head:n,n.insertBefore(r,n.firstChild)),e.state.loading|=4}}var My={$$typeof:Cc,Provider:null,Consumer:null,_currentValue:Cm,_currentValue2:Cm,_threadCount:0};function Oj(n,e,t,i,r,a,s,l,c){this.tag=1,this.containerInfo=n,this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.next=this.pendingContext=this.context=this.cancelPendingCommit=null,this.callbackPriority=0,this.expirationTimes=kI(-1),this.entangledLanes=this.shellSuspendCounter=this.errorRecoveryDisabledLanes=this.expiredLanes=this.warmLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=kI(0),this.hiddenUpdates=kI(null),this.identifierPrefix=i,this.onUncaughtError=r,this.onCaughtError=a,this.onRecoverableError=s,this.pooledCache=null,this.pooledCacheLanes=0,this.formState=c,this.transitionTypes=null,this.incompleteTransitions=new Map}function _B(n,e,t,i,r,a,s,l,c,f,p,h){return n=new Oj(n,e,t,s,c,f,p,h,l),e=1,a===!0&&(e|=24),a=ao(3,null,null,e),n.current=a,a.stateNode=n,e=NN(),e.refCount++,n.pooledCache=e,e.refCount++,a.memoizedState={element:i,isDehydrated:t,cache:e},DN(a),n}function gB(n){return n?(n=ny,n):ny}function vB(n,e,t,i,r,a){r=gB(r),i.context===null?i.context=r:i.pendingContext=r,i=fh(e),i.payload={element:t},a=a===void 0?null:a,a!==null&&(i.callback=a),t=dh(n,i,e),t!==null&&(so(t,n,e),TE(t,n,e))}function _4(n,e){if(n=n.memoizedState,n!==null&&n.dehydrated!==null){var t=n.retryLane;n.retryLane=t!==0&&t<e?t:e}}function hk(n,e){_4(n,e),(n=n.alternate)&&_4(n,e)}function yB(n){if(n.tag===13||n.tag===31){var e=Gm(n,67108864);e!==null&&so(e,n,67108864),hk(n,67108864)}}function g4(n){if(n.tag===13||n.tag===31){var e=Yo();e=bN(e);var t=Gm(n,e);t!==null&&so(t,n,e),hk(n,e)}}var Ay=!0;function Dj(n,e,t,i){var r=An.T;An.T=null;var a=wi.p;try{wi.p=2,pk(n,e,t,i)}finally{wi.p=a,An.T=r}}function Fj(n,e,t,i){var r=An.T;An.T=null;var a=wi.p;try{wi.p=8,pk(n,e,t,i)}finally{wi.p=a,An.T=r}}function pk(n,e,t,i){if(Ay){var r=mN(i);if(r===null)nL(n,e,i,PM,t),v4(n,i);else if(Uj(r,n,e,t,i))i.stopPropagation();else if(v4(n,i),e&4&&-1<Pj.indexOf(n)){for(;r!==null;){var a=Iy(r);if(a!==null)switch(a.tag){case 3:if(a=a.stateNode,a.current.memoizedState.isDehydrated){var s=wm(a.pendingLanes);if(s!==0){var l=a;for(l.pendingLanes|=2,l.entangledLanes|=2;s;){var c=1<<31-Xo(s);l.entanglements[1]|=c,s&=~c}Fc(a),(Ei&6)===0&&(LM=jo()+500,aw(0,!1))}}break;case 31:case 13:l=Gm(a,2),l!==null&&so(l,a,2),JM(),hk(a,2)}if(a=mN(i),a===null&&nL(n,e,i,PM,t),a===r)break;r=a}r!==null&&i.stopPropagation()}else nL(n,e,i,null,t)}}function mN(n){return n=wN(n),mk(n)}var PM=null;function mk(n){if(PM=null,n=Mm(n),n!==null){var e=KE(n);if(e===null)n=null;else{var t=e.tag;if(t===13){if(n=x4(e),n!==null)return n;n=null}else if(t===31){if(n=T4(e),n!==null)return n;n=null}else if(t===3){if(e.stateNode.current.memoizedState.isDehydrated)return e.tag===3?e.stateNode.containerInfo:null;n=null}else e!==n&&(n=null)}}return PM=n,null}function bB(n){switch(n){case"beforetoggle":case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"seeked":case"submit":case"toggle":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"textInput":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeblur":case"afterblur":case"beforeinput":case"blur":case"fullscreenchange":case"fullscreenerror":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 2;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"resize":case"scroll":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 8;case"message":switch(Z9()){case L4:return 2;case N4:return 8;case dM:case $9:return 32;case k4:return 268435456;default:return 32}default:return 32}}var _N=!1,_h=null,gh=null,vh=null,XE=new Map,YE=new Map,nh=[],Pj="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset".split(" ");function v4(n,e){switch(n){case"focusin":case"focusout":_h=null;break;case"dragenter":case"dragleave":gh=null;break;case"mouseover":case"mouseout":vh=null;break;case"pointerover":case"pointerout":XE.delete(e.pointerId);break;case"gotpointercapture":case"lostpointercapture":YE.delete(e.pointerId)}}function pE(n,e,t,i,r,a){return n===null||n.nativeEvent!==a?(n={blockedOn:e,domEventName:t,eventSystemFlags:i,nativeEvent:a,targetContainers:[r]},e!==null&&(e=Iy(e),e!==null&&yB(e)),n):(n.eventSystemFlags|=i,e=n.targetContainers,r!==null&&e.indexOf(r)===-1&&e.push(r),n)}function Uj(n,e,t,i,r){switch(e){case"focusin":return _h=pE(_h,n,e,t,i,r),!0;case"dragenter":return gh=pE(gh,n,e,t,i,r),!0;case"mouseover":return vh=pE(vh,n,e,t,i,r),!0;case"pointerover":var a=r.pointerId;return XE.set(a,pE(XE.get(a)||null,n,e,t,i,r)),!0;case"gotpointercapture":return a=r.pointerId,YE.set(a,pE(YE.get(a)||null,n,e,t,i,r)),!0}return!1}function SB(n){var e=Mm(n.target);if(e!==null){var t=KE(e);if(t!==null){if(e=t.tag,e===13){if(e=x4(t),e!==null){n.blockedOn=e,GP(n.priority,function(){g4(t)});return}}else if(e===31){if(e=T4(t),e!==null){n.blockedOn=e,GP(n.priority,function(){g4(t)});return}}else if(e===3&&t.stateNode.current.memoizedState.isDehydrated){n.blockedOn=t.tag===3?t.stateNode.containerInfo:null;return}}}n.blockedOn=null}function lM(n){if(n.blockedOn!==null)return!1;for(var e=n.targetContainers;0<e.length;){var t=mN(n.nativeEvent);if(t===null){t=n.nativeEvent;var i=new t.constructor(t.type,t);yL=i,t.target.dispatchEvent(i),yL=null}else return e=Iy(t),e!==null&&yB(e),n.blockedOn=t,!1;e.shift()}return!0}function y4(n,e,t){lM(n)&&t.delete(e)}function zj(){_N=!1,_h!==null&&lM(_h)&&(_h=null),gh!==null&&lM(gh)&&(gh=null),vh!==null&&lM(vh)&&(vh=null),XE.forEach(y4),YE.forEach(y4)}function H3(n,e){n.blockedOn===e&&(n.blockedOn=null,_N||(_N=!0,aa.unstable_scheduleCallback(aa.unstable_NormalPriority,zj)))}var V3=null;function b4(n){V3!==n&&(V3=n,aa.unstable_scheduleCallback(aa.unstable_NormalPriority,function(){V3===n&&(V3=null);for(var e=0;e<n.length;e+=3){var t=n[e],i=n[e+1],r=n[e+2];if(typeof i!="function"){if(mk(i||t)===null)continue;break}var a=Iy(t);a!==null&&(n.splice(e,3),e-=3,DL(a,{pending:!0,data:r,method:t.method,action:i},i,r))}}))}function Cy(n){function e(c){return H3(c,n)}_h!==null&&H3(_h,n),gh!==null&&H3(gh,n),vh!==null&&H3(vh,n),XE.forEach(e),YE.forEach(e);for(var t=0;t<nh.length;t++){var i=nh[t];i.blockedOn===n&&(i.blockedOn=null)}for(;0<nh.length&&(t=nh[0],t.blockedOn===null);)SB(t),t.blockedOn===null&&nh.shift();if(t=(n.ownerDocument||n).$$reactFormReplay,t!=null)for(i=0;i<t.length;i+=3){var r=t[i],a=t[i+1],s=r[lo]||null;if(typeof a=="function")s||b4(t);else if(s){var l=null;if(a&&a.hasAttribute("formAction")){if(r=a,s=a[lo]||null)l=s.formAction;else if(mk(r)!==null)continue}else l=s.action;typeof l=="function"?t[i+1]=l:(t.splice(i,3),i-=3),b4(t)}}}function EB(){function n(a){a.canIntercept&&a.info==="react-transition"&&a.intercept({handler:function(){return new Promise(function(s){return r=s})},focusReset:"manual",scroll:"manual"})}function e(){r!==null&&(r(),r=null),i||setTimeout(t,20)}function t(){if(!i&&!navigation.transition){var a=navigation.currentEntry;a&&a.url!=null&&navigation.navigate(a.url,{state:a.getState(),info:"react-transition",history:"replace"})}}if(typeof navigation=="object"){var i=!1,r=null;return navigation.addEventListener("navigate",n),navigation.addEventListener("navigatesuccess",e),navigation.addEventListener("navigateerror",e),setTimeout(t,100),function(){i=!0,navigation.removeEventListener("navigate",n),navigation.removeEventListener("navigatesuccess",e),navigation.removeEventListener("navigateerror",e),r!==null&&(r(),r=null)}}}function _k(n){this._internalRoot=n}nA.prototype.render=_k.prototype.render=function(n){var e=this._internalRoot;if(e===null)throw Error(ct(409));var t=e.current,i=Yo();vB(t,i,n,e,null,null)};nA.prototype.unmount=_k.prototype.unmount=function(){var n=this._internalRoot;if(n!==null){this._internalRoot=null;var e=n.containerInfo;vB(n.current,2,null,n,null,null),JM(),e[Ry]=null}};function nA(n){this._internalRoot=n}nA.prototype.unstable_scheduleHydration=function(n){if(n){var e=z4();n={blockedOn:null,target:n,priority:e};for(var t=0;t<nh.length&&e!==0&&e<nh[t].priority;t++);nh.splice(t,0,n),t===0&&SB(n)}};var S4=E4.version;if(S4!=="19.3.0")throw Error(ct(527,S4,"19.3.0"));wi.findDOMNode=function(n){var e=n._reactInternals;if(e===void 0)throw typeof n.render=="function"?Error(ct(188)):(n=Object.keys(n).join(","),Error(ct(268,n)));return n=q9(e),n=n!==null?M4(n):null,n=n===null?null:n.stateNode,n};var qj={bundleType:0,version:"19.3.0",rendererPackageName:"react-dom",currentDispatcherRef:An,reconcilerVersion:"19.3.0"};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&(mE=__REACT_DEVTOOLS_GLOBAL_HOOK__,!mE.isDisabled&&mE.supportsFiber))try{ZE=mE.inject(qj),Qo=mE}catch{}var mE;iA.createRoot=function(n,e){if(!w4(n))throw Error(ct(299));var t=!1,i="",r=nq,a=iq,s=rq;return e!=null&&(e.unstable_strictMode===!0&&(t=!0),e.identifierPrefix!==void 0&&(i=e.identifierPrefix),e.onUncaughtError!==void 0&&(r=e.onUncaughtError),e.onCaughtError!==void 0&&(a=e.onCaughtError),e.onRecoverableError!==void 0&&(s=e.onRecoverableError)),e=_B(n,1,!1,null,null,t,i,null,r,a,s,EB),n[Ry]=e.current,ok(n),new _k(e)};iA.hydrateRoot=function(n,e,t){if(!w4(n))throw Error(ct(299));var i=!1,r="",a=nq,s=iq,l=rq,c=null;return t!=null&&(t.unstable_strictMode===!0&&(i=!0),t.identifierPrefix!==void 0&&(r=t.identifierPrefix),t.onUncaughtError!==void 0&&(a=t.onUncaughtError),t.onCaughtError!==void 0&&(s=t.onCaughtError),t.onRecoverableError!==void 0&&(l=t.onRecoverableError),t.formState!==void 0&&(c=t.formState)),e=_B(n,1,!0,e,t??null,i,r,c,a,s,l,EB),e.context=gB(null),t=e.current,i=Yo(),i=bN(i),r=fh(i),r.callback=null,dh(t,r,i),t=i,e.current.lanes=t,JE(e,t),Fc(e),n[Ry]=e.current,ok(n),new nA(e)};iA.version="19.3.0"});var MB=to((sse,TB)=>{"use strict";function xB(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(xB)}catch(n){console.error(n)}}xB(),TB.exports=wB()});var IB=to(aA=>{"use strict";var Hj=Symbol.for("react.transitional.element"),Vj=Symbol.for("react.fragment");function RB(n,e,t){var i=null;if(t!==void 0&&(i=""+t),e.key!==void 0&&(i=""+e.key),"key"in e){t={};for(var r in e)r!=="key"&&(t[r]=e[r])}else t=e;return e=t.ref,{$$typeof:Hj,type:n,key:i,ref:e!==void 0?e:null,props:t}}aA.Fragment=Vj;aA.jsx=RB;aA.jsxs=RB});var $o=to((hse,LB)=>{"use strict";LB.exports=IB()});var C8=to(A8=>{"use strict";var sb=tr();function CJ(n,e){return n===e&&(n!==0||1/n===1/e)||n!==n&&e!==e}var RJ=typeof Object.is=="function"?Object.is:CJ,IJ=sb.useState,LJ=sb.useEffect,NJ=sb.useLayoutEffect,kJ=sb.useDebugValue;function OJ(n,e){var t=e(),i=IJ({inst:{value:t,getSnapshot:e}}),r=i[0].inst,a=i[1];return NJ(function(){r.value=t,r.getSnapshot=e,_D(r)&&a({inst:r})},[n,t,e]),LJ(function(){return _D(r)&&a({inst:r}),n(function(){_D(r)&&a({inst:r})})},[n]),kJ(t),t}function _D(n){var e=n.getSnapshot;n=n.value;try{var t=e();return!RJ(n,t)}catch{return!0}}function DJ(n,e){return e()}var FJ=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?DJ:OJ;A8.useSyncExternalStore=sb.useSyncExternalStore!==void 0?sb.useSyncExternalStore:FJ});var I8=to((yse,R8)=>{"use strict";R8.exports=C8()});var N8=to(L8=>{"use strict";var R2=tr(),PJ=I8();function UJ(n,e){return n===e&&(n!==0||1/n===1/e)||n!==n&&e!==e}var zJ=typeof Object.is=="function"?Object.is:UJ,qJ=PJ.useSyncExternalStore,BJ=R2.useRef,HJ=R2.useEffect,VJ=R2.useMemo,GJ=R2.useDebugValue;L8.useSyncExternalStoreWithSelector=function(n,e,t,i,r){var a=BJ(null);if(a.current===null){var s={hasValue:!1,value:null};a.current=s}else s=a.current;a=VJ(function(){function c(g){if(!f){if(f=!0,p=g,g=i(g),r!==void 0&&s.hasValue){var E=s.value;if(r(E,g))return h=E}return h=g}if(E=h,zJ(p,g))return E;var x=i(g);return r!==void 0&&r(E,x)?(p=g,E):(p=g,h=x)}var f=!1,p,h,_=t===void 0?null:t;return[function(){return c(e())},_===null?void 0:function(){return c(_())}]},[e,t,i,r]);var l=qJ(n,a[0],a[1]);return HJ(function(){s.hasValue=!0,s.value=l},[l]),GJ(l),l}});var O8=to((Sse,k8)=>{"use strict";k8.exports=N8()});var BH={};pu(BH,{default:()=>xte});var wte,xte,HH=Da(()=>{wte=(async function(n={}){var e,t=n,i,r,a=new Promise((b,R)=>{i=b,r=R}),s=typeof window=="object",l=typeof WorkerGlobalScope<"u",c=typeof process=="object"&&process.versions?.node&&process.type!="renderer",f=[],p="./this.program",h=(b,R)=>{throw R},_=import.meta.url,g="";function E(b){return t.locateFile?t.locateFile(b,g):g+b}var x,S;if(s||l){try{g=new URL(".",_).href}catch{}l&&(S=b=>{var R=new XMLHttpRequest;return R.open("GET",b,!1),R.responseType="arraybuffer",R.send(null),new Uint8Array(R.response)}),x=async b=>{var R=await fetch(b,{credentials:"same-origin"});if(R.ok)return R.arrayBuffer();throw new Error(R.status+" : "+R.url)}}var v=console.log.bind(console),M=console.error.bind(console),O,k,q=!1,G,Q,H,Z,te,j,he,ke,Me,ze=!1;function Ne(){var b=k.buffer;Q=new Int8Array(b),Z=new Int16Array(b),t.HEAPU8=H=new Uint8Array(b),te=new Uint16Array(b),t.HEAP32=j=new Int32Array(b),he=new Uint32Array(b),ke=new Float32Array(b),Me=new Float64Array(b)}function Ve(){if(t.preRun)for(typeof t.preRun=="function"&&(t.preRun=[t.preRun]);t.preRun.length;)en(t.preRun.shift());vt(qt)}function Je(){ze=!0,!t.noFSInit&&!d.initialized&&d.init(),ht.init(),ue.ra(),d.ignorePermissions=!1}function Qe(){}function st(){if(t.postRun)for(typeof t.postRun=="function"&&(t.postRun=[t.postRun]);t.postRun.length;)Ht(t.postRun.shift());vt(Qt)}var We=0,gt=null;function Et(b){return b}function jt(b){We++,t.monitorRunDependencies?.(We)}function zt(b){if(We--,t.monitorRunDependencies?.(We),We==0&&gt){var R=gt;gt=null,R()}}function Mt(b){t.onAbort?.(b),b="Aborted("+b+")",M(b),q=!0,b+=". Build with -sASSERTIONS for more info.";var R=new WebAssembly.RuntimeError(b);throw r(R),R}var Xe;function et(){return t.locateFile?E("mc-wa-sqlite-async.wasm"):new URL("mc-wa-sqlite-async.wasm",import.meta.url).href}function yt(b){if(b==Xe&&O)return new Uint8Array(O);if(S)return S(b);throw"both async and sync fetching of the wasm failed"}async function Wt(b){if(!O)try{var R=await x(b);return new Uint8Array(R)}catch{}return yt(b)}async function Lt(b,R){try{var z=await Wt(b),Y=await WebAssembly.instantiate(z,R);return Y}catch(se){M(`failed to asynchronously prepare wasm: ${se}`),Mt(se)}}async function sn(b,R,z){if(!b&&typeof WebAssembly.instantiateStreaming=="function")try{var Y=fetch(R,{credentials:"same-origin"}),se=await WebAssembly.instantiateStreaming(Y,z);return se}catch(ye){M(`wasm streaming compile failed: ${ye}`),M("falling back to ArrayBuffer instantiation")}return Lt(R,z)}function pn(){return{a:ce}}async function lt(){function b(ye,xe){return ue=ye.exports,ue=Xt.instrumentWasmExports(ue),k=ue.qa,Ne(),Ya=ue.wf,zt("wasm-instantiate"),ue}jt("wasm-instantiate");function R(ye){return b(ye.instance)}var z=pn();if(t.instantiateWasm)return new Promise((ye,xe)=>{t.instantiateWasm(z,(Ce,ot)=>{ye(b(Ce,ot))})});Xe??=et();try{var Y=await sn(O,Xe,z),se=R(Y);return se}catch(ye){return r(ye),Promise.reject(ye)}}var _e,Pe;class dt{name="ExitStatus";constructor(R){this.message=`Program terminated with exit(${R})`,this.status=R}}var vt=b=>{for(;b.length>0;)b.shift()(t)},Qt=[],Ht=b=>Qt.push(b),qt=[],en=b=>qt.push(b);function Le(b,R="i8"){switch(R.endsWith("*")&&(R="*"),R){case"i1":return Q[b];case"i8":return Q[b];case"i16":return Z[b>>1];case"i32":return j[b>>2];case"i64":Mt("to do getValue(i64) use WASM_BIGINT");case"float":return ke[b>>2];case"double":return Me[b>>3];case"*":return he[b>>2];default:Mt(`invalid type for getValue: ${R}`)}}var fn=!0;function kt(b,R,z="i8"){switch(z.endsWith("*")&&(z="*"),z){case"i1":Q[b]=R;break;case"i8":Q[b]=R;break;case"i16":Z[b>>1]=R;break;case"i32":j[b>>2]=R;break;case"i64":Mt("to do setValue(i64) use WASM_BIGINT");case"float":ke[b>>2]=R;break;case"double":Me[b>>3]=R;break;case"*":he[b>>2]=R;break;default:Mt(`invalid type for setValue: ${z}`)}}var ge=b=>im(b),L=()=>am(),N=new TextDecoder,U=(b,R)=>{if(!b)return"";for(var z=b+R,Y=b;!(Y>=z)&&H[Y];)++Y;return N.decode(H.subarray(b,Y))},ee=(b,R,z,Y)=>Mt(`Assertion failed: ${U(b)}, at: `+[R?U(R):"unknown filename",z,Y?U(Y):"unknown function"]),ne={isAbs:b=>b.charAt(0)==="/",splitPath:b=>{var R=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return R.exec(b).slice(1)},normalizeArray:(b,R)=>{for(var z=0,Y=b.length-1;Y>=0;Y--){var se=b[Y];se==="."?b.splice(Y,1):se===".."?(b.splice(Y,1),z++):z&&(b.splice(Y,1),z--)}if(R)for(;z;z--)b.unshift("..");return b},normalize:b=>{var R=ne.isAbs(b),z=b.slice(-1)==="/";return b=ne.normalizeArray(b.split("/").filter(Y=>!!Y),!R).join("/"),!b&&!R&&(b="."),b&&z&&(b+="/"),(R?"/":"")+b},dirname:b=>{var R=ne.splitPath(b),z=R[0],Y=R[1];return!z&&!Y?".":(Y&&(Y=Y.slice(0,-1)),z+Y)},basename:b=>b&&b.match(/([^\/]+|\/)\/*$/)[1],join:(...b)=>ne.normalize(b.join("/")),join2:(b,R)=>ne.normalize(b+"/"+R)},X=()=>b=>crypto.getRandomValues(b),ie=b=>{(ie=X())(b)},le={resolve:(...b)=>{for(var R="",z=!1,Y=b.length-1;Y>=-1&&!z;Y--){var se=Y>=0?b[Y]:d.cwd();if(typeof se!="string")throw new TypeError("Arguments to path.resolve must be strings");if(!se)return"";R=se+"/"+R,z=ne.isAbs(se)}return R=ne.normalizeArray(R.split("/").filter(ye=>!!ye),!z).join("/"),(z?"/":"")+R||"."},relative:(b,R)=>{b=le.resolve(b).slice(1),R=le.resolve(R).slice(1);function z(xt){for(var tn=0;tn<xt.length&&xt[tn]==="";tn++);for(var vn=xt.length-1;vn>=0&&xt[vn]==="";vn--);return tn>vn?[]:xt.slice(tn,vn-tn+1)}for(var Y=z(b.split("/")),se=z(R.split("/")),ye=Math.min(Y.length,se.length),xe=ye,Ce=0;Ce<ye;Ce++)if(Y[Ce]!==se[Ce]){xe=Ce;break}for(var ot=[],Ce=xe;Ce<Y.length;Ce++)ot.push("..");return ot=ot.concat(se.slice(xe)),ot.join("/")}},be=(b,R=0,z=NaN)=>{for(var Y=R+z,se=R;b[se]&&!(se>=Y);)++se;return N.decode(b.buffer?b.subarray(R,se):new Uint8Array(b.slice(R,se)))},tt=[],Oe=b=>{for(var R=0,z=0;z<b.length;++z){var Y=b.charCodeAt(z);Y<=127?R++:Y<=2047?R+=2:Y>=55296&&Y<=57343?(R+=4,++z):R+=3}return R},je=(b,R,z,Y)=>{if(!(Y>0))return 0;for(var se=z,ye=z+Y-1,xe=0;xe<b.length;++xe){var Ce=b.charCodeAt(xe);if(Ce>=55296&&Ce<=57343){var ot=b.charCodeAt(++xe);Ce=65536+((Ce&1023)<<10)|ot&1023}if(Ce<=127){if(z>=ye)break;R[z++]=Ce}else if(Ce<=2047){if(z+1>=ye)break;R[z++]=192|Ce>>6,R[z++]=128|Ce&63}else if(Ce<=65535){if(z+2>=ye)break;R[z++]=224|Ce>>12,R[z++]=128|Ce>>6&63,R[z++]=128|Ce&63}else{if(z+3>=ye)break;R[z++]=240|Ce>>18,R[z++]=128|Ce>>12&63,R[z++]=128|Ce>>6&63,R[z++]=128|Ce&63}}return R[z]=0,z-se},Ct=(b,R,z)=>{var Y=z>0?z:Oe(b)+1,se=new Array(Y),ye=je(b,se,0,se.length);return R&&(se.length=ye),se},nn=()=>{if(!tt.length){var b=null;if(typeof window<"u"&&typeof window.prompt=="function"&&(b=window.prompt("Input: "),b!==null&&(b+=`
`)),!b)return null;tt=Ct(b,!0)}return tt.shift()},ht={ttys:[],init(){},shutdown(){},register(b,R){ht.ttys[b]={input:[],output:[],ops:R},d.registerDevice(b,ht.stream_ops)},stream_ops:{open(b){var R=ht.ttys[b.node.rdev];if(!R)throw new d.ErrnoError(43);b.tty=R,b.seekable=!1},close(b){b.tty.ops.fsync(b.tty)},fsync(b){b.tty.ops.fsync(b.tty)},read(b,R,z,Y,se){if(!b.tty||!b.tty.ops.get_char)throw new d.ErrnoError(60);for(var ye=0,xe=0;xe<Y;xe++){var Ce;try{Ce=b.tty.ops.get_char(b.tty)}catch{throw new d.ErrnoError(29)}if(Ce===void 0&&ye===0)throw new d.ErrnoError(6);if(Ce==null)break;ye++,R[z+xe]=Ce}return ye&&(b.node.atime=Date.now()),ye},write(b,R,z,Y,se){if(!b.tty||!b.tty.ops.put_char)throw new d.ErrnoError(60);try{for(var ye=0;ye<Y;ye++)b.tty.ops.put_char(b.tty,R[z+ye])}catch{throw new d.ErrnoError(29)}return Y&&(b.node.mtime=b.node.ctime=Date.now()),ye}},default_tty_ops:{get_char(b){return nn()},put_char(b,R){R===null||R===10?(v(be(b.output)),b.output=[]):R!=0&&b.output.push(R)},fsync(b){b.output?.length>0&&(v(be(b.output)),b.output=[])},ioctl_tcgets(b){return{c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},ioctl_tcsets(b,R,z){return 0},ioctl_tiocgwinsz(b){return[24,80]}},default_tty1_ops:{put_char(b,R){R===null||R===10?(M(be(b.output)),b.output=[]):R!=0&&b.output.push(R)},fsync(b){b.output?.length>0&&(M(be(b.output)),b.output=[])}}},De=(b,R)=>H.fill(0,b,b+R),bt=(b,R)=>Math.ceil(b/R)*R,at=b=>{b=bt(b,65536);var R=Nd(65536,b);return R&&De(R,b),R},we={ops_table:null,mount(b){return we.createNode(null,"/",16895,0)},createNode(b,R,z,Y){if(d.isBlkdev(z)||d.isFIFO(z))throw new d.ErrnoError(63);we.ops_table||={dir:{node:{getattr:we.node_ops.getattr,setattr:we.node_ops.setattr,lookup:we.node_ops.lookup,mknod:we.node_ops.mknod,rename:we.node_ops.rename,unlink:we.node_ops.unlink,rmdir:we.node_ops.rmdir,readdir:we.node_ops.readdir,symlink:we.node_ops.symlink},stream:{llseek:we.stream_ops.llseek}},file:{node:{getattr:we.node_ops.getattr,setattr:we.node_ops.setattr},stream:{llseek:we.stream_ops.llseek,read:we.stream_ops.read,write:we.stream_ops.write,mmap:we.stream_ops.mmap,msync:we.stream_ops.msync}},link:{node:{getattr:we.node_ops.getattr,setattr:we.node_ops.setattr,readlink:we.node_ops.readlink},stream:{}},chrdev:{node:{getattr:we.node_ops.getattr,setattr:we.node_ops.setattr},stream:d.chrdev_stream_ops}};var se=d.createNode(b,R,z,Y);return d.isDir(se.mode)?(se.node_ops=we.ops_table.dir.node,se.stream_ops=we.ops_table.dir.stream,se.contents={}):d.isFile(se.mode)?(se.node_ops=we.ops_table.file.node,se.stream_ops=we.ops_table.file.stream,se.usedBytes=0,se.contents=null):d.isLink(se.mode)?(se.node_ops=we.ops_table.link.node,se.stream_ops=we.ops_table.link.stream):d.isChrdev(se.mode)&&(se.node_ops=we.ops_table.chrdev.node,se.stream_ops=we.ops_table.chrdev.stream),se.atime=se.mtime=se.ctime=Date.now(),b&&(b.contents[R]=se,b.atime=b.mtime=b.ctime=se.atime),se},getFileDataAsTypedArray(b){return b.contents?b.contents.subarray?b.contents.subarray(0,b.usedBytes):new Uint8Array(b.contents):new Uint8Array(0)},expandFileStorage(b,R){var z=b.contents?b.contents.length:0;if(!(z>=R)){var Y=1024*1024;R=Math.max(R,z*(z<Y?2:1.125)>>>0),z!=0&&(R=Math.max(R,256));var se=b.contents;b.contents=new Uint8Array(R),b.usedBytes>0&&b.contents.set(se.subarray(0,b.usedBytes),0)}},resizeFileStorage(b,R){if(b.usedBytes!=R)if(R==0)b.contents=null,b.usedBytes=0;else{var z=b.contents;b.contents=new Uint8Array(R),z&&b.contents.set(z.subarray(0,Math.min(R,b.usedBytes))),b.usedBytes=R}},node_ops:{getattr(b){var R={};return R.dev=d.isChrdev(b.mode)?b.id:1,R.ino=b.id,R.mode=b.mode,R.nlink=1,R.uid=0,R.gid=0,R.rdev=b.rdev,d.isDir(b.mode)?R.size=4096:d.isFile(b.mode)?R.size=b.usedBytes:d.isLink(b.mode)?R.size=b.link.length:R.size=0,R.atime=new Date(b.atime),R.mtime=new Date(b.mtime),R.ctime=new Date(b.ctime),R.blksize=4096,R.blocks=Math.ceil(R.size/R.blksize),R},setattr(b,R){for(let z of["mode","atime","mtime","ctime"])R[z]!=null&&(b[z]=R[z]);R.size!==void 0&&we.resizeFileStorage(b,R.size)},lookup(b,R){throw we.doesNotExistError},mknod(b,R,z,Y){return we.createNode(b,R,z,Y)},rename(b,R,z){var Y;try{Y=d.lookupNode(R,z)}catch{}if(Y){if(d.isDir(b.mode))for(var se in Y.contents)throw new d.ErrnoError(55);d.hashRemoveNode(Y)}delete b.parent.contents[b.name],R.contents[z]=b,b.name=z,R.ctime=R.mtime=b.parent.ctime=b.parent.mtime=Date.now()},unlink(b,R){delete b.contents[R],b.ctime=b.mtime=Date.now()},rmdir(b,R){var z=d.lookupNode(b,R);for(var Y in z.contents)throw new d.ErrnoError(55);delete b.contents[R],b.ctime=b.mtime=Date.now()},readdir(b){return[".","..",...Object.keys(b.contents)]},symlink(b,R,z){var Y=we.createNode(b,R,41471,0);return Y.link=z,Y},readlink(b){if(!d.isLink(b.mode))throw new d.ErrnoError(28);return b.link}},stream_ops:{read(b,R,z,Y,se){var ye=b.node.contents;if(se>=b.node.usedBytes)return 0;var xe=Math.min(b.node.usedBytes-se,Y);if(xe>8&&ye.subarray)R.set(ye.subarray(se,se+xe),z);else for(var Ce=0;Ce<xe;Ce++)R[z+Ce]=ye[se+Ce];return xe},write(b,R,z,Y,se,ye){if(R.buffer===Q.buffer&&(ye=!1),!Y)return 0;var xe=b.node;if(xe.mtime=xe.ctime=Date.now(),R.subarray&&(!xe.contents||xe.contents.subarray)){if(ye)return xe.contents=R.subarray(z,z+Y),xe.usedBytes=Y,Y;if(xe.usedBytes===0&&se===0)return xe.contents=R.slice(z,z+Y),xe.usedBytes=Y,Y;if(se+Y<=xe.usedBytes)return xe.contents.set(R.subarray(z,z+Y),se),Y}if(we.expandFileStorage(xe,se+Y),xe.contents.subarray&&R.subarray)xe.contents.set(R.subarray(z,z+Y),se);else for(var Ce=0;Ce<Y;Ce++)xe.contents[se+Ce]=R[z+Ce];return xe.usedBytes=Math.max(xe.usedBytes,se+Y),Y},llseek(b,R,z){var Y=R;if(z===1?Y+=b.position:z===2&&d.isFile(b.node.mode)&&(Y+=b.node.usedBytes),Y<0)throw new d.ErrnoError(28);return Y},mmap(b,R,z,Y,se){if(!d.isFile(b.node.mode))throw new d.ErrnoError(43);var ye,xe,Ce=b.node.contents;if(!(se&2)&&Ce&&Ce.buffer===Q.buffer)xe=!1,ye=Ce.byteOffset;else{if(xe=!0,ye=at(R),!ye)throw new d.ErrnoError(48);Ce&&((z>0||z+R<Ce.length)&&(Ce.subarray?Ce=Ce.subarray(z,z+R):Ce=Array.prototype.slice.call(Ce,z,z+R)),Q.set(Ce,ye))}return{ptr:ye,allocated:xe}},msync(b,R,z,Y,se){return we.stream_ops.write(b,R,0,Y,z,!1),0}}},Rt=async b=>{var R=await x(b);return new Uint8Array(R)};Rt.isAsync=!0;var ft=(...b)=>d.createDataFile(...b),Yt=[],$t=(b,R,z,Y)=>{typeof Browser<"u"&&Browser.init();var se=!1;return Yt.forEach(ye=>{se||ye.canHandle(R)&&(ye.handle(b,R,z,Y),se=!0)}),se},Wn=(b,R,z,Y,se,ye,xe,Ce,ot,xt)=>{var tn=R?le.resolve(ne.join2(b,R)):b,vn=`cp ${tn}`;function mn(on){function dn(Ai){xt?.(),Ce||ft(b,R,Ai,Y,se,ot),ye?.(),zt(vn)}$t(on,tn,dn,()=>{xe?.(),zt(vn)})||dn(on)}jt(vn),typeof z=="string"?Rt(z).then(mn,xe):mn(z)},Un=b=>{var R={r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},z=R[b];if(typeof z>"u")throw new Error(`Unknown file open mode: ${b}`);return z},Ti=(b,R)=>{var z=0;return b&&(z|=365),R&&(z|=146),z},d={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,filesystems:null,syncFSRequests:0,readFiles:{},ErrnoError:class{name="ErrnoError";constructor(b){this.errno=b}},FSStream:class{shared={};get object(){return this.node}set object(b){this.node=b}get isRead(){return(this.flags&2097155)!==1}get isWrite(){return(this.flags&2097155)!==0}get isAppend(){return this.flags&1024}get flags(){return this.shared.flags}set flags(b){this.shared.flags=b}get position(){return this.shared.position}set position(b){this.shared.position=b}},FSNode:class{node_ops={};stream_ops={};readMode=365;writeMode=146;mounted=null;constructor(b,R,z,Y){b||(b=this),this.parent=b,this.mount=b.mount,this.id=d.nextInode++,this.name=R,this.mode=z,this.rdev=Y,this.atime=this.mtime=this.ctime=Date.now()}get read(){return(this.mode&this.readMode)===this.readMode}set read(b){b?this.mode|=this.readMode:this.mode&=~this.readMode}get write(){return(this.mode&this.writeMode)===this.writeMode}set write(b){b?this.mode|=this.writeMode:this.mode&=~this.writeMode}get isFolder(){return d.isDir(this.mode)}get isDevice(){return d.isChrdev(this.mode)}},lookupPath(b,R={}){if(!b)throw new d.ErrnoError(44);R.follow_mount??=!0,ne.isAbs(b)||(b=d.cwd()+"/"+b);e:for(var z=0;z<40;z++){for(var Y=b.split("/").filter(xt=>!!xt),se=d.root,ye="/",xe=0;xe<Y.length;xe++){var Ce=xe===Y.length-1;if(Ce&&R.parent)break;if(Y[xe]!=="."){if(Y[xe]===".."){if(ye=ne.dirname(ye),d.isRoot(se)){b=ye+"/"+Y.slice(xe+1).join("/");continue e}else se=se.parent;continue}ye=ne.join2(ye,Y[xe]);try{se=d.lookupNode(se,Y[xe])}catch(xt){if(xt?.errno===44&&Ce&&R.noent_okay)return{path:ye};throw xt}if(d.isMountpoint(se)&&(!Ce||R.follow_mount)&&(se=se.mounted.root),d.isLink(se.mode)&&(!Ce||R.follow)){if(!se.node_ops.readlink)throw new d.ErrnoError(52);var ot=se.node_ops.readlink(se);ne.isAbs(ot)||(ot=ne.dirname(ye)+"/"+ot),b=ot+"/"+Y.slice(xe+1).join("/");continue e}}}return{path:ye,node:se}}throw new d.ErrnoError(32)},getPath(b){for(var R;;){if(d.isRoot(b)){var z=b.mount.mountpoint;return R?z[z.length-1]!=="/"?`${z}/${R}`:z+R:z}R=R?`${b.name}/${R}`:b.name,b=b.parent}},hashName(b,R){for(var z=0,Y=0;Y<R.length;Y++)z=(z<<5)-z+R.charCodeAt(Y)|0;return(b+z>>>0)%d.nameTable.length},hashAddNode(b){var R=d.hashName(b.parent.id,b.name);b.name_next=d.nameTable[R],d.nameTable[R]=b},hashRemoveNode(b){var R=d.hashName(b.parent.id,b.name);if(d.nameTable[R]===b)d.nameTable[R]=b.name_next;else for(var z=d.nameTable[R];z;){if(z.name_next===b){z.name_next=b.name_next;break}z=z.name_next}},lookupNode(b,R){var z=d.mayLookup(b);if(z)throw new d.ErrnoError(z);for(var Y=d.hashName(b.id,R),se=d.nameTable[Y];se;se=se.name_next){var ye=se.name;if(se.parent.id===b.id&&ye===R)return se}return d.lookup(b,R)},createNode(b,R,z,Y){var se=new d.FSNode(b,R,z,Y);return d.hashAddNode(se),se},destroyNode(b){d.hashRemoveNode(b)},isRoot(b){return b===b.parent},isMountpoint(b){return!!b.mounted},isFile(b){return(b&61440)===32768},isDir(b){return(b&61440)===16384},isLink(b){return(b&61440)===40960},isChrdev(b){return(b&61440)===8192},isBlkdev(b){return(b&61440)===24576},isFIFO(b){return(b&61440)===4096},isSocket(b){return(b&49152)===49152},flagsToPermissionString(b){var R=["r","w","rw"][b&3];return b&512&&(R+="w"),R},nodePermissions(b,R){return d.ignorePermissions?0:R.includes("r")&&!(b.mode&292)||R.includes("w")&&!(b.mode&146)||R.includes("x")&&!(b.mode&73)?2:0},mayLookup(b){if(!d.isDir(b.mode))return 54;var R=d.nodePermissions(b,"x");return R||(b.node_ops.lookup?0:2)},mayCreate(b,R){if(!d.isDir(b.mode))return 54;try{var z=d.lookupNode(b,R);return 20}catch{}return d.nodePermissions(b,"wx")},mayDelete(b,R,z){var Y;try{Y=d.lookupNode(b,R)}catch(ye){return ye.errno}var se=d.nodePermissions(b,"wx");if(se)return se;if(z){if(!d.isDir(Y.mode))return 54;if(d.isRoot(Y)||d.getPath(Y)===d.cwd())return 10}else if(d.isDir(Y.mode))return 31;return 0},mayOpen(b,R){return b?d.isLink(b.mode)?32:d.isDir(b.mode)&&(d.flagsToPermissionString(R)!=="r"||R&576)?31:d.nodePermissions(b,d.flagsToPermissionString(R)):44},checkOpExists(b,R){if(!b)throw new d.ErrnoError(R);return b},MAX_OPEN_FDS:4096,nextfd(){for(var b=0;b<=d.MAX_OPEN_FDS;b++)if(!d.streams[b])return b;throw new d.ErrnoError(33)},getStreamChecked(b){var R=d.getStream(b);if(!R)throw new d.ErrnoError(8);return R},getStream:b=>d.streams[b],createStream(b,R=-1){return b=Object.assign(new d.FSStream,b),R==-1&&(R=d.nextfd()),b.fd=R,d.streams[R]=b,b},closeStream(b){d.streams[b]=null},dupStream(b,R=-1){var z=d.createStream(b,R);return z.stream_ops?.dup?.(z),z},doSetAttr(b,R,z){var Y=b?.stream_ops.setattr,se=Y?b:R;Y??=R.node_ops.setattr,d.checkOpExists(Y,63),Y(se,z)},chrdev_stream_ops:{open(b){var R=d.getDevice(b.node.rdev);b.stream_ops=R.stream_ops,b.stream_ops.open?.(b)},llseek(){throw new d.ErrnoError(70)}},major:b=>b>>8,minor:b=>b&255,makedev:(b,R)=>b<<8|R,registerDevice(b,R){d.devices[b]={stream_ops:R}},getDevice:b=>d.devices[b],getMounts(b){for(var R=[],z=[b];z.length;){var Y=z.pop();R.push(Y),z.push(...Y.mounts)}return R},syncfs(b,R){typeof b=="function"&&(R=b,b=!1),d.syncFSRequests++,d.syncFSRequests>1&&M(`warning: ${d.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`);var z=d.getMounts(d.root.mount),Y=0;function se(xe){return d.syncFSRequests--,R(xe)}function ye(xe){if(xe)return ye.errored?void 0:(ye.errored=!0,se(xe));++Y>=z.length&&se(null)}z.forEach(xe=>{if(!xe.type.syncfs)return ye(null);xe.type.syncfs(xe,b,ye)})},mount(b,R,z){var Y=z==="/",se=!z,ye;if(Y&&d.root)throw new d.ErrnoError(10);if(!Y&&!se){var xe=d.lookupPath(z,{follow_mount:!1});if(z=xe.path,ye=xe.node,d.isMountpoint(ye))throw new d.ErrnoError(10);if(!d.isDir(ye.mode))throw new d.ErrnoError(54)}var Ce={type:b,opts:R,mountpoint:z,mounts:[]},ot=b.mount(Ce);return ot.mount=Ce,Ce.root=ot,Y?d.root=ot:ye&&(ye.mounted=Ce,ye.mount&&ye.mount.mounts.push(Ce)),ot},unmount(b){var R=d.lookupPath(b,{follow_mount:!1});if(!d.isMountpoint(R.node))throw new d.ErrnoError(28);var z=R.node,Y=z.mounted,se=d.getMounts(Y);Object.keys(d.nameTable).forEach(xe=>{for(var Ce=d.nameTable[xe];Ce;){var ot=Ce.name_next;se.includes(Ce.mount)&&d.destroyNode(Ce),Ce=ot}}),z.mounted=null;var ye=z.mount.mounts.indexOf(Y);z.mount.mounts.splice(ye,1)},lookup(b,R){return b.node_ops.lookup(b,R)},mknod(b,R,z){var Y=d.lookupPath(b,{parent:!0}),se=Y.node,ye=ne.basename(b);if(!ye)throw new d.ErrnoError(28);if(ye==="."||ye==="..")throw new d.ErrnoError(20);var xe=d.mayCreate(se,ye);if(xe)throw new d.ErrnoError(xe);if(!se.node_ops.mknod)throw new d.ErrnoError(63);return se.node_ops.mknod(se,ye,R,z)},statfs(b){return d.statfsNode(d.lookupPath(b,{follow:!0}).node)},statfsStream(b){return d.statfsNode(b.node)},statfsNode(b){var R={bsize:4096,frsize:4096,blocks:1e6,bfree:5e5,bavail:5e5,files:d.nextInode,ffree:d.nextInode-1,fsid:42,flags:2,namelen:255};return b.node_ops.statfs&&Object.assign(R,b.node_ops.statfs(b.mount.opts.root)),R},create(b,R=438){return R&=4095,R|=32768,d.mknod(b,R,0)},mkdir(b,R=511){return R&=1023,R|=16384,d.mknod(b,R,0)},mkdirTree(b,R){var z=b.split("/"),Y="";for(var se of z)if(se){(Y||ne.isAbs(b))&&(Y+="/"),Y+=se;try{d.mkdir(Y,R)}catch(ye){if(ye.errno!=20)throw ye}}},mkdev(b,R,z){return typeof z>"u"&&(z=R,R=438),R|=8192,d.mknod(b,R,z)},symlink(b,R){if(!le.resolve(b))throw new d.ErrnoError(44);var z=d.lookupPath(R,{parent:!0}),Y=z.node;if(!Y)throw new d.ErrnoError(44);var se=ne.basename(R),ye=d.mayCreate(Y,se);if(ye)throw new d.ErrnoError(ye);if(!Y.node_ops.symlink)throw new d.ErrnoError(63);return Y.node_ops.symlink(Y,se,b)},rename(b,R){var z=ne.dirname(b),Y=ne.dirname(R),se=ne.basename(b),ye=ne.basename(R),xe,Ce,ot;if(xe=d.lookupPath(b,{parent:!0}),Ce=xe.node,xe=d.lookupPath(R,{parent:!0}),ot=xe.node,!Ce||!ot)throw new d.ErrnoError(44);if(Ce.mount!==ot.mount)throw new d.ErrnoError(75);var xt=d.lookupNode(Ce,se),tn=le.relative(b,Y);if(tn.charAt(0)!==".")throw new d.ErrnoError(28);if(tn=le.relative(R,z),tn.charAt(0)!==".")throw new d.ErrnoError(55);var vn;try{vn=d.lookupNode(ot,ye)}catch{}if(xt!==vn){var mn=d.isDir(xt.mode),on=d.mayDelete(Ce,se,mn);if(on)throw new d.ErrnoError(on);if(on=vn?d.mayDelete(ot,ye,mn):d.mayCreate(ot,ye),on)throw new d.ErrnoError(on);if(!Ce.node_ops.rename)throw new d.ErrnoError(63);if(d.isMountpoint(xt)||vn&&d.isMountpoint(vn))throw new d.ErrnoError(10);if(ot!==Ce&&(on=d.nodePermissions(Ce,"w"),on))throw new d.ErrnoError(on);d.hashRemoveNode(xt);try{Ce.node_ops.rename(xt,ot,ye),xt.parent=ot}catch(dn){throw dn}finally{d.hashAddNode(xt)}}},rmdir(b){var R=d.lookupPath(b,{parent:!0}),z=R.node,Y=ne.basename(b),se=d.lookupNode(z,Y),ye=d.mayDelete(z,Y,!0);if(ye)throw new d.ErrnoError(ye);if(!z.node_ops.rmdir)throw new d.ErrnoError(63);if(d.isMountpoint(se))throw new d.ErrnoError(10);z.node_ops.rmdir(z,Y),d.destroyNode(se)},readdir(b){var R=d.lookupPath(b,{follow:!0}),z=R.node,Y=d.checkOpExists(z.node_ops.readdir,54);return Y(z)},unlink(b){var R=d.lookupPath(b,{parent:!0}),z=R.node;if(!z)throw new d.ErrnoError(44);var Y=ne.basename(b),se=d.lookupNode(z,Y),ye=d.mayDelete(z,Y,!1);if(ye)throw new d.ErrnoError(ye);if(!z.node_ops.unlink)throw new d.ErrnoError(63);if(d.isMountpoint(se))throw new d.ErrnoError(10);z.node_ops.unlink(z,Y),d.destroyNode(se)},readlink(b){var R=d.lookupPath(b),z=R.node;if(!z)throw new d.ErrnoError(44);if(!z.node_ops.readlink)throw new d.ErrnoError(28);return z.node_ops.readlink(z)},stat(b,R){var z=d.lookupPath(b,{follow:!R}),Y=z.node,se=d.checkOpExists(Y.node_ops.getattr,63);return se(Y)},fstat(b){var R=d.getStreamChecked(b),z=R.node,Y=R.stream_ops.getattr,se=Y?R:z;return Y??=z.node_ops.getattr,d.checkOpExists(Y,63),Y(se)},lstat(b){return d.stat(b,!0)},doChmod(b,R,z,Y){d.doSetAttr(b,R,{mode:z&4095|R.mode&-4096,ctime:Date.now(),dontFollow:Y})},chmod(b,R,z){var Y;if(typeof b=="string"){var se=d.lookupPath(b,{follow:!z});Y=se.node}else Y=b;d.doChmod(null,Y,R,z)},lchmod(b,R){d.chmod(b,R,!0)},fchmod(b,R){var z=d.getStreamChecked(b);d.doChmod(z,z.node,R,!1)},doChown(b,R,z){d.doSetAttr(b,R,{timestamp:Date.now(),dontFollow:z})},chown(b,R,z,Y){var se;if(typeof b=="string"){var ye=d.lookupPath(b,{follow:!Y});se=ye.node}else se=b;d.doChown(null,se,Y)},lchown(b,R,z){d.chown(b,R,z,!0)},fchown(b,R,z){var Y=d.getStreamChecked(b);d.doChown(Y,Y.node,!1)},doTruncate(b,R,z){if(d.isDir(R.mode))throw new d.ErrnoError(31);if(!d.isFile(R.mode))throw new d.ErrnoError(28);var Y=d.nodePermissions(R,"w");if(Y)throw new d.ErrnoError(Y);d.doSetAttr(b,R,{size:z,timestamp:Date.now()})},truncate(b,R){if(R<0)throw new d.ErrnoError(28);var z;if(typeof b=="string"){var Y=d.lookupPath(b,{follow:!0});z=Y.node}else z=b;d.doTruncate(null,z,R)},ftruncate(b,R){var z=d.getStreamChecked(b);if(R<0||(z.flags&2097155)===0)throw new d.ErrnoError(28);d.doTruncate(z,z.node,R)},utime(b,R,z){var Y=d.lookupPath(b,{follow:!0}),se=Y.node,ye=d.checkOpExists(se.node_ops.setattr,63);ye(se,{atime:R,mtime:z})},open(b,R,z=438){if(b==="")throw new d.ErrnoError(44);R=typeof R=="string"?Un(R):R,R&64?z=z&4095|32768:z=0;var Y,se;if(typeof b=="object")Y=b;else{se=b.endsWith("/");var ye=d.lookupPath(b,{follow:!(R&131072),noent_okay:!0});Y=ye.node,b=ye.path}var xe=!1;if(R&64)if(Y){if(R&128)throw new d.ErrnoError(20)}else{if(se)throw new d.ErrnoError(31);Y=d.mknod(b,z|511,0),xe=!0}if(!Y)throw new d.ErrnoError(44);if(d.isChrdev(Y.mode)&&(R&=-513),R&65536&&!d.isDir(Y.mode))throw new d.ErrnoError(54);if(!xe){var Ce=d.mayOpen(Y,R);if(Ce)throw new d.ErrnoError(Ce)}R&512&&!xe&&d.truncate(Y,0),R&=-131713;var ot=d.createStream({node:Y,path:d.getPath(Y),flags:R,seekable:!0,position:0,stream_ops:Y.stream_ops,ungotten:[],error:!1});return ot.stream_ops.open&&ot.stream_ops.open(ot),xe&&d.chmod(Y,z&511),t.logReadFiles&&!(R&1)&&(b in d.readFiles||(d.readFiles[b]=1)),ot},close(b){if(d.isClosed(b))throw new d.ErrnoError(8);b.getdents&&(b.getdents=null);try{b.stream_ops.close&&b.stream_ops.close(b)}catch(R){throw R}finally{d.closeStream(b.fd)}b.fd=null},isClosed(b){return b.fd===null},llseek(b,R,z){if(d.isClosed(b))throw new d.ErrnoError(8);if(!b.seekable||!b.stream_ops.llseek)throw new d.ErrnoError(70);if(z!=0&&z!=1&&z!=2)throw new d.ErrnoError(28);return b.position=b.stream_ops.llseek(b,R,z),b.ungotten=[],b.position},read(b,R,z,Y,se){if(Y<0||se<0)throw new d.ErrnoError(28);if(d.isClosed(b))throw new d.ErrnoError(8);if((b.flags&2097155)===1)throw new d.ErrnoError(8);if(d.isDir(b.node.mode))throw new d.ErrnoError(31);if(!b.stream_ops.read)throw new d.ErrnoError(28);var ye=typeof se<"u";if(!ye)se=b.position;else if(!b.seekable)throw new d.ErrnoError(70);var xe=b.stream_ops.read(b,R,z,Y,se);return ye||(b.position+=xe),xe},write(b,R,z,Y,se,ye){if(Y<0||se<0)throw new d.ErrnoError(28);if(d.isClosed(b))throw new d.ErrnoError(8);if((b.flags&2097155)===0)throw new d.ErrnoError(8);if(d.isDir(b.node.mode))throw new d.ErrnoError(31);if(!b.stream_ops.write)throw new d.ErrnoError(28);b.seekable&&b.flags&1024&&d.llseek(b,0,2);var xe=typeof se<"u";if(!xe)se=b.position;else if(!b.seekable)throw new d.ErrnoError(70);var Ce=b.stream_ops.write(b,R,z,Y,se,ye);return xe||(b.position+=Ce),Ce},mmap(b,R,z,Y,se){if((Y&2)!==0&&(se&2)===0&&(b.flags&2097155)!==2)throw new d.ErrnoError(2);if((b.flags&2097155)===1)throw new d.ErrnoError(2);if(!b.stream_ops.mmap)throw new d.ErrnoError(43);if(!R)throw new d.ErrnoError(28);return b.stream_ops.mmap(b,R,z,Y,se)},msync(b,R,z,Y,se){return b.stream_ops.msync?b.stream_ops.msync(b,R,z,Y,se):0},ioctl(b,R,z){if(!b.stream_ops.ioctl)throw new d.ErrnoError(59);return b.stream_ops.ioctl(b,R,z)},readFile(b,R={}){if(R.flags=R.flags||0,R.encoding=R.encoding||"binary",R.encoding!=="utf8"&&R.encoding!=="binary")throw new Error(`Invalid encoding type "${R.encoding}"`);var z,Y=d.open(b,R.flags),se=d.stat(b),ye=se.size,xe=new Uint8Array(ye);return d.read(Y,xe,0,ye,0),R.encoding==="utf8"?z=be(xe):R.encoding==="binary"&&(z=xe),d.close(Y),z},writeFile(b,R,z={}){z.flags=z.flags||577;var Y=d.open(b,z.flags,z.mode);if(typeof R=="string"){var se=new Uint8Array(Oe(R)+1),ye=je(R,se,0,se.length);d.write(Y,se,0,ye,void 0,z.canOwn)}else if(ArrayBuffer.isView(R))d.write(Y,R,0,R.byteLength,void 0,z.canOwn);else throw new Error("Unsupported data type");d.close(Y)},cwd:()=>d.currentPath,chdir(b){var R=d.lookupPath(b,{follow:!0});if(R.node===null)throw new d.ErrnoError(44);if(!d.isDir(R.node.mode))throw new d.ErrnoError(54);var z=d.nodePermissions(R.node,"x");if(z)throw new d.ErrnoError(z);d.currentPath=R.path},createDefaultDirectories(){d.mkdir("/tmp"),d.mkdir("/home"),d.mkdir("/home/web_user")},createDefaultDevices(){d.mkdir("/dev"),d.registerDevice(d.makedev(1,3),{read:()=>0,write:(Y,se,ye,xe,Ce)=>xe,llseek:()=>0}),d.mkdev("/dev/null",d.makedev(1,3)),ht.register(d.makedev(5,0),ht.default_tty_ops),ht.register(d.makedev(6,0),ht.default_tty1_ops),d.mkdev("/dev/tty",d.makedev(5,0)),d.mkdev("/dev/tty1",d.makedev(6,0));var b=new Uint8Array(1024),R=0,z=()=>(R===0&&(ie(b),R=b.byteLength),b[--R]);d.createDevice("/dev","random",z),d.createDevice("/dev","urandom",z),d.mkdir("/dev/shm"),d.mkdir("/dev/shm/tmp")},createSpecialDirectories(){d.mkdir("/proc");var b=d.mkdir("/proc/self");d.mkdir("/proc/self/fd"),d.mount({mount(){var R=d.createNode(b,"fd",16895,73);return R.stream_ops={llseek:we.stream_ops.llseek},R.node_ops={lookup(z,Y){var se=+Y,ye=d.getStreamChecked(se),xe={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>ye.path},id:se+1};return xe.parent=xe,xe},readdir(){return Array.from(d.streams.entries()).filter(([z,Y])=>Y).map(([z,Y])=>z.toString())}},R}},{},"/proc/self/fd")},createStandardStreams(b,R,z){b?d.createDevice("/dev","stdin",b):d.symlink("/dev/tty","/dev/stdin"),R?d.createDevice("/dev","stdout",null,R):d.symlink("/dev/tty","/dev/stdout"),z?d.createDevice("/dev","stderr",null,z):d.symlink("/dev/tty1","/dev/stderr");var Y=d.open("/dev/stdin",0),se=d.open("/dev/stdout",1),ye=d.open("/dev/stderr",1)},staticInit(){d.nameTable=new Array(4096),d.mount(we,{},"/"),d.createDefaultDirectories(),d.createDefaultDevices(),d.createSpecialDirectories(),d.filesystems={MEMFS:we}},init(b,R,z){d.initialized=!0,b??=t.stdin,R??=t.stdout,z??=t.stderr,d.createStandardStreams(b,R,z)},quit(){d.initialized=!1;for(var b of d.streams)b&&d.close(b)},findObject(b,R){var z=d.analyzePath(b,R);return z.exists?z.object:null},analyzePath(b,R){try{var z=d.lookupPath(b,{follow:!R});b=z.path}catch{}var Y={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var z=d.lookupPath(b,{parent:!0});Y.parentExists=!0,Y.parentPath=z.path,Y.parentObject=z.node,Y.name=ne.basename(b),z=d.lookupPath(b,{follow:!R}),Y.exists=!0,Y.path=z.path,Y.object=z.node,Y.name=z.node.name,Y.isRoot=z.path==="/"}catch(se){Y.error=se.errno}return Y},createPath(b,R,z,Y){b=typeof b=="string"?b:d.getPath(b);for(var se=R.split("/").reverse();se.length;){var ye=se.pop();if(ye){var xe=ne.join2(b,ye);try{d.mkdir(xe)}catch(Ce){if(Ce.errno!=20)throw Ce}b=xe}}return xe},createFile(b,R,z,Y,se){var ye=ne.join2(typeof b=="string"?b:d.getPath(b),R),xe=Ti(Y,se);return d.create(ye,xe)},createDataFile(b,R,z,Y,se,ye){var xe=R;b&&(b=typeof b=="string"?b:d.getPath(b),xe=R?ne.join2(b,R):b);var Ce=Ti(Y,se),ot=d.create(xe,Ce);if(z){if(typeof z=="string"){for(var xt=new Array(z.length),tn=0,vn=z.length;tn<vn;++tn)xt[tn]=z.charCodeAt(tn);z=xt}d.chmod(ot,Ce|146);var mn=d.open(ot,577);d.write(mn,z,0,z.length,0,ye),d.close(mn),d.chmod(ot,Ce)}},createDevice(b,R,z,Y){var se=ne.join2(typeof b=="string"?b:d.getPath(b),R),ye=Ti(!!z,!!Y);d.createDevice.major??=64;var xe=d.makedev(d.createDevice.major++,0);return d.registerDevice(xe,{open(Ce){Ce.seekable=!1},close(Ce){Y?.buffer?.length&&Y(10)},read(Ce,ot,xt,tn,vn){for(var mn=0,on=0;on<tn;on++){var dn;try{dn=z()}catch{throw new d.ErrnoError(29)}if(dn===void 0&&mn===0)throw new d.ErrnoError(6);if(dn==null)break;mn++,ot[xt+on]=dn}return mn&&(Ce.node.atime=Date.now()),mn},write(Ce,ot,xt,tn,vn){for(var mn=0;mn<tn;mn++)try{Y(ot[xt+mn])}catch{throw new d.ErrnoError(29)}return tn&&(Ce.node.mtime=Ce.node.ctime=Date.now()),mn}}),d.mkdev(se,ye,xe)},forceLoadFile(b){if(b.isDevice||b.isFolder||b.link||b.contents)return!0;if(typeof XMLHttpRequest<"u")throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.");try{b.contents=S(b.url),b.usedBytes=b.contents.length}catch{throw new d.ErrnoError(29)}},createLazyFile(b,R,z,Y,se){class ye{lengthKnown=!1;chunks=[];get(on){if(!(on>this.length-1||on<0)){var dn=on%this.chunkSize,Ai=on/this.chunkSize|0;return this.getter(Ai)[dn]}}setDataGetter(on){this.getter=on}cacheLength(){var on=new XMLHttpRequest;if(on.open("HEAD",z,!1),on.send(null),!(on.status>=200&&on.status<300||on.status===304))throw new Error("Couldn't load "+z+". Status: "+on.status);var dn=Number(on.getResponseHeader("Content-length")),Ai,Rn=(Ai=on.getResponseHeader("Accept-Ranges"))&&Ai==="bytes",mi=(Ai=on.getResponseHeader("Content-Encoding"))&&Ai==="gzip",Zs=1024*1024;Rn||(Zs=dn);var Do=(Ll,Dd)=>{if(Ll>Dd)throw new Error("invalid range ("+Ll+", "+Dd+") or no bytes requested!");if(Dd>dn-1)throw new Error("only "+dn+" bytes available! programmer error!");var na=new XMLHttpRequest;if(na.open("GET",z,!1),dn!==Zs&&na.setRequestHeader("Range","bytes="+Ll+"-"+Dd),na.responseType="arraybuffer",na.overrideMimeType&&na.overrideMimeType("text/plain; charset=x-user-defined"),na.send(null),!(na.status>=200&&na.status<300||na.status===304))throw new Error("Couldn't load "+z+". Status: "+na.status);return na.response!==void 0?new Uint8Array(na.response||[]):Ct(na.responseText||"",!0)},pf=this;pf.setDataGetter(Ll=>{var Dd=Ll*Zs,na=(Ll+1)*Zs-1;if(na=Math.min(na,dn-1),typeof pf.chunks[Ll]>"u"&&(pf.chunks[Ll]=Do(Dd,na)),typeof pf.chunks[Ll]>"u")throw new Error("doXHR failed!");return pf.chunks[Ll]}),(mi||!dn)&&(Zs=dn=1,dn=this.getter(0).length,Zs=dn,v("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=dn,this._chunkSize=Zs,this.lengthKnown=!0}get length(){return this.lengthKnown||this.cacheLength(),this._length}get chunkSize(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}if(typeof XMLHttpRequest<"u"){if(!l)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var xe=new ye,Ce={isDevice:!1,contents:xe}}else var Ce={isDevice:!1,url:z};var ot=d.createFile(b,R,Ce,Y,se);Ce.contents?ot.contents=Ce.contents:Ce.url&&(ot.contents=null,ot.url=Ce.url),Object.defineProperties(ot,{usedBytes:{get:function(){return this.contents.length}}});var xt={},tn=Object.keys(ot.stream_ops);tn.forEach(mn=>{var on=ot.stream_ops[mn];xt[mn]=(...dn)=>(d.forceLoadFile(ot),on(...dn))});function vn(mn,on,dn,Ai,Rn){var mi=mn.node.contents;if(Rn>=mi.length)return 0;var Zs=Math.min(mi.length-Rn,Ai);if(mi.slice)for(var Do=0;Do<Zs;Do++)on[dn+Do]=mi[Rn+Do];else for(var Do=0;Do<Zs;Do++)on[dn+Do]=mi.get(Rn+Do);return Zs}return xt.read=(mn,on,dn,Ai,Rn)=>(d.forceLoadFile(ot),vn(mn,on,dn,Ai,Rn)),xt.mmap=(mn,on,dn,Ai,Rn)=>{d.forceLoadFile(ot);var mi=at(on);if(!mi)throw new d.ErrnoError(48);return vn(mn,Q,mi,on,dn),{ptr:mi,allocated:!0}},ot.stream_ops=xt,ot}},Ke={DEFAULT_POLLMASK:5,calculateAt(b,R,z){if(ne.isAbs(R))return R;var Y;if(b===-100)Y=d.cwd();else{var se=Ke.getStreamFromFD(b);Y=se.path}if(R.length==0){if(!z)throw new d.ErrnoError(44);return Y}return Y+"/"+R},writeStat(b,R){j[b>>2]=R.dev,j[b+4>>2]=R.mode,he[b+8>>2]=R.nlink,j[b+12>>2]=R.uid,j[b+16>>2]=R.gid,j[b+20>>2]=R.rdev,Pe=[R.size>>>0,(_e=R.size,+Math.abs(_e)>=1?_e>0?+Math.floor(_e/4294967296)>>>0:~~+Math.ceil((_e-+(~~_e>>>0))/4294967296)>>>0:0)],j[b+24>>2]=Pe[0],j[b+28>>2]=Pe[1],j[b+32>>2]=4096,j[b+36>>2]=R.blocks;var z=R.atime.getTime(),Y=R.mtime.getTime(),se=R.ctime.getTime();return Pe=[Math.floor(z/1e3)>>>0,(_e=Math.floor(z/1e3),+Math.abs(_e)>=1?_e>0?+Math.floor(_e/4294967296)>>>0:~~+Math.ceil((_e-+(~~_e>>>0))/4294967296)>>>0:0)],j[b+40>>2]=Pe[0],j[b+44>>2]=Pe[1],he[b+48>>2]=z%1e3*1e3*1e3,Pe=[Math.floor(Y/1e3)>>>0,(_e=Math.floor(Y/1e3),+Math.abs(_e)>=1?_e>0?+Math.floor(_e/4294967296)>>>0:~~+Math.ceil((_e-+(~~_e>>>0))/4294967296)>>>0:0)],j[b+56>>2]=Pe[0],j[b+60>>2]=Pe[1],he[b+64>>2]=Y%1e3*1e3*1e3,Pe=[Math.floor(se/1e3)>>>0,(_e=Math.floor(se/1e3),+Math.abs(_e)>=1?_e>0?+Math.floor(_e/4294967296)>>>0:~~+Math.ceil((_e-+(~~_e>>>0))/4294967296)>>>0:0)],j[b+72>>2]=Pe[0],j[b+76>>2]=Pe[1],he[b+80>>2]=se%1e3*1e3*1e3,Pe=[R.ino>>>0,(_e=R.ino,+Math.abs(_e)>=1?_e>0?+Math.floor(_e/4294967296)>>>0:~~+Math.ceil((_e-+(~~_e>>>0))/4294967296)>>>0:0)],j[b+88>>2]=Pe[0],j[b+92>>2]=Pe[1],0},writeStatFs(b,R){j[b+4>>2]=R.bsize,j[b+40>>2]=R.bsize,j[b+8>>2]=R.blocks,j[b+12>>2]=R.bfree,j[b+16>>2]=R.bavail,j[b+20>>2]=R.files,j[b+24>>2]=R.ffree,j[b+28>>2]=R.fsid,j[b+44>>2]=R.flags,j[b+36>>2]=R.namelen},doMsync(b,R,z,Y,se){if(!d.isFile(R.node.mode))throw new d.ErrnoError(43);if(Y&2)return 0;var ye=H.slice(b,b+z);d.msync(R,ye,se,z,Y)},getStreamFromFD(b){var R=d.getStreamChecked(b);return R},varargs:void 0,getStr(b){var R=U(b);return R}};function ul(b,R){try{return b=Ke.getStr(b),d.chmod(b,R),0}catch(z){if(typeof d>"u"||z.name!=="ErrnoError")throw z;return-z.errno}}function us(b,R,z,Y){try{if(R=Ke.getStr(R),R=Ke.calculateAt(b,R),z&-8)return-28;var se=d.lookupPath(R,{follow:!0}),ye=se.node;if(!ye)return-44;var xe="";return z&4&&(xe+="r"),z&2&&(xe+="w"),z&1&&(xe+="x"),xe&&d.nodePermissions(ye,xe)?-2:0}catch(Ce){if(typeof d>"u"||Ce.name!=="ErrnoError")throw Ce;return-Ce.errno}}function Fr(b,R){try{return d.fchmod(b,R),0}catch(z){if(typeof d>"u"||z.name!=="ErrnoError")throw z;return-z.errno}}function Ps(b,R,z){try{return d.fchown(b,R,z),0}catch(Y){if(typeof d>"u"||Y.name!=="ErrnoError")throw Y;return-Y.errno}}var er=()=>{var b=j[+Ke.varargs>>2];return Ke.varargs+=4,b},cs=er;function Pr(b,R,z){Ke.varargs=z;try{var Y=Ke.getStreamFromFD(b);switch(R){case 0:{var se=er();if(se<0)return-28;for(;d.streams[se];)se++;var ye;return ye=d.dupStream(Y,se),ye.fd}case 1:case 2:return 0;case 3:return Y.flags;case 4:{var se=er();return Y.flags|=se,0}case 12:{var se=cs(),xe=0;return Z[se+xe>>1]=2,0}case 13:case 14:return 0}return-28}catch(Ce){if(typeof d>"u"||Ce.name!=="ErrnoError")throw Ce;return-Ce.errno}}function fs(b,R){try{return Ke.writeStat(R,d.fstat(b))}catch(z){if(typeof d>"u"||z.name!=="ErrnoError")throw z;return-z.errno}}var hi=(b,R)=>R+2097152>>>0<4194305-!!b?(b>>>0)+R*4294967296:NaN;function yo(b,R,z){var Y=hi(R,z);try{return isNaN(Y)?-61:(d.ftruncate(b,Y),0)}catch(se){if(typeof d>"u"||se.name!=="ErrnoError")throw se;return-se.errno}}var wn=(b,R,z)=>je(b,H,R,z);function Us(b,R){try{if(R===0)return-28;var z=d.cwd(),Y=Oe(z)+1;return R<Y?-68:(wn(z,b,R),Y)}catch(se){if(typeof d>"u"||se.name!=="ErrnoError")throw se;return-se.errno}}function Xa(b,R){try{return b=Ke.getStr(b),Ke.writeStat(R,d.lstat(b))}catch(z){if(typeof d>"u"||z.name!=="ErrnoError")throw z;return-z.errno}}function $r(b,R,z){try{return R=Ke.getStr(R),R=Ke.calculateAt(b,R),d.mkdir(R,z,0),0}catch(Y){if(typeof d>"u"||Y.name!=="ErrnoError")throw Y;return-Y.errno}}function Jr(b,R,z,Y){try{R=Ke.getStr(R);var se=Y&256,ye=Y&4096;return Y=Y&-6401,R=Ke.calculateAt(b,R,ye),Ke.writeStat(z,se?d.lstat(R):d.stat(R))}catch(xe){if(typeof d>"u"||xe.name!=="ErrnoError")throw xe;return-xe.errno}}function ds(b,R,z,Y){Ke.varargs=Y;try{R=Ke.getStr(R),R=Ke.calculateAt(b,R);var se=Y?er():0;return d.open(R,z,se).fd}catch(ye){if(typeof d>"u"||ye.name!=="ErrnoError")throw ye;return-ye.errno}}function bo(b,R,z,Y){try{if(R=Ke.getStr(R),R=Ke.calculateAt(b,R),Y<=0)return-28;var se=d.readlink(R),ye=Math.min(Y,Oe(se)),xe=Q[z+ye];return wn(se,z,Y+1),Q[z+ye]=xe,ye}catch(Ce){if(typeof d>"u"||Ce.name!=="ErrnoError")throw Ce;return-Ce.errno}}function hs(b){try{return b=Ke.getStr(b),d.rmdir(b),0}catch(R){if(typeof d>"u"||R.name!=="ErrnoError")throw R;return-R.errno}}function ps(b,R){try{return b=Ke.getStr(b),Ke.writeStat(R,d.stat(b))}catch(z){if(typeof d>"u"||z.name!=="ErrnoError")throw z;return-z.errno}}function So(b,R,z){try{if(R=Ke.getStr(R),R=Ke.calculateAt(b,R),!z)d.unlink(R);else if(z===512)d.rmdir(R);else return-28;return 0}catch(Y){if(typeof d>"u"||Y.name!=="ErrnoError")throw Y;return-Y.errno}}var ae=b=>he[b>>2]+j[b+4>>2]*4294967296;function Fe(b,R,z,Y){try{R=Ke.getStr(R),R=Ke.calculateAt(b,R,!0);var se=Date.now(),ye,xe;if(!z)ye=se,xe=se;else{var Ce=ae(z),ot=j[z+8>>2];ot==1073741823?ye=se:ot==1073741822?ye=null:ye=Ce*1e3+ot/1e6,z+=16,Ce=ae(z),ot=j[z+8>>2],ot==1073741823?xe=se:ot==1073741822?xe=null:xe=Ce*1e3+ot/1e6}return(xe??ye)!==null&&d.utime(R,ye,xe),0}catch(xt){if(typeof d>"u"||xt.name!=="ErrnoError")throw xt;return-xt.errno}}var Ye=()=>Mt(""),Be=0,He=()=>{fn=!1,Be=0},It=b=>b%4===0&&(b%100!==0||b%400===0),Bt=[0,31,60,91,121,152,182,213,244,274,305,335],wt=[0,31,59,90,120,151,181,212,243,273,304,334],Nt=b=>{var R=It(b.getFullYear()),z=R?Bt:wt,Y=z[b.getMonth()]+b.getDate()-1;return Y};function Kt(b,R,z){var Y=hi(b,R),se=new Date(Y*1e3);j[z>>2]=se.getSeconds(),j[z+4>>2]=se.getMinutes(),j[z+8>>2]=se.getHours(),j[z+12>>2]=se.getDate(),j[z+16>>2]=se.getMonth(),j[z+20>>2]=se.getFullYear()-1900,j[z+24>>2]=se.getDay();var ye=Nt(se)|0;j[z+28>>2]=ye,j[z+36>>2]=-(se.getTimezoneOffset()*60);var xe=new Date(se.getFullYear(),0,1),Ce=new Date(se.getFullYear(),6,1).getTimezoneOffset(),ot=xe.getTimezoneOffset(),xt=(Ce!=ot&&se.getTimezoneOffset()==Math.min(ot,Ce))|0;j[z+32>>2]=xt}function yn(b,R,z,Y,se,ye,xe,Ce){var ot=hi(se,ye);try{var xt=Ke.getStreamFromFD(Y),tn=d.mmap(xt,b,ot,R,z),vn=tn.ptr;return j[xe>>2]=tn.allocated,he[Ce>>2]=vn,0}catch(mn){if(typeof d>"u"||mn.name!=="ErrnoError")throw mn;return-mn.errno}}function Sn(b,R,z,Y,se,ye,xe){var Ce=hi(ye,xe);try{var ot=Ke.getStreamFromFD(se);z&2&&Ke.doMsync(b,ot,R,Y,Ce)}catch(xt){if(typeof d>"u"||xt.name!=="ErrnoError")throw xt;return-xt.errno}}var _t={},En=b=>{if(b instanceof dt||b=="unwind")return G;h(1,b)},ri=()=>fn||Be>0,Hn=b=>{G=b,ri()||(t.onExit?.(b),q=!0),h(b,new dt(b))},On=(b,R)=>{G=b,Hn(b)},Xi=On,Pt=()=>{if(!ri())try{Xi(G)}catch(b){En(b)}},Oi=b=>{if(!q)try{b(),Pt()}catch(R){En(R)}},xn=()=>performance.now(),ai=(b,R)=>{if(_t[b]&&(clearTimeout(_t[b].id),delete _t[b]),!R)return 0;var z=setTimeout(()=>{delete _t[b],Oi(()=>kd(b,xn()))},R);return _t[b]={id:z,timeout_ms:R},0},Vn=(b,R,z,Y)=>{var se=new Date().getFullYear(),ye=new Date(se,0,1),xe=new Date(se,6,1),Ce=ye.getTimezoneOffset(),ot=xe.getTimezoneOffset(),xt=Math.max(Ce,ot);he[b>>2]=xt*60,j[R>>2]=+(Ce!=ot);var tn=on=>{var dn=on>=0?"-":"+",Ai=Math.abs(on),Rn=String(Math.floor(Ai/60)).padStart(2,"0"),mi=String(Ai%60).padStart(2,"0");return`UTC${dn}${Rn}${mi}`},vn=tn(Ce),mn=tn(ot);ot<Ce?(wn(vn,z,17),wn(mn,Y,17)):(wn(vn,Y,17),wn(mn,z,17))},wr=()=>Date.now(),Ur=()=>2147483648,zn=b=>{var R=k.buffer,z=(b-R.byteLength+65535)/65536|0;try{return k.grow(z),Ne(),1}catch{}},vi=b=>{var R=H.length;b>>>=0;var z=Ur();if(b>z)return!1;for(var Y=1;Y<=4;Y*=2){var se=R*(1+.2/Y);se=Math.min(se,b+100663296);var ye=Math.min(z,bt(Math.max(b,se),65536)),xe=zn(ye);if(xe)return!0}return!1},pi={},jn=()=>p||"./this.program",si=()=>{if(!si.strings){var b=(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",R={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:b,_:jn()};for(var z in pi)pi[z]===void 0?delete R[z]:R[z]=pi[z];var Y=[];for(var z in R)Y.push(`${z}=${R[z]}`);si.strings=Y}return si.strings},da=(b,R)=>{var z=0,Y=0;for(var se of si()){var ye=R+z;he[b+Y>>2]=ye,z+=wn(se,ye,1/0)+1,Y+=4}return 0},Eo=(b,R)=>{var z=si();he[b>>2]=z.length;var Y=0;for(var se of z)Y+=Oe(se)+1;return he[R>>2]=Y,0};function Vu(b){try{var R=Ke.getStreamFromFD(b);return d.close(R),0}catch(z){if(typeof d>"u"||z.name!=="ErrnoError")throw z;return z.errno}}function Gu(b,R){try{var z=0,Y=0,se=0,ye=Ke.getStreamFromFD(b),xe=ye.tty?2:d.isDir(ye.mode)?3:d.isLink(ye.mode)?7:4;return Q[R]=xe,Z[R+2>>1]=se,Pe=[z>>>0,(_e=z,+Math.abs(_e)>=1?_e>0?+Math.floor(_e/4294967296)>>>0:~~+Math.ceil((_e-+(~~_e>>>0))/4294967296)>>>0:0)],j[R+8>>2]=Pe[0],j[R+12>>2]=Pe[1],Pe=[Y>>>0,(_e=Y,+Math.abs(_e)>=1?_e>0?+Math.floor(_e/4294967296)>>>0:~~+Math.ceil((_e-+(~~_e>>>0))/4294967296)>>>0:0)],j[R+16>>2]=Pe[0],j[R+20>>2]=Pe[1],0}catch(Ce){if(typeof d>"u"||Ce.name!=="ErrnoError")throw Ce;return Ce.errno}}var Wu=(b,R,z,Y)=>{for(var se=0,ye=0;ye<z;ye++){var xe=he[R>>2],Ce=he[R+4>>2];R+=8;var ot=d.read(b,Q,xe,Ce,Y);if(ot<0)return-1;if(se+=ot,ot<Ce)break;typeof Y<"u"&&(Y+=ot)}return se};function ju(b,R,z,Y){try{var se=Ke.getStreamFromFD(b),ye=Wu(se,R,z);return he[Y>>2]=ye,0}catch(xe){if(typeof d>"u"||xe.name!=="ErrnoError")throw xe;return xe.errno}}function Qu(b,R,z,Y,se){var ye=hi(R,z);try{if(isNaN(ye))return 61;var xe=Ke.getStreamFromFD(b);return d.llseek(xe,ye,Y),Pe=[xe.position>>>0,(_e=xe.position,+Math.abs(_e)>=1?_e>0?+Math.floor(_e/4294967296)>>>0:~~+Math.ceil((_e-+(~~_e>>>0))/4294967296)>>>0:0)],j[se>>2]=Pe[0],j[se+4>>2]=Pe[1],xe.getdents&&ye===0&&Y===0&&(xe.getdents=null),0}catch(Ce){if(typeof d>"u"||Ce.name!=="ErrnoError")throw Ce;return Ce.errno}}var wo=function(b){try{var R=Ke.getStreamFromFD(b);return Xt.handleSleep(z=>{var Y=R.node.mount;if(!Y.type.syncfs){z(0);return}Y.type.syncfs(Y,!1,se=>{z(se?29:0)})})}catch(z){if(typeof d>"u"||z.name!=="ErrnoError")throw z;return z.errno}};wo.isAsync=!0;var Xu=(b,R,z,Y)=>{for(var se=0,ye=0;ye<z;ye++){var xe=he[R>>2],Ce=he[R+4>>2];R+=8;var ot=d.write(b,Q,xe,Ce,Y);if(ot<0)return-1;if(se+=ot,ot<Ce)break;typeof Y<"u"&&(Y+=ot)}return se};function $c(b,R,z,Y){try{var se=Ke.getStreamFromFD(b),ye=Xu(se,R,z);return he[Y>>2]=ye,0}catch(xe){if(typeof d>"u"||xe.name!=="ErrnoError")throw xe;return xe.errno}}var it=function(){let b=typeof Xt=="object"?Xt.handleAsync.bind(Xt):null;t.handleAsync=b;let R=new Map;t.setCallback=(z,Y)=>R.set(z,Y),t.getCallback=z=>R.get(z),t.deleteCallback=z=>R.delete(z),it=function(z,Y,...se){let ye=R.get(Y),xe=null,Ce=typeof ye=="function"?ye:ye[xe=U(se.shift())];if(z){if(b)return b(()=>Ce.apply(ye,se));throw new Error("Synchronous WebAssembly cannot call async function")}let ot=Ce.apply(ye,se);if(typeof ot?.then=="function")throw console.error("unexpected Promise",Ce),new Error(`${xe} unexpectedly returned a Promise`);return ot}};function Yu(...b){return it(!1,...b)}function cl(...b){return it(!0,...b)}cl.isAsync=!0;function tu(...b){return it(!1,...b)}function fl(...b){return it(!0,...b)}fl.isAsync=!0;function Ku(...b){return it(!1,...b)}function dl(...b){return it(!0,...b)}dl.isAsync=!0;function Zu(...b){return it(!1,...b)}function hl(...b){return it(!0,...b)}hl.isAsync=!0;function Jc(...b){return it(!1,...b)}function pl(...b){return it(!0,...b)}pl.isAsync=!0;function zs(...b){return it(!1,...b)}function ml(...b){return it(!0,...b)}ml.isAsync=!0;function _l(...b){return it(!1,...b)}function qs(...b){return it(!0,...b)}qs.isAsync=!0;function $u(...b){return it(!1,...b)}function xo(...b){return it(!0,...b)}xo.isAsync=!0;function ef(...b){return it(!1,...b)}function gl(...b){return it(!0,...b)}gl.isAsync=!0;function Ju(...b){return it(!1,...b)}function vl(...b){return it(!0,...b)}vl.isAsync=!0;function ec(...b){return it(!1,...b)}function yl(...b){return it(!0,...b)}yl.isAsync=!0;function nu(...b){return it(!1,...b)}function bl(...b){return it(!0,...b)}bl.isAsync=!0;function tc(...b){return it(!1,...b)}function To(...b){return it(!0,...b)}To.isAsync=!0;function nc(b,R){try{return ie(H.subarray(b,b+R)),0}catch(z){if(typeof d>"u"||z.name!=="ErrnoError")throw z;return z.errno}}function iu(...b){return it(!1,...b)}function ru(...b){return it(!0,...b)}ru.isAsync=!0;function Sl(...b){return it(!1,...b)}function au(...b){return it(!0,...b)}au.isAsync=!0;function su(...b){return it(!1,...b)}function Bs(...b){return it(!0,...b)}Bs.isAsync=!0;var Mo=b=>{try{return b()}catch(R){Mt(R)}},ic=b=>{for(var R={i:"i32",j:"i64",f:"f32",d:"f64",e:"externref",p:"i32"},z={parameters:[],results:b[0]=="v"?[]:[R[b[0]]]},Y=1;Y<b.length;++Y)z.parameters.push(R[b[Y]]);return z},Ao=()=>{Be+=1},Zt=()=>{Be-=1},Xt={instrumentWasmImports(b){var R=/^(ipp|ipp_async|ippp|ippp_async|vppp|vppp_async|ipppj|ipppj_async|ipppi|ipppi_async|ipppp|ipppp_async|ipppip|ipppip_async|vpppip|vpppip_async|ippppi|ippppi_async|ippppij|ippppij_async|ipppiii|ipppiii_async|ippppip|ippppip_async|ippipppp|ippipppp_async|ipppppip|ipppppip_async|ipppiiip|ipppiiip_async|vppippii|vppippii_async|invoke_.*|__asyncjs__.*)$/;for(let[z,Y]of Object.entries(b))if(typeof Y=="function"){let se=Y.isAsync||R.test(z)}},instrumentWasmExports(b){var R={};for(let[z,Y]of Object.entries(b))typeof Y=="function"?R[z]=(...se)=>{Xt.exportCallStack.push(z);try{return Y(...se)}finally{if(!q){var ye=Xt.exportCallStack.pop();Xt.maybeStopUnwind()}}}:R[z]=Y;return R},State:{Normal:0,Unwinding:1,Rewinding:2,Disabled:3},state:0,StackSize:16384,currData:null,handleSleepReturnValue:0,exportCallStack:[],callStackNameToId:{},callStackIdToName:{},callStackId:0,asyncPromiseHandlers:null,sleepCallbacks:[],getCallStackId(b){var R=Xt.callStackNameToId[b];return R===void 0&&(R=Xt.callStackId++,Xt.callStackNameToId[b]=R,Xt.callStackIdToName[R]=b),R},maybeStopUnwind(){Xt.currData&&Xt.state===Xt.State.Unwinding&&Xt.exportCallStack.length===0&&(Xt.state=Xt.State.Normal,Mo(T),typeof Fibers<"u"&&Fibers.trampoline())},whenDone(){return new Promise((b,R)=>{Xt.asyncPromiseHandlers={resolve:b,reject:R}})},allocateData(){var b=Id(12+Xt.StackSize);return Xt.setDataHeader(b,b+12,Xt.StackSize),Xt.setDataRewindFunc(b),b},setDataHeader(b,R,z){he[b>>2]=R,he[b+4>>2]=R+z},setDataRewindFunc(b){var R=Xt.exportCallStack[0],z=Xt.getCallStackId(R);j[b+8>>2]=z},getDataRewindFuncName(b){var R=j[b+8>>2],z=Xt.callStackIdToName[R];return z},getDataRewindFunc(b){var R=ue[b];return R},doRewind(b){var R=Xt.getDataRewindFuncName(b),z=Xt.getDataRewindFunc(R);return z()},handleSleep(b){if(!q){if(Xt.state===Xt.State.Normal){var R=!1,z=!1;b((Y=0)=>{if(!q&&(Xt.handleSleepReturnValue=Y,R=!0,!!z)){Xt.state=Xt.State.Rewinding,Mo(()=>D(Xt.currData)),typeof MainLoop<"u"&&MainLoop.func&&MainLoop.resume();var se,ye=!1;try{se=Xt.doRewind(Xt.currData)}catch(ot){se=ot,ye=!0}var xe=!1;if(!Xt.currData){var Ce=Xt.asyncPromiseHandlers;Ce&&(Xt.asyncPromiseHandlers=null,(ye?Ce.reject:Ce.resolve)(se),xe=!0)}if(ye&&!xe)throw se}}),z=!0,R||(Xt.state=Xt.State.Unwinding,Xt.currData=Xt.allocateData(),typeof MainLoop<"u"&&MainLoop.func&&MainLoop.pause(),Mo(()=>Ks(Xt.currData)))}else Xt.state===Xt.State.Rewinding?(Xt.state=Xt.State.Normal,Mo(V),Jp(Xt.currData),Xt.currData=null,Xt.sleepCallbacks.forEach(Oi)):Mt(`invalid state: ${Xt.state}`);return Xt.handleSleepReturnValue}},handleAsync:b=>Xt.handleSleep(R=>{b().then(R)})},ou=(b,R)=>{b<128?R.push(b):R.push(b%128|128,b>>7)},ms=(b,R)=>{var z=b.slice(0,1),Y=b.slice(1),se={i:127,p:127,j:126,f:125,d:124,e:111};R.push(96),ou(Y.length,R);for(var ye of Y)R.push(se[ye]);z=="v"?R.push(0):R.push(1,se[z])},xr=(b,R)=>{if(typeof WebAssembly.Function=="function")return new WebAssembly.Function(ic(R),b);var z=[1];ms(R,z);var Y=[0,97,115,109,1,0,0,0,1];ou(z.length,Y),Y.push(...z),Y.push(2,7,1,1,101,1,102,0,0,7,5,1,1,102,0,0);var se=new WebAssembly.Module(new Uint8Array(Y)),ye=new WebAssembly.Instance(se,{e:{f:b}}),xe=ye.exports.f;return xe},Ya,lu=b=>Ya.get(b),Tr=(b,R)=>{if(ha)for(var z=b;z<b+R;z++){var Y=lu(z);Y&&ha.set(Y,z)}},ha,El=b=>(ha||(ha=new WeakMap,Tr(0,Ya.length)),ha.get(b)||0),Hs=[],Co=()=>{if(Hs.length)return Hs.pop();try{Ya.grow(1)}catch(b){throw b instanceof RangeError?"Unable to grow wasm table. Set ALLOW_TABLE_GROWTH.":b}return Ya.length-1},wl=(b,R)=>Ya.set(b,R),Ta=(b,R)=>{var z=El(b);if(z)return z;var Y=Co();try{wl(Y,b)}catch(ye){if(!(ye instanceof TypeError))throw ye;var se=xr(b,R);wl(Y,se)}return ha.set(b,Y),Y},oi=b=>{var R=t["_"+b];return R},Ro=(b,R)=>{Q.set(b,R)},xl=b=>rm(b),Ma=b=>{var R=Oe(b)+1,z=xl(R);return wn(b,z,R),z},Aa=(b,R,z,Y,se)=>{var ye={string:Rn=>{var mi=0;return Rn!=null&&Rn!==0&&(mi=Ma(Rn)),mi},array:Rn=>{var mi=xl(Rn.length);return Ro(Rn,mi),mi}};function xe(Rn){return R==="string"?U(Rn):R==="boolean"?!!Rn:Rn}var Ce=oi(b),ot=[],xt=0;if(Y)for(var tn=0;tn<Y.length;tn++){var vn=ye[z[tn]];vn?(xt===0&&(xt=L()),ot[tn]=vn(Y[tn])):ot[tn]=Y[tn]}var mn=Xt.currData,on=Ce(...ot);function dn(Rn){return Zt(),xt!==0&&ge(xt),xe(Rn)}var Ai=se?.async;return Ao(),Xt.currData!=mn?Xt.whenDone().then(dn):(on=dn(on),Ai?Promise.resolve(on):on)},Vs=(b,R,z,Y)=>{var se=!z||z.every(xe=>xe==="number"||xe==="boolean"),ye=R!=="string";return ye&&se&&!Y?oi(b):(...xe)=>Aa(b,R,z,xe,Y)},uu=b=>dv(),Tl=(b,R,z)=>{if(z??=2147483647,z<2)return 0;z-=2;for(var Y=R,se=z<b.length*2?z/2:b.length,ye=0;ye<se;++ye){var xe=b.charCodeAt(ye);Z[R>>1]=xe,R+=2}return Z[R>>1]=0,R-Y},rc=(b,R,z)=>{if(z??=2147483647,z<4)return 0;for(var Y=R,se=Y+z-4,ye=0;ye<b.length;++ye){var xe=b.charCodeAt(ye);if(xe>=55296&&xe<=57343){var Ce=b.charCodeAt(++ye);xe=65536+((xe&1023)<<10)|Ce&1023}if(j[R>>2]=xe,R+=4,R+4>se)break}return j[R>>2]=0,R-Y},tf=b=>{for(var R="";;){var z=H[b++];if(!z)return R;R+=String.fromCharCode(z)}},Gs=new TextDecoder("utf-16le"),me=(b,R)=>{for(var z=b>>1,Y=z+R/2,se=z;!(se>=Y)&&te[se];)++se;return Gs.decode(te.subarray(z,se))},pe=(b,R)=>{for(var z=0,Y="";!(z>=R/4);){var se=j[b+z*4>>2];if(se==0)break;if(++z,se>=65536){var ye=se-65536;Y+=String.fromCharCode(55296|ye>>10,56320|ye&1023)}else Y+=String.fromCharCode(se)}return Y},cd=b=>{for(var R=[],z=0;z<b.length;z++){var Y=b[z];Y>255&&(Y&=255),R.push(String.fromCharCode(Y))}return R.join("")},fd=uu;d.createPreloadedFile=Wn,d.staticInit(),we.doesNotExistError=new d.ErrnoError(44),we.doesNotExistError.stack="<generic error, no stack>",it(),t.noExitRuntime&&(fn=t.noExitRuntime),t.preloadPlugins&&(Yt=t.preloadPlugins),t.print&&(v=t.print),t.printErr&&(M=t.printErr),t.wasmBinary&&(O=t.wasmBinary),t.arguments&&(f=t.arguments),t.thisProgram&&(p=t.thisProgram),t.getTempRet0=uu,t.ccall=Aa,t.cwrap=Vs,t.addFunction=Ta,t.setValue=kt,t.getValue=Le,t.UTF8ToString=U,t.stringToUTF8=wn,t.lengthBytesUTF8=Oe,t.intArrayFromString=Ct,t.intArrayToString=cd,t.AsciiToString=tf,t.UTF16ToString=me,t.stringToUTF16=Tl,t.UTF32ToString=pe,t.stringToUTF32=rc,t.writeArrayToMemory=Ro,t._getTempRet0=fd;var ce={a:ee,aa:ul,ca:us,ba:Fr,$:Ps,b:Pr,_:fs,y:yo,U:Us,Y:Xa,Q:$r,W:Jr,O:ds,M:bo,L:hs,Z:ps,J:So,I:Fe,ea:Ye,E:He,w:Kt,u:yn,v:Sn,F:ai,P:Vn,n:wr,g:xn,G:vi,R:da,S:Eo,o:Vu,H:Gu,N:ju,x:Qu,V:wo,K:$c,s:Yu,t:cl,la:tu,pa:fl,j:Ku,k:dl,c:Zu,d:hl,ha:Jc,ia:pl,ja:zs,ka:ml,h:_l,i:qs,z:$u,A:xo,e:ef,f:gl,fa:Ju,ga:vl,B:ec,C:yl,p:nu,q:bl,ma:tc,na:To,D:Hn,T:nc,oa:iu,r:ru,l:Sl,m:au,X:su,da:Bs},ue=await lt(),G_=ue.ra,np=t._powersync_init_static=ue.sa,dd=t._memcpy=ue.ta,hd=t._memset=ue.ua,yb=t._memcmp=ue.va,W_=t._sqlite3_status64=ue.wa,j_=t._sqlite3_status=ue.xa,pd=t._sqlite3_msize=ue.ya,ip=t._sqlite3_db_status=ue.za,rp=t._sqlite3_vfs_find=ue.Aa,Q_=t._sqlite3_vfs_register=ue.Ba,Io=t._sqlite3_vfs_unregister=ue.Ca,ap=t._sqlite3_release_memory=ue.Da,bb=t._sqlite3_soft_heap_limit64=ue.Ea,X_=t._sqlite3_memory_used=ue.Fa,_s=t._sqlite3_hard_heap_limit64=ue.Ga,md=t._sqlite3_memory_highwater=ue.Ha,Y_=t._sqlite3_malloc=ue.Ia,sp=t._sqlite3_malloc64=ue.Ja,K_=t._sqlite3_free=ue.Ka,Z_=t._sqlite3_realloc=ue.La,op=t._sqlite3_realloc64=ue.Ma,lp=t._sqlite3_str_vappendf=ue.Na,$_=t._sqlite3_str_append=ue.Oa,_d=t._sqlite3_str_appendchar=ue.Pa,nf=t._sqlite3_str_appendall=ue.Qa,Mi=t._sqlite3_str_appendf=ue.Ra,Sb=t._sqlite3_str_finish=ue.Sa,Eb=t._sqlite3_str_errcode=ue.Ta,J_=t._sqlite3_str_length=ue.Ua,rf=t._sqlite3_str_value=ue.Va,Ml=t._sqlite3_str_reset=ue.Wa,eg=t._sqlite3_str_new=ue.Xa,tg=t._sqlite3_vmprintf=ue.Ya,Ws=t._sqlite3_mprintf=ue.Za,Mr=t._sqlite3_vsnprintf=ue._a,ng=t._sqlite3_snprintf=ue.$a,af=t._sqlite3_log=ue.ab,ig=t._sqlite3_randomness=ue.bb,sf=t._sqlite3_stricmp=ue.cb,up=t._sqlite3_strnicmp=ue.db,cp=t._sqlite3_os_init=ue.eb,fp=t._sqlite3_os_end=ue.fb,dp=t._sqlite3_serialize=ue.gb,rg=t._sqlite3_prepare_v2=ue.hb,hp=t._sqlite3_step=ue.ib,pp=t._sqlite3_column_int64=ue.jb,gd=t._sqlite3_reset=ue.kb,mp=t._sqlite3_exec=ue.lb,ag=t._sqlite3_column_int=ue.mb,sg=t._sqlite3_finalize=ue.nb,og=t._sqlite3_deserialize=ue.ob,lg=t._sqlite3_database_file_object=ue.pb,ac=t._sqlite3_backup_init=ue.qb,ug=t._sqlite3_backup_step=ue.rb,js=t._sqlite3_backup_finish=ue.sb,vd=t._sqlite3_backup_remaining=ue.tb,_p=t._sqlite3_backup_pagecount=ue.ub,gp=t._sqlite3_clear_bindings=ue.vb,vp=t._sqlite3_value_blob=ue.wb,cg=t._sqlite3_value_text=ue.xb,yp=t._sqlite3_value_bytes=ue.yb,yd=t._sqlite3_value_bytes16=ue.zb,fg=t._sqlite3_value_double=ue.Ab,bp=t._sqlite3_value_int=ue.Bb,dg=t._sqlite3_value_int64=ue.Cb,wb=t._sqlite3_value_subtype=ue.Db,bd=t._sqlite3_value_pointer=ue.Eb,hg=t._sqlite3_value_text16=ue.Fb,Sp=t._sqlite3_value_text16be=ue.Gb,pg=t._sqlite3_value_text16le=ue.Hb,Ep=t._sqlite3_value_type=ue.Ib,mg=t._sqlite3_value_encoding=ue.Jb,Ca=t._sqlite3_value_nochange=ue.Kb,wp=t._sqlite3_value_frombind=ue.Lb,_g=t._sqlite3_value_dup=ue.Mb,gg=t._sqlite3_value_free=ue.Nb,xb=t._sqlite3_result_blob=ue.Ob,Sd=t._sqlite3_result_blob64=ue.Pb,Ar=t._sqlite3_result_double=ue.Qb,vg=t._sqlite3_result_error=ue.Rb,zr=t._sqlite3_result_error16=ue.Sb,yg=t._sqlite3_result_int=ue.Tb,sc=t._sqlite3_result_int64=ue.Ub,bg=t._sqlite3_result_null=ue.Vb,Qs=t._sqlite3_result_pointer=ue.Wb,Al=t._sqlite3_result_subtype=ue.Xb,gs=t._sqlite3_result_text=ue.Yb,xp=t._sqlite3_result_text64=ue.Zb,Tp=t._sqlite3_result_text16=ue._b,Ka=t._sqlite3_result_text16be=ue.$b,Sg=t._sqlite3_result_text16le=ue.ac,oc=t._sqlite3_result_value=ue.bc,of=t._sqlite3_result_error_toobig=ue.cc,Cl=t._sqlite3_result_zeroblob=ue.dc,Eg=t._sqlite3_result_zeroblob64=ue.ec,wg=t._sqlite3_result_error_code=ue.fc,lf=t._sqlite3_result_error_nomem=ue.gc,xg=t._sqlite3_user_data=ue.hc,Ed=t._sqlite3_context_db_handle=ue.ic,Tg=t._sqlite3_vtab_nochange=ue.jc,Mp=t._sqlite3_vtab_in_first=ue.kc,Ap=t._sqlite3_vtab_in_next=ue.lc,Cp=t._sqlite3_aggregate_context=ue.mc,Mg=t._sqlite3_get_auxdata=ue.nc,Rp=t._sqlite3_set_auxdata=ue.oc,Ra=t._sqlite3_column_count=ue.pc,Ag=t._sqlite3_data_count=ue.qc,lc=t._sqlite3_column_blob=ue.rc,pa=t._sqlite3_column_bytes=ue.sc,Cg=t._sqlite3_column_bytes16=ue.tc,Rg=t._sqlite3_column_double=ue.uc,Tb=t._sqlite3_column_text=ue.vc,Rl=t._sqlite3_column_value=ue.wc,Ig=t._sqlite3_column_text16=ue.xc,Ip=t._sqlite3_column_type=ue.yc,uc=t._sqlite3_column_name=ue.zc,Lg=t._sqlite3_column_name16=ue.Ac,Ng=t._sqlite3_bind_blob=ue.Bc,kg=t._sqlite3_bind_blob64=ue.Cc,Og=t._sqlite3_bind_double=ue.Dc,wd=t._sqlite3_bind_int=ue.Ec,Lp=t._sqlite3_bind_int64=ue.Fc,Mb=t._sqlite3_bind_null=ue.Gc,Ab=t._sqlite3_bind_pointer=ue.Hc,Cb=t._sqlite3_bind_text=ue.Ic,Dg=t._sqlite3_bind_text64=ue.Jc,Fg=t._sqlite3_bind_text16=ue.Kc,cc=t._sqlite3_bind_value=ue.Lc,xd=t._sqlite3_bind_zeroblob=ue.Mc,Pg=t._sqlite3_bind_zeroblob64=ue.Nc,Ug=t._sqlite3_bind_parameter_count=ue.Oc,Rb=t._sqlite3_bind_parameter_name=ue.Pc,Ib=t._sqlite3_bind_parameter_index=ue.Qc,Lb=t._sqlite3_db_handle=ue.Rc,Np=t._sqlite3_stmt_readonly=ue.Sc,kp=t._sqlite3_stmt_isexplain=ue.Tc,Op=t._sqlite3_stmt_explain=ue.Uc,zg=t._sqlite3_stmt_busy=ue.Vc,uf=t._sqlite3_next_stmt=ue.Wc,Dp=t._sqlite3_stmt_status=ue.Xc,qg=t._sqlite3_sql=ue.Yc,li=t._sqlite3_expanded_sql=ue.Zc,Fp=t._sqlite3_value_numeric_type=ue._c,Nb=t._sqlite3_blob_open=ue.$c,Bg=t._sqlite3_blob_close=ue.ad,kb=t._sqlite3_blob_read=ue.bd,Ob=t._sqlite3_blob_write=ue.cd,Db=t._sqlite3_blob_bytes=ue.dd,Fb=t._sqlite3_blob_reopen=ue.ed,Pp=t._sqlite3_set_authorizer=ue.fd,Lo=t._sqlite3_strglob=ue.gd,Hg=t._sqlite3_strlike=ue.hd,Td=t._sqlite3_errmsg=ue.id,cu=t._sqlite3_load_extension=ue.jd,Up=t._sqlite3_enable_load_extension=ue.kd,Vg=t._sqlite3_auto_extension=ue.ld,zp=t._sqlite3_cancel_auto_extension=ue.md,Pb=t._sqlite3_reset_auto_extension=ue.nd,Gg=t._sqlite3_prepare=ue.od,Wg=t._sqlite3_prepare_v3=ue.pd,jg=t._sqlite3_prepare16=ue.qd,Qg=t._sqlite3_prepare16_v2=ue.rd,Xg=t._sqlite3_prepare16_v3=ue.sd,qp=t._sqlite3_get_table=ue.td,qn=t._sqlite3_free_table=ue.ud,Ub=t._sqlite3_create_module=ue.vd,Ia=t._sqlite3_create_module_v2=ue.wd,Bp=t._sqlite3_drop_modules=ue.xd,zb=t._sqlite3_declare_vtab=ue.yd,Md=t._sqlite3_vtab_on_conflict=ue.zd,fc=t._sqlite3_vtab_config=ue.Ad,dc=t._sqlite3_vtab_collation=ue.Bd,Yg=t._sqlite3_vtab_in=ue.Cd,Hp=t._sqlite3_vtab_rhs_value=ue.Dd,Kg=t._sqlite3_vtab_distinct=ue.Ed,No=t._sqlite3_keyword_name=ue.Fd,Vp=t._sqlite3_keyword_count=ue.Gd,Gp=t._sqlite3_keyword_check=ue.Hd,Wp=t._sqlite3_complete=ue.Id,jp=t._sqlite3_complete16=ue.Jd,Il=t._sqlite3_libversion=ue.Kd,Qp=t._sqlite3_libversion_number=ue.Ld,qb=t._sqlite3_threadsafe=ue.Md,Bb=t._sqlite3_initialize=ue.Nd,Xp=t._sqlite3_shutdown=ue.Od,Hb=t._sqlite3_config=ue.Pd,Zg=t._sqlite3_db_mutex=ue.Qd,$g=t._sqlite3_db_release_memory=ue.Rd,Vb=t._sqlite3_db_cacheflush=ue.Sd,Ad=t._sqlite3_db_config=ue.Td,_n=t._sqlite3_last_insert_rowid=ue.Ud,Gb=t._sqlite3_set_last_insert_rowid=ue.Vd,Wb=t._sqlite3_changes64=ue.Wd,Jg=t._sqlite3_changes=ue.Xd,cf=t._sqlite3_total_changes64=ue.Yd,jb=t._sqlite3_total_changes=ue.Zd,Qb=t._sqlite3_txn_state=ue._d,Xb=t._sqlite3_close=ue.$d,Yb=t._sqlite3_close_v2=ue.ae,Kb=t._sqlite3_busy_handler=ue.be,Yp=t._sqlite3_progress_handler=ue.ce,ev=t._sqlite3_busy_timeout=ue.de,Cd=t._sqlite3_interrupt=ue.ee,tv=t._sqlite3_is_interrupted=ue.fe,Zb=t._sqlite3_create_function=ue.ge,$b=t._sqlite3_create_function_v2=ue.he,fu=t._sqlite3_create_window_function=ue.ie,Xs=t._sqlite3_create_function16=ue.je,Gi=t._sqlite3_overload_function=ue.ke,Ys=t._sqlite3_trace_v2=ue.le,Cr=t._sqlite3_commit_hook=ue.me,Jb=t._sqlite3_update_hook=ue.ne,eS=t._sqlite3_rollback_hook=ue.oe,hr=t._sqlite3_autovacuum_pages=ue.pe,ko=t._sqlite3_wal_autocheckpoint=ue.qe,tS=t._sqlite3_wal_hook=ue.re,nS=t._sqlite3_wal_checkpoint_v2=ue.se,iS=t._sqlite3_wal_checkpoint=ue.te,rS=t._sqlite3_error_offset=ue.ue,aS=t._sqlite3_errmsg16=ue.ve,Kp=t._sqlite3_errcode=ue.we,nv=t._sqlite3_extended_errcode=ue.xe,sS=t._sqlite3_system_errno=ue.ye,iv=t._sqlite3_errstr=ue.ze,oS=t._sqlite3_limit=ue.Ae,lS=t._sqlite3_open=ue.Be,hc=t._sqlite3_open_v2=ue.Ce,Oo=t._sqlite3_open16=ue.De,uS=t._sqlite3_create_collation=ue.Ee,cS=t._sqlite3_create_collation_v2=ue.Fe,fS=t._sqlite3_create_collation16=ue.Ge,ff=t._sqlite3_collation_needed=ue.He,dS=t._sqlite3_collation_needed16=ue.Ie,hS=t._sqlite3_get_clientdata=ue.Je,pS=t._sqlite3_set_clientdata=ue.Ke,df=t._sqlite3_get_autocommit=ue.Le,mS=t._sqlite3_table_column_metadata=ue.Me,_S=t._sqlite3_sleep=ue.Ne,gS=t._sqlite3_extended_result_codes=ue.Oe,vS=t._sqlite3_file_control=ue.Pe,yS=t._sqlite3_test_control=ue.Qe,bS=t._sqlite3_create_filename=ue.Re,SS=t._sqlite3_free_filename=ue.Se,ES=t._sqlite3_uri_parameter=ue.Te,wS=t._sqlite3_uri_key=ue.Ue,xS=t._sqlite3_uri_boolean=ue.Ve,TS=t._sqlite3_uri_int64=ue.We,MS=t._sqlite3_filename_database=ue.Xe,rv=t._sqlite3_filename_journal=ue.Ye,AS=t._sqlite3_filename_wal=ue.Ze,CS=t._sqlite3_db_name=ue._e,RS=t._sqlite3_db_filename=ue.$e,IS=t._sqlite3_db_readonly=ue.af,av=t._sqlite3_compileoption_used=ue.bf,LS=t._sqlite3_compileoption_get=ue.cf,Zp=t._sqlite3_sourceid=ue.df,sv=t._sqlite3mc_config=ue.ef,NS=t._sqlite3mc_cipher_count=ue.ff,$p=t._sqlite3mc_cipher_index=ue.gf,ov=t._sqlite3mc_cipher_name=ue.hf,Rd=t._sqlite3mc_config_cipher=ue.jf,kS=t._sqlite3mc_vfs_create=ue.kf,Id=t._malloc=ue.lf,Jp=t._free=ue.mf,lv=t._RegisterExtensionFunctions=ue.nf,uv=t._getSqliteFree=ue.of,hf=t._main=ue.pf,em=t._libauthorizer_set_authorizer=ue.qf,cv=t._libfunction_create_function=ue.rf,tm=t._libhook_commit_hook=ue.sf,Ld=t._libhook_update_hook=ue.tf,nm=t._libprogress_progress_handler=ue.uf,fv=t._libvfs_vfs_register=ue.vf,Nd=ue.xf,kd=ue.yf,dv=ue.zf,im=ue.Af,rm=ue.Bf,am=ue.Cf,sm=t.dynCall_iii=ue.dynCall_iii,om=t.dynCall_iiii=ue.dynCall_iiii,OS=t.dynCall_viii=ue.dynCall_viii,DS=t.dynCall_vi=ue.dynCall_vi,FS=t.dynCall_viiiij=ue.dynCall_viiiij,PS=t.dynCall_ii=ue.dynCall_ii,hv=t.dynCall_vii=ue.dynCall_vii,US=t.dynCall_iiiiiii=ue.dynCall_iiiiiii,zS=t.dynCall_iiiiii=ue.dynCall_iiiiii,qS=t.dynCall_iiiii=ue.dynCall_iiiii,BS=t.dynCall_viiii=ue.dynCall_viiii,HS=t.dynCall_iiiiiiiii=ue.dynCall_iiiiiiiii,pv=t.dynCall_vijii=ue.dynCall_vijii,Od=t.dynCall_viiiii=ue.dynCall_viiiii,mv=t.dynCall_iiiij=ue.dynCall_iiiij,A=t.dynCall_viji=ue.dynCall_viji,P=t.dynCall_iij=ue.dynCall_iij,W=t.dynCall_iidiiii=ue.dynCall_iidiiii,J=t.dynCall_v=ue.dynCall_v,de=t.dynCall_iijii=ue.dynCall_iijii,Ae=t.dynCall_iiji=ue.dynCall_iiji,qe=t.dynCall_i=ue.dynCall_i,w=t.dynCall_iiiiiij=ue.dynCall_iiiiiij,I=t.dynCall_iiid=ue.dynCall_iiid,B=t.dynCall_iiij=ue.dynCall_iiij,K=t.dynCall_dii=ue.dynCall_dii,oe=t.dynCall_jii=ue.dynCall_jii,Se=t.dynCall_ji=ue.dynCall_ji,Te=t.dynCall_vid=ue.dynCall_vid,Ie=t.dynCall_vij=ue.dynCall_vij,rt=t.dynCall_iiiiiiiiii=ue.dynCall_iiiiiiiiii,Ut=t.dynCall_di=ue.dynCall_di,ln=t.dynCall_iiiiijii=ue.dynCall_iiiiijii,gn=t.dynCall_j=ue.dynCall_j,hn=t.dynCall_jj=ue.dynCall_jj,un=t.dynCall_jiij=ue.dynCall_jiij,Dt=t.dynCall_iiiiji=ue.dynCall_iiiiji,Kn=t.dynCall_iiiijii=ue.dynCall_iiiijii,Qn=t.dynCall_ij=ue.dynCall_ij,ea=t.dynCall_viiji=ue.dynCall_viiji,La=t.dynCall_viijii=ue.dynCall_viijii,Za=t.dynCall_iiiiiiiiiii=ue.dynCall_iiiiiiiiiii,pc=t.dynCall_iiiijji=ue.dynCall_iiiijji,ta=t.dynCall_iiiiiiii=ue.dynCall_iiiiiiii,Ks=ue.Df,T=ue.Ef,D=ue.Ff,V=ue.Gf,$=t._sqlite3_version=82296;function fe(){var b=hf,R=0,z=0;try{var Y=b(R,z);return On(Y,!0),Y}catch(se){return En(se)}}function Ee(){if(We>0){gt=Ee;return}if(Ve(),We>0){gt=Ee;return}function b(){if(t.calledRun=!0,!q){Je(),i(t),t.onRuntimeInitialized?.();var R=t.noInitialRun||!1;R||fe(),st()}}t.setStatus?(t.setStatus("Running..."),setTimeout(()=>{setTimeout(()=>t.setStatus(""),1),b()},1)):b()}function Ue(){if(t.preInit)for(typeof t.preInit=="function"&&(t.preInit=[t.preInit]);t.preInit.length>0;)t.preInit.shift()()}return Ue(),Ee(),(function(){let b=Object.getPrototypeOf(async function(){}).constructor,R=0;t.set_authorizer=function(z,Y,se){R&&(t.deleteCallback(R),t._sqlite3_free(R),R=0),R=t._sqlite3_malloc(4),kt(R,Y instanceof b?1:0,"i32");let ye=Aa("libauthorizer_set_authorizer","number",["number","number","number"],[z,Y?1:0,R]);return!ye&&Y&&t.setCallback(R,(xe,Ce,ot,xt,tn,vn)=>Y(se,Ce,ot,xt,tn,vn)),ye}})(),(function(){let b=Object.getPrototypeOf(async function(){}).constructor,R=["xFunc","xStep","xFinal"],z=new Map;t.create_function=function(Y,se,ye,xe,Ce,ot,xt,tn){let vn=t._sqlite3_malloc(4),mn={xFunc:ot,xStep:xt,xFinal:tn};kt(vn,R.reduce((dn,Ai,Rn)=>mn[Ai]instanceof b?dn|1<<Rn:dn,0),"i32");let on=Aa("libfunction_create_function","number",["number","string","number","number","number","number","number","number"],[Y,se,ye,xe,vn,ot?1:0,xt?1:0,tn?1:0]);if(!on){if(z.has(se)){let dn=z.get(se);t.deleteCallback(dn)}z.set(se,vn),t.setCallback(vn,{xFunc:ot,xStep:xt,xFinal:tn})}return on}})(),(function(){let b=Object.getPrototypeOf(async function(){}).constructor,R=0;t.update_hook=function(z,Y){R&&(t.deleteCallback(R),t._sqlite3_free(R),R=0),R=t._sqlite3_malloc(4),kt(R,Y instanceof b?1:0,"i32"),Aa("libhook_update_hook","void",["number","number","number"],[z,Y?1:0,R]),Y&&t.setCallback(R,(se,ye,xe,Ce,ot,xt)=>Y(ye,xe,Ce,ot,xt))}})(),(function(){let b=Object.getPrototypeOf(async function(){}).constructor,R=0;t.commit_hook=function(z,Y){R&&(t.deleteCallback(R),t._sqlite3_free(R),R=0),R=t._sqlite3_malloc(4),kt(R,Y instanceof b?1:0,"i32"),Aa("libhook_commit_hook","void",["number","number","number"],[z,Y?1:0,R]),Y&&t.setCallback(R,se=>Y())}})(),(function(){let b=Object.getPrototypeOf(async function(){}).constructor,R=0;t.progress_handler=function(z,Y,se,ye){R&&(t.deleteCallback(R),t._sqlite3_free(R),R=0),R=t._sqlite3_malloc(4),kt(R,se instanceof b?1:0,"i32"),Aa("libprogress_progress_handler","number",["number","number","number","number"],[z,Y,se?1:0,R]),se&&t.setCallback(R,xe=>se(ye))}})(),(function(){let b=["xOpen","xDelete","xAccess","xFullPathname","xRandomness","xSleep","xCurrentTime","xGetLastError","xCurrentTimeInt64","xClose","xRead","xWrite","xTruncate","xSync","xFileSize","xLock","xUnlock","xCheckReservedLock","xFileControl","xSectorSize","xDeviceCharacteristics","xShmMap","xShmLock","xShmBarrier","xShmUnmap"],R=new Map;t.vfs_register=function(z,Y){let se=0,ye=0;b.forEach((Ce,ot)=>{z[Ce]&&(se|=1<<ot,z.hasAsyncMethod(Ce)&&(ye|=1<<ot))});let xe=t._sqlite3_malloc(4);try{let Ce=Aa("libvfs_vfs_register","number",["string","number","number","number","number","number"],[z.name,z.mxPathname,se,ye,Y?1:0,xe]);if(!Ce){if(R.has(z.name)){let xt=R.get(z.name);t.deleteCallback(xt)}let ot=Le(xe,"*");R.set(z.name,ot),t.setCallback(ot,z)}return Ce}finally{t._sqlite3_free(xe)}}})(),e=a,e}),xte=wte});var VH={};pu(VH,{default:()=>Mte});var Tte,Mte,GH=Da(()=>{Tte=(async function(n={}){var e,t=n,i,r,a=new Promise((T,D)=>{i=T,r=D}),s=typeof window=="object",l=typeof WorkerGlobalScope<"u",c=typeof process=="object"&&process.versions?.node&&process.type!="renderer",f=[],p="./this.program",h=(T,D)=>{throw D},_=import.meta.url,g="";function E(T){return t.locateFile?t.locateFile(T,g):g+T}var x,S;if(s||l){try{g=new URL(".",_).href}catch{}l&&(S=T=>{var D=new XMLHttpRequest;return D.open("GET",T,!1),D.responseType="arraybuffer",D.send(null),new Uint8Array(D.response)}),x=async T=>{var D=await fetch(T,{credentials:"same-origin"});if(D.ok)return D.arrayBuffer();throw new Error(D.status+" : "+D.url)}}var v=console.log.bind(console),M=console.error.bind(console),O,k,q=!1,G,Q,H,Z,te,j,he,ke,Me,ze=!1;function Ne(){var T=k.buffer;Q=new Int8Array(T),Z=new Int16Array(T),t.HEAPU8=H=new Uint8Array(T),te=new Uint16Array(T),t.HEAP32=j=new Int32Array(T),he=new Uint32Array(T),ke=new Float32Array(T),Me=new Float64Array(T)}function Ve(){if(t.preRun)for(typeof t.preRun=="function"&&(t.preRun=[t.preRun]);t.preRun.length;)en(t.preRun.shift());vt(qt)}function Je(){ze=!0,!t.noFSInit&&!d.initialized&&d.init(),ht.init(),ce.qa(),d.ignorePermissions=!1}function Qe(){}function st(){if(t.postRun)for(typeof t.postRun=="function"&&(t.postRun=[t.postRun]);t.postRun.length;)Ht(t.postRun.shift());vt(Qt)}var We=0,gt=null;function Et(T){return T}function jt(T){We++,t.monitorRunDependencies?.(We)}function zt(T){if(We--,t.monitorRunDependencies?.(We),We==0&&gt){var D=gt;gt=null,D()}}function Mt(T){t.onAbort?.(T),T="Aborted("+T+")",M(T),q=!0,T+=". Build with -sASSERTIONS for more info.";var D=new WebAssembly.RuntimeError(T);throw r(D),D}var Xe;function et(){return t.locateFile?E("wa-sqlite-async.wasm"):new URL("wa-sqlite-async.wasm",import.meta.url).href}function yt(T){if(T==Xe&&O)return new Uint8Array(O);if(S)return S(T);throw"both async and sync fetching of the wasm failed"}async function Wt(T){if(!O)try{var D=await x(T);return new Uint8Array(D)}catch{}return yt(T)}async function Lt(T,D){try{var V=await Wt(T),$=await WebAssembly.instantiate(V,D);return $}catch(fe){M(`failed to asynchronously prepare wasm: ${fe}`),Mt(fe)}}async function sn(T,D,V){if(!T&&typeof WebAssembly.instantiateStreaming=="function")try{var $=fetch(D,{credentials:"same-origin"}),fe=await WebAssembly.instantiateStreaming($,V);return fe}catch(Ee){M(`wasm streaming compile failed: ${Ee}`),M("falling back to ArrayBuffer instantiation")}return Lt(D,V)}function pn(){return{a:fd}}async function lt(){function T(Ee,Ue){return ce=Ee.exports,ce=Zt.instrumentWasmExports(ce),k=ce.pa,Ne(),xr=ce.pf,zt("wasm-instantiate"),ce}jt("wasm-instantiate");function D(Ee){return T(Ee.instance)}var V=pn();if(t.instantiateWasm)return new Promise((Ee,Ue)=>{t.instantiateWasm(V,(b,R)=>{Ee(T(b,R))})});Xe??=et();try{var $=await sn(O,Xe,V),fe=D($);return fe}catch(Ee){return r(Ee),Promise.reject(Ee)}}var _e,Pe;class dt{name="ExitStatus";constructor(D){this.message=`Program terminated with exit(${D})`,this.status=D}}var vt=T=>{for(;T.length>0;)T.shift()(t)},Qt=[],Ht=T=>Qt.push(T),qt=[],en=T=>qt.push(T);function Le(T,D="i8"){switch(D.endsWith("*")&&(D="*"),D){case"i1":return Q[T];case"i8":return Q[T];case"i16":return Z[T>>1];case"i32":return j[T>>2];case"i64":Mt("to do getValue(i64) use WASM_BIGINT");case"float":return ke[T>>2];case"double":return Me[T>>3];case"*":return he[T>>2];default:Mt(`invalid type for getValue: ${D}`)}}var fn=!0;function kt(T,D,V="i8"){switch(V.endsWith("*")&&(V="*"),V){case"i1":Q[T]=D;break;case"i8":Q[T]=D;break;case"i16":Z[T>>1]=D;break;case"i32":j[T>>2]=D;break;case"i64":Mt("to do setValue(i64) use WASM_BIGINT");case"float":ke[T>>2]=D;break;case"double":Me[T>>3]=D;break;case"*":he[T>>2]=D;break;default:Mt(`invalid type for setValue: ${V}`)}}var ge=T=>tm(T),L=()=>nm(),N=new TextDecoder,U=(T,D)=>{if(!T)return"";for(var V=T+D,$=T;!($>=V)&&H[$];)++$;return N.decode(H.subarray(T,$))},ee=(T,D,V,$)=>Mt(`Assertion failed: ${U(T)}, at: `+[D?U(D):"unknown filename",V,$?U($):"unknown function"]),ne={isAbs:T=>T.charAt(0)==="/",splitPath:T=>{var D=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return D.exec(T).slice(1)},normalizeArray:(T,D)=>{for(var V=0,$=T.length-1;$>=0;$--){var fe=T[$];fe==="."?T.splice($,1):fe===".."?(T.splice($,1),V++):V&&(T.splice($,1),V--)}if(D)for(;V;V--)T.unshift("..");return T},normalize:T=>{var D=ne.isAbs(T),V=T.slice(-1)==="/";return T=ne.normalizeArray(T.split("/").filter($=>!!$),!D).join("/"),!T&&!D&&(T="."),T&&V&&(T+="/"),(D?"/":"")+T},dirname:T=>{var D=ne.splitPath(T),V=D[0],$=D[1];return!V&&!$?".":($&&($=$.slice(0,-1)),V+$)},basename:T=>T&&T.match(/([^\/]+|\/)\/*$/)[1],join:(...T)=>ne.normalize(T.join("/")),join2:(T,D)=>ne.normalize(T+"/"+D)},X=()=>T=>crypto.getRandomValues(T),ie=T=>{(ie=X())(T)},le={resolve:(...T)=>{for(var D="",V=!1,$=T.length-1;$>=-1&&!V;$--){var fe=$>=0?T[$]:d.cwd();if(typeof fe!="string")throw new TypeError("Arguments to path.resolve must be strings");if(!fe)return"";D=fe+"/"+D,V=ne.isAbs(fe)}return D=ne.normalizeArray(D.split("/").filter(Ee=>!!Ee),!V).join("/"),(V?"/":"")+D||"."},relative:(T,D)=>{T=le.resolve(T).slice(1),D=le.resolve(D).slice(1);function V(z){for(var Y=0;Y<z.length&&z[Y]==="";Y++);for(var se=z.length-1;se>=0&&z[se]==="";se--);return Y>se?[]:z.slice(Y,se-Y+1)}for(var $=V(T.split("/")),fe=V(D.split("/")),Ee=Math.min($.length,fe.length),Ue=Ee,b=0;b<Ee;b++)if($[b]!==fe[b]){Ue=b;break}for(var R=[],b=Ue;b<$.length;b++)R.push("..");return R=R.concat(fe.slice(Ue)),R.join("/")}},be=(T,D=0,V=NaN)=>{for(var $=D+V,fe=D;T[fe]&&!(fe>=$);)++fe;return N.decode(T.buffer?T.subarray(D,fe):new Uint8Array(T.slice(D,fe)))},tt=[],Oe=T=>{for(var D=0,V=0;V<T.length;++V){var $=T.charCodeAt(V);$<=127?D++:$<=2047?D+=2:$>=55296&&$<=57343?(D+=4,++V):D+=3}return D},je=(T,D,V,$)=>{if(!($>0))return 0;for(var fe=V,Ee=V+$-1,Ue=0;Ue<T.length;++Ue){var b=T.charCodeAt(Ue);if(b>=55296&&b<=57343){var R=T.charCodeAt(++Ue);b=65536+((b&1023)<<10)|R&1023}if(b<=127){if(V>=Ee)break;D[V++]=b}else if(b<=2047){if(V+1>=Ee)break;D[V++]=192|b>>6,D[V++]=128|b&63}else if(b<=65535){if(V+2>=Ee)break;D[V++]=224|b>>12,D[V++]=128|b>>6&63,D[V++]=128|b&63}else{if(V+3>=Ee)break;D[V++]=240|b>>18,D[V++]=128|b>>12&63,D[V++]=128|b>>6&63,D[V++]=128|b&63}}return D[V]=0,V-fe},Ct=(T,D,V)=>{var $=V>0?V:Oe(T)+1,fe=new Array($),Ee=je(T,fe,0,fe.length);return D&&(fe.length=Ee),fe},nn=()=>{if(!tt.length){var T=null;if(typeof window<"u"&&typeof window.prompt=="function"&&(T=window.prompt("Input: "),T!==null&&(T+=`
`)),!T)return null;tt=Ct(T,!0)}return tt.shift()},ht={ttys:[],init(){},shutdown(){},register(T,D){ht.ttys[T]={input:[],output:[],ops:D},d.registerDevice(T,ht.stream_ops)},stream_ops:{open(T){var D=ht.ttys[T.node.rdev];if(!D)throw new d.ErrnoError(43);T.tty=D,T.seekable=!1},close(T){T.tty.ops.fsync(T.tty)},fsync(T){T.tty.ops.fsync(T.tty)},read(T,D,V,$,fe){if(!T.tty||!T.tty.ops.get_char)throw new d.ErrnoError(60);for(var Ee=0,Ue=0;Ue<$;Ue++){var b;try{b=T.tty.ops.get_char(T.tty)}catch{throw new d.ErrnoError(29)}if(b===void 0&&Ee===0)throw new d.ErrnoError(6);if(b==null)break;Ee++,D[V+Ue]=b}return Ee&&(T.node.atime=Date.now()),Ee},write(T,D,V,$,fe){if(!T.tty||!T.tty.ops.put_char)throw new d.ErrnoError(60);try{for(var Ee=0;Ee<$;Ee++)T.tty.ops.put_char(T.tty,D[V+Ee])}catch{throw new d.ErrnoError(29)}return $&&(T.node.mtime=T.node.ctime=Date.now()),Ee}},default_tty_ops:{get_char(T){return nn()},put_char(T,D){D===null||D===10?(v(be(T.output)),T.output=[]):D!=0&&T.output.push(D)},fsync(T){T.output?.length>0&&(v(be(T.output)),T.output=[])},ioctl_tcgets(T){return{c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},ioctl_tcsets(T,D,V){return 0},ioctl_tiocgwinsz(T){return[24,80]}},default_tty1_ops:{put_char(T,D){D===null||D===10?(M(be(T.output)),T.output=[]):D!=0&&T.output.push(D)},fsync(T){T.output?.length>0&&(M(be(T.output)),T.output=[])}}},De=(T,D)=>H.fill(0,T,T+D),bt=(T,D)=>Math.ceil(T/D)*D,at=T=>{T=bt(T,65536);var D=hf(65536,T);return D&&De(D,T),D},we={ops_table:null,mount(T){return we.createNode(null,"/",16895,0)},createNode(T,D,V,$){if(d.isBlkdev(V)||d.isFIFO(V))throw new d.ErrnoError(63);we.ops_table||={dir:{node:{getattr:we.node_ops.getattr,setattr:we.node_ops.setattr,lookup:we.node_ops.lookup,mknod:we.node_ops.mknod,rename:we.node_ops.rename,unlink:we.node_ops.unlink,rmdir:we.node_ops.rmdir,readdir:we.node_ops.readdir,symlink:we.node_ops.symlink},stream:{llseek:we.stream_ops.llseek}},file:{node:{getattr:we.node_ops.getattr,setattr:we.node_ops.setattr},stream:{llseek:we.stream_ops.llseek,read:we.stream_ops.read,write:we.stream_ops.write,mmap:we.stream_ops.mmap,msync:we.stream_ops.msync}},link:{node:{getattr:we.node_ops.getattr,setattr:we.node_ops.setattr,readlink:we.node_ops.readlink},stream:{}},chrdev:{node:{getattr:we.node_ops.getattr,setattr:we.node_ops.setattr},stream:d.chrdev_stream_ops}};var fe=d.createNode(T,D,V,$);return d.isDir(fe.mode)?(fe.node_ops=we.ops_table.dir.node,fe.stream_ops=we.ops_table.dir.stream,fe.contents={}):d.isFile(fe.mode)?(fe.node_ops=we.ops_table.file.node,fe.stream_ops=we.ops_table.file.stream,fe.usedBytes=0,fe.contents=null):d.isLink(fe.mode)?(fe.node_ops=we.ops_table.link.node,fe.stream_ops=we.ops_table.link.stream):d.isChrdev(fe.mode)&&(fe.node_ops=we.ops_table.chrdev.node,fe.stream_ops=we.ops_table.chrdev.stream),fe.atime=fe.mtime=fe.ctime=Date.now(),T&&(T.contents[D]=fe,T.atime=T.mtime=T.ctime=fe.atime),fe},getFileDataAsTypedArray(T){return T.contents?T.contents.subarray?T.contents.subarray(0,T.usedBytes):new Uint8Array(T.contents):new Uint8Array(0)},expandFileStorage(T,D){var V=T.contents?T.contents.length:0;if(!(V>=D)){var $=1024*1024;D=Math.max(D,V*(V<$?2:1.125)>>>0),V!=0&&(D=Math.max(D,256));var fe=T.contents;T.contents=new Uint8Array(D),T.usedBytes>0&&T.contents.set(fe.subarray(0,T.usedBytes),0)}},resizeFileStorage(T,D){if(T.usedBytes!=D)if(D==0)T.contents=null,T.usedBytes=0;else{var V=T.contents;T.contents=new Uint8Array(D),V&&T.contents.set(V.subarray(0,Math.min(D,T.usedBytes))),T.usedBytes=D}},node_ops:{getattr(T){var D={};return D.dev=d.isChrdev(T.mode)?T.id:1,D.ino=T.id,D.mode=T.mode,D.nlink=1,D.uid=0,D.gid=0,D.rdev=T.rdev,d.isDir(T.mode)?D.size=4096:d.isFile(T.mode)?D.size=T.usedBytes:d.isLink(T.mode)?D.size=T.link.length:D.size=0,D.atime=new Date(T.atime),D.mtime=new Date(T.mtime),D.ctime=new Date(T.ctime),D.blksize=4096,D.blocks=Math.ceil(D.size/D.blksize),D},setattr(T,D){for(let V of["mode","atime","mtime","ctime"])D[V]!=null&&(T[V]=D[V]);D.size!==void 0&&we.resizeFileStorage(T,D.size)},lookup(T,D){throw we.doesNotExistError},mknod(T,D,V,$){return we.createNode(T,D,V,$)},rename(T,D,V){var $;try{$=d.lookupNode(D,V)}catch{}if($){if(d.isDir(T.mode))for(var fe in $.contents)throw new d.ErrnoError(55);d.hashRemoveNode($)}delete T.parent.contents[T.name],D.contents[V]=T,T.name=V,D.ctime=D.mtime=T.parent.ctime=T.parent.mtime=Date.now()},unlink(T,D){delete T.contents[D],T.ctime=T.mtime=Date.now()},rmdir(T,D){var V=d.lookupNode(T,D);for(var $ in V.contents)throw new d.ErrnoError(55);delete T.contents[D],T.ctime=T.mtime=Date.now()},readdir(T){return[".","..",...Object.keys(T.contents)]},symlink(T,D,V){var $=we.createNode(T,D,41471,0);return $.link=V,$},readlink(T){if(!d.isLink(T.mode))throw new d.ErrnoError(28);return T.link}},stream_ops:{read(T,D,V,$,fe){var Ee=T.node.contents;if(fe>=T.node.usedBytes)return 0;var Ue=Math.min(T.node.usedBytes-fe,$);if(Ue>8&&Ee.subarray)D.set(Ee.subarray(fe,fe+Ue),V);else for(var b=0;b<Ue;b++)D[V+b]=Ee[fe+b];return Ue},write(T,D,V,$,fe,Ee){if(D.buffer===Q.buffer&&(Ee=!1),!$)return 0;var Ue=T.node;if(Ue.mtime=Ue.ctime=Date.now(),D.subarray&&(!Ue.contents||Ue.contents.subarray)){if(Ee)return Ue.contents=D.subarray(V,V+$),Ue.usedBytes=$,$;if(Ue.usedBytes===0&&fe===0)return Ue.contents=D.slice(V,V+$),Ue.usedBytes=$,$;if(fe+$<=Ue.usedBytes)return Ue.contents.set(D.subarray(V,V+$),fe),$}if(we.expandFileStorage(Ue,fe+$),Ue.contents.subarray&&D.subarray)Ue.contents.set(D.subarray(V,V+$),fe);else for(var b=0;b<$;b++)Ue.contents[fe+b]=D[V+b];return Ue.usedBytes=Math.max(Ue.usedBytes,fe+$),$},llseek(T,D,V){var $=D;if(V===1?$+=T.position:V===2&&d.isFile(T.node.mode)&&($+=T.node.usedBytes),$<0)throw new d.ErrnoError(28);return $},mmap(T,D,V,$,fe){if(!d.isFile(T.node.mode))throw new d.ErrnoError(43);var Ee,Ue,b=T.node.contents;if(!(fe&2)&&b&&b.buffer===Q.buffer)Ue=!1,Ee=b.byteOffset;else{if(Ue=!0,Ee=at(D),!Ee)throw new d.ErrnoError(48);b&&((V>0||V+D<b.length)&&(b.subarray?b=b.subarray(V,V+D):b=Array.prototype.slice.call(b,V,V+D)),Q.set(b,Ee))}return{ptr:Ee,allocated:Ue}},msync(T,D,V,$,fe){return we.stream_ops.write(T,D,0,$,V,!1),0}}},Rt=async T=>{var D=await x(T);return new Uint8Array(D)};Rt.isAsync=!0;var ft=(...T)=>d.createDataFile(...T),Yt=[],$t=(T,D,V,$)=>{typeof Browser<"u"&&Browser.init();var fe=!1;return Yt.forEach(Ee=>{fe||Ee.canHandle(D)&&(Ee.handle(T,D,V,$),fe=!0)}),fe},Wn=(T,D,V,$,fe,Ee,Ue,b,R,z)=>{var Y=D?le.resolve(ne.join2(T,D)):T,se=`cp ${Y}`;function ye(xe){function Ce(ot){z?.(),b||ft(T,D,ot,$,fe,R),Ee?.(),zt(se)}$t(xe,Y,Ce,()=>{Ue?.(),zt(se)})||Ce(xe)}jt(se),typeof V=="string"?Rt(V).then(ye,Ue):ye(V)},Un=T=>{var D={r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},V=D[T];if(typeof V>"u")throw new Error(`Unknown file open mode: ${T}`);return V},Ti=(T,D)=>{var V=0;return T&&(V|=365),D&&(V|=146),V},d={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,filesystems:null,syncFSRequests:0,readFiles:{},ErrnoError:class{name="ErrnoError";constructor(T){this.errno=T}},FSStream:class{shared={};get object(){return this.node}set object(T){this.node=T}get isRead(){return(this.flags&2097155)!==1}get isWrite(){return(this.flags&2097155)!==0}get isAppend(){return this.flags&1024}get flags(){return this.shared.flags}set flags(T){this.shared.flags=T}get position(){return this.shared.position}set position(T){this.shared.position=T}},FSNode:class{node_ops={};stream_ops={};readMode=365;writeMode=146;mounted=null;constructor(T,D,V,$){T||(T=this),this.parent=T,this.mount=T.mount,this.id=d.nextInode++,this.name=D,this.mode=V,this.rdev=$,this.atime=this.mtime=this.ctime=Date.now()}get read(){return(this.mode&this.readMode)===this.readMode}set read(T){T?this.mode|=this.readMode:this.mode&=~this.readMode}get write(){return(this.mode&this.writeMode)===this.writeMode}set write(T){T?this.mode|=this.writeMode:this.mode&=~this.writeMode}get isFolder(){return d.isDir(this.mode)}get isDevice(){return d.isChrdev(this.mode)}},lookupPath(T,D={}){if(!T)throw new d.ErrnoError(44);D.follow_mount??=!0,ne.isAbs(T)||(T=d.cwd()+"/"+T);e:for(var V=0;V<40;V++){for(var $=T.split("/").filter(z=>!!z),fe=d.root,Ee="/",Ue=0;Ue<$.length;Ue++){var b=Ue===$.length-1;if(b&&D.parent)break;if($[Ue]!=="."){if($[Ue]===".."){if(Ee=ne.dirname(Ee),d.isRoot(fe)){T=Ee+"/"+$.slice(Ue+1).join("/");continue e}else fe=fe.parent;continue}Ee=ne.join2(Ee,$[Ue]);try{fe=d.lookupNode(fe,$[Ue])}catch(z){if(z?.errno===44&&b&&D.noent_okay)return{path:Ee};throw z}if(d.isMountpoint(fe)&&(!b||D.follow_mount)&&(fe=fe.mounted.root),d.isLink(fe.mode)&&(!b||D.follow)){if(!fe.node_ops.readlink)throw new d.ErrnoError(52);var R=fe.node_ops.readlink(fe);ne.isAbs(R)||(R=ne.dirname(Ee)+"/"+R),T=R+"/"+$.slice(Ue+1).join("/");continue e}}}return{path:Ee,node:fe}}throw new d.ErrnoError(32)},getPath(T){for(var D;;){if(d.isRoot(T)){var V=T.mount.mountpoint;return D?V[V.length-1]!=="/"?`${V}/${D}`:V+D:V}D=D?`${T.name}/${D}`:T.name,T=T.parent}},hashName(T,D){for(var V=0,$=0;$<D.length;$++)V=(V<<5)-V+D.charCodeAt($)|0;return(T+V>>>0)%d.nameTable.length},hashAddNode(T){var D=d.hashName(T.parent.id,T.name);T.name_next=d.nameTable[D],d.nameTable[D]=T},hashRemoveNode(T){var D=d.hashName(T.parent.id,T.name);if(d.nameTable[D]===T)d.nameTable[D]=T.name_next;else for(var V=d.nameTable[D];V;){if(V.name_next===T){V.name_next=T.name_next;break}V=V.name_next}},lookupNode(T,D){var V=d.mayLookup(T);if(V)throw new d.ErrnoError(V);for(var $=d.hashName(T.id,D),fe=d.nameTable[$];fe;fe=fe.name_next){var Ee=fe.name;if(fe.parent.id===T.id&&Ee===D)return fe}return d.lookup(T,D)},createNode(T,D,V,$){var fe=new d.FSNode(T,D,V,$);return d.hashAddNode(fe),fe},destroyNode(T){d.hashRemoveNode(T)},isRoot(T){return T===T.parent},isMountpoint(T){return!!T.mounted},isFile(T){return(T&61440)===32768},isDir(T){return(T&61440)===16384},isLink(T){return(T&61440)===40960},isChrdev(T){return(T&61440)===8192},isBlkdev(T){return(T&61440)===24576},isFIFO(T){return(T&61440)===4096},isSocket(T){return(T&49152)===49152},flagsToPermissionString(T){var D=["r","w","rw"][T&3];return T&512&&(D+="w"),D},nodePermissions(T,D){return d.ignorePermissions?0:D.includes("r")&&!(T.mode&292)||D.includes("w")&&!(T.mode&146)||D.includes("x")&&!(T.mode&73)?2:0},mayLookup(T){if(!d.isDir(T.mode))return 54;var D=d.nodePermissions(T,"x");return D||(T.node_ops.lookup?0:2)},mayCreate(T,D){if(!d.isDir(T.mode))return 54;try{var V=d.lookupNode(T,D);return 20}catch{}return d.nodePermissions(T,"wx")},mayDelete(T,D,V){var $;try{$=d.lookupNode(T,D)}catch(Ee){return Ee.errno}var fe=d.nodePermissions(T,"wx");if(fe)return fe;if(V){if(!d.isDir($.mode))return 54;if(d.isRoot($)||d.getPath($)===d.cwd())return 10}else if(d.isDir($.mode))return 31;return 0},mayOpen(T,D){return T?d.isLink(T.mode)?32:d.isDir(T.mode)&&(d.flagsToPermissionString(D)!=="r"||D&576)?31:d.nodePermissions(T,d.flagsToPermissionString(D)):44},checkOpExists(T,D){if(!T)throw new d.ErrnoError(D);return T},MAX_OPEN_FDS:4096,nextfd(){for(var T=0;T<=d.MAX_OPEN_FDS;T++)if(!d.streams[T])return T;throw new d.ErrnoError(33)},getStreamChecked(T){var D=d.getStream(T);if(!D)throw new d.ErrnoError(8);return D},getStream:T=>d.streams[T],createStream(T,D=-1){return T=Object.assign(new d.FSStream,T),D==-1&&(D=d.nextfd()),T.fd=D,d.streams[D]=T,T},closeStream(T){d.streams[T]=null},dupStream(T,D=-1){var V=d.createStream(T,D);return V.stream_ops?.dup?.(V),V},doSetAttr(T,D,V){var $=T?.stream_ops.setattr,fe=$?T:D;$??=D.node_ops.setattr,d.checkOpExists($,63),$(fe,V)},chrdev_stream_ops:{open(T){var D=d.getDevice(T.node.rdev);T.stream_ops=D.stream_ops,T.stream_ops.open?.(T)},llseek(){throw new d.ErrnoError(70)}},major:T=>T>>8,minor:T=>T&255,makedev:(T,D)=>T<<8|D,registerDevice(T,D){d.devices[T]={stream_ops:D}},getDevice:T=>d.devices[T],getMounts(T){for(var D=[],V=[T];V.length;){var $=V.pop();D.push($),V.push(...$.mounts)}return D},syncfs(T,D){typeof T=="function"&&(D=T,T=!1),d.syncFSRequests++,d.syncFSRequests>1&&M(`warning: ${d.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`);var V=d.getMounts(d.root.mount),$=0;function fe(Ue){return d.syncFSRequests--,D(Ue)}function Ee(Ue){if(Ue)return Ee.errored?void 0:(Ee.errored=!0,fe(Ue));++$>=V.length&&fe(null)}V.forEach(Ue=>{if(!Ue.type.syncfs)return Ee(null);Ue.type.syncfs(Ue,T,Ee)})},mount(T,D,V){var $=V==="/",fe=!V,Ee;if($&&d.root)throw new d.ErrnoError(10);if(!$&&!fe){var Ue=d.lookupPath(V,{follow_mount:!1});if(V=Ue.path,Ee=Ue.node,d.isMountpoint(Ee))throw new d.ErrnoError(10);if(!d.isDir(Ee.mode))throw new d.ErrnoError(54)}var b={type:T,opts:D,mountpoint:V,mounts:[]},R=T.mount(b);return R.mount=b,b.root=R,$?d.root=R:Ee&&(Ee.mounted=b,Ee.mount&&Ee.mount.mounts.push(b)),R},unmount(T){var D=d.lookupPath(T,{follow_mount:!1});if(!d.isMountpoint(D.node))throw new d.ErrnoError(28);var V=D.node,$=V.mounted,fe=d.getMounts($);Object.keys(d.nameTable).forEach(Ue=>{for(var b=d.nameTable[Ue];b;){var R=b.name_next;fe.includes(b.mount)&&d.destroyNode(b),b=R}}),V.mounted=null;var Ee=V.mount.mounts.indexOf($);V.mount.mounts.splice(Ee,1)},lookup(T,D){return T.node_ops.lookup(T,D)},mknod(T,D,V){var $=d.lookupPath(T,{parent:!0}),fe=$.node,Ee=ne.basename(T);if(!Ee)throw new d.ErrnoError(28);if(Ee==="."||Ee==="..")throw new d.ErrnoError(20);var Ue=d.mayCreate(fe,Ee);if(Ue)throw new d.ErrnoError(Ue);if(!fe.node_ops.mknod)throw new d.ErrnoError(63);return fe.node_ops.mknod(fe,Ee,D,V)},statfs(T){return d.statfsNode(d.lookupPath(T,{follow:!0}).node)},statfsStream(T){return d.statfsNode(T.node)},statfsNode(T){var D={bsize:4096,frsize:4096,blocks:1e6,bfree:5e5,bavail:5e5,files:d.nextInode,ffree:d.nextInode-1,fsid:42,flags:2,namelen:255};return T.node_ops.statfs&&Object.assign(D,T.node_ops.statfs(T.mount.opts.root)),D},create(T,D=438){return D&=4095,D|=32768,d.mknod(T,D,0)},mkdir(T,D=511){return D&=1023,D|=16384,d.mknod(T,D,0)},mkdirTree(T,D){var V=T.split("/"),$="";for(var fe of V)if(fe){($||ne.isAbs(T))&&($+="/"),$+=fe;try{d.mkdir($,D)}catch(Ee){if(Ee.errno!=20)throw Ee}}},mkdev(T,D,V){return typeof V>"u"&&(V=D,D=438),D|=8192,d.mknod(T,D,V)},symlink(T,D){if(!le.resolve(T))throw new d.ErrnoError(44);var V=d.lookupPath(D,{parent:!0}),$=V.node;if(!$)throw new d.ErrnoError(44);var fe=ne.basename(D),Ee=d.mayCreate($,fe);if(Ee)throw new d.ErrnoError(Ee);if(!$.node_ops.symlink)throw new d.ErrnoError(63);return $.node_ops.symlink($,fe,T)},rename(T,D){var V=ne.dirname(T),$=ne.dirname(D),fe=ne.basename(T),Ee=ne.basename(D),Ue,b,R;if(Ue=d.lookupPath(T,{parent:!0}),b=Ue.node,Ue=d.lookupPath(D,{parent:!0}),R=Ue.node,!b||!R)throw new d.ErrnoError(44);if(b.mount!==R.mount)throw new d.ErrnoError(75);var z=d.lookupNode(b,fe),Y=le.relative(T,$);if(Y.charAt(0)!==".")throw new d.ErrnoError(28);if(Y=le.relative(D,V),Y.charAt(0)!==".")throw new d.ErrnoError(55);var se;try{se=d.lookupNode(R,Ee)}catch{}if(z!==se){var ye=d.isDir(z.mode),xe=d.mayDelete(b,fe,ye);if(xe)throw new d.ErrnoError(xe);if(xe=se?d.mayDelete(R,Ee,ye):d.mayCreate(R,Ee),xe)throw new d.ErrnoError(xe);if(!b.node_ops.rename)throw new d.ErrnoError(63);if(d.isMountpoint(z)||se&&d.isMountpoint(se))throw new d.ErrnoError(10);if(R!==b&&(xe=d.nodePermissions(b,"w"),xe))throw new d.ErrnoError(xe);d.hashRemoveNode(z);try{b.node_ops.rename(z,R,Ee),z.parent=R}catch(Ce){throw Ce}finally{d.hashAddNode(z)}}},rmdir(T){var D=d.lookupPath(T,{parent:!0}),V=D.node,$=ne.basename(T),fe=d.lookupNode(V,$),Ee=d.mayDelete(V,$,!0);if(Ee)throw new d.ErrnoError(Ee);if(!V.node_ops.rmdir)throw new d.ErrnoError(63);if(d.isMountpoint(fe))throw new d.ErrnoError(10);V.node_ops.rmdir(V,$),d.destroyNode(fe)},readdir(T){var D=d.lookupPath(T,{follow:!0}),V=D.node,$=d.checkOpExists(V.node_ops.readdir,54);return $(V)},unlink(T){var D=d.lookupPath(T,{parent:!0}),V=D.node;if(!V)throw new d.ErrnoError(44);var $=ne.basename(T),fe=d.lookupNode(V,$),Ee=d.mayDelete(V,$,!1);if(Ee)throw new d.ErrnoError(Ee);if(!V.node_ops.unlink)throw new d.ErrnoError(63);if(d.isMountpoint(fe))throw new d.ErrnoError(10);V.node_ops.unlink(V,$),d.destroyNode(fe)},readlink(T){var D=d.lookupPath(T),V=D.node;if(!V)throw new d.ErrnoError(44);if(!V.node_ops.readlink)throw new d.ErrnoError(28);return V.node_ops.readlink(V)},stat(T,D){var V=d.lookupPath(T,{follow:!D}),$=V.node,fe=d.checkOpExists($.node_ops.getattr,63);return fe($)},fstat(T){var D=d.getStreamChecked(T),V=D.node,$=D.stream_ops.getattr,fe=$?D:V;return $??=V.node_ops.getattr,d.checkOpExists($,63),$(fe)},lstat(T){return d.stat(T,!0)},doChmod(T,D,V,$){d.doSetAttr(T,D,{mode:V&4095|D.mode&-4096,ctime:Date.now(),dontFollow:$})},chmod(T,D,V){var $;if(typeof T=="string"){var fe=d.lookupPath(T,{follow:!V});$=fe.node}else $=T;d.doChmod(null,$,D,V)},lchmod(T,D){d.chmod(T,D,!0)},fchmod(T,D){var V=d.getStreamChecked(T);d.doChmod(V,V.node,D,!1)},doChown(T,D,V){d.doSetAttr(T,D,{timestamp:Date.now(),dontFollow:V})},chown(T,D,V,$){var fe;if(typeof T=="string"){var Ee=d.lookupPath(T,{follow:!$});fe=Ee.node}else fe=T;d.doChown(null,fe,$)},lchown(T,D,V){d.chown(T,D,V,!0)},fchown(T,D,V){var $=d.getStreamChecked(T);d.doChown($,$.node,!1)},doTruncate(T,D,V){if(d.isDir(D.mode))throw new d.ErrnoError(31);if(!d.isFile(D.mode))throw new d.ErrnoError(28);var $=d.nodePermissions(D,"w");if($)throw new d.ErrnoError($);d.doSetAttr(T,D,{size:V,timestamp:Date.now()})},truncate(T,D){if(D<0)throw new d.ErrnoError(28);var V;if(typeof T=="string"){var $=d.lookupPath(T,{follow:!0});V=$.node}else V=T;d.doTruncate(null,V,D)},ftruncate(T,D){var V=d.getStreamChecked(T);if(D<0||(V.flags&2097155)===0)throw new d.ErrnoError(28);d.doTruncate(V,V.node,D)},utime(T,D,V){var $=d.lookupPath(T,{follow:!0}),fe=$.node,Ee=d.checkOpExists(fe.node_ops.setattr,63);Ee(fe,{atime:D,mtime:V})},open(T,D,V=438){if(T==="")throw new d.ErrnoError(44);D=typeof D=="string"?Un(D):D,D&64?V=V&4095|32768:V=0;var $,fe;if(typeof T=="object")$=T;else{fe=T.endsWith("/");var Ee=d.lookupPath(T,{follow:!(D&131072),noent_okay:!0});$=Ee.node,T=Ee.path}var Ue=!1;if(D&64)if($){if(D&128)throw new d.ErrnoError(20)}else{if(fe)throw new d.ErrnoError(31);$=d.mknod(T,V|511,0),Ue=!0}if(!$)throw new d.ErrnoError(44);if(d.isChrdev($.mode)&&(D&=-513),D&65536&&!d.isDir($.mode))throw new d.ErrnoError(54);if(!Ue){var b=d.mayOpen($,D);if(b)throw new d.ErrnoError(b)}D&512&&!Ue&&d.truncate($,0),D&=-131713;var R=d.createStream({node:$,path:d.getPath($),flags:D,seekable:!0,position:0,stream_ops:$.stream_ops,ungotten:[],error:!1});return R.stream_ops.open&&R.stream_ops.open(R),Ue&&d.chmod($,V&511),t.logReadFiles&&!(D&1)&&(T in d.readFiles||(d.readFiles[T]=1)),R},close(T){if(d.isClosed(T))throw new d.ErrnoError(8);T.getdents&&(T.getdents=null);try{T.stream_ops.close&&T.stream_ops.close(T)}catch(D){throw D}finally{d.closeStream(T.fd)}T.fd=null},isClosed(T){return T.fd===null},llseek(T,D,V){if(d.isClosed(T))throw new d.ErrnoError(8);if(!T.seekable||!T.stream_ops.llseek)throw new d.ErrnoError(70);if(V!=0&&V!=1&&V!=2)throw new d.ErrnoError(28);return T.position=T.stream_ops.llseek(T,D,V),T.ungotten=[],T.position},read(T,D,V,$,fe){if($<0||fe<0)throw new d.ErrnoError(28);if(d.isClosed(T))throw new d.ErrnoError(8);if((T.flags&2097155)===1)throw new d.ErrnoError(8);if(d.isDir(T.node.mode))throw new d.ErrnoError(31);if(!T.stream_ops.read)throw new d.ErrnoError(28);var Ee=typeof fe<"u";if(!Ee)fe=T.position;else if(!T.seekable)throw new d.ErrnoError(70);var Ue=T.stream_ops.read(T,D,V,$,fe);return Ee||(T.position+=Ue),Ue},write(T,D,V,$,fe,Ee){if($<0||fe<0)throw new d.ErrnoError(28);if(d.isClosed(T))throw new d.ErrnoError(8);if((T.flags&2097155)===0)throw new d.ErrnoError(8);if(d.isDir(T.node.mode))throw new d.ErrnoError(31);if(!T.stream_ops.write)throw new d.ErrnoError(28);T.seekable&&T.flags&1024&&d.llseek(T,0,2);var Ue=typeof fe<"u";if(!Ue)fe=T.position;else if(!T.seekable)throw new d.ErrnoError(70);var b=T.stream_ops.write(T,D,V,$,fe,Ee);return Ue||(T.position+=b),b},mmap(T,D,V,$,fe){if(($&2)!==0&&(fe&2)===0&&(T.flags&2097155)!==2)throw new d.ErrnoError(2);if((T.flags&2097155)===1)throw new d.ErrnoError(2);if(!T.stream_ops.mmap)throw new d.ErrnoError(43);if(!D)throw new d.ErrnoError(28);return T.stream_ops.mmap(T,D,V,$,fe)},msync(T,D,V,$,fe){return T.stream_ops.msync?T.stream_ops.msync(T,D,V,$,fe):0},ioctl(T,D,V){if(!T.stream_ops.ioctl)throw new d.ErrnoError(59);return T.stream_ops.ioctl(T,D,V)},readFile(T,D={}){if(D.flags=D.flags||0,D.encoding=D.encoding||"binary",D.encoding!=="utf8"&&D.encoding!=="binary")throw new Error(`Invalid encoding type "${D.encoding}"`);var V,$=d.open(T,D.flags),fe=d.stat(T),Ee=fe.size,Ue=new Uint8Array(Ee);return d.read($,Ue,0,Ee,0),D.encoding==="utf8"?V=be(Ue):D.encoding==="binary"&&(V=Ue),d.close($),V},writeFile(T,D,V={}){V.flags=V.flags||577;var $=d.open(T,V.flags,V.mode);if(typeof D=="string"){var fe=new Uint8Array(Oe(D)+1),Ee=je(D,fe,0,fe.length);d.write($,fe,0,Ee,void 0,V.canOwn)}else if(ArrayBuffer.isView(D))d.write($,D,0,D.byteLength,void 0,V.canOwn);else throw new Error("Unsupported data type");d.close($)},cwd:()=>d.currentPath,chdir(T){var D=d.lookupPath(T,{follow:!0});if(D.node===null)throw new d.ErrnoError(44);if(!d.isDir(D.node.mode))throw new d.ErrnoError(54);var V=d.nodePermissions(D.node,"x");if(V)throw new d.ErrnoError(V);d.currentPath=D.path},createDefaultDirectories(){d.mkdir("/tmp"),d.mkdir("/home"),d.mkdir("/home/web_user")},createDefaultDevices(){d.mkdir("/dev"),d.registerDevice(d.makedev(1,3),{read:()=>0,write:($,fe,Ee,Ue,b)=>Ue,llseek:()=>0}),d.mkdev("/dev/null",d.makedev(1,3)),ht.register(d.makedev(5,0),ht.default_tty_ops),ht.register(d.makedev(6,0),ht.default_tty1_ops),d.mkdev("/dev/tty",d.makedev(5,0)),d.mkdev("/dev/tty1",d.makedev(6,0));var T=new Uint8Array(1024),D=0,V=()=>(D===0&&(ie(T),D=T.byteLength),T[--D]);d.createDevice("/dev","random",V),d.createDevice("/dev","urandom",V),d.mkdir("/dev/shm"),d.mkdir("/dev/shm/tmp")},createSpecialDirectories(){d.mkdir("/proc");var T=d.mkdir("/proc/self");d.mkdir("/proc/self/fd"),d.mount({mount(){var D=d.createNode(T,"fd",16895,73);return D.stream_ops={llseek:we.stream_ops.llseek},D.node_ops={lookup(V,$){var fe=+$,Ee=d.getStreamChecked(fe),Ue={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>Ee.path},id:fe+1};return Ue.parent=Ue,Ue},readdir(){return Array.from(d.streams.entries()).filter(([V,$])=>$).map(([V,$])=>V.toString())}},D}},{},"/proc/self/fd")},createStandardStreams(T,D,V){T?d.createDevice("/dev","stdin",T):d.symlink("/dev/tty","/dev/stdin"),D?d.createDevice("/dev","stdout",null,D):d.symlink("/dev/tty","/dev/stdout"),V?d.createDevice("/dev","stderr",null,V):d.symlink("/dev/tty1","/dev/stderr");var $=d.open("/dev/stdin",0),fe=d.open("/dev/stdout",1),Ee=d.open("/dev/stderr",1)},staticInit(){d.nameTable=new Array(4096),d.mount(we,{},"/"),d.createDefaultDirectories(),d.createDefaultDevices(),d.createSpecialDirectories(),d.filesystems={MEMFS:we}},init(T,D,V){d.initialized=!0,T??=t.stdin,D??=t.stdout,V??=t.stderr,d.createStandardStreams(T,D,V)},quit(){d.initialized=!1;for(var T of d.streams)T&&d.close(T)},findObject(T,D){var V=d.analyzePath(T,D);return V.exists?V.object:null},analyzePath(T,D){try{var V=d.lookupPath(T,{follow:!D});T=V.path}catch{}var $={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var V=d.lookupPath(T,{parent:!0});$.parentExists=!0,$.parentPath=V.path,$.parentObject=V.node,$.name=ne.basename(T),V=d.lookupPath(T,{follow:!D}),$.exists=!0,$.path=V.path,$.object=V.node,$.name=V.node.name,$.isRoot=V.path==="/"}catch(fe){$.error=fe.errno}return $},createPath(T,D,V,$){T=typeof T=="string"?T:d.getPath(T);for(var fe=D.split("/").reverse();fe.length;){var Ee=fe.pop();if(Ee){var Ue=ne.join2(T,Ee);try{d.mkdir(Ue)}catch(b){if(b.errno!=20)throw b}T=Ue}}return Ue},createFile(T,D,V,$,fe){var Ee=ne.join2(typeof T=="string"?T:d.getPath(T),D),Ue=Ti($,fe);return d.create(Ee,Ue)},createDataFile(T,D,V,$,fe,Ee){var Ue=D;T&&(T=typeof T=="string"?T:d.getPath(T),Ue=D?ne.join2(T,D):T);var b=Ti($,fe),R=d.create(Ue,b);if(V){if(typeof V=="string"){for(var z=new Array(V.length),Y=0,se=V.length;Y<se;++Y)z[Y]=V.charCodeAt(Y);V=z}d.chmod(R,b|146);var ye=d.open(R,577);d.write(ye,V,0,V.length,0,Ee),d.close(ye),d.chmod(R,b)}},createDevice(T,D,V,$){var fe=ne.join2(typeof T=="string"?T:d.getPath(T),D),Ee=Ti(!!V,!!$);d.createDevice.major??=64;var Ue=d.makedev(d.createDevice.major++,0);return d.registerDevice(Ue,{open(b){b.seekable=!1},close(b){$?.buffer?.length&&$(10)},read(b,R,z,Y,se){for(var ye=0,xe=0;xe<Y;xe++){var Ce;try{Ce=V()}catch{throw new d.ErrnoError(29)}if(Ce===void 0&&ye===0)throw new d.ErrnoError(6);if(Ce==null)break;ye++,R[z+xe]=Ce}return ye&&(b.node.atime=Date.now()),ye},write(b,R,z,Y,se){for(var ye=0;ye<Y;ye++)try{$(R[z+ye])}catch{throw new d.ErrnoError(29)}return Y&&(b.node.mtime=b.node.ctime=Date.now()),ye}}),d.mkdev(fe,Ee,Ue)},forceLoadFile(T){if(T.isDevice||T.isFolder||T.link||T.contents)return!0;if(typeof XMLHttpRequest<"u")throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.");try{T.contents=S(T.url),T.usedBytes=T.contents.length}catch{throw new d.ErrnoError(29)}},createLazyFile(T,D,V,$,fe){class Ee{lengthKnown=!1;chunks=[];get(xe){if(!(xe>this.length-1||xe<0)){var Ce=xe%this.chunkSize,ot=xe/this.chunkSize|0;return this.getter(ot)[Ce]}}setDataGetter(xe){this.getter=xe}cacheLength(){var xe=new XMLHttpRequest;if(xe.open("HEAD",V,!1),xe.send(null),!(xe.status>=200&&xe.status<300||xe.status===304))throw new Error("Couldn't load "+V+". Status: "+xe.status);var Ce=Number(xe.getResponseHeader("Content-length")),ot,xt=(ot=xe.getResponseHeader("Accept-Ranges"))&&ot==="bytes",tn=(ot=xe.getResponseHeader("Content-Encoding"))&&ot==="gzip",vn=1024*1024;xt||(vn=Ce);var mn=(dn,Ai)=>{if(dn>Ai)throw new Error("invalid range ("+dn+", "+Ai+") or no bytes requested!");if(Ai>Ce-1)throw new Error("only "+Ce+" bytes available! programmer error!");var Rn=new XMLHttpRequest;if(Rn.open("GET",V,!1),Ce!==vn&&Rn.setRequestHeader("Range","bytes="+dn+"-"+Ai),Rn.responseType="arraybuffer",Rn.overrideMimeType&&Rn.overrideMimeType("text/plain; charset=x-user-defined"),Rn.send(null),!(Rn.status>=200&&Rn.status<300||Rn.status===304))throw new Error("Couldn't load "+V+". Status: "+Rn.status);return Rn.response!==void 0?new Uint8Array(Rn.response||[]):Ct(Rn.responseText||"",!0)},on=this;on.setDataGetter(dn=>{var Ai=dn*vn,Rn=(dn+1)*vn-1;if(Rn=Math.min(Rn,Ce-1),typeof on.chunks[dn]>"u"&&(on.chunks[dn]=mn(Ai,Rn)),typeof on.chunks[dn]>"u")throw new Error("doXHR failed!");return on.chunks[dn]}),(tn||!Ce)&&(vn=Ce=1,Ce=this.getter(0).length,vn=Ce,v("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=Ce,this._chunkSize=vn,this.lengthKnown=!0}get length(){return this.lengthKnown||this.cacheLength(),this._length}get chunkSize(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}if(typeof XMLHttpRequest<"u"){if(!l)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var Ue=new Ee,b={isDevice:!1,contents:Ue}}else var b={isDevice:!1,url:V};var R=d.createFile(T,D,b,$,fe);b.contents?R.contents=b.contents:b.url&&(R.contents=null,R.url=b.url),Object.defineProperties(R,{usedBytes:{get:function(){return this.contents.length}}});var z={},Y=Object.keys(R.stream_ops);Y.forEach(ye=>{var xe=R.stream_ops[ye];z[ye]=(...Ce)=>(d.forceLoadFile(R),xe(...Ce))});function se(ye,xe,Ce,ot,xt){var tn=ye.node.contents;if(xt>=tn.length)return 0;var vn=Math.min(tn.length-xt,ot);if(tn.slice)for(var mn=0;mn<vn;mn++)xe[Ce+mn]=tn[xt+mn];else for(var mn=0;mn<vn;mn++)xe[Ce+mn]=tn.get(xt+mn);return vn}return z.read=(ye,xe,Ce,ot,xt)=>(d.forceLoadFile(R),se(ye,xe,Ce,ot,xt)),z.mmap=(ye,xe,Ce,ot,xt)=>{d.forceLoadFile(R);var tn=at(xe);if(!tn)throw new d.ErrnoError(48);return se(ye,Q,tn,xe,Ce),{ptr:tn,allocated:!0}},R.stream_ops=z,R}},Ke={DEFAULT_POLLMASK:5,calculateAt(T,D,V){if(ne.isAbs(D))return D;var $;if(T===-100)$=d.cwd();else{var fe=Ke.getStreamFromFD(T);$=fe.path}if(D.length==0){if(!V)throw new d.ErrnoError(44);return $}return $+"/"+D},writeStat(T,D){j[T>>2]=D.dev,j[T+4>>2]=D.mode,he[T+8>>2]=D.nlink,j[T+12>>2]=D.uid,j[T+16>>2]=D.gid,j[T+20>>2]=D.rdev,Pe=[D.size>>>0,(_e=D.size,+Math.abs(_e)>=1?_e>0?+Math.floor(_e/4294967296)>>>0:~~+Math.ceil((_e-+(~~_e>>>0))/4294967296)>>>0:0)],j[T+24>>2]=Pe[0],j[T+28>>2]=Pe[1],j[T+32>>2]=4096,j[T+36>>2]=D.blocks;var V=D.atime.getTime(),$=D.mtime.getTime(),fe=D.ctime.getTime();return Pe=[Math.floor(V/1e3)>>>0,(_e=Math.floor(V/1e3),+Math.abs(_e)>=1?_e>0?+Math.floor(_e/4294967296)>>>0:~~+Math.ceil((_e-+(~~_e>>>0))/4294967296)>>>0:0)],j[T+40>>2]=Pe[0],j[T+44>>2]=Pe[1],he[T+48>>2]=V%1e3*1e3*1e3,Pe=[Math.floor($/1e3)>>>0,(_e=Math.floor($/1e3),+Math.abs(_e)>=1?_e>0?+Math.floor(_e/4294967296)>>>0:~~+Math.ceil((_e-+(~~_e>>>0))/4294967296)>>>0:0)],j[T+56>>2]=Pe[0],j[T+60>>2]=Pe[1],he[T+64>>2]=$%1e3*1e3*1e3,Pe=[Math.floor(fe/1e3)>>>0,(_e=Math.floor(fe/1e3),+Math.abs(_e)>=1?_e>0?+Math.floor(_e/4294967296)>>>0:~~+Math.ceil((_e-+(~~_e>>>0))/4294967296)>>>0:0)],j[T+72>>2]=Pe[0],j[T+76>>2]=Pe[1],he[T+80>>2]=fe%1e3*1e3*1e3,Pe=[D.ino>>>0,(_e=D.ino,+Math.abs(_e)>=1?_e>0?+Math.floor(_e/4294967296)>>>0:~~+Math.ceil((_e-+(~~_e>>>0))/4294967296)>>>0:0)],j[T+88>>2]=Pe[0],j[T+92>>2]=Pe[1],0},writeStatFs(T,D){j[T+4>>2]=D.bsize,j[T+40>>2]=D.bsize,j[T+8>>2]=D.blocks,j[T+12>>2]=D.bfree,j[T+16>>2]=D.bavail,j[T+20>>2]=D.files,j[T+24>>2]=D.ffree,j[T+28>>2]=D.fsid,j[T+44>>2]=D.flags,j[T+36>>2]=D.namelen},doMsync(T,D,V,$,fe){if(!d.isFile(D.node.mode))throw new d.ErrnoError(43);if($&2)return 0;var Ee=H.slice(T,T+V);d.msync(D,Ee,fe,V,$)},getStreamFromFD(T){var D=d.getStreamChecked(T);return D},varargs:void 0,getStr(T){var D=U(T);return D}};function ul(T,D){try{return T=Ke.getStr(T),d.chmod(T,D),0}catch(V){if(typeof d>"u"||V.name!=="ErrnoError")throw V;return-V.errno}}function us(T,D,V,$){try{if(D=Ke.getStr(D),D=Ke.calculateAt(T,D),V&-8)return-28;var fe=d.lookupPath(D,{follow:!0}),Ee=fe.node;if(!Ee)return-44;var Ue="";return V&4&&(Ue+="r"),V&2&&(Ue+="w"),V&1&&(Ue+="x"),Ue&&d.nodePermissions(Ee,Ue)?-2:0}catch(b){if(typeof d>"u"||b.name!=="ErrnoError")throw b;return-b.errno}}function Fr(T,D){try{return d.fchmod(T,D),0}catch(V){if(typeof d>"u"||V.name!=="ErrnoError")throw V;return-V.errno}}function Ps(T,D,V){try{return d.fchown(T,D,V),0}catch($){if(typeof d>"u"||$.name!=="ErrnoError")throw $;return-$.errno}}var er=()=>{var T=j[+Ke.varargs>>2];return Ke.varargs+=4,T},cs=er;function Pr(T,D,V){Ke.varargs=V;try{var $=Ke.getStreamFromFD(T);switch(D){case 0:{var fe=er();if(fe<0)return-28;for(;d.streams[fe];)fe++;var Ee;return Ee=d.dupStream($,fe),Ee.fd}case 1:case 2:return 0;case 3:return $.flags;case 4:{var fe=er();return $.flags|=fe,0}case 12:{var fe=cs(),Ue=0;return Z[fe+Ue>>1]=2,0}case 13:case 14:return 0}return-28}catch(b){if(typeof d>"u"||b.name!=="ErrnoError")throw b;return-b.errno}}function fs(T,D){try{return Ke.writeStat(D,d.fstat(T))}catch(V){if(typeof d>"u"||V.name!=="ErrnoError")throw V;return-V.errno}}var hi=(T,D)=>D+2097152>>>0<4194305-!!T?(T>>>0)+D*4294967296:NaN;function yo(T,D,V){var $=hi(D,V);try{return isNaN($)?-61:(d.ftruncate(T,$),0)}catch(fe){if(typeof d>"u"||fe.name!=="ErrnoError")throw fe;return-fe.errno}}var wn=(T,D,V)=>je(T,H,D,V);function Us(T,D){try{if(D===0)return-28;var V=d.cwd(),$=Oe(V)+1;return D<$?-68:(wn(V,T,D),$)}catch(fe){if(typeof d>"u"||fe.name!=="ErrnoError")throw fe;return-fe.errno}}function Xa(T,D){try{return T=Ke.getStr(T),Ke.writeStat(D,d.lstat(T))}catch(V){if(typeof d>"u"||V.name!=="ErrnoError")throw V;return-V.errno}}function $r(T,D,V){try{return D=Ke.getStr(D),D=Ke.calculateAt(T,D),d.mkdir(D,V,0),0}catch($){if(typeof d>"u"||$.name!=="ErrnoError")throw $;return-$.errno}}function Jr(T,D,V,$){try{D=Ke.getStr(D);var fe=$&256,Ee=$&4096;return $=$&-6401,D=Ke.calculateAt(T,D,Ee),Ke.writeStat(V,fe?d.lstat(D):d.stat(D))}catch(Ue){if(typeof d>"u"||Ue.name!=="ErrnoError")throw Ue;return-Ue.errno}}function ds(T,D,V,$){Ke.varargs=$;try{D=Ke.getStr(D),D=Ke.calculateAt(T,D);var fe=$?er():0;return d.open(D,V,fe).fd}catch(Ee){if(typeof d>"u"||Ee.name!=="ErrnoError")throw Ee;return-Ee.errno}}function bo(T,D,V,$){try{if(D=Ke.getStr(D),D=Ke.calculateAt(T,D),$<=0)return-28;var fe=d.readlink(D),Ee=Math.min($,Oe(fe)),Ue=Q[V+Ee];return wn(fe,V,$+1),Q[V+Ee]=Ue,Ee}catch(b){if(typeof d>"u"||b.name!=="ErrnoError")throw b;return-b.errno}}function hs(T){try{return T=Ke.getStr(T),d.rmdir(T),0}catch(D){if(typeof d>"u"||D.name!=="ErrnoError")throw D;return-D.errno}}function ps(T,D){try{return T=Ke.getStr(T),Ke.writeStat(D,d.stat(T))}catch(V){if(typeof d>"u"||V.name!=="ErrnoError")throw V;return-V.errno}}function So(T,D,V){try{if(D=Ke.getStr(D),D=Ke.calculateAt(T,D),!V)d.unlink(D);else if(V===512)d.rmdir(D);else return-28;return 0}catch($){if(typeof d>"u"||$.name!=="ErrnoError")throw $;return-$.errno}}var ae=T=>he[T>>2]+j[T+4>>2]*4294967296;function Fe(T,D,V,$){try{D=Ke.getStr(D),D=Ke.calculateAt(T,D,!0);var fe=Date.now(),Ee,Ue;if(!V)Ee=fe,Ue=fe;else{var b=ae(V),R=j[V+8>>2];R==1073741823?Ee=fe:R==1073741822?Ee=null:Ee=b*1e3+R/1e6,V+=16,b=ae(V),R=j[V+8>>2],R==1073741823?Ue=fe:R==1073741822?Ue=null:Ue=b*1e3+R/1e6}return(Ue??Ee)!==null&&d.utime(D,Ee,Ue),0}catch(z){if(typeof d>"u"||z.name!=="ErrnoError")throw z;return-z.errno}}var Ye=()=>Mt(""),Be=0,He=()=>{fn=!1,Be=0},It=T=>T%4===0&&(T%100!==0||T%400===0),Bt=[0,31,60,91,121,152,182,213,244,274,305,335],wt=[0,31,59,90,120,151,181,212,243,273,304,334],Nt=T=>{var D=It(T.getFullYear()),V=D?Bt:wt,$=V[T.getMonth()]+T.getDate()-1;return $};function Kt(T,D,V){var $=hi(T,D),fe=new Date($*1e3);j[V>>2]=fe.getSeconds(),j[V+4>>2]=fe.getMinutes(),j[V+8>>2]=fe.getHours(),j[V+12>>2]=fe.getDate(),j[V+16>>2]=fe.getMonth(),j[V+20>>2]=fe.getFullYear()-1900,j[V+24>>2]=fe.getDay();var Ee=Nt(fe)|0;j[V+28>>2]=Ee,j[V+36>>2]=-(fe.getTimezoneOffset()*60);var Ue=new Date(fe.getFullYear(),0,1),b=new Date(fe.getFullYear(),6,1).getTimezoneOffset(),R=Ue.getTimezoneOffset(),z=(b!=R&&fe.getTimezoneOffset()==Math.min(R,b))|0;j[V+32>>2]=z}function yn(T,D,V,$,fe,Ee,Ue,b){var R=hi(fe,Ee);try{var z=Ke.getStreamFromFD($),Y=d.mmap(z,T,R,D,V),se=Y.ptr;return j[Ue>>2]=Y.allocated,he[b>>2]=se,0}catch(ye){if(typeof d>"u"||ye.name!=="ErrnoError")throw ye;return-ye.errno}}function Sn(T,D,V,$,fe,Ee,Ue){var b=hi(Ee,Ue);try{var R=Ke.getStreamFromFD(fe);V&2&&Ke.doMsync(T,R,D,$,b)}catch(z){if(typeof d>"u"||z.name!=="ErrnoError")throw z;return-z.errno}}var _t={},En=T=>{if(T instanceof dt||T=="unwind")return G;h(1,T)},ri=()=>fn||Be>0,Hn=T=>{G=T,ri()||(t.onExit?.(T),q=!0),h(T,new dt(T))},On=(T,D)=>{G=T,Hn(T)},Xi=On,Pt=()=>{if(!ri())try{Xi(G)}catch(T){En(T)}},Oi=T=>{if(!q)try{T(),Pt()}catch(D){En(D)}},xn=()=>performance.now(),ai=(T,D)=>{if(_t[T]&&(clearTimeout(_t[T].id),delete _t[T]),!D)return 0;var V=setTimeout(()=>{delete _t[T],Oi(()=>em(T,xn()))},D);return _t[T]={id:V,timeout_ms:D},0},Vn=(T,D,V,$)=>{var fe=new Date().getFullYear(),Ee=new Date(fe,0,1),Ue=new Date(fe,6,1),b=Ee.getTimezoneOffset(),R=Ue.getTimezoneOffset(),z=Math.max(b,R);he[T>>2]=z*60,j[D>>2]=+(b!=R);var Y=xe=>{var Ce=xe>=0?"-":"+",ot=Math.abs(xe),xt=String(Math.floor(ot/60)).padStart(2,"0"),tn=String(ot%60).padStart(2,"0");return`UTC${Ce}${xt}${tn}`},se=Y(b),ye=Y(R);R<b?(wn(se,V,17),wn(ye,$,17)):(wn(se,$,17),wn(ye,V,17))},wr=()=>Date.now(),Ur=()=>2147483648,zn=T=>{var D=k.buffer,V=(T-D.byteLength+65535)/65536|0;try{return k.grow(V),Ne(),1}catch{}},vi=T=>{var D=H.length;T>>>=0;var V=Ur();if(T>V)return!1;for(var $=1;$<=4;$*=2){var fe=D*(1+.2/$);fe=Math.min(fe,T+100663296);var Ee=Math.min(V,bt(Math.max(T,fe),65536)),Ue=zn(Ee);if(Ue)return!0}return!1},pi={},jn=()=>p||"./this.program",si=()=>{if(!si.strings){var T=(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",D={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:T,_:jn()};for(var V in pi)pi[V]===void 0?delete D[V]:D[V]=pi[V];var $=[];for(var V in D)$.push(`${V}=${D[V]}`);si.strings=$}return si.strings},da=(T,D)=>{var V=0,$=0;for(var fe of si()){var Ee=D+V;he[T+$>>2]=Ee,V+=wn(fe,Ee,1/0)+1,$+=4}return 0},Eo=(T,D)=>{var V=si();he[T>>2]=V.length;var $=0;for(var fe of V)$+=Oe(fe)+1;return he[D>>2]=$,0};function Vu(T){try{var D=Ke.getStreamFromFD(T);return d.close(D),0}catch(V){if(typeof d>"u"||V.name!=="ErrnoError")throw V;return V.errno}}function Gu(T,D){try{var V=0,$=0,fe=0,Ee=Ke.getStreamFromFD(T),Ue=Ee.tty?2:d.isDir(Ee.mode)?3:d.isLink(Ee.mode)?7:4;return Q[D]=Ue,Z[D+2>>1]=fe,Pe=[V>>>0,(_e=V,+Math.abs(_e)>=1?_e>0?+Math.floor(_e/4294967296)>>>0:~~+Math.ceil((_e-+(~~_e>>>0))/4294967296)>>>0:0)],j[D+8>>2]=Pe[0],j[D+12>>2]=Pe[1],Pe=[$>>>0,(_e=$,+Math.abs(_e)>=1?_e>0?+Math.floor(_e/4294967296)>>>0:~~+Math.ceil((_e-+(~~_e>>>0))/4294967296)>>>0:0)],j[D+16>>2]=Pe[0],j[D+20>>2]=Pe[1],0}catch(b){if(typeof d>"u"||b.name!=="ErrnoError")throw b;return b.errno}}var Wu=(T,D,V,$)=>{for(var fe=0,Ee=0;Ee<V;Ee++){var Ue=he[D>>2],b=he[D+4>>2];D+=8;var R=d.read(T,Q,Ue,b,$);if(R<0)return-1;if(fe+=R,R<b)break;typeof $<"u"&&($+=R)}return fe};function ju(T,D,V,$){try{var fe=Ke.getStreamFromFD(T),Ee=Wu(fe,D,V);return he[$>>2]=Ee,0}catch(Ue){if(typeof d>"u"||Ue.name!=="ErrnoError")throw Ue;return Ue.errno}}function Qu(T,D,V,$,fe){var Ee=hi(D,V);try{if(isNaN(Ee))return 61;var Ue=Ke.getStreamFromFD(T);return d.llseek(Ue,Ee,$),Pe=[Ue.position>>>0,(_e=Ue.position,+Math.abs(_e)>=1?_e>0?+Math.floor(_e/4294967296)>>>0:~~+Math.ceil((_e-+(~~_e>>>0))/4294967296)>>>0:0)],j[fe>>2]=Pe[0],j[fe+4>>2]=Pe[1],Ue.getdents&&Ee===0&&$===0&&(Ue.getdents=null),0}catch(b){if(typeof d>"u"||b.name!=="ErrnoError")throw b;return b.errno}}var wo=function(T){try{var D=Ke.getStreamFromFD(T);return Zt.handleSleep(V=>{var $=D.node.mount;if(!$.type.syncfs){V(0);return}$.type.syncfs($,!1,fe=>{V(fe?29:0)})})}catch(V){if(typeof d>"u"||V.name!=="ErrnoError")throw V;return V.errno}};wo.isAsync=!0;var Xu=(T,D,V,$)=>{for(var fe=0,Ee=0;Ee<V;Ee++){var Ue=he[D>>2],b=he[D+4>>2];D+=8;var R=d.write(T,Q,Ue,b,$);if(R<0)return-1;if(fe+=R,R<b)break;typeof $<"u"&&($+=R)}return fe};function $c(T,D,V,$){try{var fe=Ke.getStreamFromFD(T),Ee=Xu(fe,D,V);return he[$>>2]=Ee,0}catch(Ue){if(typeof d>"u"||Ue.name!=="ErrnoError")throw Ue;return Ue.errno}}var it=function(){let T=typeof Zt=="object"?Zt.handleAsync.bind(Zt):null;t.handleAsync=T;let D=new Map;t.setCallback=(V,$)=>D.set(V,$),t.getCallback=V=>D.get(V),t.deleteCallback=V=>D.delete(V),it=function(V,$,...fe){let Ee=D.get($),Ue=null,b=typeof Ee=="function"?Ee:Ee[Ue=U(fe.shift())];if(V){if(T)return T(()=>b.apply(Ee,fe));throw new Error("Synchronous WebAssembly cannot call async function")}let R=b.apply(Ee,fe);if(typeof R?.then=="function")throw console.error("unexpected Promise",b),new Error(`${Ue} unexpectedly returned a Promise`);return R}};function Yu(...T){return it(!1,...T)}function cl(...T){return it(!0,...T)}cl.isAsync=!0;function tu(...T){return it(!1,...T)}function fl(...T){return it(!0,...T)}fl.isAsync=!0;function Ku(...T){return it(!1,...T)}function dl(...T){return it(!0,...T)}dl.isAsync=!0;function Zu(...T){return it(!1,...T)}function hl(...T){return it(!0,...T)}hl.isAsync=!0;function Jc(...T){return it(!1,...T)}function pl(...T){return it(!0,...T)}pl.isAsync=!0;function zs(...T){return it(!1,...T)}function ml(...T){return it(!0,...T)}ml.isAsync=!0;function _l(...T){return it(!1,...T)}function qs(...T){return it(!0,...T)}qs.isAsync=!0;function $u(...T){return it(!1,...T)}function xo(...T){return it(!0,...T)}xo.isAsync=!0;function ef(...T){return it(!1,...T)}function gl(...T){return it(!0,...T)}gl.isAsync=!0;function Ju(...T){return it(!1,...T)}function vl(...T){return it(!0,...T)}vl.isAsync=!0;function ec(...T){return it(!1,...T)}function yl(...T){return it(!0,...T)}yl.isAsync=!0;function nu(...T){return it(!1,...T)}function bl(...T){return it(!0,...T)}bl.isAsync=!0;function tc(...T){return it(!1,...T)}function To(...T){return it(!0,...T)}To.isAsync=!0;function nc(...T){return it(!1,...T)}function iu(...T){return it(!0,...T)}iu.isAsync=!0;function ru(...T){return it(!1,...T)}function Sl(...T){return it(!0,...T)}Sl.isAsync=!0;function au(...T){return it(!1,...T)}function su(...T){return it(!0,...T)}su.isAsync=!0;var Bs=T=>{try{return T()}catch(D){Mt(D)}},Mo=T=>{for(var D={i:"i32",j:"i64",f:"f32",d:"f64",e:"externref",p:"i32"},V={parameters:[],results:T[0]=="v"?[]:[D[T[0]]]},$=1;$<T.length;++$)V.parameters.push(D[T[$]]);return V},ic=()=>{Be+=1},Ao=()=>{Be-=1},Zt={instrumentWasmImports(T){var D=/^(ipp|ipp_async|ippp|ippp_async|vppp|vppp_async|ipppj|ipppj_async|ipppi|ipppi_async|ipppp|ipppp_async|ipppip|ipppip_async|vpppip|vpppip_async|ippppi|ippppi_async|ippppij|ippppij_async|ipppiii|ipppiii_async|ippppip|ippppip_async|ippipppp|ippipppp_async|ipppppip|ipppppip_async|ipppiiip|ipppiiip_async|vppippii|vppippii_async|invoke_.*|__asyncjs__.*)$/;for(let[V,$]of Object.entries(T))if(typeof $=="function"){let fe=$.isAsync||D.test(V)}},instrumentWasmExports(T){var D={};for(let[V,$]of Object.entries(T))typeof $=="function"?D[V]=(...fe)=>{Zt.exportCallStack.push(V);try{return $(...fe)}finally{if(!q){var Ee=Zt.exportCallStack.pop();Zt.maybeStopUnwind()}}}:D[V]=$;return D},State:{Normal:0,Unwinding:1,Rewinding:2,Disabled:3},state:0,StackSize:16384,currData:null,handleSleepReturnValue:0,exportCallStack:[],callStackNameToId:{},callStackIdToName:{},callStackId:0,asyncPromiseHandlers:null,sleepCallbacks:[],getCallStackId(T){var D=Zt.callStackNameToId[T];return D===void 0&&(D=Zt.callStackId++,Zt.callStackNameToId[T]=D,Zt.callStackIdToName[D]=T),D},maybeStopUnwind(){Zt.currData&&Zt.state===Zt.State.Unwinding&&Zt.exportCallStack.length===0&&(Zt.state=Zt.State.Normal,Bs(Qn),typeof Fibers<"u"&&Fibers.trampoline())},whenDone(){return new Promise((T,D)=>{Zt.asyncPromiseHandlers={resolve:T,reject:D}})},allocateData(){var T=Zp(12+Zt.StackSize);return Zt.setDataHeader(T,T+12,Zt.StackSize),Zt.setDataRewindFunc(T),T},setDataHeader(T,D,V){he[T>>2]=D,he[T+4>>2]=D+V},setDataRewindFunc(T){var D=Zt.exportCallStack[0],V=Zt.getCallStackId(D);j[T+8>>2]=V},getDataRewindFuncName(T){var D=j[T+8>>2],V=Zt.callStackIdToName[D];return V},getDataRewindFunc(T){var D=ce[T];return D},doRewind(T){var D=Zt.getDataRewindFuncName(T),V=Zt.getDataRewindFunc(D);return V()},handleSleep(T){if(!q){if(Zt.state===Zt.State.Normal){var D=!1,V=!1;T(($=0)=>{if(!q&&(Zt.handleSleepReturnValue=$,D=!0,!!V)){Zt.state=Zt.State.Rewinding,Bs(()=>ea(Zt.currData)),typeof MainLoop<"u"&&MainLoop.func&&MainLoop.resume();var fe,Ee=!1;try{fe=Zt.doRewind(Zt.currData)}catch(R){fe=R,Ee=!0}var Ue=!1;if(!Zt.currData){var b=Zt.asyncPromiseHandlers;b&&(Zt.asyncPromiseHandlers=null,(Ee?b.reject:b.resolve)(fe),Ue=!0)}if(Ee&&!Ue)throw fe}}),V=!0,D||(Zt.state=Zt.State.Unwinding,Zt.currData=Zt.allocateData(),typeof MainLoop<"u"&&MainLoop.func&&MainLoop.pause(),Bs(()=>Kn(Zt.currData)))}else Zt.state===Zt.State.Rewinding?(Zt.state=Zt.State.Normal,Bs(La),sv(Zt.currData),Zt.currData=null,Zt.sleepCallbacks.forEach(Oi)):Mt(`invalid state: ${Zt.state}`);return Zt.handleSleepReturnValue}},handleAsync:T=>Zt.handleSleep(D=>{T().then(D)})},Xt=(T,D)=>{T<128?D.push(T):D.push(T%128|128,T>>7)},ou=(T,D)=>{var V=T.slice(0,1),$=T.slice(1),fe={i:127,p:127,j:126,f:125,d:124,e:111};D.push(96),Xt($.length,D);for(var Ee of $)D.push(fe[Ee]);V=="v"?D.push(0):D.push(1,fe[V])},ms=(T,D)=>{if(typeof WebAssembly.Function=="function")return new WebAssembly.Function(Mo(D),T);var V=[1];ou(D,V);var $=[0,97,115,109,1,0,0,0,1];Xt(V.length,$),$.push(...V),$.push(2,7,1,1,101,1,102,0,0,7,5,1,1,102,0,0);var fe=new WebAssembly.Module(new Uint8Array($)),Ee=new WebAssembly.Instance(fe,{e:{f:T}}),Ue=Ee.exports.f;return Ue},xr,Ya=T=>xr.get(T),lu=(T,D)=>{if(Tr)for(var V=T;V<T+D;V++){var $=Ya(V);$&&Tr.set($,V)}},Tr,ha=T=>(Tr||(Tr=new WeakMap,lu(0,xr.length)),Tr.get(T)||0),El=[],Hs=()=>{if(El.length)return El.pop();try{xr.grow(1)}catch(T){throw T instanceof RangeError?"Unable to grow wasm table. Set ALLOW_TABLE_GROWTH.":T}return xr.length-1},Co=(T,D)=>xr.set(T,D),wl=(T,D)=>{var V=ha(T);if(V)return V;var $=Hs();try{Co($,T)}catch(Ee){if(!(Ee instanceof TypeError))throw Ee;var fe=ms(T,D);Co($,fe)}return Tr.set(T,$),$},Ta=T=>{var D=t["_"+T];return D},oi=(T,D)=>{Q.set(T,D)},Ro=T=>Ld(T),xl=T=>{var D=Oe(T)+1,V=Ro(D);return wn(T,V,D),V},Ma=(T,D,V,$,fe)=>{var Ee={string:xt=>{var tn=0;return xt!=null&&xt!==0&&(tn=xl(xt)),tn},array:xt=>{var tn=Ro(xt.length);return oi(xt,tn),tn}};function Ue(xt){return D==="string"?U(xt):D==="boolean"?!!xt:xt}var b=Ta(T),R=[],z=0;if($)for(var Y=0;Y<$.length;Y++){var se=Ee[V[Y]];se?(z===0&&(z=L()),R[Y]=se($[Y])):R[Y]=$[Y]}var ye=Zt.currData,xe=b(...R);function Ce(xt){return Ao(),z!==0&&ge(z),Ue(xt)}var ot=fe?.async;return ic(),Zt.currData!=ye?Zt.whenDone().then(Ce):(xe=Ce(xe),ot?Promise.resolve(xe):xe)},Aa=(T,D,V,$)=>{var fe=!V||V.every(Ue=>Ue==="number"||Ue==="boolean"),Ee=D!=="string";return Ee&&fe&&!$?Ta(T):(...Ue)=>Ma(T,D,V,Ue,$)},Vs=T=>cv(),uu=(T,D,V)=>{if(V??=2147483647,V<2)return 0;V-=2;for(var $=D,fe=V<T.length*2?V/2:T.length,Ee=0;Ee<fe;++Ee){var Ue=T.charCodeAt(Ee);Z[D>>1]=Ue,D+=2}return Z[D>>1]=0,D-$},Tl=(T,D,V)=>{if(V??=2147483647,V<4)return 0;for(var $=D,fe=$+V-4,Ee=0;Ee<T.length;++Ee){var Ue=T.charCodeAt(Ee);if(Ue>=55296&&Ue<=57343){var b=T.charCodeAt(++Ee);Ue=65536+((Ue&1023)<<10)|b&1023}if(j[D>>2]=Ue,D+=4,D+4>fe)break}return j[D>>2]=0,D-$},rc=T=>{for(var D="";;){var V=H[T++];if(!V)return D;D+=String.fromCharCode(V)}},tf=new TextDecoder("utf-16le"),Gs=(T,D)=>{for(var V=T>>1,$=V+D/2,fe=V;!(fe>=$)&&te[fe];)++fe;return tf.decode(te.subarray(V,fe))},me=(T,D)=>{for(var V=0,$="";!(V>=D/4);){var fe=j[T+V*4>>2];if(fe==0)break;if(++V,fe>=65536){var Ee=fe-65536;$+=String.fromCharCode(55296|Ee>>10,56320|Ee&1023)}else $+=String.fromCharCode(fe)}return $},pe=T=>{for(var D=[],V=0;V<T.length;V++){var $=T[V];$>255&&($&=255),D.push(String.fromCharCode($))}return D.join("")},cd=Vs;d.createPreloadedFile=Wn,d.staticInit(),we.doesNotExistError=new d.ErrnoError(44),we.doesNotExistError.stack="<generic error, no stack>",it(),t.noExitRuntime&&(fn=t.noExitRuntime),t.preloadPlugins&&(Yt=t.preloadPlugins),t.print&&(v=t.print),t.printErr&&(M=t.printErr),t.wasmBinary&&(O=t.wasmBinary),t.arguments&&(f=t.arguments),t.thisProgram&&(p=t.thisProgram),t.getTempRet0=Vs,t.ccall=Ma,t.cwrap=Aa,t.addFunction=wl,t.setValue=kt,t.getValue=Le,t.UTF8ToString=U,t.stringToUTF8=wn,t.lengthBytesUTF8=Oe,t.intArrayFromString=Ct,t.intArrayToString=pe,t.AsciiToString=rc,t.UTF16ToString=Gs,t.stringToUTF16=uu,t.UTF32ToString=me,t.stringToUTF32=Tl,t.writeArrayToMemory=oi,t._getTempRet0=cd;var fd={a:ee,aa:ul,da:us,ba:Fr,$:Ps,b:Pr,_:fs,y:yo,U:Us,Y:Xa,R:$r,X:Jr,P:ds,N:bo,M:hs,Z:ps,K:So,J:Fe,F:Ye,E:He,w:Kt,u:yn,v:Sn,G:ai,Q:Vn,n:wr,g:xn,H:vi,S:da,T:Eo,o:Vu,I:Gu,O:ju,x:Qu,V:wo,L:$c,s:Yu,t:cl,ka:tu,oa:fl,j:Ku,k:dl,c:Zu,d:hl,ga:Jc,ha:pl,ia:zs,ja:ml,h:_l,i:qs,z:$u,A:xo,e:ef,f:gl,ea:Ju,fa:vl,B:ec,C:yl,p:nu,q:bl,la:tc,ma:To,D:Hn,na:nc,r:iu,l:ru,m:Sl,W:au,ca:su},ce=await lt(),ue=ce.qa,G_=t._powersync_init_static=ce.ra,np=t._memcpy=ce.sa,dd=t._memset=ce.ta,hd=t._memcmp=ce.ua,yb=t._sqlite3_status64=ce.va,W_=t._sqlite3_status=ce.wa,j_=t._sqlite3_msize=ce.xa,pd=t._sqlite3_db_status=ce.ya,ip=t._sqlite3_vfs_find=ce.za,rp=t._sqlite3_vfs_register=ce.Aa,Q_=t._sqlite3_vfs_unregister=ce.Ba,Io=t._sqlite3_release_memory=ce.Ca,ap=t._sqlite3_soft_heap_limit64=ce.Da,bb=t._sqlite3_memory_used=ce.Ea,X_=t._sqlite3_hard_heap_limit64=ce.Fa,_s=t._sqlite3_memory_highwater=ce.Ga,md=t._sqlite3_malloc=ce.Ha,Y_=t._sqlite3_malloc64=ce.Ia,sp=t._sqlite3_free=ce.Ja,K_=t._sqlite3_realloc=ce.Ka,Z_=t._sqlite3_realloc64=ce.La,op=t._sqlite3_str_vappendf=ce.Ma,lp=t._sqlite3_str_append=ce.Na,$_=t._sqlite3_str_appendchar=ce.Oa,_d=t._sqlite3_str_appendall=ce.Pa,nf=t._sqlite3_str_appendf=ce.Qa,Mi=t._sqlite3_str_finish=ce.Ra,Sb=t._sqlite3_str_errcode=ce.Sa,Eb=t._sqlite3_str_length=ce.Ta,J_=t._sqlite3_str_value=ce.Ua,rf=t._sqlite3_str_reset=ce.Va,Ml=t._sqlite3_str_new=ce.Wa,eg=t._sqlite3_vmprintf=ce.Xa,tg=t._sqlite3_mprintf=ce.Ya,Ws=t._sqlite3_vsnprintf=ce.Za,Mr=t._sqlite3_snprintf=ce._a,ng=t._sqlite3_log=ce.$a,af=t._sqlite3_randomness=ce.ab,ig=t._sqlite3_stricmp=ce.bb,sf=t._sqlite3_strnicmp=ce.cb,up=t._sqlite3_os_init=ce.db,cp=t._sqlite3_os_end=ce.eb,fp=t._sqlite3_serialize=ce.fb,dp=t._sqlite3_prepare_v2=ce.gb,rg=t._sqlite3_step=ce.hb,hp=t._sqlite3_column_int64=ce.ib,pp=t._sqlite3_reset=ce.jb,gd=t._sqlite3_exec=ce.kb,mp=t._sqlite3_column_int=ce.lb,ag=t._sqlite3_finalize=ce.mb,sg=t._sqlite3_deserialize=ce.nb,og=t._sqlite3_database_file_object=ce.ob,lg=t._sqlite3_backup_init=ce.pb,ac=t._sqlite3_backup_step=ce.qb,ug=t._sqlite3_backup_finish=ce.rb,js=t._sqlite3_backup_remaining=ce.sb,vd=t._sqlite3_backup_pagecount=ce.tb,_p=t._sqlite3_clear_bindings=ce.ub,gp=t._sqlite3_value_blob=ce.vb,vp=t._sqlite3_value_text=ce.wb,cg=t._sqlite3_value_bytes=ce.xb,yp=t._sqlite3_value_bytes16=ce.yb,yd=t._sqlite3_value_double=ce.zb,fg=t._sqlite3_value_int=ce.Ab,bp=t._sqlite3_value_int64=ce.Bb,dg=t._sqlite3_value_subtype=ce.Cb,wb=t._sqlite3_value_pointer=ce.Db,bd=t._sqlite3_value_text16=ce.Eb,hg=t._sqlite3_value_text16be=ce.Fb,Sp=t._sqlite3_value_text16le=ce.Gb,pg=t._sqlite3_value_type=ce.Hb,Ep=t._sqlite3_value_encoding=ce.Ib,mg=t._sqlite3_value_nochange=ce.Jb,Ca=t._sqlite3_value_frombind=ce.Kb,wp=t._sqlite3_value_dup=ce.Lb,_g=t._sqlite3_value_free=ce.Mb,gg=t._sqlite3_result_blob=ce.Nb,xb=t._sqlite3_result_blob64=ce.Ob,Sd=t._sqlite3_result_double=ce.Pb,Ar=t._sqlite3_result_error=ce.Qb,vg=t._sqlite3_result_error16=ce.Rb,zr=t._sqlite3_result_int=ce.Sb,yg=t._sqlite3_result_int64=ce.Tb,sc=t._sqlite3_result_null=ce.Ub,bg=t._sqlite3_result_pointer=ce.Vb,Qs=t._sqlite3_result_subtype=ce.Wb,Al=t._sqlite3_result_text=ce.Xb,gs=t._sqlite3_result_text64=ce.Yb,xp=t._sqlite3_result_text16=ce.Zb,Tp=t._sqlite3_result_text16be=ce._b,Ka=t._sqlite3_result_text16le=ce.$b,Sg=t._sqlite3_result_value=ce.ac,oc=t._sqlite3_result_error_toobig=ce.bc,of=t._sqlite3_result_zeroblob=ce.cc,Cl=t._sqlite3_result_zeroblob64=ce.dc,Eg=t._sqlite3_result_error_code=ce.ec,wg=t._sqlite3_result_error_nomem=ce.fc,lf=t._sqlite3_user_data=ce.gc,xg=t._sqlite3_context_db_handle=ce.hc,Ed=t._sqlite3_vtab_nochange=ce.ic,Tg=t._sqlite3_vtab_in_first=ce.jc,Mp=t._sqlite3_vtab_in_next=ce.kc,Ap=t._sqlite3_aggregate_context=ce.lc,Cp=t._sqlite3_get_auxdata=ce.mc,Mg=t._sqlite3_set_auxdata=ce.nc,Rp=t._sqlite3_column_count=ce.oc,Ra=t._sqlite3_data_count=ce.pc,Ag=t._sqlite3_column_blob=ce.qc,lc=t._sqlite3_column_bytes=ce.rc,pa=t._sqlite3_column_bytes16=ce.sc,Cg=t._sqlite3_column_double=ce.tc,Rg=t._sqlite3_column_text=ce.uc,Tb=t._sqlite3_column_value=ce.vc,Rl=t._sqlite3_column_text16=ce.wc,Ig=t._sqlite3_column_type=ce.xc,Ip=t._sqlite3_column_name=ce.yc,uc=t._sqlite3_column_name16=ce.zc,Lg=t._sqlite3_bind_blob=ce.Ac,Ng=t._sqlite3_bind_blob64=ce.Bc,kg=t._sqlite3_bind_double=ce.Cc,Og=t._sqlite3_bind_int=ce.Dc,wd=t._sqlite3_bind_int64=ce.Ec,Lp=t._sqlite3_bind_null=ce.Fc,Mb=t._sqlite3_bind_pointer=ce.Gc,Ab=t._sqlite3_bind_text=ce.Hc,Cb=t._sqlite3_bind_text64=ce.Ic,Dg=t._sqlite3_bind_text16=ce.Jc,Fg=t._sqlite3_bind_value=ce.Kc,cc=t._sqlite3_bind_zeroblob=ce.Lc,xd=t._sqlite3_bind_zeroblob64=ce.Mc,Pg=t._sqlite3_bind_parameter_count=ce.Nc,Ug=t._sqlite3_bind_parameter_name=ce.Oc,Rb=t._sqlite3_bind_parameter_index=ce.Pc,Ib=t._sqlite3_db_handle=ce.Qc,Lb=t._sqlite3_stmt_readonly=ce.Rc,Np=t._sqlite3_stmt_isexplain=ce.Sc,kp=t._sqlite3_stmt_explain=ce.Tc,Op=t._sqlite3_stmt_busy=ce.Uc,zg=t._sqlite3_next_stmt=ce.Vc,uf=t._sqlite3_stmt_status=ce.Wc,Dp=t._sqlite3_sql=ce.Xc,qg=t._sqlite3_expanded_sql=ce.Yc,li=t._sqlite3_value_numeric_type=ce.Zc,Fp=t._sqlite3_blob_open=ce._c,Nb=t._sqlite3_blob_close=ce.$c,Bg=t._sqlite3_blob_read=ce.ad,kb=t._sqlite3_blob_write=ce.bd,Ob=t._sqlite3_blob_bytes=ce.cd,Db=t._sqlite3_blob_reopen=ce.dd,Fb=t._sqlite3_set_authorizer=ce.ed,Pp=t._sqlite3_strglob=ce.fd,Lo=t._sqlite3_strlike=ce.gd,Hg=t._sqlite3_errmsg=ce.hd,Td=t._sqlite3_load_extension=ce.id,cu=t._sqlite3_enable_load_extension=ce.jd,Up=t._sqlite3_auto_extension=ce.kd,Vg=t._sqlite3_cancel_auto_extension=ce.ld,zp=t._sqlite3_reset_auto_extension=ce.md,Pb=t._sqlite3_prepare=ce.nd,Gg=t._sqlite3_prepare_v3=ce.od,Wg=t._sqlite3_prepare16=ce.pd,jg=t._sqlite3_prepare16_v2=ce.qd,Qg=t._sqlite3_prepare16_v3=ce.rd,Xg=t._sqlite3_get_table=ce.sd,qp=t._sqlite3_free_table=ce.td,qn=t._sqlite3_create_module=ce.ud,Ub=t._sqlite3_create_module_v2=ce.vd,Ia=t._sqlite3_drop_modules=ce.wd,Bp=t._sqlite3_declare_vtab=ce.xd,zb=t._sqlite3_vtab_on_conflict=ce.yd,Md=t._sqlite3_vtab_config=ce.zd,fc=t._sqlite3_vtab_collation=ce.Ad,dc=t._sqlite3_vtab_in=ce.Bd,Yg=t._sqlite3_vtab_rhs_value=ce.Cd,Hp=t._sqlite3_vtab_distinct=ce.Dd,Kg=t._sqlite3_keyword_name=ce.Ed,No=t._sqlite3_keyword_count=ce.Fd,Vp=t._sqlite3_keyword_check=ce.Gd,Gp=t._sqlite3_complete=ce.Hd,Wp=t._sqlite3_complete16=ce.Id,jp=t._sqlite3_libversion=ce.Jd,Il=t._sqlite3_libversion_number=ce.Kd,Qp=t._sqlite3_threadsafe=ce.Ld,qb=t._sqlite3_initialize=ce.Md,Bb=t._sqlite3_shutdown=ce.Nd,Xp=t._sqlite3_config=ce.Od,Hb=t._sqlite3_db_mutex=ce.Pd,Zg=t._sqlite3_db_release_memory=ce.Qd,$g=t._sqlite3_db_cacheflush=ce.Rd,Vb=t._sqlite3_db_config=ce.Sd,Ad=t._sqlite3_last_insert_rowid=ce.Td,_n=t._sqlite3_set_last_insert_rowid=ce.Ud,Gb=t._sqlite3_changes64=ce.Vd,Wb=t._sqlite3_changes=ce.Wd,Jg=t._sqlite3_total_changes64=ce.Xd,cf=t._sqlite3_total_changes=ce.Yd,jb=t._sqlite3_txn_state=ce.Zd,Qb=t._sqlite3_close=ce._d,Xb=t._sqlite3_close_v2=ce.$d,Yb=t._sqlite3_busy_handler=ce.ae,Kb=t._sqlite3_progress_handler=ce.be,Yp=t._sqlite3_busy_timeout=ce.ce,ev=t._sqlite3_interrupt=ce.de,Cd=t._sqlite3_is_interrupted=ce.ee,tv=t._sqlite3_create_function=ce.fe,Zb=t._sqlite3_create_function_v2=ce.ge,$b=t._sqlite3_create_window_function=ce.he,fu=t._sqlite3_create_function16=ce.ie,Xs=t._sqlite3_overload_function=ce.je,Gi=t._sqlite3_trace_v2=ce.ke,Ys=t._sqlite3_commit_hook=ce.le,Cr=t._sqlite3_update_hook=ce.me,Jb=t._sqlite3_rollback_hook=ce.ne,eS=t._sqlite3_autovacuum_pages=ce.oe,hr=t._sqlite3_wal_autocheckpoint=ce.pe,ko=t._sqlite3_wal_hook=ce.qe,tS=t._sqlite3_wal_checkpoint_v2=ce.re,nS=t._sqlite3_wal_checkpoint=ce.se,iS=t._sqlite3_error_offset=ce.te,rS=t._sqlite3_errmsg16=ce.ue,aS=t._sqlite3_errcode=ce.ve,Kp=t._sqlite3_extended_errcode=ce.we,nv=t._sqlite3_system_errno=ce.xe,sS=t._sqlite3_errstr=ce.ye,iv=t._sqlite3_limit=ce.ze,oS=t._sqlite3_open=ce.Ae,lS=t._sqlite3_open_v2=ce.Be,hc=t._sqlite3_open16=ce.Ce,Oo=t._sqlite3_create_collation=ce.De,uS=t._sqlite3_create_collation_v2=ce.Ee,cS=t._sqlite3_create_collation16=ce.Fe,fS=t._sqlite3_collation_needed=ce.Ge,ff=t._sqlite3_collation_needed16=ce.He,dS=t._sqlite3_get_clientdata=ce.Ie,hS=t._sqlite3_set_clientdata=ce.Je,pS=t._sqlite3_get_autocommit=ce.Ke,df=t._sqlite3_table_column_metadata=ce.Le,mS=t._sqlite3_sleep=ce.Me,_S=t._sqlite3_extended_result_codes=ce.Ne,gS=t._sqlite3_file_control=ce.Oe,vS=t._sqlite3_test_control=ce.Pe,yS=t._sqlite3_create_filename=ce.Qe,bS=t._sqlite3_free_filename=ce.Re,SS=t._sqlite3_uri_parameter=ce.Se,ES=t._sqlite3_uri_key=ce.Te,wS=t._sqlite3_uri_boolean=ce.Ue,xS=t._sqlite3_uri_int64=ce.Ve,TS=t._sqlite3_filename_database=ce.We,MS=t._sqlite3_filename_journal=ce.Xe,rv=t._sqlite3_filename_wal=ce.Ye,AS=t._sqlite3_db_name=ce.Ze,CS=t._sqlite3_db_filename=ce._e,RS=t._sqlite3_db_readonly=ce.$e,IS=t._sqlite3_compileoption_used=ce.af,av=t._sqlite3_compileoption_get=ce.bf,LS=t._sqlite3_sourceid=ce.cf,Zp=t._malloc=ce.df,sv=t._free=ce.ef,NS=t._RegisterExtensionFunctions=ce.ff,$p=t._getSqliteFree=ce.gf,ov=t._main=ce.hf,Rd=t._libauthorizer_set_authorizer=ce.jf,kS=t._libfunction_create_function=ce.kf,Id=t._libhook_commit_hook=ce.lf,Jp=t._libhook_update_hook=ce.mf,lv=t._libprogress_progress_handler=ce.nf,uv=t._libvfs_vfs_register=ce.of,hf=ce.qf,em=ce.rf,cv=ce.sf,tm=ce.tf,Ld=ce.uf,nm=ce.vf,fv=t.dynCall_iii=ce.dynCall_iii,Nd=t.dynCall_iiii=ce.dynCall_iiii,kd=t.dynCall_viii=ce.dynCall_viii,dv=t.dynCall_vi=ce.dynCall_vi,im=t.dynCall_viiiij=ce.dynCall_viiiij,rm=t.dynCall_ii=ce.dynCall_ii,am=t.dynCall_vii=ce.dynCall_vii,sm=t.dynCall_iiiiiii=ce.dynCall_iiiiiii,om=t.dynCall_iiiiii=ce.dynCall_iiiiii,OS=t.dynCall_iiiii=ce.dynCall_iiiii,DS=t.dynCall_viiii=ce.dynCall_viiii,FS=t.dynCall_iiiiiiiii=ce.dynCall_iiiiiiiii,PS=t.dynCall_vijii=ce.dynCall_vijii,hv=t.dynCall_viiiii=ce.dynCall_viiiii,US=t.dynCall_iiiij=ce.dynCall_iiiij,zS=t.dynCall_viji=ce.dynCall_viji,qS=t.dynCall_iij=ce.dynCall_iij,BS=t.dynCall_iidiiii=ce.dynCall_iidiiii,HS=t.dynCall_v=ce.dynCall_v,pv=t.dynCall_iijii=ce.dynCall_iijii,Od=t.dynCall_iiji=ce.dynCall_iiji,mv=t.dynCall_i=ce.dynCall_i,A=t.dynCall_iiiiiij=ce.dynCall_iiiiiij,P=t.dynCall_iiid=ce.dynCall_iiid,W=t.dynCall_iiij=ce.dynCall_iiij,J=t.dynCall_dii=ce.dynCall_dii,de=t.dynCall_jii=ce.dynCall_jii,Ae=t.dynCall_ji=ce.dynCall_ji,qe=t.dynCall_vid=ce.dynCall_vid,w=t.dynCall_vij=ce.dynCall_vij,I=t.dynCall_iiiiiiiiii=ce.dynCall_iiiiiiiiii,B=t.dynCall_di=ce.dynCall_di,K=t.dynCall_iiiiijii=ce.dynCall_iiiiijii,oe=t.dynCall_j=ce.dynCall_j,Se=t.dynCall_jj=ce.dynCall_jj,Te=t.dynCall_jiij=ce.dynCall_jiij,Ie=t.dynCall_iiiiji=ce.dynCall_iiiiji,rt=t.dynCall_iiiijii=ce.dynCall_iiiijii,Ut=t.dynCall_ij=ce.dynCall_ij,ln=t.dynCall_viiji=ce.dynCall_viiji,gn=t.dynCall_viijii=ce.dynCall_viijii,hn=t.dynCall_iiiiiiiiiii=ce.dynCall_iiiiiiiiiii,un=t.dynCall_iiiijji=ce.dynCall_iiiijji,Dt=t.dynCall_iiiiiiii=ce.dynCall_iiiiiiii,Kn=ce.wf,Qn=ce.xf,ea=ce.yf,La=ce.zf,Za=t._sqlite3_version=80488;function pc(){var T=ov,D=0,V=0;try{var $=T(D,V);return On($,!0),$}catch(fe){return En(fe)}}function ta(){if(We>0){gt=ta;return}if(Ve(),We>0){gt=ta;return}function T(){if(t.calledRun=!0,!q){Je(),i(t),t.onRuntimeInitialized?.();var D=t.noInitialRun||!1;D||pc(),st()}}t.setStatus?(t.setStatus("Running..."),setTimeout(()=>{setTimeout(()=>t.setStatus(""),1),T()},1)):T()}function Ks(){if(t.preInit)for(typeof t.preInit=="function"&&(t.preInit=[t.preInit]);t.preInit.length>0;)t.preInit.shift()()}return Ks(),ta(),(function(){let T=Object.getPrototypeOf(async function(){}).constructor,D=0;t.set_authorizer=function(V,$,fe){D&&(t.deleteCallback(D),t._sqlite3_free(D),D=0),D=t._sqlite3_malloc(4),kt(D,$ instanceof T?1:0,"i32");let Ee=Ma("libauthorizer_set_authorizer","number",["number","number","number"],[V,$?1:0,D]);return!Ee&&$&&t.setCallback(D,(Ue,b,R,z,Y,se)=>$(fe,b,R,z,Y,se)),Ee}})(),(function(){let T=Object.getPrototypeOf(async function(){}).constructor,D=["xFunc","xStep","xFinal"],V=new Map;t.create_function=function($,fe,Ee,Ue,b,R,z,Y){let se=t._sqlite3_malloc(4),ye={xFunc:R,xStep:z,xFinal:Y};kt(se,D.reduce((Ce,ot,xt)=>ye[ot]instanceof T?Ce|1<<xt:Ce,0),"i32");let xe=Ma("libfunction_create_function","number",["number","string","number","number","number","number","number","number"],[$,fe,Ee,Ue,se,R?1:0,z?1:0,Y?1:0]);if(!xe){if(V.has(fe)){let Ce=V.get(fe);t.deleteCallback(Ce)}V.set(fe,se),t.setCallback(se,{xFunc:R,xStep:z,xFinal:Y})}return xe}})(),(function(){let T=Object.getPrototypeOf(async function(){}).constructor,D=0;t.update_hook=function(V,$){D&&(t.deleteCallback(D),t._sqlite3_free(D),D=0),D=t._sqlite3_malloc(4),kt(D,$ instanceof T?1:0,"i32"),Ma("libhook_update_hook","void",["number","number","number"],[V,$?1:0,D]),$&&t.setCallback(D,(fe,Ee,Ue,b,R,z)=>$(Ee,Ue,b,R,z))}})(),(function(){let T=Object.getPrototypeOf(async function(){}).constructor,D=0;t.commit_hook=function(V,$){D&&(t.deleteCallback(D),t._sqlite3_free(D),D=0),D=t._sqlite3_malloc(4),kt(D,$ instanceof T?1:0,"i32"),Ma("libhook_commit_hook","void",["number","number","number"],[V,$?1:0,D]),$&&t.setCallback(D,fe=>$())}})(),(function(){let T=Object.getPrototypeOf(async function(){}).constructor,D=0;t.progress_handler=function(V,$,fe,Ee){D&&(t.deleteCallback(D),t._sqlite3_free(D),D=0),D=t._sqlite3_malloc(4),kt(D,fe instanceof T?1:0,"i32"),Ma("libprogress_progress_handler","number",["number","number","number","number"],[V,$,fe?1:0,D]),fe&&t.setCallback(D,Ue=>fe(Ee))}})(),(function(){let T=["xOpen","xDelete","xAccess","xFullPathname","xRandomness","xSleep","xCurrentTime","xGetLastError","xCurrentTimeInt64","xClose","xRead","xWrite","xTruncate","xSync","xFileSize","xLock","xUnlock","xCheckReservedLock","xFileControl","xSectorSize","xDeviceCharacteristics","xShmMap","xShmLock","xShmBarrier","xShmUnmap"],D=new Map;t.vfs_register=function(V,$){let fe=0,Ee=0;T.forEach((b,R)=>{V[b]&&(fe|=1<<R,V.hasAsyncMethod(b)&&(Ee|=1<<R))});let Ue=t._sqlite3_malloc(4);try{let b=Ma("libvfs_vfs_register","number",["string","number","number","number","number","number"],[V.name,V.mxPathname,fe,Ee,$?1:0,Ue]);if(!b){if(D.has(V.name)){let z=D.get(V.name);t.deleteCallback(z)}let R=Le(Ue,"*");D.set(V.name,R),t.setCallback(R,V)}return b}finally{t._sqlite3_free(Ue)}}})(),e=a,e}),Mte=Tte});var WH={};pu(WH,{default:()=>Cte});var Ate,Cte,jH=Da(()=>{Ate=(async function(n={}){var e,t=n,i,r,a=new Promise((w,I)=>{i=w,r=I}),s=typeof window=="object",l=typeof WorkerGlobalScope<"u",c=typeof process=="object"&&process.versions?.node&&process.type!="renderer",f=[],p="./this.program",h=(w,I)=>{throw I},_=import.meta.url,g="";function E(w){return t.locateFile?t.locateFile(w,g):g+w}var x,S;if(s||l){try{g=new URL(".",_).href}catch{}l&&(S=w=>{var I=new XMLHttpRequest;return I.open("GET",w,!1),I.responseType="arraybuffer",I.send(null),new Uint8Array(I.response)}),x=async w=>{var I=await fetch(w,{credentials:"same-origin"});if(I.ok)return I.arrayBuffer();throw new Error(I.status+" : "+I.url)}}var v=console.log.bind(console),M=console.error.bind(console),O,k,q=!1,G,Q,H,Z,te,j,he,ke,Me,ze=!1;function Ne(){var w=k.buffer;Q=new Int8Array(w),Z=new Int16Array(w),t.HEAPU8=H=new Uint8Array(w),te=new Uint16Array(w),t.HEAP32=j=new Int32Array(w),he=new Uint32Array(w),ke=new Float32Array(w),Me=new Float64Array(w)}function Ve(){if(t.preRun)for(typeof t.preRun=="function"&&(t.preRun=[t.preRun]);t.preRun.length;)en(t.preRun.shift());vt(qt)}function Je(){ze=!0,!t.noFSInit&&!d.initialized&&d.init(),ht.init(),pe.ra(),d.ignorePermissions=!1}function Qe(){}function st(){if(t.postRun)for(typeof t.postRun=="function"&&(t.postRun=[t.postRun]);t.postRun.length;)Ht(t.postRun.shift());vt(Qt)}var We=0,gt=null;function Et(w){return w}function jt(w){We++,t.monitorRunDependencies?.(We)}function zt(w){if(We--,t.monitorRunDependencies?.(We),We==0&&gt){var I=gt;gt=null,I()}}function Mt(w){t.onAbort?.(w),w="Aborted("+w+")",M(w),q=!0,w+=". Build with -sASSERTIONS for more info.";var I=new WebAssembly.RuntimeError(w);throw r(I),I}var Xe;function et(){return t.locateFile?E("mc-wa-sqlite.wasm"):new URL("mc-wa-sqlite.wasm",import.meta.url).href}function yt(w){if(w==Xe&&O)return new Uint8Array(O);if(S)return S(w);throw"both async and sync fetching of the wasm failed"}async function Wt(w){if(!O)try{var I=await x(w);return new Uint8Array(I)}catch{}return yt(w)}async function Lt(w,I){try{var B=await Wt(w),K=await WebAssembly.instantiate(B,I);return K}catch(oe){M(`failed to asynchronously prepare wasm: ${oe}`),Mt(oe)}}async function sn(w,I,B){if(!w&&typeof WebAssembly.instantiateStreaming=="function")try{var K=fetch(I,{credentials:"same-origin"}),oe=await WebAssembly.instantiateStreaming(K,B);return oe}catch(Se){M(`wasm streaming compile failed: ${Se}`),M("falling back to ArrayBuffer instantiation")}return Lt(I,B)}function pn(){return{a:me}}async function lt(){function w(Se,Te){return pe=Se.exports,k=pe.qa,Ne(),Xt=pe.wf,zt("wasm-instantiate"),pe}jt("wasm-instantiate");function I(Se){return w(Se.instance)}var B=pn();if(t.instantiateWasm)return new Promise((Se,Te)=>{t.instantiateWasm(B,(Ie,rt)=>{Se(w(Ie,rt))})});Xe??=et();try{var K=await sn(O,Xe,B),oe=I(K);return oe}catch(Se){return r(Se),Promise.reject(Se)}}var _e,Pe;class dt{name="ExitStatus";constructor(I){this.message=`Program terminated with exit(${I})`,this.status=I}}var vt=w=>{for(;w.length>0;)w.shift()(t)},Qt=[],Ht=w=>Qt.push(w),qt=[],en=w=>qt.push(w);function Le(w,I="i8"){switch(I.endsWith("*")&&(I="*"),I){case"i1":return Q[w];case"i8":return Q[w];case"i16":return Z[w>>1];case"i32":return j[w>>2];case"i64":Mt("to do getValue(i64) use WASM_BIGINT");case"float":return ke[w>>2];case"double":return Me[w>>3];case"*":return he[w>>2];default:Mt(`invalid type for getValue: ${I}`)}}var fn=!0;function kt(w,I,B="i8"){switch(B.endsWith("*")&&(B="*"),B){case"i1":Q[w]=I;break;case"i8":Q[w]=I;break;case"i16":Z[w>>1]=I;break;case"i32":j[w>>2]=I;break;case"i64":Mt("to do setValue(i64) use WASM_BIGINT");case"float":ke[w>>2]=I;break;case"double":Me[w>>3]=I;break;case"*":he[w>>2]=I;break;default:Mt(`invalid type for setValue: ${B}`)}}var ge=w=>fv(w),L=()=>kd(),N=new TextDecoder,U=(w,I)=>{if(!w)return"";for(var B=w+I,K=w;!(K>=B)&&H[K];)++K;return N.decode(H.subarray(w,K))},ee=(w,I,B,K)=>Mt(`Assertion failed: ${U(w)}, at: `+[I?U(I):"unknown filename",B,K?U(K):"unknown function"]),ne={isAbs:w=>w.charAt(0)==="/",splitPath:w=>{var I=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return I.exec(w).slice(1)},normalizeArray:(w,I)=>{for(var B=0,K=w.length-1;K>=0;K--){var oe=w[K];oe==="."?w.splice(K,1):oe===".."?(w.splice(K,1),B++):B&&(w.splice(K,1),B--)}if(I)for(;B;B--)w.unshift("..");return w},normalize:w=>{var I=ne.isAbs(w),B=w.slice(-1)==="/";return w=ne.normalizeArray(w.split("/").filter(K=>!!K),!I).join("/"),!w&&!I&&(w="."),w&&B&&(w+="/"),(I?"/":"")+w},dirname:w=>{var I=ne.splitPath(w),B=I[0],K=I[1];return!B&&!K?".":(K&&(K=K.slice(0,-1)),B+K)},basename:w=>w&&w.match(/([^\/]+|\/)\/*$/)[1],join:(...w)=>ne.normalize(w.join("/")),join2:(w,I)=>ne.normalize(w+"/"+I)},X=()=>w=>crypto.getRandomValues(w),ie=w=>{(ie=X())(w)},le={resolve:(...w)=>{for(var I="",B=!1,K=w.length-1;K>=-1&&!B;K--){var oe=K>=0?w[K]:d.cwd();if(typeof oe!="string")throw new TypeError("Arguments to path.resolve must be strings");if(!oe)return"";I=oe+"/"+I,B=ne.isAbs(oe)}return I=ne.normalizeArray(I.split("/").filter(Se=>!!Se),!B).join("/"),(B?"/":"")+I||"."},relative:(w,I)=>{w=le.resolve(w).slice(1),I=le.resolve(I).slice(1);function B(Ut){for(var ln=0;ln<Ut.length&&Ut[ln]==="";ln++);for(var gn=Ut.length-1;gn>=0&&Ut[gn]==="";gn--);return ln>gn?[]:Ut.slice(ln,gn-ln+1)}for(var K=B(w.split("/")),oe=B(I.split("/")),Se=Math.min(K.length,oe.length),Te=Se,Ie=0;Ie<Se;Ie++)if(K[Ie]!==oe[Ie]){Te=Ie;break}for(var rt=[],Ie=Te;Ie<K.length;Ie++)rt.push("..");return rt=rt.concat(oe.slice(Te)),rt.join("/")}},be=(w,I=0,B=NaN)=>{for(var K=I+B,oe=I;w[oe]&&!(oe>=K);)++oe;return N.decode(w.buffer?w.subarray(I,oe):new Uint8Array(w.slice(I,oe)))},tt=[],Oe=w=>{for(var I=0,B=0;B<w.length;++B){var K=w.charCodeAt(B);K<=127?I++:K<=2047?I+=2:K>=55296&&K<=57343?(I+=4,++B):I+=3}return I},je=(w,I,B,K)=>{if(!(K>0))return 0;for(var oe=B,Se=B+K-1,Te=0;Te<w.length;++Te){var Ie=w.charCodeAt(Te);if(Ie>=55296&&Ie<=57343){var rt=w.charCodeAt(++Te);Ie=65536+((Ie&1023)<<10)|rt&1023}if(Ie<=127){if(B>=Se)break;I[B++]=Ie}else if(Ie<=2047){if(B+1>=Se)break;I[B++]=192|Ie>>6,I[B++]=128|Ie&63}else if(Ie<=65535){if(B+2>=Se)break;I[B++]=224|Ie>>12,I[B++]=128|Ie>>6&63,I[B++]=128|Ie&63}else{if(B+3>=Se)break;I[B++]=240|Ie>>18,I[B++]=128|Ie>>12&63,I[B++]=128|Ie>>6&63,I[B++]=128|Ie&63}}return I[B]=0,B-oe},Ct=(w,I,B)=>{var K=B>0?B:Oe(w)+1,oe=new Array(K),Se=je(w,oe,0,oe.length);return I&&(oe.length=Se),oe},nn=()=>{if(!tt.length){var w=null;if(typeof window<"u"&&typeof window.prompt=="function"&&(w=window.prompt("Input: "),w!==null&&(w+=`
`)),!w)return null;tt=Ct(w,!0)}return tt.shift()},ht={ttys:[],init(){},shutdown(){},register(w,I){ht.ttys[w]={input:[],output:[],ops:I},d.registerDevice(w,ht.stream_ops)},stream_ops:{open(w){var I=ht.ttys[w.node.rdev];if(!I)throw new d.ErrnoError(43);w.tty=I,w.seekable=!1},close(w){w.tty.ops.fsync(w.tty)},fsync(w){w.tty.ops.fsync(w.tty)},read(w,I,B,K,oe){if(!w.tty||!w.tty.ops.get_char)throw new d.ErrnoError(60);for(var Se=0,Te=0;Te<K;Te++){var Ie;try{Ie=w.tty.ops.get_char(w.tty)}catch{throw new d.ErrnoError(29)}if(Ie===void 0&&Se===0)throw new d.ErrnoError(6);if(Ie==null)break;Se++,I[B+Te]=Ie}return Se&&(w.node.atime=Date.now()),Se},write(w,I,B,K,oe){if(!w.tty||!w.tty.ops.put_char)throw new d.ErrnoError(60);try{for(var Se=0;Se<K;Se++)w.tty.ops.put_char(w.tty,I[B+Se])}catch{throw new d.ErrnoError(29)}return K&&(w.node.mtime=w.node.ctime=Date.now()),Se}},default_tty_ops:{get_char(w){return nn()},put_char(w,I){I===null||I===10?(v(be(w.output)),w.output=[]):I!=0&&w.output.push(I)},fsync(w){w.output?.length>0&&(v(be(w.output)),w.output=[])},ioctl_tcgets(w){return{c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},ioctl_tcsets(w,I,B){return 0},ioctl_tiocgwinsz(w){return[24,80]}},default_tty1_ops:{put_char(w,I){I===null||I===10?(M(be(w.output)),w.output=[]):I!=0&&w.output.push(I)},fsync(w){w.output?.length>0&&(M(be(w.output)),w.output=[])}}},De=(w,I)=>H.fill(0,w,w+I),bt=(w,I)=>Math.ceil(w/I)*I,at=w=>{w=bt(w,65536);var I=tm(65536,w);return I&&De(I,w),I},we={ops_table:null,mount(w){return we.createNode(null,"/",16895,0)},createNode(w,I,B,K){if(d.isBlkdev(B)||d.isFIFO(B))throw new d.ErrnoError(63);we.ops_table||={dir:{node:{getattr:we.node_ops.getattr,setattr:we.node_ops.setattr,lookup:we.node_ops.lookup,mknod:we.node_ops.mknod,rename:we.node_ops.rename,unlink:we.node_ops.unlink,rmdir:we.node_ops.rmdir,readdir:we.node_ops.readdir,symlink:we.node_ops.symlink},stream:{llseek:we.stream_ops.llseek}},file:{node:{getattr:we.node_ops.getattr,setattr:we.node_ops.setattr},stream:{llseek:we.stream_ops.llseek,read:we.stream_ops.read,write:we.stream_ops.write,mmap:we.stream_ops.mmap,msync:we.stream_ops.msync}},link:{node:{getattr:we.node_ops.getattr,setattr:we.node_ops.setattr,readlink:we.node_ops.readlink},stream:{}},chrdev:{node:{getattr:we.node_ops.getattr,setattr:we.node_ops.setattr},stream:d.chrdev_stream_ops}};var oe=d.createNode(w,I,B,K);return d.isDir(oe.mode)?(oe.node_ops=we.ops_table.dir.node,oe.stream_ops=we.ops_table.dir.stream,oe.contents={}):d.isFile(oe.mode)?(oe.node_ops=we.ops_table.file.node,oe.stream_ops=we.ops_table.file.stream,oe.usedBytes=0,oe.contents=null):d.isLink(oe.mode)?(oe.node_ops=we.ops_table.link.node,oe.stream_ops=we.ops_table.link.stream):d.isChrdev(oe.mode)&&(oe.node_ops=we.ops_table.chrdev.node,oe.stream_ops=we.ops_table.chrdev.stream),oe.atime=oe.mtime=oe.ctime=Date.now(),w&&(w.contents[I]=oe,w.atime=w.mtime=w.ctime=oe.atime),oe},getFileDataAsTypedArray(w){return w.contents?w.contents.subarray?w.contents.subarray(0,w.usedBytes):new Uint8Array(w.contents):new Uint8Array(0)},expandFileStorage(w,I){var B=w.contents?w.contents.length:0;if(!(B>=I)){var K=1024*1024;I=Math.max(I,B*(B<K?2:1.125)>>>0),B!=0&&(I=Math.max(I,256));var oe=w.contents;w.contents=new Uint8Array(I),w.usedBytes>0&&w.contents.set(oe.subarray(0,w.usedBytes),0)}},resizeFileStorage(w,I){if(w.usedBytes!=I)if(I==0)w.contents=null,w.usedBytes=0;else{var B=w.contents;w.contents=new Uint8Array(I),B&&w.contents.set(B.subarray(0,Math.min(I,w.usedBytes))),w.usedBytes=I}},node_ops:{getattr(w){var I={};return I.dev=d.isChrdev(w.mode)?w.id:1,I.ino=w.id,I.mode=w.mode,I.nlink=1,I.uid=0,I.gid=0,I.rdev=w.rdev,d.isDir(w.mode)?I.size=4096:d.isFile(w.mode)?I.size=w.usedBytes:d.isLink(w.mode)?I.size=w.link.length:I.size=0,I.atime=new Date(w.atime),I.mtime=new Date(w.mtime),I.ctime=new Date(w.ctime),I.blksize=4096,I.blocks=Math.ceil(I.size/I.blksize),I},setattr(w,I){for(let B of["mode","atime","mtime","ctime"])I[B]!=null&&(w[B]=I[B]);I.size!==void 0&&we.resizeFileStorage(w,I.size)},lookup(w,I){throw we.doesNotExistError},mknod(w,I,B,K){return we.createNode(w,I,B,K)},rename(w,I,B){var K;try{K=d.lookupNode(I,B)}catch{}if(K){if(d.isDir(w.mode))for(var oe in K.contents)throw new d.ErrnoError(55);d.hashRemoveNode(K)}delete w.parent.contents[w.name],I.contents[B]=w,w.name=B,I.ctime=I.mtime=w.parent.ctime=w.parent.mtime=Date.now()},unlink(w,I){delete w.contents[I],w.ctime=w.mtime=Date.now()},rmdir(w,I){var B=d.lookupNode(w,I);for(var K in B.contents)throw new d.ErrnoError(55);delete w.contents[I],w.ctime=w.mtime=Date.now()},readdir(w){return[".","..",...Object.keys(w.contents)]},symlink(w,I,B){var K=we.createNode(w,I,41471,0);return K.link=B,K},readlink(w){if(!d.isLink(w.mode))throw new d.ErrnoError(28);return w.link}},stream_ops:{read(w,I,B,K,oe){var Se=w.node.contents;if(oe>=w.node.usedBytes)return 0;var Te=Math.min(w.node.usedBytes-oe,K);if(Te>8&&Se.subarray)I.set(Se.subarray(oe,oe+Te),B);else for(var Ie=0;Ie<Te;Ie++)I[B+Ie]=Se[oe+Ie];return Te},write(w,I,B,K,oe,Se){if(I.buffer===Q.buffer&&(Se=!1),!K)return 0;var Te=w.node;if(Te.mtime=Te.ctime=Date.now(),I.subarray&&(!Te.contents||Te.contents.subarray)){if(Se)return Te.contents=I.subarray(B,B+K),Te.usedBytes=K,K;if(Te.usedBytes===0&&oe===0)return Te.contents=I.slice(B,B+K),Te.usedBytes=K,K;if(oe+K<=Te.usedBytes)return Te.contents.set(I.subarray(B,B+K),oe),K}if(we.expandFileStorage(Te,oe+K),Te.contents.subarray&&I.subarray)Te.contents.set(I.subarray(B,B+K),oe);else for(var Ie=0;Ie<K;Ie++)Te.contents[oe+Ie]=I[B+Ie];return Te.usedBytes=Math.max(Te.usedBytes,oe+K),K},llseek(w,I,B){var K=I;if(B===1?K+=w.position:B===2&&d.isFile(w.node.mode)&&(K+=w.node.usedBytes),K<0)throw new d.ErrnoError(28);return K},mmap(w,I,B,K,oe){if(!d.isFile(w.node.mode))throw new d.ErrnoError(43);var Se,Te,Ie=w.node.contents;if(!(oe&2)&&Ie&&Ie.buffer===Q.buffer)Te=!1,Se=Ie.byteOffset;else{if(Te=!0,Se=at(I),!Se)throw new d.ErrnoError(48);Ie&&((B>0||B+I<Ie.length)&&(Ie.subarray?Ie=Ie.subarray(B,B+I):Ie=Array.prototype.slice.call(Ie,B,B+I)),Q.set(Ie,Se))}return{ptr:Se,allocated:Te}},msync(w,I,B,K,oe){return we.stream_ops.write(w,I,0,K,B,!1),0}}},Rt=async w=>{var I=await x(w);return new Uint8Array(I)},ft=(...w)=>d.createDataFile(...w),Yt=[],$t=(w,I,B,K)=>{typeof Browser<"u"&&Browser.init();var oe=!1;return Yt.forEach(Se=>{oe||Se.canHandle(I)&&(Se.handle(w,I,B,K),oe=!0)}),oe},Wn=(w,I,B,K,oe,Se,Te,Ie,rt,Ut)=>{var ln=I?le.resolve(ne.join2(w,I)):w,gn=`cp ${ln}`;function hn(un){function Dt(Kn){Ut?.(),Ie||ft(w,I,Kn,K,oe,rt),Se?.(),zt(gn)}$t(un,ln,Dt,()=>{Te?.(),zt(gn)})||Dt(un)}jt(gn),typeof B=="string"?Rt(B).then(hn,Te):hn(B)},Un=w=>{var I={r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},B=I[w];if(typeof B>"u")throw new Error(`Unknown file open mode: ${w}`);return B},Ti=(w,I)=>{var B=0;return w&&(B|=365),I&&(B|=146),B},d={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,filesystems:null,syncFSRequests:0,readFiles:{},ErrnoError:class{name="ErrnoError";constructor(w){this.errno=w}},FSStream:class{shared={};get object(){return this.node}set object(w){this.node=w}get isRead(){return(this.flags&2097155)!==1}get isWrite(){return(this.flags&2097155)!==0}get isAppend(){return this.flags&1024}get flags(){return this.shared.flags}set flags(w){this.shared.flags=w}get position(){return this.shared.position}set position(w){this.shared.position=w}},FSNode:class{node_ops={};stream_ops={};readMode=365;writeMode=146;mounted=null;constructor(w,I,B,K){w||(w=this),this.parent=w,this.mount=w.mount,this.id=d.nextInode++,this.name=I,this.mode=B,this.rdev=K,this.atime=this.mtime=this.ctime=Date.now()}get read(){return(this.mode&this.readMode)===this.readMode}set read(w){w?this.mode|=this.readMode:this.mode&=~this.readMode}get write(){return(this.mode&this.writeMode)===this.writeMode}set write(w){w?this.mode|=this.writeMode:this.mode&=~this.writeMode}get isFolder(){return d.isDir(this.mode)}get isDevice(){return d.isChrdev(this.mode)}},lookupPath(w,I={}){if(!w)throw new d.ErrnoError(44);I.follow_mount??=!0,ne.isAbs(w)||(w=d.cwd()+"/"+w);e:for(var B=0;B<40;B++){for(var K=w.split("/").filter(Ut=>!!Ut),oe=d.root,Se="/",Te=0;Te<K.length;Te++){var Ie=Te===K.length-1;if(Ie&&I.parent)break;if(K[Te]!=="."){if(K[Te]===".."){if(Se=ne.dirname(Se),d.isRoot(oe)){w=Se+"/"+K.slice(Te+1).join("/");continue e}else oe=oe.parent;continue}Se=ne.join2(Se,K[Te]);try{oe=d.lookupNode(oe,K[Te])}catch(Ut){if(Ut?.errno===44&&Ie&&I.noent_okay)return{path:Se};throw Ut}if(d.isMountpoint(oe)&&(!Ie||I.follow_mount)&&(oe=oe.mounted.root),d.isLink(oe.mode)&&(!Ie||I.follow)){if(!oe.node_ops.readlink)throw new d.ErrnoError(52);var rt=oe.node_ops.readlink(oe);ne.isAbs(rt)||(rt=ne.dirname(Se)+"/"+rt),w=rt+"/"+K.slice(Te+1).join("/");continue e}}}return{path:Se,node:oe}}throw new d.ErrnoError(32)},getPath(w){for(var I;;){if(d.isRoot(w)){var B=w.mount.mountpoint;return I?B[B.length-1]!=="/"?`${B}/${I}`:B+I:B}I=I?`${w.name}/${I}`:w.name,w=w.parent}},hashName(w,I){for(var B=0,K=0;K<I.length;K++)B=(B<<5)-B+I.charCodeAt(K)|0;return(w+B>>>0)%d.nameTable.length},hashAddNode(w){var I=d.hashName(w.parent.id,w.name);w.name_next=d.nameTable[I],d.nameTable[I]=w},hashRemoveNode(w){var I=d.hashName(w.parent.id,w.name);if(d.nameTable[I]===w)d.nameTable[I]=w.name_next;else for(var B=d.nameTable[I];B;){if(B.name_next===w){B.name_next=w.name_next;break}B=B.name_next}},lookupNode(w,I){var B=d.mayLookup(w);if(B)throw new d.ErrnoError(B);for(var K=d.hashName(w.id,I),oe=d.nameTable[K];oe;oe=oe.name_next){var Se=oe.name;if(oe.parent.id===w.id&&Se===I)return oe}return d.lookup(w,I)},createNode(w,I,B,K){var oe=new d.FSNode(w,I,B,K);return d.hashAddNode(oe),oe},destroyNode(w){d.hashRemoveNode(w)},isRoot(w){return w===w.parent},isMountpoint(w){return!!w.mounted},isFile(w){return(w&61440)===32768},isDir(w){return(w&61440)===16384},isLink(w){return(w&61440)===40960},isChrdev(w){return(w&61440)===8192},isBlkdev(w){return(w&61440)===24576},isFIFO(w){return(w&61440)===4096},isSocket(w){return(w&49152)===49152},flagsToPermissionString(w){var I=["r","w","rw"][w&3];return w&512&&(I+="w"),I},nodePermissions(w,I){return d.ignorePermissions?0:I.includes("r")&&!(w.mode&292)||I.includes("w")&&!(w.mode&146)||I.includes("x")&&!(w.mode&73)?2:0},mayLookup(w){if(!d.isDir(w.mode))return 54;var I=d.nodePermissions(w,"x");return I||(w.node_ops.lookup?0:2)},mayCreate(w,I){if(!d.isDir(w.mode))return 54;try{var B=d.lookupNode(w,I);return 20}catch{}return d.nodePermissions(w,"wx")},mayDelete(w,I,B){var K;try{K=d.lookupNode(w,I)}catch(Se){return Se.errno}var oe=d.nodePermissions(w,"wx");if(oe)return oe;if(B){if(!d.isDir(K.mode))return 54;if(d.isRoot(K)||d.getPath(K)===d.cwd())return 10}else if(d.isDir(K.mode))return 31;return 0},mayOpen(w,I){return w?d.isLink(w.mode)?32:d.isDir(w.mode)&&(d.flagsToPermissionString(I)!=="r"||I&576)?31:d.nodePermissions(w,d.flagsToPermissionString(I)):44},checkOpExists(w,I){if(!w)throw new d.ErrnoError(I);return w},MAX_OPEN_FDS:4096,nextfd(){for(var w=0;w<=d.MAX_OPEN_FDS;w++)if(!d.streams[w])return w;throw new d.ErrnoError(33)},getStreamChecked(w){var I=d.getStream(w);if(!I)throw new d.ErrnoError(8);return I},getStream:w=>d.streams[w],createStream(w,I=-1){return w=Object.assign(new d.FSStream,w),I==-1&&(I=d.nextfd()),w.fd=I,d.streams[I]=w,w},closeStream(w){d.streams[w]=null},dupStream(w,I=-1){var B=d.createStream(w,I);return B.stream_ops?.dup?.(B),B},doSetAttr(w,I,B){var K=w?.stream_ops.setattr,oe=K?w:I;K??=I.node_ops.setattr,d.checkOpExists(K,63),K(oe,B)},chrdev_stream_ops:{open(w){var I=d.getDevice(w.node.rdev);w.stream_ops=I.stream_ops,w.stream_ops.open?.(w)},llseek(){throw new d.ErrnoError(70)}},major:w=>w>>8,minor:w=>w&255,makedev:(w,I)=>w<<8|I,registerDevice(w,I){d.devices[w]={stream_ops:I}},getDevice:w=>d.devices[w],getMounts(w){for(var I=[],B=[w];B.length;){var K=B.pop();I.push(K),B.push(...K.mounts)}return I},syncfs(w,I){typeof w=="function"&&(I=w,w=!1),d.syncFSRequests++,d.syncFSRequests>1&&M(`warning: ${d.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`);var B=d.getMounts(d.root.mount),K=0;function oe(Te){return d.syncFSRequests--,I(Te)}function Se(Te){if(Te)return Se.errored?void 0:(Se.errored=!0,oe(Te));++K>=B.length&&oe(null)}B.forEach(Te=>{if(!Te.type.syncfs)return Se(null);Te.type.syncfs(Te,w,Se)})},mount(w,I,B){var K=B==="/",oe=!B,Se;if(K&&d.root)throw new d.ErrnoError(10);if(!K&&!oe){var Te=d.lookupPath(B,{follow_mount:!1});if(B=Te.path,Se=Te.node,d.isMountpoint(Se))throw new d.ErrnoError(10);if(!d.isDir(Se.mode))throw new d.ErrnoError(54)}var Ie={type:w,opts:I,mountpoint:B,mounts:[]},rt=w.mount(Ie);return rt.mount=Ie,Ie.root=rt,K?d.root=rt:Se&&(Se.mounted=Ie,Se.mount&&Se.mount.mounts.push(Ie)),rt},unmount(w){var I=d.lookupPath(w,{follow_mount:!1});if(!d.isMountpoint(I.node))throw new d.ErrnoError(28);var B=I.node,K=B.mounted,oe=d.getMounts(K);Object.keys(d.nameTable).forEach(Te=>{for(var Ie=d.nameTable[Te];Ie;){var rt=Ie.name_next;oe.includes(Ie.mount)&&d.destroyNode(Ie),Ie=rt}}),B.mounted=null;var Se=B.mount.mounts.indexOf(K);B.mount.mounts.splice(Se,1)},lookup(w,I){return w.node_ops.lookup(w,I)},mknod(w,I,B){var K=d.lookupPath(w,{parent:!0}),oe=K.node,Se=ne.basename(w);if(!Se)throw new d.ErrnoError(28);if(Se==="."||Se==="..")throw new d.ErrnoError(20);var Te=d.mayCreate(oe,Se);if(Te)throw new d.ErrnoError(Te);if(!oe.node_ops.mknod)throw new d.ErrnoError(63);return oe.node_ops.mknod(oe,Se,I,B)},statfs(w){return d.statfsNode(d.lookupPath(w,{follow:!0}).node)},statfsStream(w){return d.statfsNode(w.node)},statfsNode(w){var I={bsize:4096,frsize:4096,blocks:1e6,bfree:5e5,bavail:5e5,files:d.nextInode,ffree:d.nextInode-1,fsid:42,flags:2,namelen:255};return w.node_ops.statfs&&Object.assign(I,w.node_ops.statfs(w.mount.opts.root)),I},create(w,I=438){return I&=4095,I|=32768,d.mknod(w,I,0)},mkdir(w,I=511){return I&=1023,I|=16384,d.mknod(w,I,0)},mkdirTree(w,I){var B=w.split("/"),K="";for(var oe of B)if(oe){(K||ne.isAbs(w))&&(K+="/"),K+=oe;try{d.mkdir(K,I)}catch(Se){if(Se.errno!=20)throw Se}}},mkdev(w,I,B){return typeof B>"u"&&(B=I,I=438),I|=8192,d.mknod(w,I,B)},symlink(w,I){if(!le.resolve(w))throw new d.ErrnoError(44);var B=d.lookupPath(I,{parent:!0}),K=B.node;if(!K)throw new d.ErrnoError(44);var oe=ne.basename(I),Se=d.mayCreate(K,oe);if(Se)throw new d.ErrnoError(Se);if(!K.node_ops.symlink)throw new d.ErrnoError(63);return K.node_ops.symlink(K,oe,w)},rename(w,I){var B=ne.dirname(w),K=ne.dirname(I),oe=ne.basename(w),Se=ne.basename(I),Te,Ie,rt;if(Te=d.lookupPath(w,{parent:!0}),Ie=Te.node,Te=d.lookupPath(I,{parent:!0}),rt=Te.node,!Ie||!rt)throw new d.ErrnoError(44);if(Ie.mount!==rt.mount)throw new d.ErrnoError(75);var Ut=d.lookupNode(Ie,oe),ln=le.relative(w,K);if(ln.charAt(0)!==".")throw new d.ErrnoError(28);if(ln=le.relative(I,B),ln.charAt(0)!==".")throw new d.ErrnoError(55);var gn;try{gn=d.lookupNode(rt,Se)}catch{}if(Ut!==gn){var hn=d.isDir(Ut.mode),un=d.mayDelete(Ie,oe,hn);if(un)throw new d.ErrnoError(un);if(un=gn?d.mayDelete(rt,Se,hn):d.mayCreate(rt,Se),un)throw new d.ErrnoError(un);if(!Ie.node_ops.rename)throw new d.ErrnoError(63);if(d.isMountpoint(Ut)||gn&&d.isMountpoint(gn))throw new d.ErrnoError(10);if(rt!==Ie&&(un=d.nodePermissions(Ie,"w"),un))throw new d.ErrnoError(un);d.hashRemoveNode(Ut);try{Ie.node_ops.rename(Ut,rt,Se),Ut.parent=rt}catch(Dt){throw Dt}finally{d.hashAddNode(Ut)}}},rmdir(w){var I=d.lookupPath(w,{parent:!0}),B=I.node,K=ne.basename(w),oe=d.lookupNode(B,K),Se=d.mayDelete(B,K,!0);if(Se)throw new d.ErrnoError(Se);if(!B.node_ops.rmdir)throw new d.ErrnoError(63);if(d.isMountpoint(oe))throw new d.ErrnoError(10);B.node_ops.rmdir(B,K),d.destroyNode(oe)},readdir(w){var I=d.lookupPath(w,{follow:!0}),B=I.node,K=d.checkOpExists(B.node_ops.readdir,54);return K(B)},unlink(w){var I=d.lookupPath(w,{parent:!0}),B=I.node;if(!B)throw new d.ErrnoError(44);var K=ne.basename(w),oe=d.lookupNode(B,K),Se=d.mayDelete(B,K,!1);if(Se)throw new d.ErrnoError(Se);if(!B.node_ops.unlink)throw new d.ErrnoError(63);if(d.isMountpoint(oe))throw new d.ErrnoError(10);B.node_ops.unlink(B,K),d.destroyNode(oe)},readlink(w){var I=d.lookupPath(w),B=I.node;if(!B)throw new d.ErrnoError(44);if(!B.node_ops.readlink)throw new d.ErrnoError(28);return B.node_ops.readlink(B)},stat(w,I){var B=d.lookupPath(w,{follow:!I}),K=B.node,oe=d.checkOpExists(K.node_ops.getattr,63);return oe(K)},fstat(w){var I=d.getStreamChecked(w),B=I.node,K=I.stream_ops.getattr,oe=K?I:B;return K??=B.node_ops.getattr,d.checkOpExists(K,63),K(oe)},lstat(w){return d.stat(w,!0)},doChmod(w,I,B,K){d.doSetAttr(w,I,{mode:B&4095|I.mode&-4096,ctime:Date.now(),dontFollow:K})},chmod(w,I,B){var K;if(typeof w=="string"){var oe=d.lookupPath(w,{follow:!B});K=oe.node}else K=w;d.doChmod(null,K,I,B)},lchmod(w,I){d.chmod(w,I,!0)},fchmod(w,I){var B=d.getStreamChecked(w);d.doChmod(B,B.node,I,!1)},doChown(w,I,B){d.doSetAttr(w,I,{timestamp:Date.now(),dontFollow:B})},chown(w,I,B,K){var oe;if(typeof w=="string"){var Se=d.lookupPath(w,{follow:!K});oe=Se.node}else oe=w;d.doChown(null,oe,K)},lchown(w,I,B){d.chown(w,I,B,!0)},fchown(w,I,B){var K=d.getStreamChecked(w);d.doChown(K,K.node,!1)},doTruncate(w,I,B){if(d.isDir(I.mode))throw new d.ErrnoError(31);if(!d.isFile(I.mode))throw new d.ErrnoError(28);var K=d.nodePermissions(I,"w");if(K)throw new d.ErrnoError(K);d.doSetAttr(w,I,{size:B,timestamp:Date.now()})},truncate(w,I){if(I<0)throw new d.ErrnoError(28);var B;if(typeof w=="string"){var K=d.lookupPath(w,{follow:!0});B=K.node}else B=w;d.doTruncate(null,B,I)},ftruncate(w,I){var B=d.getStreamChecked(w);if(I<0||(B.flags&2097155)===0)throw new d.ErrnoError(28);d.doTruncate(B,B.node,I)},utime(w,I,B){var K=d.lookupPath(w,{follow:!0}),oe=K.node,Se=d.checkOpExists(oe.node_ops.setattr,63);Se(oe,{atime:I,mtime:B})},open(w,I,B=438){if(w==="")throw new d.ErrnoError(44);I=typeof I=="string"?Un(I):I,I&64?B=B&4095|32768:B=0;var K,oe;if(typeof w=="object")K=w;else{oe=w.endsWith("/");var Se=d.lookupPath(w,{follow:!(I&131072),noent_okay:!0});K=Se.node,w=Se.path}var Te=!1;if(I&64)if(K){if(I&128)throw new d.ErrnoError(20)}else{if(oe)throw new d.ErrnoError(31);K=d.mknod(w,B|511,0),Te=!0}if(!K)throw new d.ErrnoError(44);if(d.isChrdev(K.mode)&&(I&=-513),I&65536&&!d.isDir(K.mode))throw new d.ErrnoError(54);if(!Te){var Ie=d.mayOpen(K,I);if(Ie)throw new d.ErrnoError(Ie)}I&512&&!Te&&d.truncate(K,0),I&=-131713;var rt=d.createStream({node:K,path:d.getPath(K),flags:I,seekable:!0,position:0,stream_ops:K.stream_ops,ungotten:[],error:!1});return rt.stream_ops.open&&rt.stream_ops.open(rt),Te&&d.chmod(K,B&511),t.logReadFiles&&!(I&1)&&(w in d.readFiles||(d.readFiles[w]=1)),rt},close(w){if(d.isClosed(w))throw new d.ErrnoError(8);w.getdents&&(w.getdents=null);try{w.stream_ops.close&&w.stream_ops.close(w)}catch(I){throw I}finally{d.closeStream(w.fd)}w.fd=null},isClosed(w){return w.fd===null},llseek(w,I,B){if(d.isClosed(w))throw new d.ErrnoError(8);if(!w.seekable||!w.stream_ops.llseek)throw new d.ErrnoError(70);if(B!=0&&B!=1&&B!=2)throw new d.ErrnoError(28);return w.position=w.stream_ops.llseek(w,I,B),w.ungotten=[],w.position},read(w,I,B,K,oe){if(K<0||oe<0)throw new d.ErrnoError(28);if(d.isClosed(w))throw new d.ErrnoError(8);if((w.flags&2097155)===1)throw new d.ErrnoError(8);if(d.isDir(w.node.mode))throw new d.ErrnoError(31);if(!w.stream_ops.read)throw new d.ErrnoError(28);var Se=typeof oe<"u";if(!Se)oe=w.position;else if(!w.seekable)throw new d.ErrnoError(70);var Te=w.stream_ops.read(w,I,B,K,oe);return Se||(w.position+=Te),Te},write(w,I,B,K,oe,Se){if(K<0||oe<0)throw new d.ErrnoError(28);if(d.isClosed(w))throw new d.ErrnoError(8);if((w.flags&2097155)===0)throw new d.ErrnoError(8);if(d.isDir(w.node.mode))throw new d.ErrnoError(31);if(!w.stream_ops.write)throw new d.ErrnoError(28);w.seekable&&w.flags&1024&&d.llseek(w,0,2);var Te=typeof oe<"u";if(!Te)oe=w.position;else if(!w.seekable)throw new d.ErrnoError(70);var Ie=w.stream_ops.write(w,I,B,K,oe,Se);return Te||(w.position+=Ie),Ie},mmap(w,I,B,K,oe){if((K&2)!==0&&(oe&2)===0&&(w.flags&2097155)!==2)throw new d.ErrnoError(2);if((w.flags&2097155)===1)throw new d.ErrnoError(2);if(!w.stream_ops.mmap)throw new d.ErrnoError(43);if(!I)throw new d.ErrnoError(28);return w.stream_ops.mmap(w,I,B,K,oe)},msync(w,I,B,K,oe){return w.stream_ops.msync?w.stream_ops.msync(w,I,B,K,oe):0},ioctl(w,I,B){if(!w.stream_ops.ioctl)throw new d.ErrnoError(59);return w.stream_ops.ioctl(w,I,B)},readFile(w,I={}){if(I.flags=I.flags||0,I.encoding=I.encoding||"binary",I.encoding!=="utf8"&&I.encoding!=="binary")throw new Error(`Invalid encoding type "${I.encoding}"`);var B,K=d.open(w,I.flags),oe=d.stat(w),Se=oe.size,Te=new Uint8Array(Se);return d.read(K,Te,0,Se,0),I.encoding==="utf8"?B=be(Te):I.encoding==="binary"&&(B=Te),d.close(K),B},writeFile(w,I,B={}){B.flags=B.flags||577;var K=d.open(w,B.flags,B.mode);if(typeof I=="string"){var oe=new Uint8Array(Oe(I)+1),Se=je(I,oe,0,oe.length);d.write(K,oe,0,Se,void 0,B.canOwn)}else if(ArrayBuffer.isView(I))d.write(K,I,0,I.byteLength,void 0,B.canOwn);else throw new Error("Unsupported data type");d.close(K)},cwd:()=>d.currentPath,chdir(w){var I=d.lookupPath(w,{follow:!0});if(I.node===null)throw new d.ErrnoError(44);if(!d.isDir(I.node.mode))throw new d.ErrnoError(54);var B=d.nodePermissions(I.node,"x");if(B)throw new d.ErrnoError(B);d.currentPath=I.path},createDefaultDirectories(){d.mkdir("/tmp"),d.mkdir("/home"),d.mkdir("/home/web_user")},createDefaultDevices(){d.mkdir("/dev"),d.registerDevice(d.makedev(1,3),{read:()=>0,write:(K,oe,Se,Te,Ie)=>Te,llseek:()=>0}),d.mkdev("/dev/null",d.makedev(1,3)),ht.register(d.makedev(5,0),ht.default_tty_ops),ht.register(d.makedev(6,0),ht.default_tty1_ops),d.mkdev("/dev/tty",d.makedev(5,0)),d.mkdev("/dev/tty1",d.makedev(6,0));var w=new Uint8Array(1024),I=0,B=()=>(I===0&&(ie(w),I=w.byteLength),w[--I]);d.createDevice("/dev","random",B),d.createDevice("/dev","urandom",B),d.mkdir("/dev/shm"),d.mkdir("/dev/shm/tmp")},createSpecialDirectories(){d.mkdir("/proc");var w=d.mkdir("/proc/self");d.mkdir("/proc/self/fd"),d.mount({mount(){var I=d.createNode(w,"fd",16895,73);return I.stream_ops={llseek:we.stream_ops.llseek},I.node_ops={lookup(B,K){var oe=+K,Se=d.getStreamChecked(oe),Te={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>Se.path},id:oe+1};return Te.parent=Te,Te},readdir(){return Array.from(d.streams.entries()).filter(([B,K])=>K).map(([B,K])=>B.toString())}},I}},{},"/proc/self/fd")},createStandardStreams(w,I,B){w?d.createDevice("/dev","stdin",w):d.symlink("/dev/tty","/dev/stdin"),I?d.createDevice("/dev","stdout",null,I):d.symlink("/dev/tty","/dev/stdout"),B?d.createDevice("/dev","stderr",null,B):d.symlink("/dev/tty1","/dev/stderr");var K=d.open("/dev/stdin",0),oe=d.open("/dev/stdout",1),Se=d.open("/dev/stderr",1)},staticInit(){d.nameTable=new Array(4096),d.mount(we,{},"/"),d.createDefaultDirectories(),d.createDefaultDevices(),d.createSpecialDirectories(),d.filesystems={MEMFS:we}},init(w,I,B){d.initialized=!0,w??=t.stdin,I??=t.stdout,B??=t.stderr,d.createStandardStreams(w,I,B)},quit(){d.initialized=!1;for(var w of d.streams)w&&d.close(w)},findObject(w,I){var B=d.analyzePath(w,I);return B.exists?B.object:null},analyzePath(w,I){try{var B=d.lookupPath(w,{follow:!I});w=B.path}catch{}var K={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var B=d.lookupPath(w,{parent:!0});K.parentExists=!0,K.parentPath=B.path,K.parentObject=B.node,K.name=ne.basename(w),B=d.lookupPath(w,{follow:!I}),K.exists=!0,K.path=B.path,K.object=B.node,K.name=B.node.name,K.isRoot=B.path==="/"}catch(oe){K.error=oe.errno}return K},createPath(w,I,B,K){w=typeof w=="string"?w:d.getPath(w);for(var oe=I.split("/").reverse();oe.length;){var Se=oe.pop();if(Se){var Te=ne.join2(w,Se);try{d.mkdir(Te)}catch(Ie){if(Ie.errno!=20)throw Ie}w=Te}}return Te},createFile(w,I,B,K,oe){var Se=ne.join2(typeof w=="string"?w:d.getPath(w),I),Te=Ti(K,oe);return d.create(Se,Te)},createDataFile(w,I,B,K,oe,Se){var Te=I;w&&(w=typeof w=="string"?w:d.getPath(w),Te=I?ne.join2(w,I):w);var Ie=Ti(K,oe),rt=d.create(Te,Ie);if(B){if(typeof B=="string"){for(var Ut=new Array(B.length),ln=0,gn=B.length;ln<gn;++ln)Ut[ln]=B.charCodeAt(ln);B=Ut}d.chmod(rt,Ie|146);var hn=d.open(rt,577);d.write(hn,B,0,B.length,0,Se),d.close(hn),d.chmod(rt,Ie)}},createDevice(w,I,B,K){var oe=ne.join2(typeof w=="string"?w:d.getPath(w),I),Se=Ti(!!B,!!K);d.createDevice.major??=64;var Te=d.makedev(d.createDevice.major++,0);return d.registerDevice(Te,{open(Ie){Ie.seekable=!1},close(Ie){K?.buffer?.length&&K(10)},read(Ie,rt,Ut,ln,gn){for(var hn=0,un=0;un<ln;un++){var Dt;try{Dt=B()}catch{throw new d.ErrnoError(29)}if(Dt===void 0&&hn===0)throw new d.ErrnoError(6);if(Dt==null)break;hn++,rt[Ut+un]=Dt}return hn&&(Ie.node.atime=Date.now()),hn},write(Ie,rt,Ut,ln,gn){for(var hn=0;hn<ln;hn++)try{K(rt[Ut+hn])}catch{throw new d.ErrnoError(29)}return ln&&(Ie.node.mtime=Ie.node.ctime=Date.now()),hn}}),d.mkdev(oe,Se,Te)},forceLoadFile(w){if(w.isDevice||w.isFolder||w.link||w.contents)return!0;if(typeof XMLHttpRequest<"u")throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.");try{w.contents=S(w.url),w.usedBytes=w.contents.length}catch{throw new d.ErrnoError(29)}},createLazyFile(w,I,B,K,oe){class Se{lengthKnown=!1;chunks=[];get(un){if(!(un>this.length-1||un<0)){var Dt=un%this.chunkSize,Kn=un/this.chunkSize|0;return this.getter(Kn)[Dt]}}setDataGetter(un){this.getter=un}cacheLength(){var un=new XMLHttpRequest;if(un.open("HEAD",B,!1),un.send(null),!(un.status>=200&&un.status<300||un.status===304))throw new Error("Couldn't load "+B+". Status: "+un.status);var Dt=Number(un.getResponseHeader("Content-length")),Kn,Qn=(Kn=un.getResponseHeader("Accept-Ranges"))&&Kn==="bytes",ea=(Kn=un.getResponseHeader("Content-Encoding"))&&Kn==="gzip",La=1024*1024;Qn||(La=Dt);var Za=(ta,Ks)=>{if(ta>Ks)throw new Error("invalid range ("+ta+", "+Ks+") or no bytes requested!");if(Ks>Dt-1)throw new Error("only "+Dt+" bytes available! programmer error!");var T=new XMLHttpRequest;if(T.open("GET",B,!1),Dt!==La&&T.setRequestHeader("Range","bytes="+ta+"-"+Ks),T.responseType="arraybuffer",T.overrideMimeType&&T.overrideMimeType("text/plain; charset=x-user-defined"),T.send(null),!(T.status>=200&&T.status<300||T.status===304))throw new Error("Couldn't load "+B+". Status: "+T.status);return T.response!==void 0?new Uint8Array(T.response||[]):Ct(T.responseText||"",!0)},pc=this;pc.setDataGetter(ta=>{var Ks=ta*La,T=(ta+1)*La-1;if(T=Math.min(T,Dt-1),typeof pc.chunks[ta]>"u"&&(pc.chunks[ta]=Za(Ks,T)),typeof pc.chunks[ta]>"u")throw new Error("doXHR failed!");return pc.chunks[ta]}),(ea||!Dt)&&(La=Dt=1,Dt=this.getter(0).length,La=Dt,v("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=Dt,this._chunkSize=La,this.lengthKnown=!0}get length(){return this.lengthKnown||this.cacheLength(),this._length}get chunkSize(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}if(typeof XMLHttpRequest<"u"){if(!l)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var Te=new Se,Ie={isDevice:!1,contents:Te}}else var Ie={isDevice:!1,url:B};var rt=d.createFile(w,I,Ie,K,oe);Ie.contents?rt.contents=Ie.contents:Ie.url&&(rt.contents=null,rt.url=Ie.url),Object.defineProperties(rt,{usedBytes:{get:function(){return this.contents.length}}});var Ut={},ln=Object.keys(rt.stream_ops);ln.forEach(hn=>{var un=rt.stream_ops[hn];Ut[hn]=(...Dt)=>(d.forceLoadFile(rt),un(...Dt))});function gn(hn,un,Dt,Kn,Qn){var ea=hn.node.contents;if(Qn>=ea.length)return 0;var La=Math.min(ea.length-Qn,Kn);if(ea.slice)for(var Za=0;Za<La;Za++)un[Dt+Za]=ea[Qn+Za];else for(var Za=0;Za<La;Za++)un[Dt+Za]=ea.get(Qn+Za);return La}return Ut.read=(hn,un,Dt,Kn,Qn)=>(d.forceLoadFile(rt),gn(hn,un,Dt,Kn,Qn)),Ut.mmap=(hn,un,Dt,Kn,Qn)=>{d.forceLoadFile(rt);var ea=at(un);if(!ea)throw new d.ErrnoError(48);return gn(hn,Q,ea,un,Dt),{ptr:ea,allocated:!0}},rt.stream_ops=Ut,rt}},Ke={DEFAULT_POLLMASK:5,calculateAt(w,I,B){if(ne.isAbs(I))return I;var K;if(w===-100)K=d.cwd();else{var oe=Ke.getStreamFromFD(w);K=oe.path}if(I.length==0){if(!B)throw new d.ErrnoError(44);return K}return K+"/"+I},writeStat(w,I){j[w>>2]=I.dev,j[w+4>>2]=I.mode,he[w+8>>2]=I.nlink,j[w+12>>2]=I.uid,j[w+16>>2]=I.gid,j[w+20>>2]=I.rdev,Pe=[I.size>>>0,(_e=I.size,+Math.abs(_e)>=1?_e>0?+Math.floor(_e/4294967296)>>>0:~~+Math.ceil((_e-+(~~_e>>>0))/4294967296)>>>0:0)],j[w+24>>2]=Pe[0],j[w+28>>2]=Pe[1],j[w+32>>2]=4096,j[w+36>>2]=I.blocks;var B=I.atime.getTime(),K=I.mtime.getTime(),oe=I.ctime.getTime();return Pe=[Math.floor(B/1e3)>>>0,(_e=Math.floor(B/1e3),+Math.abs(_e)>=1?_e>0?+Math.floor(_e/4294967296)>>>0:~~+Math.ceil((_e-+(~~_e>>>0))/4294967296)>>>0:0)],j[w+40>>2]=Pe[0],j[w+44>>2]=Pe[1],he[w+48>>2]=B%1e3*1e3*1e3,Pe=[Math.floor(K/1e3)>>>0,(_e=Math.floor(K/1e3),+Math.abs(_e)>=1?_e>0?+Math.floor(_e/4294967296)>>>0:~~+Math.ceil((_e-+(~~_e>>>0))/4294967296)>>>0:0)],j[w+56>>2]=Pe[0],j[w+60>>2]=Pe[1],he[w+64>>2]=K%1e3*1e3*1e3,Pe=[Math.floor(oe/1e3)>>>0,(_e=Math.floor(oe/1e3),+Math.abs(_e)>=1?_e>0?+Math.floor(_e/4294967296)>>>0:~~+Math.ceil((_e-+(~~_e>>>0))/4294967296)>>>0:0)],j[w+72>>2]=Pe[0],j[w+76>>2]=Pe[1],he[w+80>>2]=oe%1e3*1e3*1e3,Pe=[I.ino>>>0,(_e=I.ino,+Math.abs(_e)>=1?_e>0?+Math.floor(_e/4294967296)>>>0:~~+Math.ceil((_e-+(~~_e>>>0))/4294967296)>>>0:0)],j[w+88>>2]=Pe[0],j[w+92>>2]=Pe[1],0},writeStatFs(w,I){j[w+4>>2]=I.bsize,j[w+40>>2]=I.bsize,j[w+8>>2]=I.blocks,j[w+12>>2]=I.bfree,j[w+16>>2]=I.bavail,j[w+20>>2]=I.files,j[w+24>>2]=I.ffree,j[w+28>>2]=I.fsid,j[w+44>>2]=I.flags,j[w+36>>2]=I.namelen},doMsync(w,I,B,K,oe){if(!d.isFile(I.node.mode))throw new d.ErrnoError(43);if(K&2)return 0;var Se=H.slice(w,w+B);d.msync(I,Se,oe,B,K)},getStreamFromFD(w){var I=d.getStreamChecked(w);return I},varargs:void 0,getStr(w){var I=U(w);return I}};function ul(w,I){try{return w=Ke.getStr(w),d.chmod(w,I),0}catch(B){if(typeof d>"u"||B.name!=="ErrnoError")throw B;return-B.errno}}function us(w,I,B,K){try{if(I=Ke.getStr(I),I=Ke.calculateAt(w,I),B&-8)return-28;var oe=d.lookupPath(I,{follow:!0}),Se=oe.node;if(!Se)return-44;var Te="";return B&4&&(Te+="r"),B&2&&(Te+="w"),B&1&&(Te+="x"),Te&&d.nodePermissions(Se,Te)?-2:0}catch(Ie){if(typeof d>"u"||Ie.name!=="ErrnoError")throw Ie;return-Ie.errno}}function Fr(w,I){try{return d.fchmod(w,I),0}catch(B){if(typeof d>"u"||B.name!=="ErrnoError")throw B;return-B.errno}}function Ps(w,I,B){try{return d.fchown(w,I,B),0}catch(K){if(typeof d>"u"||K.name!=="ErrnoError")throw K;return-K.errno}}var er=()=>{var w=j[+Ke.varargs>>2];return Ke.varargs+=4,w},cs=er;function Pr(w,I,B){Ke.varargs=B;try{var K=Ke.getStreamFromFD(w);switch(I){case 0:{var oe=er();if(oe<0)return-28;for(;d.streams[oe];)oe++;var Se;return Se=d.dupStream(K,oe),Se.fd}case 1:case 2:return 0;case 3:return K.flags;case 4:{var oe=er();return K.flags|=oe,0}case 12:{var oe=cs(),Te=0;return Z[oe+Te>>1]=2,0}case 13:case 14:return 0}return-28}catch(Ie){if(typeof d>"u"||Ie.name!=="ErrnoError")throw Ie;return-Ie.errno}}function fs(w,I){try{return Ke.writeStat(I,d.fstat(w))}catch(B){if(typeof d>"u"||B.name!=="ErrnoError")throw B;return-B.errno}}var hi=(w,I)=>I+2097152>>>0<4194305-!!w?(w>>>0)+I*4294967296:NaN;function yo(w,I,B){var K=hi(I,B);try{return isNaN(K)?-61:(d.ftruncate(w,K),0)}catch(oe){if(typeof d>"u"||oe.name!=="ErrnoError")throw oe;return-oe.errno}}var wn=(w,I,B)=>je(w,H,I,B);function Us(w,I){try{if(I===0)return-28;var B=d.cwd(),K=Oe(B)+1;return I<K?-68:(wn(B,w,I),K)}catch(oe){if(typeof d>"u"||oe.name!=="ErrnoError")throw oe;return-oe.errno}}function Xa(w,I){try{return w=Ke.getStr(w),Ke.writeStat(I,d.lstat(w))}catch(B){if(typeof d>"u"||B.name!=="ErrnoError")throw B;return-B.errno}}function $r(w,I,B){try{return I=Ke.getStr(I),I=Ke.calculateAt(w,I),d.mkdir(I,B,0),0}catch(K){if(typeof d>"u"||K.name!=="ErrnoError")throw K;return-K.errno}}function Jr(w,I,B,K){try{I=Ke.getStr(I);var oe=K&256,Se=K&4096;return K=K&-6401,I=Ke.calculateAt(w,I,Se),Ke.writeStat(B,oe?d.lstat(I):d.stat(I))}catch(Te){if(typeof d>"u"||Te.name!=="ErrnoError")throw Te;return-Te.errno}}function ds(w,I,B,K){Ke.varargs=K;try{I=Ke.getStr(I),I=Ke.calculateAt(w,I);var oe=K?er():0;return d.open(I,B,oe).fd}catch(Se){if(typeof d>"u"||Se.name!=="ErrnoError")throw Se;return-Se.errno}}function bo(w,I,B,K){try{if(I=Ke.getStr(I),I=Ke.calculateAt(w,I),K<=0)return-28;var oe=d.readlink(I),Se=Math.min(K,Oe(oe)),Te=Q[B+Se];return wn(oe,B,K+1),Q[B+Se]=Te,Se}catch(Ie){if(typeof d>"u"||Ie.name!=="ErrnoError")throw Ie;return-Ie.errno}}function hs(w){try{return w=Ke.getStr(w),d.rmdir(w),0}catch(I){if(typeof d>"u"||I.name!=="ErrnoError")throw I;return-I.errno}}function ps(w,I){try{return w=Ke.getStr(w),Ke.writeStat(I,d.stat(w))}catch(B){if(typeof d>"u"||B.name!=="ErrnoError")throw B;return-B.errno}}function So(w,I,B){try{if(I=Ke.getStr(I),I=Ke.calculateAt(w,I),!B)d.unlink(I);else if(B===512)d.rmdir(I);else return-28;return 0}catch(K){if(typeof d>"u"||K.name!=="ErrnoError")throw K;return-K.errno}}var ae=w=>he[w>>2]+j[w+4>>2]*4294967296;function Fe(w,I,B,K){try{I=Ke.getStr(I),I=Ke.calculateAt(w,I,!0);var oe=Date.now(),Se,Te;if(!B)Se=oe,Te=oe;else{var Ie=ae(B),rt=j[B+8>>2];rt==1073741823?Se=oe:rt==1073741822?Se=null:Se=Ie*1e3+rt/1e6,B+=16,Ie=ae(B),rt=j[B+8>>2],rt==1073741823?Te=oe:rt==1073741822?Te=null:Te=Ie*1e3+rt/1e6}return(Te??Se)!==null&&d.utime(I,Se,Te),0}catch(Ut){if(typeof d>"u"||Ut.name!=="ErrnoError")throw Ut;return-Ut.errno}}var Ye=()=>Mt(""),Be=0,He=()=>{fn=!1,Be=0},It=w=>w%4===0&&(w%100!==0||w%400===0),Bt=[0,31,60,91,121,152,182,213,244,274,305,335],wt=[0,31,59,90,120,151,181,212,243,273,304,334],Nt=w=>{var I=It(w.getFullYear()),B=I?Bt:wt,K=B[w.getMonth()]+w.getDate()-1;return K};function Kt(w,I,B){var K=hi(w,I),oe=new Date(K*1e3);j[B>>2]=oe.getSeconds(),j[B+4>>2]=oe.getMinutes(),j[B+8>>2]=oe.getHours(),j[B+12>>2]=oe.getDate(),j[B+16>>2]=oe.getMonth(),j[B+20>>2]=oe.getFullYear()-1900,j[B+24>>2]=oe.getDay();var Se=Nt(oe)|0;j[B+28>>2]=Se,j[B+36>>2]=-(oe.getTimezoneOffset()*60);var Te=new Date(oe.getFullYear(),0,1),Ie=new Date(oe.getFullYear(),6,1).getTimezoneOffset(),rt=Te.getTimezoneOffset(),Ut=(Ie!=rt&&oe.getTimezoneOffset()==Math.min(rt,Ie))|0;j[B+32>>2]=Ut}function yn(w,I,B,K,oe,Se,Te,Ie){var rt=hi(oe,Se);try{var Ut=Ke.getStreamFromFD(K),ln=d.mmap(Ut,w,rt,I,B),gn=ln.ptr;return j[Te>>2]=ln.allocated,he[Ie>>2]=gn,0}catch(hn){if(typeof d>"u"||hn.name!=="ErrnoError")throw hn;return-hn.errno}}function Sn(w,I,B,K,oe,Se,Te){var Ie=hi(Se,Te);try{var rt=Ke.getStreamFromFD(oe);B&2&&Ke.doMsync(w,rt,I,K,Ie)}catch(Ut){if(typeof d>"u"||Ut.name!=="ErrnoError")throw Ut;return-Ut.errno}}var _t={},En=w=>{if(w instanceof dt||w=="unwind")return G;h(1,w)},ri=()=>fn||Be>0,Hn=w=>{G=w,ri()||(t.onExit?.(w),q=!0),h(w,new dt(w))},On=(w,I)=>{G=w,Hn(w)},Xi=On,Pt=()=>{if(!ri())try{Xi(G)}catch(w){En(w)}},Oi=w=>{if(!q)try{w(),Pt()}catch(I){En(I)}},xn=()=>performance.now(),ai=(w,I)=>{if(_t[w]&&(clearTimeout(_t[w].id),delete _t[w]),!I)return 0;var B=setTimeout(()=>{delete _t[w],Oi(()=>Ld(w,xn()))},I);return _t[w]={id:B,timeout_ms:I},0},Vn=(w,I,B,K)=>{var oe=new Date().getFullYear(),Se=new Date(oe,0,1),Te=new Date(oe,6,1),Ie=Se.getTimezoneOffset(),rt=Te.getTimezoneOffset(),Ut=Math.max(Ie,rt);he[w>>2]=Ut*60,j[I>>2]=+(Ie!=rt);var ln=un=>{var Dt=un>=0?"-":"+",Kn=Math.abs(un),Qn=String(Math.floor(Kn/60)).padStart(2,"0"),ea=String(Kn%60).padStart(2,"0");return`UTC${Dt}${Qn}${ea}`},gn=ln(Ie),hn=ln(rt);rt<Ie?(wn(gn,B,17),wn(hn,K,17)):(wn(gn,K,17),wn(hn,B,17))},wr=()=>Date.now(),Ur=()=>2147483648,zn=w=>{var I=k.buffer,B=(w-I.byteLength+65535)/65536|0;try{return k.grow(B),Ne(),1}catch{}},vi=w=>{var I=H.length;w>>>=0;var B=Ur();if(w>B)return!1;for(var K=1;K<=4;K*=2){var oe=I*(1+.2/K);oe=Math.min(oe,w+100663296);var Se=Math.min(B,bt(Math.max(w,oe),65536)),Te=zn(Se);if(Te)return!0}return!1},pi={},jn=()=>p||"./this.program",si=()=>{if(!si.strings){var w=(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",I={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:w,_:jn()};for(var B in pi)pi[B]===void 0?delete I[B]:I[B]=pi[B];var K=[];for(var B in I)K.push(`${B}=${I[B]}`);si.strings=K}return si.strings},da=(w,I)=>{var B=0,K=0;for(var oe of si()){var Se=I+B;he[w+K>>2]=Se,B+=wn(oe,Se,1/0)+1,K+=4}return 0},Eo=(w,I)=>{var B=si();he[w>>2]=B.length;var K=0;for(var oe of B)K+=Oe(oe)+1;return he[I>>2]=K,0};function Vu(w){try{var I=Ke.getStreamFromFD(w);return d.close(I),0}catch(B){if(typeof d>"u"||B.name!=="ErrnoError")throw B;return B.errno}}function Gu(w,I){try{var B=0,K=0,oe=0,Se=Ke.getStreamFromFD(w),Te=Se.tty?2:d.isDir(Se.mode)?3:d.isLink(Se.mode)?7:4;return Q[I]=Te,Z[I+2>>1]=oe,Pe=[B>>>0,(_e=B,+Math.abs(_e)>=1?_e>0?+Math.floor(_e/4294967296)>>>0:~~+Math.ceil((_e-+(~~_e>>>0))/4294967296)>>>0:0)],j[I+8>>2]=Pe[0],j[I+12>>2]=Pe[1],Pe=[K>>>0,(_e=K,+Math.abs(_e)>=1?_e>0?+Math.floor(_e/4294967296)>>>0:~~+Math.ceil((_e-+(~~_e>>>0))/4294967296)>>>0:0)],j[I+16>>2]=Pe[0],j[I+20>>2]=Pe[1],0}catch(Ie){if(typeof d>"u"||Ie.name!=="ErrnoError")throw Ie;return Ie.errno}}var Wu=(w,I,B,K)=>{for(var oe=0,Se=0;Se<B;Se++){var Te=he[I>>2],Ie=he[I+4>>2];I+=8;var rt=d.read(w,Q,Te,Ie,K);if(rt<0)return-1;if(oe+=rt,rt<Ie)break;typeof K<"u"&&(K+=rt)}return oe};function ju(w,I,B,K){try{var oe=Ke.getStreamFromFD(w),Se=Wu(oe,I,B);return he[K>>2]=Se,0}catch(Te){if(typeof d>"u"||Te.name!=="ErrnoError")throw Te;return Te.errno}}function Qu(w,I,B,K,oe){var Se=hi(I,B);try{if(isNaN(Se))return 61;var Te=Ke.getStreamFromFD(w);return d.llseek(Te,Se,K),Pe=[Te.position>>>0,(_e=Te.position,+Math.abs(_e)>=1?_e>0?+Math.floor(_e/4294967296)>>>0:~~+Math.ceil((_e-+(~~_e>>>0))/4294967296)>>>0:0)],j[oe>>2]=Pe[0],j[oe+4>>2]=Pe[1],Te.getdents&&Se===0&&K===0&&(Te.getdents=null),0}catch(Ie){if(typeof d>"u"||Ie.name!=="ErrnoError")throw Ie;return Ie.errno}}function wo(w){try{var I=Ke.getStreamFromFD(w);return I.stream_ops?.fsync?I.stream_ops.fsync(I):0}catch(B){if(typeof d>"u"||B.name!=="ErrnoError")throw B;return B.errno}}var Xu=(w,I,B,K)=>{for(var oe=0,Se=0;Se<B;Se++){var Te=he[I>>2],Ie=he[I+4>>2];I+=8;var rt=d.write(w,Q,Te,Ie,K);if(rt<0)return-1;if(oe+=rt,rt<Ie)break;typeof K<"u"&&(K+=rt)}return oe};function $c(w,I,B,K){try{var oe=Ke.getStreamFromFD(w),Se=Xu(oe,I,B);return he[K>>2]=Se,0}catch(Te){if(typeof d>"u"||Te.name!=="ErrnoError")throw Te;return Te.errno}}var it=function(){let w=typeof Asyncify=="object"?Asyncify.handleAsync.bind(Asyncify):null;t.handleAsync=w;let I=new Map;t.setCallback=(B,K)=>I.set(B,K),t.getCallback=B=>I.get(B),t.deleteCallback=B=>I.delete(B),it=function(B,K,...oe){let Se=I.get(K),Te=null,Ie=typeof Se=="function"?Se:Se[Te=U(oe.shift())];if(B){if(w)return w(()=>Ie.apply(Se,oe));throw new Error("Synchronous WebAssembly cannot call async function")}let rt=Ie.apply(Se,oe);if(typeof rt?.then=="function")throw console.error("unexpected Promise",Ie),new Error(`${Te} unexpectedly returned a Promise`);return rt}};function Yu(...w){return it(!1,...w)}function cl(...w){return it(!0,...w)}function tu(...w){return it(!1,...w)}function fl(...w){return it(!0,...w)}function Ku(...w){return it(!1,...w)}function dl(...w){return it(!0,...w)}function Zu(...w){return it(!1,...w)}function hl(...w){return it(!0,...w)}function Jc(...w){return it(!1,...w)}function pl(...w){return it(!0,...w)}function zs(...w){return it(!1,...w)}function ml(...w){return it(!0,...w)}function _l(...w){return it(!1,...w)}function qs(...w){return it(!0,...w)}function $u(...w){return it(!1,...w)}function xo(...w){return it(!0,...w)}function ef(...w){return it(!1,...w)}function gl(...w){return it(!0,...w)}function Ju(...w){return it(!1,...w)}function vl(...w){return it(!0,...w)}function ec(...w){return it(!1,...w)}function yl(...w){return it(!0,...w)}function nu(...w){return it(!1,...w)}function bl(...w){return it(!0,...w)}function tc(...w){return it(!1,...w)}function To(...w){return it(!0,...w)}function nc(w,I){try{return ie(H.subarray(w,w+I)),0}catch(B){if(typeof d>"u"||B.name!=="ErrnoError")throw B;return B.errno}}function iu(...w){return it(!1,...w)}function ru(...w){return it(!0,...w)}function Sl(...w){return it(!1,...w)}function au(...w){return it(!0,...w)}function su(...w){return it(!1,...w)}function Bs(...w){return it(!0,...w)}var Mo=(w,I)=>{w<128?I.push(w):I.push(w%128|128,w>>7)},ic=w=>{for(var I={i:"i32",j:"i64",f:"f32",d:"f64",e:"externref",p:"i32"},B={parameters:[],results:w[0]=="v"?[]:[I[w[0]]]},K=1;K<w.length;++K)B.parameters.push(I[w[K]]);return B},Ao=(w,I)=>{var B=w.slice(0,1),K=w.slice(1),oe={i:127,p:127,j:126,f:125,d:124,e:111};I.push(96),Mo(K.length,I);for(var Se of K)I.push(oe[Se]);B=="v"?I.push(0):I.push(1,oe[B])},Zt=(w,I)=>{if(typeof WebAssembly.Function=="function")return new WebAssembly.Function(ic(I),w);var B=[1];Ao(I,B);var K=[0,97,115,109,1,0,0,0,1];Mo(B.length,K),K.push(...B),K.push(2,7,1,1,101,1,102,0,0,7,5,1,1,102,0,0);var oe=new WebAssembly.Module(new Uint8Array(K)),Se=new WebAssembly.Instance(oe,{e:{f:w}}),Te=Se.exports.f;return Te},Xt,ou=w=>Xt.get(w),ms=(w,I)=>{if(xr)for(var B=w;B<w+I;B++){var K=ou(B);K&&xr.set(K,B)}},xr,Ya=w=>(xr||(xr=new WeakMap,ms(0,Xt.length)),xr.get(w)||0),lu=[],Tr=()=>{if(lu.length)return lu.pop();try{Xt.grow(1)}catch(w){throw w instanceof RangeError?"Unable to grow wasm table. Set ALLOW_TABLE_GROWTH.":w}return Xt.length-1},ha=(w,I)=>Xt.set(w,I),El=(w,I)=>{var B=Ya(w);if(B)return B;var K=Tr();try{ha(K,w)}catch(Se){if(!(Se instanceof TypeError))throw Se;var oe=Zt(w,I);ha(K,oe)}return xr.set(w,K),K},Hs=w=>{var I=t["_"+w];return I},Co=(w,I)=>{Q.set(w,I)},wl=w=>Nd(w),Ta=w=>{var I=Oe(w)+1,B=wl(I);return wn(w,B,I),B},oi=(w,I,B,K,oe)=>{var Se={string:Dt=>{var Kn=0;return Dt!=null&&Dt!==0&&(Kn=Ta(Dt)),Kn},array:Dt=>{var Kn=wl(Dt.length);return Co(Dt,Kn),Kn}};function Te(Dt){return I==="string"?U(Dt):I==="boolean"?!!Dt:Dt}var Ie=Hs(w),rt=[],Ut=0;if(K)for(var ln=0;ln<K.length;ln++){var gn=Se[B[ln]];gn?(Ut===0&&(Ut=L()),rt[ln]=gn(K[ln])):rt[ln]=K[ln]}var hn=Ie(...rt);function un(Dt){return Ut!==0&&ge(Ut),Te(Dt)}return hn=un(hn),hn},Ro=(w,I,B,K)=>{var oe=!B||B.every(Te=>Te==="number"||Te==="boolean"),Se=I!=="string";return Se&&oe&&!K?Hs(w):(...Te)=>oi(w,I,B,Te,K)},xl=w=>nm(),Ma=(w,I,B)=>{if(B??=2147483647,B<2)return 0;B-=2;for(var K=I,oe=B<w.length*2?B/2:w.length,Se=0;Se<oe;++Se){var Te=w.charCodeAt(Se);Z[I>>1]=Te,I+=2}return Z[I>>1]=0,I-K},Aa=(w,I,B)=>{if(B??=2147483647,B<4)return 0;for(var K=I,oe=K+B-4,Se=0;Se<w.length;++Se){var Te=w.charCodeAt(Se);if(Te>=55296&&Te<=57343){var Ie=w.charCodeAt(++Se);Te=65536+((Te&1023)<<10)|Ie&1023}if(j[I>>2]=Te,I+=4,I+4>oe)break}return j[I>>2]=0,I-K},Vs=w=>{for(var I="";;){var B=H[w++];if(!B)return I;I+=String.fromCharCode(B)}},uu=new TextDecoder("utf-16le"),Tl=(w,I)=>{for(var B=w>>1,K=B+I/2,oe=B;!(oe>=K)&&te[oe];)++oe;return uu.decode(te.subarray(B,oe))},rc=(w,I)=>{for(var B=0,K="";!(B>=I/4);){var oe=j[w+B*4>>2];if(oe==0)break;if(++B,oe>=65536){var Se=oe-65536;K+=String.fromCharCode(55296|Se>>10,56320|Se&1023)}else K+=String.fromCharCode(oe)}return K},tf=w=>{for(var I=[],B=0;B<w.length;B++){var K=w[B];K>255&&(K&=255),I.push(String.fromCharCode(K))}return I.join("")},Gs=xl;d.createPreloadedFile=Wn,d.staticInit(),we.doesNotExistError=new d.ErrnoError(44),we.doesNotExistError.stack="<generic error, no stack>",it(),t.noExitRuntime&&(fn=t.noExitRuntime),t.preloadPlugins&&(Yt=t.preloadPlugins),t.print&&(v=t.print),t.printErr&&(M=t.printErr),t.wasmBinary&&(O=t.wasmBinary),t.arguments&&(f=t.arguments),t.thisProgram&&(p=t.thisProgram),t.getTempRet0=xl,t.ccall=oi,t.cwrap=Ro,t.addFunction=El,t.setValue=kt,t.getValue=Le,t.UTF8ToString=U,t.stringToUTF8=wn,t.lengthBytesUTF8=Oe,t.intArrayFromString=Ct,t.intArrayToString=tf,t.AsciiToString=Vs,t.UTF16ToString=Tl,t.stringToUTF16=Ma,t.UTF32ToString=rc,t.stringToUTF32=Aa,t.writeArrayToMemory=Co,t._getTempRet0=Gs;var me={a:ee,aa:ul,ca:us,ba:Fr,$:Ps,b:Pr,_:fs,y:yo,U:Us,Y:Xa,Q:$r,W:Jr,O:ds,M:bo,L:hs,Z:ps,J:So,I:Fe,ea:Ye,E:He,w:Kt,u:yn,v:Sn,F:ai,P:Vn,n:wr,g:xn,G:vi,R:da,S:Eo,o:Vu,H:Gu,N:ju,x:Qu,V:wo,K:$c,s:Yu,t:cl,la:tu,pa:fl,j:Ku,k:dl,c:Zu,d:hl,ha:Jc,ia:pl,ja:zs,ka:ml,h:_l,i:qs,z:$u,A:xo,e:ef,f:gl,fa:Ju,ga:vl,B:ec,C:yl,p:nu,q:bl,ma:tc,na:To,D:Hn,T:nc,oa:iu,r:ru,l:Sl,m:au,X:su,da:Bs},pe=await lt(),cd=pe.ra,fd=t._powersync_init_static=pe.sa,ce=t._memcpy=pe.ta,ue=t._memset=pe.ua,G_=t._memcmp=pe.va,np=t._sqlite3_status64=pe.wa,dd=t._sqlite3_status=pe.xa,hd=t._sqlite3_msize=pe.ya,yb=t._sqlite3_db_status=pe.za,W_=t._sqlite3_vfs_find=pe.Aa,j_=t._sqlite3_vfs_register=pe.Ba,pd=t._sqlite3_vfs_unregister=pe.Ca,ip=t._sqlite3_release_memory=pe.Da,rp=t._sqlite3_soft_heap_limit64=pe.Ea,Q_=t._sqlite3_memory_used=pe.Fa,Io=t._sqlite3_hard_heap_limit64=pe.Ga,ap=t._sqlite3_memory_highwater=pe.Ha,bb=t._sqlite3_malloc=pe.Ia,X_=t._sqlite3_malloc64=pe.Ja,_s=t._sqlite3_free=pe.Ka,md=t._sqlite3_realloc=pe.La,Y_=t._sqlite3_realloc64=pe.Ma,sp=t._sqlite3_str_vappendf=pe.Na,K_=t._sqlite3_str_append=pe.Oa,Z_=t._sqlite3_str_appendchar=pe.Pa,op=t._sqlite3_str_appendall=pe.Qa,lp=t._sqlite3_str_appendf=pe.Ra,$_=t._sqlite3_str_finish=pe.Sa,_d=t._sqlite3_str_errcode=pe.Ta,nf=t._sqlite3_str_length=pe.Ua,Mi=t._sqlite3_str_value=pe.Va,Sb=t._sqlite3_str_reset=pe.Wa,Eb=t._sqlite3_str_new=pe.Xa,J_=t._sqlite3_vmprintf=pe.Ya,rf=t._sqlite3_mprintf=pe.Za,Ml=t._sqlite3_vsnprintf=pe._a,eg=t._sqlite3_snprintf=pe.$a,tg=t._sqlite3_log=pe.ab,Ws=t._sqlite3_randomness=pe.bb,Mr=t._sqlite3_stricmp=pe.cb,ng=t._sqlite3_strnicmp=pe.db,af=t._sqlite3_os_init=pe.eb,ig=t._sqlite3_os_end=pe.fb,sf=t._sqlite3_serialize=pe.gb,up=t._sqlite3_prepare_v2=pe.hb,cp=t._sqlite3_step=pe.ib,fp=t._sqlite3_column_int64=pe.jb,dp=t._sqlite3_reset=pe.kb,rg=t._sqlite3_exec=pe.lb,hp=t._sqlite3_column_int=pe.mb,pp=t._sqlite3_finalize=pe.nb,gd=t._sqlite3_deserialize=pe.ob,mp=t._sqlite3_database_file_object=pe.pb,ag=t._sqlite3_backup_init=pe.qb,sg=t._sqlite3_backup_step=pe.rb,og=t._sqlite3_backup_finish=pe.sb,lg=t._sqlite3_backup_remaining=pe.tb,ac=t._sqlite3_backup_pagecount=pe.ub,ug=t._sqlite3_clear_bindings=pe.vb,js=t._sqlite3_value_blob=pe.wb,vd=t._sqlite3_value_text=pe.xb,_p=t._sqlite3_value_bytes=pe.yb,gp=t._sqlite3_value_bytes16=pe.zb,vp=t._sqlite3_value_double=pe.Ab,cg=t._sqlite3_value_int=pe.Bb,yp=t._sqlite3_value_int64=pe.Cb,yd=t._sqlite3_value_subtype=pe.Db,fg=t._sqlite3_value_pointer=pe.Eb,bp=t._sqlite3_value_text16=pe.Fb,dg=t._sqlite3_value_text16be=pe.Gb,wb=t._sqlite3_value_text16le=pe.Hb,bd=t._sqlite3_value_type=pe.Ib,hg=t._sqlite3_value_encoding=pe.Jb,Sp=t._sqlite3_value_nochange=pe.Kb,pg=t._sqlite3_value_frombind=pe.Lb,Ep=t._sqlite3_value_dup=pe.Mb,mg=t._sqlite3_value_free=pe.Nb,Ca=t._sqlite3_result_blob=pe.Ob,wp=t._sqlite3_result_blob64=pe.Pb,_g=t._sqlite3_result_double=pe.Qb,gg=t._sqlite3_result_error=pe.Rb,xb=t._sqlite3_result_error16=pe.Sb,Sd=t._sqlite3_result_int=pe.Tb,Ar=t._sqlite3_result_int64=pe.Ub,vg=t._sqlite3_result_null=pe.Vb,zr=t._sqlite3_result_pointer=pe.Wb,yg=t._sqlite3_result_subtype=pe.Xb,sc=t._sqlite3_result_text=pe.Yb,bg=t._sqlite3_result_text64=pe.Zb,Qs=t._sqlite3_result_text16=pe._b,Al=t._sqlite3_result_text16be=pe.$b,gs=t._sqlite3_result_text16le=pe.ac,xp=t._sqlite3_result_value=pe.bc,Tp=t._sqlite3_result_error_toobig=pe.cc,Ka=t._sqlite3_result_zeroblob=pe.dc,Sg=t._sqlite3_result_zeroblob64=pe.ec,oc=t._sqlite3_result_error_code=pe.fc,of=t._sqlite3_result_error_nomem=pe.gc,Cl=t._sqlite3_user_data=pe.hc,Eg=t._sqlite3_context_db_handle=pe.ic,wg=t._sqlite3_vtab_nochange=pe.jc,lf=t._sqlite3_vtab_in_first=pe.kc,xg=t._sqlite3_vtab_in_next=pe.lc,Ed=t._sqlite3_aggregate_context=pe.mc,Tg=t._sqlite3_get_auxdata=pe.nc,Mp=t._sqlite3_set_auxdata=pe.oc,Ap=t._sqlite3_column_count=pe.pc,Cp=t._sqlite3_data_count=pe.qc,Mg=t._sqlite3_column_blob=pe.rc,Rp=t._sqlite3_column_bytes=pe.sc,Ra=t._sqlite3_column_bytes16=pe.tc,Ag=t._sqlite3_column_double=pe.uc,lc=t._sqlite3_column_text=pe.vc,pa=t._sqlite3_column_value=pe.wc,Cg=t._sqlite3_column_text16=pe.xc,Rg=t._sqlite3_column_type=pe.yc,Tb=t._sqlite3_column_name=pe.zc,Rl=t._sqlite3_column_name16=pe.Ac,Ig=t._sqlite3_bind_blob=pe.Bc,Ip=t._sqlite3_bind_blob64=pe.Cc,uc=t._sqlite3_bind_double=pe.Dc,Lg=t._sqlite3_bind_int=pe.Ec,Ng=t._sqlite3_bind_int64=pe.Fc,kg=t._sqlite3_bind_null=pe.Gc,Og=t._sqlite3_bind_pointer=pe.Hc,wd=t._sqlite3_bind_text=pe.Ic,Lp=t._sqlite3_bind_text64=pe.Jc,Mb=t._sqlite3_bind_text16=pe.Kc,Ab=t._sqlite3_bind_value=pe.Lc,Cb=t._sqlite3_bind_zeroblob=pe.Mc,Dg=t._sqlite3_bind_zeroblob64=pe.Nc,Fg=t._sqlite3_bind_parameter_count=pe.Oc,cc=t._sqlite3_bind_parameter_name=pe.Pc,xd=t._sqlite3_bind_parameter_index=pe.Qc,Pg=t._sqlite3_db_handle=pe.Rc,Ug=t._sqlite3_stmt_readonly=pe.Sc,Rb=t._sqlite3_stmt_isexplain=pe.Tc,Ib=t._sqlite3_stmt_explain=pe.Uc,Lb=t._sqlite3_stmt_busy=pe.Vc,Np=t._sqlite3_next_stmt=pe.Wc,kp=t._sqlite3_stmt_status=pe.Xc,Op=t._sqlite3_sql=pe.Yc,zg=t._sqlite3_expanded_sql=pe.Zc,uf=t._sqlite3_value_numeric_type=pe._c,Dp=t._sqlite3_blob_open=pe.$c,qg=t._sqlite3_blob_close=pe.ad,li=t._sqlite3_blob_read=pe.bd,Fp=t._sqlite3_blob_write=pe.cd,Nb=t._sqlite3_blob_bytes=pe.dd,Bg=t._sqlite3_blob_reopen=pe.ed,kb=t._sqlite3_set_authorizer=pe.fd,Ob=t._sqlite3_strglob=pe.gd,Db=t._sqlite3_strlike=pe.hd,Fb=t._sqlite3_errmsg=pe.id,Pp=t._sqlite3_load_extension=pe.jd,Lo=t._sqlite3_enable_load_extension=pe.kd,Hg=t._sqlite3_auto_extension=pe.ld,Td=t._sqlite3_cancel_auto_extension=pe.md,cu=t._sqlite3_reset_auto_extension=pe.nd,Up=t._sqlite3_prepare=pe.od,Vg=t._sqlite3_prepare_v3=pe.pd,zp=t._sqlite3_prepare16=pe.qd,Pb=t._sqlite3_prepare16_v2=pe.rd,Gg=t._sqlite3_prepare16_v3=pe.sd,Wg=t._sqlite3_get_table=pe.td,jg=t._sqlite3_free_table=pe.ud,Qg=t._sqlite3_create_module=pe.vd,Xg=t._sqlite3_create_module_v2=pe.wd,qp=t._sqlite3_drop_modules=pe.xd,qn=t._sqlite3_declare_vtab=pe.yd,Ub=t._sqlite3_vtab_on_conflict=pe.zd,Ia=t._sqlite3_vtab_config=pe.Ad,Bp=t._sqlite3_vtab_collation=pe.Bd,zb=t._sqlite3_vtab_in=pe.Cd,Md=t._sqlite3_vtab_rhs_value=pe.Dd,fc=t._sqlite3_vtab_distinct=pe.Ed,dc=t._sqlite3_keyword_name=pe.Fd,Yg=t._sqlite3_keyword_count=pe.Gd,Hp=t._sqlite3_keyword_check=pe.Hd,Kg=t._sqlite3_complete=pe.Id,No=t._sqlite3_complete16=pe.Jd,Vp=t._sqlite3_libversion=pe.Kd,Gp=t._sqlite3_libversion_number=pe.Ld,Wp=t._sqlite3_threadsafe=pe.Md,jp=t._sqlite3_initialize=pe.Nd,Il=t._sqlite3_shutdown=pe.Od,Qp=t._sqlite3_config=pe.Pd,qb=t._sqlite3_db_mutex=pe.Qd,Bb=t._sqlite3_db_release_memory=pe.Rd,Xp=t._sqlite3_db_cacheflush=pe.Sd,Hb=t._sqlite3_db_config=pe.Td,Zg=t._sqlite3_last_insert_rowid=pe.Ud,$g=t._sqlite3_set_last_insert_rowid=pe.Vd,Vb=t._sqlite3_changes64=pe.Wd,Ad=t._sqlite3_changes=pe.Xd,_n=t._sqlite3_total_changes64=pe.Yd,Gb=t._sqlite3_total_changes=pe.Zd,Wb=t._sqlite3_txn_state=pe._d,Jg=t._sqlite3_close=pe.$d,cf=t._sqlite3_close_v2=pe.ae,jb=t._sqlite3_busy_handler=pe.be,Qb=t._sqlite3_progress_handler=pe.ce,Xb=t._sqlite3_busy_timeout=pe.de,Yb=t._sqlite3_interrupt=pe.ee,Kb=t._sqlite3_is_interrupted=pe.fe,Yp=t._sqlite3_create_function=pe.ge,ev=t._sqlite3_create_function_v2=pe.he,Cd=t._sqlite3_create_window_function=pe.ie,tv=t._sqlite3_create_function16=pe.je,Zb=t._sqlite3_overload_function=pe.ke,$b=t._sqlite3_trace_v2=pe.le,fu=t._sqlite3_commit_hook=pe.me,Xs=t._sqlite3_update_hook=pe.ne,Gi=t._sqlite3_rollback_hook=pe.oe,Ys=t._sqlite3_autovacuum_pages=pe.pe,Cr=t._sqlite3_wal_autocheckpoint=pe.qe,Jb=t._sqlite3_wal_hook=pe.re,eS=t._sqlite3_wal_checkpoint_v2=pe.se,hr=t._sqlite3_wal_checkpoint=pe.te,ko=t._sqlite3_error_offset=pe.ue,tS=t._sqlite3_errmsg16=pe.ve,nS=t._sqlite3_errcode=pe.we,iS=t._sqlite3_extended_errcode=pe.xe,rS=t._sqlite3_system_errno=pe.ye,aS=t._sqlite3_errstr=pe.ze,Kp=t._sqlite3_limit=pe.Ae,nv=t._sqlite3_open=pe.Be,sS=t._sqlite3_open_v2=pe.Ce,iv=t._sqlite3_open16=pe.De,oS=t._sqlite3_create_collation=pe.Ee,lS=t._sqlite3_create_collation_v2=pe.Fe,hc=t._sqlite3_create_collation16=pe.Ge,Oo=t._sqlite3_collation_needed=pe.He,uS=t._sqlite3_collation_needed16=pe.Ie,cS=t._sqlite3_get_clientdata=pe.Je,fS=t._sqlite3_set_clientdata=pe.Ke,ff=t._sqlite3_get_autocommit=pe.Le,dS=t._sqlite3_table_column_metadata=pe.Me,hS=t._sqlite3_sleep=pe.Ne,pS=t._sqlite3_extended_result_codes=pe.Oe,df=t._sqlite3_file_control=pe.Pe,mS=t._sqlite3_test_control=pe.Qe,_S=t._sqlite3_create_filename=pe.Re,gS=t._sqlite3_free_filename=pe.Se,vS=t._sqlite3_uri_parameter=pe.Te,yS=t._sqlite3_uri_key=pe.Ue,bS=t._sqlite3_uri_boolean=pe.Ve,SS=t._sqlite3_uri_int64=pe.We,ES=t._sqlite3_filename_database=pe.Xe,wS=t._sqlite3_filename_journal=pe.Ye,xS=t._sqlite3_filename_wal=pe.Ze,TS=t._sqlite3_db_name=pe._e,MS=t._sqlite3_db_filename=pe.$e,rv=t._sqlite3_db_readonly=pe.af,AS=t._sqlite3_compileoption_used=pe.bf,CS=t._sqlite3_compileoption_get=pe.cf,RS=t._sqlite3_sourceid=pe.df,IS=t._sqlite3mc_config=pe.ef,av=t._sqlite3mc_cipher_count=pe.ff,LS=t._sqlite3mc_cipher_index=pe.gf,Zp=t._sqlite3mc_cipher_name=pe.hf,sv=t._sqlite3mc_config_cipher=pe.jf,NS=t._sqlite3mc_vfs_create=pe.kf,$p=t._malloc=pe.lf,ov=t._free=pe.mf,Rd=t._RegisterExtensionFunctions=pe.nf,kS=t._getSqliteFree=pe.of,Id=t._main=pe.pf,Jp=t._libauthorizer_set_authorizer=pe.qf,lv=t._libfunction_create_function=pe.rf,uv=t._libhook_commit_hook=pe.sf,hf=t._libhook_update_hook=pe.tf,em=t._libprogress_progress_handler=pe.uf,cv=t._libvfs_vfs_register=pe.vf,tm=pe.xf,Ld=pe.yf,nm=pe.zf,fv=pe.Af,Nd=pe.Bf,kd=pe.Cf,dv=t.dynCall_viiiij=pe.dynCall_viiiij,im=t.dynCall_vijii=pe.dynCall_vijii,rm=t.dynCall_iiiij=pe.dynCall_iiiij,am=t.dynCall_viji=pe.dynCall_viji,sm=t.dynCall_iij=pe.dynCall_iij,om=t.dynCall_iijii=pe.dynCall_iijii,OS=t.dynCall_iiji=pe.dynCall_iiji,DS=t.dynCall_iiiiiij=pe.dynCall_iiiiiij,FS=t.dynCall_iiij=pe.dynCall_iiij,PS=t.dynCall_jii=pe.dynCall_jii,hv=t.dynCall_ji=pe.dynCall_ji,US=t.dynCall_vij=pe.dynCall_vij,zS=t.dynCall_iiiiijii=pe.dynCall_iiiiijii,qS=t.dynCall_j=pe.dynCall_j,BS=t.dynCall_jj=pe.dynCall_jj,HS=t.dynCall_jiij=pe.dynCall_jiij,pv=t.dynCall_iiiiji=pe.dynCall_iiiiji,Od=t.dynCall_iiiijii=pe.dynCall_iiiijii,mv=t.dynCall_ij=pe.dynCall_ij,A=t.dynCall_viiji=pe.dynCall_viiji,P=t.dynCall_viijii=pe.dynCall_viijii,W=t.dynCall_iiiijji=pe.dynCall_iiiijji,J=t._sqlite3_version=82296;function de(){var w=Id,I=0,B=0;try{var K=w(I,B);return On(K,!0),K}catch(oe){return En(oe)}}function Ae(){if(We>0){gt=Ae;return}if(Ve(),We>0){gt=Ae;return}function w(){if(t.calledRun=!0,!q){Je(),i(t),t.onRuntimeInitialized?.();var I=t.noInitialRun||!1;I||de(),st()}}t.setStatus?(t.setStatus("Running..."),setTimeout(()=>{setTimeout(()=>t.setStatus(""),1),w()},1)):w()}function qe(){if(t.preInit)for(typeof t.preInit=="function"&&(t.preInit=[t.preInit]);t.preInit.length>0;)t.preInit.shift()()}return qe(),Ae(),(function(){let w=Object.getPrototypeOf(async function(){}).constructor,I=0;t.set_authorizer=function(B,K,oe){I&&(t.deleteCallback(I),t._sqlite3_free(I),I=0),I=t._sqlite3_malloc(4),kt(I,K instanceof w?1:0,"i32");let Se=oi("libauthorizer_set_authorizer","number",["number","number","number"],[B,K?1:0,I]);return!Se&&K&&t.setCallback(I,(Te,Ie,rt,Ut,ln,gn)=>K(oe,Ie,rt,Ut,ln,gn)),Se}})(),(function(){let w=Object.getPrototypeOf(async function(){}).constructor,I=["xFunc","xStep","xFinal"],B=new Map;t.create_function=function(K,oe,Se,Te,Ie,rt,Ut,ln){let gn=t._sqlite3_malloc(4),hn={xFunc:rt,xStep:Ut,xFinal:ln};kt(gn,I.reduce((Dt,Kn,Qn)=>hn[Kn]instanceof w?Dt|1<<Qn:Dt,0),"i32");let un=oi("libfunction_create_function","number",["number","string","number","number","number","number","number","number"],[K,oe,Se,Te,gn,rt?1:0,Ut?1:0,ln?1:0]);if(!un){if(B.has(oe)){let Dt=B.get(oe);t.deleteCallback(Dt)}B.set(oe,gn),t.setCallback(gn,{xFunc:rt,xStep:Ut,xFinal:ln})}return un}})(),(function(){let w=Object.getPrototypeOf(async function(){}).constructor,I=0;t.update_hook=function(B,K){I&&(t.deleteCallback(I),t._sqlite3_free(I),I=0),I=t._sqlite3_malloc(4),kt(I,K instanceof w?1:0,"i32"),oi("libhook_update_hook","void",["number","number","number"],[B,K?1:0,I]),K&&t.setCallback(I,(oe,Se,Te,Ie,rt,Ut)=>K(Se,Te,Ie,rt,Ut))}})(),(function(){let w=Object.getPrototypeOf(async function(){}).constructor,I=0;t.commit_hook=function(B,K){I&&(t.deleteCallback(I),t._sqlite3_free(I),I=0),I=t._sqlite3_malloc(4),kt(I,K instanceof w?1:0,"i32"),oi("libhook_commit_hook","void",["number","number","number"],[B,K?1:0,I]),K&&t.setCallback(I,oe=>K())}})(),(function(){let w=Object.getPrototypeOf(async function(){}).constructor,I=0;t.progress_handler=function(B,K,oe,Se){I&&(t.deleteCallback(I),t._sqlite3_free(I),I=0),I=t._sqlite3_malloc(4),kt(I,oe instanceof w?1:0,"i32"),oi("libprogress_progress_handler","number",["number","number","number","number"],[B,K,oe?1:0,I]),oe&&t.setCallback(I,Te=>oe(Se))}})(),(function(){let w=["xOpen","xDelete","xAccess","xFullPathname","xRandomness","xSleep","xCurrentTime","xGetLastError","xCurrentTimeInt64","xClose","xRead","xWrite","xTruncate","xSync","xFileSize","xLock","xUnlock","xCheckReservedLock","xFileControl","xSectorSize","xDeviceCharacteristics","xShmMap","xShmLock","xShmBarrier","xShmUnmap"],I=new Map;t.vfs_register=function(B,K){let oe=0,Se=0;w.forEach((Ie,rt)=>{B[Ie]&&(oe|=1<<rt,B.hasAsyncMethod(Ie)&&(Se|=1<<rt))});let Te=t._sqlite3_malloc(4);try{let Ie=oi("libvfs_vfs_register","number",["string","number","number","number","number","number"],[B.name,B.mxPathname,oe,Se,K?1:0,Te]);if(!Ie){if(I.has(B.name)){let Ut=I.get(B.name);t.deleteCallback(Ut)}let rt=Le(Te,"*");I.set(B.name,rt),t.setCallback(rt,B)}return Ie}finally{t._sqlite3_free(Te)}}})(),e=a,e}),Cte=Ate});var QH={};pu(QH,{default:()=>Ite});var Rte,Ite,XH=Da(()=>{Rte=(async function(n={}){var e,t=n,i,r,a=new Promise((A,P)=>{i=A,r=P}),s=typeof window=="object",l=typeof WorkerGlobalScope<"u",c=typeof process=="object"&&process.versions?.node&&process.type!="renderer",f=[],p="./this.program",h=(A,P)=>{throw P},_=import.meta.url,g="";function E(A){return t.locateFile?t.locateFile(A,g):g+A}var x,S;if(s||l){try{g=new URL(".",_).href}catch{}l&&(S=A=>{var P=new XMLHttpRequest;return P.open("GET",A,!1),P.responseType="arraybuffer",P.send(null),new Uint8Array(P.response)}),x=async A=>{var P=await fetch(A,{credentials:"same-origin"});if(P.ok)return P.arrayBuffer();throw new Error(P.status+" : "+P.url)}}var v=console.log.bind(console),M=console.error.bind(console),O,k,q=!1,G,Q,H,Z,te,j,he,ke,Me,ze=!1;function Ne(){var A=k.buffer;Q=new Int8Array(A),Z=new Int16Array(A),t.HEAPU8=H=new Uint8Array(A),te=new Uint16Array(A),t.HEAP32=j=new Int32Array(A),he=new Uint32Array(A),ke=new Float32Array(A),Me=new Float64Array(A)}function Ve(){if(t.preRun)for(typeof t.preRun=="function"&&(t.preRun=[t.preRun]);t.preRun.length;)en(t.preRun.shift());vt(qt)}function Je(){ze=!0,!t.noFSInit&&!d.initialized&&d.init(),ht.init(),me.qa(),d.ignorePermissions=!1}function Qe(){}function st(){if(t.postRun)for(typeof t.postRun=="function"&&(t.postRun=[t.postRun]);t.postRun.length;)Ht(t.postRun.shift());vt(Qt)}var We=0,gt=null;function Et(A){return A}function jt(A){We++,t.monitorRunDependencies?.(We)}function zt(A){if(We--,t.monitorRunDependencies?.(We),We==0&&gt){var P=gt;gt=null,P()}}function Mt(A){t.onAbort?.(A),A="Aborted("+A+")",M(A),q=!0,A+=". Build with -sASSERTIONS for more info.";var P=new WebAssembly.RuntimeError(A);throw r(P),P}var Xe;function et(){return t.locateFile?E("wa-sqlite.wasm"):new URL("wa-sqlite.wasm",import.meta.url).href}function yt(A){if(A==Xe&&O)return new Uint8Array(O);if(S)return S(A);throw"both async and sync fetching of the wasm failed"}async function Wt(A){if(!O)try{var P=await x(A);return new Uint8Array(P)}catch{}return yt(A)}async function Lt(A,P){try{var W=await Wt(A),J=await WebAssembly.instantiate(W,P);return J}catch(de){M(`failed to asynchronously prepare wasm: ${de}`),Mt(de)}}async function sn(A,P,W){if(!A&&typeof WebAssembly.instantiateStreaming=="function")try{var J=fetch(P,{credentials:"same-origin"}),de=await WebAssembly.instantiateStreaming(J,W);return de}catch(Ae){M(`wasm streaming compile failed: ${Ae}`),M("falling back to ArrayBuffer instantiation")}return Lt(P,W)}function pn(){return{a:Gs}}async function lt(){function A(Ae,qe){return me=Ae.exports,k=me.pa,Ne(),Zt=me.pf,zt("wasm-instantiate"),me}jt("wasm-instantiate");function P(Ae){return A(Ae.instance)}var W=pn();if(t.instantiateWasm)return new Promise((Ae,qe)=>{t.instantiateWasm(W,(w,I)=>{Ae(A(w,I))})});Xe??=et();try{var J=await sn(O,Xe,W),de=P(J);return de}catch(Ae){return r(Ae),Promise.reject(Ae)}}var _e,Pe;class dt{name="ExitStatus";constructor(P){this.message=`Program terminated with exit(${P})`,this.status=P}}var vt=A=>{for(;A.length>0;)A.shift()(t)},Qt=[],Ht=A=>Qt.push(A),qt=[],en=A=>qt.push(A);function Le(A,P="i8"){switch(P.endsWith("*")&&(P="*"),P){case"i1":return Q[A];case"i8":return Q[A];case"i16":return Z[A>>1];case"i32":return j[A>>2];case"i64":Mt("to do getValue(i64) use WASM_BIGINT");case"float":return ke[A>>2];case"double":return Me[A>>3];case"*":return he[A>>2];default:Mt(`invalid type for getValue: ${P}`)}}var fn=!0;function kt(A,P,W="i8"){switch(W.endsWith("*")&&(W="*"),W){case"i1":Q[A]=P;break;case"i8":Q[A]=P;break;case"i16":Z[A>>1]=P;break;case"i32":j[A>>2]=P;break;case"i64":Mt("to do setValue(i64) use WASM_BIGINT");case"float":ke[A>>2]=P;break;case"double":Me[A>>3]=P;break;case"*":he[A>>2]=P;break;default:Mt(`invalid type for setValue: ${W}`)}}var ge=A=>uv(A),L=()=>em(),N=new TextDecoder,U=(A,P)=>{if(!A)return"";for(var W=A+P,J=A;!(J>=W)&&H[J];)++J;return N.decode(H.subarray(A,J))},ee=(A,P,W,J)=>Mt(`Assertion failed: ${U(A)}, at: `+[P?U(P):"unknown filename",W,J?U(J):"unknown function"]),ne={isAbs:A=>A.charAt(0)==="/",splitPath:A=>{var P=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return P.exec(A).slice(1)},normalizeArray:(A,P)=>{for(var W=0,J=A.length-1;J>=0;J--){var de=A[J];de==="."?A.splice(J,1):de===".."?(A.splice(J,1),W++):W&&(A.splice(J,1),W--)}if(P)for(;W;W--)A.unshift("..");return A},normalize:A=>{var P=ne.isAbs(A),W=A.slice(-1)==="/";return A=ne.normalizeArray(A.split("/").filter(J=>!!J),!P).join("/"),!A&&!P&&(A="."),A&&W&&(A+="/"),(P?"/":"")+A},dirname:A=>{var P=ne.splitPath(A),W=P[0],J=P[1];return!W&&!J?".":(J&&(J=J.slice(0,-1)),W+J)},basename:A=>A&&A.match(/([^\/]+|\/)\/*$/)[1],join:(...A)=>ne.normalize(A.join("/")),join2:(A,P)=>ne.normalize(A+"/"+P)},X=()=>A=>crypto.getRandomValues(A),ie=A=>{(ie=X())(A)},le={resolve:(...A)=>{for(var P="",W=!1,J=A.length-1;J>=-1&&!W;J--){var de=J>=0?A[J]:d.cwd();if(typeof de!="string")throw new TypeError("Arguments to path.resolve must be strings");if(!de)return"";P=de+"/"+P,W=ne.isAbs(de)}return P=ne.normalizeArray(P.split("/").filter(Ae=>!!Ae),!W).join("/"),(W?"/":"")+P||"."},relative:(A,P)=>{A=le.resolve(A).slice(1),P=le.resolve(P).slice(1);function W(B){for(var K=0;K<B.length&&B[K]==="";K++);for(var oe=B.length-1;oe>=0&&B[oe]==="";oe--);return K>oe?[]:B.slice(K,oe-K+1)}for(var J=W(A.split("/")),de=W(P.split("/")),Ae=Math.min(J.length,de.length),qe=Ae,w=0;w<Ae;w++)if(J[w]!==de[w]){qe=w;break}for(var I=[],w=qe;w<J.length;w++)I.push("..");return I=I.concat(de.slice(qe)),I.join("/")}},be=(A,P=0,W=NaN)=>{for(var J=P+W,de=P;A[de]&&!(de>=J);)++de;return N.decode(A.buffer?A.subarray(P,de):new Uint8Array(A.slice(P,de)))},tt=[],Oe=A=>{for(var P=0,W=0;W<A.length;++W){var J=A.charCodeAt(W);J<=127?P++:J<=2047?P+=2:J>=55296&&J<=57343?(P+=4,++W):P+=3}return P},je=(A,P,W,J)=>{if(!(J>0))return 0;for(var de=W,Ae=W+J-1,qe=0;qe<A.length;++qe){var w=A.charCodeAt(qe);if(w>=55296&&w<=57343){var I=A.charCodeAt(++qe);w=65536+((w&1023)<<10)|I&1023}if(w<=127){if(W>=Ae)break;P[W++]=w}else if(w<=2047){if(W+1>=Ae)break;P[W++]=192|w>>6,P[W++]=128|w&63}else if(w<=65535){if(W+2>=Ae)break;P[W++]=224|w>>12,P[W++]=128|w>>6&63,P[W++]=128|w&63}else{if(W+3>=Ae)break;P[W++]=240|w>>18,P[W++]=128|w>>12&63,P[W++]=128|w>>6&63,P[W++]=128|w&63}}return P[W]=0,W-de},Ct=(A,P,W)=>{var J=W>0?W:Oe(A)+1,de=new Array(J),Ae=je(A,de,0,de.length);return P&&(de.length=Ae),de},nn=()=>{if(!tt.length){var A=null;if(typeof window<"u"&&typeof window.prompt=="function"&&(A=window.prompt("Input: "),A!==null&&(A+=`
`)),!A)return null;tt=Ct(A,!0)}return tt.shift()},ht={ttys:[],init(){},shutdown(){},register(A,P){ht.ttys[A]={input:[],output:[],ops:P},d.registerDevice(A,ht.stream_ops)},stream_ops:{open(A){var P=ht.ttys[A.node.rdev];if(!P)throw new d.ErrnoError(43);A.tty=P,A.seekable=!1},close(A){A.tty.ops.fsync(A.tty)},fsync(A){A.tty.ops.fsync(A.tty)},read(A,P,W,J,de){if(!A.tty||!A.tty.ops.get_char)throw new d.ErrnoError(60);for(var Ae=0,qe=0;qe<J;qe++){var w;try{w=A.tty.ops.get_char(A.tty)}catch{throw new d.ErrnoError(29)}if(w===void 0&&Ae===0)throw new d.ErrnoError(6);if(w==null)break;Ae++,P[W+qe]=w}return Ae&&(A.node.atime=Date.now()),Ae},write(A,P,W,J,de){if(!A.tty||!A.tty.ops.put_char)throw new d.ErrnoError(60);try{for(var Ae=0;Ae<J;Ae++)A.tty.ops.put_char(A.tty,P[W+Ae])}catch{throw new d.ErrnoError(29)}return J&&(A.node.mtime=A.node.ctime=Date.now()),Ae}},default_tty_ops:{get_char(A){return nn()},put_char(A,P){P===null||P===10?(v(be(A.output)),A.output=[]):P!=0&&A.output.push(P)},fsync(A){A.output?.length>0&&(v(be(A.output)),A.output=[])},ioctl_tcgets(A){return{c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},ioctl_tcsets(A,P,W){return 0},ioctl_tiocgwinsz(A){return[24,80]}},default_tty1_ops:{put_char(A,P){P===null||P===10?(M(be(A.output)),A.output=[]):P!=0&&A.output.push(P)},fsync(A){A.output?.length>0&&(M(be(A.output)),A.output=[])}}},De=(A,P)=>H.fill(0,A,A+P),bt=(A,P)=>Math.ceil(A/P)*P,at=A=>{A=bt(A,65536);var P=Id(65536,A);return P&&De(P,A),P},we={ops_table:null,mount(A){return we.createNode(null,"/",16895,0)},createNode(A,P,W,J){if(d.isBlkdev(W)||d.isFIFO(W))throw new d.ErrnoError(63);we.ops_table||={dir:{node:{getattr:we.node_ops.getattr,setattr:we.node_ops.setattr,lookup:we.node_ops.lookup,mknod:we.node_ops.mknod,rename:we.node_ops.rename,unlink:we.node_ops.unlink,rmdir:we.node_ops.rmdir,readdir:we.node_ops.readdir,symlink:we.node_ops.symlink},stream:{llseek:we.stream_ops.llseek}},file:{node:{getattr:we.node_ops.getattr,setattr:we.node_ops.setattr},stream:{llseek:we.stream_ops.llseek,read:we.stream_ops.read,write:we.stream_ops.write,mmap:we.stream_ops.mmap,msync:we.stream_ops.msync}},link:{node:{getattr:we.node_ops.getattr,setattr:we.node_ops.setattr,readlink:we.node_ops.readlink},stream:{}},chrdev:{node:{getattr:we.node_ops.getattr,setattr:we.node_ops.setattr},stream:d.chrdev_stream_ops}};var de=d.createNode(A,P,W,J);return d.isDir(de.mode)?(de.node_ops=we.ops_table.dir.node,de.stream_ops=we.ops_table.dir.stream,de.contents={}):d.isFile(de.mode)?(de.node_ops=we.ops_table.file.node,de.stream_ops=we.ops_table.file.stream,de.usedBytes=0,de.contents=null):d.isLink(de.mode)?(de.node_ops=we.ops_table.link.node,de.stream_ops=we.ops_table.link.stream):d.isChrdev(de.mode)&&(de.node_ops=we.ops_table.chrdev.node,de.stream_ops=we.ops_table.chrdev.stream),de.atime=de.mtime=de.ctime=Date.now(),A&&(A.contents[P]=de,A.atime=A.mtime=A.ctime=de.atime),de},getFileDataAsTypedArray(A){return A.contents?A.contents.subarray?A.contents.subarray(0,A.usedBytes):new Uint8Array(A.contents):new Uint8Array(0)},expandFileStorage(A,P){var W=A.contents?A.contents.length:0;if(!(W>=P)){var J=1024*1024;P=Math.max(P,W*(W<J?2:1.125)>>>0),W!=0&&(P=Math.max(P,256));var de=A.contents;A.contents=new Uint8Array(P),A.usedBytes>0&&A.contents.set(de.subarray(0,A.usedBytes),0)}},resizeFileStorage(A,P){if(A.usedBytes!=P)if(P==0)A.contents=null,A.usedBytes=0;else{var W=A.contents;A.contents=new Uint8Array(P),W&&A.contents.set(W.subarray(0,Math.min(P,A.usedBytes))),A.usedBytes=P}},node_ops:{getattr(A){var P={};return P.dev=d.isChrdev(A.mode)?A.id:1,P.ino=A.id,P.mode=A.mode,P.nlink=1,P.uid=0,P.gid=0,P.rdev=A.rdev,d.isDir(A.mode)?P.size=4096:d.isFile(A.mode)?P.size=A.usedBytes:d.isLink(A.mode)?P.size=A.link.length:P.size=0,P.atime=new Date(A.atime),P.mtime=new Date(A.mtime),P.ctime=new Date(A.ctime),P.blksize=4096,P.blocks=Math.ceil(P.size/P.blksize),P},setattr(A,P){for(let W of["mode","atime","mtime","ctime"])P[W]!=null&&(A[W]=P[W]);P.size!==void 0&&we.resizeFileStorage(A,P.size)},lookup(A,P){throw we.doesNotExistError},mknod(A,P,W,J){return we.createNode(A,P,W,J)},rename(A,P,W){var J;try{J=d.lookupNode(P,W)}catch{}if(J){if(d.isDir(A.mode))for(var de in J.contents)throw new d.ErrnoError(55);d.hashRemoveNode(J)}delete A.parent.contents[A.name],P.contents[W]=A,A.name=W,P.ctime=P.mtime=A.parent.ctime=A.parent.mtime=Date.now()},unlink(A,P){delete A.contents[P],A.ctime=A.mtime=Date.now()},rmdir(A,P){var W=d.lookupNode(A,P);for(var J in W.contents)throw new d.ErrnoError(55);delete A.contents[P],A.ctime=A.mtime=Date.now()},readdir(A){return[".","..",...Object.keys(A.contents)]},symlink(A,P,W){var J=we.createNode(A,P,41471,0);return J.link=W,J},readlink(A){if(!d.isLink(A.mode))throw new d.ErrnoError(28);return A.link}},stream_ops:{read(A,P,W,J,de){var Ae=A.node.contents;if(de>=A.node.usedBytes)return 0;var qe=Math.min(A.node.usedBytes-de,J);if(qe>8&&Ae.subarray)P.set(Ae.subarray(de,de+qe),W);else for(var w=0;w<qe;w++)P[W+w]=Ae[de+w];return qe},write(A,P,W,J,de,Ae){if(P.buffer===Q.buffer&&(Ae=!1),!J)return 0;var qe=A.node;if(qe.mtime=qe.ctime=Date.now(),P.subarray&&(!qe.contents||qe.contents.subarray)){if(Ae)return qe.contents=P.subarray(W,W+J),qe.usedBytes=J,J;if(qe.usedBytes===0&&de===0)return qe.contents=P.slice(W,W+J),qe.usedBytes=J,J;if(de+J<=qe.usedBytes)return qe.contents.set(P.subarray(W,W+J),de),J}if(we.expandFileStorage(qe,de+J),qe.contents.subarray&&P.subarray)qe.contents.set(P.subarray(W,W+J),de);else for(var w=0;w<J;w++)qe.contents[de+w]=P[W+w];return qe.usedBytes=Math.max(qe.usedBytes,de+J),J},llseek(A,P,W){var J=P;if(W===1?J+=A.position:W===2&&d.isFile(A.node.mode)&&(J+=A.node.usedBytes),J<0)throw new d.ErrnoError(28);return J},mmap(A,P,W,J,de){if(!d.isFile(A.node.mode))throw new d.ErrnoError(43);var Ae,qe,w=A.node.contents;if(!(de&2)&&w&&w.buffer===Q.buffer)qe=!1,Ae=w.byteOffset;else{if(qe=!0,Ae=at(P),!Ae)throw new d.ErrnoError(48);w&&((W>0||W+P<w.length)&&(w.subarray?w=w.subarray(W,W+P):w=Array.prototype.slice.call(w,W,W+P)),Q.set(w,Ae))}return{ptr:Ae,allocated:qe}},msync(A,P,W,J,de){return we.stream_ops.write(A,P,0,J,W,!1),0}}},Rt=async A=>{var P=await x(A);return new Uint8Array(P)},ft=(...A)=>d.createDataFile(...A),Yt=[],$t=(A,P,W,J)=>{typeof Browser<"u"&&Browser.init();var de=!1;return Yt.forEach(Ae=>{de||Ae.canHandle(P)&&(Ae.handle(A,P,W,J),de=!0)}),de},Wn=(A,P,W,J,de,Ae,qe,w,I,B)=>{var K=P?le.resolve(ne.join2(A,P)):A,oe=`cp ${K}`;function Se(Te){function Ie(rt){B?.(),w||ft(A,P,rt,J,de,I),Ae?.(),zt(oe)}$t(Te,K,Ie,()=>{qe?.(),zt(oe)})||Ie(Te)}jt(oe),typeof W=="string"?Rt(W).then(Se,qe):Se(W)},Un=A=>{var P={r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},W=P[A];if(typeof W>"u")throw new Error(`Unknown file open mode: ${A}`);return W},Ti=(A,P)=>{var W=0;return A&&(W|=365),P&&(W|=146),W},d={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,filesystems:null,syncFSRequests:0,readFiles:{},ErrnoError:class{name="ErrnoError";constructor(A){this.errno=A}},FSStream:class{shared={};get object(){return this.node}set object(A){this.node=A}get isRead(){return(this.flags&2097155)!==1}get isWrite(){return(this.flags&2097155)!==0}get isAppend(){return this.flags&1024}get flags(){return this.shared.flags}set flags(A){this.shared.flags=A}get position(){return this.shared.position}set position(A){this.shared.position=A}},FSNode:class{node_ops={};stream_ops={};readMode=365;writeMode=146;mounted=null;constructor(A,P,W,J){A||(A=this),this.parent=A,this.mount=A.mount,this.id=d.nextInode++,this.name=P,this.mode=W,this.rdev=J,this.atime=this.mtime=this.ctime=Date.now()}get read(){return(this.mode&this.readMode)===this.readMode}set read(A){A?this.mode|=this.readMode:this.mode&=~this.readMode}get write(){return(this.mode&this.writeMode)===this.writeMode}set write(A){A?this.mode|=this.writeMode:this.mode&=~this.writeMode}get isFolder(){return d.isDir(this.mode)}get isDevice(){return d.isChrdev(this.mode)}},lookupPath(A,P={}){if(!A)throw new d.ErrnoError(44);P.follow_mount??=!0,ne.isAbs(A)||(A=d.cwd()+"/"+A);e:for(var W=0;W<40;W++){for(var J=A.split("/").filter(B=>!!B),de=d.root,Ae="/",qe=0;qe<J.length;qe++){var w=qe===J.length-1;if(w&&P.parent)break;if(J[qe]!=="."){if(J[qe]===".."){if(Ae=ne.dirname(Ae),d.isRoot(de)){A=Ae+"/"+J.slice(qe+1).join("/");continue e}else de=de.parent;continue}Ae=ne.join2(Ae,J[qe]);try{de=d.lookupNode(de,J[qe])}catch(B){if(B?.errno===44&&w&&P.noent_okay)return{path:Ae};throw B}if(d.isMountpoint(de)&&(!w||P.follow_mount)&&(de=de.mounted.root),d.isLink(de.mode)&&(!w||P.follow)){if(!de.node_ops.readlink)throw new d.ErrnoError(52);var I=de.node_ops.readlink(de);ne.isAbs(I)||(I=ne.dirname(Ae)+"/"+I),A=I+"/"+J.slice(qe+1).join("/");continue e}}}return{path:Ae,node:de}}throw new d.ErrnoError(32)},getPath(A){for(var P;;){if(d.isRoot(A)){var W=A.mount.mountpoint;return P?W[W.length-1]!=="/"?`${W}/${P}`:W+P:W}P=P?`${A.name}/${P}`:A.name,A=A.parent}},hashName(A,P){for(var W=0,J=0;J<P.length;J++)W=(W<<5)-W+P.charCodeAt(J)|0;return(A+W>>>0)%d.nameTable.length},hashAddNode(A){var P=d.hashName(A.parent.id,A.name);A.name_next=d.nameTable[P],d.nameTable[P]=A},hashRemoveNode(A){var P=d.hashName(A.parent.id,A.name);if(d.nameTable[P]===A)d.nameTable[P]=A.name_next;else for(var W=d.nameTable[P];W;){if(W.name_next===A){W.name_next=A.name_next;break}W=W.name_next}},lookupNode(A,P){var W=d.mayLookup(A);if(W)throw new d.ErrnoError(W);for(var J=d.hashName(A.id,P),de=d.nameTable[J];de;de=de.name_next){var Ae=de.name;if(de.parent.id===A.id&&Ae===P)return de}return d.lookup(A,P)},createNode(A,P,W,J){var de=new d.FSNode(A,P,W,J);return d.hashAddNode(de),de},destroyNode(A){d.hashRemoveNode(A)},isRoot(A){return A===A.parent},isMountpoint(A){return!!A.mounted},isFile(A){return(A&61440)===32768},isDir(A){return(A&61440)===16384},isLink(A){return(A&61440)===40960},isChrdev(A){return(A&61440)===8192},isBlkdev(A){return(A&61440)===24576},isFIFO(A){return(A&61440)===4096},isSocket(A){return(A&49152)===49152},flagsToPermissionString(A){var P=["r","w","rw"][A&3];return A&512&&(P+="w"),P},nodePermissions(A,P){return d.ignorePermissions?0:P.includes("r")&&!(A.mode&292)||P.includes("w")&&!(A.mode&146)||P.includes("x")&&!(A.mode&73)?2:0},mayLookup(A){if(!d.isDir(A.mode))return 54;var P=d.nodePermissions(A,"x");return P||(A.node_ops.lookup?0:2)},mayCreate(A,P){if(!d.isDir(A.mode))return 54;try{var W=d.lookupNode(A,P);return 20}catch{}return d.nodePermissions(A,"wx")},mayDelete(A,P,W){var J;try{J=d.lookupNode(A,P)}catch(Ae){return Ae.errno}var de=d.nodePermissions(A,"wx");if(de)return de;if(W){if(!d.isDir(J.mode))return 54;if(d.isRoot(J)||d.getPath(J)===d.cwd())return 10}else if(d.isDir(J.mode))return 31;return 0},mayOpen(A,P){return A?d.isLink(A.mode)?32:d.isDir(A.mode)&&(d.flagsToPermissionString(P)!=="r"||P&576)?31:d.nodePermissions(A,d.flagsToPermissionString(P)):44},checkOpExists(A,P){if(!A)throw new d.ErrnoError(P);return A},MAX_OPEN_FDS:4096,nextfd(){for(var A=0;A<=d.MAX_OPEN_FDS;A++)if(!d.streams[A])return A;throw new d.ErrnoError(33)},getStreamChecked(A){var P=d.getStream(A);if(!P)throw new d.ErrnoError(8);return P},getStream:A=>d.streams[A],createStream(A,P=-1){return A=Object.assign(new d.FSStream,A),P==-1&&(P=d.nextfd()),A.fd=P,d.streams[P]=A,A},closeStream(A){d.streams[A]=null},dupStream(A,P=-1){var W=d.createStream(A,P);return W.stream_ops?.dup?.(W),W},doSetAttr(A,P,W){var J=A?.stream_ops.setattr,de=J?A:P;J??=P.node_ops.setattr,d.checkOpExists(J,63),J(de,W)},chrdev_stream_ops:{open(A){var P=d.getDevice(A.node.rdev);A.stream_ops=P.stream_ops,A.stream_ops.open?.(A)},llseek(){throw new d.ErrnoError(70)}},major:A=>A>>8,minor:A=>A&255,makedev:(A,P)=>A<<8|P,registerDevice(A,P){d.devices[A]={stream_ops:P}},getDevice:A=>d.devices[A],getMounts(A){for(var P=[],W=[A];W.length;){var J=W.pop();P.push(J),W.push(...J.mounts)}return P},syncfs(A,P){typeof A=="function"&&(P=A,A=!1),d.syncFSRequests++,d.syncFSRequests>1&&M(`warning: ${d.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`);var W=d.getMounts(d.root.mount),J=0;function de(qe){return d.syncFSRequests--,P(qe)}function Ae(qe){if(qe)return Ae.errored?void 0:(Ae.errored=!0,de(qe));++J>=W.length&&de(null)}W.forEach(qe=>{if(!qe.type.syncfs)return Ae(null);qe.type.syncfs(qe,A,Ae)})},mount(A,P,W){var J=W==="/",de=!W,Ae;if(J&&d.root)throw new d.ErrnoError(10);if(!J&&!de){var qe=d.lookupPath(W,{follow_mount:!1});if(W=qe.path,Ae=qe.node,d.isMountpoint(Ae))throw new d.ErrnoError(10);if(!d.isDir(Ae.mode))throw new d.ErrnoError(54)}var w={type:A,opts:P,mountpoint:W,mounts:[]},I=A.mount(w);return I.mount=w,w.root=I,J?d.root=I:Ae&&(Ae.mounted=w,Ae.mount&&Ae.mount.mounts.push(w)),I},unmount(A){var P=d.lookupPath(A,{follow_mount:!1});if(!d.isMountpoint(P.node))throw new d.ErrnoError(28);var W=P.node,J=W.mounted,de=d.getMounts(J);Object.keys(d.nameTable).forEach(qe=>{for(var w=d.nameTable[qe];w;){var I=w.name_next;de.includes(w.mount)&&d.destroyNode(w),w=I}}),W.mounted=null;var Ae=W.mount.mounts.indexOf(J);W.mount.mounts.splice(Ae,1)},lookup(A,P){return A.node_ops.lookup(A,P)},mknod(A,P,W){var J=d.lookupPath(A,{parent:!0}),de=J.node,Ae=ne.basename(A);if(!Ae)throw new d.ErrnoError(28);if(Ae==="."||Ae==="..")throw new d.ErrnoError(20);var qe=d.mayCreate(de,Ae);if(qe)throw new d.ErrnoError(qe);if(!de.node_ops.mknod)throw new d.ErrnoError(63);return de.node_ops.mknod(de,Ae,P,W)},statfs(A){return d.statfsNode(d.lookupPath(A,{follow:!0}).node)},statfsStream(A){return d.statfsNode(A.node)},statfsNode(A){var P={bsize:4096,frsize:4096,blocks:1e6,bfree:5e5,bavail:5e5,files:d.nextInode,ffree:d.nextInode-1,fsid:42,flags:2,namelen:255};return A.node_ops.statfs&&Object.assign(P,A.node_ops.statfs(A.mount.opts.root)),P},create(A,P=438){return P&=4095,P|=32768,d.mknod(A,P,0)},mkdir(A,P=511){return P&=1023,P|=16384,d.mknod(A,P,0)},mkdirTree(A,P){var W=A.split("/"),J="";for(var de of W)if(de){(J||ne.isAbs(A))&&(J+="/"),J+=de;try{d.mkdir(J,P)}catch(Ae){if(Ae.errno!=20)throw Ae}}},mkdev(A,P,W){return typeof W>"u"&&(W=P,P=438),P|=8192,d.mknod(A,P,W)},symlink(A,P){if(!le.resolve(A))throw new d.ErrnoError(44);var W=d.lookupPath(P,{parent:!0}),J=W.node;if(!J)throw new d.ErrnoError(44);var de=ne.basename(P),Ae=d.mayCreate(J,de);if(Ae)throw new d.ErrnoError(Ae);if(!J.node_ops.symlink)throw new d.ErrnoError(63);return J.node_ops.symlink(J,de,A)},rename(A,P){var W=ne.dirname(A),J=ne.dirname(P),de=ne.basename(A),Ae=ne.basename(P),qe,w,I;if(qe=d.lookupPath(A,{parent:!0}),w=qe.node,qe=d.lookupPath(P,{parent:!0}),I=qe.node,!w||!I)throw new d.ErrnoError(44);if(w.mount!==I.mount)throw new d.ErrnoError(75);var B=d.lookupNode(w,de),K=le.relative(A,J);if(K.charAt(0)!==".")throw new d.ErrnoError(28);if(K=le.relative(P,W),K.charAt(0)!==".")throw new d.ErrnoError(55);var oe;try{oe=d.lookupNode(I,Ae)}catch{}if(B!==oe){var Se=d.isDir(B.mode),Te=d.mayDelete(w,de,Se);if(Te)throw new d.ErrnoError(Te);if(Te=oe?d.mayDelete(I,Ae,Se):d.mayCreate(I,Ae),Te)throw new d.ErrnoError(Te);if(!w.node_ops.rename)throw new d.ErrnoError(63);if(d.isMountpoint(B)||oe&&d.isMountpoint(oe))throw new d.ErrnoError(10);if(I!==w&&(Te=d.nodePermissions(w,"w"),Te))throw new d.ErrnoError(Te);d.hashRemoveNode(B);try{w.node_ops.rename(B,I,Ae),B.parent=I}catch(Ie){throw Ie}finally{d.hashAddNode(B)}}},rmdir(A){var P=d.lookupPath(A,{parent:!0}),W=P.node,J=ne.basename(A),de=d.lookupNode(W,J),Ae=d.mayDelete(W,J,!0);if(Ae)throw new d.ErrnoError(Ae);if(!W.node_ops.rmdir)throw new d.ErrnoError(63);if(d.isMountpoint(de))throw new d.ErrnoError(10);W.node_ops.rmdir(W,J),d.destroyNode(de)},readdir(A){var P=d.lookupPath(A,{follow:!0}),W=P.node,J=d.checkOpExists(W.node_ops.readdir,54);return J(W)},unlink(A){var P=d.lookupPath(A,{parent:!0}),W=P.node;if(!W)throw new d.ErrnoError(44);var J=ne.basename(A),de=d.lookupNode(W,J),Ae=d.mayDelete(W,J,!1);if(Ae)throw new d.ErrnoError(Ae);if(!W.node_ops.unlink)throw new d.ErrnoError(63);if(d.isMountpoint(de))throw new d.ErrnoError(10);W.node_ops.unlink(W,J),d.destroyNode(de)},readlink(A){var P=d.lookupPath(A),W=P.node;if(!W)throw new d.ErrnoError(44);if(!W.node_ops.readlink)throw new d.ErrnoError(28);return W.node_ops.readlink(W)},stat(A,P){var W=d.lookupPath(A,{follow:!P}),J=W.node,de=d.checkOpExists(J.node_ops.getattr,63);return de(J)},fstat(A){var P=d.getStreamChecked(A),W=P.node,J=P.stream_ops.getattr,de=J?P:W;return J??=W.node_ops.getattr,d.checkOpExists(J,63),J(de)},lstat(A){return d.stat(A,!0)},doChmod(A,P,W,J){d.doSetAttr(A,P,{mode:W&4095|P.mode&-4096,ctime:Date.now(),dontFollow:J})},chmod(A,P,W){var J;if(typeof A=="string"){var de=d.lookupPath(A,{follow:!W});J=de.node}else J=A;d.doChmod(null,J,P,W)},lchmod(A,P){d.chmod(A,P,!0)},fchmod(A,P){var W=d.getStreamChecked(A);d.doChmod(W,W.node,P,!1)},doChown(A,P,W){d.doSetAttr(A,P,{timestamp:Date.now(),dontFollow:W})},chown(A,P,W,J){var de;if(typeof A=="string"){var Ae=d.lookupPath(A,{follow:!J});de=Ae.node}else de=A;d.doChown(null,de,J)},lchown(A,P,W){d.chown(A,P,W,!0)},fchown(A,P,W){var J=d.getStreamChecked(A);d.doChown(J,J.node,!1)},doTruncate(A,P,W){if(d.isDir(P.mode))throw new d.ErrnoError(31);if(!d.isFile(P.mode))throw new d.ErrnoError(28);var J=d.nodePermissions(P,"w");if(J)throw new d.ErrnoError(J);d.doSetAttr(A,P,{size:W,timestamp:Date.now()})},truncate(A,P){if(P<0)throw new d.ErrnoError(28);var W;if(typeof A=="string"){var J=d.lookupPath(A,{follow:!0});W=J.node}else W=A;d.doTruncate(null,W,P)},ftruncate(A,P){var W=d.getStreamChecked(A);if(P<0||(W.flags&2097155)===0)throw new d.ErrnoError(28);d.doTruncate(W,W.node,P)},utime(A,P,W){var J=d.lookupPath(A,{follow:!0}),de=J.node,Ae=d.checkOpExists(de.node_ops.setattr,63);Ae(de,{atime:P,mtime:W})},open(A,P,W=438){if(A==="")throw new d.ErrnoError(44);P=typeof P=="string"?Un(P):P,P&64?W=W&4095|32768:W=0;var J,de;if(typeof A=="object")J=A;else{de=A.endsWith("/");var Ae=d.lookupPath(A,{follow:!(P&131072),noent_okay:!0});J=Ae.node,A=Ae.path}var qe=!1;if(P&64)if(J){if(P&128)throw new d.ErrnoError(20)}else{if(de)throw new d.ErrnoError(31);J=d.mknod(A,W|511,0),qe=!0}if(!J)throw new d.ErrnoError(44);if(d.isChrdev(J.mode)&&(P&=-513),P&65536&&!d.isDir(J.mode))throw new d.ErrnoError(54);if(!qe){var w=d.mayOpen(J,P);if(w)throw new d.ErrnoError(w)}P&512&&!qe&&d.truncate(J,0),P&=-131713;var I=d.createStream({node:J,path:d.getPath(J),flags:P,seekable:!0,position:0,stream_ops:J.stream_ops,ungotten:[],error:!1});return I.stream_ops.open&&I.stream_ops.open(I),qe&&d.chmod(J,W&511),t.logReadFiles&&!(P&1)&&(A in d.readFiles||(d.readFiles[A]=1)),I},close(A){if(d.isClosed(A))throw new d.ErrnoError(8);A.getdents&&(A.getdents=null);try{A.stream_ops.close&&A.stream_ops.close(A)}catch(P){throw P}finally{d.closeStream(A.fd)}A.fd=null},isClosed(A){return A.fd===null},llseek(A,P,W){if(d.isClosed(A))throw new d.ErrnoError(8);if(!A.seekable||!A.stream_ops.llseek)throw new d.ErrnoError(70);if(W!=0&&W!=1&&W!=2)throw new d.ErrnoError(28);return A.position=A.stream_ops.llseek(A,P,W),A.ungotten=[],A.position},read(A,P,W,J,de){if(J<0||de<0)throw new d.ErrnoError(28);if(d.isClosed(A))throw new d.ErrnoError(8);if((A.flags&2097155)===1)throw new d.ErrnoError(8);if(d.isDir(A.node.mode))throw new d.ErrnoError(31);if(!A.stream_ops.read)throw new d.ErrnoError(28);var Ae=typeof de<"u";if(!Ae)de=A.position;else if(!A.seekable)throw new d.ErrnoError(70);var qe=A.stream_ops.read(A,P,W,J,de);return Ae||(A.position+=qe),qe},write(A,P,W,J,de,Ae){if(J<0||de<0)throw new d.ErrnoError(28);if(d.isClosed(A))throw new d.ErrnoError(8);if((A.flags&2097155)===0)throw new d.ErrnoError(8);if(d.isDir(A.node.mode))throw new d.ErrnoError(31);if(!A.stream_ops.write)throw new d.ErrnoError(28);A.seekable&&A.flags&1024&&d.llseek(A,0,2);var qe=typeof de<"u";if(!qe)de=A.position;else if(!A.seekable)throw new d.ErrnoError(70);var w=A.stream_ops.write(A,P,W,J,de,Ae);return qe||(A.position+=w),w},mmap(A,P,W,J,de){if((J&2)!==0&&(de&2)===0&&(A.flags&2097155)!==2)throw new d.ErrnoError(2);if((A.flags&2097155)===1)throw new d.ErrnoError(2);if(!A.stream_ops.mmap)throw new d.ErrnoError(43);if(!P)throw new d.ErrnoError(28);return A.stream_ops.mmap(A,P,W,J,de)},msync(A,P,W,J,de){return A.stream_ops.msync?A.stream_ops.msync(A,P,W,J,de):0},ioctl(A,P,W){if(!A.stream_ops.ioctl)throw new d.ErrnoError(59);return A.stream_ops.ioctl(A,P,W)},readFile(A,P={}){if(P.flags=P.flags||0,P.encoding=P.encoding||"binary",P.encoding!=="utf8"&&P.encoding!=="binary")throw new Error(`Invalid encoding type "${P.encoding}"`);var W,J=d.open(A,P.flags),de=d.stat(A),Ae=de.size,qe=new Uint8Array(Ae);return d.read(J,qe,0,Ae,0),P.encoding==="utf8"?W=be(qe):P.encoding==="binary"&&(W=qe),d.close(J),W},writeFile(A,P,W={}){W.flags=W.flags||577;var J=d.open(A,W.flags,W.mode);if(typeof P=="string"){var de=new Uint8Array(Oe(P)+1),Ae=je(P,de,0,de.length);d.write(J,de,0,Ae,void 0,W.canOwn)}else if(ArrayBuffer.isView(P))d.write(J,P,0,P.byteLength,void 0,W.canOwn);else throw new Error("Unsupported data type");d.close(J)},cwd:()=>d.currentPath,chdir(A){var P=d.lookupPath(A,{follow:!0});if(P.node===null)throw new d.ErrnoError(44);if(!d.isDir(P.node.mode))throw new d.ErrnoError(54);var W=d.nodePermissions(P.node,"x");if(W)throw new d.ErrnoError(W);d.currentPath=P.path},createDefaultDirectories(){d.mkdir("/tmp"),d.mkdir("/home"),d.mkdir("/home/web_user")},createDefaultDevices(){d.mkdir("/dev"),d.registerDevice(d.makedev(1,3),{read:()=>0,write:(J,de,Ae,qe,w)=>qe,llseek:()=>0}),d.mkdev("/dev/null",d.makedev(1,3)),ht.register(d.makedev(5,0),ht.default_tty_ops),ht.register(d.makedev(6,0),ht.default_tty1_ops),d.mkdev("/dev/tty",d.makedev(5,0)),d.mkdev("/dev/tty1",d.makedev(6,0));var A=new Uint8Array(1024),P=0,W=()=>(P===0&&(ie(A),P=A.byteLength),A[--P]);d.createDevice("/dev","random",W),d.createDevice("/dev","urandom",W),d.mkdir("/dev/shm"),d.mkdir("/dev/shm/tmp")},createSpecialDirectories(){d.mkdir("/proc");var A=d.mkdir("/proc/self");d.mkdir("/proc/self/fd"),d.mount({mount(){var P=d.createNode(A,"fd",16895,73);return P.stream_ops={llseek:we.stream_ops.llseek},P.node_ops={lookup(W,J){var de=+J,Ae=d.getStreamChecked(de),qe={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>Ae.path},id:de+1};return qe.parent=qe,qe},readdir(){return Array.from(d.streams.entries()).filter(([W,J])=>J).map(([W,J])=>W.toString())}},P}},{},"/proc/self/fd")},createStandardStreams(A,P,W){A?d.createDevice("/dev","stdin",A):d.symlink("/dev/tty","/dev/stdin"),P?d.createDevice("/dev","stdout",null,P):d.symlink("/dev/tty","/dev/stdout"),W?d.createDevice("/dev","stderr",null,W):d.symlink("/dev/tty1","/dev/stderr");var J=d.open("/dev/stdin",0),de=d.open("/dev/stdout",1),Ae=d.open("/dev/stderr",1)},staticInit(){d.nameTable=new Array(4096),d.mount(we,{},"/"),d.createDefaultDirectories(),d.createDefaultDevices(),d.createSpecialDirectories(),d.filesystems={MEMFS:we}},init(A,P,W){d.initialized=!0,A??=t.stdin,P??=t.stdout,W??=t.stderr,d.createStandardStreams(A,P,W)},quit(){d.initialized=!1;for(var A of d.streams)A&&d.close(A)},findObject(A,P){var W=d.analyzePath(A,P);return W.exists?W.object:null},analyzePath(A,P){try{var W=d.lookupPath(A,{follow:!P});A=W.path}catch{}var J={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var W=d.lookupPath(A,{parent:!0});J.parentExists=!0,J.parentPath=W.path,J.parentObject=W.node,J.name=ne.basename(A),W=d.lookupPath(A,{follow:!P}),J.exists=!0,J.path=W.path,J.object=W.node,J.name=W.node.name,J.isRoot=W.path==="/"}catch(de){J.error=de.errno}return J},createPath(A,P,W,J){A=typeof A=="string"?A:d.getPath(A);for(var de=P.split("/").reverse();de.length;){var Ae=de.pop();if(Ae){var qe=ne.join2(A,Ae);try{d.mkdir(qe)}catch(w){if(w.errno!=20)throw w}A=qe}}return qe},createFile(A,P,W,J,de){var Ae=ne.join2(typeof A=="string"?A:d.getPath(A),P),qe=Ti(J,de);return d.create(Ae,qe)},createDataFile(A,P,W,J,de,Ae){var qe=P;A&&(A=typeof A=="string"?A:d.getPath(A),qe=P?ne.join2(A,P):A);var w=Ti(J,de),I=d.create(qe,w);if(W){if(typeof W=="string"){for(var B=new Array(W.length),K=0,oe=W.length;K<oe;++K)B[K]=W.charCodeAt(K);W=B}d.chmod(I,w|146);var Se=d.open(I,577);d.write(Se,W,0,W.length,0,Ae),d.close(Se),d.chmod(I,w)}},createDevice(A,P,W,J){var de=ne.join2(typeof A=="string"?A:d.getPath(A),P),Ae=Ti(!!W,!!J);d.createDevice.major??=64;var qe=d.makedev(d.createDevice.major++,0);return d.registerDevice(qe,{open(w){w.seekable=!1},close(w){J?.buffer?.length&&J(10)},read(w,I,B,K,oe){for(var Se=0,Te=0;Te<K;Te++){var Ie;try{Ie=W()}catch{throw new d.ErrnoError(29)}if(Ie===void 0&&Se===0)throw new d.ErrnoError(6);if(Ie==null)break;Se++,I[B+Te]=Ie}return Se&&(w.node.atime=Date.now()),Se},write(w,I,B,K,oe){for(var Se=0;Se<K;Se++)try{J(I[B+Se])}catch{throw new d.ErrnoError(29)}return K&&(w.node.mtime=w.node.ctime=Date.now()),Se}}),d.mkdev(de,Ae,qe)},forceLoadFile(A){if(A.isDevice||A.isFolder||A.link||A.contents)return!0;if(typeof XMLHttpRequest<"u")throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.");try{A.contents=S(A.url),A.usedBytes=A.contents.length}catch{throw new d.ErrnoError(29)}},createLazyFile(A,P,W,J,de){class Ae{lengthKnown=!1;chunks=[];get(Te){if(!(Te>this.length-1||Te<0)){var Ie=Te%this.chunkSize,rt=Te/this.chunkSize|0;return this.getter(rt)[Ie]}}setDataGetter(Te){this.getter=Te}cacheLength(){var Te=new XMLHttpRequest;if(Te.open("HEAD",W,!1),Te.send(null),!(Te.status>=200&&Te.status<300||Te.status===304))throw new Error("Couldn't load "+W+". Status: "+Te.status);var Ie=Number(Te.getResponseHeader("Content-length")),rt,Ut=(rt=Te.getResponseHeader("Accept-Ranges"))&&rt==="bytes",ln=(rt=Te.getResponseHeader("Content-Encoding"))&&rt==="gzip",gn=1024*1024;Ut||(gn=Ie);var hn=(Dt,Kn)=>{if(Dt>Kn)throw new Error("invalid range ("+Dt+", "+Kn+") or no bytes requested!");if(Kn>Ie-1)throw new Error("only "+Ie+" bytes available! programmer error!");var Qn=new XMLHttpRequest;if(Qn.open("GET",W,!1),Ie!==gn&&Qn.setRequestHeader("Range","bytes="+Dt+"-"+Kn),Qn.responseType="arraybuffer",Qn.overrideMimeType&&Qn.overrideMimeType("text/plain; charset=x-user-defined"),Qn.send(null),!(Qn.status>=200&&Qn.status<300||Qn.status===304))throw new Error("Couldn't load "+W+". Status: "+Qn.status);return Qn.response!==void 0?new Uint8Array(Qn.response||[]):Ct(Qn.responseText||"",!0)},un=this;un.setDataGetter(Dt=>{var Kn=Dt*gn,Qn=(Dt+1)*gn-1;if(Qn=Math.min(Qn,Ie-1),typeof un.chunks[Dt]>"u"&&(un.chunks[Dt]=hn(Kn,Qn)),typeof un.chunks[Dt]>"u")throw new Error("doXHR failed!");return un.chunks[Dt]}),(ln||!Ie)&&(gn=Ie=1,Ie=this.getter(0).length,gn=Ie,v("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=Ie,this._chunkSize=gn,this.lengthKnown=!0}get length(){return this.lengthKnown||this.cacheLength(),this._length}get chunkSize(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}if(typeof XMLHttpRequest<"u"){if(!l)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var qe=new Ae,w={isDevice:!1,contents:qe}}else var w={isDevice:!1,url:W};var I=d.createFile(A,P,w,J,de);w.contents?I.contents=w.contents:w.url&&(I.contents=null,I.url=w.url),Object.defineProperties(I,{usedBytes:{get:function(){return this.contents.length}}});var B={},K=Object.keys(I.stream_ops);K.forEach(Se=>{var Te=I.stream_ops[Se];B[Se]=(...Ie)=>(d.forceLoadFile(I),Te(...Ie))});function oe(Se,Te,Ie,rt,Ut){var ln=Se.node.contents;if(Ut>=ln.length)return 0;var gn=Math.min(ln.length-Ut,rt);if(ln.slice)for(var hn=0;hn<gn;hn++)Te[Ie+hn]=ln[Ut+hn];else for(var hn=0;hn<gn;hn++)Te[Ie+hn]=ln.get(Ut+hn);return gn}return B.read=(Se,Te,Ie,rt,Ut)=>(d.forceLoadFile(I),oe(Se,Te,Ie,rt,Ut)),B.mmap=(Se,Te,Ie,rt,Ut)=>{d.forceLoadFile(I);var ln=at(Te);if(!ln)throw new d.ErrnoError(48);return oe(Se,Q,ln,Te,Ie),{ptr:ln,allocated:!0}},I.stream_ops=B,I}},Ke={DEFAULT_POLLMASK:5,calculateAt(A,P,W){if(ne.isAbs(P))return P;var J;if(A===-100)J=d.cwd();else{var de=Ke.getStreamFromFD(A);J=de.path}if(P.length==0){if(!W)throw new d.ErrnoError(44);return J}return J+"/"+P},writeStat(A,P){j[A>>2]=P.dev,j[A+4>>2]=P.mode,he[A+8>>2]=P.nlink,j[A+12>>2]=P.uid,j[A+16>>2]=P.gid,j[A+20>>2]=P.rdev,Pe=[P.size>>>0,(_e=P.size,+Math.abs(_e)>=1?_e>0?+Math.floor(_e/4294967296)>>>0:~~+Math.ceil((_e-+(~~_e>>>0))/4294967296)>>>0:0)],j[A+24>>2]=Pe[0],j[A+28>>2]=Pe[1],j[A+32>>2]=4096,j[A+36>>2]=P.blocks;var W=P.atime.getTime(),J=P.mtime.getTime(),de=P.ctime.getTime();return Pe=[Math.floor(W/1e3)>>>0,(_e=Math.floor(W/1e3),+Math.abs(_e)>=1?_e>0?+Math.floor(_e/4294967296)>>>0:~~+Math.ceil((_e-+(~~_e>>>0))/4294967296)>>>0:0)],j[A+40>>2]=Pe[0],j[A+44>>2]=Pe[1],he[A+48>>2]=W%1e3*1e3*1e3,Pe=[Math.floor(J/1e3)>>>0,(_e=Math.floor(J/1e3),+Math.abs(_e)>=1?_e>0?+Math.floor(_e/4294967296)>>>0:~~+Math.ceil((_e-+(~~_e>>>0))/4294967296)>>>0:0)],j[A+56>>2]=Pe[0],j[A+60>>2]=Pe[1],he[A+64>>2]=J%1e3*1e3*1e3,Pe=[Math.floor(de/1e3)>>>0,(_e=Math.floor(de/1e3),+Math.abs(_e)>=1?_e>0?+Math.floor(_e/4294967296)>>>0:~~+Math.ceil((_e-+(~~_e>>>0))/4294967296)>>>0:0)],j[A+72>>2]=Pe[0],j[A+76>>2]=Pe[1],he[A+80>>2]=de%1e3*1e3*1e3,Pe=[P.ino>>>0,(_e=P.ino,+Math.abs(_e)>=1?_e>0?+Math.floor(_e/4294967296)>>>0:~~+Math.ceil((_e-+(~~_e>>>0))/4294967296)>>>0:0)],j[A+88>>2]=Pe[0],j[A+92>>2]=Pe[1],0},writeStatFs(A,P){j[A+4>>2]=P.bsize,j[A+40>>2]=P.bsize,j[A+8>>2]=P.blocks,j[A+12>>2]=P.bfree,j[A+16>>2]=P.bavail,j[A+20>>2]=P.files,j[A+24>>2]=P.ffree,j[A+28>>2]=P.fsid,j[A+44>>2]=P.flags,j[A+36>>2]=P.namelen},doMsync(A,P,W,J,de){if(!d.isFile(P.node.mode))throw new d.ErrnoError(43);if(J&2)return 0;var Ae=H.slice(A,A+W);d.msync(P,Ae,de,W,J)},getStreamFromFD(A){var P=d.getStreamChecked(A);return P},varargs:void 0,getStr(A){var P=U(A);return P}};function ul(A,P){try{return A=Ke.getStr(A),d.chmod(A,P),0}catch(W){if(typeof d>"u"||W.name!=="ErrnoError")throw W;return-W.errno}}function us(A,P,W,J){try{if(P=Ke.getStr(P),P=Ke.calculateAt(A,P),W&-8)return-28;var de=d.lookupPath(P,{follow:!0}),Ae=de.node;if(!Ae)return-44;var qe="";return W&4&&(qe+="r"),W&2&&(qe+="w"),W&1&&(qe+="x"),qe&&d.nodePermissions(Ae,qe)?-2:0}catch(w){if(typeof d>"u"||w.name!=="ErrnoError")throw w;return-w.errno}}function Fr(A,P){try{return d.fchmod(A,P),0}catch(W){if(typeof d>"u"||W.name!=="ErrnoError")throw W;return-W.errno}}function Ps(A,P,W){try{return d.fchown(A,P,W),0}catch(J){if(typeof d>"u"||J.name!=="ErrnoError")throw J;return-J.errno}}var er=()=>{var A=j[+Ke.varargs>>2];return Ke.varargs+=4,A},cs=er;function Pr(A,P,W){Ke.varargs=W;try{var J=Ke.getStreamFromFD(A);switch(P){case 0:{var de=er();if(de<0)return-28;for(;d.streams[de];)de++;var Ae;return Ae=d.dupStream(J,de),Ae.fd}case 1:case 2:return 0;case 3:return J.flags;case 4:{var de=er();return J.flags|=de,0}case 12:{var de=cs(),qe=0;return Z[de+qe>>1]=2,0}case 13:case 14:return 0}return-28}catch(w){if(typeof d>"u"||w.name!=="ErrnoError")throw w;return-w.errno}}function fs(A,P){try{return Ke.writeStat(P,d.fstat(A))}catch(W){if(typeof d>"u"||W.name!=="ErrnoError")throw W;return-W.errno}}var hi=(A,P)=>P+2097152>>>0<4194305-!!A?(A>>>0)+P*4294967296:NaN;function yo(A,P,W){var J=hi(P,W);try{return isNaN(J)?-61:(d.ftruncate(A,J),0)}catch(de){if(typeof d>"u"||de.name!=="ErrnoError")throw de;return-de.errno}}var wn=(A,P,W)=>je(A,H,P,W);function Us(A,P){try{if(P===0)return-28;var W=d.cwd(),J=Oe(W)+1;return P<J?-68:(wn(W,A,P),J)}catch(de){if(typeof d>"u"||de.name!=="ErrnoError")throw de;return-de.errno}}function Xa(A,P){try{return A=Ke.getStr(A),Ke.writeStat(P,d.lstat(A))}catch(W){if(typeof d>"u"||W.name!=="ErrnoError")throw W;return-W.errno}}function $r(A,P,W){try{return P=Ke.getStr(P),P=Ke.calculateAt(A,P),d.mkdir(P,W,0),0}catch(J){if(typeof d>"u"||J.name!=="ErrnoError")throw J;return-J.errno}}function Jr(A,P,W,J){try{P=Ke.getStr(P);var de=J&256,Ae=J&4096;return J=J&-6401,P=Ke.calculateAt(A,P,Ae),Ke.writeStat(W,de?d.lstat(P):d.stat(P))}catch(qe){if(typeof d>"u"||qe.name!=="ErrnoError")throw qe;return-qe.errno}}function ds(A,P,W,J){Ke.varargs=J;try{P=Ke.getStr(P),P=Ke.calculateAt(A,P);var de=J?er():0;return d.open(P,W,de).fd}catch(Ae){if(typeof d>"u"||Ae.name!=="ErrnoError")throw Ae;return-Ae.errno}}function bo(A,P,W,J){try{if(P=Ke.getStr(P),P=Ke.calculateAt(A,P),J<=0)return-28;var de=d.readlink(P),Ae=Math.min(J,Oe(de)),qe=Q[W+Ae];return wn(de,W,J+1),Q[W+Ae]=qe,Ae}catch(w){if(typeof d>"u"||w.name!=="ErrnoError")throw w;return-w.errno}}function hs(A){try{return A=Ke.getStr(A),d.rmdir(A),0}catch(P){if(typeof d>"u"||P.name!=="ErrnoError")throw P;return-P.errno}}function ps(A,P){try{return A=Ke.getStr(A),Ke.writeStat(P,d.stat(A))}catch(W){if(typeof d>"u"||W.name!=="ErrnoError")throw W;return-W.errno}}function So(A,P,W){try{if(P=Ke.getStr(P),P=Ke.calculateAt(A,P),!W)d.unlink(P);else if(W===512)d.rmdir(P);else return-28;return 0}catch(J){if(typeof d>"u"||J.name!=="ErrnoError")throw J;return-J.errno}}var ae=A=>he[A>>2]+j[A+4>>2]*4294967296;function Fe(A,P,W,J){try{P=Ke.getStr(P),P=Ke.calculateAt(A,P,!0);var de=Date.now(),Ae,qe;if(!W)Ae=de,qe=de;else{var w=ae(W),I=j[W+8>>2];I==1073741823?Ae=de:I==1073741822?Ae=null:Ae=w*1e3+I/1e6,W+=16,w=ae(W),I=j[W+8>>2],I==1073741823?qe=de:I==1073741822?qe=null:qe=w*1e3+I/1e6}return(qe??Ae)!==null&&d.utime(P,Ae,qe),0}catch(B){if(typeof d>"u"||B.name!=="ErrnoError")throw B;return-B.errno}}var Ye=()=>Mt(""),Be=0,He=()=>{fn=!1,Be=0},It=A=>A%4===0&&(A%100!==0||A%400===0),Bt=[0,31,60,91,121,152,182,213,244,274,305,335],wt=[0,31,59,90,120,151,181,212,243,273,304,334],Nt=A=>{var P=It(A.getFullYear()),W=P?Bt:wt,J=W[A.getMonth()]+A.getDate()-1;return J};function Kt(A,P,W){var J=hi(A,P),de=new Date(J*1e3);j[W>>2]=de.getSeconds(),j[W+4>>2]=de.getMinutes(),j[W+8>>2]=de.getHours(),j[W+12>>2]=de.getDate(),j[W+16>>2]=de.getMonth(),j[W+20>>2]=de.getFullYear()-1900,j[W+24>>2]=de.getDay();var Ae=Nt(de)|0;j[W+28>>2]=Ae,j[W+36>>2]=-(de.getTimezoneOffset()*60);var qe=new Date(de.getFullYear(),0,1),w=new Date(de.getFullYear(),6,1).getTimezoneOffset(),I=qe.getTimezoneOffset(),B=(w!=I&&de.getTimezoneOffset()==Math.min(I,w))|0;j[W+32>>2]=B}function yn(A,P,W,J,de,Ae,qe,w){var I=hi(de,Ae);try{var B=Ke.getStreamFromFD(J),K=d.mmap(B,A,I,P,W),oe=K.ptr;return j[qe>>2]=K.allocated,he[w>>2]=oe,0}catch(Se){if(typeof d>"u"||Se.name!=="ErrnoError")throw Se;return-Se.errno}}function Sn(A,P,W,J,de,Ae,qe){var w=hi(Ae,qe);try{var I=Ke.getStreamFromFD(de);W&2&&Ke.doMsync(A,I,P,J,w)}catch(B){if(typeof d>"u"||B.name!=="ErrnoError")throw B;return-B.errno}}var _t={},En=A=>{if(A instanceof dt||A=="unwind")return G;h(1,A)},ri=()=>fn||Be>0,Hn=A=>{G=A,ri()||(t.onExit?.(A),q=!0),h(A,new dt(A))},On=(A,P)=>{G=A,Hn(A)},Xi=On,Pt=()=>{if(!ri())try{Xi(G)}catch(A){En(A)}},Oi=A=>{if(!q)try{A(),Pt()}catch(P){En(P)}},xn=()=>performance.now(),ai=(A,P)=>{if(_t[A]&&(clearTimeout(_t[A].id),delete _t[A]),!P)return 0;var W=setTimeout(()=>{delete _t[A],Oi(()=>Jp(A,xn()))},P);return _t[A]={id:W,timeout_ms:P},0},Vn=(A,P,W,J)=>{var de=new Date().getFullYear(),Ae=new Date(de,0,1),qe=new Date(de,6,1),w=Ae.getTimezoneOffset(),I=qe.getTimezoneOffset(),B=Math.max(w,I);he[A>>2]=B*60,j[P>>2]=+(w!=I);var K=Te=>{var Ie=Te>=0?"-":"+",rt=Math.abs(Te),Ut=String(Math.floor(rt/60)).padStart(2,"0"),ln=String(rt%60).padStart(2,"0");return`UTC${Ie}${Ut}${ln}`},oe=K(w),Se=K(I);I<w?(wn(oe,W,17),wn(Se,J,17)):(wn(oe,J,17),wn(Se,W,17))},wr=()=>Date.now(),Ur=()=>2147483648,zn=A=>{var P=k.buffer,W=(A-P.byteLength+65535)/65536|0;try{return k.grow(W),Ne(),1}catch{}},vi=A=>{var P=H.length;A>>>=0;var W=Ur();if(A>W)return!1;for(var J=1;J<=4;J*=2){var de=P*(1+.2/J);de=Math.min(de,A+100663296);var Ae=Math.min(W,bt(Math.max(A,de),65536)),qe=zn(Ae);if(qe)return!0}return!1},pi={},jn=()=>p||"./this.program",si=()=>{if(!si.strings){var A=(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",P={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:A,_:jn()};for(var W in pi)pi[W]===void 0?delete P[W]:P[W]=pi[W];var J=[];for(var W in P)J.push(`${W}=${P[W]}`);si.strings=J}return si.strings},da=(A,P)=>{var W=0,J=0;for(var de of si()){var Ae=P+W;he[A+J>>2]=Ae,W+=wn(de,Ae,1/0)+1,J+=4}return 0},Eo=(A,P)=>{var W=si();he[A>>2]=W.length;var J=0;for(var de of W)J+=Oe(de)+1;return he[P>>2]=J,0};function Vu(A){try{var P=Ke.getStreamFromFD(A);return d.close(P),0}catch(W){if(typeof d>"u"||W.name!=="ErrnoError")throw W;return W.errno}}function Gu(A,P){try{var W=0,J=0,de=0,Ae=Ke.getStreamFromFD(A),qe=Ae.tty?2:d.isDir(Ae.mode)?3:d.isLink(Ae.mode)?7:4;return Q[P]=qe,Z[P+2>>1]=de,Pe=[W>>>0,(_e=W,+Math.abs(_e)>=1?_e>0?+Math.floor(_e/4294967296)>>>0:~~+Math.ceil((_e-+(~~_e>>>0))/4294967296)>>>0:0)],j[P+8>>2]=Pe[0],j[P+12>>2]=Pe[1],Pe=[J>>>0,(_e=J,+Math.abs(_e)>=1?_e>0?+Math.floor(_e/4294967296)>>>0:~~+Math.ceil((_e-+(~~_e>>>0))/4294967296)>>>0:0)],j[P+16>>2]=Pe[0],j[P+20>>2]=Pe[1],0}catch(w){if(typeof d>"u"||w.name!=="ErrnoError")throw w;return w.errno}}var Wu=(A,P,W,J)=>{for(var de=0,Ae=0;Ae<W;Ae++){var qe=he[P>>2],w=he[P+4>>2];P+=8;var I=d.read(A,Q,qe,w,J);if(I<0)return-1;if(de+=I,I<w)break;typeof J<"u"&&(J+=I)}return de};function ju(A,P,W,J){try{var de=Ke.getStreamFromFD(A),Ae=Wu(de,P,W);return he[J>>2]=Ae,0}catch(qe){if(typeof d>"u"||qe.name!=="ErrnoError")throw qe;return qe.errno}}function Qu(A,P,W,J,de){var Ae=hi(P,W);try{if(isNaN(Ae))return 61;var qe=Ke.getStreamFromFD(A);return d.llseek(qe,Ae,J),Pe=[qe.position>>>0,(_e=qe.position,+Math.abs(_e)>=1?_e>0?+Math.floor(_e/4294967296)>>>0:~~+Math.ceil((_e-+(~~_e>>>0))/4294967296)>>>0:0)],j[de>>2]=Pe[0],j[de+4>>2]=Pe[1],qe.getdents&&Ae===0&&J===0&&(qe.getdents=null),0}catch(w){if(typeof d>"u"||w.name!=="ErrnoError")throw w;return w.errno}}function wo(A){try{var P=Ke.getStreamFromFD(A);return P.stream_ops?.fsync?P.stream_ops.fsync(P):0}catch(W){if(typeof d>"u"||W.name!=="ErrnoError")throw W;return W.errno}}var Xu=(A,P,W,J)=>{for(var de=0,Ae=0;Ae<W;Ae++){var qe=he[P>>2],w=he[P+4>>2];P+=8;var I=d.write(A,Q,qe,w,J);if(I<0)return-1;if(de+=I,I<w)break;typeof J<"u"&&(J+=I)}return de};function $c(A,P,W,J){try{var de=Ke.getStreamFromFD(A),Ae=Xu(de,P,W);return he[J>>2]=Ae,0}catch(qe){if(typeof d>"u"||qe.name!=="ErrnoError")throw qe;return qe.errno}}var it=function(){let A=typeof Asyncify=="object"?Asyncify.handleAsync.bind(Asyncify):null;t.handleAsync=A;let P=new Map;t.setCallback=(W,J)=>P.set(W,J),t.getCallback=W=>P.get(W),t.deleteCallback=W=>P.delete(W),it=function(W,J,...de){let Ae=P.get(J),qe=null,w=typeof Ae=="function"?Ae:Ae[qe=U(de.shift())];if(W){if(A)return A(()=>w.apply(Ae,de));throw new Error("Synchronous WebAssembly cannot call async function")}let I=w.apply(Ae,de);if(typeof I?.then=="function")throw console.error("unexpected Promise",w),new Error(`${qe} unexpectedly returned a Promise`);return I}};function Yu(...A){return it(!1,...A)}function cl(...A){return it(!0,...A)}function tu(...A){return it(!1,...A)}function fl(...A){return it(!0,...A)}function Ku(...A){return it(!1,...A)}function dl(...A){return it(!0,...A)}function Zu(...A){return it(!1,...A)}function hl(...A){return it(!0,...A)}function Jc(...A){return it(!1,...A)}function pl(...A){return it(!0,...A)}function zs(...A){return it(!1,...A)}function ml(...A){return it(!0,...A)}function _l(...A){return it(!1,...A)}function qs(...A){return it(!0,...A)}function $u(...A){return it(!1,...A)}function xo(...A){return it(!0,...A)}function ef(...A){return it(!1,...A)}function gl(...A){return it(!0,...A)}function Ju(...A){return it(!1,...A)}function vl(...A){return it(!0,...A)}function ec(...A){return it(!1,...A)}function yl(...A){return it(!0,...A)}function nu(...A){return it(!1,...A)}function bl(...A){return it(!0,...A)}function tc(...A){return it(!1,...A)}function To(...A){return it(!0,...A)}function nc(...A){return it(!1,...A)}function iu(...A){return it(!0,...A)}function ru(...A){return it(!1,...A)}function Sl(...A){return it(!0,...A)}function au(...A){return it(!1,...A)}function su(...A){return it(!0,...A)}var Bs=(A,P)=>{A<128?P.push(A):P.push(A%128|128,A>>7)},Mo=A=>{for(var P={i:"i32",j:"i64",f:"f32",d:"f64",e:"externref",p:"i32"},W={parameters:[],results:A[0]=="v"?[]:[P[A[0]]]},J=1;J<A.length;++J)W.parameters.push(P[A[J]]);return W},ic=(A,P)=>{var W=A.slice(0,1),J=A.slice(1),de={i:127,p:127,j:126,f:125,d:124,e:111};P.push(96),Bs(J.length,P);for(var Ae of J)P.push(de[Ae]);W=="v"?P.push(0):P.push(1,de[W])},Ao=(A,P)=>{if(typeof WebAssembly.Function=="function")return new WebAssembly.Function(Mo(P),A);var W=[1];ic(P,W);var J=[0,97,115,109,1,0,0,0,1];Bs(W.length,J),J.push(...W),J.push(2,7,1,1,101,1,102,0,0,7,5,1,1,102,0,0);var de=new WebAssembly.Module(new Uint8Array(J)),Ae=new WebAssembly.Instance(de,{e:{f:A}}),qe=Ae.exports.f;return qe},Zt,Xt=A=>Zt.get(A),ou=(A,P)=>{if(ms)for(var W=A;W<A+P;W++){var J=Xt(W);J&&ms.set(J,W)}},ms,xr=A=>(ms||(ms=new WeakMap,ou(0,Zt.length)),ms.get(A)||0),Ya=[],lu=()=>{if(Ya.length)return Ya.pop();try{Zt.grow(1)}catch(A){throw A instanceof RangeError?"Unable to grow wasm table. Set ALLOW_TABLE_GROWTH.":A}return Zt.length-1},Tr=(A,P)=>Zt.set(A,P),ha=(A,P)=>{var W=xr(A);if(W)return W;var J=lu();try{Tr(J,A)}catch(Ae){if(!(Ae instanceof TypeError))throw Ae;var de=Ao(A,P);Tr(J,de)}return ms.set(A,J),J},El=A=>{var P=t["_"+A];return P},Hs=(A,P)=>{Q.set(A,P)},Co=A=>hf(A),wl=A=>{var P=Oe(A)+1,W=Co(P);return wn(A,W,P),W},Ta=(A,P,W,J,de)=>{var Ae={string:Ie=>{var rt=0;return Ie!=null&&Ie!==0&&(rt=wl(Ie)),rt},array:Ie=>{var rt=Co(Ie.length);return Hs(Ie,rt),rt}};function qe(Ie){return P==="string"?U(Ie):P==="boolean"?!!Ie:Ie}var w=El(A),I=[],B=0;if(J)for(var K=0;K<J.length;K++){var oe=Ae[W[K]];oe?(B===0&&(B=L()),I[K]=oe(J[K])):I[K]=J[K]}var Se=w(...I);function Te(Ie){return B!==0&&ge(B),qe(Ie)}return Se=Te(Se),Se},oi=(A,P,W,J)=>{var de=!W||W.every(qe=>qe==="number"||qe==="boolean"),Ae=P!=="string";return Ae&&de&&!J?El(A):(...qe)=>Ta(A,P,W,qe,J)},Ro=A=>lv(),xl=(A,P,W)=>{if(W??=2147483647,W<2)return 0;W-=2;for(var J=P,de=W<A.length*2?W/2:A.length,Ae=0;Ae<de;++Ae){var qe=A.charCodeAt(Ae);Z[P>>1]=qe,P+=2}return Z[P>>1]=0,P-J},Ma=(A,P,W)=>{if(W??=2147483647,W<4)return 0;for(var J=P,de=J+W-4,Ae=0;Ae<A.length;++Ae){var qe=A.charCodeAt(Ae);if(qe>=55296&&qe<=57343){var w=A.charCodeAt(++Ae);qe=65536+((qe&1023)<<10)|w&1023}if(j[P>>2]=qe,P+=4,P+4>de)break}return j[P>>2]=0,P-J},Aa=A=>{for(var P="";;){var W=H[A++];if(!W)return P;P+=String.fromCharCode(W)}},Vs=new TextDecoder("utf-16le"),uu=(A,P)=>{for(var W=A>>1,J=W+P/2,de=W;!(de>=J)&&te[de];)++de;return Vs.decode(te.subarray(W,de))},Tl=(A,P)=>{for(var W=0,J="";!(W>=P/4);){var de=j[A+W*4>>2];if(de==0)break;if(++W,de>=65536){var Ae=de-65536;J+=String.fromCharCode(55296|Ae>>10,56320|Ae&1023)}else J+=String.fromCharCode(de)}return J},rc=A=>{for(var P=[],W=0;W<A.length;W++){var J=A[W];J>255&&(J&=255),P.push(String.fromCharCode(J))}return P.join("")},tf=Ro;d.createPreloadedFile=Wn,d.staticInit(),we.doesNotExistError=new d.ErrnoError(44),we.doesNotExistError.stack="<generic error, no stack>",it(),t.noExitRuntime&&(fn=t.noExitRuntime),t.preloadPlugins&&(Yt=t.preloadPlugins),t.print&&(v=t.print),t.printErr&&(M=t.printErr),t.wasmBinary&&(O=t.wasmBinary),t.arguments&&(f=t.arguments),t.thisProgram&&(p=t.thisProgram),t.getTempRet0=Ro,t.ccall=Ta,t.cwrap=oi,t.addFunction=ha,t.setValue=kt,t.getValue=Le,t.UTF8ToString=U,t.stringToUTF8=wn,t.lengthBytesUTF8=Oe,t.intArrayFromString=Ct,t.intArrayToString=rc,t.AsciiToString=Aa,t.UTF16ToString=uu,t.stringToUTF16=xl,t.UTF32ToString=Tl,t.stringToUTF32=Ma,t.writeArrayToMemory=Hs,t._getTempRet0=tf;var Gs={a:ee,aa:ul,da:us,ba:Fr,$:Ps,b:Pr,_:fs,y:yo,U:Us,Y:Xa,R:$r,X:Jr,P:ds,N:bo,M:hs,Z:ps,K:So,J:Fe,F:Ye,E:He,w:Kt,u:yn,v:Sn,G:ai,Q:Vn,n:wr,g:xn,H:vi,S:da,T:Eo,o:Vu,I:Gu,O:ju,x:Qu,V:wo,L:$c,s:Yu,t:cl,ka:tu,oa:fl,j:Ku,k:dl,c:Zu,d:hl,ga:Jc,ha:pl,ia:zs,ja:ml,h:_l,i:qs,z:$u,A:xo,e:ef,f:gl,ea:Ju,fa:vl,B:ec,C:yl,p:nu,q:bl,la:tc,ma:To,D:Hn,na:nc,r:iu,l:ru,m:Sl,W:au,ca:su},me=await lt(),pe=me.qa,cd=t._powersync_init_static=me.ra,fd=t._memcpy=me.sa,ce=t._memset=me.ta,ue=t._memcmp=me.ua,G_=t._sqlite3_status64=me.va,np=t._sqlite3_status=me.wa,dd=t._sqlite3_msize=me.xa,hd=t._sqlite3_db_status=me.ya,yb=t._sqlite3_vfs_find=me.za,W_=t._sqlite3_vfs_register=me.Aa,j_=t._sqlite3_vfs_unregister=me.Ba,pd=t._sqlite3_release_memory=me.Ca,ip=t._sqlite3_soft_heap_limit64=me.Da,rp=t._sqlite3_memory_used=me.Ea,Q_=t._sqlite3_hard_heap_limit64=me.Fa,Io=t._sqlite3_memory_highwater=me.Ga,ap=t._sqlite3_malloc=me.Ha,bb=t._sqlite3_malloc64=me.Ia,X_=t._sqlite3_free=me.Ja,_s=t._sqlite3_realloc=me.Ka,md=t._sqlite3_realloc64=me.La,Y_=t._sqlite3_str_vappendf=me.Ma,sp=t._sqlite3_str_append=me.Na,K_=t._sqlite3_str_appendchar=me.Oa,Z_=t._sqlite3_str_appendall=me.Pa,op=t._sqlite3_str_appendf=me.Qa,lp=t._sqlite3_str_finish=me.Ra,$_=t._sqlite3_str_errcode=me.Sa,_d=t._sqlite3_str_length=me.Ta,nf=t._sqlite3_str_value=me.Ua,Mi=t._sqlite3_str_reset=me.Va,Sb=t._sqlite3_str_new=me.Wa,Eb=t._sqlite3_vmprintf=me.Xa,J_=t._sqlite3_mprintf=me.Ya,rf=t._sqlite3_vsnprintf=me.Za,Ml=t._sqlite3_snprintf=me._a,eg=t._sqlite3_log=me.$a,tg=t._sqlite3_randomness=me.ab,Ws=t._sqlite3_stricmp=me.bb,Mr=t._sqlite3_strnicmp=me.cb,ng=t._sqlite3_os_init=me.db,af=t._sqlite3_os_end=me.eb,ig=t._sqlite3_serialize=me.fb,sf=t._sqlite3_prepare_v2=me.gb,up=t._sqlite3_step=me.hb,cp=t._sqlite3_column_int64=me.ib,fp=t._sqlite3_reset=me.jb,dp=t._sqlite3_exec=me.kb,rg=t._sqlite3_column_int=me.lb,hp=t._sqlite3_finalize=me.mb,pp=t._sqlite3_deserialize=me.nb,gd=t._sqlite3_database_file_object=me.ob,mp=t._sqlite3_backup_init=me.pb,ag=t._sqlite3_backup_step=me.qb,sg=t._sqlite3_backup_finish=me.rb,og=t._sqlite3_backup_remaining=me.sb,lg=t._sqlite3_backup_pagecount=me.tb,ac=t._sqlite3_clear_bindings=me.ub,ug=t._sqlite3_value_blob=me.vb,js=t._sqlite3_value_text=me.wb,vd=t._sqlite3_value_bytes=me.xb,_p=t._sqlite3_value_bytes16=me.yb,gp=t._sqlite3_value_double=me.zb,vp=t._sqlite3_value_int=me.Ab,cg=t._sqlite3_value_int64=me.Bb,yp=t._sqlite3_value_subtype=me.Cb,yd=t._sqlite3_value_pointer=me.Db,fg=t._sqlite3_value_text16=me.Eb,bp=t._sqlite3_value_text16be=me.Fb,dg=t._sqlite3_value_text16le=me.Gb,wb=t._sqlite3_value_type=me.Hb,bd=t._sqlite3_value_encoding=me.Ib,hg=t._sqlite3_value_nochange=me.Jb,Sp=t._sqlite3_value_frombind=me.Kb,pg=t._sqlite3_value_dup=me.Lb,Ep=t._sqlite3_value_free=me.Mb,mg=t._sqlite3_result_blob=me.Nb,Ca=t._sqlite3_result_blob64=me.Ob,wp=t._sqlite3_result_double=me.Pb,_g=t._sqlite3_result_error=me.Qb,gg=t._sqlite3_result_error16=me.Rb,xb=t._sqlite3_result_int=me.Sb,Sd=t._sqlite3_result_int64=me.Tb,Ar=t._sqlite3_result_null=me.Ub,vg=t._sqlite3_result_pointer=me.Vb,zr=t._sqlite3_result_subtype=me.Wb,yg=t._sqlite3_result_text=me.Xb,sc=t._sqlite3_result_text64=me.Yb,bg=t._sqlite3_result_text16=me.Zb,Qs=t._sqlite3_result_text16be=me._b,Al=t._sqlite3_result_text16le=me.$b,gs=t._sqlite3_result_value=me.ac,xp=t._sqlite3_result_error_toobig=me.bc,Tp=t._sqlite3_result_zeroblob=me.cc,Ka=t._sqlite3_result_zeroblob64=me.dc,Sg=t._sqlite3_result_error_code=me.ec,oc=t._sqlite3_result_error_nomem=me.fc,of=t._sqlite3_user_data=me.gc,Cl=t._sqlite3_context_db_handle=me.hc,Eg=t._sqlite3_vtab_nochange=me.ic,wg=t._sqlite3_vtab_in_first=me.jc,lf=t._sqlite3_vtab_in_next=me.kc,xg=t._sqlite3_aggregate_context=me.lc,Ed=t._sqlite3_get_auxdata=me.mc,Tg=t._sqlite3_set_auxdata=me.nc,Mp=t._sqlite3_column_count=me.oc,Ap=t._sqlite3_data_count=me.pc,Cp=t._sqlite3_column_blob=me.qc,Mg=t._sqlite3_column_bytes=me.rc,Rp=t._sqlite3_column_bytes16=me.sc,Ra=t._sqlite3_column_double=me.tc,Ag=t._sqlite3_column_text=me.uc,lc=t._sqlite3_column_value=me.vc,pa=t._sqlite3_column_text16=me.wc,Cg=t._sqlite3_column_type=me.xc,Rg=t._sqlite3_column_name=me.yc,Tb=t._sqlite3_column_name16=me.zc,Rl=t._sqlite3_bind_blob=me.Ac,Ig=t._sqlite3_bind_blob64=me.Bc,Ip=t._sqlite3_bind_double=me.Cc,uc=t._sqlite3_bind_int=me.Dc,Lg=t._sqlite3_bind_int64=me.Ec,Ng=t._sqlite3_bind_null=me.Fc,kg=t._sqlite3_bind_pointer=me.Gc,Og=t._sqlite3_bind_text=me.Hc,wd=t._sqlite3_bind_text64=me.Ic,Lp=t._sqlite3_bind_text16=me.Jc,Mb=t._sqlite3_bind_value=me.Kc,Ab=t._sqlite3_bind_zeroblob=me.Lc,Cb=t._sqlite3_bind_zeroblob64=me.Mc,Dg=t._sqlite3_bind_parameter_count=me.Nc,Fg=t._sqlite3_bind_parameter_name=me.Oc,cc=t._sqlite3_bind_parameter_index=me.Pc,xd=t._sqlite3_db_handle=me.Qc,Pg=t._sqlite3_stmt_readonly=me.Rc,Ug=t._sqlite3_stmt_isexplain=me.Sc,Rb=t._sqlite3_stmt_explain=me.Tc,Ib=t._sqlite3_stmt_busy=me.Uc,Lb=t._sqlite3_next_stmt=me.Vc,Np=t._sqlite3_stmt_status=me.Wc,kp=t._sqlite3_sql=me.Xc,Op=t._sqlite3_expanded_sql=me.Yc,zg=t._sqlite3_value_numeric_type=me.Zc,uf=t._sqlite3_blob_open=me._c,Dp=t._sqlite3_blob_close=me.$c,qg=t._sqlite3_blob_read=me.ad,li=t._sqlite3_blob_write=me.bd,Fp=t._sqlite3_blob_bytes=me.cd,Nb=t._sqlite3_blob_reopen=me.dd,Bg=t._sqlite3_set_authorizer=me.ed,kb=t._sqlite3_strglob=me.fd,Ob=t._sqlite3_strlike=me.gd,Db=t._sqlite3_errmsg=me.hd,Fb=t._sqlite3_load_extension=me.id,Pp=t._sqlite3_enable_load_extension=me.jd,Lo=t._sqlite3_auto_extension=me.kd,Hg=t._sqlite3_cancel_auto_extension=me.ld,Td=t._sqlite3_reset_auto_extension=me.md,cu=t._sqlite3_prepare=me.nd,Up=t._sqlite3_prepare_v3=me.od,Vg=t._sqlite3_prepare16=me.pd,zp=t._sqlite3_prepare16_v2=me.qd,Pb=t._sqlite3_prepare16_v3=me.rd,Gg=t._sqlite3_get_table=me.sd,Wg=t._sqlite3_free_table=me.td,jg=t._sqlite3_create_module=me.ud,Qg=t._sqlite3_create_module_v2=me.vd,Xg=t._sqlite3_drop_modules=me.wd,qp=t._sqlite3_declare_vtab=me.xd,qn=t._sqlite3_vtab_on_conflict=me.yd,Ub=t._sqlite3_vtab_config=me.zd,Ia=t._sqlite3_vtab_collation=me.Ad,Bp=t._sqlite3_vtab_in=me.Bd,zb=t._sqlite3_vtab_rhs_value=me.Cd,Md=t._sqlite3_vtab_distinct=me.Dd,fc=t._sqlite3_keyword_name=me.Ed,dc=t._sqlite3_keyword_count=me.Fd,Yg=t._sqlite3_keyword_check=me.Gd,Hp=t._sqlite3_complete=me.Hd,Kg=t._sqlite3_complete16=me.Id,No=t._sqlite3_libversion=me.Jd,Vp=t._sqlite3_libversion_number=me.Kd,Gp=t._sqlite3_threadsafe=me.Ld,Wp=t._sqlite3_initialize=me.Md,jp=t._sqlite3_shutdown=me.Nd,Il=t._sqlite3_config=me.Od,Qp=t._sqlite3_db_mutex=me.Pd,qb=t._sqlite3_db_release_memory=me.Qd,Bb=t._sqlite3_db_cacheflush=me.Rd,Xp=t._sqlite3_db_config=me.Sd,Hb=t._sqlite3_last_insert_rowid=me.Td,Zg=t._sqlite3_set_last_insert_rowid=me.Ud,$g=t._sqlite3_changes64=me.Vd,Vb=t._sqlite3_changes=me.Wd,Ad=t._sqlite3_total_changes64=me.Xd,_n=t._sqlite3_total_changes=me.Yd,Gb=t._sqlite3_txn_state=me.Zd,Wb=t._sqlite3_close=me._d,Jg=t._sqlite3_close_v2=me.$d,cf=t._sqlite3_busy_handler=me.ae,jb=t._sqlite3_progress_handler=me.be,Qb=t._sqlite3_busy_timeout=me.ce,Xb=t._sqlite3_interrupt=me.de,Yb=t._sqlite3_is_interrupted=me.ee,Kb=t._sqlite3_create_function=me.fe,Yp=t._sqlite3_create_function_v2=me.ge,ev=t._sqlite3_create_window_function=me.he,Cd=t._sqlite3_create_function16=me.ie,tv=t._sqlite3_overload_function=me.je,Zb=t._sqlite3_trace_v2=me.ke,$b=t._sqlite3_commit_hook=me.le,fu=t._sqlite3_update_hook=me.me,Xs=t._sqlite3_rollback_hook=me.ne,Gi=t._sqlite3_autovacuum_pages=me.oe,Ys=t._sqlite3_wal_autocheckpoint=me.pe,Cr=t._sqlite3_wal_hook=me.qe,Jb=t._sqlite3_wal_checkpoint_v2=me.re,eS=t._sqlite3_wal_checkpoint=me.se,hr=t._sqlite3_error_offset=me.te,ko=t._sqlite3_errmsg16=me.ue,tS=t._sqlite3_errcode=me.ve,nS=t._sqlite3_extended_errcode=me.we,iS=t._sqlite3_system_errno=me.xe,rS=t._sqlite3_errstr=me.ye,aS=t._sqlite3_limit=me.ze,Kp=t._sqlite3_open=me.Ae,nv=t._sqlite3_open_v2=me.Be,sS=t._sqlite3_open16=me.Ce,iv=t._sqlite3_create_collation=me.De,oS=t._sqlite3_create_collation_v2=me.Ee,lS=t._sqlite3_create_collation16=me.Fe,hc=t._sqlite3_collation_needed=me.Ge,Oo=t._sqlite3_collation_needed16=me.He,uS=t._sqlite3_get_clientdata=me.Ie,cS=t._sqlite3_set_clientdata=me.Je,fS=t._sqlite3_get_autocommit=me.Ke,ff=t._sqlite3_table_column_metadata=me.Le,dS=t._sqlite3_sleep=me.Me,hS=t._sqlite3_extended_result_codes=me.Ne,pS=t._sqlite3_file_control=me.Oe,df=t._sqlite3_test_control=me.Pe,mS=t._sqlite3_create_filename=me.Qe,_S=t._sqlite3_free_filename=me.Re,gS=t._sqlite3_uri_parameter=me.Se,vS=t._sqlite3_uri_key=me.Te,yS=t._sqlite3_uri_boolean=me.Ue,bS=t._sqlite3_uri_int64=me.Ve,SS=t._sqlite3_filename_database=me.We,ES=t._sqlite3_filename_journal=me.Xe,wS=t._sqlite3_filename_wal=me.Ye,xS=t._sqlite3_db_name=me.Ze,TS=t._sqlite3_db_filename=me._e,MS=t._sqlite3_db_readonly=me.$e,rv=t._sqlite3_compileoption_used=me.af,AS=t._sqlite3_compileoption_get=me.bf,CS=t._sqlite3_sourceid=me.cf,RS=t._malloc=me.df,IS=t._free=me.ef,av=t._RegisterExtensionFunctions=me.ff,LS=t._getSqliteFree=me.gf,Zp=t._main=me.hf,sv=t._libauthorizer_set_authorizer=me.jf,NS=t._libfunction_create_function=me.kf,$p=t._libhook_commit_hook=me.lf,ov=t._libhook_update_hook=me.mf,Rd=t._libprogress_progress_handler=me.nf,kS=t._libvfs_vfs_register=me.of,Id=me.qf,Jp=me.rf,lv=me.sf,uv=me.tf,hf=me.uf,em=me.vf,cv=t.dynCall_viiiij=me.dynCall_viiiij,tm=t.dynCall_vijii=me.dynCall_vijii,Ld=t.dynCall_iiiij=me.dynCall_iiiij,nm=t.dynCall_viji=me.dynCall_viji,fv=t.dynCall_iij=me.dynCall_iij,Nd=t.dynCall_iijii=me.dynCall_iijii,kd=t.dynCall_iiji=me.dynCall_iiji,dv=t.dynCall_iiiiiij=me.dynCall_iiiiiij,im=t.dynCall_iiij=me.dynCall_iiij,rm=t.dynCall_jii=me.dynCall_jii,am=t.dynCall_ji=me.dynCall_ji,sm=t.dynCall_vij=me.dynCall_vij,om=t.dynCall_iiiiijii=me.dynCall_iiiiijii,OS=t.dynCall_j=me.dynCall_j,DS=t.dynCall_jj=me.dynCall_jj,FS=t.dynCall_jiij=me.dynCall_jiij,PS=t.dynCall_iiiiji=me.dynCall_iiiiji,hv=t.dynCall_iiiijii=me.dynCall_iiiijii,US=t.dynCall_ij=me.dynCall_ij,zS=t.dynCall_viiji=me.dynCall_viiji,qS=t.dynCall_viijii=me.dynCall_viijii,BS=t.dynCall_iiiijji=me.dynCall_iiiijji,HS=t._sqlite3_version=80488;function pv(){var A=Zp,P=0,W=0;try{var J=A(P,W);return On(J,!0),J}catch(de){return En(de)}}function Od(){if(We>0){gt=Od;return}if(Ve(),We>0){gt=Od;return}function A(){if(t.calledRun=!0,!q){Je(),i(t),t.onRuntimeInitialized?.();var P=t.noInitialRun||!1;P||pv(),st()}}t.setStatus?(t.setStatus("Running..."),setTimeout(()=>{setTimeout(()=>t.setStatus(""),1),A()},1)):A()}function mv(){if(t.preInit)for(typeof t.preInit=="function"&&(t.preInit=[t.preInit]);t.preInit.length>0;)t.preInit.shift()()}return mv(),Od(),(function(){let A=Object.getPrototypeOf(async function(){}).constructor,P=0;t.set_authorizer=function(W,J,de){P&&(t.deleteCallback(P),t._sqlite3_free(P),P=0),P=t._sqlite3_malloc(4),kt(P,J instanceof A?1:0,"i32");let Ae=Ta("libauthorizer_set_authorizer","number",["number","number","number"],[W,J?1:0,P]);return!Ae&&J&&t.setCallback(P,(qe,w,I,B,K,oe)=>J(de,w,I,B,K,oe)),Ae}})(),(function(){let A=Object.getPrototypeOf(async function(){}).constructor,P=["xFunc","xStep","xFinal"],W=new Map;t.create_function=function(J,de,Ae,qe,w,I,B,K){let oe=t._sqlite3_malloc(4),Se={xFunc:I,xStep:B,xFinal:K};kt(oe,P.reduce((Ie,rt,Ut)=>Se[rt]instanceof A?Ie|1<<Ut:Ie,0),"i32");let Te=Ta("libfunction_create_function","number",["number","string","number","number","number","number","number","number"],[J,de,Ae,qe,oe,I?1:0,B?1:0,K?1:0]);if(!Te){if(W.has(de)){let Ie=W.get(de);t.deleteCallback(Ie)}W.set(de,oe),t.setCallback(oe,{xFunc:I,xStep:B,xFinal:K})}return Te}})(),(function(){let A=Object.getPrototypeOf(async function(){}).constructor,P=0;t.update_hook=function(W,J){P&&(t.deleteCallback(P),t._sqlite3_free(P),P=0),P=t._sqlite3_malloc(4),kt(P,J instanceof A?1:0,"i32"),Ta("libhook_update_hook","void",["number","number","number"],[W,J?1:0,P]),J&&t.setCallback(P,(de,Ae,qe,w,I,B)=>J(Ae,qe,w,I,B))}})(),(function(){let A=Object.getPrototypeOf(async function(){}).constructor,P=0;t.commit_hook=function(W,J){P&&(t.deleteCallback(P),t._sqlite3_free(P),P=0),P=t._sqlite3_malloc(4),kt(P,J instanceof A?1:0,"i32"),Ta("libhook_commit_hook","void",["number","number","number"],[W,J?1:0,P]),J&&t.setCallback(P,de=>J())}})(),(function(){let A=Object.getPrototypeOf(async function(){}).constructor,P=0;t.progress_handler=function(W,J,de,Ae){P&&(t.deleteCallback(P),t._sqlite3_free(P),P=0),P=t._sqlite3_malloc(4),kt(P,de instanceof A?1:0,"i32"),Ta("libprogress_progress_handler","number",["number","number","number","number"],[W,J,de?1:0,P]),de&&t.setCallback(P,qe=>de(Ae))}})(),(function(){let A=["xOpen","xDelete","xAccess","xFullPathname","xRandomness","xSleep","xCurrentTime","xGetLastError","xCurrentTimeInt64","xClose","xRead","xWrite","xTruncate","xSync","xFileSize","xLock","xUnlock","xCheckReservedLock","xFileControl","xSectorSize","xDeviceCharacteristics","xShmMap","xShmLock","xShmBarrier","xShmUnmap"],P=new Map;t.vfs_register=function(W,J){let de=0,Ae=0;A.forEach((w,I)=>{W[w]&&(de|=1<<I,W.hasAsyncMethod(w)&&(Ae|=1<<I))});let qe=t._sqlite3_malloc(4);try{let w=Ta("libvfs_vfs_register","number",["string","number","number","number","number","number"],[W.name,W.mxPathname,de,Ae,J?1:0,qe]);if(!w){if(P.has(W.name)){let B=P.get(W.name);t.deleteCallback(B)}let I=Le(qe,"*");P.set(W.name,I),t.setCallback(I,W)}return w}finally{t._sqlite3_free(qe)}}})(),e=a,e}),Ite=Rte});var J1=Da(()=>{});var Ote,G2,Roe,Qh=Da(()=>{J1();J1();Ote=512,G2=class{name;mxPathname=64;_module;constructor(e,t){this.name=e,this._module=t}close(){}isReady(){return!0}hasAsyncMethod(e){return!1}xOpen(e,t,i,r,a){return 14}xDelete(e,t,i){return 0}xAccess(e,t,i,r){return 0}xFullPathname(e,t,i,r){return 0}xGetLastError(e,t,i){return 0}xClose(e){return 0}xRead(e,t,i,r,a){return 0}xWrite(e,t,i,r,a){return 0}xTruncate(e,t,i){return 0}xSync(e,t){return 0}xFileSize(e,t){return 0}xLock(e,t){return 0}xUnlock(e,t){return 0}xCheckReservedLock(e,t){return 0}xFileControl(e,t,i){return 12}xSectorSize(e){return Ote}xDeviceCharacteristics(e){return 0}},Roe=[256,2048,512,4096,1024,8192,16384,524288].reduce((n,e)=>n|e)});function ZD(n,e){return e*4294967296+n+(n<0?2**32:0)}var Fte,Pte,Jl,$D,JD,ub=Da(()=>{Qh();Fte=Object.getPrototypeOf(async function(){}).constructor,Pte=24405875n*8640000n,Jl=class extends G2{constructor(e,t){super(e,t)}hasAsyncMethod(e){let t=`j${e.slice(1)}`;return this[t]instanceof Fte}getFilename(e){throw new Error("unimplemented")}jOpen(e,t,i,r){return 14}jDelete(e,t){return 0}jAccess(e,t,i){return 0}jFullPathname(e,t){let{read:i,written:r}=new TextEncoder().encodeInto(e,t);return i<e.length?10:r>=t.length?10:(t[r]=0,0)}jGetLastError(e){return 0}jClose(e){return 0}jRead(e,t,i){return t.fill(0),522}jWrite(e,t,i){return 778}jTruncate(e,t){return 0}jSync(e,t){return 0}jFileSize(e,t){return 0}jLock(e,t){return 0}jUnlock(e,t){return 0}jCheckReservedLock(e,t){return t.setInt32(0,0,!0),0}jFileControl(e,t,i){return 12}jSectorSize(e){return super.xSectorSize(e)}jDeviceCharacteristics(e){return 0}xOpen(e,t,i,r,a){let s=this.#t(t,r),l=this.#n("Int32",a);return this.log?.("jOpen",s,i,"0x"+r.toString(16)),this.jOpen(s,i,r,l)}xRandomness(e,t,i){let r=new Uint8Array(t);crypto.getRandomValues(r);let a=i;return this._module.HEAPU8.set(r,a),t}xCurrentTimeInt64(e,t){let i=this.#n("BigInt64",t),r=BigInt(Date.now()),a=Pte+r;return i.setBigInt64(0,a,!0),0}xDelete(e,t,i){let r=this._module.UTF8ToString(t);return this.log?.("jDelete",r,i),this.jDelete(r,i)}xAccess(e,t,i,r){let a=this._module.UTF8ToString(t),s=this.#n("Int32",r);return this.log?.("jAccess",a,i),this.jAccess(a,i,s)}xFullPathname(e,t,i,r){let a=this._module.UTF8ToString(t),s=this._module.HEAPU8.subarray(r,r+i);return this.log?.("jFullPathname",a,i),this.jFullPathname(a,s)}xGetLastError(e,t,i){let r=this._module.HEAPU8.subarray(i,i+t);return this.log?.("jGetLastError",t),this.jGetLastError(r)}xClose(e){return this.log?.("jClose",e),this.jClose(e)}xRead(e,t,i,r,a){let s=this.#e(t,i),l=ZD(r,a);return this.log?.("jRead",e,i,l),this.jRead(e,s,l)}xWrite(e,t,i,r,a){let s=this.#e(t,i),l=ZD(r,a);return this.log?.("jWrite",e,s,l),this.jWrite(e,s,l)}xTruncate(e,t,i){let r=ZD(t,i);return this.log?.("jTruncate",e,r),this.jTruncate(e,r)}xSync(e,t){return this.log?.("jSync",e,t),this.jSync(e,t)}xFileSize(e,t){let i=this.#n("BigInt64",t);return this.log?.("jFileSize",e),this.jFileSize(e,i)}xLock(e,t){return this.log?.("jLock",e,t),this.jLock(e,t)}xUnlock(e,t){return this.log?.("jUnlock",e,t),this.jUnlock(e,t)}xCheckReservedLock(e,t){let i=this.#n("Int32",t);return this.log?.("jCheckReservedLock",e),this.jCheckReservedLock(e,i)}xFileControl(e,t,i){let r=new DataView(this._module.HEAPU8.buffer,this._module.HEAPU8.byteOffset+i);return this.log?.("jFileControl",e,t,r),this.jFileControl(e,t,r)}xSectorSize(e){return this.log?.("jSectorSize",e),this.jSectorSize(e)}xDeviceCharacteristics(e){return this.log?.("jDeviceCharacteristics",e),this.jDeviceCharacteristics(e)}#n(e,t){return new JD(this._module,t,e)}#e(e,t){return new $D(this._module,e,t)}#t(e,t){if(t&64){let i=e,r=1,a=[];for(;r;){let s=this._module.HEAPU8[i++];if(s)a.push(s);else switch(this._module.HEAPU8[i]||(r=null),r){case 1:a.push(63),r=2;break;case 2:a.push(61),r=3;break;case 3:a.push(38),r=2;break}}return new TextDecoder().decode(new Uint8Array(a))}return e?this._module.UTF8ToString(e):null}};$D=class{#n;#e=new Uint8Array;get#t(){return this.#e.buffer.byteLength===0&&(this.#e=this.#n.HEAPU8.subarray(this.byteOffset,this.byteOffset+this.byteLength)),this.#e}constructor(e,t,i){this.#n=e,this.byteOffset=t,this.length=this.byteLength=i}get buffer(){return this.#t.buffer}at(e){return this.#t.at(e)}copyWithin(e,t,i){this.#t.copyWithin(e,t,i)}entries(){return this.#t.entries()}every(e){return this.#t.every(e)}fill(e,t,i){this.#t.fill(e,t,i)}filter(e){return this.#t.filter(e)}find(e){return this.#t.find(e)}findIndex(e){return this.#t.findIndex(e)}findLast(e){return this.#t.findLast(e)}findLastIndex(e){return this.#t.findLastIndex(e)}forEach(e){this.#t.forEach(e)}includes(e,t){return this.#t.includes(e,t)}indexOf(e,t){return this.#t.indexOf(e,t)}join(e){return this.#t.join(e)}keys(){return this.#t.keys()}lastIndexOf(e,t){return this.#t.lastIndexOf(e,t)}map(e){return this.#t.map(e)}reduce(e,t){return this.#t.reduce(e,t)}reduceRight(e,t){return this.#t.reduceRight(e,t)}reverse(){this.#t.reverse()}set(e,t){this.#t.set(e,t)}slice(e,t){return this.#t.slice(e,t)}some(e){return this.#t.some(e)}sort(e){this.#t.sort(e)}subarray(e,t){return this.#t.subarray(e,t)}toLocaleString(e,t){return this.#t.toLocaleString(e,t)}toReversed(){return this.#t.toReversed()}toSorted(e){return this.#t.toSorted(e)}toString(){return this.#t.toString()}values(){return this.#t.values()}with(e,t){return this.#t.with(e,t)}[Symbol.iterator](){return this.#t[Symbol.iterator]()}},JD=class{#n;#e;#t=new DataView(new ArrayBuffer(0));get#i(){return this.#t.buffer.byteLength===0&&(this.#t=new DataView(this.#n.HEAPU8.buffer,this.#n.HEAPU8.byteOffset+this.byteOffset)),this.#t}constructor(e,t,i){this.#n=e,this.byteOffset=t,this.#e=i}get buffer(){return this.#i.buffer}get byteLength(){return this.#e==="Int32"?4:8}getInt32(e,t){if(this.#e!=="Int32")throw new Error("invalid type");if(!t)throw new Error("must be little endian");return this.#i.getInt32(e,t)}setInt32(e,t,i){if(this.#e!=="Int32")throw new Error("invalid type");if(!i)throw new Error("must be little endian");this.#i.setInt32(e,t,i)}getBigInt64(e,t){if(this.#e!=="BigInt64")throw new Error("invalid type");if(!t)throw new Error("must be little endian");return this.#i.getBigInt64(e,t)}setBigInt64(e,t,i){if(this.#e!=="BigInt64")throw new Error("invalid type");if(!i)throw new Error("must be little endian");this.#i.setBigInt64(e,t,i)}}});var W2,zte,KH,qte,iT,ZH=Da(()=>{Qh();W2={mode:"shared"},zte={ifAvailable:!0,mode:"shared"},KH={ifAvailable:!0,mode:"exclusive"},qte=["exclusive","shared","shared+hint"],iT=n=>class extends n{#n={lockPolicy:"exclusive",lockTimeout:1/0};#e=new Map;constructor(e,t,i){if(super(e,t,i),Object.assign(this.#n,i),qte.indexOf(this.#n.lockPolicy)===-1)throw new Error(`WebLocksMixin: invalid lock mode: ${i.lockPolicy}`)}async jLock(e,t){try{let i=this.#t(e);if(t<=i.type)return 0;switch(this.#n.lockPolicy){case"exclusive":return await this.#i(i,t);case"shared":case"shared+hint":return await this.#o(i,t)}}catch(i){return console.error("WebLocksMixin: lock error",i),3850}}async jUnlock(e,t){try{let i=this.#t(e);if(!(t<i.type))return 0;switch(this.#n.lockPolicy){case"exclusive":return await this.#r(i,t);case"shared":case"shared+hint":return await this.#a(i,t)}}catch(i){return console.error("WebLocksMixin: unlock error",i),2058}}async jCheckReservedLock(e,t){try{let i=this.#t(e);switch(this.#n.lockPolicy){case"exclusive":return this.#s(i,t);case"shared":case"shared+hint":return await this.#d(i,t)}}catch(i){return console.error("WebLocksMixin: check reserved lock error",i),3594}return t.setInt32(0,0,!0),0}jFileControl(e,t,i){if(t===iT.WRITE_HINT_OP_CODE&&this.#n.lockPolicy==="shared+hint"){let r=this.#t(e);r.writeHint=!0}return 12}#t(e){let t=this.#e.get(e);return t||(t={baseName:this.getFilename(e),type:0,writeHint:!1},this.#e.set(e,t)),t}async#i(e,t){if(!e.access){if(!await this.#l(e,"access"))return 5;console.assert(!!e.access)}return e.type=t,0}#r(e,t){return t===0&&(e.access?.(),console.assert(!e.access)),e.type=t,0}#s(e,t){return t.setInt32(0,0,!0),0}async#o(e,t){switch(e.type){case 0:switch(t){case 1:if(e.writeHint&&!await this.#l(e,"hint"))return 5;if(!await this.#l(e,"gate",W2))return e.hint?.(),5;await this.#l(e,"access",W2),e.gate(),console.assert(!e.gate),console.assert(!!e.access),console.assert(!e.reserved);break;default:throw new Error("unsupported lock transition")}break;case 1:switch(t){case 2:if(this.#n.lockPolicy==="shared+hint"&&!e.hint&&!await this.#l(e,"hint",KH))return 5;if(!await this.#l(e,"reserved",KH))return e.hint?.(),5;e.access(),console.assert(!e.gate),console.assert(!e.access),console.assert(!!e.reserved);break;case 4:if(!await this.#l(e,"gate"))return 5;if(e.access(),!await this.#l(e,"access"))return e.gate(),5;console.assert(!!e.gate),console.assert(!!e.access),console.assert(!e.reserved);break;default:throw new Error("unsupported lock transition")}break;case 2:switch(t){case 4:if(!await this.#l(e,"gate"))return 5;if(!await this.#l(e,"access"))return e.gate(),5;console.assert(!!e.gate),console.assert(!!e.access),console.assert(!!e.reserved);break;default:throw new Error("unsupported lock transition")}break}return e.type=t,0}async#a(e,t){if(t===0)e.access?.(),e.gate?.(),e.reserved?.(),e.hint?.(),e.writeHint=!1,console.assert(!e.access),console.assert(!e.gate),console.assert(!e.reserved),console.assert(!e.hint);else switch(e.type){case 4:e.access(),await this.#l(e,"access",W2),e.gate(),e.reserved?.(),e.hint?.(),console.assert(!!e.access),console.assert(!e.gate),console.assert(!e.reserved);break;case 2:await this.#l(e,"access",W2),e.reserved(),e.hint?.(),console.assert(!!e.access),console.assert(!e.gate),console.assert(!e.reserved);break}return e.type=t,0}async#d(e,t){return await this.#l(e,"reserved",zte)?(e.reserved(),t.setInt32(0,0,!0)):t.setInt32(0,1,!0),0}#l(e,t,i={}){return console.assert(!e[t]),new Promise(r=>{if(!i.ifAvailable&&this.#n.lockTimeout<1/0){let s=new AbortController;i=Object.assign({},i,{signal:s.signal}),setTimeout(()=>{s.abort(),r?.(!1)},this.#n.lockTimeout)}let a=`lock##${e.baseName}##${t}`;navigator.locks.request(a,i,s=>{if(s)return new Promise(l=>{e[t]=()=>{l(),e[t]=null},r(!0),r=null});e[t]=null,r(!1),r=null}).catch(s=>{if(s.name!=="AbortError")throw s})})}};iT.WRITE_HINT_OP_CODE=-9999});var JH={};pu(JH,{IDBBatchAtomicVFS:()=>rF,IDBContext:()=>Q2});function $H(n,e){let t=n.getUint32(e,!0);if(t){let i=new Uint8Array(n.buffer,t);return new TextDecoder().decode(i.subarray(0,i.indexOf(0)))}return null}function Hte(n){return new Promise((e,t)=>{n.onsuccess=()=>e(n.result),n.onerror=()=>t(n.error)})}var Bte,iF,rF,Q2,eV=Da(()=>{ub();Qh();ZH();Bte=new Set(["TransactionInactiveError","InvalidStateError"]),iF=class{path;flags;metadata;fileSize=0;needsMetadataSync=!1;rollback=null;changedPages=new Set;synchronous="full";txOptions={durability:"strict"};constructor(e,t,i){this.path=e,this.flags=t,this.metadata=i}},rF=class n extends iT(Jl){mapIdToFile=new Map;lastError=null;log=null;#n;#e;static async create(e,t,i){let r=new n(e,t,i);return await r.isReady(),r}constructor(e,t,i={}){super(e,t,i),this.#n=this.#t(i.idbName??e)}async#t(e){this.#e=await Q2.create(e)}close(){this.#e.close()}async isReady(){await super.isReady(),await this.#n}getFilename(e){let t=this.mapIdToFile.get(e).path;return`IDB(${this.name}):${t}`}async jOpen(e,t,i,r){try{let s=new URL(e||Math.random().toString(36).slice(2),"file://").pathname,l=await this.#e.q(({metadata:f})=>f.get(s));if(!l&&i&4&&(l={name:s,fileSize:0,version:0},await this.#e.q(({metadata:f})=>f.put(l),"rw")),!l)throw new Error(`File ${s} not found`);let c=new iF(s,i,l);return this.mapIdToFile.set(t,c),r.setInt32(0,i,!0),0}catch(a){return this.lastError=a,14}}async jDelete(e,t){try{let r=new URL(e,"file://").pathname;return this.#e.q(({metadata:a,blocks:s})=>{let l=IDBKeyRange.bound([r,-1/0],[r,1/0]);s.delete(l),a.delete(r)},"rw"),t&&await this.#e.sync(!1),0}catch(i){return this.lastError=i,2570}}async jAccess(e,t,i){try{let a=new URL(e,"file://").pathname,s=await this.#e.q(({metadata:l})=>l.get(a));return i.setInt32(0,s?1:0,!0),0}catch(r){return this.lastError=r,3338}}async jClose(e){try{let t=this.mapIdToFile.get(e);return this.mapIdToFile.delete(e),t.flags&8&&await this.#e.q(({metadata:i,blocks:r})=>{i.delete(t.path),r.delete(IDBKeyRange.bound([t.path,0],[t.path,1/0]))},"rw"),t.needsMetadataSync&&this.#e.q(({metadata:i})=>i.put(t.metadata),"rw"),await this.#e.sync(t.synchronous==="full"),0}catch(t){return this.lastError=t,4106}}async jRead(e,t,i){try{let r=this.mapIdToFile.get(e),a=0;for(;a<t.byteLength;){let s=i+a,l=await this.#e.q(({blocks:h})=>{let _=IDBKeyRange.bound([r.path,-s],[r.path,1/0]);return h.get(_)});if(!l||l.data.byteLength-l.offset<=s)return t.fill(0,a),522;let c=t.subarray(a),f=s+l.offset,p=Math.min(Math.max(l.data.byteLength-f,0),c.byteLength);c.set(l.data.subarray(f,f+p)),a+=p}return 0}catch(r){return this.lastError=r,266}}jWrite(e,t,i){try{let r=this.mapIdToFile.get(e);if(r.flags&256&&!r.rollback){let c=Object.assign({pendingVersion:r.metadata.version-1},r.metadata);this.#e.q(({metadata:f})=>f.put(c),"rw",r.txOptions),r.rollback=Object.assign({},r.metadata),r.metadata.version--}r.flags&256&&r.changedPages.add(i);let a=t.slice(),s=r.metadata.version;if(!(i<r.metadata.fileSize)||r.flags&256||r.flags&512){let c={path:r.path,offset:-i,version:s,data:t.slice()};this.#e.q(({blocks:f})=>{f.put(c),r.changedPages.add(i)},"rw",r.txOptions)}else this.#e.q(async({blocks:c})=>{let f=IDBKeyRange.bound([r.path,-i],[r.path,1/0]),p=await c.get(f);p.data.subarray(i+p.offset).set(a),c.put(p)},"rw",r.txOptions);return r.metadata.fileSize<i+t.length&&(r.metadata.fileSize=i+t.length,r.needsMetadataSync=!0),0}catch(r){return this.lastError=r,778}}jTruncate(e,t){try{let i=this.mapIdToFile.get(e);return t<i.metadata.fileSize&&(this.#e.q(({blocks:r})=>{let a=IDBKeyRange.bound([i.path,-1/0],[i.path,-t,1/0]);r.delete(a)},"rw",i.txOptions),i.metadata.fileSize=t,i.needsMetadataSync=!0),0}catch(i){return this.lastError=i,1546}}async jSync(e,t){try{let i=this.mapIdToFile.get(e);return i.needsMetadataSync&&(this.#e.q(({metadata:r})=>r.put(i.metadata),"rw",i.txOptions),i.needsMetadataSync=!1),i.flags&256?i.synchronous==="full"&&await this.#e.sync(!0):await this.#e.sync(i.synchronous==="full"),0}catch(i){return this.lastError=i,1034}}jFileSize(e,t){try{let i=this.mapIdToFile.get(e);return t.setBigInt64(0,BigInt(i.metadata.fileSize),!0),0}catch(i){return this.lastError=i,1802}}async jLock(e,t){let i=this.mapIdToFile.get(e),r=await super.jLock(e,t);return t===1&&(i.metadata=await this.#e.q(async({metadata:a,blocks:s})=>{let l=await a.get(i.path);return l.pendingVersion&&(console.warn(`removing failed transaction ${l.pendingVersion}`),await new Promise((c,f)=>{let p=IDBKeyRange.bound([l.name,-1/0],[l.name,1/0]),h=s.openCursor(p);h.onsuccess=()=>{let _=h.result;_?(_.value.version<l.version&&_.delete(),_.continue()):c()},h.onerror=()=>f(h.error)}),delete l.pendingVersion,a.put(l)),l},"rw",i.txOptions)),r}async jUnlock(e,t){if(t===0){let i=this.mapIdToFile.get(e);await this.#e.sync(i.synchronous==="full")}return super.jUnlock(e,t)}jFileControl(e,t,i){try{let r=this.mapIdToFile.get(e);switch(t){case 14:let a=$H(i,4),s=$H(i,8);this.log?.("xFileControl",r.path,"PRAGMA",a,s);let l=f=>{let p=new TextEncoder().encode(f),h=this._module._sqlite3_malloc(p.byteLength);return this._module.HEAPU8.subarray(h,h+p.byteLength).set(p),i.setUint32(0,h,!0),1};switch(a.toLowerCase()){case"page_size":if(r.flags&256&&s&&r.metadata.fileSize)return 1;break;case"synchronous":if(s)switch(s.toLowerCase()){case"0":case"off":r.synchronous="off",r.txOptions={durability:"relaxed"};break;case"1":case"normal":r.synchronous="normal",r.txOptions={durability:"relaxed"};break;case"2":case"3":case"full":case"extra":r.synchronous="full",r.txOptions={durability:"strict"};break}break;case"write_hint":return super.jFileControl(e,iT.WRITE_HINT_OP_CODE,null)}break;case 21:if(this.log?.("xFileControl",r.path,"SYNC"),r.rollback){let f=Object.assign({},r.metadata),p=r.rollback.fileSize;this.#e.q(({metadata:h,blocks:_})=>{h.put(f);for(let g of r.changedPages)if(g<p){let E=IDBKeyRange.bound([r.path,-g,f.version],[r.path,-g,1/0],!0);_.delete(E)}r.changedPages.clear()},"rw",r.txOptions),r.needsMetadataSync=!1,r.rollback=null}break;case 31:return this.log?.("xFileControl",r.path,"BEGIN_ATOMIC_WRITE"),0;case 32:return this.log?.("xFileControl",r.path,"COMMIT_ATOMIC_WRITE"),0;case 33:this.log?.("xFileControl",r.path,"ROLLBACK_ATOMIC_WRITE"),r.metadata=r.rollback;let c=Object.assign({},r.metadata);return this.#e.q(({metadata:f,blocks:p})=>{f.put(c);for(let h of r.changedPages)p.delete([r.path,-h,c.version-1]);r.changedPages.clear()},"rw",r.txOptions),r.needsMetadataSync=!1,r.rollback=null,0}}catch(r){return this.lastError=r,10}return super.jFileControl(e,t,i)}jDeviceCharacteristics(e){return 18432}jGetLastError(e){if(this.lastError){console.error(this.lastError);let t=e.subarray(0,e.byteLength-1),{written:i}=new TextEncoder().encodeInto(this.lastError.message,t);e[i]=0}return 0}};Q2=class n{#n;#e=null;#t=Promise.resolve();#i=null;#r=new WeakSet;log=null;static async create(e){let t=await new Promise((i,r)=>{let a=indexedDB.open(e,6);a.onupgradeneeded=async s=>{let l=a.result;switch(s.oldVersion&&console.log(`Upgrading IndexedDB from version ${s.oldVersion}`),s.oldVersion){case 0:l.createObjectStore("blocks",{keyPath:["path","offset","version"]}).createIndex("version",["path","version"]);case 5:let c=a.transaction;c.objectStore("blocks").deleteIndex("version");let p=l.createObjectStore("metadata",{keyPath:"name"});await new Promise((h,_)=>{let g={},E=c.objectStore("blocks").openCursor();E.onsuccess=()=>{let x=E.result;if(x){let S=x.value;typeof S.offset!="number"||S.path===g.path&&S.offset===g.offset?x.delete():S.offset===0&&(p.put({name:S.path,fileSize:S.fileSize,version:S.version}),delete S.fileSize,x.update(S)),g=S,x.continue()}else h()},E.onerror=()=>_(E.error)});break}},a.onsuccess=()=>i(a.result),a.onerror=()=>r(a.error)});return new n(t)}constructor(e){this.#n=e}close(){this.#n.close()}q(e,t="ro",i={}){let r=t==="ro"?"readonly":"readwrite",a=Object.assign({durability:"default"},i);return this.#e=(this.#e||Promise.resolve()).then(()=>this.#s(e,r,a)),this.#e}async#s(e,t,i){let r;this.#i&&this.#r.has(this.#i.transaction)&&this.#i.transaction.mode>=t&&this.#i.transaction.durability===i.durability&&(r=this.#i.transaction,this.#i.readyState==="pending"&&await new Promise(a=>{this.#i.addEventListener("success",a,{once:!0}),this.#i.addEventListener("error",a,{once:!0})}));for(let a=0;a<2;++a){r||(await this.#t,r=this.#n.transaction(this.#n.objectStoreNames,t,i),this.log?.("IDBTransaction open",t),this.#r.add(r),this.#t=new Promise((s,l)=>{r.addEventListener("complete",()=>{this.log?.("IDBTransaction complete"),this.#r.delete(r),s()}),r.addEventListener("abort",()=>{this.#r.delete(r),l(new Error("transaction aborted"))})}));try{let s=[...r.objectStoreNames].map(l=>[l,this.proxyStoreOrIndex(r.objectStore(l))]);return await e(Object.fromEntries(s))}catch(s){if(!a&&Bte.has(s.name)){this.log?.(`${s.name}, retrying`),r=null;continue}throw s}}}proxyStoreOrIndex(e){return new Proxy(e,{get:(t,i,r)=>{let a=Reflect.get(t,i,r);return typeof a=="function"?(...s)=>{let l=Reflect.apply(a,t,s);return l instanceof IDBRequest&&!i.endsWith("Cursor")?(this.#i=l,l.addEventListener("error",()=>{console.error(l.error),l.transaction.abort()},{once:!0}),Hte(l)):l}:a}})}async sync(e){this.#e&&(await this.#e,e&&await this.#t,this.reset())}reset(){this.#e=null,this.#t=Promise.resolve(),this.#i=null}}});var rV={};pu(rV,{AccessHandlePoolVFS:()=>fF});var iV,dF,Vte,Gte,cF,tV,nV,fb,Wte,jte,fF,aV=Da(()=>{ub();Qh();iV=4096,dF=512,Vte=4,Gte=8,cF=dF+Vte,tV=dF,nV=cF,fb=iV,Wte=542976,jte=6,fF=class n extends Jl{log=null;#n;#e;#t=new Map;#i=new Map;#r=new Set;#s=new Map;static async create(e,t){let i=new n(e,t);return await i.isReady(),i}constructor(e,t){super(e,t),this.#n=e}jOpen(e,t,i,r){try{let a=e?this.#f(e):Math.random().toString(36),s=this.#i.get(a);if(!s&&i&4)if(this.getSize()<this.getCapacity())[s]=this.#r.keys(),this.#l(s,a,i);else throw new Error("cannot create file");if(!s)throw new Error("file not found");let l={path:a,flags:i,accessHandle:s};return this.#s.set(t,l),r.setInt32(0,i,!0),0}catch(a){return console.error(a.message),14}}jClose(e){let t=this.#s.get(e);return t&&(t.accessHandle.flush(),this.#s.delete(e),t.flags&8&&this.#h(t.path)),0}jRead(e,t,i){let a=this.#s.get(e).accessHandle.read(t.subarray(),{at:fb+i});return a<t.byteLength?(t.fill(0,a,t.byteLength),522):0}jWrite(e,t,i){return this.#s.get(e).accessHandle.write(t.subarray(),{at:fb+i})===t.byteLength?0:10}jTruncate(e,t){return this.#s.get(e).accessHandle.truncate(fb+t),0}jSync(e,t){return this.#s.get(e).accessHandle.flush(),0}jFileSize(e,t){let r=this.#s.get(e).accessHandle.getSize()-fb;return t.setBigInt64(0,BigInt(r),!0),0}jSectorSize(e){return iV}jDeviceCharacteristics(e){return 2048}jAccess(e,t,i){let r=this.#f(e);return i.setInt32(0,this.#i.has(r)?1:0,!0),0}jDelete(e,t){let i=this.#f(e);return this.#h(i),0}async close(){await this.#a()}async isReady(){if(!this.#e){let e=await navigator.storage.getDirectory();for(let t of this.#n.split("/"))t&&(e=await e.getDirectoryHandle(t,{create:!0}));this.#e=e,await this.#o(),this.getCapacity()===0&&await this.addCapacity(jte)}return!0}getSize(){return this.#i.size}getCapacity(){return this.#t.size}async addCapacity(e){for(let t=0;t<e;++t){let i=Math.random().toString(36).replace("0.",""),a=await(await this.#e.getFileHandle(i,{create:!0})).createSyncAccessHandle();this.#t.set(a,i),this.#l(a,"",0)}return e}async removeCapacity(e){let t=0;for(let i of Array.from(this.#r)){if(t==e||this.getSize()===this.getCapacity())return t;let r=this.#t.get(i);await i.close(),await this.#e.removeEntry(r),this.#t.delete(i),this.#r.delete(i),++t}return t}async#o(){let e=[];for await(let[t,i]of this.#e)i.kind==="file"&&e.push([t,i]);await Promise.all(e.map(async([t,i])=>{let r=await i.createSyncAccessHandle();this.#t.set(r,t);let a=this.#d(r);a?this.#i.set(a,r):this.#r.add(r)}))}#a(){for(let e of this.#t.keys())e.close();this.#t.clear(),this.#i.clear(),this.#r.clear()}#d(e){let t=new Uint8Array(cF);e.read(t,{at:0});let r=new DataView(t.buffer,t.byteOffset).getUint32(tV);if(t[0]&&(r&8||(r&Wte)===0))return console.warn(`Remove file with unexpected flags ${r.toString(16)}`),this.#l(e,"",0),"";let a=new Uint32Array(Gte/4);e.read(a,{at:nV});let s=this.#u(t);if(a.every((l,c)=>l===s[c])){let l=t.findIndex(c=>c===0);return l===0&&e.truncate(fb),new TextDecoder().decode(t.subarray(0,l))}else return console.warn("Disassociating file with bad digest."),this.#l(e,"",0),""}#l(e,t,i){let r=new Uint8Array(cF);if(new TextEncoder().encodeInto(t,r).written>=dF)throw new Error("path too long");new DataView(r.buffer,r.byteOffset).setUint32(tV,i);let l=this.#u(r);e.write(r,{at:0}),e.write(l,{at:nV}),e.flush(),t?(this.#i.set(t,e),this.#r.delete(e)):(e.truncate(fb),this.#r.add(e))}#u(e){if(!e[0])return new Uint32Array([4274806656,2899230775]);let t=3735928559,i=1103547991;for(let r of e)t=Math.imul(t^r,2654435761),i=Math.imul(i^r,1597334677);return t=Math.imul(t^t>>>16,2246822507)^Math.imul(i^i>>>13,3266489909),i=Math.imul(i^i>>>16,2246822507)^Math.imul(t^t>>>13,3266489909),new Uint32Array([t>>>0,i>>>0])}#f(e){return(typeof e=="string"?new URL(e,"file://localhost/"):e).pathname}#h(e){let t=this.#i.get(e);t&&(this.#i.delete(e),this.#l(t,"",0))}}});var oV={};pu(oV,{OPFSCoopSyncVFS:()=>pF});function sV(n,e){let t=n.getUint32(e,!0);if(t){let i=new Uint8Array(n.buffer,t);return new TextDecoder().decode(i.subarray(0,i.indexOf(0)))}return null}var Qte,Xte,hF,Yte,hT,X2,pF,lV=Da(()=>{ub();Qh();Qte=10,Xte=1e3,hF=["","-journal","-wal"],Yte=new FinalizationRegistry(n=>n()),hT=class{path;flags;accessHandle;persistentFile;constructor(e,t){this.path=e,this.flags=t}},X2=class{fileHandle;accessHandle=null;isLockBusy=!1;isFileLocked=!1;isRequestInProgress=!1;handleLockReleaser=null;handleRequestChannel;isHandleRequested=!1;constructor(e){this.fileHandle=e}},pF=class n extends Jl{mapIdToFile=new Map;lastError=null;log=null;persistentFiles=new Map;boundAccessHandles=new Map;unboundAccessHandles=new Set;accessiblePaths=new Set;releaser=null;static async create(e,t){let i=new n(e,t);return await Promise.all([i.isReady(),i.#n(Qte)]),i}constructor(e,t){super(e,t)}async#n(e){let t=await navigator.storage.getDirectory();for await(let a of t.values())a.kind==="directory"&&a.name.startsWith(".ahp-")&&await navigator.locks.request(a.name,{ifAvailable:!0},async s=>{s?(this.log?.(`Deleting temporary directory ${a.name}`),await t.removeEntry(a.name,{recursive:!0})):this.log?.(`Temporary directory ${a.name} is in use`)});let i=`.ahp-${Math.random().toString(36).slice(2)}`;this.releaser=await new Promise(a=>{navigator.locks.request(i,()=>new Promise(s=>{a(s)}))}),Yte.register(this,this.releaser);let r=await t.getDirectoryHandle(i,{create:!0});for(let a=0;a<e;a++){let l=await(await r.getFileHandle(`${a}.tmp`,{create:!0})).createSyncAccessHandle();this.unboundAccessHandles.add(l)}}jOpen(e,t,i,r){try{let s=new URL(e||Math.random().toString(36).slice(2),"file://").pathname;if(i&256){let c=this.persistentFiles.get(s);if(c?.isRequestInProgress)return 5;if(c)if(c.fileHandle){if(!c.accessHandle)return this._module.retryOps.push((async()=>{let f=new hT(s,i);f.persistentFile=this.persistentFiles.get(s),await this.#t(f)})()),5}else return this.persistentFiles.delete(s),14;else{this.log?.(`creating persistent file for ${s}`);let f=!!(i&4);return this._module.retryOps.push((async()=>{try{let p=await navigator.storage.getDirectory(),h=s.split("/").filter(E=>E),_=h.pop();for(let E of h)p=await p.getDirectoryHandle(E,{create:f});for(let E of hF){let x=await p.getFileHandle(_+E,{create:f});await this.#e(x)}let g=new hT(s,i);g.persistentFile=this.persistentFiles.get(s),await this.#t(g)}catch(p){let h=new X2(null);this.persistentFiles.set(s,h),console.error(p)}})()),5}}if(!this.accessiblePaths.has(s)&&!(i&4))throw new Error(`File ${s} not found`);let l=new hT(s,i);return this.mapIdToFile.set(t,l),this.persistentFiles.has(s)?l.persistentFile=this.persistentFiles.get(s):this.boundAccessHandles.has(s)?l.accessHandle=this.boundAccessHandles.get(s):this.unboundAccessHandles.size&&(l.accessHandle=this.unboundAccessHandles.values().next().value,l.accessHandle.truncate(0),this.unboundAccessHandles.delete(l.accessHandle),this.boundAccessHandles.set(s,l.accessHandle)),this.accessiblePaths.add(s),r.setInt32(0,i,!0),0}catch(a){return this.lastError=a,14}}jDelete(e,t){try{let r=new URL(e,"file://").pathname;return this.persistentFiles.has(r)?this.persistentFiles.get(r).accessHandle.truncate(0):this.boundAccessHandles.get(r)?.truncate(0),this.accessiblePaths.delete(r),0}catch(i){return this.lastError=i,2570}}jAccess(e,t,i){try{let a=new URL(e,"file://").pathname;return i.setInt32(0,this.accessiblePaths.has(a)?1:0,!0),0}catch(r){return this.lastError=r,3338}}jClose(e){try{let t=this.mapIdToFile.get(e);return this.mapIdToFile.delete(e),t?.flags&256?t.persistentFile?.handleLockReleaser&&this.#i(t):t?.flags&8&&(t.accessHandle.truncate(0),this.accessiblePaths.delete(t.path),this.persistentFiles.has(t.path)||(this.boundAccessHandles.delete(t.path),this.unboundAccessHandles.add(t.accessHandle))),0}catch(t){return this.lastError=t,4106}}jRead(e,t,i){try{let r=this.mapIdToFile.get(e),s=(r.accessHandle||r.persistentFile.accessHandle).read(t.subarray(),{at:i});return r.flags&256&&!r.persistentFile.isFileLocked&&this.#i(r),s<t.byteLength?(t.fill(0,s),522):0}catch(r){return this.lastError=r,266}}jWrite(e,t,i){try{let r=this.mapIdToFile.get(e);if((r.accessHandle||r.persistentFile.accessHandle).write(t.subarray(),{at:i})!==t.byteLength)throw new Error("short write");return 0}catch(r){return this.lastError=r,778}}jTruncate(e,t){try{let i=this.mapIdToFile.get(e);return(i.accessHandle||i.persistentFile.accessHandle).truncate(t),0}catch(i){return this.lastError=i,1546}}jSync(e,t){try{let i=this.mapIdToFile.get(e);return(i.accessHandle||i.persistentFile.accessHandle).flush(),0}catch(i){return this.lastError=i,1034}}jFileSize(e,t){try{let i=this.mapIdToFile.get(e),a=(i.accessHandle||i.persistentFile.accessHandle).getSize();return t.setBigInt64(0,BigInt(a),!0),0}catch(i){return this.lastError=i,1802}}jLock(e,t){let i=this.mapIdToFile.get(e);return i.persistentFile.isRequestInProgress?(i.persistentFile.isLockBusy=!0,5):(i.persistentFile.isFileLocked=!0,i.persistentFile.handleLockReleaser?(i.persistentFile.isLockBusy=!1,0):(i.persistentFile.handleRequestChannel.onmessage=()=>{this.log?.(`received notification for ${i.path}`),i.persistentFile.isFileLocked?i.persistentFile.isHandleRequested=!0:this.#i(i),i.persistentFile.handleRequestChannel.onmessage=null},this.#t(i),this.log?.("returning SQLITE_BUSY"),i.persistentFile.isLockBusy=!0,5))}jUnlock(e,t){let i=this.mapIdToFile.get(e);return t===0&&(i.persistentFile.isLockBusy||(i.persistentFile.isHandleRequested&&(this.#i(i),i.persistentFile.isHandleRequested=!1),i.persistentFile.isFileLocked=!1)),0}jFileControl(e,t,i){try{let r=this.mapIdToFile.get(e);switch(t){case 14:let a=sV(i,4),s=sV(i,8);switch(this.log?.("xFileControl",r.path,"PRAGMA",a,s),a.toLowerCase()){case"journal_mode":if(s&&!["off","memory","delete","wal"].includes(s.toLowerCase()))throw new Error('journal_mode must be "off", "memory", "delete", or "wal"');break}break}}catch(r){return this.lastError=r,10}return 12}jGetLastError(e){if(this.lastError){console.error(this.lastError);let t=e.subarray(0,e.byteLength-1),{written:i}=new TextEncoder().encodeInto(this.lastError.message,t);e[i]=0}return 0}async#e(e){let t=new X2(e),a=`/${(await(await navigator.storage.getDirectory()).resolve(e)).join("/")}`;return t.handleRequestChannel=new BroadcastChannel(`ahp:${a}`),this.persistentFiles.set(a,t),(await e.getFile()).size&&this.accessiblePaths.add(a),t}#t(e){return console.assert(!e.persistentFile.handleLockReleaser),e.persistentFile.isRequestInProgress?Promise.resolve():(e.persistentFile.isRequestInProgress=!0,this._module.retryOps.push((async()=>{e.persistentFile.handleLockReleaser=await this.#r(e.persistentFile);try{this.log?.(`creating access handles for ${e.path}`),await Promise.all(hF.map(async t=>{let i=this.persistentFiles.get(e.path+t);i&&(i.accessHandle=await i.fileHandle.createSyncAccessHandle())}))}catch(t){throw this.log?.(`failed to create access handles for ${e.path}`,t),this.#i(e),t}finally{e.persistentFile.isRequestInProgress=!1}})()),this._module.retryOps.at(-1))}#i(e){hF.forEach(t=>{let i=this.persistentFiles.get(e.path+t);i&&(i.accessHandle?.close(),i.accessHandle=null)}),this.log?.(`access handles closed for ${e.path}`),e.persistentFile.handleLockReleaser?.(),e.persistentFile.handleLockReleaser=null,this.log?.(`lock released for ${e.path}`)}#r(e){return new Promise(t=>{let i=e.handleRequestChannel.name,r=()=>{this.log?.(`notifying for ${i}`),e.handleRequestChannel.postMessage(null)},a=setInterval(r,Xte);setTimeout(r),this.log?.(`lock requested: ${i}`),navigator.locks.request(i,s=>(this.log?.(`lock acquired: ${i}`,s),clearInterval(a),new Promise(t)))})}}});var db,mF=Da(()=>{db=class{#n;#e=null;#t=Promise.resolve(null);#i=!1;constructor(e){this.#n=e}get name(){return this.#n}get mode(){return this.#e}close(){this.release()}async acquire(e,t=-1){if(this.#i)throw new Error("Lock is already being acquired");this.#i=!0;try{if(this.#e)throw new Error(`Lock ${this.#n} is already acquired`);return this.#t=new Promise((i,r)=>{let a={mode:e,ifAvailable:t===0};t>0&&(a.signal=AbortSignal.timeout(t)),navigator.locks.request(this.#n,a,s=>s===null?i(null):(this.#e=e,new Promise(l=>{i(l)}))).catch(s=>r(s))}),this.#t.then(i=>!!i)}finally{this.#i=!1}}release(){this.#t.then(e=>e?.(),()=>{}),this.#e=null}}});var pT,uV=Da(()=>{mF();pT=class extends db{#n;#e=!1;#t=!1;constructor(e){super(e),this.#n=new BroadcastChannel(e),this.#n.onmessage=t=>{this.#e?this.#t=!0:this.release()}}close(){super.close(),this.#n.onmessage=null,this.#n.close()}async acquire(e,t=-1){this.#e=!0;try{if(e===this.mode)return!0;if(this.mode)super.release();else if(await super.acquire(e,0))return!0;let i=super.acquire(e,t);return this.#n.postMessage({}),await i}catch(i){throw this.release(),i}}acquireIfHeld(e){return e===this.mode?(this.#e=!0,!0):!1}release(){super.release(),this.#e=!1,this.#t=!1}releaseLazy(){this.#e=!1,this.#t&&this.release()}}});var cV,Kte,fV,Xh,fa,_F,gF,vF,dV,hV,Y2,Yh,pV=Da(()=>{mF();cV=1e3,Kte=3e4,fV=931071620,Xh=32,fa=32,_F=0,gF=1,vF=2,dV=1,hV=2,Y2=class{log=null;options={autoCheckpoint:1,backstopInterval:Kte,journalSizeLimit:cV};#n;#e;#t;#i;#r;#s;#o=0;#a=null;#d=0;#l;#u=null;#f=null;#h=new Map;#c=new Map;#v=new Map;#x=0;#T=0;#_;#p;#g=0;#C=new AbortController;constructor(e,t,i,r={}){this.#n=e,this.#e=t,this.#t=i,this.options=Object.assign(this.options,r),this.#l=(async()=>{let{fileHeader:a}=await navigator.locks.request(`${this.#n}#ckpt`,async()=>(await this.#y(),{fileHeader:this.#t.map(l=>this.#b(l)).filter(l=>l).sort((l,c)=>l.nextTxId-c.nextTxId)[0]??this.#U(Math.floor(Math.random()*4294967295))}));this.#r=a,this.#i=this.#t[a.salt1&1],this.#s=Xh,this.#o=a.nextTxId-1,this.#_=new BroadcastChannel(`${e}#wa`),this.#_.onmessage=s=>{this.#z(s)};for(let s of this.#D())this.#S(s);this.#y(),this.#g=performance.now(),this.#w()})()}ready(){return this.#l}close(){this.#C.abort(),this.#_.onmessage=null,clearTimeout(this.#p),this.#f?.release(),this.#_.close()}isolateForRead(){if(this.#u!==null)throw new Error("Already in isolated state");this.#u="read",clearTimeout(this.#p),this.#p=null}isolateForWrite(){if(this.#u!==null)throw new Error("Already in isolated state");this.#u="write",clearTimeout(this.#p),this.#p=null,this.#E({readToCurrent:!0})}rejoin(){this.#u==="read"&&this.#E({autoCheckpoint:!0}),this.#u=null,this.#w()}read(e){let t=this.#a?.pages.get(e)??this.#h.get(e);return t?t.pageData?(this.log?.(`%cread page at ${e} from WAL ${t.waSalt1&1}:${t.waOffset} (cached)`,"color: black; background-color: gold;"),t.pageData):(this.log?.(`%cread page at ${e} from WAL ${t.waSalt1&1}:${t.waOffset}`,"color: black; background-color: gold;"),this.#O(t)):null}write(e,t,i){if(this.#u!=="write")throw new Error("Not in write isolated state");if(this.#a||(this.#H(),i.dstPageSize!==t.byteLength&&(this.#a.newPageSize=i.dstPageSize)),this.#a.newPageSize){let r=fa+this.#a.newPageSize;if(t.byteLength>this.#a.newPageSize)for(let a=0;a<t.byteLength;a+=this.#a.newPageSize){let s=t.slice(a,a+this.#a.newPageSize),l=this.#M(e+a,s);this.log?.(`%cwrite page at ${e+a} to WAL ${this.#r.salt1&1}:${l}`,"color: black; background-color: lightskyblue;")}else{let a=e%this.#a.newPageSize,s=this.#s+(e-a)/this.#a.newPageSize*r+fa+a;this.#i.write(t.subarray(),{at:s}),this.log?.(`%cwrite page at ${e} to WAL ${this.#r.salt1&1}:${s}`,"color: black; background-color: lightskyblue;")}}else{let r=this.#M(e,t.slice());this.log?.(`%cwrite page at ${e} to WAL ${this.#r.salt1&1}:${r}`,"color: black; background-color: lightskyblue;")}}truncate(e){if(this.#a)for(let t of this.#a.pages.keys())t>=e&&this.#a.pages.delete(t)}getFileSize(){return this.#a?.dbFileSize??this.#d}commit(){let e=this.#a;if(e.newPageSize&&e.pages.size===0){let a=1;for(let s=0;s<a;s++){let l=new Uint8Array(e.newPageSize),c=this.#s+s*(fa+e.newPageSize)+fa;this.#i.read(l,{at:c}),s===0&&(a=new DataView(l.buffer).getUint32(28)),this.#M(s*e.newPageSize,l)}}let t=this.#a.pages.get(0)?.pageData;if(t){let s=new DataView(t.buffer,t.byteOffset,t.byteLength).getUint32(28);this.#a.dbFileSize=s*t.byteLength}else{this.rollback();return}let i=!1;if(this.#X()){let a=this.#T+this.#a.pages.size,s=this.options.journalSizeLimit>0?this.options.journalSizeLimit:cV;a>=s&&(this.log?.(`%cchange WAL file at ${a} pages`,"color: black; background-color: lightskyblue;"),i=!0)}this.#V(i),this.#S(e),this.#y();let r={type:"tx",tx:e};this.#_.postMessage(r),this.#R(),this.#g=performance.now()}rollback(){this.#G()}sync(e){e.durability==="strict"&&this.#P()}async checkpoint(e={isPassive:!0}){let t={ifAvailable:e.isPassive};await navigator.locks.request(`${this.#n}#ckpt`,t,async i=>{if(!i||this.#C.signal.aborted)return;let r=this.#j()-1;if(e.isPassive){if(!this.#c.has(r)||(await this.#L()).reduce((c,f)=>Math.min(c,f.maxTxId),this.#o)<r)return}else await this.#k(l=>l.maxTxId>=this.#o),r=this.#o;this.log?.(`%ccheckpoint through txId ${r}`,"color: black; background-color: lightgreen;"),this.#Q(),e.isPassive||this.#P();let a=new Set,s=this.#e.getSize();for(let l=this.#c.get(r);l;l=this.#c.get(l.id-1)){l.id===r&&s!==l.dbFileSize&&(s=l.dbFileSize,this.#e.truncate(s));for(let[c,f]of l.pages)if(c<s&&!a.has(c)){let p=f.pageData??this.#O(f);if(this.#e.write(p,{at:c})!==p.byteLength)throw new Error("Checkpoint write failed");a.add(c),this.log?.(`%ccheckpoint wrote txId ${l.id} page at ${c} to database`,"color: black; background-color: lightgreen;")}if(l.newPageSize)break}this.log?.("%ccheckpoint flush database file","color: black; background-color: lightgreen;"),this.#e.flush(),this.#_.postMessage({type:"ckpt",ckptId:r}),this.#I(r),this.log?.("%ccheckpoint waiting for connection updates","color: black; background-color: lightgreen;"),await this.#k(l=>l.minTxId>r),this.#Y(),this.log?.("%ccheckpoint complete","color: black; background-color: lightgreen;")})}getWriteAheadSize(){return this.#x}isTransactionPending(){return!!this.#a}setBackstopInterval(e){this.options.backstopInterval=e,e>0&&this.#u&&this.#w()}#S(e){this.#c.set(e.id,e),e.pages.get(0).waSalt1===e.waSalt1?this.#T+=e.pages.size:this.#T=0,this.#x+=e.pages.size;for(let[i,r]of e.pages)this.#h.set(i,r);this.#d=e.dbFileSize}#E(e={}){let t=!1;for(;this.#v.size;){let i=this.#o+1,r;this.#v.has(i)?(r=this.#v.get(i),this.#v.delete(r.id),this.#B(r)):r=this.#F(),this.#S(r),t=!0}if(e.readToCurrent)for(let i of this.#D())this.#S(i),t=!0;t&&(this.#y(),e.autoCheckpoint&&this.#R()),(e.readToCurrent||t)&&(this.#g=performance.now())}#R(){this.options.autoCheckpoint>0&&this.checkpoint({isPassive:!0})}#I(e){this.log?.(`%capply checkpoint through txId ${e}`,"color: black; background-color: lightgreen;");for(let t=this.#c.get(e);t;t=this.#c.get(t.id-1)){for(let[i,r]of t.pages.entries())this.#h.get(i)===r&&(this.log?.(`%cremove txId ${t.id} page at offset ${i}`,"color: black; background-color: lightgreen;"),this.#h.delete(i));this.#c.delete(t.id),this.#x-=t.pages.size}this.#y()}#z(e){if(e.data.type==="tx"){let t=e.data.tx;t.id>this.#o&&(this.#v.set(t.id,t),this.#u===null&&this.#E({autoCheckpoint:!0}))}else if(e.data.type==="ckpt"){let t=e.data.ckptId;this.#I(t)}}#w(){if(this.options.backstopInterval<=0)return;if(this.#u)throw new Error("Backstop was invoked in an isolated state");if(performance.now()>=this.#g+this.options.backstopInterval){let i=this.#o;this.#E({readToCurrent:!0}),this.#o>i&&this.log?.(`%cbackstop txId ${i} -> ${this.#o}`,"color: black; background-color: lightyellow;"),this.#g=performance.now()}let t=this.#g+this.options.backstopInterval-performance.now();clearTimeout(this.#p),this.#p=self.setTimeout(()=>{this.#w()},t)}async#y(){let e=this.#f,t=this.#q();if(e?.name!==t&&(this.#f=new db(t),await this.#f.acquire("shared").then(()=>{e?.release()}),this.log)){let{minTxId:i,maxTxId:r}=this.#N(t);this.log?.(`%ctxId to ${i}:${r}`,"color: black; background-color: pink;")}}async#L(){let{held:e}=await navigator.locks.query();return e.map(t=>this.#N(t.name)).filter(t=>t!==null)}#q(){let e=this.#o,t=this.#c.keys().next().value??e+1;return`${this.#n}-txId<${t.toString(36)}:${e.toString(36)}>`}#N(e){let t=e.match(/^(.*)-txId<([0-9a-z]+):([0-9a-z]+)>$/);return t?.[1]===this.#n?{name:t[1],minTxId:parseInt(t[2],36),maxTxId:parseInt(t[3],36),encoded:e}:null}async#k(e){let t=[];do t.length>0&&await Promise.all(t.map(i=>navigator.locks.request(i,async()=>{}))),t=(await this.#L()).filter(i=>!e(i)).map(i=>i.encoded);while(t.length>0)}#O(e){let t=this.#t[e.waSalt1&1],i=new Uint8Array(e.pageSize),r=t.read(i,{at:e.waOffset});if(r!==e.pageSize)throw new Error(`Short WAL read: expected ${e.pageSize} bytes, got ${r}`);return i}*#D(){for(;;){let e=this.#F();if(!e)break;yield e}}#F(){let e={id:0,pages:new Map,dbFileSize:0,waSalt1:0,waOffsetEnd:0},t=this.#s;for(;;){let i=this.#K(t);if(!i)return null;if(i.frameType===_F)e.pages.set(i.pageOffset,{pageSize:i.pageData.byteLength,waOffset:t+fa,waSalt1:this.#r.salt1});else{if(i.frameType===gF)return this.#o+=1,this.#s=t+i.byteLength,e.id=this.#o,e.dbFileSize=i.dbFileSize,e.waSalt1=this.#r.salt1,e.newPageSize=i.flags&dV?e.pages.get(0).pageSize:null,i.fileHeader&&(this.#A(i.fileHeader),e.waSalt1=this.#r.salt1,e.waOffsetEnd=this.#s),e;if(i.frameType===vF){this.#A(i.fileHeader),t=this.#s;continue}}t+=i.byteLength}}#B(e){if(e.waSalt1!==this.#r.salt1){let t=this.#A(null);if(!t||t.salt1!==e.waSalt1)throw new Error("invalid WAL file")}this.#o=e.id,this.#s=e.waOffsetEnd}#H(e={}){return this.#a={id:this.#o+1,pages:new Map,dbFileSize:this.#d,waSalt1:this.#r.salt1,waOffsetEnd:this.#s},this.#a}#M(e,t){let i=new DataView(new ArrayBuffer(fa));i.setUint8(0,_F),i.setUint16(2,t.byteLength===65536?1:t.byteLength),i.setBigUint64(8,BigInt(e)),i.setUint32(16,this.#r.salt1),i.setUint32(20,this.#r.salt2);let r=new Yh;r.update(new Uint8Array(i.buffer,0,fa-8)),r.update(t),i.setUint32(24,r.s0),i.setUint32(28,r.s1);let a=this.#i.write(i,{at:this.#a.waOffsetEnd})+this.#i.write(t,{at:this.#a.waOffsetEnd+fa});if(a!==i.byteLength+t.byteLength)throw new Error("write failed");let s={pageSize:t.byteLength,waOffset:this.#a.waOffsetEnd+fa,waSalt1:this.#r.salt1,pageData:e===0?t:void 0};return this.#a.pages.set(e,s),this.#a.waOffsetEnd+=a,s.waOffset}#V(e){let t=new DataView(new ArrayBuffer(fa));t.setUint8(0,gF),t.setUint8(1,(this.#a.newPageSize?dV:0)|(e?hV:0)),t.setBigUint64(8,BigInt(this.#a.dbFileSize)),t.setUint32(16,this.#r.salt1),t.setUint32(20,this.#r.salt2);let i=new Yh;i.update(new Uint8Array(t.buffer,0,fa-8)),t.setUint32(24,i.s0),t.setUint32(28,i.s1);let r=this.#i.write(t,{at:this.#a.waOffsetEnd});if(r!==t.byteLength)throw new Error("write failed");this.#a.waOffsetEnd+=r;let a=this.#a;return this.#a=null,this.#s=a.waOffsetEnd,this.#o=a.id,e&&(this.#W(),a.waSalt1=this.#r.salt1,a.waOffsetEnd=this.#s),a}#G(){this.#a=null,this.#i.truncate(this.#s)}#W(){let e=new DataView(new ArrayBuffer(fa));e.setUint8(0,vF),e.setUint32(16,this.#r.salt1),e.setUint32(20,this.#r.salt2);let t=new Yh;if(t.update(new Uint8Array(e.buffer,0,fa-8)),e.setUint32(24,t.s0),e.setUint32(28,t.s1),this.#i.write(e,{at:this.#s})!==e.byteLength)throw new Error("write failed");this.#r=this.#U(),this.#i=this.#m(),this.#s=Xh}#j(){return this.#r.nextTxId}#P(){this.#i.flush()}#Q(){this.#m().flush()}#X(){if(this.#c.has(this.#r.nextTxId-1))return!1;let e=this.#m();return e.getSize()<Xh?!0:this.#b(e)===null}#Y(){this.#m().truncate(0)}#A(e){let t=this.#m();return!e&&(e=this.#b(t),e?.salt1!==this.#r.salt1+1>>>0)?null:(this.#i=t,this.#r=e,this.#s=Xh,e)}#m(){return this.#i!==this.#t[0]?this.#t[0]:this.#t[1]}#b(e){let t=new DataView(new ArrayBuffer(Xh));if(e.read(t,{at:0})!==t.byteLength||t.getUint32(0)!==fV)return null;let i=new Yh;return i.update(new Uint8Array(t.buffer,0,Xh-8)),i.matches(t.getUint32(24),t.getUint32(28))?{nextTxId:Number(t.getBigUint64(8)),salt1:t.getUint32(16),salt2:t.getUint32(20)}:null}#K(e){let t=new DataView(new ArrayBuffer(fa));if(this.#i.read(t,{at:e})!==t.byteLength)return null;let i=t.getUint32(16),r=t.getUint32(20);if(i!==this.#r.salt1||r!==this.#r.salt2)return null;let a=(f=>f===1?65536:f)(t.getUint16(2)),s;if(a&&(s=new Uint8Array(a),this.#i.read(s,{at:e+fa})!==a))return null;let l=new Yh;if(l.update(new Uint8Array(t.buffer,0,fa-8)),s&&l.update(s),!l.matches(t.getUint32(24),t.getUint32(28)))return null;let c=t.getUint8(0);if(c===_F)return{frameType:c,byteLength:fa+a,pageOffset:Number(t.getBigUint64(8)),pageData:s};if(c===gF){let f=t.getUint8(1),p;return f&hV&&(p=this.#b(this.#m()),p?.salt1!==this.#r.salt1+1>>>0)?null:{frameType:c,byteLength:fa,flags:f,dbFileSize:Number(t.getBigUint64(8)),fileHeader:p}}else if(c===vF){let f=this.#b(this.#m());return f?.salt1!==this.#r.salt1+1>>>0?null:{frameType:c,byteLength:fa,fileHeader:f}}throw new Error(`Invalid frame type: ${c}`)}#U(e=this.#r.salt1){let t=this.#o+1,i=e+1>>>0,r=Math.floor(Math.random()*4294967295)>>>0,a=new DataView(new ArrayBuffer(Xh));a.setUint32(0,fV),a.setBigUint64(8,BigInt(t)),a.setUint32(16,i),a.setUint32(20,r);let s=new Yh;if(s.update(new Uint8Array(a.buffer,0,Xh-8)),a.setUint32(24,s.s0),a.setUint32(28,s.s1),this.#t[i&1].write(a,{at:0})!==a.byteLength)throw new Error("write failed");return{nextTxId:t,salt1:i,salt2:r}}},Yh=class{s0=0;s1=0;update(e){if(e.byteLength%8!==0)throw new Error("Data must be a multiple of 8 bytes");let t=ArrayBuffer.isView(e)?new Uint32Array(e.buffer,e.byteOffset,e.byteLength/4):new Uint32Array(e);for(let i=0;i<t.length;i+=2)this.s0=this.s0+t[i]+this.s1>>>0,this.s1=this.s1+t[i+1]+this.s0>>>0}matches(e,t){return this.s0===e&&this.s1===t}}});var _V={};pu(_V,{OPFSWriteAheadVFS:()=>yF});var $te,Jte,mV,yF,gV=Da(()=>{ub();Qh();uV();pV();$te=".wa-sqlite",Jte=6,mV=new FinalizationRegistry(n=>n()),yF=class n extends Jl{lastError=null;log=null;mapIdToFile=new Map;mapPathToFile=new Map;boundTempFiles=new Map;unboundTempFiles=new Set;options={nTmpFiles:Jte};_ready;static async create(e,t,i){let r=new n(e,t);return Object.assign(r.options,i),await r.isReady(),r}constructor(e,t){super(e,t),this._ready=(async()=>{let i=await navigator.storage.getDirectory();i=await i.getDirectoryHandle($te,{create:!0});for await(let a of i.keys())a.startsWith(".session-")&&await navigator.locks.request(a,{ifAvailable:!0},async s=>{if(s)try{await i.removeEntry(a,{recursive:!0})}catch{}});let r=`.session-${Math.random().toString(16).slice(2)}`;await new Promise(a=>{navigator.locks.request(r,()=>(a(),new Promise(s=>{mV.register(this,s)})))}),i=await i.getDirectoryHandle(r,{create:!0});for(let a=0;a<this.options.nTmpFiles;a++){let l=await(await i.getFileHandle(a.toString(),{create:!0})).createSyncAccessHandle();mV.register(this,()=>l.close()),this.unboundTempFiles.add(l)}})()}isReady(){return Promise.all([super.isReady(),this._ready]).then(()=>!0)}jOpen(e,t,i,r){try{e===null&&(e=Math.random().toString(16).slice(2));let a=this.mapPathToFile.get(e)??{zName:e,flags:i,retryResult:null};if(this.mapPathToFile.set(e,a),i&256){if(a.retryResult===null)return this._module.retryOps.push(this.#o(e,i,t,r)),5;if(a.retryResult instanceof Error){let s=a.retryResult;throw a.retryResult=null,s}a.accessHandle=a.retryResult.accessHandle,a.waHandles=a.retryResult.waHandles,a.writeAhead=a.retryResult.writeAhead,a.retryResult=null,a.lockState=0,a.lockingMode="normal",a.readLock=new pT(`${e}#read`),a.writeLock=new pT(`${e}#write`),a.useLazyLock="readwrite",a.timeout=-1,a.synchronous=1,a.writeHint=null,a.pageSize=null,a.overwrite=!1}else{if(i&540672)throw new Error("WAL and super-journal files are not supported");if(!a.accessHandle){if(!(i&4))throw new Error("file not found");a.accessHandle=this.#n(e)}}return this.mapIdToFile.set(t,a),r.setInt32(0,i,!0),0}catch(a){return console.error(a.stack),this.lastError=a,this.mapPathToFile.delete(e),14}}jDelete(e,t){try{if(this.boundTempFiles.has(e)){let i=this.mapPathToFile.get(e);this.#e(i)}else throw new Error(`unexpected file deletion: ${e}`);return 0}catch(i){return console.error(i.stack),this.lastError=i,2570}}jAccess(e,t,i){try{let r=this.mapPathToFile.get(e);return i.setInt32(0,r?1:0,!0),0}catch(r){return console.error(r.stack),this.lastError=r,3338}}jClose(e){try{let t=this.mapIdToFile.get(e);return t?.flags&256?(t.writeAhead.close(),t.accessHandle.close(),t.waHandles.forEach(i=>i.close()),this.mapPathToFile.delete(t?.zName),t.readLock.close(),t.writeLock.close()):t?.flags&8&&this.#e(t),this.mapIdToFile.delete(e),0}catch(t){return console.error(t.stack),this.lastError=t,4106}}jRead(e,t,i){try{let r=this.mapIdToFile.get(e),a=null;if(r.flags&256){let s=i<100?i:0,l=r.writeAhead.read(i-s);if(l){let c=l.subarray(s,s+t.byteLength);t.set(c),a=c.byteLength}}return a===null&&(a=r.accessHandle.read(t.subarray(),{at:i})),a<t.byteLength?(t.fill(0,a),522):0}catch(r){return console.error(r.stack),this.lastError=r,266}}jWrite(e,t,i){try{let r=this.mapIdToFile.get(e);if(r.flags&256){let a=r.overwrite&&r.pageSize!==t.byteLength;return r.writeAhead.write(i,t,{dstPageSize:a?r.pageSize:null}),0}return r.accessHandle.write(t.subarray(),{at:i}),0}catch(r){return console.error(r.stack),this.lastError=r,778}}jTruncate(e,t){try{let i=this.mapIdToFile.get(e);return i.flags&256?(i.writeAhead.truncate(t),0):(i.accessHandle.truncate(t),0)}catch(i){return console.error(i.stack),this.lastError=i,1546}}jSync(e,t){try{let i=this.mapIdToFile.get(e);if(i.flags&256){let r=i.synchronous>1?"strict":"relaxed";i.writeAhead.sync({durability:r})}return 0}catch(i){return console.error(i.stack),this.lastError=i,1034}}jFileSize(e,t){try{let i=this.mapIdToFile.get(e),r;return i.flags&256?r=i.writeAhead.getFileSize()||i.accessHandle.getSize():r=i.accessHandle.getSize(),t.setBigInt64(0,BigInt(r),!0),0}catch(i){return console.error(i.stack),this.lastError=i,1802}}jLock(e,t){try{let i=this.mapIdToFile.get(e);if(i.lockState===0&&t===1){if(i.retryResult===null){if(i.lockingMode==="exclusive")return i.retryResult={},this._module.retryOps.push(this.#s(i)),5;if(i.writeHint)if(i.writeLock.acquireIfHeld("exclusive"))i.writeAhead.isolateForWrite();else return i.retryResult={},this._module.retryOps.push(this.#s(i)),5;else if(i.readLock.acquireIfHeld("shared"))i.writeAhead.isolateForRead();else return i.retryResult={},this._module.retryOps.push(this.#r(i)),5}else if(i.retryResult instanceof Error){let r=i.retryResult;throw i.retryResult=null,r}i.retryResult=null}else if(t>=2&&!i.writeLock.mode)throw new Error("Write transaction cannot use BEGIN DEFERRED");return i.lockState=t,0}catch(i){return i.name==="TimeoutError"?5:(console.error(i.stack),this.lastError=i,3850)}}jUnlock(e,t){try{let i=this.mapIdToFile.get(e);if(!i.retryResult&&t===0){switch(i.writeAhead.rejoin(),i.useLazyLock){case"none":i.writeLock.release(),i.readLock.release();break;case"read":i.writeLock.release(),i.readLock.releaseLazy();break;case"write":i.writeLock.releaseLazy(),i.readLock.release();break;case"readwrite":i.writeLock.releaseLazy(),i.readLock.releaseLazy();break}i.writeHint=null}i.lockState=t}catch(i){return console.error(i.stack),this.lastError=i,2058}}jCheckReservedLock(e,t){return console.assert(!1,"unexpected"),t.setInt32(0,0,!0),0}jFileControl(e,t,i){try{let r=this.mapIdToFile.get(e);switch(t){case 14:let a=this._module.UTF8ToString(i.getUint32(4,!0)),s=i.getUint32(8,!0),l=s?this._module.UTF8ToString(s):null;switch(this.log?.(`PRAGMA ${a} ${l}`),a.toLowerCase()){case"experimental_pragma_20251114":switch(l){case"1":r.writeHint="reserved";break;case"2":r.writeHint="exclusive";break;default:throw new Error(`unexpected write hint value: ${l}`)}break;case"backstop_interval":if(l!==null){let f=parseInt(l);r.writeAhead.setBackstopInterval(f)}else{let f=r.writeAhead.options.backstopInterval.toString(),p=this._module._sqlite3_malloc64(f.length+1);this._module.stringToUTF8(f,p,f.length+1),i.setUint32(0,p,!0)}return 0;case"busy_timeout":if(l!==null)r.timeout=parseInt(l);else{let f=r.timeout.toString(),p=this._module._sqlite3_malloc64(f.length+1);this._module.stringToUTF8(f,p,f.length+1),i.setUint32(0,p,!0)}return 0;case"journal_size_limit":if(l!==null){let f=parseInt(l);r.writeAhead.options.journalSizeLimit=f}break;case"locking_mode":switch(l?.toLowerCase()){case"normal":r.lockingMode="normal";break;case"exclusive":r.lockingMode="exclusive";break}break;case"page_size":if(l!==null){let f=parseInt(l);(f===1||f>=512&&f<=32768&&(f&f-1)===0)&&(r.pageSize=f===1?65536:f)}break;case"synchronous":if(l!==null)switch(l.toLowerCase()){case"off":case"0":r.synchronous=0;break;case"normal":case"1":r.synchronous=1;break;case"full":case"2":r.synchronous=2;break;case"extra":case"3":r.synchronous=3;break;default:throw new Error(`unexpected synchronous value: ${l}`)}break;case"vfs_trace":return l!==null&&(this.log=parseInt(l)!==0?console.debug:null,r.writeAhead.log=this.log),0;case"wal_autocheckpoint":l!==null&&(r.writeAhead.options.autoCheckpoint=parseInt(l));break;case"wal_checkpoint":let c=(l??"passive").toLowerCase();switch(c){case"passive":this._module.pendingOps.push(this.#i(r,c));break;case"full":case"restart":case"truncate":if(r.writeAhead.isTransactionPending())throw new Error("invalid while a transaction is in progress");this._module.pendingOps.push(this.#i(r,c));break;case"noop":break;default:throw new Error(`unexpected wal_checkpoint mode: ${l}`)}{let f=r.writeAhead.getWriteAheadSize().toString(),p=this._module._sqlite3_malloc64(f.length+1);this._module.stringToUTF8(f,p,f.length+1),i.setUint32(0,p,!0)}return 0;case"lazy_lock":if(l!==null){let f=l.toLowerCase();switch(f){case"read":case"write":case"readwrite":case"none":r.useLazyLock=f;break;default:throw new Error(`unexpected value for lazy_lock: ${l}`)}}{let f=r.useLazyLock,p=this._module._sqlite3_malloc64(f.length+1);this._module.stringToUTF8(f,p,f.length+1),i.setUint32(0,p,!0)}return 0}break;case 31:case 32:if(r.flags&256)return 0;break;case 33:if(r.flags&256)return r.writeAhead.rollback(),0;break;case 21:r.flags&256&&r.writeAhead.commit();break;case 11:r.overwrite=!0;break}}catch(r){return console.error(r.stack),this.lastError=r,10}return 12}jDeviceCharacteristics(e){return 18432}jGetLastError(e){if(this.lastError){console.error(this.lastError);let t=e.subarray(0,e.byteLength-1),{written:i}=new TextEncoder().encodeInto(this.lastError.message,t);e[i]=0}return 0}#n(e){if(this.unboundTempFiles.size===0)throw new Error("no temporary files available");let t=this.unboundTempFiles.values().next().value;return this.unboundTempFiles.delete(t),this.boundTempFiles.set(e,t),t}#e(e){e.accessHandle.truncate(0),this.mapPathToFile.delete(e.zName),this.unboundTempFiles.add(e.accessHandle),this.boundTempFiles.delete(e.zName)}#t(e,t){return`${e}-wa${t}`}async#i(e,t){let i=[];try{t!=="passive"&&e.lockState===0&&(await e.writeLock.acquire("exclusive"),i.push(()=>e.writeLock.release()),e.writeAhead.isolateForWrite(),i.push(()=>e.writeAhead.rejoin())),await e.writeAhead.checkpoint({isPassive:t==="passive"})}catch(r){throw r.name==="AbortError"&&(r.code=5),r}finally{for(;i.length;)i.pop()()}}async#r(e){let t=[];try{await e.readLock.acquire("shared",e.timeout),t.push(()=>e.readLock.release()),e.writeAhead.isolateForRead(),e.retryResult={}}catch(i){for(;t.length;)t.pop()();e.retryResult=i}}async#s(e){let t=[];try{e.lockingMode==="exclusive"&&(await e.readLock.acquire("exclusive",e.timeout),t.push(()=>e.readLock.release())),await e.writeLock.acquire("exclusive",e.timeout),t.push(()=>e.writeLock.release()),e.writeAhead.isolateForWrite(),e.retryResult={}}catch(i){for(;t.length;)t.pop()();e.retryResult=i}}async#o(e,t,i,r){let a=[],s=this.mapPathToFile.get(e);try{let{accessHandle:l,waHandles:c}=await navigator.locks.request(`${e}#open`,async p=>{let h=e.split("/").filter(O=>O),_=h.pop(),g=await navigator.storage.getDirectory(),E=!!(t&4);for(let O of h)g=await g.getDirectoryHandle(O,{create:E});let x=E&&await(async function(){try{return await g.getFileHandle(_),!1}catch(O){if(O.name==="NotFoundError")return!0;throw O}})();async function S(O,k){let G=await(await g.getFileHandle(O,k)).createSyncAccessHandle({mode:"readwrite-unsafe"});return a.push(()=>{G.close(),x&&g.removeEntry(O)}),G}let v=await S(_,{create:E}),M=await Promise.all([0,1].map(async O=>{let k=this.#t(_,O),q=await S(k,{create:!0});return x&&q.truncate(0),q}));return{accessHandle:v,waHandles:M}}),f=new Y2(e,l,c);await f.ready(),s.retryResult={accessHandle:l,waHandles:c,writeAhead:f}}catch(l){for(;a.length;)a.pop()();s.retryResult=l}}}});var vV={};pu(vV,{MemoryVFS:()=>bF});var bF,yV=Da(()=>{ub();Qh();bF=class n extends Jl{mapNameToFile=new Map;mapIdToFile=new Map;static async create(e,t){let i=new n(e,t);return await i.isReady(),i}constructor(e,t){super(e,t)}close(){for(let e of this.mapIdToFile.keys())this.jClose(e)}jOpen(e,t,i,r){let s=new URL(e||Math.random().toString(36).slice(2),"file://").pathname,l=this.mapNameToFile.get(s);if(!l)if(i&4)l={pathname:s,flags:i,size:0,data:new ArrayBuffer(0)},this.mapNameToFile.set(s,l);else return 14;return this.mapIdToFile.set(t,l),r.setInt32(0,i,!0),0}jClose(e){let t=this.mapIdToFile.get(e);return this.mapIdToFile.delete(e),t.flags&8&&this.mapNameToFile.delete(t.pathname),0}jRead(e,t,i){let r=this.mapIdToFile.get(e),a=Math.min(i,r.size),l=Math.min(i+t.byteLength,r.size)-a;return l&&t.set(new Uint8Array(r.data,a,l)),l<t.byteLength?(t.fill(0,l),522):0}jWrite(e,t,i){let r=this.mapIdToFile.get(e);if(i+t.byteLength>r.data.byteLength){let a=Math.max(i+t.byteLength,2*r.data.byteLength),s=new ArrayBuffer(a);new Uint8Array(s).set(new Uint8Array(r.data,0,r.size)),r.data=s}return new Uint8Array(r.data,i,t.byteLength).set(t.subarray()),r.size=Math.max(r.size,i+t.byteLength),0}jTruncate(e,t){let i=this.mapIdToFile.get(e);return i.size=Math.min(i.size,t),0}jFileSize(e,t){let i=this.mapIdToFile.get(e);return t.setBigInt64(0,BigInt(i.size),!0),0}jDelete(e,t){let r=new URL(e,"file://").pathname;return this.mapNameToFile.delete(r),0}jAccess(e,t,i){let a=new URL(e,"file://").pathname,s=this.mapNameToFile.get(a);return i.setInt32(0,s?1:0,!0),0}}});var NG={};pu(NG,{WebSocketSupport:()=>UF});function Ine(){if(eG)return LT;eG=1,LT.byteLength=l,LT.toByteArray=f,LT.fromByteArray=_;for(var n=[],e=[],t=typeof Uint8Array<"u"?Uint8Array:Array,i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",r=0,a=i.length;r<a;++r)n[r]=i[r],e[i.charCodeAt(r)]=r;e[45]=62,e[95]=63;function s(g){var E=g.length;if(E%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var x=g.indexOf("=");x===-1&&(x=E);var S=x===E?0:4-x%4;return[x,S]}function l(g){var E=s(g),x=E[0],S=E[1];return(x+S)*3/4-S}function c(g,E,x){return(E+x)*3/4-x}function f(g){var E,x=s(g),S=x[0],v=x[1],M=new t(c(g,S,v)),O=0,k=v>0?S-4:S,q;for(q=0;q<k;q+=4)E=e[g.charCodeAt(q)]<<18|e[g.charCodeAt(q+1)]<<12|e[g.charCodeAt(q+2)]<<6|e[g.charCodeAt(q+3)],M[O++]=E>>16&255,M[O++]=E>>8&255,M[O++]=E&255;return v===2&&(E=e[g.charCodeAt(q)]<<2|e[g.charCodeAt(q+1)]>>4,M[O++]=E&255),v===1&&(E=e[g.charCodeAt(q)]<<10|e[g.charCodeAt(q+1)]<<4|e[g.charCodeAt(q+2)]>>2,M[O++]=E>>8&255,M[O++]=E&255),M}function p(g){return n[g>>18&63]+n[g>>12&63]+n[g>>6&63]+n[g&63]}function h(g,E,x){for(var S,v=[],M=E;M<x;M+=3)S=(g[M]<<16&16711680)+(g[M+1]<<8&65280)+(g[M+2]&255),v.push(p(S));return v.join("")}function _(g){for(var E,x=g.length,S=x%3,v=[],M=16383,O=0,k=x-S;O<k;O+=M)v.push(h(g,O,O+M>k?k:O+M));return S===1?(E=g[x-1],v.push(n[E>>2]+n[E<<4&63]+"==")):S===2&&(E=(g[x-2]<<8)+g[x-1],v.push(n[E>>10]+n[E>>4&63]+n[E<<2&63]+"=")),v.join("")}return LT}function Lne(){return tG||(tG=1,PR.read=function(n,e,t,i,r){var a,s,l=r*8-i-1,c=(1<<l)-1,f=c>>1,p=-7,h=t?r-1:0,_=t?-1:1,g=n[e+h];for(h+=_,a=g&(1<<-p)-1,g>>=-p,p+=l;p>0;a=a*256+n[e+h],h+=_,p-=8);for(s=a&(1<<-p)-1,a>>=-p,p+=i;p>0;s=s*256+n[e+h],h+=_,p-=8);if(a===0)a=1-f;else{if(a===c)return s?NaN:(g?-1:1)*(1/0);s=s+Math.pow(2,i),a=a-f}return(g?-1:1)*s*Math.pow(2,a-i)},PR.write=function(n,e,t,i,r,a){var s,l,c,f=a*8-r-1,p=(1<<f)-1,h=p>>1,_=r===23?Math.pow(2,-24)-Math.pow(2,-77):0,g=i?0:a-1,E=i?1:-1,x=e<0||e===0&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(l=isNaN(e)?1:0,s=p):(s=Math.floor(Math.log(e)/Math.LN2),e*(c=Math.pow(2,-s))<1&&(s--,c*=2),s+h>=1?e+=_/c:e+=_*Math.pow(2,1-h),e*c>=2&&(s++,c/=2),s+h>=p?(l=0,s=p):s+h>=1?(l=(e*c-1)*Math.pow(2,r),s=s+h):(l=e*Math.pow(2,h-1)*Math.pow(2,r),s=0));r>=8;n[t+g]=l&255,g+=E,l/=256,r-=8);for(s=s<<r|l,f+=r;f>0;n[t+g]=s&255,g+=E,s/=256,f-=8);n[t+g-E]|=x*128}),PR}function Nne(){return nG||(nG=1,(function(n){let e=Ine(),t=Lne(),i=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;n.Buffer=l,n.SlowBuffer=M,n.INSPECT_MAX_BYTES=50;let r=2147483647;n.kMaxLength=r,l.TYPED_ARRAY_SUPPORT=a(),!l.TYPED_ARRAY_SUPPORT&&typeof console<"u"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function a(){try{let L=new Uint8Array(1),N={foo:function(){return 42}};return Object.setPrototypeOf(N,Uint8Array.prototype),Object.setPrototypeOf(L,N),L.foo()===42}catch{return!1}}Object.defineProperty(l.prototype,"parent",{enumerable:!0,get:function(){if(l.isBuffer(this))return this.buffer}}),Object.defineProperty(l.prototype,"offset",{enumerable:!0,get:function(){if(l.isBuffer(this))return this.byteOffset}});function s(L){if(L>r)throw new RangeError('The value "'+L+'" is invalid for option "size"');let N=new Uint8Array(L);return Object.setPrototypeOf(N,l.prototype),N}function l(L,N,U){if(typeof L=="number"){if(typeof N=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return h(L)}return c(L,N,U)}l.poolSize=8192;function c(L,N,U){if(typeof L=="string")return _(L,N);if(ArrayBuffer.isView(L))return E(L);if(L==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof L);if(en(L,ArrayBuffer)||L&&en(L.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(en(L,SharedArrayBuffer)||L&&en(L.buffer,SharedArrayBuffer)))return x(L,N,U);if(typeof L=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');let ee=L.valueOf&&L.valueOf();if(ee!=null&&ee!==L)return l.from(ee,N,U);let ne=S(L);if(ne)return ne;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof L[Symbol.toPrimitive]=="function")return l.from(L[Symbol.toPrimitive]("string"),N,U);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof L)}l.from=function(L,N,U){return c(L,N,U)},Object.setPrototypeOf(l.prototype,Uint8Array.prototype),Object.setPrototypeOf(l,Uint8Array);function f(L){if(typeof L!="number")throw new TypeError('"size" argument must be of type number');if(L<0)throw new RangeError('The value "'+L+'" is invalid for option "size"')}function p(L,N,U){return f(L),L<=0?s(L):N!==void 0?typeof U=="string"?s(L).fill(N,U):s(L).fill(N):s(L)}l.alloc=function(L,N,U){return p(L,N,U)};function h(L){return f(L),s(L<0?0:v(L)|0)}l.allocUnsafe=function(L){return h(L)},l.allocUnsafeSlow=function(L){return h(L)};function _(L,N){if((typeof N!="string"||N==="")&&(N="utf8"),!l.isEncoding(N))throw new TypeError("Unknown encoding: "+N);let U=O(L,N)|0,ee=s(U),ne=ee.write(L,N);return ne!==U&&(ee=ee.slice(0,ne)),ee}function g(L){let N=L.length<0?0:v(L.length)|0,U=s(N);for(let ee=0;ee<N;ee+=1)U[ee]=L[ee]&255;return U}function E(L){if(en(L,Uint8Array)){let N=new Uint8Array(L);return x(N.buffer,N.byteOffset,N.byteLength)}return g(L)}function x(L,N,U){if(N<0||L.byteLength<N)throw new RangeError('"offset" is outside of buffer bounds');if(L.byteLength<N+(U||0))throw new RangeError('"length" is outside of buffer bounds');let ee;return N===void 0&&U===void 0?ee=new Uint8Array(L):U===void 0?ee=new Uint8Array(L,N):ee=new Uint8Array(L,N,U),Object.setPrototypeOf(ee,l.prototype),ee}function S(L){if(l.isBuffer(L)){let N=v(L.length)|0,U=s(N);return U.length===0||L.copy(U,0,0,N),U}if(L.length!==void 0)return typeof L.length!="number"||Le(L.length)?s(0):g(L);if(L.type==="Buffer"&&Array.isArray(L.data))return g(L.data)}function v(L){if(L>=r)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+r.toString(16)+" bytes");return L|0}function M(L){return+L!=L&&(L=0),l.alloc(+L)}l.isBuffer=function(N){return N!=null&&N._isBuffer===!0&&N!==l.prototype},l.compare=function(N,U){if(en(N,Uint8Array)&&(N=l.from(N,N.offset,N.byteLength)),en(U,Uint8Array)&&(U=l.from(U,U.offset,U.byteLength)),!l.isBuffer(N)||!l.isBuffer(U))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(N===U)return 0;let ee=N.length,ne=U.length;for(let X=0,ie=Math.min(ee,ne);X<ie;++X)if(N[X]!==U[X]){ee=N[X],ne=U[X];break}return ee<ne?-1:ne<ee?1:0},l.isEncoding=function(N){switch(String(N).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},l.concat=function(N,U){if(!Array.isArray(N))throw new TypeError('"list" argument must be an Array of Buffers');if(N.length===0)return l.alloc(0);let ee;if(U===void 0)for(U=0,ee=0;ee<N.length;++ee)U+=N[ee].length;let ne=l.allocUnsafe(U),X=0;for(ee=0;ee<N.length;++ee){let ie=N[ee];if(en(ie,Uint8Array))X+ie.length>ne.length?(l.isBuffer(ie)||(ie=l.from(ie)),ie.copy(ne,X)):Uint8Array.prototype.set.call(ne,ie,X);else if(l.isBuffer(ie))ie.copy(ne,X);else throw new TypeError('"list" argument must be an Array of Buffers');X+=ie.length}return ne};function O(L,N){if(l.isBuffer(L))return L.length;if(ArrayBuffer.isView(L)||en(L,ArrayBuffer))return L.byteLength;if(typeof L!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof L);let U=L.length,ee=arguments.length>2&&arguments[2]===!0;if(!ee&&U===0)return 0;let ne=!1;for(;;)switch(N){case"ascii":case"latin1":case"binary":return U;case"utf8":case"utf-8":return dt(L).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return U*2;case"hex":return U>>>1;case"base64":return Ht(L).length;default:if(ne)return ee?-1:dt(L).length;N=(""+N).toLowerCase(),ne=!0}}l.byteLength=O;function k(L,N,U){let ee=!1;if((N===void 0||N<0)&&(N=0),N>this.length||((U===void 0||U>this.length)&&(U=this.length),U<=0)||(U>>>=0,N>>>=0,U<=N))return"";for(L||(L="utf8");;)switch(L){case"hex":return Qe(this,N,U);case"utf8":case"utf-8":return Me(this,N,U);case"ascii":return Ve(this,N,U);case"latin1":case"binary":return Je(this,N,U);case"base64":return ke(this,N,U);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return st(this,N,U);default:if(ee)throw new TypeError("Unknown encoding: "+L);L=(L+"").toLowerCase(),ee=!0}}l.prototype._isBuffer=!0;function q(L,N,U){let ee=L[N];L[N]=L[U],L[U]=ee}l.prototype.swap16=function(){let N=this.length;if(N%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let U=0;U<N;U+=2)q(this,U,U+1);return this},l.prototype.swap32=function(){let N=this.length;if(N%4!==0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(let U=0;U<N;U+=4)q(this,U,U+3),q(this,U+1,U+2);return this},l.prototype.swap64=function(){let N=this.length;if(N%8!==0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(let U=0;U<N;U+=8)q(this,U,U+7),q(this,U+1,U+6),q(this,U+2,U+5),q(this,U+3,U+4);return this},l.prototype.toString=function(){let N=this.length;return N===0?"":arguments.length===0?Me(this,0,N):k.apply(this,arguments)},l.prototype.toLocaleString=l.prototype.toString,l.prototype.equals=function(N){if(!l.isBuffer(N))throw new TypeError("Argument must be a Buffer");return this===N?!0:l.compare(this,N)===0},l.prototype.inspect=function(){let N="",U=n.INSPECT_MAX_BYTES;return N=this.toString("hex",0,U).replace(/(.{2})/g,"$1 ").trim(),this.length>U&&(N+=" ... "),"<Buffer "+N+">"},i&&(l.prototype[i]=l.prototype.inspect),l.prototype.compare=function(N,U,ee,ne,X){if(en(N,Uint8Array)&&(N=l.from(N,N.offset,N.byteLength)),!l.isBuffer(N))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof N);if(U===void 0&&(U=0),ee===void 0&&(ee=N?N.length:0),ne===void 0&&(ne=0),X===void 0&&(X=this.length),U<0||ee>N.length||ne<0||X>this.length)throw new RangeError("out of range index");if(ne>=X&&U>=ee)return 0;if(ne>=X)return-1;if(U>=ee)return 1;if(U>>>=0,ee>>>=0,ne>>>=0,X>>>=0,this===N)return 0;let ie=X-ne,le=ee-U,be=Math.min(ie,le),tt=this.slice(ne,X),Oe=N.slice(U,ee);for(let je=0;je<be;++je)if(tt[je]!==Oe[je]){ie=tt[je],le=Oe[je];break}return ie<le?-1:le<ie?1:0};function G(L,N,U,ee,ne){if(L.length===0)return-1;if(typeof U=="string"?(ee=U,U=0):U>2147483647?U=2147483647:U<-2147483648&&(U=-2147483648),U=+U,Le(U)&&(U=ne?0:L.length-1),U<0&&(U=L.length+U),U>=L.length){if(ne)return-1;U=L.length-1}else if(U<0)if(ne)U=0;else return-1;if(typeof N=="string"&&(N=l.from(N,ee)),l.isBuffer(N))return N.length===0?-1:Q(L,N,U,ee,ne);if(typeof N=="number")return N=N&255,typeof Uint8Array.prototype.indexOf=="function"?ne?Uint8Array.prototype.indexOf.call(L,N,U):Uint8Array.prototype.lastIndexOf.call(L,N,U):Q(L,[N],U,ee,ne);throw new TypeError("val must be string, number or Buffer")}function Q(L,N,U,ee,ne){let X=1,ie=L.length,le=N.length;if(ee!==void 0&&(ee=String(ee).toLowerCase(),ee==="ucs2"||ee==="ucs-2"||ee==="utf16le"||ee==="utf-16le")){if(L.length<2||N.length<2)return-1;X=2,ie/=2,le/=2,U/=2}function be(Oe,je){return X===1?Oe[je]:Oe.readUInt16BE(je*X)}let tt;if(ne){let Oe=-1;for(tt=U;tt<ie;tt++)if(be(L,tt)===be(N,Oe===-1?0:tt-Oe)){if(Oe===-1&&(Oe=tt),tt-Oe+1===le)return Oe*X}else Oe!==-1&&(tt-=tt-Oe),Oe=-1}else for(U+le>ie&&(U=ie-le),tt=U;tt>=0;tt--){let Oe=!0;for(let je=0;je<le;je++)if(be(L,tt+je)!==be(N,je)){Oe=!1;break}if(Oe)return tt}return-1}l.prototype.includes=function(N,U,ee){return this.indexOf(N,U,ee)!==-1},l.prototype.indexOf=function(N,U,ee){return G(this,N,U,ee,!0)},l.prototype.lastIndexOf=function(N,U,ee){return G(this,N,U,ee,!1)};function H(L,N,U,ee){U=Number(U)||0;let ne=L.length-U;ee?(ee=Number(ee),ee>ne&&(ee=ne)):ee=ne;let X=N.length;ee>X/2&&(ee=X/2);let ie;for(ie=0;ie<ee;++ie){let le=parseInt(N.substr(ie*2,2),16);if(Le(le))return ie;L[U+ie]=le}return ie}function Z(L,N,U,ee){return qt(dt(N,L.length-U),L,U,ee)}function te(L,N,U,ee){return qt(vt(N),L,U,ee)}function j(L,N,U,ee){return qt(Ht(N),L,U,ee)}function he(L,N,U,ee){return qt(Qt(N,L.length-U),L,U,ee)}l.prototype.write=function(N,U,ee,ne){if(U===void 0)ne="utf8",ee=this.length,U=0;else if(ee===void 0&&typeof U=="string")ne=U,ee=this.length,U=0;else if(isFinite(U))U=U>>>0,isFinite(ee)?(ee=ee>>>0,ne===void 0&&(ne="utf8")):(ne=ee,ee=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");let X=this.length-U;if((ee===void 0||ee>X)&&(ee=X),N.length>0&&(ee<0||U<0)||U>this.length)throw new RangeError("Attempt to write outside buffer bounds");ne||(ne="utf8");let ie=!1;for(;;)switch(ne){case"hex":return H(this,N,U,ee);case"utf8":case"utf-8":return Z(this,N,U,ee);case"ascii":case"latin1":case"binary":return te(this,N,U,ee);case"base64":return j(this,N,U,ee);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return he(this,N,U,ee);default:if(ie)throw new TypeError("Unknown encoding: "+ne);ne=(""+ne).toLowerCase(),ie=!0}},l.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function ke(L,N,U){return N===0&&U===L.length?e.fromByteArray(L):e.fromByteArray(L.slice(N,U))}function Me(L,N,U){U=Math.min(L.length,U);let ee=[],ne=N;for(;ne<U;){let X=L[ne],ie=null,le=X>239?4:X>223?3:X>191?2:1;if(ne+le<=U){let be,tt,Oe,je;switch(le){case 1:X<128&&(ie=X);break;case 2:be=L[ne+1],(be&192)===128&&(je=(X&31)<<6|be&63,je>127&&(ie=je));break;case 3:be=L[ne+1],tt=L[ne+2],(be&192)===128&&(tt&192)===128&&(je=(X&15)<<12|(be&63)<<6|tt&63,je>2047&&(je<55296||je>57343)&&(ie=je));break;case 4:be=L[ne+1],tt=L[ne+2],Oe=L[ne+3],(be&192)===128&&(tt&192)===128&&(Oe&192)===128&&(je=(X&15)<<18|(be&63)<<12|(tt&63)<<6|Oe&63,je>65535&&je<1114112&&(ie=je))}}ie===null?(ie=65533,le=1):ie>65535&&(ie-=65536,ee.push(ie>>>10&1023|55296),ie=56320|ie&1023),ee.push(ie),ne+=le}return Ne(ee)}let ze=4096;function Ne(L){let N=L.length;if(N<=ze)return String.fromCharCode.apply(String,L);let U="",ee=0;for(;ee<N;)U+=String.fromCharCode.apply(String,L.slice(ee,ee+=ze));return U}function Ve(L,N,U){let ee="";U=Math.min(L.length,U);for(let ne=N;ne<U;++ne)ee+=String.fromCharCode(L[ne]&127);return ee}function Je(L,N,U){let ee="";U=Math.min(L.length,U);for(let ne=N;ne<U;++ne)ee+=String.fromCharCode(L[ne]);return ee}function Qe(L,N,U){let ee=L.length;(!N||N<0)&&(N=0),(!U||U<0||U>ee)&&(U=ee);let ne="";for(let X=N;X<U;++X)ne+=fn[L[X]];return ne}function st(L,N,U){let ee=L.slice(N,U),ne="";for(let X=0;X<ee.length-1;X+=2)ne+=String.fromCharCode(ee[X]+ee[X+1]*256);return ne}l.prototype.slice=function(N,U){let ee=this.length;N=~~N,U=U===void 0?ee:~~U,N<0?(N+=ee,N<0&&(N=0)):N>ee&&(N=ee),U<0?(U+=ee,U<0&&(U=0)):U>ee&&(U=ee),U<N&&(U=N);let ne=this.subarray(N,U);return Object.setPrototypeOf(ne,l.prototype),ne};function We(L,N,U){if(L%1!==0||L<0)throw new RangeError("offset is not uint");if(L+N>U)throw new RangeError("Trying to access beyond buffer length")}l.prototype.readUintLE=l.prototype.readUIntLE=function(N,U,ee){N=N>>>0,U=U>>>0,ee||We(N,U,this.length);let ne=this[N],X=1,ie=0;for(;++ie<U&&(X*=256);)ne+=this[N+ie]*X;return ne},l.prototype.readUintBE=l.prototype.readUIntBE=function(N,U,ee){N=N>>>0,U=U>>>0,ee||We(N,U,this.length);let ne=this[N+--U],X=1;for(;U>0&&(X*=256);)ne+=this[N+--U]*X;return ne},l.prototype.readUint8=l.prototype.readUInt8=function(N,U){return N=N>>>0,U||We(N,1,this.length),this[N]},l.prototype.readUint16LE=l.prototype.readUInt16LE=function(N,U){return N=N>>>0,U||We(N,2,this.length),this[N]|this[N+1]<<8},l.prototype.readUint16BE=l.prototype.readUInt16BE=function(N,U){return N=N>>>0,U||We(N,2,this.length),this[N]<<8|this[N+1]},l.prototype.readUint32LE=l.prototype.readUInt32LE=function(N,U){return N=N>>>0,U||We(N,4,this.length),(this[N]|this[N+1]<<8|this[N+2]<<16)+this[N+3]*16777216},l.prototype.readUint32BE=l.prototype.readUInt32BE=function(N,U){return N=N>>>0,U||We(N,4,this.length),this[N]*16777216+(this[N+1]<<16|this[N+2]<<8|this[N+3])},l.prototype.readBigUInt64LE=kt(function(N){N=N>>>0,pn(N,"offset");let U=this[N],ee=this[N+7];(U===void 0||ee===void 0)&&lt(N,this.length-8);let ne=U+this[++N]*2**8+this[++N]*2**16+this[++N]*2**24,X=this[++N]+this[++N]*2**8+this[++N]*2**16+ee*2**24;return BigInt(ne)+(BigInt(X)<<BigInt(32))}),l.prototype.readBigUInt64BE=kt(function(N){N=N>>>0,pn(N,"offset");let U=this[N],ee=this[N+7];(U===void 0||ee===void 0)&&lt(N,this.length-8);let ne=U*2**24+this[++N]*2**16+this[++N]*2**8+this[++N],X=this[++N]*2**24+this[++N]*2**16+this[++N]*2**8+ee;return(BigInt(ne)<<BigInt(32))+BigInt(X)}),l.prototype.readIntLE=function(N,U,ee){N=N>>>0,U=U>>>0,ee||We(N,U,this.length);let ne=this[N],X=1,ie=0;for(;++ie<U&&(X*=256);)ne+=this[N+ie]*X;return X*=128,ne>=X&&(ne-=Math.pow(2,8*U)),ne},l.prototype.readIntBE=function(N,U,ee){N=N>>>0,U=U>>>0,ee||We(N,U,this.length);let ne=U,X=1,ie=this[N+--ne];for(;ne>0&&(X*=256);)ie+=this[N+--ne]*X;return X*=128,ie>=X&&(ie-=Math.pow(2,8*U)),ie},l.prototype.readInt8=function(N,U){return N=N>>>0,U||We(N,1,this.length),this[N]&128?(255-this[N]+1)*-1:this[N]},l.prototype.readInt16LE=function(N,U){N=N>>>0,U||We(N,2,this.length);let ee=this[N]|this[N+1]<<8;return ee&32768?ee|4294901760:ee},l.prototype.readInt16BE=function(N,U){N=N>>>0,U||We(N,2,this.length);let ee=this[N+1]|this[N]<<8;return ee&32768?ee|4294901760:ee},l.prototype.readInt32LE=function(N,U){return N=N>>>0,U||We(N,4,this.length),this[N]|this[N+1]<<8|this[N+2]<<16|this[N+3]<<24},l.prototype.readInt32BE=function(N,U){return N=N>>>0,U||We(N,4,this.length),this[N]<<24|this[N+1]<<16|this[N+2]<<8|this[N+3]},l.prototype.readBigInt64LE=kt(function(N){N=N>>>0,pn(N,"offset");let U=this[N],ee=this[N+7];(U===void 0||ee===void 0)&&lt(N,this.length-8);let ne=this[N+4]+this[N+5]*2**8+this[N+6]*2**16+(ee<<24);return(BigInt(ne)<<BigInt(32))+BigInt(U+this[++N]*2**8+this[++N]*2**16+this[++N]*2**24)}),l.prototype.readBigInt64BE=kt(function(N){N=N>>>0,pn(N,"offset");let U=this[N],ee=this[N+7];(U===void 0||ee===void 0)&&lt(N,this.length-8);let ne=(U<<24)+this[++N]*2**16+this[++N]*2**8+this[++N];return(BigInt(ne)<<BigInt(32))+BigInt(this[++N]*2**24+this[++N]*2**16+this[++N]*2**8+ee)}),l.prototype.readFloatLE=function(N,U){return N=N>>>0,U||We(N,4,this.length),t.read(this,N,!0,23,4)},l.prototype.readFloatBE=function(N,U){return N=N>>>0,U||We(N,4,this.length),t.read(this,N,!1,23,4)},l.prototype.readDoubleLE=function(N,U){return N=N>>>0,U||We(N,8,this.length),t.read(this,N,!0,52,8)},l.prototype.readDoubleBE=function(N,U){return N=N>>>0,U||We(N,8,this.length),t.read(this,N,!1,52,8)};function gt(L,N,U,ee,ne,X){if(!l.isBuffer(L))throw new TypeError('"buffer" argument must be a Buffer instance');if(N>ne||N<X)throw new RangeError('"value" argument is out of bounds');if(U+ee>L.length)throw new RangeError("Index out of range")}l.prototype.writeUintLE=l.prototype.writeUIntLE=function(N,U,ee,ne){if(N=+N,U=U>>>0,ee=ee>>>0,!ne){let le=Math.pow(2,8*ee)-1;gt(this,N,U,ee,le,0)}let X=1,ie=0;for(this[U]=N&255;++ie<ee&&(X*=256);)this[U+ie]=N/X&255;return U+ee},l.prototype.writeUintBE=l.prototype.writeUIntBE=function(N,U,ee,ne){if(N=+N,U=U>>>0,ee=ee>>>0,!ne){let le=Math.pow(2,8*ee)-1;gt(this,N,U,ee,le,0)}let X=ee-1,ie=1;for(this[U+X]=N&255;--X>=0&&(ie*=256);)this[U+X]=N/ie&255;return U+ee},l.prototype.writeUint8=l.prototype.writeUInt8=function(N,U,ee){return N=+N,U=U>>>0,ee||gt(this,N,U,1,255,0),this[U]=N&255,U+1},l.prototype.writeUint16LE=l.prototype.writeUInt16LE=function(N,U,ee){return N=+N,U=U>>>0,ee||gt(this,N,U,2,65535,0),this[U]=N&255,this[U+1]=N>>>8,U+2},l.prototype.writeUint16BE=l.prototype.writeUInt16BE=function(N,U,ee){return N=+N,U=U>>>0,ee||gt(this,N,U,2,65535,0),this[U]=N>>>8,this[U+1]=N&255,U+2},l.prototype.writeUint32LE=l.prototype.writeUInt32LE=function(N,U,ee){return N=+N,U=U>>>0,ee||gt(this,N,U,4,4294967295,0),this[U+3]=N>>>24,this[U+2]=N>>>16,this[U+1]=N>>>8,this[U]=N&255,U+4},l.prototype.writeUint32BE=l.prototype.writeUInt32BE=function(N,U,ee){return N=+N,U=U>>>0,ee||gt(this,N,U,4,4294967295,0),this[U]=N>>>24,this[U+1]=N>>>16,this[U+2]=N>>>8,this[U+3]=N&255,U+4};function Et(L,N,U,ee,ne){sn(N,ee,ne,L,U,7);let X=Number(N&BigInt(4294967295));L[U++]=X,X=X>>8,L[U++]=X,X=X>>8,L[U++]=X,X=X>>8,L[U++]=X;let ie=Number(N>>BigInt(32)&BigInt(4294967295));return L[U++]=ie,ie=ie>>8,L[U++]=ie,ie=ie>>8,L[U++]=ie,ie=ie>>8,L[U++]=ie,U}function jt(L,N,U,ee,ne){sn(N,ee,ne,L,U,7);let X=Number(N&BigInt(4294967295));L[U+7]=X,X=X>>8,L[U+6]=X,X=X>>8,L[U+5]=X,X=X>>8,L[U+4]=X;let ie=Number(N>>BigInt(32)&BigInt(4294967295));return L[U+3]=ie,ie=ie>>8,L[U+2]=ie,ie=ie>>8,L[U+1]=ie,ie=ie>>8,L[U]=ie,U+8}l.prototype.writeBigUInt64LE=kt(function(N,U=0){return Et(this,N,U,BigInt(0),BigInt("0xffffffffffffffff"))}),l.prototype.writeBigUInt64BE=kt(function(N,U=0){return jt(this,N,U,BigInt(0),BigInt("0xffffffffffffffff"))}),l.prototype.writeIntLE=function(N,U,ee,ne){if(N=+N,U=U>>>0,!ne){let be=Math.pow(2,8*ee-1);gt(this,N,U,ee,be-1,-be)}let X=0,ie=1,le=0;for(this[U]=N&255;++X<ee&&(ie*=256);)N<0&&le===0&&this[U+X-1]!==0&&(le=1),this[U+X]=(N/ie>>0)-le&255;return U+ee},l.prototype.writeIntBE=function(N,U,ee,ne){if(N=+N,U=U>>>0,!ne){let be=Math.pow(2,8*ee-1);gt(this,N,U,ee,be-1,-be)}let X=ee-1,ie=1,le=0;for(this[U+X]=N&255;--X>=0&&(ie*=256);)N<0&&le===0&&this[U+X+1]!==0&&(le=1),this[U+X]=(N/ie>>0)-le&255;return U+ee},l.prototype.writeInt8=function(N,U,ee){return N=+N,U=U>>>0,ee||gt(this,N,U,1,127,-128),N<0&&(N=255+N+1),this[U]=N&255,U+1},l.prototype.writeInt16LE=function(N,U,ee){return N=+N,U=U>>>0,ee||gt(this,N,U,2,32767,-32768),this[U]=N&255,this[U+1]=N>>>8,U+2},l.prototype.writeInt16BE=function(N,U,ee){return N=+N,U=U>>>0,ee||gt(this,N,U,2,32767,-32768),this[U]=N>>>8,this[U+1]=N&255,U+2},l.prototype.writeInt32LE=function(N,U,ee){return N=+N,U=U>>>0,ee||gt(this,N,U,4,2147483647,-2147483648),this[U]=N&255,this[U+1]=N>>>8,this[U+2]=N>>>16,this[U+3]=N>>>24,U+4},l.prototype.writeInt32BE=function(N,U,ee){return N=+N,U=U>>>0,ee||gt(this,N,U,4,2147483647,-2147483648),N<0&&(N=4294967295+N+1),this[U]=N>>>24,this[U+1]=N>>>16,this[U+2]=N>>>8,this[U+3]=N&255,U+4},l.prototype.writeBigInt64LE=kt(function(N,U=0){return Et(this,N,U,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),l.prototype.writeBigInt64BE=kt(function(N,U=0){return jt(this,N,U,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function zt(L,N,U,ee,ne,X){if(U+ee>L.length)throw new RangeError("Index out of range");if(U<0)throw new RangeError("Index out of range")}function Mt(L,N,U,ee,ne){return N=+N,U=U>>>0,ne||zt(L,N,U,4),t.write(L,N,U,ee,23,4),U+4}l.prototype.writeFloatLE=function(N,U,ee){return Mt(this,N,U,!0,ee)},l.prototype.writeFloatBE=function(N,U,ee){return Mt(this,N,U,!1,ee)};function Xe(L,N,U,ee,ne){return N=+N,U=U>>>0,ne||zt(L,N,U,8),t.write(L,N,U,ee,52,8),U+8}l.prototype.writeDoubleLE=function(N,U,ee){return Xe(this,N,U,!0,ee)},l.prototype.writeDoubleBE=function(N,U,ee){return Xe(this,N,U,!1,ee)},l.prototype.copy=function(N,U,ee,ne){if(!l.isBuffer(N))throw new TypeError("argument should be a Buffer");if(ee||(ee=0),!ne&&ne!==0&&(ne=this.length),U>=N.length&&(U=N.length),U||(U=0),ne>0&&ne<ee&&(ne=ee),ne===ee||N.length===0||this.length===0)return 0;if(U<0)throw new RangeError("targetStart out of bounds");if(ee<0||ee>=this.length)throw new RangeError("Index out of range");if(ne<0)throw new RangeError("sourceEnd out of bounds");ne>this.length&&(ne=this.length),N.length-U<ne-ee&&(ne=N.length-U+ee);let X=ne-ee;return this===N&&typeof Uint8Array.prototype.copyWithin=="function"?this.copyWithin(U,ee,ne):Uint8Array.prototype.set.call(N,this.subarray(ee,ne),U),X},l.prototype.fill=function(N,U,ee,ne){if(typeof N=="string"){if(typeof U=="string"?(ne=U,U=0,ee=this.length):typeof ee=="string"&&(ne=ee,ee=this.length),ne!==void 0&&typeof ne!="string")throw new TypeError("encoding must be a string");if(typeof ne=="string"&&!l.isEncoding(ne))throw new TypeError("Unknown encoding: "+ne);if(N.length===1){let ie=N.charCodeAt(0);(ne==="utf8"&&ie<128||ne==="latin1")&&(N=ie)}}else typeof N=="number"?N=N&255:typeof N=="boolean"&&(N=Number(N));if(U<0||this.length<U||this.length<ee)throw new RangeError("Out of range index");if(ee<=U)return this;U=U>>>0,ee=ee===void 0?this.length:ee>>>0,N||(N=0);let X;if(typeof N=="number")for(X=U;X<ee;++X)this[X]=N;else{let ie=l.isBuffer(N)?N:l.from(N,ne),le=ie.length;if(le===0)throw new TypeError('The value "'+N+'" is invalid for argument "value"');for(X=0;X<ee-U;++X)this[X+U]=ie[X%le]}return this};let et={};function yt(L,N,U){et[L]=class extends U{constructor(){super(),Object.defineProperty(this,"message",{value:N.apply(this,arguments),writable:!0,configurable:!0}),this.name=`${this.name} [${L}]`,this.stack,delete this.name}get code(){return L}set code(ne){Object.defineProperty(this,"code",{configurable:!0,enumerable:!0,value:ne,writable:!0})}toString(){return`${this.name} [${L}]: ${this.message}`}}}yt("ERR_BUFFER_OUT_OF_BOUNDS",function(L){return L?`${L} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"},RangeError),yt("ERR_INVALID_ARG_TYPE",function(L,N){return`The "${L}" argument must be of type number. Received type ${typeof N}`},TypeError),yt("ERR_OUT_OF_RANGE",function(L,N,U){let ee=`The value of "${L}" is out of range.`,ne=U;return Number.isInteger(U)&&Math.abs(U)>2**32?ne=Wt(String(U)):typeof U=="bigint"&&(ne=String(U),(U>BigInt(2)**BigInt(32)||U<-(BigInt(2)**BigInt(32)))&&(ne=Wt(ne)),ne+="n"),ee+=` It must be ${N}. Received ${ne}`,ee},RangeError);function Wt(L){let N="",U=L.length,ee=L[0]==="-"?1:0;for(;U>=ee+4;U-=3)N=`_${L.slice(U-3,U)}${N}`;return`${L.slice(0,U)}${N}`}function Lt(L,N,U){pn(N,"offset"),(L[N]===void 0||L[N+U]===void 0)&&lt(N,L.length-(U+1))}function sn(L,N,U,ee,ne,X){if(L>U||L<N){let ie=typeof N=="bigint"?"n":"",le;throw N===0||N===BigInt(0)?le=`>= 0${ie} and < 2${ie} ** ${(X+1)*8}${ie}`:le=`>= -(2${ie} ** ${(X+1)*8-1}${ie}) and < 2 ** ${(X+1)*8-1}${ie}`,new et.ERR_OUT_OF_RANGE("value",le,L)}Lt(ee,ne,X)}function pn(L,N){if(typeof L!="number")throw new et.ERR_INVALID_ARG_TYPE(N,"number",L)}function lt(L,N,U){throw Math.floor(L)!==L?(pn(L,U),new et.ERR_OUT_OF_RANGE("offset","an integer",L)):N<0?new et.ERR_BUFFER_OUT_OF_BOUNDS:new et.ERR_OUT_OF_RANGE("offset",`>= 0 and <= ${N}`,L)}let _e=/[^+/0-9A-Za-z-_]/g;function Pe(L){if(L=L.split("=")[0],L=L.trim().replace(_e,""),L.length<2)return"";for(;L.length%4!==0;)L=L+"=";return L}function dt(L,N){N=N||1/0;let U,ee=L.length,ne=null,X=[];for(let ie=0;ie<ee;++ie){if(U=L.charCodeAt(ie),U>55295&&U<57344){if(!ne){if(U>56319){(N-=3)>-1&&X.push(239,191,189);continue}else if(ie+1===ee){(N-=3)>-1&&X.push(239,191,189);continue}ne=U;continue}if(U<56320){(N-=3)>-1&&X.push(239,191,189),ne=U;continue}U=(ne-55296<<10|U-56320)+65536}else ne&&(N-=3)>-1&&X.push(239,191,189);if(ne=null,U<128){if((N-=1)<0)break;X.push(U)}else if(U<2048){if((N-=2)<0)break;X.push(U>>6|192,U&63|128)}else if(U<65536){if((N-=3)<0)break;X.push(U>>12|224,U>>6&63|128,U&63|128)}else if(U<1114112){if((N-=4)<0)break;X.push(U>>18|240,U>>12&63|128,U>>6&63|128,U&63|128)}else throw new Error("Invalid code point")}return X}function vt(L){let N=[];for(let U=0;U<L.length;++U)N.push(L.charCodeAt(U)&255);return N}function Qt(L,N){let U,ee,ne,X=[];for(let ie=0;ie<L.length&&!((N-=2)<0);++ie)U=L.charCodeAt(ie),ee=U>>8,ne=U%256,X.push(ne),X.push(ee);return X}function Ht(L){return e.toByteArray(Pe(L))}function qt(L,N,U,ee){let ne;for(ne=0;ne<ee&&!(ne+U>=N.length||ne>=L.length);++ne)N[ne+U]=L[ne];return ne}function en(L,N){return L instanceof N||L!=null&&L.constructor!=null&&L.constructor.name!=null&&L.constructor.name===N.name}function Le(L){return L!==L}let fn=(function(){let L="0123456789abcdef",N=new Array(256);for(let U=0;U<16;++U){let ee=U*16;for(let ne=0;ne<16;++ne)N[ee+ne]=L[U]+L[ne]}return N})();function kt(L){return typeof BigInt>"u"?ge:L}function ge(){throw new Error("BigInt not supported")}})(kF)),kF}function kne(n){return{done:!1,value:n}}function Hu(){return rG||(rG=1,(function(n){Object.defineProperty(n,"__esModule",{value:!0}),n.Frame=n.Lengths=n.Flags=n.FrameTypes=void 0;var e;(function(t){t[t.RESERVED=0]="RESERVED",t[t.SETUP=1]="SETUP",t[t.LEASE=2]="LEASE",t[t.KEEPALIVE=3]="KEEPALIVE",t[t.REQUEST_RESPONSE=4]="REQUEST_RESPONSE",t[t.REQUEST_FNF=5]="REQUEST_FNF",t[t.REQUEST_STREAM=6]="REQUEST_STREAM",t[t.REQUEST_CHANNEL=7]="REQUEST_CHANNEL",t[t.REQUEST_N=8]="REQUEST_N",t[t.CANCEL=9]="CANCEL",t[t.PAYLOAD=10]="PAYLOAD",t[t.ERROR=11]="ERROR",t[t.METADATA_PUSH=12]="METADATA_PUSH",t[t.RESUME=13]="RESUME",t[t.RESUME_OK=14]="RESUME_OK",t[t.EXT=63]="EXT"})(e=n.FrameTypes||(n.FrameTypes={})),(function(t){t[t.NONE=0]="NONE",t[t.COMPLETE=64]="COMPLETE",t[t.FOLLOWS=128]="FOLLOWS",t[t.IGNORE=512]="IGNORE",t[t.LEASE=64]="LEASE",t[t.METADATA=256]="METADATA",t[t.NEXT=32]="NEXT",t[t.RESPOND=128]="RESPOND",t[t.RESUME_ENABLE=128]="RESUME_ENABLE"})(n.Flags||(n.Flags={})),(function(t){function i(h){return(h&t.METADATA)===t.METADATA}t.hasMetadata=i;function r(h){return(h&t.COMPLETE)===t.COMPLETE}t.hasComplete=r;function a(h){return(h&t.NEXT)===t.NEXT}t.hasNext=a;function s(h){return(h&t.FOLLOWS)===t.FOLLOWS}t.hasFollows=s;function l(h){return(h&t.IGNORE)===t.IGNORE}t.hasIgnore=l;function c(h){return(h&t.RESPOND)===t.RESPOND}t.hasRespond=c;function f(h){return(h&t.LEASE)===t.LEASE}t.hasLease=f;function p(h){return(h&t.RESUME_ENABLE)===t.RESUME_ENABLE}t.hasResume=p})(n.Flags||(n.Flags={})),(function(t){t[t.FRAME=3]="FRAME",t[t.HEADER=6]="HEADER",t[t.METADATA=3]="METADATA",t[t.REQUEST=3]="REQUEST"})(n.Lengths||(n.Lengths={})),(function(t){function i(a){return a.streamId===0}t.isConnection=i;function r(a){return e.REQUEST_RESPONSE<=a.type&&a.type<=e.REQUEST_CHANNEL}t.isRequest=r})(n.Frame||(n.Frame={}))})(OF)),OF}function AG(){return aG||(aG=1,(function(n){var e=NT&&NT.__generator||function(X,ie){var le={label:0,sent:function(){if(Oe[0]&1)throw Oe[1];return Oe[1]},trys:[],ops:[]},be,tt,Oe,je;return je={next:Ct(0),throw:Ct(1),return:Ct(2)},typeof Symbol=="function"&&(je[Symbol.iterator]=function(){return this}),je;function Ct(ht){return function(De){return nn([ht,De])}}function nn(ht){if(be)throw new TypeError("Generator is already executing.");for(;le;)try{if(be=1,tt&&(Oe=ht[0]&2?tt.return:ht[0]?tt.throw||((Oe=tt.return)&&Oe.call(tt),0):tt.next)&&!(Oe=Oe.call(tt,ht[1])).done)return Oe;switch(tt=0,Oe&&(ht=[ht[0]&2,Oe.value]),ht[0]){case 0:case 1:Oe=ht;break;case 4:return le.label++,{value:ht[1],done:!1};case 5:le.label++,tt=ht[1],ht=[0];continue;case 7:ht=le.ops.pop(),le.trys.pop();continue;default:if(Oe=le.trys,!(Oe=Oe.length>0&&Oe[Oe.length-1])&&(ht[0]===6||ht[0]===2)){le=0;continue}if(ht[0]===3&&(!Oe||ht[1]>Oe[0]&&ht[1]<Oe[3])){le.label=ht[1];break}if(ht[0]===6&&le.label<Oe[1]){le.label=Oe[1],Oe=ht;break}if(Oe&&le.label<Oe[2]){le.label=Oe[2],le.ops.push(ht);break}Oe[2]&&le.ops.pop(),le.trys.pop();continue}ht=ie.call(X,le)}catch(De){ht=[6,De],tt=0}finally{be=Oe=0}if(ht[0]&5)throw ht[1];return{value:ht[0]?ht[1]:void 0,done:!0}}};Object.defineProperty(n,"__esModule",{value:!0}),n.Deserializer=n.sizeOfFrame=n.serializeFrame=n.deserializeFrame=n.serializeFrameWithLength=n.deserializeFrames=n.deserializeFrameWithLength=n.writeUInt64BE=n.readUInt64BE=n.writeUInt24BE=n.readUInt24BE=n.MAX_VERSION=n.MAX_TTL=n.MAX_STREAM_ID=n.MAX_RESUME_LENGTH=n.MAX_REQUEST_N=n.MAX_REQUEST_COUNT=n.MAX_MIME_LENGTH=n.MAX_METADATA_LENGTH=n.MAX_LIFETIME=n.MAX_KEEPALIVE=n.MAX_CODE=n.FRAME_TYPE_OFFFSET=n.FLAGS_MASK=void 0;var t=Hu();n.FLAGS_MASK=1023,n.FRAME_TYPE_OFFFSET=10,n.MAX_CODE=2147483647,n.MAX_KEEPALIVE=2147483647,n.MAX_LIFETIME=2147483647,n.MAX_METADATA_LENGTH=16777215,n.MAX_MIME_LENGTH=255,n.MAX_REQUEST_COUNT=2147483647,n.MAX_REQUEST_N=2147483647,n.MAX_RESUME_LENGTH=65535,n.MAX_STREAM_ID=2147483647,n.MAX_TTL=2147483647,n.MAX_VERSION=65535;var i=4294967296;function r(X,ie){var le=X.readUInt8(ie)<<16,be=X.readUInt8(ie+1)<<8,tt=X.readUInt8(ie+2);return le|be|tt}n.readUInt24BE=r;function a(X,ie,le){return le=X.writeUInt8(ie>>>16,le),le=X.writeUInt8(ie>>>8&255,le),X.writeUInt8(ie&255,le)}n.writeUInt24BE=a;function s(X,ie){var le=X.readUInt32BE(ie),be=X.readUInt32BE(ie+4);return le*i+be}n.readUInt64BE=s;function l(X,ie,le){var be=ie/i|0,tt=ie%i;return le=X.writeUInt32BE(be,le),X.writeUInt32BE(tt,le)}n.writeUInt64BE=l;var c=6,f=3;function p(X){var ie=r(X,0);return g(X.slice(f,f+ie))}n.deserializeFrameWithLength=p;function h(X){var ie,le,be,tt,Oe,je;return e(this,function(Ct){switch(Ct.label){case 0:ie=0,Ct.label=1;case 1:return ie+f<X.length?(le=r(X,ie),be=ie+f,tt=be+le,tt>X.length?[3,3]:(Oe=X.slice(be,tt),je=g(Oe),ie=tt,[4,[je,ie]])):[3,3];case 2:return Ct.sent(),[3,1];case 3:return[2]}})}n.deserializeFrames=h;function _(X){var ie=E(X),le=Vi.Buffer.allocUnsafe(ie.length+f);return a(le,ie.length,0),ie.copy(le,f),le}n.serializeFrameWithLength=_;function g(X){var ie=0,le=X.readInt32BE(ie);ie+=4;var be=X.readUInt16BE(ie);ie+=2;var tt=be>>>n.FRAME_TYPE_OFFFSET,Oe=be&n.FLAGS_MASK;switch(tt){case t.FrameTypes.SETUP:return k(X,le,Oe);case t.FrameTypes.PAYLOAD:return vt(X,le,Oe);case t.FrameTypes.ERROR:return H(X,le,Oe);case t.FrameTypes.KEEPALIVE:return he(X,le,Oe);case t.FrameTypes.REQUEST_FNF:return We(X,le,Oe);case t.FrameTypes.REQUEST_RESPONSE:return gt(X,le,Oe);case t.FrameTypes.REQUEST_STREAM:return Xe(X,le,Oe);case t.FrameTypes.REQUEST_CHANNEL:return et(X,le,Oe);case t.FrameTypes.METADATA_PUSH:return Et(X,le,Oe);case t.FrameTypes.REQUEST_N:return sn(X,le,Oe);case t.FrameTypes.RESUME:return en(X,le,Oe);case t.FrameTypes.RESUME_OK:return ge(X,le,Oe);case t.FrameTypes.CANCEL:return _e(X,le,Oe);case t.FrameTypes.LEASE:return Ne(X,le,Oe)}}n.deserializeFrame=g;function E(X){switch(X.type){case t.FrameTypes.SETUP:return M(X);case t.FrameTypes.PAYLOAD:return Pe(X);case t.FrameTypes.ERROR:return G(X);case t.FrameTypes.KEEPALIVE:return te(X);case t.FrameTypes.REQUEST_FNF:case t.FrameTypes.REQUEST_RESPONSE:return Ve(X);case t.FrameTypes.REQUEST_STREAM:case t.FrameTypes.REQUEST_CHANNEL:return zt(X);case t.FrameTypes.METADATA_PUSH:return Qe(X);case t.FrameTypes.REQUEST_N:return Wt(X);case t.FrameTypes.RESUME:return Ht(X);case t.FrameTypes.RESUME_OK:return fn(X);case t.FrameTypes.CANCEL:return pn(X);case t.FrameTypes.LEASE:return Me(X)}}n.serializeFrame=E;function x(X){switch(X.type){case t.FrameTypes.SETUP:return O(X);case t.FrameTypes.PAYLOAD:return dt(X);case t.FrameTypes.ERROR:return Q(X);case t.FrameTypes.KEEPALIVE:return j(X);case t.FrameTypes.REQUEST_FNF:case t.FrameTypes.REQUEST_RESPONSE:return Je(X);case t.FrameTypes.REQUEST_STREAM:case t.FrameTypes.REQUEST_CHANNEL:return Mt(X);case t.FrameTypes.METADATA_PUSH:return st(X);case t.FrameTypes.REQUEST_N:return Lt();case t.FrameTypes.RESUME:return qt(X);case t.FrameTypes.RESUME_OK:return kt();case t.FrameTypes.CANCEL:return lt();case t.FrameTypes.LEASE:return ze(X)}}n.sizeOfFrame=x;var S=14,v=2;function M(X){var ie=X.resumeToken!=null?X.resumeToken.byteLength:0,le=X.metadataMimeType!=null?Vi.Buffer.byteLength(X.metadataMimeType,"ascii"):0,be=X.dataMimeType!=null?Vi.Buffer.byteLength(X.dataMimeType,"ascii"):0,tt=N(X),Oe=Vi.Buffer.allocUnsafe(c+S+(ie?v+ie:0)+le+be+tt),je=L(X,Oe);return je=Oe.writeUInt16BE(X.majorVersion,je),je=Oe.writeUInt16BE(X.minorVersion,je),je=Oe.writeUInt32BE(X.keepAlive,je),je=Oe.writeUInt32BE(X.lifetime,je),X.flags&t.Flags.RESUME_ENABLE&&(je=Oe.writeUInt16BE(ie,je),X.resumeToken!=null&&(je+=X.resumeToken.copy(Oe,je))),je=Oe.writeUInt8(le,je),X.metadataMimeType!=null&&(je+=Oe.write(X.metadataMimeType,je,je+le,"ascii")),je=Oe.writeUInt8(be,je),X.dataMimeType!=null&&(je+=Oe.write(X.dataMimeType,je,je+be,"ascii")),U(X,Oe,je),Oe}function O(X){var ie=X.resumeToken!=null?X.resumeToken.byteLength:0,le=X.metadataMimeType!=null?Vi.Buffer.byteLength(X.metadataMimeType,"ascii"):0,be=X.dataMimeType!=null?Vi.Buffer.byteLength(X.dataMimeType,"ascii"):0,tt=N(X);return c+S+(ie?v+ie:0)+le+be+tt}function k(X,ie,le){X.length;var be=c,tt=X.readUInt16BE(be);be+=2;var Oe=X.readUInt16BE(be);be+=2;var je=X.readInt32BE(be);be+=4;var Ct=X.readInt32BE(be);be+=4;var nn=null;if(le&t.Flags.RESUME_ENABLE){var ht=X.readInt16BE(be);be+=2,nn=X.slice(be,be+ht),be+=ht}var De=X.readUInt8(be);be+=1;var bt=X.toString("ascii",be,be+De);be+=De;var at=X.readUInt8(be);be+=1;var we=X.toString("ascii",be,be+at);be+=at;var Rt={data:null,dataMimeType:we,flags:le,keepAlive:je,lifetime:Ct,majorVersion:tt,metadata:null,metadataMimeType:bt,minorVersion:Oe,resumeToken:nn,streamId:0,type:t.FrameTypes.SETUP};return ee(X,Rt,be),Rt}var q=4;function G(X){var ie=X.message!=null?Vi.Buffer.byteLength(X.message,"utf8"):0,le=Vi.Buffer.allocUnsafe(c+q+ie),be=L(X,le);return be=le.writeUInt32BE(X.code,be),X.message!=null&&le.write(X.message,be,be+ie,"utf8"),le}function Q(X){var ie=X.message!=null?Vi.Buffer.byteLength(X.message,"utf8"):0;return c+q+ie}function H(X,ie,le){X.length;var be=c,tt=X.readInt32BE(be);be+=4;var Oe=X.length-be,je="";return Oe>0&&(je=X.toString("utf8",be,be+Oe),be+=Oe),{code:tt,flags:le,message:je,streamId:ie,type:t.FrameTypes.ERROR}}var Z=8;function te(X){var ie=X.data!=null?X.data.byteLength:0,le=Vi.Buffer.allocUnsafe(c+Z+ie),be=L(X,le);return be=l(le,X.lastReceivedPosition,be),X.data!=null&&X.data.copy(le,be),le}function j(X){var ie=X.data!=null?X.data.byteLength:0;return c+Z+ie}function he(X,ie,le){X.length;var be=c,tt=s(X,be);be+=8;var Oe=null;return be<X.length&&(Oe=X.slice(be,X.length)),{data:Oe,flags:le,lastReceivedPosition:tt,streamId:0,type:t.FrameTypes.KEEPALIVE}}var ke=8;function Me(X){var ie=X.metadata!=null?X.metadata.byteLength:0,le=Vi.Buffer.allocUnsafe(c+ke+ie),be=L(X,le);return be=le.writeUInt32BE(X.ttl,be),be=le.writeUInt32BE(X.requestCount,be),X.metadata!=null&&X.metadata.copy(le,be),le}function ze(X){var ie=X.metadata!=null?X.metadata.byteLength:0;return c+ke+ie}function Ne(X,ie,le){var be=c,tt=X.readUInt32BE(be);be+=4;var Oe=X.readUInt32BE(be);be+=4;var je=null;return be<X.length&&(je=X.slice(be,X.length)),{flags:le,metadata:je,requestCount:Oe,streamId:0,ttl:tt,type:t.FrameTypes.LEASE}}function Ve(X){var ie=N(X),le=Vi.Buffer.allocUnsafe(c+ie),be=L(X,le);return U(X,le,be),le}function Je(X){var ie=N(X);return c+ie}function Qe(X){var ie=X.metadata;if(ie!=null){var le=Vi.Buffer.allocUnsafe(c+ie.byteLength),be=L(X,le);return ie.copy(le,be),le}else{var le=Vi.Buffer.allocUnsafe(c);return L(X,le),le}}function st(X){return c+(X.metadata!=null?X.metadata.byteLength:0)}function We(X,ie,le){X.length;var be={data:null,flags:le,metadata:null,streamId:ie,type:t.FrameTypes.REQUEST_FNF};return ee(X,be,c),be}function gt(X,ie,le){var be={data:null,flags:le,metadata:null,streamId:ie,type:t.FrameTypes.REQUEST_RESPONSE};return ee(X,be,c),be}function Et(X,ie,le){return{flags:le,metadata:length===c?null:X.slice(c,length),streamId:0,type:t.FrameTypes.METADATA_PUSH}}var jt=4;function zt(X){var ie=N(X),le=Vi.Buffer.allocUnsafe(c+jt+ie),be=L(X,le);return be=le.writeUInt32BE(X.requestN,be),U(X,le,be),le}function Mt(X){var ie=N(X);return c+jt+ie}function Xe(X,ie,le){X.length;var be=c,tt=X.readInt32BE(be);be+=4;var Oe={data:null,flags:le,metadata:null,requestN:tt,streamId:ie,type:t.FrameTypes.REQUEST_STREAM};return ee(X,Oe,be),Oe}function et(X,ie,le){X.length;var be=c,tt=X.readInt32BE(be);be+=4;var Oe={data:null,flags:le,metadata:null,requestN:tt,streamId:ie,type:t.FrameTypes.REQUEST_CHANNEL};return ee(X,Oe,be),Oe}var yt=4;function Wt(X){var ie=Vi.Buffer.allocUnsafe(c+yt),le=L(X,ie);return ie.writeUInt32BE(X.requestN,le),ie}function Lt(X){return c+yt}function sn(X,ie,le){X.length;var be=X.readInt32BE(c);return{flags:le,requestN:be,streamId:ie,type:t.FrameTypes.REQUEST_N}}function pn(X){var ie=Vi.Buffer.allocUnsafe(c);return L(X,ie),ie}function lt(X){return c}function _e(X,ie,le){return X.length,{flags:le,streamId:ie,type:t.FrameTypes.CANCEL}}function Pe(X){var ie=N(X),le=Vi.Buffer.allocUnsafe(c+ie),be=L(X,le);return U(X,le,be),le}function dt(X){var ie=N(X);return c+ie}function vt(X,ie,le){X.length;var be={data:null,flags:le,metadata:null,streamId:ie,type:t.FrameTypes.PAYLOAD};return ee(X,be,c),be}var Qt=22;function Ht(X){var ie=X.resumeToken.byteLength,le=Vi.Buffer.allocUnsafe(c+Qt+ie),be=L(X,le);return be=le.writeUInt16BE(X.majorVersion,be),be=le.writeUInt16BE(X.minorVersion,be),be=le.writeUInt16BE(ie,be),be+=X.resumeToken.copy(le,be),be=l(le,X.serverPosition,be),l(le,X.clientPosition,be),le}function qt(X){var ie=X.resumeToken.byteLength;return c+Qt+ie}function en(X,ie,le){X.length;var be=c,tt=X.readUInt16BE(be);be+=2;var Oe=X.readUInt16BE(be);be+=2;var je=X.readInt16BE(be);be+=2;var Ct=X.slice(be,be+je);be+=je;var nn=s(X,be);be+=8;var ht=s(X,be);return be+=8,{clientPosition:ht,flags:le,majorVersion:tt,minorVersion:Oe,resumeToken:Ct,serverPosition:nn,streamId:0,type:t.FrameTypes.RESUME}}var Le=8;function fn(X){var ie=Vi.Buffer.allocUnsafe(c+Le),le=L(X,ie);return l(ie,X.clientPosition,le),ie}function kt(X){return c+Le}function ge(X,ie,le){X.length;var be=s(X,c);return{clientPosition:be,flags:le,streamId:0,type:t.FrameTypes.RESUME_OK}}function L(X,ie){var le=ie.writeInt32BE(X.streamId,0);return ie.writeUInt16BE(X.type<<n.FRAME_TYPE_OFFFSET|X.flags&n.FLAGS_MASK,le)}function N(X){var ie=0;return X.data!=null&&(ie+=X.data.byteLength),t.Flags.hasMetadata(X.flags)&&(ie+=f,X.metadata!=null&&(ie+=X.metadata.byteLength)),ie}function U(X,ie,le){if(t.Flags.hasMetadata(X.flags))if(X.metadata!=null){var be=X.metadata.byteLength;le=a(ie,be,le),le+=X.metadata.copy(ie,le)}else le=a(ie,0,le);X.data!=null&&X.data.copy(ie,le)}function ee(X,ie,le){if(t.Flags.hasMetadata(ie.flags)){var be=r(X,le);le+=f,be>0&&(ie.metadata=X.slice(le,le+be),le+=be)}le<X.length&&(ie.data=X.slice(le,X.length))}var ne=(function(){function X(){}return X.prototype.deserializeFrame=function(ie){return g(ie)},X.prototype.deserializeFrameWithLength=function(ie){return p(ie)},X.prototype.deserializeFrames=function(ie){return h(ie)},X})();n.Deserializer=ne})(NT)),NT}function One(){return sG||(sG=1,Object.defineProperty(DF,"__esModule",{value:!0})),DF}function CG(){if(oG)return U_;oG=1;var n=U_&&U_.__values||function(t){var i=typeof Symbol=="function"&&Symbol.iterator,r=i&&t[i],a=0;if(r)return r.call(t);if(t&&typeof t.length=="number")return{next:function(){return t&&a>=t.length&&(t=void 0),{value:t&&t[a++],done:!t}}};throw new TypeError(i?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(U_,"__esModule",{value:!0}),U_.Deferred=void 0;var e=(function(){function t(){this._done=!1,this.onCloseCallbacks=[]}return Object.defineProperty(t.prototype,"done",{get:function(){return this._done},enumerable:!1,configurable:!0}),t.prototype.close=function(i){var r,a,s,l;if(this.done){console.warn("Trying to close for the second time. ".concat(i?"Dropping error [".concat(i,"]."):""));return}if(this._done=!0,this._error=i,i){try{for(var c=n(this.onCloseCallbacks),f=c.next();!f.done;f=c.next()){var p=f.value;p(i)}}catch(g){r={error:g}}finally{try{f&&!f.done&&(a=c.return)&&a.call(c)}finally{if(r)throw r.error}}return}try{for(var h=n(this.onCloseCallbacks),_=h.next();!_.done;_=h.next()){var p=_.value;p()}}catch(g){s={error:g}}finally{try{_&&!_.done&&(l=h.return)&&l.call(h)}finally{if(s)throw s.error}}},t.prototype.onClose=function(i){if(this._done){i(this._error);return}this.onCloseCallbacks.push(i)},t})();return U_.Deferred=e,U_}function ep(){return lG||(lG=1,(function(n){var e=kT&&kT.__extends||(function(){var i=function(r,a){return i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(s,l){s.__proto__=l}||function(s,l){for(var c in l)Object.prototype.hasOwnProperty.call(l,c)&&(s[c]=l[c])},i(r,a)};return function(r,a){if(typeof a!="function"&&a!==null)throw new TypeError("Class extends value "+String(a)+" is not a constructor or null");i(r,a);function s(){this.constructor=r}r.prototype=a===null?Object.create(a):(s.prototype=a.prototype,new s)}})();Object.defineProperty(n,"__esModule",{value:!0}),n.ErrorCodes=n.RSocketError=void 0;var t=(function(i){e(r,i);function r(a,s){var l=i.call(this,s)||this;return l.code=a,l}return r})(Error);n.RSocketError=t,(function(i){i[i.RESERVED=0]="RESERVED",i[i.INVALID_SETUP=1]="INVALID_SETUP",i[i.UNSUPPORTED_SETUP=2]="UNSUPPORTED_SETUP",i[i.REJECTED_SETUP=3]="REJECTED_SETUP",i[i.REJECTED_RESUME=4]="REJECTED_RESUME",i[i.CONNECTION_CLOSE=258]="CONNECTION_CLOSE",i[i.CONNECTION_ERROR=257]="CONNECTION_ERROR",i[i.APPLICATION_ERROR=513]="APPLICATION_ERROR",i[i.REJECTED=514]="REJECTED",i[i.CANCELED=515]="CANCELED",i[i.INVALID=516]="INVALID",i[i.RESERVED_EXTENSION=4294967295]="RESERVED_EXTENSION"})(n.ErrorCodes||(n.ErrorCodes={}))})(kT)),kT}function Dne(){return uG||(uG=1,Object.defineProperty(FF,"__esModule",{value:!0})),FF}function RG(){return cG||(cG=1,(function(n){var e=od&&od.__extends||(function(){var h=function(_,g){return h=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(E,x){E.__proto__=x}||function(E,x){for(var S in x)Object.prototype.hasOwnProperty.call(x,S)&&(E[S]=x[S])},h(_,g)};return function(_,g){if(typeof g!="function"&&g!==null)throw new TypeError("Class extends value "+String(g)+" is not a constructor or null");h(_,g);function E(){this.constructor=_}_.prototype=g===null?Object.create(g):(E.prototype=g.prototype,new E)}})(),t=od&&od.__awaiter||function(h,_,g,E){function x(S){return S instanceof g?S:new g(function(v){v(S)})}return new(g||(g=Promise))(function(S,v){function M(q){try{k(E.next(q))}catch(G){v(G)}}function O(q){try{k(E.throw(q))}catch(G){v(G)}}function k(q){q.done?S(q.value):x(q.value).then(M,O)}k((E=E.apply(h,_||[])).next())})},i=od&&od.__generator||function(h,_){var g={label:0,sent:function(){if(S[0]&1)throw S[1];return S[1]},trys:[],ops:[]},E,x,S,v;return v={next:M(0),throw:M(1),return:M(2)},typeof Symbol=="function"&&(v[Symbol.iterator]=function(){return this}),v;function M(k){return function(q){return O([k,q])}}function O(k){if(E)throw new TypeError("Generator is already executing.");for(;g;)try{if(E=1,x&&(S=k[0]&2?x.return:k[0]?x.throw||((S=x.return)&&S.call(x),0):x.next)&&!(S=S.call(x,k[1])).done)return S;switch(x=0,S&&(k=[k[0]&2,S.value]),k[0]){case 0:case 1:S=k;break;case 4:return g.label++,{value:k[1],done:!1};case 5:g.label++,x=k[1],k=[0];continue;case 7:k=g.ops.pop(),g.trys.pop();continue;default:if(S=g.trys,!(S=S.length>0&&S[S.length-1])&&(k[0]===6||k[0]===2)){g=0;continue}if(k[0]===3&&(!S||k[1]>S[0]&&k[1]<S[3])){g.label=k[1];break}if(k[0]===6&&g.label<S[1]){g.label=S[1],S=k;break}if(S&&g.label<S[2]){g.label=S[2],g.ops.push(k);break}S[2]&&g.ops.pop(),g.trys.pop();continue}k=_.call(h,g)}catch(q){k=[6,q],x=0}finally{E=S=0}if(k[0]&5)throw k[1];return{value:k[0]?k[1]:void 0,done:!0}}};Object.defineProperty(n,"__esModule",{value:!0}),n.ResumeOkAwaitingResumableClientServerInputMultiplexerDemultiplexer=n.ResumableClientServerInputMultiplexerDemultiplexer=n.ClientServerInputMultiplexerDemultiplexer=n.StreamIdGenerator=void 0;var r=DT(),a=CG(),s=ep(),l=Hu();(function(h){function _(E){return new g(E)}h.create=_;var g=(function(){function E(x){this.currentId=x}return E.prototype.next=function(x){var S=this.currentId+2;x(S)&&(this.currentId=S)},E})()})(n.StreamIdGenerator||(n.StreamIdGenerator={}));var c=(function(h){e(_,h);function _(g,E,x){var S=h.call(this)||this;return S.streamIdSupplier=g,S.outbound=E,S.closeable=x,S.registry={},x.onClose(S.close.bind(S)),S}return _.prototype.handle=function(g){if(l.Frame.isConnection(g)){if(g.type===r.FrameTypes.RESERVED)return;this.connectionFramesHandler.handle(g)}else if(l.Frame.isRequest(g)){if(this.registry[g.streamId])return;this.requestFramesHandler.handle(g,this)}else{var E=this.registry[g.streamId];if(!E)return;E.handle(g)}},_.prototype.connectionInbound=function(g){if(this.connectionFramesHandler)throw new Error("Connection frame handler has already been installed");this.connectionFramesHandler=g},_.prototype.handleRequestStream=function(g){if(this.requestFramesHandler)throw new Error("Stream handler has already been installed");this.requestFramesHandler=g},_.prototype.send=function(g){this.outbound.send(g)},Object.defineProperty(_.prototype,"connectionOutbound",{get:function(){return this},enumerable:!1,configurable:!0}),_.prototype.createRequestStream=function(g){var E=this;if(this.done){g.handleReject(new Error("Already closed"));return}var x=this.registry;this.streamIdSupplier.next(function(S){return g.handleReady(S,E)},Object.keys(x))},_.prototype.connect=function(g){this.registry[g.streamId]=g},_.prototype.disconnect=function(g){delete this.registry[g.streamId]},_.prototype.close=function(g){if(this.done){h.prototype.close.call(this,g);return}for(var E in this.registry){var x=this.registry[E];x.close(new Error("Closed. ".concat(g?"Original cause [".concat(g,"]."):"")))}h.prototype.close.call(this,g)},_})(a.Deferred);n.ClientServerInputMultiplexerDemultiplexer=c;var f=(function(h){e(_,h);function _(g,E,x,S,v,M,O){var k=h.call(this,g,E,new a.Deferred)||this;return k.frameStore=S,k.token=v,k.sessionTimeout=O,M instanceof Function?k.reconnector=M:k.sessionStore=M,x.onClose(k.handleConnectionClose.bind(k)),k}return _.prototype.send=function(g){if(l.Frame.isConnection(g)){if(g.type===r.FrameTypes.KEEPALIVE)g.lastReceivedPosition=this.frameStore.lastReceivedFramePosition;else if(g.type===r.FrameTypes.ERROR){this.outbound.send(g),this.sessionStore&&delete this.sessionStore[this.token],h.prototype.close.call(this,new s.RSocketError(g.code,g.message));return}}else this.frameStore.store(g);this.outbound.send(g)},_.prototype.handle=function(g){if(l.Frame.isConnection(g)){if(g.type===r.FrameTypes.KEEPALIVE)try{this.frameStore.dropTo(g.lastReceivedPosition)}catch(E){this.outbound.send({type:r.FrameTypes.ERROR,streamId:0,flags:r.Flags.NONE,code:E.code,message:E.message}),this.close(E)}else if(g.type===r.FrameTypes.ERROR){h.prototype.handle.call(this,g),this.sessionStore&&delete this.sessionStore[this.token],h.prototype.close.call(this,new s.RSocketError(g.code,g.message));return}}else this.frameStore.record(g);h.prototype.handle.call(this,g)},_.prototype.resume=function(g,E,x){switch(this.outbound=E,g.type){case r.FrameTypes.RESUME:{if(clearTimeout(this.timeoutId),this.frameStore.lastReceivedFramePosition<g.clientPosition){var S=new s.RSocketError(r.ErrorCodes.REJECTED_RESUME,"Impossible to resume since first available client frame position is greater than last received server frame position");this.outbound.send({type:r.FrameTypes.ERROR,streamId:0,flags:r.Flags.NONE,code:S.code,message:S.message}),this.close(S);return}try{this.frameStore.dropTo(g.serverPosition)}catch(v){this.outbound.send({type:r.FrameTypes.ERROR,streamId:0,flags:r.Flags.NONE,code:v.code,message:v.message}),this.close(v);return}this.outbound.send({type:r.FrameTypes.RESUME_OK,streamId:0,flags:r.Flags.NONE,clientPosition:this.frameStore.lastReceivedFramePosition});break}case r.FrameTypes.RESUME_OK:{try{this.frameStore.dropTo(g.clientPosition)}catch(v){this.outbound.send({type:r.FrameTypes.ERROR,streamId:0,flags:r.Flags.NONE,code:v.code,message:v.message}),this.close(v)}break}}this.frameStore.drain(this.outbound.send.bind(this.outbound)),x.onClose(this.handleConnectionClose.bind(this)),this.connectionFramesHandler.resume()},_.prototype.handleConnectionClose=function(g){return t(this,void 0,void 0,function(){var E;return i(this,function(x){switch(x.label){case 0:if(this.connectionFramesHandler.pause(),!this.reconnector)return[3,5];x.label=1;case 1:return x.trys.push([1,3,,4]),[4,this.reconnector(this,this.frameStore)];case 2:return x.sent(),[3,4];case 3:return E=x.sent(),this.close(E),[3,4];case 4:return[3,6];case 5:this.timeoutId=setTimeout(this.close.bind(this),this.sessionTimeout),x.label=6;case 6:return[2]}})})},_})(c);n.ResumableClientServerInputMultiplexerDemultiplexer=f;var p=(function(){function h(_,g,E){this.outbound=_,this.closeable=g,this.delegate=E,this.resumed=!1}return h.prototype.close=function(){this.delegate.close()},h.prototype.onClose=function(_){this.delegate.onClose(_)},Object.defineProperty(h.prototype,"connectionOutbound",{get:function(){return this.delegate.connectionOutbound},enumerable:!1,configurable:!0}),h.prototype.createRequestStream=function(_){this.delegate.createRequestStream(_)},h.prototype.connectionInbound=function(_){this.delegate.connectionInbound(_)},h.prototype.handleRequestStream=function(_){this.delegate.handleRequestStream(_)},h.prototype.handle=function(_){var g=this;if(!this.resumed){if(_.type===r.FrameTypes.RESUME_OK){this.resumed=!0,this.delegate.resume(_,this.outbound,this.closeable);return}else this.outbound.send({type:r.FrameTypes.ERROR,streamId:0,code:r.ErrorCodes.CONNECTION_ERROR,message:"Incomplete RESUME handshake. Unexpected frame ".concat(_.type," received"),flags:r.Flags.NONE}),this.closeable.close(),this.closeable.onClose(function(){return g.delegate.close(new s.RSocketError(r.ErrorCodes.CONNECTION_ERROR,"Incomplete RESUME handshake. Unexpected frame ".concat(_.type," received")))});return}this.delegate.handle(_)},h})();n.ResumeOkAwaitingResumableClientServerInputMultiplexerDemultiplexer=p})(od)),od}function UR(){if(fG)return Bu;fG=1;var n=Bu&&Bu.__generator||function(a,s){var l={label:0,sent:function(){if(p[0]&1)throw p[1];return p[1]},trys:[],ops:[]},c,f,p,h;return h={next:_(0),throw:_(1),return:_(2)},typeof Symbol=="function"&&(h[Symbol.iterator]=function(){return this}),h;function _(E){return function(x){return g([E,x])}}function g(E){if(c)throw new TypeError("Generator is already executing.");for(;l;)try{if(c=1,f&&(p=E[0]&2?f.return:E[0]?f.throw||((p=f.return)&&p.call(f),0):f.next)&&!(p=p.call(f,E[1])).done)return p;switch(f=0,p&&(E=[E[0]&2,p.value]),E[0]){case 0:case 1:p=E;break;case 4:return l.label++,{value:E[1],done:!1};case 5:l.label++,f=E[1],E=[0];continue;case 7:E=l.ops.pop(),l.trys.pop();continue;default:if(p=l.trys,!(p=p.length>0&&p[p.length-1])&&(E[0]===6||E[0]===2)){l=0;continue}if(E[0]===3&&(!p||E[1]>p[0]&&E[1]<p[3])){l.label=E[1];break}if(E[0]===6&&l.label<p[1]){l.label=p[1],p=E;break}if(p&&l.label<p[2]){l.label=p[2],l.ops.push(E);break}p[2]&&l.ops.pop(),l.trys.pop();continue}E=s.call(a,l)}catch(x){E=[6,x],f=0}finally{c=p=0}if(E[0]&5)throw E[1];return{value:E[0]?E[1]:void 0,done:!0}}};Object.defineProperty(Bu,"__esModule",{value:!0}),Bu.fragmentWithRequestN=Bu.fragment=Bu.isFragmentable=void 0;var e=Hu();function t(a,s,l){return s===0?!1:a.data.byteLength+(a.metadata?a.metadata.byteLength+e.Lengths.METADATA:0)+(l==e.FrameTypes.REQUEST_STREAM||l==e.FrameTypes.REQUEST_CHANNEL?e.Lengths.REQUEST:0)>s}Bu.isFragmentable=t;function i(a,s,l,c,f){var p,h,_,g,E,x,S,S,v,M,O,O,k,q;return f===void 0&&(f=!1),n(this,function(G){switch(G.label){case 0:return p=(q=(k=s.data)===null||k===void 0?void 0:k.byteLength)!==null&&q!==void 0?q:0,h=c!==e.FrameTypes.PAYLOAD,_=l,s.metadata?(E=s.metadata.byteLength,E!==0?[3,1]:(_-=e.Lengths.METADATA,g=Vi.Buffer.allocUnsafe(0),[3,6])):[3,6];case 1:return x=0,h?(_-=e.Lengths.METADATA,S=Math.min(E,x+_),g=s.metadata.slice(x,S),_-=g.byteLength,x=S,_!==0?[3,3]:(h=!1,[4,{type:c,flags:e.Flags.FOLLOWS|e.Flags.METADATA,data:void 0,metadata:g,streamId:a}])):[3,3];case 2:G.sent(),g=void 0,_=l,G.label=3;case 3:return x<E?(_-=e.Lengths.METADATA,S=Math.min(E,x+_),g=s.metadata.slice(x,S),_-=g.byteLength,x=S,_===0||p===0?[4,{type:e.FrameTypes.PAYLOAD,flags:e.Flags.NEXT|e.Flags.METADATA|(x===E&&f&&p===0?e.Flags.COMPLETE:e.Flags.FOLLOWS),data:void 0,metadata:g,streamId:a}]:[3,5]):[3,6];case 4:G.sent(),g=void 0,_=l,G.label=5;case 5:return[3,3];case 6:return v=0,h?(O=Math.min(p,v+_),M=s.data.slice(v,O),_-=M.byteLength,v=O,[4,{type:c,flags:e.Flags.FOLLOWS|(g?e.Flags.METADATA:e.Flags.NONE),data:M,metadata:g,streamId:a}]):[3,8];case 7:G.sent(),g=void 0,M=void 0,_=l,G.label=8;case 8:return v<p?(O=Math.min(p,v+_),M=s.data.slice(v,O),_-=M.byteLength,v=O,[4,{type:e.FrameTypes.PAYLOAD,flags:v===p?(f?e.Flags.COMPLETE:e.Flags.NONE)|e.Flags.NEXT|(g?e.Flags.METADATA:0):e.Flags.FOLLOWS|e.Flags.NEXT|(g?e.Flags.METADATA:0),data:M,metadata:g,streamId:a}]):[3,10];case 9:return G.sent(),g=void 0,M=void 0,_=l,[3,8];case 10:return[2]}})}Bu.fragment=i;function r(a,s,l,c,f,p){var h,_,g,E,x,S,v,v,M,O,k,k,q,G;return p===void 0&&(p=!1),n(this,function(Q){switch(Q.label){case 0:return h=(G=(q=s.data)===null||q===void 0?void 0:q.byteLength)!==null&&G!==void 0?G:0,_=!0,g=l,s.metadata?(x=s.metadata.byteLength,x!==0?[3,1]:(g-=e.Lengths.METADATA,E=Vi.Buffer.allocUnsafe(0),[3,6])):[3,6];case 1:return S=0,_?(g-=e.Lengths.METADATA+e.Lengths.REQUEST,v=Math.min(x,S+g),E=s.metadata.slice(S,v),g-=E.byteLength,S=v,g!==0?[3,3]:(_=!1,[4,{type:c,flags:e.Flags.FOLLOWS|e.Flags.METADATA,data:void 0,requestN:f,metadata:E,streamId:a}])):[3,3];case 2:Q.sent(),E=void 0,g=l,Q.label=3;case 3:return S<x?(g-=e.Lengths.METADATA,v=Math.min(x,S+g),E=s.metadata.slice(S,v),g-=E.byteLength,S=v,g===0||h===0?[4,{type:e.FrameTypes.PAYLOAD,flags:e.Flags.NEXT|e.Flags.METADATA|(S===x&&p&&h===0?e.Flags.COMPLETE:e.Flags.FOLLOWS),data:void 0,metadata:E,streamId:a}]:[3,5]):[3,6];case 4:Q.sent(),E=void 0,g=l,Q.label=5;case 5:return[3,3];case 6:return M=0,_?(g-=e.Lengths.REQUEST,k=Math.min(h,M+g),O=s.data.slice(M,k),g-=O.byteLength,M=k,[4,{type:c,flags:e.Flags.FOLLOWS|(E?e.Flags.METADATA:e.Flags.NONE),data:O,requestN:f,metadata:E,streamId:a}]):[3,8];case 7:Q.sent(),E=void 0,O=void 0,g=l,Q.label=8;case 8:return M<h?(k=Math.min(h,M+g),O=s.data.slice(M,k),g-=O.byteLength,M=k,[4,{type:e.FrameTypes.PAYLOAD,flags:M===h?(p?e.Flags.COMPLETE:e.Flags.NONE)|e.Flags.NEXT|(E?e.Flags.METADATA:0):e.Flags.FOLLOWS|e.Flags.NEXT|(E?e.Flags.METADATA:0),data:O,metadata:E,streamId:a}]):[3,10];case 9:return Q.sent(),E=void 0,O=void 0,g=l,[3,8];case 10:return[2]}})}return Bu.fragmentWithRequestN=r,Bu}function zR(){if(dG)return ld;dG=1,Object.defineProperty(ld,"__esModule",{value:!0}),ld.cancel=ld.reassemble=ld.add=void 0;function n(i,r,a){return i.hasFragments?(i.data=i.data?Vi.Buffer.concat([i.data,r]):r,i.metadata&&a&&(i.metadata=Vi.Buffer.concat([i.metadata,a])),!0):(i.hasFragments=!0,i.data=r,a&&(i.metadata=a),!0)}ld.add=n;function e(i,r,a){i.hasFragments=!1;var s=i.data?Vi.Buffer.concat([i.data,r]):r;if(i.data=void 0,i.metadata){var l=a?Vi.Buffer.concat([i.metadata,a]):i.metadata;return i.metadata=void 0,{data:s,metadata:l}}return{data:s}}ld.reassemble=e;function t(i){i.hasFragments=!1,i.data=void 0,i.metadata=void 0}return ld.cancel=t,ld}function Fne(){if(hG)return Ns;hG=1;var n=Ns&&Ns.__createBinding||(Object.create?(function(p,h,_,g){g===void 0&&(g=_),Object.defineProperty(p,g,{enumerable:!0,get:function(){return h[_]}})}):(function(p,h,_,g){g===void 0&&(g=_),p[g]=h[_]})),e=Ns&&Ns.__setModuleDefault||(Object.create?(function(p,h){Object.defineProperty(p,"default",{enumerable:!0,value:h})}):function(p,h){p.default=h}),t=Ns&&Ns.__importStar||function(p){if(p&&p.__esModule)return p;var h={};if(p!=null)for(var _ in p)_!=="default"&&Object.prototype.hasOwnProperty.call(p,_)&&n(h,p,_);return e(h,p),h},i=Ns&&Ns.__values||function(p){var h=typeof Symbol=="function"&&Symbol.iterator,_=h&&p[h],g=0;if(_)return _.call(p);if(p&&typeof p.length=="number")return{next:function(){return p&&g>=p.length&&(p=void 0),{value:p&&p[g++],done:!p}}};throw new TypeError(h?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(Ns,"__esModule",{value:!0}),Ns.RequestChannelResponderStream=Ns.RequestChannelRequesterStream=void 0;var r=ep(),a=UR(),s=Hu(),l=t(zR()),c=(function(){function p(h,_,g,E,x,S){this.payload=h,this.isComplete=_,this.receiver=g,this.fragmentSize=E,this.initialRequestN=x,this.leaseManager=S,this.streamType=s.FrameTypes.REQUEST_CHANNEL}return p.prototype.handleReady=function(h,_){var g,E;if(this.outboundDone)return!1;this.streamId=h,this.stream=_,_.connect(this);var x=this.isComplete;if(x&&(this.outboundDone=x),(0,a.isFragmentable)(this.payload,this.fragmentSize,s.FrameTypes.REQUEST_CHANNEL))try{for(var S=i((0,a.fragmentWithRequestN)(h,this.payload,this.fragmentSize,s.FrameTypes.REQUEST_CHANNEL,this.initialRequestN,x)),v=S.next();!v.done;v=S.next()){var M=v.value;this.stream.send(M)}}catch(O){g={error:O}}finally{try{v&&!v.done&&(E=S.return)&&E.call(S)}finally{if(g)throw g.error}}else this.stream.send({type:s.FrameTypes.REQUEST_CHANNEL,data:this.payload.data,metadata:this.payload.metadata,requestN:this.initialRequestN,flags:(this.payload.metadata!==void 0?s.Flags.METADATA:s.Flags.NONE)|(x?s.Flags.COMPLETE:s.Flags.NONE),streamId:h});return this.hasExtension&&this.stream.send({type:s.FrameTypes.EXT,streamId:h,extendedContent:this.extendedContent,extendedType:this.extendedType,flags:this.flags}),!0},p.prototype.handleReject=function(h){this.inboundDone||(this.inboundDone=!0,this.outboundDone=!0,this.receiver.onError(h))},p.prototype.handle=function(h){var _,g=h.type;switch(g){case s.FrameTypes.PAYLOAD:{var E=s.Flags.hasComplete(h.flags),x=s.Flags.hasNext(h.flags);if(E||!s.Flags.hasFollows(h.flags)){if(E&&(this.inboundDone=!0,this.outboundDone&&this.stream.disconnect(this),!x)){this.receiver.onComplete();return}var S=this.hasFragments?l.reassemble(this,h.data,h.metadata):{data:h.data,metadata:h.metadata};this.receiver.onNext(S,E);return}if(l.add(this,h.data,h.metadata))return;_="Unexpected frame size";break}case s.FrameTypes.CANCEL:{if(this.outboundDone)return;this.outboundDone=!0,this.inboundDone&&this.stream.disconnect(this),this.receiver.cancel();return}case s.FrameTypes.REQUEST_N:{if(this.outboundDone)return;if(this.hasFragments){_="Unexpected frame type [".concat(g,"] during reassembly");break}this.receiver.request(h.requestN);return}case s.FrameTypes.ERROR:{var v=this.outboundDone;this.inboundDone=!0,this.outboundDone=!0,this.stream.disconnect(this),l.cancel(this),v||this.receiver.cancel(),this.receiver.onError(new r.RSocketError(h.code,h.message));return}case s.FrameTypes.EXT:this.receiver.onExtension(h.extendedType,h.extendedContent,s.Flags.hasIgnore(h.flags));return;default:_="Unexpected frame type [".concat(g,"]")}this.close(new r.RSocketError(r.ErrorCodes.CANCELED,_)),this.stream.send({type:s.FrameTypes.CANCEL,streamId:this.streamId,flags:s.Flags.NONE}),this.stream.disconnect(this)},p.prototype.request=function(h){if(!this.inboundDone){if(!this.streamId){this.initialRequestN+=h;return}this.stream.send({type:s.FrameTypes.REQUEST_N,flags:s.Flags.NONE,requestN:h,streamId:this.streamId})}},p.prototype.cancel=function(){var h,_=this.inboundDone,g=this.outboundDone;if(!(_&&g)){if(this.inboundDone=!0,this.outboundDone=!0,g||this.receiver.cancel(),!this.streamId){(h=this.leaseManager)===null||h===void 0||h.cancelRequest(this);return}this.stream.send({type:_?s.FrameTypes.ERROR:s.FrameTypes.CANCEL,flags:s.Flags.NONE,streamId:this.streamId,code:r.ErrorCodes.CANCELED,message:"Cancelled"}),this.stream.disconnect(this),l.cancel(this)}},p.prototype.onNext=function(h,_){var g,E;if(!this.outboundDone)if(_&&(this.outboundDone=!0,this.inboundDone&&this.stream.disconnect(this)),(0,a.isFragmentable)(h,this.fragmentSize,s.FrameTypes.PAYLOAD))try{for(var x=i((0,a.fragment)(this.streamId,h,this.fragmentSize,s.FrameTypes.PAYLOAD,_)),S=x.next();!S.done;S=x.next()){var v=S.value;this.stream.send(v)}}catch(M){g={error:M}}finally{try{S&&!S.done&&(E=x.return)&&E.call(x)}finally{if(g)throw g.error}}else this.stream.send({type:s.FrameTypes.PAYLOAD,streamId:this.streamId,flags:s.Flags.NEXT|(h.metadata?s.Flags.METADATA:s.Flags.NONE)|(_?s.Flags.COMPLETE:s.Flags.NONE),data:h.data,metadata:h.metadata})},p.prototype.onComplete=function(){if(!this.streamId){this.isComplete=!0;return}this.outboundDone||(this.outboundDone=!0,this.stream.send({type:s.FrameTypes.PAYLOAD,streamId:this.streamId,flags:s.Flags.COMPLETE,data:null,metadata:null}),this.inboundDone&&this.stream.disconnect(this))},p.prototype.onError=function(h){if(!this.outboundDone){var _=this.inboundDone;this.outboundDone=!0,this.inboundDone=!0,this.stream.send({type:s.FrameTypes.ERROR,streamId:this.streamId,flags:s.Flags.NONE,code:h instanceof r.RSocketError?h.code:r.ErrorCodes.APPLICATION_ERROR,message:h.message}),this.stream.disconnect(this),_||this.receiver.onError(h)}},p.prototype.onExtension=function(h,_,g){if(!this.outboundDone){if(!this.streamId){this.hasExtension=!0,this.extendedType=h,this.extendedContent=_,this.flags=g?s.Flags.IGNORE:s.Flags.NONE;return}this.stream.send({streamId:this.streamId,type:s.FrameTypes.EXT,extendedType:h,extendedContent:_,flags:g?s.Flags.IGNORE:s.Flags.NONE})}},p.prototype.close=function(h){if(!(this.inboundDone&&this.outboundDone)){var _=this.inboundDone,g=this.outboundDone;this.inboundDone=!0,this.outboundDone=!0,l.cancel(this),g||this.receiver.cancel(),_||(h?this.receiver.onError(h):this.receiver.onComplete())}},p})();Ns.RequestChannelRequesterStream=c;var f=(function(){function p(h,_,g,E,x){if(this.streamId=h,this.stream=_,this.fragmentSize=g,this.handler=E,this.streamType=s.FrameTypes.REQUEST_CHANNEL,_.connect(this),s.Flags.hasFollows(x.flags)){l.add(this,x.data,x.metadata),this.initialRequestN=x.requestN,this.isComplete=s.Flags.hasComplete(x.flags);return}var S={data:x.data,metadata:x.metadata},v=s.Flags.hasComplete(x.flags);this.inboundDone=v;try{this.receiver=E(S,x.requestN,v,this),this.outboundDone&&this.defferedError&&this.receiver.onError(this.defferedError)}catch(M){this.outboundDone&&!this.inboundDone?this.cancel():this.inboundDone=!0,this.onError(M)}}return p.prototype.handle=function(h){var _,g=h.type;switch(g){case s.FrameTypes.PAYLOAD:{if(s.Flags.hasFollows(h.flags)){if(l.add(this,h.data,h.metadata))return;_="Unexpected frame size";break}var E=this.hasFragments?l.reassemble(this,h.data,h.metadata):{data:h.data,metadata:h.metadata},x=s.Flags.hasComplete(h.flags);if(this.receiver){if(x&&(this.inboundDone=!0,this.outboundDone&&this.stream.disconnect(this),!s.Flags.hasNext(h.flags))){this.receiver.onComplete();return}this.receiver.onNext(E,x)}else{var S=this.isComplete||x;S&&(this.inboundDone=!0,this.outboundDone&&this.stream.disconnect(this));try{this.receiver=this.handler(E,this.initialRequestN,S,this),this.outboundDone&&this.defferedError}catch(O){this.outboundDone&&!this.inboundDone?this.cancel():this.inboundDone=!0,this.onError(O)}}return}case s.FrameTypes.REQUEST_N:{if(!this.receiver||this.hasFragments){_="Unexpected frame type [".concat(g,"] during reassembly");break}this.receiver.request(h.requestN);return}case s.FrameTypes.ERROR:case s.FrameTypes.CANCEL:{var S=this.inboundDone,v=this.outboundDone;if(this.inboundDone=!0,this.outboundDone=!0,this.stream.disconnect(this),l.cancel(this),!this.receiver)return;if(v||this.receiver.cancel(),!S){var M=g===s.FrameTypes.CANCEL?new r.RSocketError(r.ErrorCodes.CANCELED,"Cancelled"):new r.RSocketError(h.code,h.message);this.receiver.onError(M)}return}case s.FrameTypes.EXT:{if(!this.receiver||this.hasFragments){_="Unexpected frame type [".concat(g,"] during reassembly");break}this.receiver.onExtension(h.extendedType,h.extendedContent,s.Flags.hasIgnore(h.flags));return}default:_="Unexpected frame type [".concat(g,"]")}this.stream.send({type:s.FrameTypes.ERROR,flags:s.Flags.NONE,code:r.ErrorCodes.CANCELED,message:_,streamId:this.streamId}),this.stream.disconnect(this),this.close(new r.RSocketError(r.ErrorCodes.CANCELED,_))},p.prototype.onError=function(h){if(this.outboundDone){console.warn("Trying to error for the second time. ".concat(h?"Dropping error [".concat(h,"]."):""));return}var _=this.inboundDone;this.outboundDone=!0,this.inboundDone=!0,this.stream.send({type:s.FrameTypes.ERROR,flags:s.Flags.NONE,code:h instanceof r.RSocketError?h.code:r.ErrorCodes.APPLICATION_ERROR,message:h.message,streamId:this.streamId}),this.stream.disconnect(this),_||(this.receiver?this.receiver.onError(h):this.defferedError=h)},p.prototype.onNext=function(h,_){var g,E;if(!this.outboundDone){if(_&&(this.outboundDone=!0),(0,a.isFragmentable)(h,this.fragmentSize,s.FrameTypes.PAYLOAD))try{for(var x=i((0,a.fragment)(this.streamId,h,this.fragmentSize,s.FrameTypes.PAYLOAD,_)),S=x.next();!S.done;S=x.next()){var v=S.value;this.stream.send(v)}}catch(M){g={error:M}}finally{try{S&&!S.done&&(E=x.return)&&E.call(x)}finally{if(g)throw g.error}}else this.stream.send({type:s.FrameTypes.PAYLOAD,flags:s.Flags.NEXT|(_?s.Flags.COMPLETE:s.Flags.NONE)|(h.metadata?s.Flags.METADATA:s.Flags.NONE),data:h.data,metadata:h.metadata,streamId:this.streamId});_&&this.inboundDone&&this.stream.disconnect(this)}},p.prototype.onComplete=function(){this.outboundDone||(this.outboundDone=!0,this.stream.send({type:s.FrameTypes.PAYLOAD,flags:s.Flags.COMPLETE,streamId:this.streamId,data:null,metadata:null}),this.inboundDone&&this.stream.disconnect(this))},p.prototype.onExtension=function(h,_,g){this.outboundDone&&this.inboundDone||this.stream.send({type:s.FrameTypes.EXT,streamId:this.streamId,flags:g?s.Flags.IGNORE:s.Flags.NONE,extendedType:h,extendedContent:_})},p.prototype.request=function(h){this.inboundDone||this.stream.send({type:s.FrameTypes.REQUEST_N,flags:s.Flags.NONE,streamId:this.streamId,requestN:h})},p.prototype.cancel=function(){this.inboundDone||(this.inboundDone=!0,this.stream.send({type:s.FrameTypes.CANCEL,flags:s.Flags.NONE,streamId:this.streamId}),this.outboundDone&&this.stream.disconnect(this))},p.prototype.close=function(h){if(this.inboundDone&&this.outboundDone){console.warn("Trying to close for the second time. ".concat(h?"Dropping error [".concat(h,"]."):""));return}var _=this.inboundDone,g=this.outboundDone;this.inboundDone=!0,this.outboundDone=!0,l.cancel(this);var E=this.receiver;E&&(g||E.cancel(),_||(h?E.onError(h):E.onComplete()))},p})();return Ns.RequestChannelResponderStream=f,Ns}function Pne(){if(pG)return ks;pG=1;var n=ks&&ks.__createBinding||(Object.create?(function(p,h,_,g){g===void 0&&(g=_),Object.defineProperty(p,g,{enumerable:!0,get:function(){return h[_]}})}):(function(p,h,_,g){g===void 0&&(g=_),p[g]=h[_]})),e=ks&&ks.__setModuleDefault||(Object.create?(function(p,h){Object.defineProperty(p,"default",{enumerable:!0,value:h})}):function(p,h){p.default=h}),t=ks&&ks.__importStar||function(p){if(p&&p.__esModule)return p;var h={};if(p!=null)for(var _ in p)_!=="default"&&Object.prototype.hasOwnProperty.call(p,_)&&n(h,p,_);return e(h,p),h},i=ks&&ks.__values||function(p){var h=typeof Symbol=="function"&&Symbol.iterator,_=h&&p[h],g=0;if(_)return _.call(p);if(p&&typeof p.length=="number")return{next:function(){return p&&g>=p.length&&(p=void 0),{value:p&&p[g++],done:!p}}};throw new TypeError(h?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(ks,"__esModule",{value:!0}),ks.RequestFnfResponderStream=ks.RequestFnFRequesterStream=void 0;var r=ep(),a=UR(),s=Hu(),l=t(zR()),c=(function(){function p(h,_,g,E){this.payload=h,this.receiver=_,this.fragmentSize=g,this.leaseManager=E,this.streamType=s.FrameTypes.REQUEST_FNF}return p.prototype.handleReady=function(h,_){var g,E;if(this.done)return!1;if(this.streamId=h,(0,a.isFragmentable)(this.payload,this.fragmentSize,s.FrameTypes.REQUEST_FNF))try{for(var x=i((0,a.fragment)(h,this.payload,this.fragmentSize,s.FrameTypes.REQUEST_FNF)),S=x.next();!S.done;S=x.next()){var v=S.value;_.send(v)}}catch(M){g={error:M}}finally{try{S&&!S.done&&(E=x.return)&&E.call(x)}finally{if(g)throw g.error}}else _.send({type:s.FrameTypes.REQUEST_FNF,data:this.payload.data,metadata:this.payload.metadata,flags:this.payload.metadata?s.Flags.METADATA:0,streamId:h});return this.done=!0,this.receiver.onComplete(),!0},p.prototype.handleReject=function(h){this.done||(this.done=!0,this.receiver.onError(h))},p.prototype.cancel=function(){var h;this.done||(this.done=!0,(h=this.leaseManager)===null||h===void 0||h.cancelRequest(this))},p.prototype.handle=function(h){if(h.type==s.FrameTypes.ERROR){this.close(new r.RSocketError(h.code,h.message));return}this.close(new r.RSocketError(r.ErrorCodes.CANCELED,"Received invalid frame"))},p.prototype.close=function(h){if(this.done){console.warn("Trying to close for the second time. ".concat(h?"Dropping error [".concat(h,"]."):""));return}h?this.receiver.onError(h):this.receiver.onComplete()},p})();ks.RequestFnFRequesterStream=c;var f=(function(){function p(h,_,g,E){if(this.streamId=h,this.stream=_,this.handler=g,this.streamType=s.FrameTypes.REQUEST_FNF,s.Flags.hasFollows(E.flags)){l.add(this,E.data,E.metadata),_.connect(this);return}var x={data:E.data,metadata:E.metadata};try{this.cancellable=g(x,this)}catch{}}return p.prototype.handle=function(h){var _;if(h.type==s.FrameTypes.PAYLOAD)if(s.Flags.hasFollows(h.flags)){if(l.add(this,h.data,h.metadata))return;_="Unexpected fragment size"}else{this.stream.disconnect(this);var g=l.reassemble(this,h.data,h.metadata);try{this.cancellable=this.handler(g,this)}catch{}return}else _="Unexpected frame type [".concat(h.type,"]");this.done=!0,h.type!=s.FrameTypes.CANCEL&&h.type!=s.FrameTypes.ERROR&&this.stream.send({type:s.FrameTypes.ERROR,streamId:this.streamId,flags:s.Flags.NONE,code:r.ErrorCodes.CANCELED,message:_}),this.stream.disconnect(this),l.cancel(this)},p.prototype.close=function(h){var _;if(this.done){console.warn("Trying to close for the second time. ".concat(h?"Dropping error [".concat(h,"]."):""));return}this.done=!0,l.cancel(this),(_=this.cancellable)===null||_===void 0||_.cancel()},p.prototype.onError=function(h){},p.prototype.onComplete=function(){},p})();return ks.RequestFnfResponderStream=f,ks}function Une(){if(mG)return Os;mG=1;var n=Os&&Os.__createBinding||(Object.create?(function(p,h,_,g){g===void 0&&(g=_),Object.defineProperty(p,g,{enumerable:!0,get:function(){return h[_]}})}):(function(p,h,_,g){g===void 0&&(g=_),p[g]=h[_]})),e=Os&&Os.__setModuleDefault||(Object.create?(function(p,h){Object.defineProperty(p,"default",{enumerable:!0,value:h})}):function(p,h){p.default=h}),t=Os&&Os.__importStar||function(p){if(p&&p.__esModule)return p;var h={};if(p!=null)for(var _ in p)_!=="default"&&Object.prototype.hasOwnProperty.call(p,_)&&n(h,p,_);return e(h,p),h},i=Os&&Os.__values||function(p){var h=typeof Symbol=="function"&&Symbol.iterator,_=h&&p[h],g=0;if(_)return _.call(p);if(p&&typeof p.length=="number")return{next:function(){return p&&g>=p.length&&(p=void 0),{value:p&&p[g++],done:!p}}};throw new TypeError(h?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(Os,"__esModule",{value:!0}),Os.RequestResponseResponderStream=Os.RequestResponseRequesterStream=void 0;var r=ep(),a=UR(),s=Hu(),l=t(zR()),c=(function(){function p(h,_,g,E){this.payload=h,this.receiver=_,this.fragmentSize=g,this.leaseManager=E,this.streamType=s.FrameTypes.REQUEST_RESPONSE}return p.prototype.handleReady=function(h,_){var g,E;if(this.done)return!1;if(this.streamId=h,this.stream=_,_.connect(this),(0,a.isFragmentable)(this.payload,this.fragmentSize,s.FrameTypes.REQUEST_RESPONSE))try{for(var x=i((0,a.fragment)(h,this.payload,this.fragmentSize,s.FrameTypes.REQUEST_RESPONSE)),S=x.next();!S.done;S=x.next()){var v=S.value;this.stream.send(v)}}catch(M){g={error:M}}finally{try{S&&!S.done&&(E=x.return)&&E.call(x)}finally{if(g)throw g.error}}else this.stream.send({type:s.FrameTypes.REQUEST_RESPONSE,data:this.payload.data,metadata:this.payload.metadata,flags:this.payload.metadata?s.Flags.METADATA:0,streamId:h});return this.hasExtension&&this.stream.send({type:s.FrameTypes.EXT,streamId:h,extendedContent:this.extendedContent,extendedType:this.extendedType,flags:this.flags}),!0},p.prototype.handleReject=function(h){this.done||(this.done=!0,this.receiver.onError(h))},p.prototype.handle=function(h){var _,g=h.type;switch(g){case s.FrameTypes.PAYLOAD:{var E=s.Flags.hasComplete(h.flags),x=s.Flags.hasNext(h.flags);if(E||!s.Flags.hasFollows(h.flags)){if(this.done=!0,this.stream.disconnect(this),!x){this.receiver.onComplete();return}var S=this.hasFragments?l.reassemble(this,h.data,h.metadata):{data:h.data,metadata:h.metadata};this.receiver.onNext(S,!0);return}if(!l.add(this,h.data,h.metadata)){_="Unexpected fragment size";break}return}case s.FrameTypes.ERROR:{this.done=!0,this.stream.disconnect(this),l.cancel(this),this.receiver.onError(new r.RSocketError(h.code,h.message));return}case s.FrameTypes.EXT:{if(this.hasFragments){_="Unexpected frame type [".concat(g,"] during reassembly");break}this.receiver.onExtension(h.extendedType,h.extendedContent,s.Flags.hasIgnore(h.flags));return}default:_="Unexpected frame type [".concat(g,"]")}this.close(new r.RSocketError(r.ErrorCodes.CANCELED,_)),this.stream.send({type:s.FrameTypes.CANCEL,streamId:this.streamId,flags:s.Flags.NONE}),this.stream.disconnect(this)},p.prototype.cancel=function(){var h;if(!this.done){if(this.done=!0,!this.streamId){(h=this.leaseManager)===null||h===void 0||h.cancelRequest(this);return}this.stream.send({type:s.FrameTypes.CANCEL,flags:s.Flags.NONE,streamId:this.streamId}),this.stream.disconnect(this),l.cancel(this)}},p.prototype.onExtension=function(h,_,g){if(!this.done){if(!this.streamId){this.hasExtension=!0,this.extendedType=h,this.extendedContent=_,this.flags=g?s.Flags.IGNORE:s.Flags.NONE;return}this.stream.send({streamId:this.streamId,type:s.FrameTypes.EXT,extendedType:h,extendedContent:_,flags:g?s.Flags.IGNORE:s.Flags.NONE})}},p.prototype.close=function(h){this.done||(this.done=!0,l.cancel(this),h?this.receiver.onError(h):this.receiver.onComplete())},p})();Os.RequestResponseRequesterStream=c;var f=(function(){function p(h,_,g,E,x){if(this.streamId=h,this.stream=_,this.fragmentSize=g,this.handler=E,this.streamType=s.FrameTypes.REQUEST_RESPONSE,_.connect(this),s.Flags.hasFollows(x.flags)){l.add(this,x.data,x.metadata);return}var S={data:x.data,metadata:x.metadata};try{this.receiver=E(S,this)}catch(v){this.onError(v)}}return p.prototype.handle=function(h){var _,g;if(!this.receiver||this.hasFragments)if(h.type===s.FrameTypes.PAYLOAD)if(s.Flags.hasFollows(h.flags)){if(l.add(this,h.data,h.metadata))return;g="Unexpected fragment size"}else{var E=l.reassemble(this,h.data,h.metadata);try{this.receiver=this.handler(E,this)}catch(x){this.onError(x)}return}else g="Unexpected frame type [".concat(h.type,"] during reassembly");else if(h.type===s.FrameTypes.EXT){this.receiver.onExtension(h.extendedType,h.extendedContent,s.Flags.hasIgnore(h.flags));return}else g="Unexpected frame type [".concat(h.type,"]");this.done=!0,(_=this.receiver)===null||_===void 0||_.cancel(),h.type!==s.FrameTypes.CANCEL&&h.type!==s.FrameTypes.ERROR&&this.stream.send({type:s.FrameTypes.ERROR,flags:s.Flags.NONE,code:r.ErrorCodes.CANCELED,message:g,streamId:this.streamId}),this.stream.disconnect(this),l.cancel(this)},p.prototype.onError=function(h){if(this.done){console.warn("Trying to error for the second time. ".concat(h?"Dropping error [".concat(h,"]."):""));return}this.done=!0,this.stream.send({type:s.FrameTypes.ERROR,flags:s.Flags.NONE,code:h instanceof r.RSocketError?h.code:r.ErrorCodes.APPLICATION_ERROR,message:h.message,streamId:this.streamId}),this.stream.disconnect(this)},p.prototype.onNext=function(h,_){var g,E;if(!this.done){if(this.done=!0,(0,a.isFragmentable)(h,this.fragmentSize,s.FrameTypes.PAYLOAD))try{for(var x=i((0,a.fragment)(this.streamId,h,this.fragmentSize,s.FrameTypes.PAYLOAD,!0)),S=x.next();!S.done;S=x.next()){var v=S.value;this.stream.send(v)}}catch(M){g={error:M}}finally{try{S&&!S.done&&(E=x.return)&&E.call(x)}finally{if(g)throw g.error}}else this.stream.send({type:s.FrameTypes.PAYLOAD,flags:s.Flags.NEXT|s.Flags.COMPLETE|(h.metadata?s.Flags.METADATA:0),data:h.data,metadata:h.metadata,streamId:this.streamId});this.stream.disconnect(this)}},p.prototype.onComplete=function(){this.done||(this.done=!0,this.stream.send({type:s.FrameTypes.PAYLOAD,flags:s.Flags.COMPLETE,streamId:this.streamId,data:null,metadata:null}),this.stream.disconnect(this))},p.prototype.onExtension=function(h,_,g){this.done||this.stream.send({type:s.FrameTypes.EXT,streamId:this.streamId,flags:g?s.Flags.IGNORE:s.Flags.NONE,extendedType:h,extendedContent:_})},p.prototype.close=function(h){var _;if(this.done){console.warn("Trying to close for the second time. ".concat(h?"Dropping error [".concat(h,"]."):""));return}l.cancel(this),(_=this.receiver)===null||_===void 0||_.cancel()},p})();return Os.RequestResponseResponderStream=f,Os}function zne(){if(_G)return Ds;_G=1;var n=Ds&&Ds.__createBinding||(Object.create?(function(p,h,_,g){g===void 0&&(g=_),Object.defineProperty(p,g,{enumerable:!0,get:function(){return h[_]}})}):(function(p,h,_,g){g===void 0&&(g=_),p[g]=h[_]})),e=Ds&&Ds.__setModuleDefault||(Object.create?(function(p,h){Object.defineProperty(p,"default",{enumerable:!0,value:h})}):function(p,h){p.default=h}),t=Ds&&Ds.__importStar||function(p){if(p&&p.__esModule)return p;var h={};if(p!=null)for(var _ in p)_!=="default"&&Object.prototype.hasOwnProperty.call(p,_)&&n(h,p,_);return e(h,p),h},i=Ds&&Ds.__values||function(p){var h=typeof Symbol=="function"&&Symbol.iterator,_=h&&p[h],g=0;if(_)return _.call(p);if(p&&typeof p.length=="number")return{next:function(){return p&&g>=p.length&&(p=void 0),{value:p&&p[g++],done:!p}}};throw new TypeError(h?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(Ds,"__esModule",{value:!0}),Ds.RequestStreamResponderStream=Ds.RequestStreamRequesterStream=void 0;var r=ep(),a=UR(),s=Hu(),l=t(zR()),c=(function(){function p(h,_,g,E,x){this.payload=h,this.receiver=_,this.fragmentSize=g,this.initialRequestN=E,this.leaseManager=x,this.streamType=s.FrameTypes.REQUEST_STREAM}return p.prototype.handleReady=function(h,_){var g,E;if(this.done)return!1;if(this.streamId=h,this.stream=_,_.connect(this),(0,a.isFragmentable)(this.payload,this.fragmentSize,s.FrameTypes.REQUEST_STREAM))try{for(var x=i((0,a.fragmentWithRequestN)(h,this.payload,this.fragmentSize,s.FrameTypes.REQUEST_STREAM,this.initialRequestN)),S=x.next();!S.done;S=x.next()){var v=S.value;this.stream.send(v)}}catch(M){g={error:M}}finally{try{S&&!S.done&&(E=x.return)&&E.call(x)}finally{if(g)throw g.error}}else this.stream.send({type:s.FrameTypes.REQUEST_STREAM,data:this.payload.data,metadata:this.payload.metadata,requestN:this.initialRequestN,flags:this.payload.metadata!==void 0?s.Flags.METADATA:0,streamId:h});return this.hasExtension&&this.stream.send({type:s.FrameTypes.EXT,streamId:h,extendedContent:this.extendedContent,extendedType:this.extendedType,flags:this.flags}),!0},p.prototype.handleReject=function(h){this.done||(this.done=!0,this.receiver.onError(h))},p.prototype.handle=function(h){var _,g=h.type;switch(g){case s.FrameTypes.PAYLOAD:{var E=s.Flags.hasComplete(h.flags),x=s.Flags.hasNext(h.flags);if(E||!s.Flags.hasFollows(h.flags)){if(E&&(this.done=!0,this.stream.disconnect(this),!x)){this.receiver.onComplete();return}var S=this.hasFragments?l.reassemble(this,h.data,h.metadata):{data:h.data,metadata:h.metadata};this.receiver.onNext(S,E);return}if(!l.add(this,h.data,h.metadata)){_="Unexpected fragment size";break}return}case s.FrameTypes.ERROR:{this.done=!0,this.stream.disconnect(this),l.cancel(this),this.receiver.onError(new r.RSocketError(h.code,h.message));return}case s.FrameTypes.EXT:{if(this.hasFragments){_="Unexpected frame type [".concat(g,"] during reassembly");break}this.receiver.onExtension(h.extendedType,h.extendedContent,s.Flags.hasIgnore(h.flags));return}default:_="Unexpected frame type [".concat(g,"]")}this.close(new r.RSocketError(r.ErrorCodes.CANCELED,_)),this.stream.send({type:s.FrameTypes.CANCEL,streamId:this.streamId,flags:s.Flags.NONE}),this.stream.disconnect(this)},p.prototype.request=function(h){if(!this.done){if(!this.streamId){this.initialRequestN+=h;return}this.stream.send({type:s.FrameTypes.REQUEST_N,flags:s.Flags.NONE,requestN:h,streamId:this.streamId})}},p.prototype.cancel=function(){var h;if(!this.done){if(this.done=!0,!this.streamId){(h=this.leaseManager)===null||h===void 0||h.cancelRequest(this);return}this.stream.send({type:s.FrameTypes.CANCEL,flags:s.Flags.NONE,streamId:this.streamId}),this.stream.disconnect(this),l.cancel(this)}},p.prototype.onExtension=function(h,_,g){if(!this.done){if(!this.streamId){this.hasExtension=!0,this.extendedType=h,this.extendedContent=_,this.flags=g?s.Flags.IGNORE:s.Flags.NONE;return}this.stream.send({streamId:this.streamId,type:s.FrameTypes.EXT,extendedType:h,extendedContent:_,flags:g?s.Flags.IGNORE:s.Flags.NONE})}},p.prototype.close=function(h){this.done||(this.done=!0,l.cancel(this),h?this.receiver.onError(h):this.receiver.onComplete())},p})();Ds.RequestStreamRequesterStream=c;var f=(function(){function p(h,_,g,E,x){if(this.streamId=h,this.stream=_,this.fragmentSize=g,this.handler=E,this.streamType=s.FrameTypes.REQUEST_STREAM,_.connect(this),s.Flags.hasFollows(x.flags)){this.initialRequestN=x.requestN,l.add(this,x.data,x.metadata);return}var S={data:x.data,metadata:x.metadata};try{this.receiver=E(S,x.requestN,this)}catch(v){this.onError(v)}}return p.prototype.handle=function(h){var _,g;if(!this.receiver||this.hasFragments)if(h.type===s.FrameTypes.PAYLOAD)if(s.Flags.hasFollows(h.flags)){if(l.add(this,h.data,h.metadata))return;g="Unexpected frame size"}else{var E=l.reassemble(this,h.data,h.metadata);try{this.receiver=this.handler(E,this.initialRequestN,this)}catch(x){this.onError(x)}return}else g="Unexpected frame type [".concat(h.type,"] during reassembly");else if(h.type===s.FrameTypes.REQUEST_N){this.receiver.request(h.requestN);return}else if(h.type===s.FrameTypes.EXT){this.receiver.onExtension(h.extendedType,h.extendedContent,s.Flags.hasIgnore(h.flags));return}else g="Unexpected frame type [".concat(h.type,"]");this.done=!0,l.cancel(this),(_=this.receiver)===null||_===void 0||_.cancel(),h.type!==s.FrameTypes.CANCEL&&h.type!==s.FrameTypes.ERROR&&this.stream.send({type:s.FrameTypes.ERROR,flags:s.Flags.NONE,code:r.ErrorCodes.CANCELED,message:g,streamId:this.streamId}),this.stream.disconnect(this)},p.prototype.onError=function(h){if(this.done){console.warn("Trying to error for the second time. ".concat(h?"Dropping error [".concat(h,"]."):""));return}this.done=!0,this.stream.send({type:s.FrameTypes.ERROR,flags:s.Flags.NONE,code:h instanceof r.RSocketError?h.code:r.ErrorCodes.APPLICATION_ERROR,message:h.message,streamId:this.streamId}),this.stream.disconnect(this)},p.prototype.onNext=function(h,_){var g,E;if(!this.done){if(_&&(this.done=!0),(0,a.isFragmentable)(h,this.fragmentSize,s.FrameTypes.PAYLOAD))try{for(var x=i((0,a.fragment)(this.streamId,h,this.fragmentSize,s.FrameTypes.PAYLOAD,_)),S=x.next();!S.done;S=x.next()){var v=S.value;this.stream.send(v)}}catch(M){g={error:M}}finally{try{S&&!S.done&&(E=x.return)&&E.call(x)}finally{if(g)throw g.error}}else this.stream.send({type:s.FrameTypes.PAYLOAD,flags:s.Flags.NEXT|(_?s.Flags.COMPLETE:s.Flags.NONE)|(h.metadata?s.Flags.METADATA:s.Flags.NONE),data:h.data,metadata:h.metadata,streamId:this.streamId});_&&this.stream.disconnect(this)}},p.prototype.onComplete=function(){this.done||(this.done=!0,this.stream.send({type:s.FrameTypes.PAYLOAD,flags:s.Flags.COMPLETE,streamId:this.streamId,data:null,metadata:null}),this.stream.disconnect(this))},p.prototype.onExtension=function(h,_,g){this.done||this.stream.send({type:s.FrameTypes.EXT,streamId:this.streamId,flags:g?s.Flags.IGNORE:s.Flags.NONE,extendedType:h,extendedContent:_})},p.prototype.close=function(h){var _;if(this.done){console.warn("Trying to close for the second time. ".concat(h?"Dropping error [".concat(h,"]."):""));return}l.cancel(this),(_=this.receiver)===null||_===void 0||_.cancel()},p})();return Ds.RequestStreamResponderStream=f,Ds}function IG(){if(gG)return Ls;gG=1,Object.defineProperty(Ls,"__esModule",{value:!0}),Ls.KeepAliveSender=Ls.KeepAliveHandler=Ls.DefaultConnectionFrameHandler=Ls.DefaultStreamRequestHandler=Ls.LeaseHandler=Ls.RSocketRequester=void 0;var n=ep(),e=Hu(),t=Fne(),i=Pne(),r=Une(),a=zne(),s=(function(){function E(x,S,v){this.connection=x,this.fragmentSize=S,this.leaseManager=v}return E.prototype.fireAndForget=function(x,S){var v=new i.RequestFnFRequesterStream(x,S,this.fragmentSize,this.leaseManager);return this.leaseManager?this.leaseManager.requestLease(v):this.connection.multiplexerDemultiplexer.createRequestStream(v),v},E.prototype.requestResponse=function(x,S){var v=new r.RequestResponseRequesterStream(x,S,this.fragmentSize,this.leaseManager);return this.leaseManager?this.leaseManager.requestLease(v):this.connection.multiplexerDemultiplexer.createRequestStream(v),v},E.prototype.requestStream=function(x,S,v){var M=new a.RequestStreamRequesterStream(x,v,this.fragmentSize,S,this.leaseManager);return this.leaseManager?this.leaseManager.requestLease(M):this.connection.multiplexerDemultiplexer.createRequestStream(M),M},E.prototype.requestChannel=function(x,S,v,M){var O=new t.RequestChannelRequesterStream(x,v,M,this.fragmentSize,S,this.leaseManager);return this.leaseManager?this.leaseManager.requestLease(O):this.connection.multiplexerDemultiplexer.createRequestStream(O),O},E.prototype.metadataPush=function(x,S){throw new Error("Method not implemented.")},E.prototype.close=function(x){this.connection.close(x)},E.prototype.onClose=function(x){this.connection.onClose(x)},E})();Ls.RSocketRequester=s;var l=(function(){function E(x,S){this.maxPendingRequests=x,this.multiplexer=S,this.pendingRequests=[],this.expirationTime=0,this.availableLease=0}return E.prototype.handle=function(x){for(this.expirationTime=x.ttl+Date.now(),this.availableLease=x.requestCount;this.availableLease>0&&this.pendingRequests.length>0;){var S=this.pendingRequests.shift();this.availableLease--,this.multiplexer.createRequestStream(S)}},E.prototype.requestLease=function(x){var S=this.availableLease;if(S>0&&Date.now()<this.expirationTime){this.availableLease=S-1,this.multiplexer.createRequestStream(x);return}if(this.pendingRequests.length>=this.maxPendingRequests){x.handleReject(new n.RSocketError(n.ErrorCodes.REJECTED,"No available lease given"));return}this.pendingRequests.push(x)},E.prototype.cancelRequest=function(x){var S=this.pendingRequests.indexOf(x);S>-1&&this.pendingRequests.splice(S,1)},E})();Ls.LeaseHandler=l;var c=(function(){function E(x,S){this.rsocket=x,this.fragmentSize=S}return E.prototype.handle=function(x,S){switch(x.type){case e.FrameTypes.REQUEST_FNF:this.rsocket.fireAndForget&&new i.RequestFnfResponderStream(x.streamId,S,this.rsocket.fireAndForget.bind(this.rsocket),x);return;case e.FrameTypes.REQUEST_RESPONSE:if(this.rsocket.requestResponse){new r.RequestResponseResponderStream(x.streamId,S,this.fragmentSize,this.rsocket.requestResponse.bind(this.rsocket),x);return}this.rejectRequest(x.streamId,S);return;case e.FrameTypes.REQUEST_STREAM:if(this.rsocket.requestStream){new a.RequestStreamResponderStream(x.streamId,S,this.fragmentSize,this.rsocket.requestStream.bind(this.rsocket),x);return}this.rejectRequest(x.streamId,S);return;case e.FrameTypes.REQUEST_CHANNEL:if(this.rsocket.requestChannel){new t.RequestChannelResponderStream(x.streamId,S,this.fragmentSize,this.rsocket.requestChannel.bind(this.rsocket),x);return}this.rejectRequest(x.streamId,S);return}},E.prototype.rejectRequest=function(x,S){S.send({type:e.FrameTypes.ERROR,streamId:x,flags:e.Flags.NONE,code:n.ErrorCodes.REJECTED,message:"No available handler found"})},E.prototype.close=function(){},E})();Ls.DefaultStreamRequestHandler=c;var f=(function(){function E(x,S,v,M,O){this.connection=x,this.keepAliveHandler=S,this.keepAliveSender=v,this.leaseHandler=M,this.rsocket=O}return E.prototype.handle=function(x){switch(x.type){case e.FrameTypes.KEEPALIVE:this.keepAliveHandler.handle(x);return;case e.FrameTypes.LEASE:if(this.leaseHandler){this.leaseHandler.handle(x);return}return;case e.FrameTypes.ERROR:this.connection.close(new n.RSocketError(x.code,x.message));return;case e.FrameTypes.METADATA_PUSH:this.rsocket.metadataPush;return;default:this.connection.multiplexerDemultiplexer.connectionOutbound.send({type:e.FrameTypes.ERROR,streamId:0,flags:e.Flags.NONE,message:"Received unknown frame type",code:n.ErrorCodes.CONNECTION_ERROR})}},E.prototype.pause=function(){var x;this.keepAliveHandler.pause(),(x=this.keepAliveSender)===null||x===void 0||x.pause()},E.prototype.resume=function(){var x;this.keepAliveHandler.start(),(x=this.keepAliveSender)===null||x===void 0||x.start()},E.prototype.close=function(x){var S;this.keepAliveHandler.close(),(S=this.rsocket.close)===null||S===void 0||S.call(this.rsocket,x)},E})();Ls.DefaultConnectionFrameHandler=f;var p;(function(E){E[E.Paused=0]="Paused",E[E.Running=1]="Running",E[E.Closed=2]="Closed"})(p||(p={}));var h=(function(){function E(x,S){this.connection=x,this.keepAliveTimeoutDuration=S,this.state=p.Paused,this.outbound=x.multiplexerDemultiplexer.connectionOutbound}return E.prototype.handle=function(x){this.keepAliveLastReceivedMillis=Date.now(),e.Flags.hasRespond(x.flags)&&this.outbound.send({type:e.FrameTypes.KEEPALIVE,streamId:0,data:x.data,flags:x.flags^e.Flags.RESPOND,lastReceivedPosition:0})},E.prototype.start=function(){this.state===p.Paused&&(this.keepAliveLastReceivedMillis=Date.now(),this.state=p.Running,this.activeTimeout=setTimeout(this.timeoutCheck.bind(this),this.keepAliveTimeoutDuration))},E.prototype.pause=function(){this.state===p.Running&&(this.state=p.Paused,clearTimeout(this.activeTimeout))},E.prototype.close=function(){this.state=p.Closed,clearTimeout(this.activeTimeout)},E.prototype.timeoutCheck=function(){var x=Date.now(),S=x-this.keepAliveLastReceivedMillis;S>=this.keepAliveTimeoutDuration?this.connection.close(new Error("No keep-alive acks for ".concat(this.keepAliveTimeoutDuration," millis"))):this.activeTimeout=setTimeout(this.timeoutCheck.bind(this),Math.max(100,this.keepAliveTimeoutDuration-S))},E})();Ls.KeepAliveHandler=h;var _;(function(E){E[E.Paused=0]="Paused",E[E.Running=1]="Running",E[E.Closed=2]="Closed"})(_||(_={}));var g=(function(){function E(x,S){this.outbound=x,this.keepAlivePeriodDuration=S,this.state=_.Paused}return E.prototype.sendKeepAlive=function(){this.outbound.send({type:e.FrameTypes.KEEPALIVE,streamId:0,data:void 0,flags:e.Flags.RESPOND,lastReceivedPosition:0})},E.prototype.start=function(){this.state===_.Paused&&(this.state=_.Running,this.activeInterval=setInterval(this.sendKeepAlive.bind(this),this.keepAlivePeriodDuration))},E.prototype.pause=function(){this.state===_.Running&&(this.state=_.Paused,clearInterval(this.activeInterval))},E.prototype.close=function(){this.state=_.Closed,clearInterval(this.activeInterval)},E})();return Ls.KeepAliveSender=g,Ls}function LG(){if(vG)return z_;vG=1;var n=z_&&z_.__values||function(r){var a=typeof Symbol=="function"&&Symbol.iterator,s=a&&r[a],l=0;if(s)return s.call(r);if(r&&typeof r.length=="number")return{next:function(){return r&&l>=r.length&&(r=void 0),{value:r&&r[l++],done:!r}}};throw new TypeError(a?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(z_,"__esModule",{value:!0}),z_.FrameStore=void 0;var e=DT(),t=AG(),i=(function(){function r(){this.storedFrames=[],this._lastReceivedFramePosition=0,this._firstAvailableFramePosition=0,this._lastSentFramePosition=0}return Object.defineProperty(r.prototype,"lastReceivedFramePosition",{get:function(){return this._lastReceivedFramePosition},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"firstAvailableFramePosition",{get:function(){return this._firstAvailableFramePosition},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"lastSentFramePosition",{get:function(){return this._lastSentFramePosition},enumerable:!1,configurable:!0}),r.prototype.store=function(a){this._lastSentFramePosition+=(0,t.sizeOfFrame)(a),this.storedFrames.push(a)},r.prototype.record=function(a){this._lastReceivedFramePosition+=(0,t.sizeOfFrame)(a)},r.prototype.dropTo=function(a){for(var s=a-this._firstAvailableFramePosition;s>0&&this.storedFrames.length>0;){var l=this.storedFrames.shift();s-=(0,t.sizeOfFrame)(l)}if(s!==0)throw new e.RSocketError(e.ErrorCodes.CONNECTION_ERROR,"State inconsistency. Expected bytes to drop ".concat(a-this._firstAvailableFramePosition," but actual ").concat(s));this._firstAvailableFramePosition=a},r.prototype.drain=function(a){var s,l;try{for(var c=n(this.storedFrames),f=c.next();!f.done;f=c.next()){var p=f.value;a(p)}}catch(h){s={error:h}}finally{try{f&&!f.done&&(l=c.return)&&l.call(c)}finally{if(s)throw s.error}}},r})();return z_.FrameStore=i,z_}function qne(){if(yG)return sd;yG=1;var n=sd&&sd.__awaiter||function(l,c,f,p){function h(_){return _ instanceof f?_:new f(function(g){g(_)})}return new(f||(f=Promise))(function(_,g){function E(v){try{S(p.next(v))}catch(M){g(M)}}function x(v){try{S(p.throw(v))}catch(M){g(M)}}function S(v){v.done?_(v.value):h(v.value).then(E,x)}S((p=p.apply(l,c||[])).next())})},e=sd&&sd.__generator||function(l,c){var f={label:0,sent:function(){if(_[0]&1)throw _[1];return _[1]},trys:[],ops:[]},p,h,_,g;return g={next:E(0),throw:E(1),return:E(2)},typeof Symbol=="function"&&(g[Symbol.iterator]=function(){return this}),g;function E(S){return function(v){return x([S,v])}}function x(S){if(p)throw new TypeError("Generator is already executing.");for(;f;)try{if(p=1,h&&(_=S[0]&2?h.return:S[0]?h.throw||((_=h.return)&&_.call(h),0):h.next)&&!(_=_.call(h,S[1])).done)return _;switch(h=0,_&&(S=[S[0]&2,_.value]),S[0]){case 0:case 1:_=S;break;case 4:return f.label++,{value:S[1],done:!1};case 5:f.label++,h=S[1],S=[0];continue;case 7:S=f.ops.pop(),f.trys.pop();continue;default:if(_=f.trys,!(_=_.length>0&&_[_.length-1])&&(S[0]===6||S[0]===2)){f=0;continue}if(S[0]===3&&(!_||S[1]>_[0]&&S[1]<_[3])){f.label=S[1];break}if(S[0]===6&&f.label<_[1]){f.label=_[1],_=S;break}if(_&&f.label<_[2]){f.label=_[2],f.ops.push(S);break}_[2]&&f.ops.pop(),f.trys.pop();continue}S=c.call(l,f)}catch(v){S=[6,v],h=0}finally{p=_=0}if(S[0]&5)throw S[1];return{value:S[0]?S[1]:void 0,done:!0}}};Object.defineProperty(sd,"__esModule",{value:!0}),sd.RSocketConnector=void 0;var t=RG(),i=Hu(),r=IG(),a=LG(),s=(function(){function l(c){this.config=c}return l.prototype.connect=function(){var c,f,p,h,_,g,E,x,S,v,M,O,k,q,G,Q,H,Z,te,j;return n(this,void 0,void 0,function(){var he,ke,Me,ze,Ne,Ve,Je,Qe,st,We=this;return e(this,function(gt){switch(gt.label){case 0:return he=this.config,ke={type:i.FrameTypes.SETUP,dataMimeType:(f=(c=he.setup)===null||c===void 0?void 0:c.dataMimeType)!==null&&f!==void 0?f:"application/octet-stream",metadataMimeType:(h=(p=he.setup)===null||p===void 0?void 0:p.metadataMimeType)!==null&&h!==void 0?h:"application/octet-stream",keepAlive:(g=(_=he.setup)===null||_===void 0?void 0:_.keepAlive)!==null&&g!==void 0?g:6e4,lifetime:(x=(E=he.setup)===null||E===void 0?void 0:E.lifetime)!==null&&x!==void 0?x:3e5,metadata:(v=(S=he.setup)===null||S===void 0?void 0:S.payload)===null||v===void 0?void 0:v.metadata,data:(O=(M=he.setup)===null||M===void 0?void 0:M.payload)===null||O===void 0?void 0:O.data,resumeToken:(q=(k=he.resume)===null||k===void 0?void 0:k.tokenGenerator())!==null&&q!==void 0?q:null,streamId:0,majorVersion:1,minorVersion:0,flags:(!((Q=(G=he.setup)===null||G===void 0?void 0:G.payload)===null||Q===void 0)&&Q.metadata?i.Flags.METADATA:i.Flags.NONE)|(he.lease?i.Flags.LEASE:i.Flags.NONE)|(he.resume?i.Flags.RESUME_ENABLE:i.Flags.NONE)},[4,he.transport.connect(function(Et){return he.resume?new t.ResumableClientServerInputMultiplexerDemultiplexer(t.StreamIdGenerator.create(-1),Et,Et,new a.FrameStore,ke.resumeToken.toString(),function(jt,zt){return n(We,void 0,void 0,function(){var Mt,Xe,et;return e(this,function(yt){switch(yt.label){case 0:return Mt=function(Wt){return Wt.send({type:i.FrameTypes.RESUME,streamId:0,flags:i.Flags.NONE,clientPosition:zt.firstAvailableFramePosition,serverPosition:zt.lastReceivedFramePosition,majorVersion:ke.minorVersion,minorVersion:ke.majorVersion,resumeToken:ke.resumeToken}),new t.ResumeOkAwaitingResumableClientServerInputMultiplexerDemultiplexer(Wt,Wt,jt)},Xe=-1,et=function(){return Xe++,he.resume.reconnectFunction(Xe).then(function(){return he.transport.connect(Mt).catch(et)})},[4,et()];case 1:return yt.sent(),[2]}})})}):new t.ClientServerInputMultiplexerDemultiplexer(t.StreamIdGenerator.create(-1),Et,Et)})];case 1:return Me=gt.sent(),ze=new r.KeepAliveSender(Me.multiplexerDemultiplexer.connectionOutbound,ke.keepAlive),Ne=new r.KeepAliveHandler(Me,ke.lifetime),Ve=he.lease?new r.LeaseHandler((H=he.lease.maxPendingRequests)!==null&&H!==void 0?H:256,Me.multiplexerDemultiplexer):void 0,Je=(Z=he.responder)!==null&&Z!==void 0?Z:{},Qe=new r.DefaultConnectionFrameHandler(Me,Ne,ze,Ve,Je),st=new r.DefaultStreamRequestHandler(Je,0),Me.onClose(function(Et){ze.close(),Ne.close(),Qe.close(Et)}),Me.multiplexerDemultiplexer.connectionInbound(Qe),Me.multiplexerDemultiplexer.handleRequestStream(st),Me.multiplexerDemultiplexer.connectionOutbound.send(ke),Ne.start(),ze.start(),[2,new r.RSocketRequester(Me,(j=(te=he.fragmentation)===null||te===void 0?void 0:te.maxOutboundFragmentSize)!==null&&j!==void 0?j:0,Ve)]}})})},l})();return sd.RSocketConnector=s,sd}function Bne(){if(bG)return ud;bG=1;var n=ud&&ud.__awaiter||function(c,f,p,h){function _(g){return g instanceof p?g:new p(function(E){E(g)})}return new(p||(p=Promise))(function(g,E){function x(M){try{v(h.next(M))}catch(O){E(O)}}function S(M){try{v(h.throw(M))}catch(O){E(O)}}function v(M){M.done?g(M.value):_(M.value).then(x,S)}v((h=h.apply(c,f||[])).next())})},e=ud&&ud.__generator||function(c,f){var p={label:0,sent:function(){if(g[0]&1)throw g[1];return g[1]},trys:[],ops:[]},h,_,g,E;return E={next:x(0),throw:x(1),return:x(2)},typeof Symbol=="function"&&(E[Symbol.iterator]=function(){return this}),E;function x(v){return function(M){return S([v,M])}}function S(v){if(h)throw new TypeError("Generator is already executing.");for(;p;)try{if(h=1,_&&(g=v[0]&2?_.return:v[0]?_.throw||((g=_.return)&&g.call(_),0):_.next)&&!(g=g.call(_,v[1])).done)return g;switch(_=0,g&&(v=[v[0]&2,g.value]),v[0]){case 0:case 1:g=v;break;case 4:return p.label++,{value:v[1],done:!1};case 5:p.label++,_=v[1],v=[0];continue;case 7:v=p.ops.pop(),p.trys.pop();continue;default:if(g=p.trys,!(g=g.length>0&&g[g.length-1])&&(v[0]===6||v[0]===2)){p=0;continue}if(v[0]===3&&(!g||v[1]>g[0]&&v[1]<g[3])){p.label=v[1];break}if(v[0]===6&&p.label<g[1]){p.label=g[1],g=v;break}if(g&&p.label<g[2]){p.label=g[2],p.ops.push(v);break}g[2]&&p.ops.pop(),p.trys.pop();continue}v=f.call(c,p)}catch(M){v=[6,M],_=0}finally{h=g=0}if(v[0]&5)throw v[1];return{value:v[0]?v[1]:void 0,done:!0}}};Object.defineProperty(ud,"__esModule",{value:!0}),ud.RSocketServer=void 0;var t=RG(),i=ep(),r=Hu(),a=IG(),s=LG(),l=(function(){function c(f){var p,h;this.acceptor=f.acceptor,this.transport=f.transport,this.lease=f.lease,this.serverSideKeepAlive=f.serverSideKeepAlive,this.sessionStore=f.resume?{}:void 0,this.sessionTimeout=(h=(p=f.resume)===null||p===void 0?void 0:p.sessionTimeout)!==null&&h!==void 0?h:void 0}return c.prototype.bind=function(){return n(this,void 0,void 0,function(){var f=this;return e(this,function(p){switch(p.label){case 0:return[4,this.transport.bind(function(h,_){return n(f,void 0,void 0,function(){var g,E,E,x,S,v,M,O,k,q,G,Q,H,Z,te;return e(this,function(j){switch(j.label){case 0:switch(g=h.type,g){case r.FrameTypes.SETUP:return[3,1];case r.FrameTypes.RESUME:return[3,5]}return[3,6];case 1:return j.trys.push([1,3,,4]),this.lease&&!r.Flags.hasLease(h.flags)?(E=new i.RSocketError(i.ErrorCodes.REJECTED_SETUP,"Lease has to be enabled"),_.multiplexerDemultiplexer.connectionOutbound.send({type:r.FrameTypes.ERROR,streamId:0,flags:r.Flags.NONE,code:E.code,message:E.message}),_.close(E),[2]):r.Flags.hasLease(h.flags)&&!this.lease?(E=new i.RSocketError(i.ErrorCodes.REJECTED_SETUP,"Lease has to be disabled"),_.multiplexerDemultiplexer.connectionOutbound.send({type:r.FrameTypes.ERROR,streamId:0,flags:r.Flags.NONE,code:E.code,message:E.message}),_.close(E),[2]):(x=r.Flags.hasLease(h.flags)?new a.LeaseHandler((Q=this.lease.maxPendingRequests)!==null&&Q!==void 0?Q:256,_.multiplexerDemultiplexer):void 0,S=new a.RSocketRequester(_,(Z=(H=this.fragmentation)===null||H===void 0?void 0:H.maxOutboundFragmentSize)!==null&&Z!==void 0?Z:0,x),[4,this.acceptor.accept({data:h.data,dataMimeType:h.dataMimeType,metadata:h.metadata,metadataMimeType:h.metadataMimeType,flags:h.flags,keepAliveMaxLifetime:h.lifetime,keepAliveInterval:h.keepAlive,resumeToken:h.resumeToken},S)]);case 2:return v=j.sent(),M=new a.KeepAliveHandler(_,h.lifetime),O=this.serverSideKeepAlive?new a.KeepAliveSender(_.multiplexerDemultiplexer.connectionOutbound,h.keepAlive):void 0,k=new a.DefaultConnectionFrameHandler(_,M,O,x,v),q=new a.DefaultStreamRequestHandler(v,0),_.onClose(function(he){O?.close(),M.close(),k.close(he)}),_.multiplexerDemultiplexer.connectionInbound(k),_.multiplexerDemultiplexer.handleRequestStream(q),M.start(),O?.start(),[3,4];case 3:return G=j.sent(),_.multiplexerDemultiplexer.connectionOutbound.send({type:r.FrameTypes.ERROR,streamId:0,code:i.ErrorCodes.REJECTED_SETUP,message:(te=G.message)!==null&&te!==void 0?te:"",flags:r.Flags.NONE}),_.close(G instanceof i.RSocketError?G:new i.RSocketError(i.ErrorCodes.REJECTED_SETUP,G.message)),[3,4];case 4:return[2];case 5:return[2];case 6:_.multiplexerDemultiplexer.connectionOutbound.send({type:r.FrameTypes.ERROR,streamId:0,code:i.ErrorCodes.UNSUPPORTED_SETUP,message:"Unsupported setup",flags:r.Flags.NONE}),_.close(new i.RSocketError(i.ErrorCodes.UNSUPPORTED_SETUP)),j.label=7;case 7:return[2]}})})},function(h,_){if(h.type===r.FrameTypes.RESUME){if(f.sessionStore){var g=f.sessionStore[h.resumeToken.toString()];if(!g){_.send({type:r.FrameTypes.ERROR,streamId:0,code:i.ErrorCodes.REJECTED_RESUME,message:"No session found for the given resume token",flags:r.Flags.NONE}),_.close();return}return g.resume(h,_,_),g}_.send({type:r.FrameTypes.ERROR,streamId:0,code:i.ErrorCodes.REJECTED_RESUME,message:"Resume is not enabled",flags:r.Flags.NONE}),_.close();return}else if(h.type===r.FrameTypes.SETUP&&r.Flags.hasResume(h.flags)){if(!f.sessionStore){var E=new i.RSocketError(i.ErrorCodes.REJECTED_SETUP,"No resume support");_.send({type:r.FrameTypes.ERROR,streamId:0,flags:r.Flags.NONE,code:E.code,message:E.message}),_.close(E);return}var x=new t.ResumableClientServerInputMultiplexerDemultiplexer(t.StreamIdGenerator.create(0),_,_,new s.FrameStore,h.resumeToken.toString(),f.sessionStore,f.sessionTimeout);return f.sessionStore[h.resumeToken.toString()]=x,x}return new t.ClientServerInputMultiplexerDemultiplexer(t.StreamIdGenerator.create(0),_,_)})];case 1:return[2,p.sent()]}})})},c})();return ud.RSocketServer=l,ud}function Hne(){return SG||(SG=1,Object.defineProperty(PF,"__esModule",{value:!0})),PF}function DT(){return EG||(EG=1,(function(n){var e=P_&&P_.__createBinding||(Object.create?(function(i,r,a,s){s===void 0&&(s=a),Object.defineProperty(i,s,{enumerable:!0,get:function(){return r[a]}})}):(function(i,r,a,s){s===void 0&&(s=a),i[s]=r[a]})),t=P_&&P_.__exportStar||function(i,r){for(var a in i)a!=="default"&&!Object.prototype.hasOwnProperty.call(r,a)&&e(r,i,a)};Object.defineProperty(n,"__esModule",{value:!0}),t(AG(),n),t(One(),n),t(CG(),n),t(ep(),n),t(Hu(),n),t(Dne(),n),t(qne(),n),t(Bne(),n),t(Hne(),n)})(P_)),P_}function Gne(){if(wG)return B_;wG=1;var n=B_&&B_.__extends||(function(){var i=function(r,a){return i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(s,l){s.__proto__=l}||function(s,l){for(var c in l)Object.prototype.hasOwnProperty.call(l,c)&&(s[c]=l[c])},i(r,a)};return function(r,a){if(typeof a!="function"&&a!==null)throw new TypeError("Class extends value "+String(a)+" is not a constructor or null");i(r,a);function s(){this.constructor=r}r.prototype=a===null?Object.create(a):(s.prototype=a.prototype,new s)}})();Object.defineProperty(B_,"__esModule",{value:!0}),B_.WebsocketDuplexConnection=void 0;var e=DT(),t=(function(i){n(r,i);function r(a,s,l){var c=i.call(this)||this;return c.websocket=a,c.deserializer=s,c.handleClosed=function(f){c.close(new Error(f.reason||"WebsocketDuplexConnection: Socket closed unexpectedly."))},c.handleError=function(f){c.close(f.error)},c.handleMessage=function(f){try{var p=Vi.Buffer.from(f.data),h=c.deserializer.deserializeFrame(p);c.multiplexerDemultiplexer.handle(h)}catch(_){c.close(_)}},a.addEventListener("close",c.handleClosed),a.addEventListener("error",c.handleError),a.addEventListener("message",c.handleMessage),c.multiplexerDemultiplexer=l(c),c}return Object.defineProperty(r.prototype,"availability",{get:function(){return this.done?0:1},enumerable:!1,configurable:!0}),r.prototype.close=function(a){if(this.done){i.prototype.close.call(this,a);return}this.websocket.removeEventListener("close",this.handleClosed),this.websocket.removeEventListener("error",this.handleError),this.websocket.removeEventListener("message",this.handleMessage),this.websocket.close(),delete this.websocket,i.prototype.close.call(this,a)},r.prototype.send=function(a){if(!this.done){var s=(0,e.serializeFrame)(a);this.websocket.send(s)}},r})(e.Deferred);return B_.WebsocketDuplexConnection=t,B_}function Wne(){if(xG)return OT;xG=1,Object.defineProperty(OT,"__esModule",{value:!0}),OT.WebsocketClientTransport=void 0;var n=DT(),e=Gne(),t=(function(){function i(r){var a;this.url=r.url,this.factory=(a=r.wsCreator)!==null&&a!==void 0?a:(function(s){return new WebSocket(s)})}return i.prototype.connect=function(r){var a=this;return new Promise(function(s,l){var c=a.factory(a.url);c.binaryType="arraybuffer";var f=function(){c.removeEventListener("open",f),c.removeEventListener("error",p),s(new e.WebsocketDuplexConnection(c,new n.Deserializer,r))},p=function(h){c.removeEventListener("open",f),c.removeEventListener("error",p),l(h.error)};c.addEventListener("open",f),c.addEventListener("error",p)})},i})();return OT.WebsocketClientTransport=t,OT}function jne(){return TG||(TG=1,(function(n){var e=q_&&q_.__createBinding||(Object.create?(function(i,r,a,s){s===void 0&&(s=a),Object.defineProperty(i,s,{enumerable:!0,get:function(){return r[a]}})}):(function(i,r,a,s){s===void 0&&(s=a),i[s]=r[a]})),t=q_&&q_.__exportStar||function(i,r){for(var a in i)a!=="default"&&!Object.prototype.hasOwnProperty.call(r,a)&&e(r,i,a)};Object.defineProperty(n,"__esModule",{value:!0}),t(Wne(),n)})(q_)),q_}var kF,LT,eG,PR,tG,nG,Vi,iG,P_,NT,OF,rG,aG,DF,sG,U_,oG,kT,lG,FF,uG,sd,od,cG,Ls,Ns,Bu,fG,ld,dG,hG,ks,pG,Os,mG,Ds,_G,gG,z_,vG,yG,ud,bG,PF,SG,EG,Vne,q_,OT,B_,wG,xG,TG,Qne,Xne,Yne,Kne,MG,Zne,UF,kG=Da(()=>{kF={},LT={};PR={};Vi=Nne(),iG={done:!0,value:void 0};P_={},NT={},OF={};DF={};U_={};kT={};FF={};sd={},od={};Ls={},Ns={},Bu={};ld={};ks={};Os={};Ds={};z_={};ud={};PF={};Vne=DT(),q_={},OT={},B_={};Qne=jne(),Xne=10,Yne=5,Kne=2e4,MG=3e4,Zne=9e4,UF=class{#n;constructor(e){this.#n=e}async webSocketSyncStream({remote:e,buffered:t,request:i,abortSignal:r,requestPayload:a}){let s="application/json",l=i.userAgent;function c(H){return Vi.Buffer.from(JSON.stringify(H))}let f=t?10:1,p=null,h,_=null,g=!1,E=new this.#n.EventQueue({eventDelivered:()=>{E.countOutstandingEvents<=Yne&&(g=!1,q())}}),x=!1,S=!1,v=f,M=null,O=()=>{x||(x=!0,clearTimeout(h),p&&p.close(),_&&_.close(),E.notify(null))};function k(H){E.notify(H),E.countOutstandingEvents>=Xne&&(g=!0)}function q(){let H=f-v;!g&&H>0&&(M?.request(H),v=f)}if(r.aborted)throw new this.#n.AbortOperation("Connection request aborted");r.addEventListener("abort",O);let G=()=>{clearTimeout(h),h=setTimeout(()=>{e.logger.log({level:this.#n.LogLevels.error,message:`No data received on WebSocket in ${MG}ms, closing connection.`}),O()},MG)};G();let Q=new Vne.RSocketConnector({transport:new Qne.WebsocketClientTransport({url:i.url,wsCreator:H=>{let Z=p=e.createSocket(H);return Z.addEventListener("message",()=>{G()}),Z}}),setup:{keepAlive:Kne,lifetime:Zne,dataMimeType:s,metadataMimeType:s,payload:{data:null,metadata:c({token:i.headers.Authorization,user_agent:l})}}});try{_=await Q.connect(),p=null}catch(H){throw e.logger.log({level:this.#n.LogLevels.error,message:"Failed to connect WebSocket",error:H}),O(),H}return G(),_.onClose(()=>_=null),await new Promise((H,Z)=>{let te={next:async()=>{if(x)return iG;let j=await E.waitForEvent(r);return x?iG:kne(j)}};M=_.requestStream({data:c(a),metadata:c({path:i.path})},f,{onError:j=>{j.message.includes("PSYNC_")?j.message.includes("PSYNC_S21")&&e.invalidateCredentials():j.message!=="Closed. "&&e.invalidateCredentials(),j.message!=="Closed. "&&e.logger.log({level:this.#n.LogLevels.error,message:"RSocket error",error:j}),O(),S||Z(j)},onNext:j=>{S||(S=!0,H(te));let{data:he}=j;he&&k(he),v--,q()},onComplete:()=>{O()},onExtension:()=>{}})})}}});var mI=ci(tr(),1),tE=mI.default.createContext(null),Sc=()=>mI.default.useContext(tE);var I9=ci(tr(),1);var Jt={trace:10,debug:20,info:30,warn:40,error:50};function _I(n){let{prefix:e="PowerSync",minLevel:t=Jt.info}=n??{};return{prefix:e,minLevel:t,log({level:i,message:r,error:a}){if(i<this.minLevel)return;let s=console.log;i>=Jt.error?s=console.error:i>=Jt.warn?s=console.warn:i>=Jt.info&&(s=console.info);let l=`[${e}]: ${r}`;a?s(l,a):s(l)}}}var ym;(function(n){n.TEXT="TEXT",n.INTEGER="INTEGER",n.REAL="REAL"})(ym||(ym={}));var y9={type:ym.TEXT},b9={type:ym.INTEGER},S9={type:ym.REAL},$n={text:y9,integer:b9,real:S9},s3=class{options;constructor(e){this.options=e}get name(){return this.options.name}get type(){return this.options.type}toJSON(){return{name:this.name,type:this.type}}};var E9={ascending:!0},kv=class n{options;static createAscending(e){return new n({name:e,ascending:!0})}constructor(e){this.options={...E9,...e}}get name(){return this.options.name}get ascending(){return this.options.ascending}toJSON(e){return{name:this.name,ascending:this.ascending,type:e.columns.find(t=>t.name===this.name)?.type??ym.TEXT}}};var w9={columns:[]},o3=class n{options;static createAscending(e,t){return new n({...e,columns:t.map(i=>kv.createAscending(i))})}constructor(e){this.options=e,this.options={...w9,...e}}get name(){return this.options.name}get columns(){return this.options.columns??[]}toJSON(e){return{name:this.name,columns:this.columns.map(t=>t.toJSON(e))}}};function l3(n){let e=n.trackPrevious;return{local_only:n.localOnly,insert_only:n.insertOnly,include_old:e&&(e.columns??!0),include_old_only_when_changed:typeof e=="object"&&e.onlyWhenChanged==!0,include_metadata:n.trackMetadata,ignore_empty_update:n.ignoreEmptyUpdates}}var hP=1999,nE={indexes:[],insertOnly:!1,localOnly:!1,trackPrevious:!1,trackMetadata:!1,ignoreEmptyUpdates:!1},Ov=/["'%,.#\s[\]]/,u3=class{options;constructor(e){this.options=e,this.applyDefaultOptions()}get name(){return this.options.name}get viewNameOverride(){return this.options.viewName}get viewName(){return this.viewNameOverride??this.name}get columns(){return this.options.columns}get indexes(){return this.options.indexes??[]}get localOnly(){return this.options.localOnly}get insertOnly(){return this.options.insertOnly}get trackPrevious(){return this.options.trackPrevious}get trackMetadata(){return this.options.trackMetadata}get ignoreEmptyUpdates(){return this.options.ignoreEmptyUpdates}get internalName(){return this.options.localOnly?`ps_data_local__${this.name}`:`ps_data__${this.name}`}get validName(){return!(Ov.test(this.name)||this.viewNameOverride!=null&&Ov.test(this.viewNameOverride))}validate(){if(Ov.test(this.name))throw new Error(`Invalid characters in table name: ${this.name}`);if(this.viewNameOverride&&Ov.test(this.viewNameOverride))throw new Error(`Invalid characters in view name: ${this.viewNameOverride}`);if(this.columns.length>hP)throw new Error(`Table has too many columns. The maximum number of columns is ${hP}.`);if(this.trackMetadata&&this.localOnly)throw new Error("Can't include metadata for local-only tables.");if(this.trackPrevious!=!1&&this.localOnly)throw new Error("Can't include old values for local-only tables.");let e=new Set;e.add("id");for(let i of this.columns){let{name:r}=i;if(i.name==="id")throw new Error("An id column is automatically added, custom id columns are not supported");if(e.has(r))throw new Error(`Duplicate column ${r}`);if(Ov.test(r))throw new Error(`Invalid characters in column name: ${i.name}`);e.add(r)}let t=new Set;for(let i of this.indexes){if(t.has(i.name))throw new Error(`Duplicate index ${i.name}`);if(Ov.test(i.name))throw new Error(`Invalid characters in index name: ${i.name}`);for(let r of i.columns)if(!e.has(r.name))throw new Error(`Column ${r.name} not found for index ${i.name}`);t.add(i.name)}}toJSON(){return{name:this.name,view_name:this.viewName,columns:this.columns.map(e=>e.toJSON()),indexes:this.indexes.map(e=>e.toJSON(this)),...l3(this)}}applyDefaultOptions(){this.options.insertOnly??=nE.insertOnly,this.options.localOnly??=nE.localOnly,this.options.trackPrevious??=nE.trackPrevious,this.options.trackMetadata??=nE.trackMetadata,this.options.ignoreEmptyUpdates??=nE.ignoreEmptyUpdates}},jd=class n extends u3{_mappedColumns;static createLocalOnly(e,t){return new n(e,{localOnly:!0,insertOnly:!1,...t})}static createInsertOnly(e,t){return new n(e,{localOnly:!1,insertOnly:!0,...t})}constructor(e,t){super(n.optionsFromColumns(e,t)),this._mappedColumns=e}copyWithName(e){return new u3({...this.options,name:e})}static optionsFromColumns(e,t){let i=Object.entries(e).map(([a,s])=>new s3({name:a,type:s.type})),r=Object.entries(t?.indexes??{}).map(([a,s])=>new o3({name:a,columns:s.map(l=>typeof l=="string"?new kv({name:l.replace(/^-/,""),ascending:!l.startsWith("-")}):l)}));return{name:"",columns:i,indexes:r,viewName:t?.viewName,insertOnly:t?.insertOnly,localOnly:t?.localOnly,trackPrevious:t?.trackPrevious,trackMetadata:t?.trackMetadata,ignoreEmptyUpdates:t?.ignoreEmptyUpdates}}};var Dv;(function(n){n[n.QUEUED_UPLOAD=0]="QUEUED_UPLOAD",n[n.QUEUED_DOWNLOAD=1]="QUEUED_DOWNLOAD",n[n.QUEUED_DELETE=2]="QUEUED_DELETE",n[n.SYNCED=3]="SYNCED",n[n.ARCHIVED=4]="ARCHIVED"})(Dv||(Dv={}));var xie={filename:$n.text,local_uri:$n.text,timestamp:$n.integer,size:$n.integer,media_type:$n.text,state:$n.integer,has_synced:$n.integer,meta_data:$n.text};var pP;(function(n){n.UTF8="utf8",n.Base64="base64"})(pP||(pP={}));var Fv=class{crud;haveMore;complete;constructor(e,t,i){this.crud=e,this.haveMore=t,this.complete=i}};var gI;(function(n){n.PUT="PUT",n.PATCH="PATCH",n.DELETE="DELETE"})(gI||(gI={}));var c3=class extends Fv{crud;complete;transactionId;constructor(e,t,i){super(e,!1,t),this.crud=e,this.complete=t,this.transactionId=i}};var Qd;(function(n){n.HTTP="http",n.WEB_SOCKET="web-socket"})(Qd||(Qd={}));var Xd;(function(n){n.Buffered="buffered",n.Sequential="sequential"})(Xd||(Xd={}));var iE=class{count;size;constructor(e,t=null){this.count=e,this.size=t}toString(){return this.size==null?`UploadQueueStats<count:${this.count}>`:`UploadQueueStats<count: $count size: ${this.size/1024}kB>`}};var Gr=class{listeners=new Set;constructor(){}dispose(){this.listeners.clear()}registerListener(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}iterateListeners(e){for(let t of this.listeners)e(t)}async iterateAsyncListeners(e){for(let t of Array.from(this.listeners.values()))await e(t)}};function mP(n,e){let t={};return n.forEach((i,r)=>t[i]=e[r]),t}function _P(n){let{insertId:e,rowsAffected:t,columnNames:i,rawRows:r}=n,a;function s(){return a||(a=r.map(c=>mP(i,c)))}function l(c){return a?a[c]:mP(i,r[c])}return{insertId:e,rowsAffected:t,get array(){return s()},rows:{length:r.length,get _array(){return s()},item:l},[Symbol.iterator](){let c=0;return{next:function(){if(c>=r.length)return{done:!0,value:void 0};let f=l(c);return c++,{done:!1,value:f}}}}}}function f3(n){return{...n,array:[],[Symbol.iterator](){return{next(){return{done:!0,value:void 0}}}}}}var bm=class{async getAll(e,t){let i=await this.execute(e,t);return Array.from(i)}async getOptional(e,t){let{array:i}=await this.execute(e,t);return i.length>0?i[0]:null}async get(e,t){let i=await this.getOptional(e,t);if(i==null)throw new Error("Result set is empty");return i}async execute(e,t){let i=await this.executeRaw(e,t);return _P(i)}async executeBatch(e,t=[]){let i,r=0;for(let a of t){let s=await this.execute(e,a);i=s.insertId,r+=s.rowsAffected??0}return f3({rowsAffected:r,insertId:i})}},vf=class extends Gr{readTransaction(e,t){return this.readLock(i=>d3.runWith(i,e),t)}writeTransaction(e,t){return this.writeLock(i=>d3.runWith(i,e),t)}getAll(e,t){return this.readLock(i=>i.getAll(e,t))}getOptional(e,t){return this.readLock(i=>i.getOptional(e,t))}get(e,t){return this.readLock(i=>i.get(e,t))}execute(e,t){return this.writeLock(i=>i.execute(e,t))}executeRaw(e,t){return this.writeLock(i=>i.executeRaw(e,t))}executeBatch(e,t){return this.writeTransaction(i=>i.executeBatch(e,t))}},d3=class n extends bm{inner;finalized=!1;constructor(e){super(),this.inner=e}async commit(){this.finalized||(this.finalized=!0,await this.inner.execute("COMMIT"))}async rollback(){this.finalized||(this.finalized=!0,await this.inner.execute("ROLLBACK"))}execute(e,t){return this.inner.execute(e,t)}executeRaw(e,t){return this.inner.executeRaw(e,t)}executeBatch(e,t){return this.inner.executeBatch(e,t)}static async runWith(e,t){let i=new n(e);try{await e.execute("BEGIN IMMEDIATE");let r=await t(i);return await i.commit(),r}catch(r){try{await i.rollback()}catch{}throw r}}};var h3=class n{types;props;tables;rawTables;constructor(e){if(Array.isArray(e)){for(let t of e)if(t.name==="")throw new Error("It appears you are trying to create a new Schema with an array instead of an object. Passing in an object instead of an array into 'new Schema()' may resolve your issue.");this.tables=e}else this.props=Object.fromEntries(Object.entries(e).map(([t,i])=>[t,i.copyWithName(t)])),this.tables=Object.values(this.props);this.rawTables=[]}withRawTables(e){for(let[t,i]of Object.entries(e))this.rawTables.push({name:t,...i})}validate(){for(let e of this.tables)e.validate()}toJSON(){return{tables:this.tables.map(e=>e.toJSON()),raw_tables:this.rawTables.map(n.rawTableToJson)}}static rawTableToJson(e){let t={name:e.name,put:e.put,delete:e.delete,clear:e.clear};if("schema"in e){let i=e.schema;t.table_name=i.tableName??e.name,t.synced_columns=i.syncedColumns,Object.assign(t,l3(e.schema))}return t}};var Fl;(function(n){n.INSERT="INSERT",n.UPDATE="UPDATE",n.DELETE="DELETE"})(Fl||(Fl={}));var gP={checkEquality:()=>!1};var rE;(function(n){n.ON_DATA="onData",n.ON_ERROR="onError",n.ON_STATE_CHANGE="onStateChange",n.SETTINGS_WILL_UPDATE="settingsWillUpdate",n.CLOSED="closed"})(rE||(rE={}));var p3=ci(tr(),1);var x9=(n,e)=>{let t;try{t=n.compile()}catch{return!1}let i=t,r=n.stringifiedParameters??JSON.stringify(i.parameters),a=JSON.stringify(e),s=p3.default.useRef({sqlStatement:i.sql,stringifiedParams:r,stringifiedOptions:a});return s.current.sqlStatement!==i.sql||s.current.stringifiedParams!=r||s.current.stringifiedOptions!=a?(s.current.sqlStatement=i.sql,s.current.stringifiedParams=r,s.current.stringifiedOptions=a,!0):!1},m3=(n,e=[],t)=>{let i=Sc(),r=p3.default.useMemo(()=>JSON.stringify(e),[e]),a=p3.default.useMemo(()=>typeof n=="string"?{compile:()=>({sql:n,parameters:e}),execute:()=>i.getAll(n,e),stringifiedParameters:r}:{compile:()=>{let l=n.compile();return{sql:l.sql,parameters:[...l.parameters]}},execute:()=>n.execute()},[n,i,r]),s=x9(a,t);return{parsedQuery:a,queryChanged:s}};var T9=ci(tr(),1);var L9=ci(tr(),1);var Uv=ci(tr(),1);var Pv=ci(tr(),1);function aE(){let n=(0,Pv.useContext)(tE),[e,t]=(0,Pv.useState)(n.currentStatus);return(0,Pv.useEffect)(()=>{let i=n.registerListener({statusChanged:r=>{t(r)}});return()=>i?.()},[n]),e}function k9(n){let e=Sc(),t=aE(),i=(0,Uv.useMemo)(()=>JSON.stringify(n),[n]),r=(0,Uv.useMemo)(()=>n.map(a=>({stream:e.syncStream(a.name,a.parameters??void 0),options:a})),[i]);return(0,Uv.useEffect)(()=>{let a=!0,s=[];for(let l of r)l.stream.subscribe(l.options).then(c=>{a?s.push(c):c.unsubscribe()});return()=>{a=!1;for(let l of s)l.unsubscribe()}},[i]),(0,Uv.useMemo)(()=>r.map(a=>t.forStream(a.stream)??null),[t,i])}function vI(n,e){let t=k9(e??[]);return e?e.every((i,r)=>i.waitForStream?t[r]?.subscription?.hasSynced===!0:!0):!0}var _3=ci(tr(),1),vP=n=>{let{query:e,powerSync:t,queryChanged:i,active:r}=n,[a,s]=_3.default.useState({isLoading:!0,isFetching:!0,data:[],error:void 0}),l=_3.default.useCallback(async c=>{s(f=>({...f,isLoading:!0,isFetching:!0,error:void 0}));try{let f=e.compile(),p=await e.execute({sql:f.sql,parameters:[...f.parameters],db:t});if(c.aborted)return;s(h=>({...h,isLoading:!1,isFetching:!1,data:p,error:void 0}))}catch(f){s(p=>({...p,isLoading:!1,isFetching:!1,data:[],error:f}))}},[i,e]);return _3.default.useEffect(()=>{if(r){let c=new AbortController;return l(c.signal),()=>{c.abort()}}},[t,r,i]),{...a,refresh:l}};var g3=ci(tr(),1);var yI=ci(tr(),1);var yP=n=>{let[e,t]=yI.default.useState(n?.state);return yI.default.useEffect(()=>{if(n)return t(n.state),n.registerListener({onStateChange:i=>{t({...i})}})},[n]),e};var bP=n=>{let{query:e,powerSync:t,queryChanged:i,options:r,active:a}=n;function s(){return a?r.rowComparator?t.customQuery(e).differentialWatch({rowComparator:r.rowComparator,reportFetching:r.reportFetching,throttleMs:r.throttleMs}):t.customQuery(e).watch({reportFetching:r.reportFetching,throttleMs:r.throttleMs}):null}let[l,c]=g3.default.useState(null),f=g3.default.useRef(null);g3.default.useEffect(()=>{l?.close();let _=s();return c(_),()=>{f.current?.(),_?.close()}},[t,a]),i&&(l?.updateSettings({query:e,throttleMs:r.throttleMs,reportFetching:r.reportFetching}),f.current?.(),f.current=l?.registerListener({settingsWillUpdate:()=>{f.current?.(),f.current=null}}));let p=(r.reportFetching??!0)&&!!f.current,h=yP(l);return{data:h?.data??[],isLoading:h?.isLoading??!0,error:h?.error,isFetching:(h?.isFetching??r.reportFetching??!0)||p}};function zv(n,e=[],t={}){let i=Sc();if(!i)return{...bI,isLoading:!1,error:new Error("PowerSync not configured.")};let{parsedQuery:r,queryChanged:a}=m3(n,e,t),s=vI(i,t?.streams),l=t?.runQueryOnce==!0,c=vP({query:r,powerSync:i,queryChanged:a,active:l&&s}),f=bP({query:r,powerSync:i,queryChanged:a,options:{reportFetching:t.reportFetching,throttleMs:t.throttleMs,rowComparator:t.rowComparator},active:!l&&s});return s?(l?c:f)??bI:{...bI}}var bI={isLoading:!0,isFetching:!1,data:[],error:void 0};var V_=ci(tr(),1),zG=ci(MB(),1);var Su=document.documentElement.dataset.appBase??"";function lw(n){history.pushState(null,"",`${Su}${n}`),dispatchEvent(new PopStateEvent("popstate"))}function Bj(){let n=location.pathname;Su&&n.startsWith(Su)&&(n=n.slice(Su.length));let e=/^\/r\/([a-z0-9]{4,24})\/?$/i.exec(n);return e?`${Su}/r/${e[1].toLowerCase()}`:Su||"/"}function rA(){return`/_kody/auth/logout?${new URLSearchParams({return_to:Bj()})}`}function Df(){let n=location.pathname;Su&&n.startsWith(Su)&&(n=n.slice(Su.length));let e=/^\/r\/([a-z0-9]{4,24})\/?$/i.exec(n),t=e?`${Su}/r/${e[1].toLowerCase()}`:Su||"/";return`/_kody/auth/login?${new URLSearchParams({app:"world-builder",return_to:t})}`}var Or=ci(tr(),1);var gr={minX:-48,maxX:47,minY:0,maxY:47,minZ:-48,maxZ:47},jm=[{key:"grass",label:"Grass",color:"#5fa04e"},{key:"dirt",label:"Dirt",color:"#8a5a3b"},{key:"stone",label:"Stone",color:"#8d9399"},{key:"cobble",label:"Cobblestone",color:"#6b7075"},{key:"brick",label:"Brick",color:"#b0503c"},{key:"wood",label:"Log",color:"#6e4b2a"},{key:"plank",label:"Planks",color:"#c49a5b"},{key:"leaves",label:"Leaves",color:"#2f7d32"},{key:"sand",label:"Sand",color:"#e2d29b"},{key:"water",label:"Water",color:"#3d7fd9",opacity:.7},{key:"glass",label:"Glass",color:"#bfe6f5",opacity:.35},{key:"snow",label:"Snow",color:"#f4f7fa"},{key:"gold",label:"Gold",color:"#f2c230",emissive:"#4a3500"},{key:"lava",label:"Lava",color:"#ff6a1a",emissive:"#b33000"},{key:"obsidian",label:"Obsidian",color:"#2a2338"},{key:"banner",label:"Banner",color:"#c2185b"}],lse=new Set(jm.map(n=>n.key)),uw={maxUploadOps:200,maxAgentBlocksPerCall:600,humanBlocksPerMinute:900,agentBlocksPerMinute:6e3,cursorUpdatesPerMinute:400,maxBlocksPerWorld:6e4,maxPromptLength:280,maxNameLength:40};function AB(n,e,t,i){return`${n}:${e}:${t}:${i}`}function cw(n,e,t){return Number.isInteger(n)&&Number.isInteger(e)&&Number.isInteger(t)&&n>=gr.minX&&n<=gr.maxX&&e>=gr.minY&&e<=gr.maxY&&t>=gr.minZ&&t<=gr.maxZ}function CB(n){let e=n.userName.split(/\s+/)[0]||n.userName,t=jm.map(i=>i.key).join(", ");return`You're joining a live, shared 3D voxel world in Kody World Builder: the room "${n.roomName}".
Room link: ${n.roomUrl}
Room code: ${n.roomCode}
Everyone in the room watches your blocks appear live as you place them.

HOW TO CALL IT
Run the code below through Kody. If you're connected to Kody over MCP, pass it to Kody's \`execute\` tool. No local code or shell is needed. If you have a terminal, \`npx -y @kodycodes/cli@latest execute --file build.mjs\` also works.
Package: @kentcdodds/world-builder. Import each function from 'kody:@kentcdodds/world-builder/<export>'. Always pass room: '${n.roomCode}'.
For agentName, use your own assistant name: "Claude", "ChatGPT", "Grok", etc. The room shows you as "${e}'s <agentName>".

STEPS
1. Look before you build:
   import describeWorld from 'kody:@kentcdodds/world-builder/describe-world'
   const info = await describeWorld({ room: '${n.roomCode}' })
   This returns occupiedBounds, a heightMap of 8x8 cells (-1 = empty), and recentBuilds. Pick an empty spot. You can pass region: { minX, maxX, minY, maxY, minZ, maxZ } to get the exact blocks in an area.
2. Start a build:
   import startBuild from 'kody:@kentcdodds/world-builder/start-build'
   const { buildId } = await startBuild({ room: '${n.roomCode}', agentName: '<your name>', prompt: '<short description, e.g. A stone castle>' })
3. Place blocks, in order from the ground up:
   import placeBlocks from 'kody:@kentcdodds/world-builder/place-blocks'
   await placeBlocks({ buildId, blocks: [{ x, y, z, material }, ...] })
   Each call takes up to ${uw.maxAgentBlocksPerCall} blocks, and the server streams them in batches of 24 so people watch the build grow. One execute run stops after about 90 seconds, and 600 blocks take about 5 to 10 seconds to stream. For builds over about 1,200 blocks, split the work across several execute runs: run startBuild once, keep the buildId, then do one or two placeBlocks calls per run. To remove blocks, use remove-blocks with { buildId, blocks: [{ x, y, z }] }.
4. Finish:
   import finishBuild from 'kody:@kentcdodds/world-builder/finish-build'
   await finishBuild({ buildId })   // or { buildId, status: 'failed' } if you give up

WORLD RULES
- The y axis points up, and the ground is y = 0. x runs ${gr.minX}..${gr.maxX}, z runs ${gr.minZ}..${gr.maxZ}, and y runs ${gr.minY}..${gr.maxY}. Every coordinate must be an integer.
- Materials: ${t}.
- Blocks that are out of bounds or use an unknown material are skipped, and the reply counts them in "rejected".
- Limits: ${uw.maxAgentBlocksPerCall} blocks per call, about ${uw.agentBlocksPerMinute} blocks per minute per agent, and ${uw.maxBlocksPerWorld.toLocaleString("en-US")} blocks per room. If a call fails with a rate limit, wait about a minute and continue from where you stopped.
- Placing a block where one already exists replaces it. Don't build over other people's work unless you're asked to.

TIPS
- Plan the full structure as a list of blocks in code (loops for walls, floors and towers), then place it in chunks.
- A good castle is about 20x20 blocks and 900 to 1,200 blocks in total. Use a stone wall ring with crenellations, four taller towers, a gate, wood details, and a few glass windows.
- When you're done, tell me what you built and where (its x/z center).

Reply "Ready" and wait for my build request.`}var Hi=ci($o(),1),Fy={width:20,height:20,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},NB=()=>(0,Hi.jsxs)("svg",{...Fy,"aria-hidden":"true",children:[(0,Hi.jsx)("path",{d:"M12 3 3 7.5v9L12 21l9-4.5v-9L12 3Z"}),(0,Hi.jsx)("path",{d:"M12 12v9M3 7.5l9 4.5 9-4.5"})]}),kB=()=>(0,Hi.jsxs)("svg",{...Fy,"aria-hidden":"true",children:[(0,Hi.jsx)("path",{d:"M3 6h18M8 6V4h8v2M6 6l1 14h10l1-14"}),(0,Hi.jsx)("path",{d:"M10 11v6M14 11v6"})]}),Py=()=>(0,Hi.jsxs)("svg",{...Fy,width:16,height:16,"aria-hidden":"true",children:[(0,Hi.jsx)("rect",{x:"4",y:"8",width:"16",height:"11",rx:"3"}),(0,Hi.jsx)("path",{d:"M12 4v4M9 13h.01M15 13h.01"})]}),sA=()=>(0,Hi.jsxs)("svg",{...Fy,width:16,height:16,"aria-hidden":"true",children:[(0,Hi.jsx)("circle",{cx:"12",cy:"8",r:"4"}),(0,Hi.jsx)("path",{d:"M4 21c1.5-4 4.5-6 8-6s6.5 2 8 6"})]}),OB=()=>(0,Hi.jsxs)("svg",{...Fy,"aria-hidden":"true",children:[(0,Hi.jsx)("rect",{x:"3",y:"4",width:"18",height:"16",rx:"2"}),(0,Hi.jsx)("path",{d:"M15 4v16"})]}),oA=({state:n})=>(0,Hi.jsx)("svg",{...Fy,width:18,height:18,"aria-hidden":"true",className:`sync-icon ${n}`,children:n==="offline"?(0,Hi.jsxs)(Hi.Fragment,{children:[(0,Hi.jsx)("path",{d:"M2 2l20 20"}),(0,Hi.jsx)("path",{d:"M8.5 16.5a5 5 0 0 1 7 0M5 13a10 10 0 0 1 5-2.7M19 13a10 10 0 0 0-2.2-1.6M12 20h.01"})]}):(0,Hi.jsxs)(Hi.Fragment,{children:[(0,Hi.jsx)("path",{d:"M21 12a9 9 0 0 1-15.5 6.2L3 16"}),(0,Hi.jsx)("path",{d:"M3 12a9 9 0 0 1 15.5-6.2L21 8"}),(0,Hi.jsx)("path",{d:"M21 3v5h-5M3 21v-5h5"})]})});var di=ci(tr()),oH=ci(tr());var V1={};pu(V1,{ACESFilmicToneMapping:()=>W0,AddEquation:()=>Wh,AddOperation:()=>kO,AdditiveAnimationBlendMode:()=>S2,AdditiveBlending:()=>i2,AgXToneMapping:()=>d2,AlphaFormat:()=>y2,AlwaysCompare:()=>jO,AlwaysDepth:()=>Nw,AlwaysStencilFunc:()=>qO,AmbientLight:()=>Px,AnimationAction:()=>Xx,AnimationClip:()=>Hh,AnimationLoader:()=>vC,AnimationMixer:()=>LC,AnimationObjectGroup:()=>IC,AnimationUtils:()=>gC,ArcCurve:()=>ix,ArrayCamera:()=>Gx,ArrowHelper:()=>ZC,AttachedBindMode:()=>ZA,Audio:()=>jx,AudioAnalyser:()=>RC,AudioContext:()=>q0,AudioListener:()=>AC,AudioLoader:()=>TC,AxesHelper:()=>$C,BackSide:()=>ss,BasicDepthPacking:()=>UO,BasicShadowMap:()=>n2,BatchedMesh:()=>Xw,BezierInterpolant:()=>Lx,Bone:()=>g0,BooleanKeyframeTrack:()=>Hc,Box2:()=>Yx,Box3:()=>sa,Box3Helper:()=>YC,BoxGeometry:()=>Bc,BoxHelper:()=>XC,BufferAttribute:()=>Li,BufferGeometry:()=>Nn,BufferGeometryLoader:()=>Hx,ByteType:()=>m2,Cache:()=>Au,Camera:()=>b_,CameraHelper:()=>QC,CanvasTexture:()=>y0,CapsuleGeometry:()=>Jw,CatmullRomCurve3:()=>rx,CineonToneMapping:()=>c2,CircleGeometry:()=>ex,ClampToEdgeWrapping:()=>Ms,Clock:()=>H0,Color:()=>Vt,ColorKeyframeTrack:()=>D0,ColorManagement:()=>Gn,Compatibility:()=>O5,CompressedArrayTexture:()=>hC,CompressedCubeTexture:()=>pC,CompressedTexture:()=>h_,CompressedTextureLoader:()=>yC,ConeGeometry:()=>E0,ConstantAlphaFactor:()=>IO,ConstantColorFactor:()=>CO,Controls:()=>V0,CubeCamera:()=>Vx,CubeDepthTexture:()=>$w,CubeReflectionMapping:()=>Du,CubeRefractionMapping:()=>Jf,CubeTexture:()=>Uh,CubeTextureLoader:()=>bC,CubeUVReflectionMapping:()=>x_,CubicBezierCurve:()=>w0,CubicBezierCurve3:()=>ax,CubicInterpolant:()=>Rx,CullFaceBack:()=>t2,CullFaceFront:()=>hO,CullFaceFrontBack:()=>j6,CullFaceNone:()=>dO,Curve:()=>mo,CurvePath:()=>ox,CustomBlending:()=>pO,CustomToneMapping:()=>f2,CylinderGeometry:()=>S0,Cylindrical:()=>PC,Data3DTexture:()=>u_,DataArrayTexture:()=>l_,DataTexture:()=>As,DataTextureLoader:()=>SC,DataUtils:()=>nC,DecrementStencilOp:()=>f5,DecrementWrapStencilOp:()=>h5,DefaultLoadingManager:()=>$O,DepthFormat:()=>Cu,DepthStencilFormat:()=>ed,DepthTexture:()=>jf,DetachedBindMode:()=>OO,DirectionalLight:()=>Fx,DirectionalLightHelper:()=>jC,DiscreteInterpolant:()=>Ix,DodecahedronGeometry:()=>tx,DoubleSide:()=>ku,DstAlphaFactor:()=>wO,DstColorFactor:()=>TO,DynamicCopyUsage:()=>C5,DynamicDrawUsage:()=>E5,DynamicReadUsage:()=>T5,EdgesGeometry:()=>nx,EllipseCurve:()=>p_,EqualCompare:()=>VO,EqualDepth:()=>Ow,EqualStencilFunc:()=>g5,EquirectangularReflectionMapping:()=>j0,EquirectangularRefractionMapping:()=>Q0,Euler:()=>Kl,EventDispatcher:()=>po,ExternalTexture:()=>b0,ExtrudeGeometry:()=>fx,FileLoader:()=>Zl,Float16BufferAttribute:()=>lC,Float32BufferAttribute:()=>an,FloatType:()=>as,Fog:()=>Bw,FogExp2:()=>qw,FramebufferTexture:()=>dC,FrontSide:()=>$f,Frustum:()=>qc,FrustumArray:()=>Qw,GLBufferAttribute:()=>FC,GLSL1:()=>I5,GLSL3:()=>E2,GreaterCompare:()=>GO,GreaterDepth:()=>Fw,GreaterEqualCompare:()=>D1,GreaterEqualDepth:()=>Dw,GreaterEqualStencilFunc:()=>S5,GreaterStencilFunc:()=>y5,GridHelper:()=>GC,Group:()=>Vf,HTMLTexture:()=>mC,HalfFloatType:()=>$l,HemisphereLight:()=>kx,HemisphereLightHelper:()=>VC,IcosahedronGeometry:()=>dx,ImageBitmapLoader:()=>xC,ImageLoader:()=>Vh,ImageUtils:()=>zw,IncrementStencilOp:()=>c5,IncrementWrapStencilOp:()=>d5,InstancedBufferAttribute:()=>Wf,InstancedBufferGeometry:()=>Bx,InstancedInterleavedBuffer:()=>DC,InstancedMesh:()=>jw,Int16BufferAttribute:()=>sC,Int32BufferAttribute:()=>oC,Int8BufferAttribute:()=>iC,IntType:()=>Zx,InterleavedBuffer:()=>d_,InterleavedBufferAttribute:()=>Ph,Interpolant:()=>Xf,InterpolateBezier:()=>$A,InterpolateDiscrete:()=>l0,InterpolateLinear:()=>Uw,InterpolateSmooth:()=>Tw,InterpolationSamplingMode:()=>k5,InterpolationSamplingType:()=>N5,InvertStencilOp:()=>p5,KeepStencilOp:()=>Mw,KeyframeTrack:()=>Cs,LOD:()=>Vw,LatheGeometry:()=>hx,Layers:()=>zc,LessCompare:()=>HO,LessDepth:()=>kw,LessEqualCompare:()=>O1,LessEqualDepth:()=>s_,LessEqualStencilFunc:()=>v5,LessStencilFunc:()=>_5,Light:()=>Nu,LightProbe:()=>zx,LightShadow:()=>y_,Line:()=>Lu,Line3:()=>zC,LineBasicMaterial:()=>xa,LineCurve:()=>x0,LineCurve3:()=>sx,LineDashedMaterial:()=>Cx,LineLoop:()=>Yw,LineSegments:()=>nl,LinearFilter:()=>Ji,LinearInterpolant:()=>O0,LinearMipMapLinearFilter:()=>Z6,LinearMipMapNearestFilter:()=>K6,LinearMipmapLinearFilter:()=>Fu,LinearMipmapNearestFilter:()=>X0,LinearSRGBColorSpace:()=>Oh,LinearToneMapping:()=>l2,LinearTransfer:()=>c0,Loader:()=>Wa,LoaderUtils:()=>z0,LoadingManager:()=>P0,LoopOnce:()=>DO,LoopPingPong:()=>PO,LoopRepeat:()=>FO,MOUSE:()=>Yf,Material:()=>Zr,MaterialBlending:()=>Q6,MaterialLoader:()=>qx,MathUtils:()=>w2,Matrix2:()=>UC,Matrix3:()=>In,Matrix4:()=>Cn,MaxEquation:()=>vO,Mesh:()=>dr,MeshBasicMaterial:()=>Iu,MeshDepthMaterial:()=>N0,MeshDistanceMaterial:()=>k0,MeshLambertMaterial:()=>Mx,MeshMatcapMaterial:()=>Ax,MeshNormalMaterial:()=>Tx,MeshPhongMaterial:()=>wx,MeshPhysicalMaterial:()=>Ex,MeshStandardMaterial:()=>Bh,MeshToonMaterial:()=>xx,MinEquation:()=>gO,MirroredRepeatWrapping:()=>o0,MixOperation:()=>NO,MultiplyBlending:()=>a2,MultiplyOperation:()=>G0,NearestFilter:()=>br,NearestMipMapLinearFilter:()=>Y6,NearestMipMapNearestFilter:()=>X6,NearestMipmapLinearFilter:()=>T_,NearestMipmapNearestFilter:()=>p2,NeutralToneMapping:()=>h2,NeverCompare:()=>BO,NeverDepth:()=>Lw,NeverStencilFunc:()=>m5,NoBlending:()=>Ou,NoColorSpace:()=>jc,NoNormalPacking:()=>a5,NoToneMapping:()=>_o,NormalAnimationBlendMode:()=>k1,NormalBlending:()=>w_,NormalGAPacking:()=>o5,NormalRGPacking:()=>s5,NotEqualCompare:()=>WO,NotEqualDepth:()=>Pw,NotEqualStencilFunc:()=>b5,NumberKeyframeTrack:()=>g_,Object3D:()=>gi,ObjectLoader:()=>wC,ObjectSpaceNormalMap:()=>zO,OctahedronGeometry:()=>R0,OneFactor:()=>bO,OneMinusConstantAlphaFactor:()=>LO,OneMinusConstantColorFactor:()=>RO,OneMinusDstAlphaFactor:()=>xO,OneMinusDstColorFactor:()=>MO,OneMinusSrcAlphaFactor:()=>o2,OneMinusSrcColorFactor:()=>EO,OrthographicCamera:()=>Gc,PCFShadowMap:()=>Gh,PCFSoftShadowMap:()=>E_,PMREMGenerator:()=>q1,Path:()=>zh,PerspectiveCamera:()=>yr,Plane:()=>fo,PlaneGeometry:()=>__,PlaneHelper:()=>KC,PointLight:()=>Dx,PointLightHelper:()=>HC,Points:()=>Kw,PointsMaterial:()=>v0,PolarGridHelper:()=>WC,PolyhedronGeometry:()=>Qf,PositionalAudio:()=>CC,PropertyBinding:()=>Ii,PropertyMixer:()=>Qx,QuadraticBezierCurve:()=>T0,QuadraticBezierCurve3:()=>M0,Quaternion:()=>Lr,QuaternionKeyframeTrack:()=>v_,QuaternionLinearInterpolant:()=>Nx,R11_EAC_Format:()=>c1,RED_GREEN_RGTC2_Format:()=>tb,RED_RGTC1_Format:()=>I1,REVISION:()=>fO,RG11_EAC_Format:()=>eb,RGBADepthPacking:()=>n5,RGBAFormat:()=>wa,RGBAIntegerFormat:()=>n1,RGBA_ASTC_10x10_Format:()=>x1,RGBA_ASTC_10x5_Format:()=>S1,RGBA_ASTC_10x6_Format:()=>E1,RGBA_ASTC_10x8_Format:()=>w1,RGBA_ASTC_12x10_Format:()=>T1,RGBA_ASTC_12x12_Format:()=>M1,RGBA_ASTC_4x4_Format:()=>h1,RGBA_ASTC_5x4_Format:()=>p1,RGBA_ASTC_5x5_Format:()=>m1,RGBA_ASTC_6x5_Format:()=>_1,RGBA_ASTC_6x6_Format:()=>g1,RGBA_ASTC_8x5_Format:()=>v1,RGBA_ASTC_8x6_Format:()=>y1,RGBA_ASTC_8x8_Format:()=>b1,RGBA_BPTC_Format:()=>A1,RGBA_ETC2_EAC_Format:()=>u1,RGBA_PVRTC_2BPPV1_Format:()=>s1,RGBA_PVRTC_4BPPV1_Format:()=>a1,RGBA_S3TC_DXT1_Format:()=>Z0,RGBA_S3TC_DXT3_Format:()=>$0,RGBA_S3TC_DXT5_Format:()=>J0,RGBDepthPacking:()=>i5,RGBFormat:()=>b2,RGBIntegerFormat:()=>$6,RGB_BPTC_SIGNED_Format:()=>C1,RGB_BPTC_UNSIGNED_Format:()=>R1,RGB_ETC1_Format:()=>o1,RGB_ETC2_Format:()=>l1,RGB_PVRTC_2BPPV1_Format:()=>r1,RGB_PVRTC_4BPPV1_Format:()=>i1,RGB_S3TC_DXT1_Format:()=>K0,RGDepthPacking:()=>r5,RGFormat:()=>td,RGIntegerFormat:()=>t1,RawShaderMaterial:()=>L0,Ray:()=>Ru,Raycaster:()=>B0,RectAreaLight:()=>Ux,RedFormat:()=>e1,RedIntegerFormat:()=>Y0,ReinhardToneMapping:()=>u2,RenderObjectRefreshType:()=>D5,RenderTarget:()=>h0,RenderTarget3D:()=>NC,RepeatWrapping:()=>s0,ReplaceStencilOp:()=>u5,ReverseSubtractEquation:()=>_O,RingGeometry:()=>px,SIGNED_R11_EAC_Format:()=>f1,SIGNED_RED_GREEN_RGTC2_Format:()=>N1,SIGNED_RED_RGTC1_Format:()=>L1,SIGNED_RG11_EAC_Format:()=>d1,SRGBColorSpace:()=>Yr,SRGBTransfer:()=>xi,Scene:()=>f_,ShaderChunk:()=>Bn,ShaderLib:()=>Pu,ShaderMaterial:()=>Ga,ShadowMaterial:()=>Sx,Shape:()=>qh,ShapeGeometry:()=>mx,ShapePath:()=>JC,ShapeUtils:()=>Yl,ShortType:()=>_2,Skeleton:()=>Ww,SkeletonHelper:()=>BC,SkinnedMesh:()=>Gw,Source:()=>JA,Sphere:()=>Kr,SphereGeometry:()=>I0,Spherical:()=>S_,SphericalHarmonics3:()=>U0,SplineCurve:()=>A0,SpotLight:()=>Ox,SpotLightHelper:()=>qC,Sprite:()=>Hw,SpriteMaterial:()=>_0,SrcAlphaFactor:()=>s2,SrcAlphaSaturateFactor:()=>AO,SrcColorFactor:()=>SO,StaticCopyUsage:()=>A5,StaticDrawUsage:()=>F1,StaticReadUsage:()=>x5,StereoCamera:()=>MC,StreamCopyUsage:()=>R5,StreamDrawUsage:()=>w5,StreamReadUsage:()=>M5,StringKeyframeTrack:()=>Vc,SubtractEquation:()=>mO,SubtractiveBlending:()=>r2,TOUCH:()=>Kf,TangentSpaceNormalMap:()=>Wc,TetrahedronGeometry:()=>_x,Texture:()=>Sr,TextureLoader:()=>EC,TextureSource:()=>Xl,TextureUtils:()=>e2,Timer:()=>Wx,TimestampQuery:()=>L5,TorusGeometry:()=>gx,TorusKnotGeometry:()=>vx,Triangle:()=>Mu,TriangleFanDrawMode:()=>t5,TriangleStripDrawMode:()=>e5,TrianglesDrawMode:()=>J6,TubeGeometry:()=>yx,UVMapping:()=>Kx,Uint16BufferAttribute:()=>p0,Uint32BufferAttribute:()=>m0,Uint8BufferAttribute:()=>rC,Uint8ClampedBufferAttribute:()=>aC,Uniform:()=>kC,UniformsGroup:()=>OC,UniformsLib:()=>Gt,UniformsUtils:()=>ZO,UnsignedByteType:()=>ja,UnsignedInt101111Type:()=>v2,UnsignedInt248Type:()=>A_,UnsignedInt5999Type:()=>g2,UnsignedIntType:()=>il,UnsignedShort4444Type:()=>$x,UnsignedShort5551Type:()=>Jx,UnsignedShortType:()=>M_,VSMShadowMap:()=>Zf,Vector2:()=>ut,Vector3:()=>ve,Vector4:()=>Ni,VectorKeyframeTrack:()=>F0,VideoFrameTexture:()=>fC,VideoTexture:()=>Zw,WebGL3DRenderTarget:()=>tC,WebGLArrayRenderTarget:()=>eC,WebGLCoordinateSystem:()=>ho,WebGLCubeRenderTarget:()=>B1,WebGLRenderTarget:()=>Va,WebGLRenderer:()=>H1,WebGLUtils:()=>T8,WebGPUCoordinateSystem:()=>Dh,WebXRController:()=>c_,WireframeGeometry:()=>bx,WrapAroundEnding:()=>u0,ZeroCurvatureEnding:()=>Nh,ZeroFactor:()=>yO,ZeroSlopeEnding:()=>kh,ZeroStencilOp:()=>l5,createCanvasElement:()=>QO,error:()=>cn,getConsoleFunction:()=>U5,log:()=>d0,setConsoleFunction:()=>P5,warn:()=>Ft,warnOnce:()=>Uc});var fO="186",Yf={LEFT:0,MIDDLE:1,RIGHT:2,ROTATE:0,DOLLY:1,PAN:2},Kf={ROTATE:0,PAN:1,DOLLY_PAN:2,DOLLY_ROTATE:3},dO=0,t2=1,hO=2,j6=3,n2=0,Gh=1,E_=2,Zf=3,$f=0,ss=1,ku=2,Ou=0,w_=1,i2=2,r2=3,a2=4,pO=5,Q6=6,Wh=100,mO=101,_O=102,gO=103,vO=104,yO=200,bO=201,SO=202,EO=203,s2=204,o2=205,wO=206,xO=207,TO=208,MO=209,AO=210,CO=211,RO=212,IO=213,LO=214,Lw=0,Nw=1,kw=2,s_=3,Ow=4,Dw=5,Fw=6,Pw=7,G0=0,NO=1,kO=2,_o=0,l2=1,u2=2,c2=3,W0=4,f2=5,d2=6,h2=7,ZA="attached",OO="detached",Kx=300,Du=301,Jf=302,j0=303,Q0=304,x_=306,s0=1e3,Ms=1001,o0=1002,br=1003,p2=1004,X6=1004,T_=1005,Y6=1005,Ji=1006,X0=1007,K6=1007,Fu=1008,Z6=1008,ja=1009,m2=1010,_2=1011,M_=1012,Zx=1013,il=1014,as=1015,$l=1016,$x=1017,Jx=1018,A_=1020,g2=35902,v2=35899,y2=1021,b2=1022,wa=1023,Cu=1026,ed=1027,e1=1028,Y0=1029,td=1030,t1=1031,$6=1032,n1=1033,K0=33776,Z0=33777,$0=33778,J0=33779,i1=35840,r1=35841,a1=35842,s1=35843,o1=36196,l1=37492,u1=37496,c1=37488,f1=37489,eb=37490,d1=37491,h1=37808,p1=37809,m1=37810,_1=37811,g1=37812,v1=37813,y1=37814,b1=37815,S1=37816,E1=37817,w1=37818,x1=37819,T1=37820,M1=37821,A1=36492,C1=36494,R1=36495,I1=36283,L1=36284,tb=36285,N1=36286,DO=2200,FO=2201,PO=2202,l0=2300,Uw=2301,Tw=2302,$A=2303,Nh=2400,kh=2401,u0=2402,k1=2500,S2=2501,J6=0,e5=1,t5=2,UO=3200,n5=3201,i5=3202,r5=3203,Wc=0,zO=1,jc="",Yr="srgb",Oh="srgb-linear",c0="linear",xi="srgb",a5="",s5="rg",o5="ga",l5=0,Mw=7680,u5=7681,c5=7682,f5=7683,d5=34055,h5=34056,p5=5386,m5=512,_5=513,g5=514,v5=515,y5=516,b5=517,S5=518,qO=519,BO=512,HO=513,VO=514,O1=515,GO=516,WO=517,D1=518,jO=519,F1=35044,E5=35048,w5=35040,x5=35045,T5=35049,M5=35041,A5=35046,C5=35050,R5=35042,I5="100",E2="300 es",ho=2e3,Dh=2001,L5={COMPUTE:"compute",RENDER:"render"},N5={PERSPECTIVE:"perspective",LINEAR:"linear",FLAT:"flat"},k5={NORMAL:"normal",CENTROID:"centroid",SAMPLE:"sample",FIRST:"first",EITHER:"either"},O5={TEXTURE_COMPARE:"depthTextureCompare"},D5={NONE:0,SHARED:1,FULL:2};function Gj(n){for(let e=n.length-1;e>=0;--e)if(n[e]>=65535)return!0;return!1}var Wj={Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array};function r0(n,e){return new Wj[n](e)}function F5(n){return ArrayBuffer.isView(n)&&!(n instanceof DataView)}function f0(n){return document.createElementNS("http://www.w3.org/1999/xhtml",n)}function QO(){let n=f0("canvas");return n.style.display="block",n}var DB={},Fh=null;function P5(n){Fh=n}function U5(){return Fh}function d0(...n){let e="THREE."+n.shift();Fh?Fh("log",e,...n):console.log(e,...n)}function z5(n){let e=n[0];if(typeof e=="string"&&e.startsWith("TSL:")){let t=n[1];t&&t.isStackTrace?n[0]+=" "+t.getLocation():n[1]='Stack trace not available. Enable "THREE.Node.captureStackTrace" to capture stack traces.'}return n}function Ft(...n){n=z5(n);let e="THREE."+n.shift();if(Fh)Fh("warn",e,...n);else{let t=n[0];t&&t.isStackTrace?console.warn(t.getError(e)):console.warn(e,...n)}}function cn(...n){n=z5(n);let e="THREE."+n.shift();if(Fh)Fh("error",e,...n);else{let t=n[0];t&&t.isStackTrace?console.error(t.getError(e)):console.error(e,...n)}}function Uc(...n){let e=n.join(" ");e in DB||(DB[e]=!0,Ft(...n))}function q5(n,e,t){return new Promise(function(i,r){function a(){switch(n.clientWaitSync(e,n.SYNC_FLUSH_COMMANDS_BIT,0)){case n.WAIT_FAILED:r();break;case n.TIMEOUT_EXPIRED:setTimeout(a,t);break;default:i()}}setTimeout(a,t)})}var B5={[Lw]:Nw,[kw]:Fw,[Ow]:Pw,[s_]:Dw,[Nw]:Lw,[Fw]:kw,[Pw]:Ow,[Dw]:s_},po=class{addEventListener(e,t){this._listeners===void 0&&(this._listeners={});let i=this._listeners;i[e]===void 0&&(i[e]=[]),i[e].indexOf(t)===-1&&i[e].push(t)}hasEventListener(e,t){let i=this._listeners;return i===void 0?!1:i[e]!==void 0&&i[e].indexOf(t)!==-1}removeEventListener(e,t){let i=this._listeners;if(i===void 0)return;let r=i[e];if(r!==void 0){let a=r.indexOf(t);a!==-1&&r.splice(a,1)}}dispatchEvent(e){let t=this._listeners;if(t===void 0)return;let i=t[e.type];if(i!==void 0){e.target=this;let r=i.slice(0);for(let a=0,s=r.length;a<s;a++)r[a].call(this,e);e.target=null}}},ns=["00","01","02","03","04","05","06","07","08","09","0a","0b","0c","0d","0e","0f","10","11","12","13","14","15","16","17","18","19","1a","1b","1c","1d","1e","1f","20","21","22","23","24","25","26","27","28","29","2a","2b","2c","2d","2e","2f","30","31","32","33","34","35","36","37","38","39","3a","3b","3c","3d","3e","3f","40","41","42","43","44","45","46","47","48","49","4a","4b","4c","4d","4e","4f","50","51","52","53","54","55","56","57","58","59","5a","5b","5c","5d","5e","5f","60","61","62","63","64","65","66","67","68","69","6a","6b","6c","6d","6e","6f","70","71","72","73","74","75","76","77","78","79","7a","7b","7c","7d","7e","7f","80","81","82","83","84","85","86","87","88","89","8a","8b","8c","8d","8e","8f","90","91","92","93","94","95","96","97","98","99","9a","9b","9c","9d","9e","9f","a0","a1","a2","a3","a4","a5","a6","a7","a8","a9","aa","ab","ac","ad","ae","af","b0","b1","b2","b3","b4","b5","b6","b7","b8","b9","ba","bb","bc","bd","be","bf","c0","c1","c2","c3","c4","c5","c6","c7","c8","c9","ca","cb","cc","cd","ce","cf","d0","d1","d2","d3","d4","d5","d6","d7","d8","d9","da","db","dc","dd","de","df","e0","e1","e2","e3","e4","e5","e6","e7","e8","e9","ea","eb","ec","ed","ee","ef","f0","f1","f2","f3","f4","f5","f6","f7","f8","f9","fa","fb","fc","fd","fe","ff"],FB=1234567,a_=Math.PI/180,o_=180/Math.PI;function tl(){let n=Math.random()*4294967295|0,e=Math.random()*4294967295|0,t=Math.random()*4294967295|0,i=Math.random()*4294967295|0;return(ns[n&255]+ns[n>>8&255]+ns[n>>16&255]+ns[n>>24&255]+"-"+ns[e&255]+ns[e>>8&255]+"-"+ns[e>>16&15|64]+ns[e>>24&255]+"-"+ns[t&63|128]+ns[t>>8&255]+"-"+ns[t>>16&255]+ns[t>>24&255]+ns[i&255]+ns[i>>8&255]+ns[i>>16&255]+ns[i>>24&255]).toLowerCase()}function Tn(n,e,t){return Math.max(e,Math.min(t,n))}function XO(n,e){return(n%e+e)%e}function jj(n,e,t,i,r){return i+(n-e)*(r-i)/(t-e)}function Qj(n,e,t){return n!==e?(t-n)/(e-n):0}function Aw(n,e,t){return(1-t)*n+t*e}function Xj(n,e,t,i){return Aw(n,e,1-Math.exp(-t*i))}function Yj(n,e=1){return e-Math.abs(XO(n,e*2)-e)}function Kj(n,e,t){return n<=e?0:n>=t?1:(n=(n-e)/(t-e),n*n*(3-2*n))}function Zj(n,e,t){return n<=e?0:n>=t?1:(n=(n-e)/(t-e),n*n*n*(n*(n*6-15)+10))}function $j(n,e){return n+Math.floor(Math.random()*(e-n+1))}function Jj(n,e){return n+Math.random()*(e-n)}function eQ(n){return n*(.5-Math.random())}function tQ(n){n!==void 0&&(FB=n);let e=FB+=1831565813;return e=Math.imul(e^e>>>15,e|1),e^=e+Math.imul(e^e>>>7,e|61),((e^e>>>14)>>>0)/4294967296}function nQ(n){return n*a_}function iQ(n){return n*o_}function rQ(n){return n>0&&Number.isInteger(n)&&2**Math.round(Math.log2(n))===n}function aQ(n){return Math.pow(2,Math.ceil(Math.log(n)/Math.LN2))}function sQ(n){return Math.pow(2,Math.floor(Math.log(n)/Math.LN2))}function oQ(n,e,t,i,r){let a=Math.cos,s=Math.sin,l=a(t/2),c=s(t/2),f=a((e+i)/2),p=s((e+i)/2),h=a((e-i)/2),_=s((e-i)/2),g=a((i-e)/2),E=s((i-e)/2);switch(r){case"XYX":n.set(l*p,c*h,c*_,l*f);break;case"YZY":n.set(c*_,l*p,c*h,l*f);break;case"ZXZ":n.set(c*h,c*_,l*p,l*f);break;case"XZX":n.set(l*p,c*E,c*g,l*f);break;case"YXY":n.set(c*g,l*p,c*E,l*f);break;case"ZYZ":n.set(c*E,c*g,l*p,l*f);break;default:Ft("MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: "+r)}}function Ts(n,e){switch(e.constructor){case Float32Array:return n;case Uint32Array:return n/4294967295;case Uint16Array:return n/65535;case Uint8Array:case Uint8ClampedArray:return n/255;case Int32Array:return Math.max(n/2147483647,-1);case Int16Array:return Math.max(n/32767,-1);case Int8Array:return Math.max(n/127,-1);default:throw new Error("THREE.MathUtils: Invalid component type.")}}function Pn(n,e){switch(e.constructor){case Float32Array:return n;case Uint32Array:return Math.round(n*4294967295);case Uint16Array:return Math.round(n*65535);case Uint8Array:case Uint8ClampedArray:return Math.round(n*255);case Int32Array:return Math.round(n*2147483647);case Int16Array:return Math.round(n*32767);case Int8Array:return Math.round(n*127);default:throw new Error("THREE.MathUtils: Invalid component type.")}}var w2={DEG2RAD:a_,RAD2DEG:o_,generateUUID:tl,clamp:Tn,euclideanModulo:XO,mapLinear:jj,inverseLerp:Qj,lerp:Aw,damp:Xj,pingpong:Yj,smoothstep:Kj,smootherstep:Zj,randInt:$j,randFloat:Jj,randFloatSpread:eQ,seededRandom:tQ,degToRad:nQ,radToDeg:iQ,isPowerOfTwo:rQ,ceilPowerOfTwo:aQ,floorPowerOfTwo:sQ,setQuaternionFromProperEuler:oQ,normalize:Pn,denormalize:Ts},ut=class n{static{n.prototype.isVector2=!0}constructor(e=0,t=0){this.x=e,this.y=t}get width(){return this.x}set width(e){this.x=e}get height(){return this.y}set height(e){this.y=e}set(e,t){return this.x=e,this.y=t,this}setScalar(e){return this.x=e,this.y=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;default:throw new Error("THREE.Vector2: index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;default:throw new Error("THREE.Vector2: index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y)}copy(e){return this.x=e.x,this.y=e.y,this}add(e){return this.x+=e.x,this.y+=e.y,this}addScalar(e){return this.x+=e,this.y+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this}sub(e){return this.x-=e.x,this.y-=e.y,this}subScalar(e){return this.x-=e,this.y-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this}multiply(e){return this.x*=e.x,this.y*=e.y,this}multiplyScalar(e){return this.x*=e,this.y*=e,this}divide(e){return this.x/=e.x,this.y/=e.y,this}divideScalar(e){return this.multiplyScalar(1/e)}applyMatrix3(e){let t=this.x,i=this.y,r=e.elements;return this.x=r[0]*t+r[3]*i+r[6],this.y=r[1]*t+r[4]*i+r[7],this}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this}clamp(e,t){return this.x=Tn(this.x,e.x,t.x),this.y=Tn(this.y,e.y,t.y),this}clampScalar(e,t){return this.x=Tn(this.x,e,t),this.y=Tn(this.y,e,t),this}clampLength(e,t){let i=this.length();return this.divideScalar(i||1).multiplyScalar(Tn(i,e,t))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this}negate(){return this.x=-this.x,this.y=-this.y,this}dot(e){return this.x*e.x+this.y*e.y}cross(e){return this.x*e.y-this.y*e.x}lengthSq(){return this.x*this.x+this.y*this.y}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)}normalize(){return this.divideScalar(this.length()||1)}angle(){return Math.atan2(-this.y,-this.x)+Math.PI}angleTo(e){let t=Math.sqrt(this.lengthSq()*e.lengthSq());if(t===0)return Math.PI/2;let i=this.dot(e)/t;return Math.acos(Tn(i,-1,1))}distanceTo(e){return Math.sqrt(this.distanceToSquared(e))}distanceToSquared(e){let t=this.x-e.x,i=this.y-e.y;return t*t+i*i}manhattanDistanceTo(e){return Math.abs(this.x-e.x)+Math.abs(this.y-e.y)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this}lerpVectors(e,t,i){return this.x=e.x+(t.x-e.x)*i,this.y=e.y+(t.y-e.y)*i,this}equals(e){return e.x===this.x&&e.y===this.y}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e}fromBufferAttribute(e,t){return this.x=e.getX(t),this.y=e.getY(t),this}rotateAround(e,t){let i=Math.cos(t),r=Math.sin(t),a=this.x-e.x,s=this.y-e.y;return this.x=a*i-s*r+e.x,this.y=a*r+s*i+e.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y}},Lr=class{constructor(e=0,t=0,i=0,r=1){this.isQuaternion=!0,this._x=e,this._y=t,this._z=i,this._w=r}static slerpFlat(e,t,i,r,a,s,l){let c=i[r+0],f=i[r+1],p=i[r+2],h=i[r+3],_=a[s+0],g=a[s+1],E=a[s+2],x=a[s+3];if(h!==x||c!==_||f!==g||p!==E){let S=c*_+f*g+p*E+h*x;S<0&&(_=-_,g=-g,E=-E,x=-x,S=-S);let v=1-l;if(S<.9995){let M=Math.acos(S),O=Math.sin(M);v=Math.sin(v*M)/O,l=Math.sin(l*M)/O,c=c*v+_*l,f=f*v+g*l,p=p*v+E*l,h=h*v+x*l}else{c=c*v+_*l,f=f*v+g*l,p=p*v+E*l,h=h*v+x*l;let M=1/Math.sqrt(c*c+f*f+p*p+h*h);c*=M,f*=M,p*=M,h*=M}}e[t]=c,e[t+1]=f,e[t+2]=p,e[t+3]=h}static multiplyQuaternionsFlat(e,t,i,r,a,s){let l=i[r],c=i[r+1],f=i[r+2],p=i[r+3],h=a[s],_=a[s+1],g=a[s+2],E=a[s+3];return e[t]=l*E+p*h+c*g-f*_,e[t+1]=c*E+p*_+f*h-l*g,e[t+2]=f*E+p*g+l*_-c*h,e[t+3]=p*E-l*h-c*_-f*g,e}get x(){return this._x}set x(e){this._x=e,this._onChangeCallback()}get y(){return this._y}set y(e){this._y=e,this._onChangeCallback()}get z(){return this._z}set z(e){this._z=e,this._onChangeCallback()}get w(){return this._w}set w(e){this._w=e,this._onChangeCallback()}set(e,t,i,r){return this._x=e,this._y=t,this._z=i,this._w=r,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(e){return this._x=e.x,this._y=e.y,this._z=e.z,this._w=e.w,this._onChangeCallback(),this}setFromEuler(e,t=!0){let i=e._x,r=e._y,a=e._z,s=e._order,l=Math.cos,c=Math.sin,f=l(i/2),p=l(r/2),h=l(a/2),_=c(i/2),g=c(r/2),E=c(a/2);switch(s){case"XYZ":this._x=_*p*h+f*g*E,this._y=f*g*h-_*p*E,this._z=f*p*E+_*g*h,this._w=f*p*h-_*g*E;break;case"YXZ":this._x=_*p*h+f*g*E,this._y=f*g*h-_*p*E,this._z=f*p*E-_*g*h,this._w=f*p*h+_*g*E;break;case"ZXY":this._x=_*p*h-f*g*E,this._y=f*g*h+_*p*E,this._z=f*p*E+_*g*h,this._w=f*p*h-_*g*E;break;case"ZYX":this._x=_*p*h-f*g*E,this._y=f*g*h+_*p*E,this._z=f*p*E-_*g*h,this._w=f*p*h+_*g*E;break;case"YZX":this._x=_*p*h+f*g*E,this._y=f*g*h+_*p*E,this._z=f*p*E-_*g*h,this._w=f*p*h-_*g*E;break;case"XZY":this._x=_*p*h-f*g*E,this._y=f*g*h-_*p*E,this._z=f*p*E+_*g*h,this._w=f*p*h+_*g*E;break;default:Ft("Quaternion: .setFromEuler() encountered an unknown order: "+s)}return t===!0&&this._onChangeCallback(),this}setFromAxisAngle(e,t){let i=t/2,r=Math.sin(i);return this._x=e.x*r,this._y=e.y*r,this._z=e.z*r,this._w=Math.cos(i),this._onChangeCallback(),this}setFromRotationMatrix(e){let t=e.elements,i=t[0],r=t[4],a=t[8],s=t[1],l=t[5],c=t[9],f=t[2],p=t[6],h=t[10],_=i+l+h;if(_>0){let g=.5/Math.sqrt(_+1);this._w=.25/g,this._x=(p-c)*g,this._y=(a-f)*g,this._z=(s-r)*g}else if(i>l&&i>h){let g=2*Math.sqrt(1+i-l-h);this._w=(p-c)/g,this._x=.25*g,this._y=(r+s)/g,this._z=(a+f)/g}else if(l>h){let g=2*Math.sqrt(1+l-i-h);this._w=(a-f)/g,this._x=(r+s)/g,this._y=.25*g,this._z=(c+p)/g}else{let g=2*Math.sqrt(1+h-i-l);this._w=(s-r)/g,this._x=(a+f)/g,this._y=(c+p)/g,this._z=.25*g}return this._onChangeCallback(),this}setFromUnitVectors(e,t){let i=e.dot(t)+1;return i<1e-8?(i=0,Math.abs(e.x)>Math.abs(e.z)?(this._x=-e.y,this._y=e.x,this._z=0,this._w=i):(this._x=0,this._y=-e.z,this._z=e.y,this._w=i)):(this._x=e.y*t.z-e.z*t.y,this._y=e.z*t.x-e.x*t.z,this._z=e.x*t.y-e.y*t.x,this._w=i),this.normalize()}angleTo(e){return 2*Math.acos(Math.abs(Tn(this.dot(e),-1,1)))}rotateTowards(e,t){let i=this.angleTo(e);if(i===0)return this;let r=Math.min(1,t/i);return this.slerp(e,r),this}identity(){return this.set(0,0,0,1)}invert(){return this.conjugate()}conjugate(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onChangeCallback(),this}dot(e){return this._x*e._x+this._y*e._y+this._z*e._z+this._w*e._w}lengthSq(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w}length(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)}normalize(){let e=this.length();return e===0?(this._x=0,this._y=0,this._z=0,this._w=1):(e=1/e,this._x=this._x*e,this._y=this._y*e,this._z=this._z*e,this._w=this._w*e),this._onChangeCallback(),this}multiply(e){return this.multiplyQuaternions(this,e)}premultiply(e){return this.multiplyQuaternions(e,this)}multiplyQuaternions(e,t){let i=e._x,r=e._y,a=e._z,s=e._w,l=t._x,c=t._y,f=t._z,p=t._w;return this._x=i*p+s*l+r*f-a*c,this._y=r*p+s*c+a*l-i*f,this._z=a*p+s*f+i*c-r*l,this._w=s*p-i*l-r*c-a*f,this._onChangeCallback(),this}slerp(e,t){let i=e._x,r=e._y,a=e._z,s=e._w,l=this.dot(e);l<0&&(i=-i,r=-r,a=-a,s=-s,l=-l);let c=1-t;if(l<.9995){let f=Math.acos(l),p=Math.sin(f);c=Math.sin(c*f)/p,t=Math.sin(t*f)/p,this._x=this._x*c+i*t,this._y=this._y*c+r*t,this._z=this._z*c+a*t,this._w=this._w*c+s*t,this._onChangeCallback()}else this._x=this._x*c+i*t,this._y=this._y*c+r*t,this._z=this._z*c+a*t,this._w=this._w*c+s*t,this.normalize();return this}slerpQuaternions(e,t,i){return this.copy(e).slerp(t,i)}random(){let e=2*Math.PI*Math.random(),t=2*Math.PI*Math.random(),i=Math.random(),r=Math.sqrt(1-i),a=Math.sqrt(i);return this.set(r*Math.sin(e),r*Math.cos(e),a*Math.sin(t),a*Math.cos(t))}equals(e){return e._x===this._x&&e._y===this._y&&e._z===this._z&&e._w===this._w}fromArray(e,t=0){return this._x=e[t],this._y=e[t+1],this._z=e[t+2],this._w=e[t+3],this._onChangeCallback(),this}toArray(e=[],t=0){return e[t]=this._x,e[t+1]=this._y,e[t+2]=this._z,e[t+3]=this._w,e}fromBufferAttribute(e,t){return this._x=e.getX(t),this._y=e.getY(t),this._z=e.getZ(t),this._w=e.getW(t),this._onChangeCallback(),this}toJSON(){return this.toArray()}_onChange(e){return this._onChangeCallback=e,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._w}},ve=class n{static{n.prototype.isVector3=!0}constructor(e=0,t=0,i=0){this.x=e,this.y=t,this.z=i}set(e,t,i){return i===void 0&&(i=this.z),this.x=e,this.y=t,this.z=i,this}setScalar(e){return this.x=e,this.y=e,this.z=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setZ(e){return this.z=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;case 2:this.z=t;break;default:throw new Error("THREE.Vector3: index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("THREE.Vector3: index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(e){return this.x=e.x,this.y=e.y,this.z=e.z,this}add(e){return this.x+=e.x,this.y+=e.y,this.z+=e.z,this}addScalar(e){return this.x+=e,this.y+=e,this.z+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this.z=e.z+t.z,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this.z+=e.z*t,this}sub(e){return this.x-=e.x,this.y-=e.y,this.z-=e.z,this}subScalar(e){return this.x-=e,this.y-=e,this.z-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.z,this}multiply(e){return this.x*=e.x,this.y*=e.y,this.z*=e.z,this}multiplyScalar(e){return this.x*=e,this.y*=e,this.z*=e,this}multiplyVectors(e,t){return this.x=e.x*t.x,this.y=e.y*t.y,this.z=e.z*t.z,this}applyEuler(e){return this.applyQuaternion(PB.setFromEuler(e))}applyAxisAngle(e,t){return this.applyQuaternion(PB.setFromAxisAngle(e,t))}applyMatrix3(e){let t=this.x,i=this.y,r=this.z,a=e.elements;return this.x=a[0]*t+a[3]*i+a[6]*r,this.y=a[1]*t+a[4]*i+a[7]*r,this.z=a[2]*t+a[5]*i+a[8]*r,this}applyNormalMatrix(e){return this.applyMatrix3(e).normalize()}applyMatrix4(e){let t=this.x,i=this.y,r=this.z,a=e.elements,s=1/(a[3]*t+a[7]*i+a[11]*r+a[15]);return this.x=(a[0]*t+a[4]*i+a[8]*r+a[12])*s,this.y=(a[1]*t+a[5]*i+a[9]*r+a[13])*s,this.z=(a[2]*t+a[6]*i+a[10]*r+a[14])*s,this}applyQuaternion(e){let t=this.x,i=this.y,r=this.z,a=e.x,s=e.y,l=e.z,c=e.w,f=2*(s*r-l*i),p=2*(l*t-a*r),h=2*(a*i-s*t);return this.x=t+c*f+s*h-l*p,this.y=i+c*p+l*f-a*h,this.z=r+c*h+a*p-s*f,this}project(e){return this.applyMatrix4(e.matrixWorldInverse).applyMatrix4(e.projectionMatrix)}unproject(e){return this.applyMatrix4(e.projectionMatrixInverse).applyMatrix4(e.matrixWorld)}transformDirection(e){let t=this.x,i=this.y,r=this.z,a=e.elements;return this.x=a[0]*t+a[4]*i+a[8]*r,this.y=a[1]*t+a[5]*i+a[9]*r,this.z=a[2]*t+a[6]*i+a[10]*r,this.normalize()}divide(e){return this.x/=e.x,this.y/=e.y,this.z/=e.z,this}divideScalar(e){return this.multiplyScalar(1/e)}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this.z=Math.min(this.z,e.z),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this.z=Math.max(this.z,e.z),this}clamp(e,t){return this.x=Tn(this.x,e.x,t.x),this.y=Tn(this.y,e.y,t.y),this.z=Tn(this.z,e.z,t.z),this}clampScalar(e,t){return this.x=Tn(this.x,e,t),this.y=Tn(this.y,e,t),this.z=Tn(this.z,e,t),this}clampLength(e,t){let i=this.length();return this.divideScalar(i||1).multiplyScalar(Tn(i,e,t))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}dot(e){return this.x*e.x+this.y*e.y+this.z*e.z}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)}normalize(){return this.divideScalar(this.length()||1)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this.z+=(e.z-this.z)*t,this}lerpVectors(e,t,i){return this.x=e.x+(t.x-e.x)*i,this.y=e.y+(t.y-e.y)*i,this.z=e.z+(t.z-e.z)*i,this}cross(e){return this.crossVectors(this,e)}crossVectors(e,t){let i=e.x,r=e.y,a=e.z,s=t.x,l=t.y,c=t.z;return this.x=r*c-a*l,this.y=a*s-i*c,this.z=i*l-r*s,this}projectOnVector(e){let t=e.lengthSq();if(t===0)return this.set(0,0,0);let i=e.dot(this)/t;return this.copy(e).multiplyScalar(i)}projectOnPlane(e){return gk.copy(this).projectOnVector(e),this.sub(gk)}reflect(e){return this.sub(gk.copy(e).multiplyScalar(2*this.dot(e)))}angleTo(e){let t=Math.sqrt(this.lengthSq()*e.lengthSq());if(t===0)return Math.PI/2;let i=this.dot(e)/t;return Math.acos(Tn(i,-1,1))}distanceTo(e){return Math.sqrt(this.distanceToSquared(e))}distanceToSquared(e){let t=this.x-e.x,i=this.y-e.y,r=this.z-e.z;return t*t+i*i+r*r}manhattanDistanceTo(e){return Math.abs(this.x-e.x)+Math.abs(this.y-e.y)+Math.abs(this.z-e.z)}setFromSpherical(e){return this.setFromSphericalCoords(e.radius,e.phi,e.theta)}setFromSphericalCoords(e,t,i){let r=Math.sin(t)*e;return this.x=r*Math.sin(i),this.y=Math.cos(t)*e,this.z=r*Math.cos(i),this}setFromCylindrical(e){return this.setFromCylindricalCoords(e.radius,e.theta,e.y)}setFromCylindricalCoords(e,t,i){return this.x=e*Math.sin(t),this.y=i,this.z=e*Math.cos(t),this}setFromMatrixPosition(e){let t=e.elements;return this.x=t[12],this.y=t[13],this.z=t[14],this}setFromMatrixScale(e){let t=this.setFromMatrixColumn(e,0).length(),i=this.setFromMatrixColumn(e,1).length(),r=this.setFromMatrixColumn(e,2).length();return this.x=t,this.y=i,this.z=r,this}setFromMatrixColumn(e,t){return this.fromArray(e.elements,t*4)}setFromMatrix3Column(e,t){return this.fromArray(e.elements,t*3)}setFromEuler(e){return this.x=e._x,this.y=e._y,this.z=e._z,this}setFromColor(e){return this.x=e.r,this.y=e.g,this.z=e.b,this}equals(e){return e.x===this.x&&e.y===this.y&&e.z===this.z}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this.z=e[t+2],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e[t+2]=this.z,e}fromBufferAttribute(e,t){return this.x=e.getX(t),this.y=e.getY(t),this.z=e.getZ(t),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}randomDirection(){let e=Math.random()*Math.PI*2,t=Math.random()*2-1,i=Math.sqrt(1-t*t);return this.x=i*Math.cos(e),this.y=t,this.z=i*Math.sin(e),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z}},gk=new ve,PB=new Lr,In=class n{static{n.prototype.isMatrix3=!0}constructor(e,t,i,r,a,s,l,c,f){this.elements=[1,0,0,0,1,0,0,0,1],e!==void 0&&this.set(e,t,i,r,a,s,l,c,f)}set(e,t,i,r,a,s,l,c,f){let p=this.elements;return p[0]=e,p[1]=r,p[2]=l,p[3]=t,p[4]=a,p[5]=c,p[6]=i,p[7]=s,p[8]=f,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(e){let t=this.elements,i=e.elements;return t[0]=i[0],t[1]=i[1],t[2]=i[2],t[3]=i[3],t[4]=i[4],t[5]=i[5],t[6]=i[6],t[7]=i[7],t[8]=i[8],this}extractBasis(e,t,i){return e.setFromMatrix3Column(this,0),t.setFromMatrix3Column(this,1),i.setFromMatrix3Column(this,2),this}setFromMatrix4(e){let t=e.elements;return this.set(t[0],t[4],t[8],t[1],t[5],t[9],t[2],t[6],t[10]),this}multiply(e){return this.multiplyMatrices(this,e)}premultiply(e){return this.multiplyMatrices(e,this)}multiplyMatrices(e,t){let i=e.elements,r=t.elements,a=this.elements,s=i[0],l=i[3],c=i[6],f=i[1],p=i[4],h=i[7],_=i[2],g=i[5],E=i[8],x=r[0],S=r[3],v=r[6],M=r[1],O=r[4],k=r[7],q=r[2],G=r[5],Q=r[8];return a[0]=s*x+l*M+c*q,a[3]=s*S+l*O+c*G,a[6]=s*v+l*k+c*Q,a[1]=f*x+p*M+h*q,a[4]=f*S+p*O+h*G,a[7]=f*v+p*k+h*Q,a[2]=_*x+g*M+E*q,a[5]=_*S+g*O+E*G,a[8]=_*v+g*k+E*Q,this}multiplyScalar(e){let t=this.elements;return t[0]*=e,t[3]*=e,t[6]*=e,t[1]*=e,t[4]*=e,t[7]*=e,t[2]*=e,t[5]*=e,t[8]*=e,this}determinant(){let e=this.elements,t=e[0],i=e[1],r=e[2],a=e[3],s=e[4],l=e[5],c=e[6],f=e[7],p=e[8];return t*s*p-t*l*f-i*a*p+i*l*c+r*a*f-r*s*c}invert(){let e=this.elements,t=e[0],i=e[1],r=e[2],a=e[3],s=e[4],l=e[5],c=e[6],f=e[7],p=e[8],h=p*s-l*f,_=l*c-p*a,g=f*a-s*c,E=t*h+i*_+r*g;if(E===0)return this.set(0,0,0,0,0,0,0,0,0);let x=1/E;return e[0]=h*x,e[1]=(r*f-p*i)*x,e[2]=(l*i-r*s)*x,e[3]=_*x,e[4]=(p*t-r*c)*x,e[5]=(r*a-l*t)*x,e[6]=g*x,e[7]=(i*c-f*t)*x,e[8]=(s*t-i*a)*x,this}transpose(){let e,t=this.elements;return e=t[1],t[1]=t[3],t[3]=e,e=t[2],t[2]=t[6],t[6]=e,e=t[5],t[5]=t[7],t[7]=e,this}getNormalMatrix(e){return this.setFromMatrix4(e).invert().transpose()}transposeIntoArray(e){let t=this.elements;return e[0]=t[0],e[1]=t[3],e[2]=t[6],e[3]=t[1],e[4]=t[4],e[5]=t[7],e[6]=t[2],e[7]=t[5],e[8]=t[8],this}setUvTransform(e,t,i,r,a,s,l){let c=Math.cos(a),f=Math.sin(a);return this.set(i*c,i*f,-i*(c*s+f*l)+s+e,-r*f,r*c,-r*(-f*s+c*l)+l+t,0,0,1),this}scale(e,t){return Uc("Matrix3: .scale() is deprecated. Use .makeScale() instead."),this.premultiply(vk.makeScale(e,t)),this}rotate(e){return Uc("Matrix3: .rotate() is deprecated. Use .makeRotation() instead."),this.premultiply(vk.makeRotation(-e)),this}translate(e,t){return Uc("Matrix3: .translate() is deprecated. Use .makeTranslation() instead."),this.premultiply(vk.makeTranslation(e,t)),this}makeTranslation(e,t){return e.isVector2?this.set(1,0,e.x,0,1,e.y,0,0,1):this.set(1,0,e,0,1,t,0,0,1),this}makeRotation(e){let t=Math.cos(e),i=Math.sin(e);return this.set(t,-i,0,i,t,0,0,0,1),this}makeScale(e,t){return this.set(e,0,0,0,t,0,0,0,1),this}equals(e){let t=this.elements,i=e.elements;for(let r=0;r<9;r++)if(t[r]!==i[r])return!1;return!0}fromArray(e,t=0){for(let i=0;i<9;i++)this.elements[i]=e[i+t];return this}toArray(e=[],t=0){let i=this.elements;return e[t]=i[0],e[t+1]=i[1],e[t+2]=i[2],e[t+3]=i[3],e[t+4]=i[4],e[t+5]=i[5],e[t+6]=i[6],e[t+7]=i[7],e[t+8]=i[8],e}clone(){return new this.constructor().fromArray(this.elements)}},vk=new In,UB=new In().set(.4123908,.3575843,.1804808,.212639,.7151687,.0721923,.0193308,.1191948,.9505322),zB=new In().set(3.2409699,-1.5373832,-.4986108,-.9692436,1.8759675,.0415551,.0556301,-.203977,1.0569715);function lQ(){let n={enabled:!0,workingColorSpace:Oh,spaces:{},convert:function(r,a,s){return this.enabled===!1||a===s||!a||!s||(this.spaces[a].transfer===xi&&(r.r=Gf(r.r),r.g=Gf(r.g),r.b=Gf(r.b)),this.spaces[a].primaries!==this.spaces[s].primaries&&(r.applyMatrix3(this.spaces[a].toXYZ),r.applyMatrix3(this.spaces[s].fromXYZ)),this.spaces[s].transfer===xi&&(r.r=a0(r.r),r.g=a0(r.g),r.b=a0(r.b))),r},workingToColorSpace:function(r,a){return this.convert(r,this.workingColorSpace,a)},colorSpaceToWorking:function(r,a){return this.convert(r,a,this.workingColorSpace)},getPrimaries:function(r){return this.spaces[r].primaries},getTransfer:function(r){return r===jc?c0:this.spaces[r].transfer},getToneMappingMode:function(r){return this.spaces[r].outputColorSpaceConfig.toneMappingMode||"standard"},getLuminanceCoefficients:function(r,a=this.workingColorSpace){return r.fromArray(this.spaces[a].luminanceCoefficients)},define:function(r){Object.assign(this.spaces,r)},_getMatrix:function(r,a,s){return r.copy(this.spaces[a].toXYZ).multiply(this.spaces[s].fromXYZ)},_getDrawingBufferColorSpace:function(r){return this.spaces[r].outputColorSpaceConfig.drawingBufferColorSpace},_getUnpackColorSpace:function(r=this.workingColorSpace){return this.spaces[r].workingColorSpaceConfig.unpackColorSpace},fromWorkingColorSpace:function(r,a){return Uc("ColorManagement: .fromWorkingColorSpace() has been renamed to .workingToColorSpace()."),n.workingToColorSpace(r,a)},toWorkingColorSpace:function(r,a){return Uc("ColorManagement: .toWorkingColorSpace() has been renamed to .colorSpaceToWorking()."),n.colorSpaceToWorking(r,a)}},e=[.64,.33,.3,.6,.15,.06],t=[.2126,.7152,.0722],i=[.3127,.329];return n.define({[Oh]:{primaries:e,whitePoint:i,transfer:c0,toXYZ:UB,fromXYZ:zB,luminanceCoefficients:t,workingColorSpaceConfig:{unpackColorSpace:Yr},outputColorSpaceConfig:{drawingBufferColorSpace:Yr}},[Yr]:{primaries:e,whitePoint:i,transfer:xi,toXYZ:UB,fromXYZ:zB,luminanceCoefficients:t,outputColorSpaceConfig:{drawingBufferColorSpace:Yr}}}),n}var Gn=lQ();function Gf(n){return n<.04045?n*.0773993808:Math.pow(n*.9478672986+.0521327014,2.4)}function a0(n){return n<.0031308?n*12.92:1.055*Math.pow(n,.41666)-.055}var Uy,zw=class{static getDataURL(e,t="image/png"){if(/^data:/i.test(e.src)||typeof HTMLCanvasElement>"u")return e.src;let i;if(e instanceof HTMLCanvasElement)i=e;else{Uy===void 0&&(Uy=f0("canvas")),Uy.width=e.width,Uy.height=e.height;let r=Uy.getContext("2d");e instanceof ImageData?r.putImageData(e,0,0):r.drawImage(e,0,0,e.width,e.height),i=Uy}return i.toDataURL(t)}static sRGBToLinear(e){if(typeof HTMLImageElement<"u"&&e instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&e instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&e instanceof ImageBitmap){let t=f0("canvas");t.width=e.width,t.height=e.height;let i=t.getContext("2d");i.drawImage(e,0,0,e.width,e.height);let r=i.getImageData(0,0,e.width,e.height),a=r.data;for(let s=0;s<a.length;s++)a[s]=Gf(a[s]/255)*255;return i.putImageData(r,0,0),t}else if(e.data){let t=e.data.slice(0);for(let i=0;i<t.length;i++)t instanceof Uint8Array||t instanceof Uint8ClampedArray?t[i]=Math.floor(Gf(t[i]/255)*255):t[i]=Gf(t[i]);return{data:t,width:e.width,height:e.height}}else return Ft("ImageUtils.sRGBToLinear(): Unsupported image type. No color space conversion applied."),e}},uQ=0,Xl=class{constructor(e=null){this.isTextureSource=!0,Object.defineProperty(this,"id",{value:uQ++}),this.uuid=tl(),this.data=e,this.dataReady=!0,this.version=0}getSize(e){let t=this.data;return typeof HTMLVideoElement<"u"&&t instanceof HTMLVideoElement?e.set(t.videoWidth,t.videoHeight,0):typeof VideoFrame<"u"&&t instanceof VideoFrame?e.set(t.displayWidth,t.displayHeight,0):t!==null?e.set(t.width,t.height,t.depth||0):e.set(0,0,0),e}set needsUpdate(e){e===!0&&this.version++}toJSON(e){let t=e===void 0||typeof e=="string";if(!t&&e.images[this.uuid]!==void 0)return e.images[this.uuid];let i={uuid:this.uuid,url:""},r=this.data;if(r!==null){let a;if(Array.isArray(r)){a=[];for(let s=0,l=r.length;s<l;s++)r[s].isDataTexture?a.push(yk(r[s].image)):a.push(yk(r[s]))}else a=yk(r);i.url=a}return t||(e.images[this.uuid]=i),i}};function yk(n){return typeof HTMLImageElement<"u"&&n instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&n instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&n instanceof ImageBitmap?zw.getDataURL(n):n.data?{data:Array.from(n.data),width:n.width,height:n.height,type:n.data.constructor.name}:(Ft("Texture: Unable to serialize Texture."),{})}var JA=class extends Xl{constructor(e=null){Uc('Source: "Source" has been renamed to "TextureSource". Please update your code to use "THREE.TextureSource" instead.'),super(e),this.isSource=!0}},cQ=0,bk=new ve,Sr=class n extends po{constructor(e=n.DEFAULT_IMAGE,t=n.DEFAULT_MAPPING,i=Ms,r=Ms,a=Ji,s=Fu,l=wa,c=ja,f=n.DEFAULT_ANISOTROPY,p=jc){super(),this.isTexture=!0,Object.defineProperty(this,"id",{value:cQ++}),this.uuid=tl(),this.name="",this.source=new Xl(e),this.mipmaps=[],this.mapping=t,this.channel=0,this.wrapS=i,this.wrapT=r,this.magFilter=a,this.minFilter=s,this.anisotropy=f,this.format=l,this.internalFormat=null,this.type=c,this.offset=new ut(0,0),this.repeat=new ut(1,1),this.center=new ut(0,0),this.rotation=0,this.matrixAutoUpdate=!0,this.matrix=new In,this.generateMipmaps=!0,this.premultiplyAlpha=!1,this.flipY=!0,this.unpackAlignment=4,this.colorSpace=p,this.userData={},this.updateRanges=[],this.version=0,this.onUpdate=null,this.renderTarget=null,this.isRenderTargetTexture=!1,this.isArrayTexture=!!(e&&e.depth&&e.depth>1),this.pmremVersion=0,this.normalized=!1}get width(){return this.source.getSize(bk).x}get height(){return this.source.getSize(bk).y}get depth(){return this.source.getSize(bk).z}get image(){return this.source.data}set image(e){this.source.data=e}updateMatrix(){this.matrix.setUvTransform(this.offset.x,this.offset.y,this.repeat.x,this.repeat.y,this.rotation,this.center.x,this.center.y)}addUpdateRange(e,t){this.updateRanges.push({start:e,count:t})}clearUpdateRanges(){this.updateRanges.length=0}clone(){return new this.constructor().copy(this)}copy(e){return this.name=e.name,this.source=e.source,this.mipmaps=e.mipmaps.slice(0),this.mapping=e.mapping,this.channel=e.channel,this.wrapS=e.wrapS,this.wrapT=e.wrapT,this.magFilter=e.magFilter,this.minFilter=e.minFilter,this.anisotropy=e.anisotropy,this.format=e.format,this.internalFormat=e.internalFormat,this.type=e.type,this.normalized=e.normalized,this.offset.copy(e.offset),this.repeat.copy(e.repeat),this.center.copy(e.center),this.rotation=e.rotation,this.matrixAutoUpdate=e.matrixAutoUpdate,this.matrix.copy(e.matrix),this.generateMipmaps=e.generateMipmaps,this.premultiplyAlpha=e.premultiplyAlpha,this.flipY=e.flipY,this.unpackAlignment=e.unpackAlignment,this.colorSpace=e.colorSpace,this.renderTarget=e.renderTarget,this.isRenderTargetTexture=e.isRenderTargetTexture,this.isArrayTexture=e.isArrayTexture,this.userData=JSON.parse(JSON.stringify(e.userData)),this.needsUpdate=!0,this}setValues(e){for(let t in e){let i=e[t];if(i===void 0){Ft(`Texture.setValues(): parameter '${t}' has value of undefined.`);continue}let r=this[t];if(r===void 0){Ft(`Texture.setValues(): property '${t}' does not exist.`);continue}r&&i&&r.isVector2&&i.isVector2||r&&i&&r.isVector3&&i.isVector3||r&&i&&r.isMatrix3&&i.isMatrix3?r.copy(i):this[t]=i}}toJSON(e){let t=e===void 0||typeof e=="string";if(!t&&e.textures[this.uuid]!==void 0)return e.textures[this.uuid];let i={metadata:{version:4.7,type:"Texture",generator:"Texture.toJSON"},uuid:this.uuid,name:this.name,image:this.source.toJSON(e).uuid,mapping:this.mapping,channel:this.channel,repeat:[this.repeat.x,this.repeat.y],offset:[this.offset.x,this.offset.y],center:[this.center.x,this.center.y],rotation:this.rotation,wrap:[this.wrapS,this.wrapT],format:this.format,internalFormat:this.internalFormat,type:this.type,normalized:this.normalized,colorSpace:this.colorSpace,minFilter:this.minFilter,magFilter:this.magFilter,anisotropy:this.anisotropy,flipY:this.flipY,generateMipmaps:this.generateMipmaps,premultiplyAlpha:this.premultiplyAlpha,unpackAlignment:this.unpackAlignment};return Object.keys(this.userData).length>0&&(i.userData=this.userData),t||(e.textures[this.uuid]=i),i}dispose(){this.dispatchEvent({type:"dispose"})}transformUv(e){if(this.mapping!==Kx)return e;if(e.applyMatrix3(this.matrix),e.x<0||e.x>1)switch(this.wrapS){case s0:e.x=e.x-Math.floor(e.x);break;case Ms:e.x=e.x<0?0:1;break;case o0:Math.abs(Math.floor(e.x)%2)===1?e.x=Math.ceil(e.x)-e.x:e.x=e.x-Math.floor(e.x);break}if(e.y<0||e.y>1)switch(this.wrapT){case s0:e.y=e.y-Math.floor(e.y);break;case Ms:e.y=e.y<0?0:1;break;case o0:Math.abs(Math.floor(e.y)%2)===1?e.y=Math.ceil(e.y)-e.y:e.y=e.y-Math.floor(e.y);break}return this.flipY&&(e.y=1-e.y),e}set needsUpdate(e){e===!0&&(this.version++,this.source.needsUpdate=!0)}set needsPMREMUpdate(e){e===!0&&this.pmremVersion++}};Sr.DEFAULT_IMAGE=null;Sr.DEFAULT_MAPPING=Kx;Sr.DEFAULT_ANISOTROPY=1;var Ni=class n{static{n.prototype.isVector4=!0}constructor(e=0,t=0,i=0,r=1){this.x=e,this.y=t,this.z=i,this.w=r}get width(){return this.z}set width(e){this.z=e}get height(){return this.w}set height(e){this.w=e}set(e,t,i,r){return this.x=e,this.y=t,this.z=i,this.w=r,this}setScalar(e){return this.x=e,this.y=e,this.z=e,this.w=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setZ(e){return this.z=e,this}setW(e){return this.w=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;case 2:this.z=t;break;case 3:this.w=t;break;default:throw new Error("THREE.Vector4: index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw new Error("THREE.Vector4: index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y,this.z,this.w)}copy(e){return this.x=e.x,this.y=e.y,this.z=e.z,this.w=e.w!==void 0?e.w:1,this}add(e){return this.x+=e.x,this.y+=e.y,this.z+=e.z,this.w+=e.w,this}addScalar(e){return this.x+=e,this.y+=e,this.z+=e,this.w+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this.z=e.z+t.z,this.w=e.w+t.w,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this.z+=e.z*t,this.w+=e.w*t,this}sub(e){return this.x-=e.x,this.y-=e.y,this.z-=e.z,this.w-=e.w,this}subScalar(e){return this.x-=e,this.y-=e,this.z-=e,this.w-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.z,this.w=e.w-t.w,this}multiply(e){return this.x*=e.x,this.y*=e.y,this.z*=e.z,this.w*=e.w,this}multiplyScalar(e){return this.x*=e,this.y*=e,this.z*=e,this.w*=e,this}applyMatrix4(e){let t=this.x,i=this.y,r=this.z,a=this.w,s=e.elements;return this.x=s[0]*t+s[4]*i+s[8]*r+s[12]*a,this.y=s[1]*t+s[5]*i+s[9]*r+s[13]*a,this.z=s[2]*t+s[6]*i+s[10]*r+s[14]*a,this.w=s[3]*t+s[7]*i+s[11]*r+s[15]*a,this}divide(e){return this.x/=e.x,this.y/=e.y,this.z/=e.z,this.w/=e.w,this}divideScalar(e){return this.multiplyScalar(1/e)}setAxisAngleFromQuaternion(e){this.w=2*Math.acos(e.w);let t=Math.sqrt(1-e.w*e.w);return t<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=e.x/t,this.y=e.y/t,this.z=e.z/t),this}setAxisAngleFromRotationMatrix(e){let t,i,r,a,c=e.elements,f=c[0],p=c[4],h=c[8],_=c[1],g=c[5],E=c[9],x=c[2],S=c[6],v=c[10];if(Math.abs(p-_)<.01&&Math.abs(h-x)<.01&&Math.abs(E-S)<.01){if(Math.abs(p+_)<.1&&Math.abs(h+x)<.1&&Math.abs(E+S)<.1&&Math.abs(f+g+v-3)<.1)return this.set(1,0,0,0),this;t=Math.PI;let O=(f+1)/2,k=(g+1)/2,q=(v+1)/2,G=(p+_)/4,Q=(h+x)/4,H=(E+S)/4;return O>k&&O>q?O<.01?(i=0,r=.707106781,a=.707106781):(i=Math.sqrt(O),r=G/i,a=Q/i):k>q?k<.01?(i=.707106781,r=0,a=.707106781):(r=Math.sqrt(k),i=G/r,a=H/r):q<.01?(i=.707106781,r=.707106781,a=0):(a=Math.sqrt(q),i=Q/a,r=H/a),this.set(i,r,a,t),this}let M=Math.sqrt((S-E)*(S-E)+(h-x)*(h-x)+(_-p)*(_-p));return Math.abs(M)<.001&&(M=1),this.x=(S-E)/M,this.y=(h-x)/M,this.z=(_-p)/M,this.w=Math.acos((f+g+v-1)/2),this}setFromMatrixPosition(e){let t=e.elements;return this.x=t[12],this.y=t[13],this.z=t[14],this.w=t[15],this}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this.z=Math.min(this.z,e.z),this.w=Math.min(this.w,e.w),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this.z=Math.max(this.z,e.z),this.w=Math.max(this.w,e.w),this}clamp(e,t){return this.x=Tn(this.x,e.x,t.x),this.y=Tn(this.y,e.y,t.y),this.z=Tn(this.z,e.z,t.z),this.w=Tn(this.w,e.w,t.w),this}clampScalar(e,t){return this.x=Tn(this.x,e,t),this.y=Tn(this.y,e,t),this.z=Tn(this.z,e,t),this.w=Tn(this.w,e,t),this}clampLength(e,t){let i=this.length();return this.divideScalar(i||1).multiplyScalar(Tn(i,e,t))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this.w=Math.floor(this.w),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this.w=Math.ceil(this.w),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this.w=Math.round(this.w),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this.w=Math.trunc(this.w),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this.w=-this.w,this}dot(e){return this.x*e.x+this.y*e.y+this.z*e.z+this.w*e.w}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)}normalize(){return this.divideScalar(this.length()||1)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this.z+=(e.z-this.z)*t,this.w+=(e.w-this.w)*t,this}lerpVectors(e,t,i){return this.x=e.x+(t.x-e.x)*i,this.y=e.y+(t.y-e.y)*i,this.z=e.z+(t.z-e.z)*i,this.w=e.w+(t.w-e.w)*i,this}equals(e){return e.x===this.x&&e.y===this.y&&e.z===this.z&&e.w===this.w}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this.z=e[t+2],this.w=e[t+3],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e[t+2]=this.z,e[t+3]=this.w,e}fromBufferAttribute(e,t){return this.x=e.getX(t),this.y=e.getY(t),this.z=e.getZ(t),this.w=e.getW(t),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this.w=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z,yield this.w}},h0=class extends po{constructor(e=1,t=1,i={}){super(),i=Object.assign({generateMipmaps:!1,internalFormat:null,minFilter:Ji,depthBuffer:!0,stencilBuffer:!1,resolveColorBuffer:!0,resolveDepthBuffer:!0,resolveStencilBuffer:!0,storeMultisampledColorBuffer:!0,storeMultisampledDepthBuffer:!0,storeMultisampledStencilBuffer:!0,depthTexture:null,samples:0,count:1,depth:1,multiview:!1,useArrayDepthTexture:!1},i),this.isRenderTarget=!0,this.width=e,this.height=t,this.depth=i.depth,this.scissor=new Ni(0,0,e,t),this.scissorTest=!1,this.viewport=new Ni(0,0,e,t),this.textures=[];let r={width:e,height:t,depth:i.depth},a=new Sr(r),s=i.count;for(let l=0;l<s;l++)this.textures[l]=a.clone(),this.textures[l].isRenderTargetTexture=!0,this.textures[l].renderTarget=this;this._setTextureOptions(i),this.depthBuffer=i.depthBuffer,this.stencilBuffer=i.stencilBuffer,this.resolveColorBuffer=i.resolveColorBuffer,this.resolveDepthBuffer=i.resolveDepthBuffer,this.resolveStencilBuffer=i.resolveStencilBuffer,this.storeMultisampledColorBuffer=i.storeMultisampledColorBuffer,this.storeMultisampledDepthBuffer=i.storeMultisampledDepthBuffer,this.storeMultisampledStencilBuffer=i.storeMultisampledStencilBuffer,this._depthTexture=null,this.depthTexture=i.depthTexture,this.samples=i.samples,this.multiview=i.multiview,this.useArrayDepthTexture=i.useArrayDepthTexture}_setTextureOptions(e={}){let t={minFilter:Ji,generateMipmaps:!1,flipY:!1,internalFormat:null};e.mapping!==void 0&&(t.mapping=e.mapping),e.wrapS!==void 0&&(t.wrapS=e.wrapS),e.wrapT!==void 0&&(t.wrapT=e.wrapT),e.wrapR!==void 0&&(t.wrapR=e.wrapR),e.magFilter!==void 0&&(t.magFilter=e.magFilter),e.minFilter!==void 0&&(t.minFilter=e.minFilter),e.format!==void 0&&(t.format=e.format),e.type!==void 0&&(t.type=e.type),e.anisotropy!==void 0&&(t.anisotropy=e.anisotropy),e.colorSpace!==void 0&&(t.colorSpace=e.colorSpace),e.flipY!==void 0&&(t.flipY=e.flipY),e.generateMipmaps!==void 0&&(t.generateMipmaps=e.generateMipmaps),e.internalFormat!==void 0&&(t.internalFormat=e.internalFormat);for(let i=0;i<this.textures.length;i++)this.textures[i].setValues(t)}get texture(){return this.textures[0]}set texture(e){this.textures[0]=e}set depthTexture(e){this._depthTexture!==null&&this._depthTexture.renderTarget===this&&(this._depthTexture.renderTarget=null),e!==null&&e.renderTarget===null&&(e.renderTarget=this),this._depthTexture=e}get depthTexture(){return this._depthTexture}setSize(e,t,i=1){if(this.width!==e||this.height!==t||this.depth!==i){this.width=e,this.height=t,this.depth=i;for(let r=0,a=this.textures.length;r<a;r++)this.textures[r].image.width=e,this.textures[r].image.height=t,this.textures[r].image.depth=i,this.textures[r].isData3DTexture!==!0&&(this.textures[r].isArrayTexture=this.textures[r].image.depth>1);this.dispose()}this.viewport.set(0,0,e,t),this.scissor.set(0,0,e,t)}clone(){return new this.constructor().copy(this)}copy(e){this.width=e.width,this.height=e.height,this.depth=e.depth,this.scissor.copy(e.scissor),this.scissorTest=e.scissorTest,this.viewport.copy(e.viewport),this.textures.length=0;for(let t=0,i=e.textures.length;t<i;t++){this.textures[t]=e.textures[t].clone(),this.textures[t].isRenderTargetTexture=!0,this.textures[t].renderTarget=this;let r=Object.assign({},e.textures[t].image);this.textures[t].source=new Xl(r)}if(this.depthBuffer=e.depthBuffer,this.stencilBuffer=e.stencilBuffer,this.resolveColorBuffer=e.resolveColorBuffer,this.resolveDepthBuffer=e.resolveDepthBuffer,this.resolveStencilBuffer=e.resolveStencilBuffer,this.storeMultisampledColorBuffer=e.storeMultisampledColorBuffer,this.storeMultisampledDepthBuffer=e.storeMultisampledDepthBuffer,this.storeMultisampledStencilBuffer=e.storeMultisampledStencilBuffer,e.depthTexture!==null)if(e.depthTexture.renderTarget===e){let t=e.depthTexture.clone();t.renderTarget=null,this.depthTexture=t}else this.depthTexture=e.depthTexture;return this.samples=e.samples,this.multiview=e.multiview,this.useArrayDepthTexture=e.useArrayDepthTexture,this}dispose(){this.dispatchEvent({type:"dispose"})}},Va=class extends h0{constructor(e=1,t=1,i={}){super(e,t,i),this.isWebGLRenderTarget=!0}},l_=class extends Sr{constructor(e=null,t=1,i=1,r=1){super(null),this.isDataArrayTexture=!0,this.image={data:e,width:t,height:i,depth:r},this.magFilter=br,this.minFilter=br,this.wrapR=Ms,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1,this.layerUpdates=new Set}copy(e){return super.copy(e),this.wrapR=e.wrapR,this}addLayerUpdate(e){this.layerUpdates.add(e)}clearLayerUpdates(){this.layerUpdates.clear()}},eC=class extends Va{constructor(e=1,t=1,i=1,r={}){super(e,t,r),this.isWebGLArrayRenderTarget=!0,this.depth=i,this.texture=new l_(null,e,t,i),this._setTextureOptions(r),this.texture.isRenderTargetTexture=!0}},u_=class extends Sr{constructor(e=null,t=1,i=1,r=1){super(null),this.isData3DTexture=!0,this.image={data:e,width:t,height:i,depth:r},this.magFilter=br,this.minFilter=br,this.wrapR=Ms,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}copy(e){return super.copy(e),this.wrapR=e.wrapR,this}},tC=class extends Va{constructor(e=1,t=1,i=1,r={}){super(e,t,r),this.isWebGL3DRenderTarget=!0,this.depth=i,this.texture=new u_(null,e,t,i),this._setTextureOptions(r),this.texture.isRenderTargetTexture=!0}},Cn=class n{static{n.prototype.isMatrix4=!0}constructor(e,t,i,r,a,s,l,c,f,p,h,_,g,E,x,S){this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],e!==void 0&&this.set(e,t,i,r,a,s,l,c,f,p,h,_,g,E,x,S)}set(e,t,i,r,a,s,l,c,f,p,h,_,g,E,x,S){let v=this.elements;return v[0]=e,v[4]=t,v[8]=i,v[12]=r,v[1]=a,v[5]=s,v[9]=l,v[13]=c,v[2]=f,v[6]=p,v[10]=h,v[14]=_,v[3]=g,v[7]=E,v[11]=x,v[15]=S,this}identity(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this}clone(){return new n().fromArray(this.elements)}copy(e){let t=this.elements,i=e.elements;return t[0]=i[0],t[1]=i[1],t[2]=i[2],t[3]=i[3],t[4]=i[4],t[5]=i[5],t[6]=i[6],t[7]=i[7],t[8]=i[8],t[9]=i[9],t[10]=i[10],t[11]=i[11],t[12]=i[12],t[13]=i[13],t[14]=i[14],t[15]=i[15],this}copyPosition(e){let t=this.elements,i=e.elements;return t[12]=i[12],t[13]=i[13],t[14]=i[14],this}setFromMatrix3(e){let t=e.elements;return this.set(t[0],t[3],t[6],0,t[1],t[4],t[7],0,t[2],t[5],t[8],0,0,0,0,1),this}extractBasis(e,t,i){return this.determinantAffine()===0?(e.set(1,0,0),t.set(0,1,0),i.set(0,0,1),this):(e.setFromMatrixColumn(this,0),t.setFromMatrixColumn(this,1),i.setFromMatrixColumn(this,2),this)}makeBasis(e,t,i){return this.set(e.x,t.x,i.x,0,e.y,t.y,i.y,0,e.z,t.z,i.z,0,0,0,0,1),this}extractRotation(e){if(e.determinantAffine()===0)return this.identity();let t=this.elements,i=e.elements,r=1/zy.setFromMatrixColumn(e,0).length(),a=1/zy.setFromMatrixColumn(e,1).length(),s=1/zy.setFromMatrixColumn(e,2).length();return t[0]=i[0]*r,t[1]=i[1]*r,t[2]=i[2]*r,t[3]=0,t[4]=i[4]*a,t[5]=i[5]*a,t[6]=i[6]*a,t[7]=0,t[8]=i[8]*s,t[9]=i[9]*s,t[10]=i[10]*s,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,this}makeRotationFromEuler(e){let t=this.elements,i=e.x,r=e.y,a=e.z,s=Math.cos(i),l=Math.sin(i),c=Math.cos(r),f=Math.sin(r),p=Math.cos(a),h=Math.sin(a);if(e.order==="XYZ"){let _=s*p,g=s*h,E=l*p,x=l*h;t[0]=c*p,t[4]=-c*h,t[8]=f,t[1]=g+E*f,t[5]=_-x*f,t[9]=-l*c,t[2]=x-_*f,t[6]=E+g*f,t[10]=s*c}else if(e.order==="YXZ"){let _=c*p,g=c*h,E=f*p,x=f*h;t[0]=_+x*l,t[4]=E*l-g,t[8]=s*f,t[1]=s*h,t[5]=s*p,t[9]=-l,t[2]=g*l-E,t[6]=x+_*l,t[10]=s*c}else if(e.order==="ZXY"){let _=c*p,g=c*h,E=f*p,x=f*h;t[0]=_-x*l,t[4]=-s*h,t[8]=E+g*l,t[1]=g+E*l,t[5]=s*p,t[9]=x-_*l,t[2]=-s*f,t[6]=l,t[10]=s*c}else if(e.order==="ZYX"){let _=s*p,g=s*h,E=l*p,x=l*h;t[0]=c*p,t[4]=E*f-g,t[8]=_*f+x,t[1]=c*h,t[5]=x*f+_,t[9]=g*f-E,t[2]=-f,t[6]=l*c,t[10]=s*c}else if(e.order==="YZX"){let _=s*c,g=s*f,E=l*c,x=l*f;t[0]=c*p,t[4]=x-_*h,t[8]=E*h+g,t[1]=h,t[5]=s*p,t[9]=-l*p,t[2]=-f*p,t[6]=g*h+E,t[10]=_-x*h}else if(e.order==="XZY"){let _=s*c,g=s*f,E=l*c,x=l*f;t[0]=c*p,t[4]=-h,t[8]=f*p,t[1]=_*h+x,t[5]=s*p,t[9]=g*h-E,t[2]=E*h-g,t[6]=l*p,t[10]=x*h+_}return t[3]=0,t[7]=0,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,this}makeRotationFromQuaternion(e){return this.compose(fQ,e,dQ)}lookAt(e,t,i){let r=this.elements;return Jo.subVectors(e,t),Jo.lengthSq()===0&&(Jo.z=1),Jo.normalize(),Mh.crossVectors(i,Jo),Mh.lengthSq()===0&&(Math.abs(i.z)===1?Jo.x+=1e-4:Jo.z+=1e-4,Jo.normalize(),Mh.crossVectors(i,Jo)),Mh.normalize(),lA.crossVectors(Jo,Mh),r[0]=Mh.x,r[4]=lA.x,r[8]=Jo.x,r[1]=Mh.y,r[5]=lA.y,r[9]=Jo.y,r[2]=Mh.z,r[6]=lA.z,r[10]=Jo.z,this}multiply(e){return this.multiplyMatrices(this,e)}premultiply(e){return this.multiplyMatrices(e,this)}multiplyMatrices(e,t){let i=e.elements,r=t.elements,a=this.elements,s=i[0],l=i[4],c=i[8],f=i[12],p=i[1],h=i[5],_=i[9],g=i[13],E=i[2],x=i[6],S=i[10],v=i[14],M=i[3],O=i[7],k=i[11],q=i[15],G=r[0],Q=r[4],H=r[8],Z=r[12],te=r[1],j=r[5],he=r[9],ke=r[13],Me=r[2],ze=r[6],Ne=r[10],Ve=r[14],Je=r[3],Qe=r[7],st=r[11],We=r[15];return a[0]=s*G+l*te+c*Me+f*Je,a[4]=s*Q+l*j+c*ze+f*Qe,a[8]=s*H+l*he+c*Ne+f*st,a[12]=s*Z+l*ke+c*Ve+f*We,a[1]=p*G+h*te+_*Me+g*Je,a[5]=p*Q+h*j+_*ze+g*Qe,a[9]=p*H+h*he+_*Ne+g*st,a[13]=p*Z+h*ke+_*Ve+g*We,a[2]=E*G+x*te+S*Me+v*Je,a[6]=E*Q+x*j+S*ze+v*Qe,a[10]=E*H+x*he+S*Ne+v*st,a[14]=E*Z+x*ke+S*Ve+v*We,a[3]=M*G+O*te+k*Me+q*Je,a[7]=M*Q+O*j+k*ze+q*Qe,a[11]=M*H+O*he+k*Ne+q*st,a[15]=M*Z+O*ke+k*Ve+q*We,this}multiplyScalar(e){let t=this.elements;return t[0]*=e,t[4]*=e,t[8]*=e,t[12]*=e,t[1]*=e,t[5]*=e,t[9]*=e,t[13]*=e,t[2]*=e,t[6]*=e,t[10]*=e,t[14]*=e,t[3]*=e,t[7]*=e,t[11]*=e,t[15]*=e,this}determinant(){let e=this.elements,t=e[0],i=e[4],r=e[8],a=e[12],s=e[1],l=e[5],c=e[9],f=e[13],p=e[2],h=e[6],_=e[10],g=e[14],E=e[3],x=e[7],S=e[11],v=e[15],M=c*g-f*_,O=l*g-f*h,k=l*_-c*h,q=s*g-f*p,G=s*_-c*p,Q=s*h-l*p;return t*(x*M-S*O+v*k)-i*(E*M-S*q+v*G)+r*(E*O-x*q+v*Q)-a*(E*k-x*G+S*Q)}determinantAffine(){let e=this.elements,t=e[0],i=e[4],r=e[8],a=e[1],s=e[5],l=e[9],c=e[2],f=e[6],p=e[10];return t*(s*p-l*f)-i*(a*p-l*c)+r*(a*f-s*c)}transpose(){let e=this.elements,t;return t=e[1],e[1]=e[4],e[4]=t,t=e[2],e[2]=e[8],e[8]=t,t=e[6],e[6]=e[9],e[9]=t,t=e[3],e[3]=e[12],e[12]=t,t=e[7],e[7]=e[13],e[13]=t,t=e[11],e[11]=e[14],e[14]=t,this}setPosition(e,t,i){let r=this.elements;return e.isVector3?(r[12]=e.x,r[13]=e.y,r[14]=e.z):(r[12]=e,r[13]=t,r[14]=i),this}invert(){let e=this.elements,t=e[0],i=e[1],r=e[2],a=e[3],s=e[4],l=e[5],c=e[6],f=e[7],p=e[8],h=e[9],_=e[10],g=e[11],E=e[12],x=e[13],S=e[14],v=e[15],M=t*l-i*s,O=t*c-r*s,k=t*f-a*s,q=i*c-r*l,G=i*f-a*l,Q=r*f-a*c,H=p*x-h*E,Z=p*S-_*E,te=p*v-g*E,j=h*S-_*x,he=h*v-g*x,ke=_*v-g*S,Me=M*ke-O*he+k*j+q*te-G*Z+Q*H;if(Me===0)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);let ze=1/Me;return e[0]=(l*ke-c*he+f*j)*ze,e[1]=(r*he-i*ke-a*j)*ze,e[2]=(x*Q-S*G+v*q)*ze,e[3]=(_*G-h*Q-g*q)*ze,e[4]=(c*te-s*ke-f*Z)*ze,e[5]=(t*ke-r*te+a*Z)*ze,e[6]=(S*k-E*Q-v*O)*ze,e[7]=(p*Q-_*k+g*O)*ze,e[8]=(s*he-l*te+f*H)*ze,e[9]=(i*te-t*he-a*H)*ze,e[10]=(E*G-x*k+v*M)*ze,e[11]=(h*k-p*G-g*M)*ze,e[12]=(l*Z-s*j-c*H)*ze,e[13]=(t*j-i*Z+r*H)*ze,e[14]=(x*O-E*q-S*M)*ze,e[15]=(p*q-h*O+_*M)*ze,this}scale(e){let t=this.elements,i=e.x,r=e.y,a=e.z;return t[0]*=i,t[4]*=r,t[8]*=a,t[1]*=i,t[5]*=r,t[9]*=a,t[2]*=i,t[6]*=r,t[10]*=a,t[3]*=i,t[7]*=r,t[11]*=a,this}getMaxScaleOnAxis(){let e=this.elements,t=e[0]*e[0]+e[1]*e[1]+e[2]*e[2],i=e[4]*e[4]+e[5]*e[5]+e[6]*e[6],r=e[8]*e[8]+e[9]*e[9]+e[10]*e[10];return Math.sqrt(Math.max(t,i,r))}makeTranslation(e,t,i){return e.isVector3?this.set(1,0,0,e.x,0,1,0,e.y,0,0,1,e.z,0,0,0,1):this.set(1,0,0,e,0,1,0,t,0,0,1,i,0,0,0,1),this}makeRotationX(e){let t=Math.cos(e),i=Math.sin(e);return this.set(1,0,0,0,0,t,-i,0,0,i,t,0,0,0,0,1),this}makeRotationY(e){let t=Math.cos(e),i=Math.sin(e);return this.set(t,0,i,0,0,1,0,0,-i,0,t,0,0,0,0,1),this}makeRotationZ(e){let t=Math.cos(e),i=Math.sin(e);return this.set(t,-i,0,0,i,t,0,0,0,0,1,0,0,0,0,1),this}makeRotationAxis(e,t){let i=Math.cos(t),r=Math.sin(t),a=1-i,s=e.x,l=e.y,c=e.z,f=a*s,p=a*l;return this.set(f*s+i,f*l-r*c,f*c+r*l,0,f*l+r*c,p*l+i,p*c-r*s,0,f*c-r*l,p*c+r*s,a*c*c+i,0,0,0,0,1),this}makeScale(e,t,i){return this.set(e,0,0,0,0,t,0,0,0,0,i,0,0,0,0,1),this}makeShear(e,t,i,r,a,s){return this.set(1,i,a,0,e,1,s,0,t,r,1,0,0,0,0,1),this}compose(e,t,i){let r=this.elements,a=t._x,s=t._y,l=t._z,c=t._w,f=a+a,p=s+s,h=l+l,_=a*f,g=a*p,E=a*h,x=s*p,S=s*h,v=l*h,M=c*f,O=c*p,k=c*h,q=i.x,G=i.y,Q=i.z;return r[0]=(1-(x+v))*q,r[1]=(g+k)*q,r[2]=(E-O)*q,r[3]=0,r[4]=(g-k)*G,r[5]=(1-(_+v))*G,r[6]=(S+M)*G,r[7]=0,r[8]=(E+O)*Q,r[9]=(S-M)*Q,r[10]=(1-(_+x))*Q,r[11]=0,r[12]=e.x,r[13]=e.y,r[14]=e.z,r[15]=1,this}decompose(e,t,i){let r=this.elements;e.x=r[12],e.y=r[13],e.z=r[14];let a=this.determinantAffine();if(a===0)return i.set(1,1,1),t.identity(),this;let s=zy.set(r[0],r[1],r[2]).length(),l=zy.set(r[4],r[5],r[6]).length(),c=zy.set(r[8],r[9],r[10]).length();a<0&&(s=-s),Eu.copy(this);let f=1/s,p=1/l,h=1/c;return Eu.elements[0]*=f,Eu.elements[1]*=f,Eu.elements[2]*=f,Eu.elements[4]*=p,Eu.elements[5]*=p,Eu.elements[6]*=p,Eu.elements[8]*=h,Eu.elements[9]*=h,Eu.elements[10]*=h,t.setFromRotationMatrix(Eu),i.x=s,i.y=l,i.z=c,this}makePerspective(e,t,i,r,a,s,l=ho,c=!1){let f=this.elements,p=2*a/(t-e),h=2*a/(i-r),_=(t+e)/(t-e),g=(i+r)/(i-r),E,x;if(c)E=a/(s-a),x=s*a/(s-a);else if(l===ho)E=-(s+a)/(s-a),x=-2*s*a/(s-a);else if(l===Dh)E=-s/(s-a),x=-s*a/(s-a);else throw new Error("THREE.Matrix4.makePerspective(): Invalid coordinate system: "+l);return f[0]=p,f[4]=0,f[8]=_,f[12]=0,f[1]=0,f[5]=h,f[9]=g,f[13]=0,f[2]=0,f[6]=0,f[10]=E,f[14]=x,f[3]=0,f[7]=0,f[11]=-1,f[15]=0,this}makeOrthographic(e,t,i,r,a,s,l=ho,c=!1){let f=this.elements,p=2/(t-e),h=2/(i-r),_=-(t+e)/(t-e),g=-(i+r)/(i-r),E,x;if(c)E=1/(s-a),x=s/(s-a);else if(l===ho)E=-2/(s-a),x=-(s+a)/(s-a);else if(l===Dh)E=-1/(s-a),x=-a/(s-a);else throw new Error("THREE.Matrix4.makeOrthographic(): Invalid coordinate system: "+l);return f[0]=p,f[4]=0,f[8]=0,f[12]=_,f[1]=0,f[5]=h,f[9]=0,f[13]=g,f[2]=0,f[6]=0,f[10]=E,f[14]=x,f[3]=0,f[7]=0,f[11]=0,f[15]=1,this}equals(e){let t=this.elements,i=e.elements;for(let r=0;r<16;r++)if(t[r]!==i[r])return!1;return!0}fromArray(e,t=0){for(let i=0;i<16;i++)this.elements[i]=e[i+t];return this}toArray(e=[],t=0){let i=this.elements;return e[t]=i[0],e[t+1]=i[1],e[t+2]=i[2],e[t+3]=i[3],e[t+4]=i[4],e[t+5]=i[5],e[t+6]=i[6],e[t+7]=i[7],e[t+8]=i[8],e[t+9]=i[9],e[t+10]=i[10],e[t+11]=i[11],e[t+12]=i[12],e[t+13]=i[13],e[t+14]=i[14],e[t+15]=i[15],e}},zy=new ve,Eu=new Cn,fQ=new ve(0,0,0),dQ=new ve(1,1,1),Mh=new ve,lA=new ve,Jo=new ve,qB=new Cn,BB=new Lr,Kl=class n{constructor(e=0,t=0,i=0,r=n.DEFAULT_ORDER){this.isEuler=!0,this._x=e,this._y=t,this._z=i,this._order=r}get x(){return this._x}set x(e){this._x=e,this._onChangeCallback()}get y(){return this._y}set y(e){this._y=e,this._onChangeCallback()}get z(){return this._z}set z(e){this._z=e,this._onChangeCallback()}get order(){return this._order}set order(e){this._order=e,this._onChangeCallback()}set(e,t,i,r=this._order){return this._x=e,this._y=t,this._z=i,this._order=r,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._order)}copy(e){return this._x=e._x,this._y=e._y,this._z=e._z,this._order=e._order,this._onChangeCallback(),this}setFromRotationMatrix(e,t=this._order,i=!0){let r=e.elements,a=r[0],s=r[4],l=r[8],c=r[1],f=r[5],p=r[9],h=r[2],_=r[6],g=r[10];switch(t){case"XYZ":this._y=Math.asin(Tn(l,-1,1)),Math.abs(l)<.9999999?(this._x=Math.atan2(-p,g),this._z=Math.atan2(-s,a)):(this._x=Math.atan2(_,f),this._z=0);break;case"YXZ":this._x=Math.asin(-Tn(p,-1,1)),Math.abs(p)<.9999999?(this._y=Math.atan2(l,g),this._z=Math.atan2(c,f)):(this._y=Math.atan2(-h,a),this._z=0);break;case"ZXY":this._x=Math.asin(Tn(_,-1,1)),Math.abs(_)<.9999999?(this._y=Math.atan2(-h,g),this._z=Math.atan2(-s,f)):(this._y=0,this._z=Math.atan2(c,a));break;case"ZYX":this._y=Math.asin(-Tn(h,-1,1)),Math.abs(h)<.9999999?(this._x=Math.atan2(_,g),this._z=Math.atan2(c,a)):(this._x=0,this._z=Math.atan2(-s,f));break;case"YZX":this._z=Math.asin(Tn(c,-1,1)),Math.abs(c)<.9999999?(this._x=Math.atan2(-p,f),this._y=Math.atan2(-h,a)):(this._x=0,this._y=Math.atan2(l,g));break;case"XZY":this._z=Math.asin(-Tn(s,-1,1)),Math.abs(s)<.9999999?(this._x=Math.atan2(_,f),this._y=Math.atan2(l,a)):(this._x=Math.atan2(-p,g),this._y=0);break;default:Ft("Euler: .setFromRotationMatrix() encountered an unknown order: "+t)}return this._order=t,i===!0&&this._onChangeCallback(),this}setFromQuaternion(e,t,i){return qB.makeRotationFromQuaternion(e),this.setFromRotationMatrix(qB,t,i)}setFromVector3(e,t=this._order){return this.set(e.x,e.y,e.z,t)}reorder(e){return BB.setFromEuler(this),this.setFromQuaternion(BB,e)}equals(e){return e._x===this._x&&e._y===this._y&&e._z===this._z&&e._order===this._order}fromArray(e){return this._x=e[0],this._y=e[1],this._z=e[2],e[3]!==void 0&&(this._order=e[3]),this._onChangeCallback(),this}toArray(e=[],t=0){return e[t]=this._x,e[t+1]=this._y,e[t+2]=this._z,e[t+3]=this._order,e}_onChange(e){return this._onChangeCallback=e,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._order}};Kl.DEFAULT_ORDER="XYZ";var zc=class{constructor(){this.mask=1}set(e){this.mask=(1<<e|0)>>>0}enable(e){this.mask|=1<<e|0}enableAll(){this.mask=-1}toggle(e){this.mask^=1<<e|0}disable(e){this.mask&=~(1<<e|0)}disableAll(){this.mask=0}test(e){return(this.mask&e.mask)!==0}isEnabled(e){return(this.mask&(1<<e|0))!==0}},hQ=0,HB=new ve,qy=new Lr,Ff=new Cn,uA=new ve,fw=new ve,pQ=new ve,mQ=new Lr,VB=new ve(1,0,0),GB=new ve(0,1,0),WB=new ve(0,0,1),jB={type:"added"},_Q={type:"removed"},By={type:"childadded",child:null},Sk={type:"childremoved",child:null},gi=class n extends po{constructor(){super(),this.isObject3D=!0,Object.defineProperty(this,"id",{value:hQ++}),this.uuid=tl(),this.name="",this.type="Object3D",this.parent=null,this.children=[],this.up=n.DEFAULT_UP.clone();let e=new ve,t=new Kl,i=new Lr,r=new ve(1,1,1);function a(){i.setFromEuler(t,!1)}function s(){t.setFromQuaternion(i,void 0,!1)}t._onChange(a),i._onChange(s),Object.defineProperties(this,{position:{configurable:!0,enumerable:!0,value:e},rotation:{configurable:!0,enumerable:!0,value:t},quaternion:{configurable:!0,enumerable:!0,value:i},scale:{configurable:!0,enumerable:!0,value:r},modelViewMatrix:{value:new Cn},normalMatrix:{value:new In}}),this.matrix=new Cn,this.matrixWorld=new Cn,this.matrixAutoUpdate=n.DEFAULT_MATRIX_AUTO_UPDATE,this.matrixWorldAutoUpdate=n.DEFAULT_MATRIX_WORLD_AUTO_UPDATE,this.matrixWorldNeedsUpdate=!1,this.layers=new zc,this.visible=!0,this.castShadow=!1,this.receiveShadow=!1,this.frustumCulled=!0,this.renderOrder=0,this.animations=[],this.customDepthMaterial=void 0,this.customDistanceMaterial=void 0,this.static=!1,this.userData={},this.pivot=null}onBeforeShadow(){}onAfterShadow(){}onBeforeRender(){}onAfterRender(){}applyMatrix4(e){this.matrixAutoUpdate&&this.updateMatrix(),this.matrix.premultiply(e),this.matrix.decompose(this.position,this.quaternion,this.scale)}applyQuaternion(e){return this.quaternion.premultiply(e),this}setRotationFromAxisAngle(e,t){this.quaternion.setFromAxisAngle(e,t)}setRotationFromEuler(e){this.quaternion.setFromEuler(e,!0)}setRotationFromMatrix(e){this.quaternion.setFromRotationMatrix(e)}setRotationFromQuaternion(e){this.quaternion.copy(e)}rotateOnAxis(e,t){return qy.setFromAxisAngle(e,t),this.quaternion.multiply(qy),this}rotateOnWorldAxis(e,t){return qy.setFromAxisAngle(e,t),this.quaternion.premultiply(qy),this}rotateX(e){return this.rotateOnAxis(VB,e)}rotateY(e){return this.rotateOnAxis(GB,e)}rotateZ(e){return this.rotateOnAxis(WB,e)}translateOnAxis(e,t){return HB.copy(e).applyQuaternion(this.quaternion),this.position.add(HB.multiplyScalar(t)),this}translateX(e){return this.translateOnAxis(VB,e)}translateY(e){return this.translateOnAxis(GB,e)}translateZ(e){return this.translateOnAxis(WB,e)}localToWorld(e){return this.updateWorldMatrix(!0,!1),e.applyMatrix4(this.matrixWorld)}worldToLocal(e){return this.updateWorldMatrix(!0,!1),e.applyMatrix4(Ff.copy(this.matrixWorld).invert())}lookAt(e,t,i){e.isVector3?uA.copy(e):uA.set(e,t,i);let r=this.parent;this.updateWorldMatrix(!0,!1),fw.setFromMatrixPosition(this.matrixWorld),this.isCamera||this.isLight?Ff.lookAt(fw,uA,this.up):Ff.lookAt(uA,fw,this.up),this.quaternion.setFromRotationMatrix(Ff),r&&(Ff.extractRotation(r.matrixWorld),qy.setFromRotationMatrix(Ff),this.quaternion.premultiply(qy.invert()))}add(e){if(arguments.length>1){for(let t=0;t<arguments.length;t++)this.add(arguments[t]);return this}return e===this?(cn("Object3D.add: object can't be added as a child of itself.",e),this):(e&&e.isObject3D?(e.removeFromParent(),e.parent=this,this.children.push(e),e.dispatchEvent(jB),By.child=e,this.dispatchEvent(By),By.child=null):cn("Object3D.add: object not an instance of THREE.Object3D.",e),this)}remove(e){if(arguments.length>1){for(let i=0;i<arguments.length;i++)this.remove(arguments[i]);return this}let t=this.children.indexOf(e);return t!==-1&&(e.parent=null,this.children.splice(t,1),e.dispatchEvent(_Q),Sk.child=e,this.dispatchEvent(Sk),Sk.child=null),this}removeFromParent(){let e=this.parent;return e!==null&&e.remove(this),this}clear(){return this.remove(...this.children)}attach(e){return this.updateWorldMatrix(!0,!1),Ff.copy(this.matrixWorld).invert(),e.parent!==null&&(e.parent.updateWorldMatrix(!0,!1),Ff.multiply(e.parent.matrixWorld)),e.applyMatrix4(Ff),e.removeFromParent(),e.parent=this,this.children.push(e),e.updateWorldMatrix(!1,!0),e.dispatchEvent(jB),By.child=e,this.dispatchEvent(By),By.child=null,this}getObjectById(e){return this.getObjectByProperty("id",e)}getObjectByName(e){return this.getObjectByProperty("name",e)}getObjectByProperty(e,t){if(this[e]===t)return this;for(let i=0,r=this.children.length;i<r;i++){let s=this.children[i].getObjectByProperty(e,t);if(s!==void 0)return s}}getObjectsByProperty(e,t,i=[]){this[e]===t&&i.push(this);let r=this.children;for(let a=0,s=r.length;a<s;a++)r[a].getObjectsByProperty(e,t,i);return i}getWorldPosition(e){return this.updateWorldMatrix(!0,!1),e.setFromMatrixPosition(this.matrixWorld)}getWorldQuaternion(e){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose(fw,e,pQ),e}getWorldScale(e){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose(fw,mQ,e),e}getWorldDirection(e){this.updateWorldMatrix(!0,!1);let t=this.matrixWorld.elements;return e.set(t[8],t[9],t[10]).normalize()}raycast(){}intersectsFrustum(){}traverse(e){e(this);let t=this.children;for(let i=0,r=t.length;i<r;i++)t[i].traverse(e)}traverseVisible(e){if(this.visible===!1)return;e(this);let t=this.children;for(let i=0,r=t.length;i<r;i++)t[i].traverseVisible(e)}traverseAncestors(e){let t=this.parent;t!==null&&(e(t),t.traverseAncestors(e))}updateMatrix(){this.matrix.compose(this.position,this.quaternion,this.scale);let e=this.pivot;if(e!==null){let t=e.x,i=e.y,r=e.z,a=this.matrix.elements;a[12]+=t-a[0]*t-a[4]*i-a[8]*r,a[13]+=i-a[1]*t-a[5]*i-a[9]*r,a[14]+=r-a[2]*t-a[6]*i-a[10]*r}this.matrixWorldNeedsUpdate=!0}updateMatrixWorld(e){this.matrixAutoUpdate&&this.updateMatrix(),(this.matrixWorldNeedsUpdate||e)&&(this.matrixWorldAutoUpdate===!0&&(this.parent===null?this.matrixWorld.copy(this.matrix):this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.matrix)),this.matrixWorldNeedsUpdate=!1,e=!0);let t=this.children;for(let i=0,r=t.length;i<r;i++)t[i].updateMatrixWorld(e)}updateWorldMatrix(e,t,i=!1){let r=this.parent;if(e===!0&&r!==null&&r.updateWorldMatrix(!0,!1),this.matrixAutoUpdate&&this.updateMatrix(),(this.matrixWorldNeedsUpdate||i)&&(this.matrixWorldAutoUpdate===!0&&(this.parent===null?this.matrixWorld.copy(this.matrix):this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.matrix)),this.matrixWorldNeedsUpdate=!1,i=!0),t===!0){let a=this.children;for(let s=0,l=a.length;s<l;s++)a[s].updateWorldMatrix(!1,!0,i)}}toJSON(e){let t=e===void 0||typeof e=="string",i={};t&&(e={geometries:{},materials:{},textures:{},images:{},shapes:{},skeletons:{},animations:{},nodes:{}},i.metadata={version:4.7,type:"Object",generator:"Object3D.toJSON"});let r={};r.uuid=this.uuid,r.type=this.type,r.name=this.name,r.castShadow=this.castShadow,r.receiveShadow=this.receiveShadow,r.visible=this.visible,r.frustumCulled=this.frustumCulled,r.renderOrder=this.renderOrder,r.static=this.static,r.matrixAutoUpdate=this.matrixAutoUpdate,Object.keys(this.userData).length>0&&(r.userData=this.userData),r.layers=this.layers.mask,r.matrix=this.matrix.toArray(),r.up=this.up.toArray(),this.pivot!==null&&(r.pivot=this.pivot.toArray()),this.morphTargetDictionary!==void 0&&(r.morphTargetDictionary=Object.assign({},this.morphTargetDictionary)),this.morphTargetInfluences!==void 0&&(r.morphTargetInfluences=this.morphTargetInfluences.slice()),this.isInstancedMesh&&(r.type="InstancedMesh",r.count=this.count,r.instanceMatrix=this.instanceMatrix.toJSON(),this.instanceColor!==null&&(r.instanceColor=this.instanceColor.toJSON())),this.isBatchedMesh&&(r.type="BatchedMesh",r.perObjectFrustumCulled=this.perObjectFrustumCulled,r.sortObjects=this.sortObjects,r.drawRanges=this._drawRanges,r.reservedRanges=this._reservedRanges,r.geometryInfo=this._geometryInfo.map(l=>({...l,boundingBox:l.boundingBox?l.boundingBox.toJSON():void 0,boundingSphere:l.boundingSphere?l.boundingSphere.toJSON():void 0})),r.instanceInfo=this._instanceInfo.map(l=>({...l})),r.availableInstanceIds=this._availableInstanceIds.slice(),r.availableGeometryIds=this._availableGeometryIds.slice(),r.nextIndexStart=this._nextIndexStart,r.nextVertexStart=this._nextVertexStart,r.geometryCount=this._geometryCount,r.maxInstanceCount=this._maxInstanceCount,r.maxVertexCount=this._maxVertexCount,r.maxIndexCount=this._maxIndexCount,r.geometryInitialized=this._geometryInitialized,r.matricesTexture=this._matricesTexture.toJSON(e),r.indirectTexture=this._indirectTexture.toJSON(e),this._colorsTexture!==null&&(r.colorsTexture=this._colorsTexture.toJSON(e)),this.boundingSphere!==null&&(r.boundingSphere=this.boundingSphere.toJSON()),this.boundingBox!==null&&(r.boundingBox=this.boundingBox.toJSON()));function a(l,c){return l[c.uuid]===void 0&&(l[c.uuid]=c.toJSON(e)),c.uuid}if(this.isScene)this.background&&(this.background.isColor?r.background=this.background.toJSON():this.background.isTexture&&(r.background=this.background.toJSON(e).uuid)),this.environment&&this.environment.isTexture&&this.environment.isRenderTargetTexture!==!0&&(r.environment=this.environment.toJSON(e).uuid);else if(this.isMesh||this.isLine||this.isPoints){r.geometry=a(e.geometries,this.geometry);let l=this.geometry.parameters;if(l!==void 0&&l.shapes!==void 0){let c=l.shapes;if(Array.isArray(c))for(let f=0,p=c.length;f<p;f++){let h=c[f];a(e.shapes,h)}else a(e.shapes,c)}}if(this.isSkinnedMesh&&(r.bindMode=this.bindMode,r.bindMatrix=this.bindMatrix.toArray(),this.skeleton!==void 0&&(a(e.skeletons,this.skeleton),r.skeleton=this.skeleton.uuid)),this.material!==void 0)if(Array.isArray(this.material)){let l=[];for(let c=0,f=this.material.length;c<f;c++)l.push(a(e.materials,this.material[c]));r.material=l}else r.material=a(e.materials,this.material);if(this.children.length>0){r.children=[];for(let l=0;l<this.children.length;l++)r.children.push(this.children[l].toJSON(e).object)}if(this.animations.length>0){r.animations=[];for(let l=0;l<this.animations.length;l++){let c=this.animations[l];r.animations.push(a(e.animations,c))}}if(t){let l=s(e.geometries),c=s(e.materials),f=s(e.textures),p=s(e.images),h=s(e.shapes),_=s(e.skeletons),g=s(e.animations),E=s(e.nodes);l.length>0&&(i.geometries=l),c.length>0&&(i.materials=c),f.length>0&&(i.textures=f),p.length>0&&(i.images=p),h.length>0&&(i.shapes=h),_.length>0&&(i.skeletons=_),g.length>0&&(i.animations=g),E.length>0&&(i.nodes=E)}return i.object=r,i;function s(l){let c=[];for(let f in l){let p=l[f];delete p.metadata,c.push(p)}return c}}clone(e){return new this.constructor().copy(this,e)}copy(e,t=!0){if(this.name=e.name,this.up.copy(e.up),this.position.copy(e.position),this.rotation.order=e.rotation.order,this.quaternion.copy(e.quaternion),this.scale.copy(e.scale),this.pivot=e.pivot!==null?e.pivot.clone():null,this.matrix.copy(e.matrix),this.matrixWorld.copy(e.matrixWorld),this.matrixAutoUpdate=e.matrixAutoUpdate,this.matrixWorldAutoUpdate=e.matrixWorldAutoUpdate,this.matrixWorldNeedsUpdate=e.matrixWorldNeedsUpdate,this.layers.mask=e.layers.mask,this.visible=e.visible,this.castShadow=e.castShadow,this.receiveShadow=e.receiveShadow,this.frustumCulled=e.frustumCulled,this.renderOrder=e.renderOrder,this.static=e.static,this.animations=e.animations.slice(),this.userData=JSON.parse(JSON.stringify(e.userData)),t===!0)for(let i=0;i<e.children.length;i++){let r=e.children[i];this.add(r.clone())}return this}dispose(){this.dispatchEvent({type:"dispose"})}};gi.DEFAULT_UP=new ve(0,1,0);gi.DEFAULT_MATRIX_AUTO_UPDATE=!0;gi.DEFAULT_MATRIX_WORLD_AUTO_UPDATE=!0;var Vf=class extends gi{constructor(){super(),this.isGroup=!0,this.type="Group"}},gQ={type:"move"},c_=class{constructor(){this._targetRay=null,this._grip=null,this._hand=null}getHandSpace(){return this._hand===null&&(this._hand=new Vf,this._hand.matrixAutoUpdate=!1,this._hand.visible=!1,this._hand.joints={},this._hand.inputState={pinching:!1}),this._hand}getTargetRaySpace(){return this._targetRay===null&&(this._targetRay=new Vf,this._targetRay.matrixAutoUpdate=!1,this._targetRay.visible=!1,this._targetRay.hasLinearVelocity=!1,this._targetRay.linearVelocity=new ve,this._targetRay.hasAngularVelocity=!1,this._targetRay.angularVelocity=new ve),this._targetRay}getGripSpace(){return this._grip===null&&(this._grip=new Vf,this._grip.matrixAutoUpdate=!1,this._grip.visible=!1,this._grip.hasLinearVelocity=!1,this._grip.linearVelocity=new ve,this._grip.hasAngularVelocity=!1,this._grip.angularVelocity=new ve,this._grip.eventsEnabled=!1),this._grip}dispatchEvent(e){return this._targetRay!==null&&this._targetRay.dispatchEvent(e),this._grip!==null&&this._grip.dispatchEvent(e),this._hand!==null&&this._hand.dispatchEvent(e),this}connect(e){if(e&&e.hand){let t=this._hand;if(t)for(let i of e.hand.values())this._getHandJoint(t,i)}return this.dispatchEvent({type:"connected",data:e}),this}disconnect(e){return this.dispatchEvent({type:"disconnected",data:e}),this._targetRay!==null&&(this._targetRay.visible=!1),this._grip!==null&&(this._grip.visible=!1),this._hand!==null&&(this._hand.visible=!1),this}update(e,t,i){let r=null,a=null,s=null,l=this._targetRay,c=this._grip,f=this._hand;if(e&&t.session.visibilityState!=="visible-blurred"){if(f&&e.hand){s=!0;for(let x of e.hand.values()){let S=t.getJointPose(x,i),v=this._getHandJoint(f,x);S!==null&&(v.matrix.fromArray(S.transform.matrix),v.matrix.decompose(v.position,v.rotation,v.scale),v.matrixWorldNeedsUpdate=!0,v.jointRadius=S.radius),v.visible=S!==null}let p=f.joints["index-finger-tip"],h=f.joints["thumb-tip"],_=p.position.distanceTo(h.position),g=.02,E=.005;f.inputState.pinching&&_>g+E?(f.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:e.handedness,target:this})):!f.inputState.pinching&&_<=g-E&&(f.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:e.handedness,target:this}))}else c!==null&&e.gripSpace&&(a=t.getPose(e.gripSpace,i),a!==null&&(c.matrix.fromArray(a.transform.matrix),c.matrix.decompose(c.position,c.rotation,c.scale),c.matrixWorldNeedsUpdate=!0,a.linearVelocity?(c.hasLinearVelocity=!0,c.linearVelocity.copy(a.linearVelocity)):c.hasLinearVelocity=!1,a.angularVelocity?(c.hasAngularVelocity=!0,c.angularVelocity.copy(a.angularVelocity)):c.hasAngularVelocity=!1,c.eventsEnabled&&c.dispatchEvent({type:"gripUpdated",data:e,target:this})));l!==null&&(r=t.getPose(e.targetRaySpace,i),r===null&&a!==null&&(r=a),r!==null&&(l.matrix.fromArray(r.transform.matrix),l.matrix.decompose(l.position,l.rotation,l.scale),l.matrixWorldNeedsUpdate=!0,r.linearVelocity?(l.hasLinearVelocity=!0,l.linearVelocity.copy(r.linearVelocity)):l.hasLinearVelocity=!1,r.angularVelocity?(l.hasAngularVelocity=!0,l.angularVelocity.copy(r.angularVelocity)):l.hasAngularVelocity=!1,this.dispatchEvent(gQ)))}return l!==null&&(l.visible=r!==null),c!==null&&(c.visible=a!==null),f!==null&&(f.visible=s!==null),this}_getHandJoint(e,t){if(e.joints[t.jointName]===void 0){let i=new Vf;i.matrixAutoUpdate=!1,i.visible=!1,e.joints[t.jointName]=i,e.add(i)}return e.joints[t.jointName]}},H5={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074},Ah={h:0,s:0,l:0},cA={h:0,s:0,l:0};function Ek(n,e,t){return t<0&&(t+=1),t>1&&(t-=1),t<1/6?n+(e-n)*6*t:t<1/2?e:t<2/3?n+(e-n)*6*(2/3-t):n}var Vt=class{constructor(e,t,i){return this.isColor=!0,this.r=1,this.g=1,this.b=1,this.set(e,t,i)}set(e,t,i){if(t===void 0&&i===void 0){let r=e;r&&r.isColor?this.copy(r):typeof r=="number"?this.setHex(r):typeof r=="string"&&this.setStyle(r)}else this.setRGB(e,t,i);return this}setScalar(e){return this.r=e,this.g=e,this.b=e,this}setHex(e,t=Yr){return e=Math.floor(e),this.r=(e>>16&255)/255,this.g=(e>>8&255)/255,this.b=(e&255)/255,Gn.colorSpaceToWorking(this,t),this}setRGB(e,t,i,r=Gn.workingColorSpace){return this.r=e,this.g=t,this.b=i,Gn.colorSpaceToWorking(this,r),this}setHSL(e,t,i,r=Gn.workingColorSpace){if(e=XO(e,1),t=Tn(t,0,1),i=Tn(i,0,1),t===0)this.r=this.g=this.b=i;else{let a=i<=.5?i*(1+t):i+t-i*t,s=2*i-a;this.r=Ek(s,a,e+1/3),this.g=Ek(s,a,e),this.b=Ek(s,a,e-1/3)}return Gn.colorSpaceToWorking(this,r),this}setStyle(e,t=Yr){function i(a){a!==void 0&&parseFloat(a)<1&&Ft("Color: Alpha component of "+e+" will be ignored.")}let r;if(r=/^(\w+)\(([^\)]*)\)/.exec(e)){let a,s=r[1],l=r[2];switch(s){case"rgb":case"rgba":if(a=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(l))return i(a[4]),this.setRGB(Math.min(255,parseInt(a[1],10))/255,Math.min(255,parseInt(a[2],10))/255,Math.min(255,parseInt(a[3],10))/255,t);if(a=/^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(l))return i(a[4]),this.setRGB(Math.min(100,parseInt(a[1],10))/100,Math.min(100,parseInt(a[2],10))/100,Math.min(100,parseInt(a[3],10))/100,t);break;case"hsl":case"hsla":if(a=/^\s*(\d*\.?\d+)\s*,\s*(\d*\.?\d+)\%\s*,\s*(\d*\.?\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(l))return i(a[4]),this.setHSL(parseFloat(a[1])/360,parseFloat(a[2])/100,parseFloat(a[3])/100,t);break;default:Ft("Color: Unknown color model "+e)}}else if(r=/^\#([A-Fa-f\d]+)$/.exec(e)){let a=r[1],s=a.length;if(s===3)return this.setRGB(parseInt(a.charAt(0),16)/15,parseInt(a.charAt(1),16)/15,parseInt(a.charAt(2),16)/15,t);if(s===6)return this.setHex(parseInt(a,16),t);Ft("Color: Invalid hex color "+e)}else if(e&&e.length>0)return this.setColorName(e,t);return this}setColorName(e,t=Yr){let i=H5[e.toLowerCase()];return i!==void 0?this.setHex(i,t):Ft("Color: Unknown color "+e),this}clone(){return new this.constructor(this.r,this.g,this.b)}copy(e){return this.r=e.r,this.g=e.g,this.b=e.b,this}copySRGBToLinear(e){return this.r=Gf(e.r),this.g=Gf(e.g),this.b=Gf(e.b),this}copyLinearToSRGB(e){return this.r=a0(e.r),this.g=a0(e.g),this.b=a0(e.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(e=Yr){return Gn.workingToColorSpace(is.copy(this),e),Math.round(Tn(is.r*255,0,255))*65536+Math.round(Tn(is.g*255,0,255))*256+Math.round(Tn(is.b*255,0,255))}getHexString(e=Yr){return("000000"+this.getHex(e).toString(16)).slice(-6)}getHSL(e,t=Gn.workingColorSpace){Gn.workingToColorSpace(is.copy(this),t);let i=is.r,r=is.g,a=is.b,s=Math.max(i,r,a),l=Math.min(i,r,a),c,f,p=(l+s)/2;if(l===s)c=0,f=0;else{let h=s-l;switch(f=p<=.5?h/(s+l):h/(2-s-l),s){case i:c=(r-a)/h+(r<a?6:0);break;case r:c=(a-i)/h+2;break;case a:c=(i-r)/h+4;break}c/=6}return e.h=c,e.s=f,e.l=p,e}getRGB(e,t=Gn.workingColorSpace){return Gn.workingToColorSpace(is.copy(this),t),e.r=is.r,e.g=is.g,e.b=is.b,e}getStyle(e=Yr){Gn.workingToColorSpace(is.copy(this),e);let t=is.r,i=is.g,r=is.b;return e!==Yr?`color(${e} ${t.toFixed(3)} ${i.toFixed(3)} ${r.toFixed(3)})`:`rgb(${Math.round(t*255)},${Math.round(i*255)},${Math.round(r*255)})`}offsetHSL(e,t,i){return this.getHSL(Ah),this.setHSL(Ah.h+e,Ah.s+t,Ah.l+i)}add(e){return this.r+=e.r,this.g+=e.g,this.b+=e.b,this}addColors(e,t){return this.r=e.r+t.r,this.g=e.g+t.g,this.b=e.b+t.b,this}addScalar(e){return this.r+=e,this.g+=e,this.b+=e,this}sub(e){return this.r=Math.max(0,this.r-e.r),this.g=Math.max(0,this.g-e.g),this.b=Math.max(0,this.b-e.b),this}multiply(e){return this.r*=e.r,this.g*=e.g,this.b*=e.b,this}multiplyScalar(e){return this.r*=e,this.g*=e,this.b*=e,this}lerp(e,t){return this.r+=(e.r-this.r)*t,this.g+=(e.g-this.g)*t,this.b+=(e.b-this.b)*t,this}lerpColors(e,t,i){return this.r=e.r+(t.r-e.r)*i,this.g=e.g+(t.g-e.g)*i,this.b=e.b+(t.b-e.b)*i,this}lerpHSL(e,t){this.getHSL(Ah),e.getHSL(cA);let i=Aw(Ah.h,cA.h,t),r=Aw(Ah.s,cA.s,t),a=Aw(Ah.l,cA.l,t);return this.setHSL(i,r,a),this}setFromVector3(e){return this.r=e.x,this.g=e.y,this.b=e.z,this}applyMatrix3(e){let t=this.r,i=this.g,r=this.b,a=e.elements;return this.r=a[0]*t+a[3]*i+a[6]*r,this.g=a[1]*t+a[4]*i+a[7]*r,this.b=a[2]*t+a[5]*i+a[8]*r,this}equals(e){return e.r===this.r&&e.g===this.g&&e.b===this.b}fromArray(e,t=0){return this.r=e[t],this.g=e[t+1],this.b=e[t+2],this}toArray(e=[],t=0){return e[t]=this.r,e[t+1]=this.g,e[t+2]=this.b,e}fromBufferAttribute(e,t){return this.r=e.getX(t),this.g=e.getY(t),this.b=e.getZ(t),this}toJSON(){return this.getHex()}*[Symbol.iterator](){yield this.r,yield this.g,yield this.b}},is=new Vt;Vt.NAMES=H5;var qw=class n{constructor(e,t=25e-5){this.isFogExp2=!0,this.name="",this.color=new Vt(e),this.density=t}clone(){return new n(this.color,this.density)}toJSON(){return{type:"FogExp2",name:this.name,color:this.color.getHex(),density:this.density}}},Bw=class n{constructor(e,t=1,i=1e3){this.isFog=!0,this.name="",this.color=new Vt(e),this.near=t,this.far=i}clone(){return new n(this.color,this.near,this.far)}toJSON(){return{type:"Fog",name:this.name,color:this.color.getHex(),near:this.near,far:this.far}}},f_=class extends gi{constructor(){super(),this.isScene=!0,this.type="Scene",this.background=null,this.environment=null,this.fog=null,this.backgroundBlurriness=0,this.backgroundIntensity=1,this.backgroundRotation=new Kl,this.environmentIntensity=1,this.environmentRotation=new Kl,this.overrideMaterial=null,typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}copy(e,t){return super.copy(e,t),e.background!==null&&(this.background=e.background.clone()),e.environment!==null&&(this.environment=e.environment.clone()),e.fog!==null&&(this.fog=e.fog.clone()),this.backgroundBlurriness=e.backgroundBlurriness,this.backgroundIntensity=e.backgroundIntensity,this.backgroundRotation.copy(e.backgroundRotation),this.environmentIntensity=e.environmentIntensity,this.environmentRotation.copy(e.environmentRotation),e.overrideMaterial!==null&&(this.overrideMaterial=e.overrideMaterial.clone()),this.matrixAutoUpdate=e.matrixAutoUpdate,this}toJSON(e){let t=super.toJSON(e);return this.fog!==null&&(t.object.fog=this.fog.toJSON()),t.object.backgroundBlurriness=this.backgroundBlurriness,t.object.backgroundIntensity=this.backgroundIntensity,t.object.backgroundRotation=this.backgroundRotation.toArray(),t.object.environmentIntensity=this.environmentIntensity,t.object.environmentRotation=this.environmentRotation.toArray(),t}},wu=new ve,Pf=new ve,wk=new ve,Uf=new ve,Hy=new ve,Vy=new ve,QB=new ve,xk=new ve,Tk=new ve,Mk=new ve,Ak=new Ni,Ck=new Ni,Rk=new Ni,Mu=class n{constructor(e=new ve,t=new ve,i=new ve){this.a=e,this.b=t,this.c=i}static getNormal(e,t,i,r){r.subVectors(i,t),wu.subVectors(e,t),r.cross(wu);let a=r.lengthSq();return a>0?r.multiplyScalar(1/Math.sqrt(a)):r.set(0,0,0)}static getBarycoord(e,t,i,r,a){wu.subVectors(r,t),Pf.subVectors(i,t),wk.subVectors(e,t);let s=wu.dot(wu),l=wu.dot(Pf),c=wu.dot(wk),f=Pf.dot(Pf),p=Pf.dot(wk),h=s*f-l*l;if(h===0)return a.set(0,0,0),null;let _=1/h,g=(f*c-l*p)*_,E=(s*p-l*c)*_;return a.set(1-g-E,E,g)}static containsPoint(e,t,i,r){return this.getBarycoord(e,t,i,r,Uf)===null?!1:Uf.x>=0&&Uf.y>=0&&Uf.x+Uf.y<=1}static getInterpolation(e,t,i,r,a,s,l,c){return this.getBarycoord(e,t,i,r,Uf)===null?(c.x=0,c.y=0,"z"in c&&(c.z=0),"w"in c&&(c.w=0),null):(c.setScalar(0),c.addScaledVector(a,Uf.x),c.addScaledVector(s,Uf.y),c.addScaledVector(l,Uf.z),c)}static getInterpolatedAttribute(e,t,i,r,a,s){return Ak.setScalar(0),Ck.setScalar(0),Rk.setScalar(0),Ak.fromBufferAttribute(e,t),Ck.fromBufferAttribute(e,i),Rk.fromBufferAttribute(e,r),s.setScalar(0),s.addScaledVector(Ak,a.x),s.addScaledVector(Ck,a.y),s.addScaledVector(Rk,a.z),s}static isFrontFacing(e,t,i,r){return wu.subVectors(i,t),Pf.subVectors(e,t),wu.cross(Pf).dot(r)<0}set(e,t,i){return this.a.copy(e),this.b.copy(t),this.c.copy(i),this}setFromPointsAndIndices(e,t,i,r){return this.a.copy(e[t]),this.b.copy(e[i]),this.c.copy(e[r]),this}setFromAttributeAndIndices(e,t,i,r){return this.a.fromBufferAttribute(e,t),this.b.fromBufferAttribute(e,i),this.c.fromBufferAttribute(e,r),this}clone(){return new this.constructor().copy(this)}copy(e){return this.a.copy(e.a),this.b.copy(e.b),this.c.copy(e.c),this}getArea(){return wu.subVectors(this.c,this.b),Pf.subVectors(this.a,this.b),wu.cross(Pf).length()*.5}getMidpoint(e){return e.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(e){return n.getNormal(this.a,this.b,this.c,e)}getPlane(e){return e.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(e,t){return n.getBarycoord(e,this.a,this.b,this.c,t)}getInterpolation(e,t,i,r,a){return n.getInterpolation(e,this.a,this.b,this.c,t,i,r,a)}containsPoint(e){return n.containsPoint(e,this.a,this.b,this.c)}isFrontFacing(e){return n.isFrontFacing(this.a,this.b,this.c,e)}intersectsBox(e){return e.intersectsTriangle(this)}closestPointToPoint(e,t){let i=this.a,r=this.b,a=this.c,s,l;Hy.subVectors(r,i),Vy.subVectors(a,i),xk.subVectors(e,i);let c=Hy.dot(xk),f=Vy.dot(xk);if(c<=0&&f<=0)return t.copy(i);Tk.subVectors(e,r);let p=Hy.dot(Tk),h=Vy.dot(Tk);if(p>=0&&h<=p)return t.copy(r);let _=c*h-p*f;if(_<=0&&c>=0&&p<=0)return s=c/(c-p),t.copy(i).addScaledVector(Hy,s);Mk.subVectors(e,a);let g=Hy.dot(Mk),E=Vy.dot(Mk);if(E>=0&&g<=E)return t.copy(a);let x=g*f-c*E;if(x<=0&&f>=0&&E<=0)return l=f/(f-E),t.copy(i).addScaledVector(Vy,l);let S=p*E-g*h;if(S<=0&&h-p>=0&&g-E>=0)return QB.subVectors(a,r),l=(h-p)/(h-p+(g-E)),t.copy(r).addScaledVector(QB,l);let v=1/(S+x+_);return s=x*v,l=_*v,t.copy(i).addScaledVector(Hy,s).addScaledVector(Vy,l)}equals(e){return e.a.equals(this.a)&&e.b.equals(this.b)&&e.c.equals(this.c)}},sa=class{constructor(e=new ve(1/0,1/0,1/0),t=new ve(-1/0,-1/0,-1/0)){this.isBox3=!0,this.min=e,this.max=t}set(e,t){return this.min.copy(e),this.max.copy(t),this}setFromArray(e){this.makeEmpty();for(let t=0,i=e.length;t<i;t+=3)this.expandByPoint(xu.fromArray(e,t));return this}setFromBufferAttribute(e){this.makeEmpty();for(let t=0,i=e.count;t<i;t++)this.expandByPoint(xu.fromBufferAttribute(e,t));return this}setFromPoints(e){this.makeEmpty();for(let t=0,i=e.length;t<i;t++)this.expandByPoint(e[t]);return this}setFromCenterAndSize(e,t){let i=xu.copy(t).multiplyScalar(.5);return this.min.copy(e).sub(i),this.max.copy(e).add(i),this}setFromObject(e,t=!1){return this.makeEmpty(),this.expandByObject(e,t)}clone(){return new this.constructor().copy(this)}copy(e){return this.min.copy(e.min),this.max.copy(e.max),this}makeEmpty(){return this.min.x=this.min.y=this.min.z=1/0,this.max.x=this.max.y=this.max.z=-1/0,this}isEmpty(){return this.max.x<this.min.x||this.max.y<this.min.y||this.max.z<this.min.z}getCenter(e){return this.isEmpty()?e.set(0,0,0):e.addVectors(this.min,this.max).multiplyScalar(.5)}getSize(e){return this.isEmpty()?e.set(0,0,0):e.subVectors(this.max,this.min)}expandByPoint(e){return this.min.min(e),this.max.max(e),this}expandByVector(e){return this.min.sub(e),this.max.add(e),this}expandByScalar(e){return this.min.addScalar(-e),this.max.addScalar(e),this}expandByObject(e,t=!1){e.updateWorldMatrix(!1,!1);let i=e.geometry;if(i!==void 0){let a=i.getAttribute("position");if(t===!0&&a!==void 0&&e.isInstancedMesh!==!0)for(let s=0,l=a.count;s<l;s++)e.isMesh===!0?e.getVertexPosition(s,xu):xu.fromBufferAttribute(a,s),xu.applyMatrix4(e.matrixWorld),this.expandByPoint(xu);else e.boundingBox!==void 0?(e.boundingBox===null&&e.computeBoundingBox(),fA.copy(e.boundingBox)):(i.boundingBox===null&&i.computeBoundingBox(),fA.copy(i.boundingBox)),fA.applyMatrix4(e.matrixWorld),this.union(fA)}let r=e.children;for(let a=0,s=r.length;a<s;a++)this.expandByObject(r[a],t);return this}containsPoint(e){return e.x>=this.min.x&&e.x<=this.max.x&&e.y>=this.min.y&&e.y<=this.max.y&&e.z>=this.min.z&&e.z<=this.max.z}containsBox(e){return this.min.x<=e.min.x&&e.max.x<=this.max.x&&this.min.y<=e.min.y&&e.max.y<=this.max.y&&this.min.z<=e.min.z&&e.max.z<=this.max.z}getParameter(e,t){return t.set((e.x-this.min.x)/(this.max.x-this.min.x),(e.y-this.min.y)/(this.max.y-this.min.y),(e.z-this.min.z)/(this.max.z-this.min.z))}intersectsBox(e){return e.max.x>=this.min.x&&e.min.x<=this.max.x&&e.max.y>=this.min.y&&e.min.y<=this.max.y&&e.max.z>=this.min.z&&e.min.z<=this.max.z}intersectsSphere(e){return this.clampPoint(e.center,xu),xu.distanceToSquared(e.center)<=e.radius*e.radius}intersectsPlane(e){let t,i;return e.normal.x>0?(t=e.normal.x*this.min.x,i=e.normal.x*this.max.x):(t=e.normal.x*this.max.x,i=e.normal.x*this.min.x),e.normal.y>0?(t+=e.normal.y*this.min.y,i+=e.normal.y*this.max.y):(t+=e.normal.y*this.max.y,i+=e.normal.y*this.min.y),e.normal.z>0?(t+=e.normal.z*this.min.z,i+=e.normal.z*this.max.z):(t+=e.normal.z*this.max.z,i+=e.normal.z*this.min.z),t<=-e.constant&&i>=-e.constant}intersectsTriangle(e){if(this.isEmpty())return!1;this.getCenter(dw),dA.subVectors(this.max,dw),Gy.subVectors(e.a,dw),Wy.subVectors(e.b,dw),jy.subVectors(e.c,dw),Ch.subVectors(Wy,Gy),Rh.subVectors(jy,Wy),Qm.subVectors(Gy,jy);let t=[0,-Ch.z,Ch.y,0,-Rh.z,Rh.y,0,-Qm.z,Qm.y,Ch.z,0,-Ch.x,Rh.z,0,-Rh.x,Qm.z,0,-Qm.x,-Ch.y,Ch.x,0,-Rh.y,Rh.x,0,-Qm.y,Qm.x,0];return!Ik(t,Gy,Wy,jy,dA)||(t=[1,0,0,0,1,0,0,0,1],!Ik(t,Gy,Wy,jy,dA))?!1:(hA.crossVectors(Ch,Rh),t=[hA.x,hA.y,hA.z],Ik(t,Gy,Wy,jy,dA))}clampPoint(e,t){return t.copy(e).clamp(this.min,this.max)}distanceToPoint(e){return this.clampPoint(e,xu).distanceTo(e)}getBoundingSphere(e){return this.isEmpty()?e.makeEmpty():(this.getCenter(e.center),e.radius=this.getSize(xu).length()*.5),e}intersect(e){return this.min.max(e.min),this.max.min(e.max),this.isEmpty()&&this.makeEmpty(),this}union(e){return this.min.min(e.min),this.max.max(e.max),this}applyMatrix4(e){return this.isEmpty()?this:(zf[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(e),zf[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(e),zf[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(e),zf[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(e),zf[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(e),zf[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(e),zf[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(e),zf[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(e),this.setFromPoints(zf),this)}translate(e){return this.min.add(e),this.max.add(e),this}equals(e){return e.min.equals(this.min)&&e.max.equals(this.max)}toJSON(){return{min:this.min.toArray(),max:this.max.toArray()}}fromJSON(e){return this.min.fromArray(e.min),this.max.fromArray(e.max),this}},zf=[new ve,new ve,new ve,new ve,new ve,new ve,new ve,new ve],xu=new ve,fA=new sa,Gy=new ve,Wy=new ve,jy=new ve,Ch=new ve,Rh=new ve,Qm=new ve,dw=new ve,dA=new ve,hA=new ve,Xm=new ve;function Ik(n,e,t,i,r){for(let a=0,s=n.length-3;a<=s;a+=3){Xm.fromArray(n,a);let l=r.x*Math.abs(Xm.x)+r.y*Math.abs(Xm.y)+r.z*Math.abs(Xm.z),c=e.dot(Xm),f=t.dot(Xm),p=i.dot(Xm);if(Math.max(-Math.max(c,f,p),Math.min(c,f,p))>l)return!1}return!0}var Hf=vQ();function vQ(){let n=new ArrayBuffer(4),e=new Float32Array(n),t=new Uint32Array(n),i=new Uint32Array(512),r=new Uint32Array(512);for(let c=0;c<256;++c){let f=c-127;f<-27?(i[c]=0,i[c|256]=32768,r[c]=24,r[c|256]=24):f<-14?(i[c]=1024>>-f-14,i[c|256]=1024>>-f-14|32768,r[c]=-f-1,r[c|256]=-f-1):f<=15?(i[c]=f+15<<10,i[c|256]=f+15<<10|32768,r[c]=13,r[c|256]=13):f<128?(i[c]=31744,i[c|256]=64512,r[c]=24,r[c|256]=24):(i[c]=31744,i[c|256]=64512,r[c]=13,r[c|256]=13)}let a=new Uint32Array(2048),s=new Uint32Array(64),l=new Uint32Array(64);for(let c=1;c<1024;++c){let f=c<<13,p=0;for(;(f&8388608)===0;)f<<=1,p-=8388608;f&=-8388609,p+=947912704,a[c]=f|p}for(let c=1024;c<2048;++c)a[c]=939524096+(c-1024<<13);for(let c=1;c<31;++c)s[c]=c<<23;s[31]=1199570944,s[32]=2147483648;for(let c=33;c<63;++c)s[c]=2147483648+(c-32<<23);s[63]=3347054592;for(let c=1;c<64;++c)c!==32&&(l[c]=1024);return{floatView:e,uint32View:t,baseTable:i,shiftTable:r,mantissaTable:a,exponentTable:s,offsetTable:l}}function co(n){Math.abs(n)>65504&&Ft("DataUtils.toHalfFloat(): Value out of range."),n=Tn(n,-65504,65504),Hf.floatView[0]=n;let e=Hf.uint32View[0],t=e>>23&511;return Hf.baseTable[t]+((e&8388607)>>Hf.shiftTable[t])}function ww(n){let e=n>>10;return Hf.uint32View[0]=Hf.mantissaTable[Hf.offsetTable[e]+(n&1023)]+Hf.exponentTable[e],Hf.floatView[0]}var nC=class{static toHalfFloat(e){return co(e)}static fromHalfFloat(e){return ww(e)}},Xr=new ve,pA=new ut,yQ=0,Li=class extends po{constructor(e,t,i=!1){if(super(),Array.isArray(e))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");this.isBufferAttribute=!0,Object.defineProperty(this,"id",{value:yQ++}),this.name="",this.array=e,this.itemSize=t,this.count=e!==void 0?e.length/t:0,this.normalized=i,this.usage=F1,this.updateRanges=[],this.gpuType=as,this.version=0}onUploadCallback(){}set needsUpdate(e){e===!0&&this.version++}setUsage(e){return this.usage=e,this}addUpdateRange(e,t){this.updateRanges.push({start:e,count:t})}clearUpdateRanges(){this.updateRanges.length=0}copy(e){return this.name=e.name,this.array=new e.array.constructor(e.array),this.itemSize=e.itemSize,this.count=e.count,this.normalized=e.normalized,this.usage=e.usage,this.gpuType=e.gpuType,this}copyAt(e,t,i){e*=this.itemSize,i*=t.itemSize;for(let r=0,a=this.itemSize;r<a;r++)this.array[e+r]=t.array[i+r];return this}copyArray(e){return this.array.set(e),this}applyMatrix3(e){if(this.itemSize===2)for(let t=0,i=this.count;t<i;t++)pA.fromBufferAttribute(this,t),pA.applyMatrix3(e),this.setXY(t,pA.x,pA.y);else if(this.itemSize===3)for(let t=0,i=this.count;t<i;t++)Xr.fromBufferAttribute(this,t),Xr.applyMatrix3(e),this.setXYZ(t,Xr.x,Xr.y,Xr.z);return this}applyMatrix4(e){for(let t=0,i=this.count;t<i;t++)Xr.fromBufferAttribute(this,t),Xr.applyMatrix4(e),this.setXYZ(t,Xr.x,Xr.y,Xr.z);return this}applyNormalMatrix(e){for(let t=0,i=this.count;t<i;t++)Xr.fromBufferAttribute(this,t),Xr.applyNormalMatrix(e),this.setXYZ(t,Xr.x,Xr.y,Xr.z);return this}transformDirection(e){for(let t=0,i=this.count;t<i;t++)Xr.fromBufferAttribute(this,t),Xr.transformDirection(e),this.setXYZ(t,Xr.x,Xr.y,Xr.z);return this}set(e,t=0){return this.array.set(e,t),this}getComponent(e,t){let i=this.array[e*this.itemSize+t];return this.normalized&&(i=Ts(i,this.array)),i}setComponent(e,t,i){return this.normalized&&(i=Pn(i,this.array)),this.array[e*this.itemSize+t]=i,this}getX(e){let t=this.array[e*this.itemSize];return this.normalized&&(t=Ts(t,this.array)),t}setX(e,t){return this.normalized&&(t=Pn(t,this.array)),this.array[e*this.itemSize]=t,this}getY(e){let t=this.array[e*this.itemSize+1];return this.normalized&&(t=Ts(t,this.array)),t}setY(e,t){return this.normalized&&(t=Pn(t,this.array)),this.array[e*this.itemSize+1]=t,this}getZ(e){let t=this.array[e*this.itemSize+2];return this.normalized&&(t=Ts(t,this.array)),t}setZ(e,t){return this.normalized&&(t=Pn(t,this.array)),this.array[e*this.itemSize+2]=t,this}getW(e){let t=this.array[e*this.itemSize+3];return this.normalized&&(t=Ts(t,this.array)),t}setW(e,t){return this.normalized&&(t=Pn(t,this.array)),this.array[e*this.itemSize+3]=t,this}setXY(e,t,i){return e*=this.itemSize,this.normalized&&(t=Pn(t,this.array),i=Pn(i,this.array)),this.array[e+0]=t,this.array[e+1]=i,this}setXYZ(e,t,i,r){return e*=this.itemSize,this.normalized&&(t=Pn(t,this.array),i=Pn(i,this.array),r=Pn(r,this.array)),this.array[e+0]=t,this.array[e+1]=i,this.array[e+2]=r,this}setXYZW(e,t,i,r,a){return e*=this.itemSize,this.normalized&&(t=Pn(t,this.array),i=Pn(i,this.array),r=Pn(r,this.array),a=Pn(a,this.array)),this.array[e+0]=t,this.array[e+1]=i,this.array[e+2]=r,this.array[e+3]=a,this}onUpload(e){return this.onUploadCallback=e,this}clone(){return new this.constructor(this.array,this.itemSize).copy(this)}toJSON(){let e={itemSize:this.itemSize,type:this.array.constructor.name,array:Array.from(this.array),normalized:this.normalized};return e.name=this.name,e.usage=this.usage,e.gpuType=this.gpuType,e}dispose(){this.dispatchEvent({type:"dispose"})}},iC=class extends Li{constructor(e,t,i){super(new Int8Array(e),t,i)}},rC=class extends Li{constructor(e,t,i){super(new Uint8Array(e),t,i)}},aC=class extends Li{constructor(e,t,i){super(new Uint8ClampedArray(e),t,i)}},sC=class extends Li{constructor(e,t,i){super(new Int16Array(e),t,i)}},p0=class extends Li{constructor(e,t,i){super(new Uint16Array(e),t,i)}},oC=class extends Li{constructor(e,t,i){super(new Int32Array(e),t,i)}},m0=class extends Li{constructor(e,t,i){super(new Uint32Array(e),t,i)}},lC=class extends Li{constructor(e,t,i){super(new Uint16Array(e),t,i),this.isFloat16BufferAttribute=!0}getX(e){let t=ww(this.array[e*this.itemSize]);return this.normalized&&(t=Ts(t,this.array)),t}setX(e,t){return this.normalized&&(t=Pn(t,this.array)),this.array[e*this.itemSize]=co(t),this}getY(e){let t=ww(this.array[e*this.itemSize+1]);return this.normalized&&(t=Ts(t,this.array)),t}setY(e,t){return this.normalized&&(t=Pn(t,this.array)),this.array[e*this.itemSize+1]=co(t),this}getZ(e){let t=ww(this.array[e*this.itemSize+2]);return this.normalized&&(t=Ts(t,this.array)),t}setZ(e,t){return this.normalized&&(t=Pn(t,this.array)),this.array[e*this.itemSize+2]=co(t),this}getW(e){let t=ww(this.array[e*this.itemSize+3]);return this.normalized&&(t=Ts(t,this.array)),t}setW(e,t){return this.normalized&&(t=Pn(t,this.array)),this.array[e*this.itemSize+3]=co(t),this}setXY(e,t,i){return e*=this.itemSize,this.normalized&&(t=Pn(t,this.array),i=Pn(i,this.array)),this.array[e+0]=co(t),this.array[e+1]=co(i),this}setXYZ(e,t,i,r){return e*=this.itemSize,this.normalized&&(t=Pn(t,this.array),i=Pn(i,this.array),r=Pn(r,this.array)),this.array[e+0]=co(t),this.array[e+1]=co(i),this.array[e+2]=co(r),this}setXYZW(e,t,i,r,a){return e*=this.itemSize,this.normalized&&(t=Pn(t,this.array),i=Pn(i,this.array),r=Pn(r,this.array),a=Pn(a,this.array)),this.array[e+0]=co(t),this.array[e+1]=co(i),this.array[e+2]=co(r),this.array[e+3]=co(a),this}},an=class extends Li{constructor(e,t,i){super(new Float32Array(e),t,i)}},bQ=new sa,hw=new ve,Lk=new ve,Kr=class{constructor(e=new ve,t=-1){this.isSphere=!0,this.center=e,this.radius=t}set(e,t){return this.center.copy(e),this.radius=t,this}setFromPoints(e,t){let i=this.center;t!==void 0?i.copy(t):bQ.setFromPoints(e).getCenter(i);let r=0;for(let a=0,s=e.length;a<s;a++)r=Math.max(r,i.distanceToSquared(e[a]));return this.radius=Math.sqrt(r),this}copy(e){return this.center.copy(e.center),this.radius=e.radius,this}isEmpty(){return this.radius<0}makeEmpty(){return this.center.set(0,0,0),this.radius=-1,this}containsPoint(e){return e.distanceToSquared(this.center)<=this.radius*this.radius}distanceToPoint(e){return e.distanceTo(this.center)-this.radius}intersectsSphere(e){let t=this.radius+e.radius;return e.center.distanceToSquared(this.center)<=t*t}intersectsBox(e){return e.intersectsSphere(this)}intersectsPlane(e){return Math.abs(e.distanceToPoint(this.center))<=this.radius}clampPoint(e,t){let i=this.center.distanceToSquared(e);return t.copy(e),i>this.radius*this.radius&&(t.sub(this.center).normalize(),t.multiplyScalar(this.radius).add(this.center)),t}getBoundingBox(e){return this.isEmpty()?(e.makeEmpty(),e):(e.set(this.center,this.center),e.expandByScalar(this.radius),e)}applyMatrix4(e){return this.center.applyMatrix4(e),this.radius=this.radius*e.getMaxScaleOnAxis(),this}translate(e){return this.center.add(e),this}expandByPoint(e){if(this.isEmpty())return this.center.copy(e),this.radius=0,this;hw.subVectors(e,this.center);let t=hw.lengthSq();if(t>this.radius*this.radius){let i=Math.sqrt(t),r=(i-this.radius)*.5;this.center.addScaledVector(hw,r/i),this.radius+=r}return this}union(e){return e.isEmpty()?this:this.isEmpty()?(this.copy(e),this):(this.center.equals(e.center)===!0?this.radius=Math.max(this.radius,e.radius):(Lk.subVectors(e.center,this.center).setLength(e.radius),this.expandByPoint(hw.copy(e.center).add(Lk)),this.expandByPoint(hw.copy(e.center).sub(Lk))),this)}equals(e){return e.center.equals(this.center)&&e.radius===this.radius}clone(){return new this.constructor().copy(this)}toJSON(){return{radius:this.radius,center:this.center.toArray()}}fromJSON(e){return this.radius=e.radius,this.center.fromArray(e.center),this}},SQ=0,Ql=new Cn,Nk=new gi,Qy=new ve,el=new sa,pw=new sa,Ea=new ve,Nn=class n extends po{constructor(){super(),this.isBufferGeometry=!0,Object.defineProperty(this,"id",{value:SQ++}),this.uuid=tl(),this.name="",this.type="BufferGeometry",this.index=null,this.indirect=null,this.indirectOffset=0,this.attributes={},this.morphAttributes={},this.morphTargetsRelative=!1,this.groups=[],this.boundingBox=null,this.boundingSphere=null,this.drawRange={start:0,count:1/0},this.userData={},this._transformed=!1}getIndex(){return this.index}setIndex(e){return Array.isArray(e)?this.index=new(Gj(e)?m0:p0)(e,1):this.index=e,this}setIndirect(e,t=0){return this.indirect=e,this.indirectOffset=t,this}getIndirect(){return this.indirect}getAttribute(e){return this.attributes[e]}setAttribute(e,t){return this.attributes[e]=t,this}deleteAttribute(e){return delete this.attributes[e],this}hasAttribute(e){return this.attributes[e]!==void 0}addGroup(e,t,i=0){this.groups.push({start:e,count:t,materialIndex:i})}clearGroups(){this.groups=[]}setDrawRange(e,t){this.drawRange.start=e,this.drawRange.count=t}applyMatrix4(e){let t=this.attributes.position;t!==void 0&&(t.applyMatrix4(e),t.needsUpdate=!0);let i=this.attributes.normal;if(i!==void 0){let a=new In().getNormalMatrix(e);i.applyNormalMatrix(a),i.needsUpdate=!0}let r=this.attributes.tangent;return r!==void 0&&(r.transformDirection(e),r.needsUpdate=!0),this.boundingBox!==null&&this.computeBoundingBox(),this.boundingSphere!==null&&this.computeBoundingSphere(),this._transformed=!0,this}applyQuaternion(e){return Ql.makeRotationFromQuaternion(e),this.applyMatrix4(Ql),this}rotateX(e){return Ql.makeRotationX(e),this.applyMatrix4(Ql),this}rotateY(e){return Ql.makeRotationY(e),this.applyMatrix4(Ql),this}rotateZ(e){return Ql.makeRotationZ(e),this.applyMatrix4(Ql),this}translate(e,t,i){return Ql.makeTranslation(e,t,i),this.applyMatrix4(Ql),this}scale(e,t,i){return Ql.makeScale(e,t,i),this.applyMatrix4(Ql),this}lookAt(e){return Nk.lookAt(e),Nk.updateMatrix(),this.applyMatrix4(Nk.matrix),this}center(){return this.computeBoundingBox(),this.boundingBox.getCenter(Qy).negate(),this.translate(Qy.x,Qy.y,Qy.z),this}setFromPoints(e){let t=this.getAttribute("position");if(t===void 0){let i=[];for(let r=0,a=e.length;r<a;r++){let s=e[r];i.push(s.x,s.y,s.z||0)}this.setAttribute("position",new an(i,3))}else{let i=Math.min(e.length,t.count);for(let r=0;r<i;r++){let a=e[r];t.setXYZ(r,a.x,a.y,a.z||0)}e.length>t.count&&Ft("BufferGeometry: Buffer size too small for points data. Use .dispose() and create a new geometry."),t.needsUpdate=!0}return this}computeBoundingBox(){this.boundingBox===null&&(this.boundingBox=new sa);let e=this.attributes.position,t=this.morphAttributes.position;if(e&&e.isGLBufferAttribute){cn("BufferGeometry.computeBoundingBox(): GLBufferAttribute requires a manual bounding box.",this),this.boundingBox.set(new ve(-1/0,-1/0,-1/0),new ve(1/0,1/0,1/0));return}if(e!==void 0){if(this.boundingBox.setFromBufferAttribute(e),t)for(let i=0,r=t.length;i<r;i++){let a=t[i];el.setFromBufferAttribute(a),this.morphTargetsRelative?(Ea.addVectors(this.boundingBox.min,el.min),this.boundingBox.expandByPoint(Ea),Ea.addVectors(this.boundingBox.max,el.max),this.boundingBox.expandByPoint(Ea)):(this.boundingBox.expandByPoint(el.min),this.boundingBox.expandByPoint(el.max))}}else this.boundingBox.makeEmpty();(isNaN(this.boundingBox.min.x)||isNaN(this.boundingBox.min.y)||isNaN(this.boundingBox.min.z))&&cn('BufferGeometry.computeBoundingBox(): Computed min/max have NaN values. The "position" attribute is likely to have NaN values.',this)}computeBoundingSphere(){this.boundingSphere===null&&(this.boundingSphere=new Kr);let e=this.attributes.position,t=this.morphAttributes.position;if(e&&e.isGLBufferAttribute){cn("BufferGeometry.computeBoundingSphere(): GLBufferAttribute requires a manual bounding sphere.",this),this.boundingSphere.set(new ve,1/0);return}if(e){let i=this.boundingSphere.center;if(el.setFromBufferAttribute(e),t)for(let a=0,s=t.length;a<s;a++){let l=t[a];pw.setFromBufferAttribute(l),this.morphTargetsRelative?(Ea.addVectors(el.min,pw.min),el.expandByPoint(Ea),Ea.addVectors(el.max,pw.max),el.expandByPoint(Ea)):(el.expandByPoint(pw.min),el.expandByPoint(pw.max))}el.getCenter(i);let r=0;for(let a=0,s=e.count;a<s;a++)Ea.fromBufferAttribute(e,a),r=Math.max(r,i.distanceToSquared(Ea));if(t)for(let a=0,s=t.length;a<s;a++){let l=t[a],c=this.morphTargetsRelative;for(let f=0,p=l.count;f<p;f++)Ea.fromBufferAttribute(l,f),c&&(Qy.fromBufferAttribute(e,f),Ea.add(Qy)),r=Math.max(r,i.distanceToSquared(Ea))}this.boundingSphere.radius=Math.sqrt(r),isNaN(this.boundingSphere.radius)&&cn('BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.',this)}}computeTangents(){let e=this.index,t=this.attributes;if(e===null||t.position===void 0||t.normal===void 0||t.uv===void 0){cn("BufferGeometry: .computeTangents() failed. Missing required attributes (index, position, normal or uv)");return}let i=t.position,r=t.normal,a=t.uv,s=this.getAttribute("tangent");(s===void 0||s.count!==i.count)&&(s=new Li(new Float32Array(4*i.count),4),this.setAttribute("tangent",s));let l=[],c=[];for(let H=0;H<i.count;H++)l[H]=new ve,c[H]=new ve;let f=new ve,p=new ve,h=new ve,_=new ut,g=new ut,E=new ut,x=new ve,S=new ve;function v(H,Z,te){f.fromBufferAttribute(i,H),p.fromBufferAttribute(i,Z),h.fromBufferAttribute(i,te),_.fromBufferAttribute(a,H),g.fromBufferAttribute(a,Z),E.fromBufferAttribute(a,te),p.sub(f),h.sub(f),g.sub(_),E.sub(_);let j=1/(g.x*E.y-E.x*g.y);isFinite(j)&&(x.copy(p).multiplyScalar(E.y).addScaledVector(h,-g.y).multiplyScalar(j),S.copy(h).multiplyScalar(g.x).addScaledVector(p,-E.x).multiplyScalar(j),l[H].add(x),l[Z].add(x),l[te].add(x),c[H].add(S),c[Z].add(S),c[te].add(S))}let M=this.groups;M.length===0&&(M=[{start:0,count:e.count}]);for(let H=0,Z=M.length;H<Z;++H){let te=M[H],j=te.start,he=te.count;for(let ke=j,Me=j+he;ke<Me;ke+=3)v(e.getX(ke+0),e.getX(ke+1),e.getX(ke+2))}let O=new ve,k=new ve,q=new ve,G=new ve;function Q(H){q.fromBufferAttribute(r,H),G.copy(q);let Z=l[H];O.copy(Z),O.sub(q.multiplyScalar(q.dot(Z))).normalize(),k.crossVectors(G,Z);let j=k.dot(c[H])<0?-1:1;s.setXYZW(H,O.x,O.y,O.z,j)}for(let H=0,Z=M.length;H<Z;++H){let te=M[H],j=te.start,he=te.count;for(let ke=j,Me=j+he;ke<Me;ke+=3)Q(e.getX(ke+0)),Q(e.getX(ke+1)),Q(e.getX(ke+2))}this._transformed=!0}computeVertexNormals(){let e=this.index,t=this.getAttribute("position");if(t!==void 0){let i=this.getAttribute("normal");if(i===void 0||i.count!==t.count)i=new Li(new Float32Array(t.count*3),3),this.setAttribute("normal",i);else for(let _=0,g=i.count;_<g;_++)i.setXYZ(_,0,0,0);let r=new ve,a=new ve,s=new ve,l=new ve,c=new ve,f=new ve,p=new ve,h=new ve;if(e)for(let _=0,g=e.count;_<g;_+=3){let E=e.getX(_+0),x=e.getX(_+1),S=e.getX(_+2);r.fromBufferAttribute(t,E),a.fromBufferAttribute(t,x),s.fromBufferAttribute(t,S),p.subVectors(s,a),h.subVectors(r,a),p.cross(h),l.fromBufferAttribute(i,E),c.fromBufferAttribute(i,x),f.fromBufferAttribute(i,S),l.add(p),c.add(p),f.add(p),i.setXYZ(E,l.x,l.y,l.z),i.setXYZ(x,c.x,c.y,c.z),i.setXYZ(S,f.x,f.y,f.z)}else for(let _=0,g=t.count;_<g;_+=3)r.fromBufferAttribute(t,_+0),a.fromBufferAttribute(t,_+1),s.fromBufferAttribute(t,_+2),p.subVectors(s,a),h.subVectors(r,a),p.cross(h),i.setXYZ(_+0,p.x,p.y,p.z),i.setXYZ(_+1,p.x,p.y,p.z),i.setXYZ(_+2,p.x,p.y,p.z);this.normalizeNormals(),i.needsUpdate=!0}}normalizeNormals(){let e=this.attributes.normal;for(let t=0,i=e.count;t<i;t++)Ea.fromBufferAttribute(e,t),Ea.normalize(),e.setXYZ(t,Ea.x,Ea.y,Ea.z)}toNonIndexed(){function e(l,c){let f=l.array,p=l.itemSize,h=l.normalized,_=new f.constructor(c.length*p),g=0,E=0;for(let x=0,S=c.length;x<S;x++){l.isInterleavedBufferAttribute?g=c[x]*l.data.stride+l.offset:g=c[x]*p;for(let v=0;v<p;v++)_[E++]=f[g++]}return new Li(_,p,h)}if(this.index===null)return Ft("BufferGeometry.toNonIndexed(): BufferGeometry is already non-indexed."),this;let t=new n,i=this.index.array,r=this.attributes;for(let l in r){let c=r[l],f=e(c,i);t.setAttribute(l,f)}let a=this.morphAttributes;for(let l in a){let c=[],f=a[l];for(let p=0,h=f.length;p<h;p++){let _=f[p],g=e(_,i);c.push(g)}t.morphAttributes[l]=c}t.morphTargetsRelative=this.morphTargetsRelative;let s=this.groups;for(let l=0,c=s.length;l<c;l++){let f=s[l];t.addGroup(f.start,f.count,f.materialIndex)}return t}toJSON(){let e={metadata:{version:4.7,type:"BufferGeometry",generator:"BufferGeometry.toJSON"}};if(e.uuid=this.uuid,e.type=this.parameters!==void 0&&this._transformed===!0?"BufferGeometry":this.type,e.name=this.name,Object.keys(this.userData).length>0&&(e.userData=this.userData),this.parameters!==void 0&&this._transformed!==!0){let c=this.parameters;for(let f in c)c[f]!==void 0&&(e[f]=c[f]);return e}e.data={attributes:{}};let t=this.index;t!==null&&(e.data.index={type:t.array.constructor.name,array:Array.prototype.slice.call(t.array)});let i=this.attributes;for(let c in i){let f=i[c];e.data.attributes[c]=f.toJSON(e.data)}let r={},a=!1;for(let c in this.morphAttributes){let f=this.morphAttributes[c],p=[];for(let h=0,_=f.length;h<_;h++){let g=f[h];p.push(g.toJSON(e.data))}p.length>0&&(r[c]=p,a=!0)}a&&(e.data.morphAttributes=r,e.data.morphTargetsRelative=this.morphTargetsRelative);let s=this.groups;s.length>0&&(e.data.groups=JSON.parse(JSON.stringify(s)));let l=this.boundingSphere;return l!==null&&(e.data.boundingSphere=l.toJSON()),e}clone(){return new this.constructor().copy(this)}copy(e){this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null;let t={};this.name=e.name;let i=e.index;i!==null&&this.setIndex(i.clone());let r=e.attributes;for(let f in r){let p=r[f];this.setAttribute(f,p.clone(t))}let a=e.morphAttributes;for(let f in a){let p=[],h=a[f];for(let _=0,g=h.length;_<g;_++)p.push(h[_].clone(t));this.morphAttributes[f]=p}this.morphTargetsRelative=e.morphTargetsRelative;let s=e.groups;for(let f=0,p=s.length;f<p;f++){let h=s[f];this.addGroup(h.start,h.count,h.materialIndex)}let l=e.boundingBox;l!==null&&(this.boundingBox=l.clone());let c=e.boundingSphere;return c!==null&&(this.boundingSphere=c.clone()),this.drawRange.start=e.drawRange.start,this.drawRange.count=e.drawRange.count,this.userData=e.userData,this._transformed=e._transformed,this}dispose(){this.dispatchEvent({type:"dispose"})}},d_=class{constructor(e,t){this.isInterleavedBuffer=!0,this.array=e,this.stride=t,this.count=e!==void 0?e.length/t:0,this.usage=F1,this.updateRanges=[],this.version=0,this.uuid=tl()}onUploadCallback(){}set needsUpdate(e){e===!0&&this.version++}setUsage(e){return this.usage=e,this}addUpdateRange(e,t){this.updateRanges.push({start:e,count:t})}clearUpdateRanges(){this.updateRanges.length=0}copy(e){return this.array=new e.array.constructor(e.array),this.count=e.count,this.stride=e.stride,this.usage=e.usage,this}copyAt(e,t,i){e*=this.stride,i*=t.stride;for(let r=0,a=this.stride;r<a;r++)this.array[e+r]=t.array[i+r];return this}set(e,t=0){return this.array.set(e,t),this}clone(e){e.arrayBuffers===void 0&&(e.arrayBuffers={}),this.array.buffer._uuid===void 0&&(this.array.buffer._uuid=tl()),e.arrayBuffers[this.array.buffer._uuid]===void 0&&(e.arrayBuffers[this.array.buffer._uuid]=this.array.slice(0).buffer);let t=new this.array.constructor(e.arrayBuffers[this.array.buffer._uuid]),i=new this.constructor(t,this.stride);return i.setUsage(this.usage),i}onUpload(e){return this.onUploadCallback=e,this}toJSON(e){e.arrayBuffers===void 0&&(e.arrayBuffers={}),this.array.buffer._uuid===void 0&&(this.array.buffer._uuid=tl()),e.arrayBuffers[this.array.buffer._uuid]===void 0&&(e.arrayBuffers[this.array.buffer._uuid]=Array.from(new Uint32Array(this.array.buffer)));let t={uuid:this.uuid,buffer:this.array.buffer._uuid,type:this.array.constructor.name,stride:this.stride};return t.usage=this.usage,t}},xs=new ve,Ph=class n{constructor(e,t,i,r=!1){this.isInterleavedBufferAttribute=!0,this.name="",this.data=e,this.itemSize=t,this.offset=i,this.normalized=r}get count(){return this.data.count}get array(){return this.data.array}set needsUpdate(e){this.data.needsUpdate=e}applyMatrix4(e){for(let t=0,i=this.data.count;t<i;t++)xs.fromBufferAttribute(this,t),xs.applyMatrix4(e),this.setXYZ(t,xs.x,xs.y,xs.z);return this}applyNormalMatrix(e){for(let t=0,i=this.count;t<i;t++)xs.fromBufferAttribute(this,t),xs.applyNormalMatrix(e),this.setXYZ(t,xs.x,xs.y,xs.z);return this}transformDirection(e){for(let t=0,i=this.count;t<i;t++)xs.fromBufferAttribute(this,t),xs.transformDirection(e),this.setXYZ(t,xs.x,xs.y,xs.z);return this}getComponent(e,t){let i=this.array[e*this.data.stride+this.offset+t];return this.normalized&&(i=Ts(i,this.array)),i}setComponent(e,t,i){return this.normalized&&(i=Pn(i,this.array)),this.data.array[e*this.data.stride+this.offset+t]=i,this}setX(e,t){return this.normalized&&(t=Pn(t,this.array)),this.data.array[e*this.data.stride+this.offset]=t,this}setY(e,t){return this.normalized&&(t=Pn(t,this.array)),this.data.array[e*this.data.stride+this.offset+1]=t,this}setZ(e,t){return this.normalized&&(t=Pn(t,this.array)),this.data.array[e*this.data.stride+this.offset+2]=t,this}setW(e,t){return this.normalized&&(t=Pn(t,this.array)),this.data.array[e*this.data.stride+this.offset+3]=t,this}getX(e){let t=this.data.array[e*this.data.stride+this.offset];return this.normalized&&(t=Ts(t,this.array)),t}getY(e){let t=this.data.array[e*this.data.stride+this.offset+1];return this.normalized&&(t=Ts(t,this.array)),t}getZ(e){let t=this.data.array[e*this.data.stride+this.offset+2];return this.normalized&&(t=Ts(t,this.array)),t}getW(e){let t=this.data.array[e*this.data.stride+this.offset+3];return this.normalized&&(t=Ts(t,this.array)),t}setXY(e,t,i){return e=e*this.data.stride+this.offset,this.normalized&&(t=Pn(t,this.array),i=Pn(i,this.array)),this.data.array[e+0]=t,this.data.array[e+1]=i,this}setXYZ(e,t,i,r){return e=e*this.data.stride+this.offset,this.normalized&&(t=Pn(t,this.array),i=Pn(i,this.array),r=Pn(r,this.array)),this.data.array[e+0]=t,this.data.array[e+1]=i,this.data.array[e+2]=r,this}setXYZW(e,t,i,r,a){return e=e*this.data.stride+this.offset,this.normalized&&(t=Pn(t,this.array),i=Pn(i,this.array),r=Pn(r,this.array),a=Pn(a,this.array)),this.data.array[e+0]=t,this.data.array[e+1]=i,this.data.array[e+2]=r,this.data.array[e+3]=a,this}clone(e){if(e===void 0){d0("InterleavedBufferAttribute.clone(): Cloning an interleaved buffer attribute will de-interleave buffer data.");let t=[];for(let i=0;i<this.count;i++){let r=i*this.data.stride+this.offset;for(let a=0;a<this.itemSize;a++)t.push(this.data.array[r+a])}return new Li(new this.array.constructor(t),this.itemSize,this.normalized)}else return e.interleavedBuffers===void 0&&(e.interleavedBuffers={}),e.interleavedBuffers[this.data.uuid]===void 0&&(e.interleavedBuffers[this.data.uuid]=this.data.clone(e)),new n(e.interleavedBuffers[this.data.uuid],this.itemSize,this.offset,this.normalized)}toJSON(e){if(e===void 0){d0("InterleavedBufferAttribute.toJSON(): Serializing an interleaved buffer attribute will de-interleave buffer data.");let t=[];for(let i=0;i<this.count;i++){let r=i*this.data.stride+this.offset;for(let a=0;a<this.itemSize;a++)t.push(this.data.array[r+a])}return{itemSize:this.itemSize,type:this.array.constructor.name,array:t,normalized:this.normalized}}else return e.interleavedBuffers===void 0&&(e.interleavedBuffers={}),e.interleavedBuffers[this.data.uuid]===void 0&&(e.interleavedBuffers[this.data.uuid]=this.data.toJSON(e)),{isInterleavedBufferAttribute:!0,itemSize:this.itemSize,data:this.data.uuid,offset:this.offset,normalized:this.normalized}}},kk=new ve,EQ=new ve,wQ=new In,fo=class{constructor(e=new ve(1,0,0),t=0){this.isPlane=!0,this.normal=e,this.constant=t}set(e,t){return this.normal.copy(e),this.constant=t,this}setComponents(e,t,i,r){return this.normal.set(e,t,i),this.constant=r,this}setFromNormalAndCoplanarPoint(e,t){return this.normal.copy(e),this.constant=-t.dot(this.normal),this}setFromCoplanarPoints(e,t,i){let r=kk.subVectors(i,t).cross(EQ.subVectors(e,t)).normalize();return this.setFromNormalAndCoplanarPoint(r,e),this}copy(e){return this.normal.copy(e.normal),this.constant=e.constant,this}normalize(){let e=1/this.normal.length();return this.normal.multiplyScalar(e),this.constant*=e,this}negate(){return this.constant*=-1,this.normal.negate(),this}distanceToPoint(e){return this.normal.dot(e)+this.constant}distanceToSphere(e){return this.distanceToPoint(e.center)-e.radius}projectPoint(e,t){return t.copy(e).addScaledVector(this.normal,-this.distanceToPoint(e))}intersectLine(e,t,i=!0){let r=e.delta(kk),a=this.normal.dot(r);if(a===0)return this.distanceToPoint(e.start)===0?t.copy(e.start):null;let s=-(e.start.dot(this.normal)+this.constant)/a;return i===!0&&(s<0||s>1)?null:t.copy(e.start).addScaledVector(r,s)}intersectsLine(e){let t=this.distanceToPoint(e.start),i=this.distanceToPoint(e.end);return t<0&&i>0||i<0&&t>0}intersectsBox(e){return e.intersectsPlane(this)}intersectsSphere(e){return e.intersectsPlane(this)}coplanarPoint(e){return e.copy(this.normal).multiplyScalar(-this.constant)}applyMatrix4(e,t){let i=t||wQ.getNormalMatrix(e),r=this.coplanarPoint(kk).applyMatrix4(e),a=this.normal.applyMatrix3(i).normalize();return this.constant=-r.dot(a),this}translate(e){return this.constant-=e.dot(this.normal),this}equals(e){return e.normal.equals(this.normal)&&e.constant===this.constant}clone(){return new this.constructor().copy(this)}toJSON(){return{normal:this.normal.toArray(),constant:this.constant}}fromJSON(e){return this.normal.fromArray(e.normal),this.constant=e.constant,this}},xQ=0,Zr=class extends po{constructor(){super(),this.isMaterial=!0,Object.defineProperty(this,"id",{value:xQ++}),this.uuid=tl(),this.name="",this.type="Material",this.blending=w_,this.side=$f,this.vertexColors=!1,this.opacity=1,this.transparent=!1,this.alphaHash=!1,this.blendSrc=s2,this.blendDst=o2,this.blendEquation=Wh,this.blendSrcAlpha=null,this.blendDstAlpha=null,this.blendEquationAlpha=null,this.blendColor=new Vt(0,0,0),this.blendAlpha=0,this.depthFunc=s_,this.depthTest=!0,this.depthWrite=!0,this.stencilWriteMask=255,this.stencilFunc=qO,this.stencilRef=0,this.stencilFuncMask=255,this.stencilFail=Mw,this.stencilZFail=Mw,this.stencilZPass=Mw,this.stencilWrite=!1,this.clippingPlanes=null,this.clipIntersection=!1,this.clipShadows=!1,this.shadowSide=null,this.colorWrite=!0,this.precision=null,this.polygonOffset=!1,this.polygonOffsetFactor=0,this.polygonOffsetUnits=0,this.dithering=!1,this.alphaToCoverage=!1,this.premultipliedAlpha=!1,this.forceSinglePass=!1,this.allowOverride=!0,this.visible=!0,this.toneMapped=!0,this.userData={},this.version=0,this._alphaTest=0}get alphaTest(){return this._alphaTest}set alphaTest(e){this._alphaTest>0!=e>0&&this.version++,this._alphaTest=e}onBeforeRender(){}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(e){if(e!==void 0)for(let t in e){let i=e[t];if(i===void 0){Ft(`Material: parameter '${t}' has value of undefined.`);continue}let r=this[t];if(r===void 0){Ft(`Material: '${t}' is not a property of THREE.${this.type}.`);continue}r&&r.isColor?r.set(i):r&&r.isVector2&&i&&i.isVector2||r&&r.isEuler&&i&&i.isEuler||r&&r.isVector3&&i&&i.isVector3?r.copy(i):this[t]=i}}toJSON(e){let t=e===void 0||typeof e=="string";t&&(e={textures:{},images:{}});let i={metadata:{version:4.7,type:"Material",generator:"Material.toJSON"}};i.uuid=this.uuid,i.type=this.type,i.blending=this.blending,i.side=this.side,i.shadowSide=this.shadowSide,i.vertexColors=this.vertexColors,i.opacity=this.opacity,i.transparent=this.transparent,i.blendSrc=this.blendSrc,i.blendDst=this.blendDst,i.blendEquation=this.blendEquation,i.blendSrcAlpha=this.blendSrcAlpha,i.blendDstAlpha=this.blendDstAlpha,i.blendEquationAlpha=this.blendEquationAlpha,i.blendColor=this.blendColor.getHex(),i.blendAlpha=this.blendAlpha,i.depthFunc=this.depthFunc,i.depthTest=this.depthTest,i.depthWrite=this.depthWrite,i.colorWrite=this.colorWrite,i.clipIntersection=this.clipIntersection,i.clipShadows=this.clipShadows,i.stencilWriteMask=this.stencilWriteMask,i.stencilFunc=this.stencilFunc,i.stencilRef=this.stencilRef,i.stencilFuncMask=this.stencilFuncMask,i.stencilFail=this.stencilFail,i.stencilZFail=this.stencilZFail,i.stencilZPass=this.stencilZPass,i.stencilWrite=this.stencilWrite,i.polygonOffset=this.polygonOffset,i.polygonOffsetFactor=this.polygonOffsetFactor,i.polygonOffsetUnits=this.polygonOffsetUnits,i.dithering=this.dithering,i.alphaTest=this.alphaTest,i.alphaHash=this.alphaHash,i.alphaToCoverage=this.alphaToCoverage,i.premultipliedAlpha=this.premultipliedAlpha,i.forceSinglePass=this.forceSinglePass,i.allowOverride=this.allowOverride,i.visible=this.visible,i.toneMapped=this.toneMapped,i.name=this.name,this.color&&this.color.isColor&&(i.color=this.color.getHex()),this.roughness!==void 0&&(i.roughness=this.roughness),this.metalness!==void 0&&(i.metalness=this.metalness),this.sheen!==void 0&&(i.sheen=this.sheen),this.sheenColor&&this.sheenColor.isColor&&(i.sheenColor=this.sheenColor.getHex()),this.sheenRoughness!==void 0&&(i.sheenRoughness=this.sheenRoughness),this.emissive&&this.emissive.isColor&&(i.emissive=this.emissive.getHex()),this.emissiveIntensity!==void 0&&(i.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(i.specular=this.specular.getHex()),this.specularIntensity!==void 0&&(i.specularIntensity=this.specularIntensity),this.specularColor&&this.specularColor.isColor&&(i.specularColor=this.specularColor.getHex()),this.shininess!==void 0&&(i.shininess=this.shininess),this.clearcoat!==void 0&&(i.clearcoat=this.clearcoat),this.clearcoatRoughness!==void 0&&(i.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&&this.clearcoatMap.isTexture&&(i.clearcoatMap=this.clearcoatMap.toJSON(e).uuid),this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(i.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(e).uuid),this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(i.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(e).uuid,i.clearcoatNormalScale=this.clearcoatNormalScale.toArray()),this.sheenColorMap&&this.sheenColorMap.isTexture&&(i.sheenColorMap=this.sheenColorMap.toJSON(e).uuid),this.sheenRoughnessMap&&this.sheenRoughnessMap.isTexture&&(i.sheenRoughnessMap=this.sheenRoughnessMap.toJSON(e).uuid),this.dispersion!==void 0&&(i.dispersion=this.dispersion),this.retroreflectivity!==void 0&&(i.retroreflectivity=this.retroreflectivity),this.iridescence!==void 0&&(i.iridescence=this.iridescence),this.iridescenceIOR!==void 0&&(i.iridescenceIOR=this.iridescenceIOR),this.iridescenceThicknessRange!==void 0&&(i.iridescenceThicknessRange=this.iridescenceThicknessRange),this.iridescenceMap&&this.iridescenceMap.isTexture&&(i.iridescenceMap=this.iridescenceMap.toJSON(e).uuid),this.iridescenceThicknessMap&&this.iridescenceThicknessMap.isTexture&&(i.iridescenceThicknessMap=this.iridescenceThicknessMap.toJSON(e).uuid),this.anisotropy!==void 0&&(i.anisotropy=this.anisotropy),this.anisotropyRotation!==void 0&&(i.anisotropyRotation=this.anisotropyRotation),this.anisotropyMap&&this.anisotropyMap.isTexture&&(i.anisotropyMap=this.anisotropyMap.toJSON(e).uuid),this.map&&this.map.isTexture&&(i.map=this.map.toJSON(e).uuid),this.matcap&&this.matcap.isTexture&&(i.matcap=this.matcap.toJSON(e).uuid),this.alphaMap&&this.alphaMap.isTexture&&(i.alphaMap=this.alphaMap.toJSON(e).uuid),this.lightMap&&this.lightMap.isTexture&&(i.lightMap=this.lightMap.toJSON(e).uuid,i.lightMapIntensity=this.lightMapIntensity),this.aoMap&&this.aoMap.isTexture&&(i.aoMap=this.aoMap.toJSON(e).uuid,i.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(i.bumpMap=this.bumpMap.toJSON(e).uuid,i.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(i.normalMap=this.normalMap.toJSON(e).uuid,i.normalMapType=this.normalMapType,i.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(i.displacementMap=this.displacementMap.toJSON(e).uuid,i.displacementScale=this.displacementScale,i.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(i.roughnessMap=this.roughnessMap.toJSON(e).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(i.metalnessMap=this.metalnessMap.toJSON(e).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(i.emissiveMap=this.emissiveMap.toJSON(e).uuid),this.specularMap&&this.specularMap.isTexture&&(i.specularMap=this.specularMap.toJSON(e).uuid),this.specularIntensityMap&&this.specularIntensityMap.isTexture&&(i.specularIntensityMap=this.specularIntensityMap.toJSON(e).uuid),this.specularColorMap&&this.specularColorMap.isTexture&&(i.specularColorMap=this.specularColorMap.toJSON(e).uuid),this.envMap&&this.envMap.isTexture&&(i.envMap=this.envMap.toJSON(e).uuid,this.combine!==void 0&&(i.combine=this.combine)),this.envMapRotation!==void 0&&(i.envMapRotation=this.envMapRotation.toArray()),this.envMapIntensity!==void 0&&(i.envMapIntensity=this.envMapIntensity),this.reflectivity!==void 0&&(i.reflectivity=this.reflectivity),this.refractionRatio!==void 0&&(i.refractionRatio=this.refractionRatio),this.gradientMap&&this.gradientMap.isTexture&&(i.gradientMap=this.gradientMap.toJSON(e).uuid),this.transmission!==void 0&&(i.transmission=this.transmission),this.transmissionMap&&this.transmissionMap.isTexture&&(i.transmissionMap=this.transmissionMap.toJSON(e).uuid),this.thickness!==void 0&&(i.thickness=this.thickness),this.thicknessMap&&this.thicknessMap.isTexture&&(i.thicknessMap=this.thicknessMap.toJSON(e).uuid),this.attenuationDistance!==void 0&&(i.attenuationDistance=this.attenuationDistance),this.attenuationColor!==void 0&&(i.attenuationColor=this.attenuationColor.getHex()),this.size!==void 0&&(i.size=this.size),this.sizeAttenuation!==void 0&&(i.sizeAttenuation=this.sizeAttenuation),Array.isArray(this.clippingPlanes)&&this.clippingPlanes.length>0&&(i.clippingPlanes=this.clippingPlanes.map(a=>a.toJSON())),this.rotation!==void 0&&(i.rotation=this.rotation),this.depthPacking!==void 0&&(i.depthPacking=this.depthPacking),this.linewidth!==void 0&&(i.linewidth=this.linewidth),this.linecap!==void 0&&(i.linecap=this.linecap),this.linejoin!==void 0&&(i.linejoin=this.linejoin),this.dashSize!==void 0&&(i.dashSize=this.dashSize),this.gapSize!==void 0&&(i.gapSize=this.gapSize),this.scale!==void 0&&(i.scale=this.scale),this.wireframe!==void 0&&(i.wireframe=this.wireframe),this.wireframeLinewidth!==void 0&&(i.wireframeLinewidth=this.wireframeLinewidth),this.wireframeLinecap!==void 0&&(i.wireframeLinecap=this.wireframeLinecap),this.wireframeLinejoin!==void 0&&(i.wireframeLinejoin=this.wireframeLinejoin),this.flatShading!==void 0&&(i.flatShading=this.flatShading),this.fog!==void 0&&(i.fog=this.fog),Object.keys(this.userData).length>0&&(i.userData=this.userData);function r(a){let s=[];for(let l in a){let c=a[l];delete c.metadata,s.push(c)}return s}if(t){let a=r(e.textures),s=r(e.images);a.length>0&&(i.textures=a),s.length>0&&(i.images=s)}return i}fromJSON(e,t){if(e.uuid!==void 0&&(this.uuid=e.uuid),e.name!==void 0&&(this.name=e.name),e.color!==void 0&&this.color!==void 0&&this.color.setHex(e.color),e.roughness!==void 0&&(this.roughness=e.roughness),e.metalness!==void 0&&(this.metalness=e.metalness),e.sheen!==void 0&&(this.sheen=e.sheen),e.sheenColor!==void 0&&(this.sheenColor=new Vt().setHex(e.sheenColor)),e.sheenRoughness!==void 0&&(this.sheenRoughness=e.sheenRoughness),e.emissive!==void 0&&this.emissive!==void 0&&this.emissive.setHex(e.emissive),e.specular!==void 0&&this.specular!==void 0&&this.specular.setHex(e.specular),e.specularIntensity!==void 0&&(this.specularIntensity=e.specularIntensity),e.specularColor!==void 0&&this.specularColor!==void 0&&this.specularColor.setHex(e.specularColor),e.shininess!==void 0&&(this.shininess=e.shininess),e.clearcoat!==void 0&&(this.clearcoat=e.clearcoat),e.clearcoatRoughness!==void 0&&(this.clearcoatRoughness=e.clearcoatRoughness),e.dispersion!==void 0&&(this.dispersion=e.dispersion),e.retroreflectivity!==void 0&&(this.retroreflectivity=e.retroreflectivity),e.iridescence!==void 0&&(this.iridescence=e.iridescence),e.iridescenceIOR!==void 0&&(this.iridescenceIOR=e.iridescenceIOR),e.iridescenceThicknessRange!==void 0&&(this.iridescenceThicknessRange=e.iridescenceThicknessRange),e.transmission!==void 0&&(this.transmission=e.transmission),e.thickness!==void 0&&(this.thickness=e.thickness),e.attenuationDistance!==void 0&&(this.attenuationDistance=e.attenuationDistance),e.attenuationColor!==void 0&&this.attenuationColor!==void 0&&this.attenuationColor.setHex(e.attenuationColor),e.anisotropy!==void 0&&(this.anisotropy=e.anisotropy),e.anisotropyRotation!==void 0&&(this.anisotropyRotation=e.anisotropyRotation),e.fog!==void 0&&(this.fog=e.fog),e.flatShading!==void 0&&(this.flatShading=e.flatShading),e.blending!==void 0&&(this.blending=e.blending),e.combine!==void 0&&(this.combine=e.combine),e.side!==void 0&&(this.side=e.side),e.shadowSide!==void 0&&(this.shadowSide=e.shadowSide),e.opacity!==void 0&&(this.opacity=e.opacity),e.transparent!==void 0&&(this.transparent=e.transparent),e.alphaTest!==void 0&&(this.alphaTest=e.alphaTest),e.alphaHash!==void 0&&(this.alphaHash=e.alphaHash),e.depthFunc!==void 0&&(this.depthFunc=e.depthFunc),e.depthTest!==void 0&&(this.depthTest=e.depthTest),e.depthWrite!==void 0&&(this.depthWrite=e.depthWrite),e.colorWrite!==void 0&&(this.colorWrite=e.colorWrite),e.clippingPlanes!==void 0&&(this.clippingPlanes=e.clippingPlanes.map(i=>new fo().fromJSON(i))),e.clipIntersection!==void 0&&(this.clipIntersection=e.clipIntersection),e.clipShadows!==void 0&&(this.clipShadows=e.clipShadows),e.depthPacking!==void 0&&(this.depthPacking=e.depthPacking),e.blendSrc!==void 0&&(this.blendSrc=e.blendSrc),e.blendDst!==void 0&&(this.blendDst=e.blendDst),e.blendEquation!==void 0&&(this.blendEquation=e.blendEquation),e.blendSrcAlpha!==void 0&&(this.blendSrcAlpha=e.blendSrcAlpha),e.blendDstAlpha!==void 0&&(this.blendDstAlpha=e.blendDstAlpha),e.blendEquationAlpha!==void 0&&(this.blendEquationAlpha=e.blendEquationAlpha),e.blendColor!==void 0&&this.blendColor!==void 0&&this.blendColor.setHex(e.blendColor),e.blendAlpha!==void 0&&(this.blendAlpha=e.blendAlpha),e.stencilWriteMask!==void 0&&(this.stencilWriteMask=e.stencilWriteMask),e.stencilFunc!==void 0&&(this.stencilFunc=e.stencilFunc),e.stencilRef!==void 0&&(this.stencilRef=e.stencilRef),e.stencilFuncMask!==void 0&&(this.stencilFuncMask=e.stencilFuncMask),e.stencilFail!==void 0&&(this.stencilFail=e.stencilFail),e.stencilZFail!==void 0&&(this.stencilZFail=e.stencilZFail),e.stencilZPass!==void 0&&(this.stencilZPass=e.stencilZPass),e.stencilWrite!==void 0&&(this.stencilWrite=e.stencilWrite),e.wireframe!==void 0&&(this.wireframe=e.wireframe),e.wireframeLinewidth!==void 0&&(this.wireframeLinewidth=e.wireframeLinewidth),e.wireframeLinecap!==void 0&&(this.wireframeLinecap=e.wireframeLinecap),e.wireframeLinejoin!==void 0&&(this.wireframeLinejoin=e.wireframeLinejoin),e.rotation!==void 0&&(this.rotation=e.rotation),e.linewidth!==void 0&&(this.linewidth=e.linewidth),e.linecap!==void 0&&(this.linecap=e.linecap),e.linejoin!==void 0&&(this.linejoin=e.linejoin),e.dashSize!==void 0&&(this.dashSize=e.dashSize),e.gapSize!==void 0&&(this.gapSize=e.gapSize),e.scale!==void 0&&(this.scale=e.scale),e.polygonOffset!==void 0&&(this.polygonOffset=e.polygonOffset),e.polygonOffsetFactor!==void 0&&(this.polygonOffsetFactor=e.polygonOffsetFactor),e.polygonOffsetUnits!==void 0&&(this.polygonOffsetUnits=e.polygonOffsetUnits),e.dithering!==void 0&&(this.dithering=e.dithering),e.alphaToCoverage!==void 0&&(this.alphaToCoverage=e.alphaToCoverage),e.premultipliedAlpha!==void 0&&(this.premultipliedAlpha=e.premultipliedAlpha),e.forceSinglePass!==void 0&&(this.forceSinglePass=e.forceSinglePass),e.allowOverride!==void 0&&(this.allowOverride=e.allowOverride),e.visible!==void 0&&(this.visible=e.visible),e.toneMapped!==void 0&&(this.toneMapped=e.toneMapped),e.userData!==void 0&&(this.userData=e.userData),e.vertexColors!==void 0&&(typeof e.vertexColors=="number"?this.vertexColors=e.vertexColors>0:this.vertexColors=e.vertexColors),e.size!==void 0&&(this.size=e.size),e.sizeAttenuation!==void 0&&(this.sizeAttenuation=e.sizeAttenuation),e.map!==void 0&&(this.map=t[e.map]||null),e.matcap!==void 0&&(this.matcap=t[e.matcap]||null),e.alphaMap!==void 0&&(this.alphaMap=t[e.alphaMap]||null),e.bumpMap!==void 0&&(this.bumpMap=t[e.bumpMap]||null),e.bumpScale!==void 0&&(this.bumpScale=e.bumpScale),e.normalMap!==void 0&&(this.normalMap=t[e.normalMap]||null),e.normalMapType!==void 0&&(this.normalMapType=e.normalMapType),e.normalScale!==void 0){let i=e.normalScale;Array.isArray(i)===!1&&(i=[i,i]),this.normalScale=new ut().fromArray(i)}return e.displacementMap!==void 0&&(this.displacementMap=t[e.displacementMap]||null),e.displacementScale!==void 0&&(this.displacementScale=e.displacementScale),e.displacementBias!==void 0&&(this.displacementBias=e.displacementBias),e.roughnessMap!==void 0&&(this.roughnessMap=t[e.roughnessMap]||null),e.metalnessMap!==void 0&&(this.metalnessMap=t[e.metalnessMap]||null),e.emissiveMap!==void 0&&(this.emissiveMap=t[e.emissiveMap]||null),e.emissiveIntensity!==void 0&&(this.emissiveIntensity=e.emissiveIntensity),e.specularMap!==void 0&&(this.specularMap=t[e.specularMap]||null),e.specularIntensityMap!==void 0&&(this.specularIntensityMap=t[e.specularIntensityMap]||null),e.specularColorMap!==void 0&&(this.specularColorMap=t[e.specularColorMap]||null),e.envMap!==void 0&&(this.envMap=t[e.envMap]||null),e.envMapRotation!==void 0&&this.envMapRotation.fromArray(e.envMapRotation),e.envMapIntensity!==void 0&&(this.envMapIntensity=e.envMapIntensity),e.reflectivity!==void 0&&(this.reflectivity=e.reflectivity),e.refractionRatio!==void 0&&(this.refractionRatio=e.refractionRatio),e.lightMap!==void 0&&(this.lightMap=t[e.lightMap]||null),e.lightMapIntensity!==void 0&&(this.lightMapIntensity=e.lightMapIntensity),e.aoMap!==void 0&&(this.aoMap=t[e.aoMap]||null),e.aoMapIntensity!==void 0&&(this.aoMapIntensity=e.aoMapIntensity),e.gradientMap!==void 0&&(this.gradientMap=t[e.gradientMap]||null),e.clearcoatMap!==void 0&&(this.clearcoatMap=t[e.clearcoatMap]||null),e.clearcoatRoughnessMap!==void 0&&(this.clearcoatRoughnessMap=t[e.clearcoatRoughnessMap]||null),e.clearcoatNormalMap!==void 0&&(this.clearcoatNormalMap=t[e.clearcoatNormalMap]||null),e.clearcoatNormalScale!==void 0&&(this.clearcoatNormalScale=new ut().fromArray(e.clearcoatNormalScale)),e.iridescenceMap!==void 0&&(this.iridescenceMap=t[e.iridescenceMap]||null),e.iridescenceThicknessMap!==void 0&&(this.iridescenceThicknessMap=t[e.iridescenceThicknessMap]||null),e.transmissionMap!==void 0&&(this.transmissionMap=t[e.transmissionMap]||null),e.thicknessMap!==void 0&&(this.thicknessMap=t[e.thicknessMap]||null),e.anisotropyMap!==void 0&&(this.anisotropyMap=t[e.anisotropyMap]||null),e.sheenColorMap!==void 0&&(this.sheenColorMap=t[e.sheenColorMap]||null),e.sheenRoughnessMap!==void 0&&(this.sheenRoughnessMap=t[e.sheenRoughnessMap]||null),this}clone(){return new this.constructor().copy(this)}copy(e){this.name=e.name,this.blending=e.blending,this.side=e.side,this.vertexColors=e.vertexColors,this.opacity=e.opacity,this.transparent=e.transparent,this.blendSrc=e.blendSrc,this.blendDst=e.blendDst,this.blendEquation=e.blendEquation,this.blendSrcAlpha=e.blendSrcAlpha,this.blendDstAlpha=e.blendDstAlpha,this.blendEquationAlpha=e.blendEquationAlpha,this.blendColor.copy(e.blendColor),this.blendAlpha=e.blendAlpha,this.depthFunc=e.depthFunc,this.depthTest=e.depthTest,this.depthWrite=e.depthWrite,this.stencilWriteMask=e.stencilWriteMask,this.stencilFunc=e.stencilFunc,this.stencilRef=e.stencilRef,this.stencilFuncMask=e.stencilFuncMask,this.stencilFail=e.stencilFail,this.stencilZFail=e.stencilZFail,this.stencilZPass=e.stencilZPass,this.stencilWrite=e.stencilWrite;let t=e.clippingPlanes,i=null;if(t!==null){let r=t.length;i=new Array(r);for(let a=0;a!==r;++a)i[a]=t[a].clone()}return this.clippingPlanes=i,this.clipIntersection=e.clipIntersection,this.clipShadows=e.clipShadows,this.shadowSide=e.shadowSide,this.colorWrite=e.colorWrite,this.precision=e.precision,this.polygonOffset=e.polygonOffset,this.polygonOffsetFactor=e.polygonOffsetFactor,this.polygonOffsetUnits=e.polygonOffsetUnits,this.dithering=e.dithering,this.alphaTest=e.alphaTest,this.alphaHash=e.alphaHash,this.alphaToCoverage=e.alphaToCoverage,this.premultipliedAlpha=e.premultipliedAlpha,this.forceSinglePass=e.forceSinglePass,this.allowOverride=e.allowOverride,this.visible=e.visible,this.toneMapped=e.toneMapped,this.userData=JSON.parse(JSON.stringify(e.userData)),this}dispose(){this.dispatchEvent({type:"dispose"})}set needsUpdate(e){e===!0&&this.version++}},_0=class extends Zr{constructor(e){super(),this.isSpriteMaterial=!0,this.type="SpriteMaterial",this.color=new Vt(16777215),this.map=null,this.alphaMap=null,this.rotation=0,this.sizeAttenuation=!0,this.transparent=!0,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.alphaMap=e.alphaMap,this.rotation=e.rotation,this.sizeAttenuation=e.sizeAttenuation,this.fog=e.fog,this}},Xy,mw=new ve,Yy=new ve,Ky=new ve,Zy=new ut,_w=new ut,V5=new Cn,mA=new ve,gw=new ve,_A=new ve,XB=new ut,Ok=new ut,YB=new ut,Hw=class extends gi{constructor(e=new _0){if(super(),this.isSprite=!0,this.type="Sprite",Xy===void 0){Xy=new Nn;let t=new Float32Array([-.5,-.5,0,0,0,.5,-.5,0,1,0,.5,.5,0,1,1,-.5,.5,0,0,1]),i=new d_(t,5);Xy.setIndex([0,1,2,0,2,3]),Xy.setAttribute("position",new Ph(i,3,0,!1)),Xy.setAttribute("uv",new Ph(i,2,3,!1))}this.geometry=Xy,this.material=e,this.center=new ut(.5,.5),this.count=1}intersectsFrustum(e){return e.intersectsSprite(this)}raycast(e,t){e.camera===null&&cn('Sprite: "Raycaster.camera" needs to be set in order to raycast against sprites.'),Yy.setFromMatrixScale(this.matrixWorld),V5.copy(e.camera.matrixWorld),this.modelViewMatrix.multiplyMatrices(e.camera.matrixWorldInverse,this.matrixWorld),Ky.setFromMatrixPosition(this.modelViewMatrix),e.camera.isPerspectiveCamera&&this.material.sizeAttenuation===!1&&Yy.multiplyScalar(-Ky.z);let i=this.material.rotation,r,a;i!==0&&(a=Math.cos(i),r=Math.sin(i));let s=this.center;gA(mA.set(-.5,-.5,0),Ky,s,Yy,r,a),gA(gw.set(.5,-.5,0),Ky,s,Yy,r,a),gA(_A.set(.5,.5,0),Ky,s,Yy,r,a),XB.set(0,0),Ok.set(1,0),YB.set(1,1);let l=e.ray.intersectTriangle(mA,gw,_A,!1,mw);if(l===null&&(gA(gw.set(-.5,.5,0),Ky,s,Yy,r,a),Ok.set(0,1),l=e.ray.intersectTriangle(mA,_A,gw,!1,mw),l===null))return;let c=e.ray.origin.distanceTo(mw);c<e.near||c>e.far||t.push({distance:c,point:mw.clone(),uv:Mu.getInterpolation(mw,mA,gw,_A,XB,Ok,YB,new ut),face:null,object:this})}copy(e,t){return super.copy(e,t),e.center!==void 0&&this.center.copy(e.center),this.material=e.material,this}};function gA(n,e,t,i,r,a){Zy.subVectors(n,t).addScalar(.5).multiply(i),r!==void 0?(_w.x=a*Zy.x-r*Zy.y,_w.y=r*Zy.x+a*Zy.y):_w.copy(Zy),n.copy(e),n.x+=_w.x,n.y+=_w.y,n.applyMatrix4(V5)}var vA=new ve,KB=new ve,Vw=class extends gi{constructor(){super(),this.isLOD=!0,this._currentLevel=0,this.type="LOD",Object.defineProperties(this,{levels:{enumerable:!0,value:[]}}),this.autoUpdate=!0}copy(e){super.copy(e,!1);let t=e.levels;for(let i=0,r=t.length;i<r;i++){let a=t[i];this.addLevel(a.object.clone(),a.distance,a.hysteresis)}return this.autoUpdate=e.autoUpdate,this}addLevel(e,t=0,i=0){t=Math.abs(t);let r=this.levels,a;for(a=0;a<r.length&&!(t<r[a].distance);a++);return r.splice(a,0,{distance:t,hysteresis:i,object:e}),this.add(e),this}removeLevel(e){let t=this.levels;for(let i=0;i<t.length;i++)if(t[i].distance===e){let r=t.splice(i,1);return this.remove(r[0].object),!0}return!1}getCurrentLevel(){return this._currentLevel}getObjectForDistance(e){let t=this.levels;if(t.length>0){let i,r;for(i=1,r=t.length;i<r;i++){let a=t[i].distance;if(t[i].object.visible&&(a-=a*t[i].hysteresis),e<a)break}return t[i-1].object}return null}raycast(e,t){if(this.levels.length>0){vA.setFromMatrixPosition(this.matrixWorld);let r=e.ray.origin.distanceTo(vA);this.getObjectForDistance(r).raycast(e,t)}}update(e){let t=this.levels;if(t.length>1){vA.setFromMatrixPosition(e.matrixWorld),KB.setFromMatrixPosition(this.matrixWorld);let i=vA.distanceTo(KB)/e.zoom;t[0].object.visible=!0;let r,a;for(r=1,a=t.length;r<a;r++){let s=t[r].distance;if(t[r].object.visible&&(s-=s*t[r].hysteresis),i>=s)t[r-1].object.visible=!1,t[r].object.visible=!0;else break}for(this._currentLevel=r-1;r<a;r++)t[r].object.visible=!1}}toJSON(e){let t=super.toJSON(e);t.object.autoUpdate=this.autoUpdate,t.object.levels=[];let i=this.levels;for(let r=0,a=i.length;r<a;r++){let s=i[r];t.object.levels.push({object:s.object.uuid,distance:s.distance,hysteresis:s.hysteresis})}return t}},qf=new ve,Dk=new ve,yA=new ve,bA=new ve,Ru=class{constructor(e=new ve,t=new ve(0,0,-1)){this.origin=e,this.direction=t}set(e,t){return this.origin.copy(e),this.direction.copy(t),this}copy(e){return this.origin.copy(e.origin),this.direction.copy(e.direction),this}at(e,t){return t.copy(this.origin).addScaledVector(this.direction,e)}lookAt(e){return this.direction.copy(e).sub(this.origin).normalize(),this}recast(e){return this.origin.copy(this.at(e,qf)),this}closestPointToPoint(e,t){t.subVectors(e,this.origin);let i=t.dot(this.direction);return i<0?t.copy(this.origin):t.copy(this.origin).addScaledVector(this.direction,i)}distanceToPoint(e){return Math.sqrt(this.distanceSqToPoint(e))}distanceSqToPoint(e){let t=qf.subVectors(e,this.origin).dot(this.direction);return t<0?this.origin.distanceToSquared(e):(qf.copy(this.origin).addScaledVector(this.direction,t),qf.distanceToSquared(e))}distanceSqToSegment(e,t,i,r){Dk.copy(e).add(t).multiplyScalar(.5),yA.copy(t).sub(e).normalize(),bA.copy(this.origin).sub(Dk);let a=e.distanceTo(t)*.5,s=-this.direction.dot(yA),l=bA.dot(this.direction),c=-bA.dot(yA),f=bA.lengthSq(),p=Math.abs(1-s*s),h,_,g,E;if(p>0)if(h=s*c-l,_=s*l-c,E=a*p,h>=0)if(_>=-E)if(_<=E){let x=1/p;h*=x,_*=x,g=h*(h+s*_+2*l)+_*(s*h+_+2*c)+f}else _=a,h=Math.max(0,-(s*_+l)),g=-h*h+_*(_+2*c)+f;else _=-a,h=Math.max(0,-(s*_+l)),g=-h*h+_*(_+2*c)+f;else _<=-E?(h=Math.max(0,-(-s*a+l)),_=h>0?-a:Math.min(Math.max(-a,-c),a),g=-h*h+_*(_+2*c)+f):_<=E?(h=0,_=Math.min(Math.max(-a,-c),a),g=_*(_+2*c)+f):(h=Math.max(0,-(s*a+l)),_=h>0?a:Math.min(Math.max(-a,-c),a),g=-h*h+_*(_+2*c)+f);else _=s>0?-a:a,h=Math.max(0,-(s*_+l)),g=-h*h+_*(_+2*c)+f;return i&&i.copy(this.origin).addScaledVector(this.direction,h),r&&r.copy(Dk).addScaledVector(yA,_),g}intersectSphere(e,t){if(e.radius<0)return null;qf.subVectors(e.center,this.origin);let i=qf.dot(this.direction),r=qf.dot(qf)-i*i,a=e.radius*e.radius;if(r>a)return null;let s=Math.sqrt(a-r),l=i-s,c=i+s;return c<0?null:l<0?this.at(c,t):this.at(l,t)}intersectsSphere(e){return e.radius<0?!1:this.distanceSqToPoint(e.center)<=e.radius*e.radius}distanceToPlane(e){let t=e.normal.dot(this.direction);if(t===0)return e.distanceToPoint(this.origin)===0?0:null;let i=-(this.origin.dot(e.normal)+e.constant)/t;return i>=0?i:null}intersectPlane(e,t){let i=this.distanceToPlane(e);return i===null?null:this.at(i,t)}intersectsPlane(e){let t=e.distanceToPoint(this.origin);return t===0||e.normal.dot(this.direction)*t<0}intersectBox(e,t){let i,r,a,s,l,c,f=1/this.direction.x,p=1/this.direction.y,h=1/this.direction.z,_=this.origin;return f>=0?(i=(e.min.x-_.x)*f,r=(e.max.x-_.x)*f):(i=(e.max.x-_.x)*f,r=(e.min.x-_.x)*f),p>=0?(a=(e.min.y-_.y)*p,s=(e.max.y-_.y)*p):(a=(e.max.y-_.y)*p,s=(e.min.y-_.y)*p),i>s||a>r||((a>i||isNaN(i))&&(i=a),(s<r||isNaN(r))&&(r=s),h>=0?(l=(e.min.z-_.z)*h,c=(e.max.z-_.z)*h):(l=(e.max.z-_.z)*h,c=(e.min.z-_.z)*h),i>c||l>r)||((l>i||i!==i)&&(i=l),(c<r||r!==r)&&(r=c),r<0)?null:this.at(i>=0?i:r,t)}intersectsBox(e){return this.intersectBox(e,qf)!==null}intersectTriangle(e,t,i,r,a){let s=this.origin,l=this.direction,c=l.x,f=l.y,p=l.z,h=e.x-s.x,_=e.y-s.y,g=e.z-s.z,E=t.x-s.x,x=t.y-s.y,S=t.z-s.z,v=i.x-s.x,M=i.y-s.y,O=i.z-s.z,k=Math.abs(c),q=Math.abs(f),G=Math.abs(p),Q,H,Z,te,j,he,ke,Me,ze,Ne,Ve,Je;if(k>=q&&k>=G?(Z=c,he=h,ze=E,Je=v,c>=0?(Q=f,H=p,te=_,j=g,ke=x,Me=S,Ne=M,Ve=O):(Q=p,H=f,te=g,j=_,ke=S,Me=x,Ne=O,Ve=M)):q>=G?(Z=f,he=_,ze=x,Je=M,f>=0?(Q=p,H=c,te=g,j=h,ke=S,Me=E,Ne=O,Ve=v):(Q=c,H=p,te=h,j=g,ke=E,Me=S,Ne=v,Ve=O)):(Z=p,he=g,ze=S,Je=O,p>=0?(Q=c,H=f,te=h,j=_,ke=E,Me=x,Ne=v,Ve=M):(Q=f,H=c,te=_,j=h,ke=x,Me=E,Ne=M,Ve=v)),Z===0)return null;let Qe=Q/Z,st=H/Z,We=1/Z,gt=te-Qe*he,Et=j-st*he,jt=ke-Qe*ze,zt=Me-st*ze,Mt=Ne-Qe*Je,Xe=Ve-st*Je,et=Mt*zt-Xe*jt,yt=gt*Xe-Et*Mt,Wt=jt*Et-zt*gt;if(r){if(et<0||yt<0||Wt<0)return null}else if((et<0||yt<0||Wt<0)&&(et>0||yt>0||Wt>0))return null;let Lt=et+yt+Wt;if(Lt===0)return null;let sn=We*(et*he+yt*ze+Wt*Je);return(Lt>0?sn<0:sn>0)?null:this.at(sn/Lt,a)}applyMatrix4(e){return this.origin.applyMatrix4(e),this.direction.transformDirection(e),this}equals(e){return e.origin.equals(this.origin)&&e.direction.equals(this.direction)}clone(){return new this.constructor().copy(this)}},Iu=class extends Zr{constructor(e){super(),this.isMeshBasicMaterial=!0,this.type="MeshBasicMaterial",this.color=new Vt(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.envMapRotation=new Kl,this.combine=G0,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.envMapRotation.copy(e.envMapRotation),this.combine=e.combine,this.reflectivity=e.reflectivity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.fog=e.fog,this}},ZB=new Cn,Ym=new Ru,SA=new Kr,$B=new ve,EA=new ve,wA=new ve,xA=new ve,Fk=new ve,TA=new ve,JB=new ve,MA=new ve,dr=class extends gi{constructor(e=new Nn,t=new Iu){super(),this.isMesh=!0,this.type="Mesh",this.geometry=e,this.material=t,this.morphTargetDictionary=void 0,this.morphTargetInfluences=void 0,this.count=1,this.updateMorphTargets()}copy(e,t){return super.copy(e,t),e.morphTargetInfluences!==void 0&&(this.morphTargetInfluences=e.morphTargetInfluences.slice()),e.morphTargetDictionary!==void 0&&(this.morphTargetDictionary=Object.assign({},e.morphTargetDictionary)),this.material=Array.isArray(e.material)?e.material.slice():e.material,this.geometry=e.geometry,this}updateMorphTargets(){let t=this.geometry.morphAttributes,i=Object.keys(t);if(i.length>0){let r=t[i[0]];if(r!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let a=0,s=r.length;a<s;a++){let l=r[a].name||String(a);this.morphTargetInfluences.push(0),this.morphTargetDictionary[l]=a}}}}getVertexPosition(e,t){let i=this.geometry,r=i.attributes.position,a=i.morphAttributes.position,s=i.morphTargetsRelative;t.fromBufferAttribute(r,e);let l=this.morphTargetInfluences;if(a&&l){TA.set(0,0,0);for(let c=0,f=a.length;c<f;c++){let p=l[c],h=a[c];p!==0&&(Fk.fromBufferAttribute(h,e),s?TA.addScaledVector(Fk,p):TA.addScaledVector(Fk.sub(t),p))}t.add(TA)}return t}intersectsFrustum(e){return e.intersectsObject(this)}raycast(e,t){let i=this.geometry,r=this.material,a=this.matrixWorld;r!==void 0&&(i.boundingSphere===null&&i.computeBoundingSphere(),SA.copy(i.boundingSphere),SA.applyMatrix4(a),Ym.copy(e.ray).recast(e.near),!(SA.containsPoint(Ym.origin)===!1&&(Ym.intersectSphere(SA,$B)===null||Ym.origin.distanceToSquared($B)>(e.far-e.near)**2))&&(ZB.copy(a).invert(),Ym.copy(e.ray).applyMatrix4(ZB),!(i.boundingBox!==null&&Ym.intersectsBox(i.boundingBox)===!1)&&this._computeIntersections(e,t,Ym)))}_computeIntersections(e,t,i){let r,a=this.geometry,s=this.material,l=a.index,c=a.attributes.position,f=a.attributes.uv,p=a.attributes.uv1,h=a.attributes.normal,_=a.groups,g=a.drawRange;if(l!==null)if(Array.isArray(s))for(let E=0,x=_.length;E<x;E++){let S=_[E],v=s[S.materialIndex],M=Math.max(S.start,g.start),O=Math.min(l.count,Math.min(S.start+S.count,g.start+g.count));for(let k=M,q=O;k<q;k+=3){let G=l.getX(k),Q=l.getX(k+1),H=l.getX(k+2);r=AA(this,v,e,i,f,p,h,G,Q,H),r&&(r.faceIndex=Math.floor(k/3),r.face.materialIndex=S.materialIndex,t.push(r))}}else{let E=Math.max(0,g.start),x=Math.min(l.count,g.start+g.count);for(let S=E,v=x;S<v;S+=3){let M=l.getX(S),O=l.getX(S+1),k=l.getX(S+2);r=AA(this,s,e,i,f,p,h,M,O,k),r&&(r.faceIndex=Math.floor(S/3),t.push(r))}}else if(c!==void 0)if(Array.isArray(s))for(let E=0,x=_.length;E<x;E++){let S=_[E],v=s[S.materialIndex],M=Math.max(S.start,g.start),O=Math.min(c.count,Math.min(S.start+S.count,g.start+g.count));for(let k=M,q=O;k<q;k+=3){let G=k,Q=k+1,H=k+2;r=AA(this,v,e,i,f,p,h,G,Q,H),r&&(r.faceIndex=Math.floor(k/3),r.face.materialIndex=S.materialIndex,t.push(r))}}else{let E=Math.max(0,g.start),x=Math.min(c.count,g.start+g.count);for(let S=E,v=x;S<v;S+=3){let M=S,O=S+1,k=S+2;r=AA(this,s,e,i,f,p,h,M,O,k),r&&(r.faceIndex=Math.floor(S/3),t.push(r))}}}};function TQ(n,e,t,i,r,a,s,l){let c;if(e.side===ss?c=i.intersectTriangle(s,a,r,!0,l):c=i.intersectTriangle(r,a,s,e.side===$f,l),c===null)return null;MA.copy(l),MA.applyMatrix4(n.matrixWorld);let f=t.ray.origin.distanceTo(MA);return f<t.near||f>t.far?null:{distance:f,point:MA.clone(),object:n}}function AA(n,e,t,i,r,a,s,l,c,f){n.getVertexPosition(l,EA),n.getVertexPosition(c,wA),n.getVertexPosition(f,xA);let p=TQ(n,e,t,i,EA,wA,xA,JB);if(p){let h=new ve;Mu.getBarycoord(JB,EA,wA,xA,h),r&&(p.uv=Mu.getInterpolatedAttribute(r,l,c,f,h,new ut)),a&&(p.uv1=Mu.getInterpolatedAttribute(a,l,c,f,h,new ut)),s&&(p.normal=Mu.getInterpolatedAttribute(s,l,c,f,h,new ve),p.normal.dot(i.direction)>0&&p.normal.multiplyScalar(-1));let _={a:l,b:c,c:f,normal:new ve,materialIndex:0};Mu.getNormal(EA,wA,xA,_.normal),p.face=_,p.barycoord=h}return p}var vw=new Ni,e6=new Ni,t6=new Ni,MQ=new Ni,n6=new Cn,CA=new ve,Pk=new Kr,i6=new Cn,Uk=new Ru,Gw=class extends dr{constructor(e,t){super(e,t),this.isSkinnedMesh=!0,this.type="SkinnedMesh",this.bindMode=ZA,this.bindMatrix=new Cn,this.bindMatrixInverse=new Cn,this.boundingBox=null,this.boundingSphere=null}computeBoundingBox(){let e=this.geometry;this.boundingBox===null&&(this.boundingBox=new sa),this.boundingBox.makeEmpty();let t=e.getAttribute("position");for(let i=0;i<t.count;i++)this.getVertexPosition(i,CA),this.boundingBox.expandByPoint(CA)}computeBoundingSphere(){let e=this.geometry;this.boundingSphere===null&&(this.boundingSphere=new Kr),this.boundingSphere.makeEmpty();let t=e.getAttribute("position");for(let i=0;i<t.count;i++)this.getVertexPosition(i,CA),this.boundingSphere.expandByPoint(CA)}copy(e,t){return super.copy(e,t),this.bindMode=e.bindMode,this.bindMatrix.copy(e.bindMatrix),this.bindMatrixInverse.copy(e.bindMatrixInverse),this.skeleton=e.skeleton,e.boundingBox!==null&&(this.boundingBox=e.boundingBox.clone()),e.boundingSphere!==null&&(this.boundingSphere=e.boundingSphere.clone()),this}raycast(e,t){let i=this.material,r=this.matrixWorld;i!==void 0&&(this.boundingSphere===null&&this.computeBoundingSphere(),Pk.copy(this.boundingSphere),Pk.applyMatrix4(r),e.ray.intersectsSphere(Pk)!==!1&&(i6.copy(r).invert(),Uk.copy(e.ray).applyMatrix4(i6),!(this.boundingBox!==null&&Uk.intersectsBox(this.boundingBox)===!1)&&this._computeIntersections(e,t,Uk)))}getVertexPosition(e,t){return super.getVertexPosition(e,t),this.applyBoneTransform(e,t),t}bind(e,t){this.skeleton=e,t===void 0&&(this.updateMatrixWorld(!0),this.skeleton.calculateInverses(),t=this.matrixWorld),this.bindMatrix.copy(t),this.bindMatrixInverse.copy(t).invert()}pose(){this.skeleton.pose()}normalizeSkinWeights(){let e=new Ni,t=this.geometry.attributes.skinWeight;for(let i=0,r=t.count;i<r;i++){e.fromBufferAttribute(t,i);let a=1/e.manhattanLength();a!==1/0?e.multiplyScalar(a):e.set(1,0,0,0),t.setXYZW(i,e.x,e.y,e.z,e.w)}}updateMatrixWorld(e){super.updateMatrixWorld(e),this.bindMode===ZA?this.bindMatrixInverse.copy(this.matrixWorld).invert():this.bindMode===OO?this.bindMatrixInverse.copy(this.bindMatrix).invert():Ft("SkinnedMesh: Unrecognized bindMode: "+this.bindMode)}applyBoneTransform(e,t){let i=this.skeleton,r=this.geometry;e6.fromBufferAttribute(r.attributes.skinIndex,e),t6.fromBufferAttribute(r.attributes.skinWeight,e),t.isVector4?(vw.copy(t),t.set(0,0,0,0)):(vw.set(...t,1),t.set(0,0,0)),vw.applyMatrix4(this.bindMatrix);for(let a=0;a<4;a++){let s=t6.getComponent(a);if(s!==0){let l=e6.getComponent(a);n6.multiplyMatrices(i.bones[l].matrixWorld,i.boneInverses[l]),t.addScaledVector(MQ.copy(vw).applyMatrix4(n6),s)}}return t.isVector4&&(t.w=vw.w),t.applyMatrix4(this.bindMatrixInverse)}},g0=class extends gi{constructor(){super(),this.isBone=!0,this.type="Bone"}},As=class extends Sr{constructor(e=null,t=1,i=1,r,a,s,l,c,f=br,p=br,h,_){super(null,s,l,c,f,p,r,a,h,_),this.isDataTexture=!0,this.image={data:e,width:t,height:i},this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}},r6=new Cn,AQ=new Cn,Ww=class n{constructor(e=[],t=[]){this.uuid=tl(),this.bones=e.slice(0),this.boneInverses=t,this.boneMatrices=null,this.boneTexture=null,this.init()}init(){let e=this.bones,t=this.boneInverses;if(this.boneMatrices=new Float32Array(e.length*16),t.length===0)this.calculateInverses();else if(e.length!==t.length){Ft("Skeleton: Number of inverse bone matrices does not match amount of bones."),this.boneInverses=[];for(let i=0,r=this.bones.length;i<r;i++)this.boneInverses.push(new Cn)}}calculateInverses(){this.boneInverses.length=0;for(let e=0,t=this.bones.length;e<t;e++){let i=new Cn;this.bones[e]&&i.copy(this.bones[e].matrixWorld).invert(),this.boneInverses.push(i)}}pose(){for(let e=0,t=this.bones.length;e<t;e++){let i=this.bones[e];i&&i.matrixWorld.copy(this.boneInverses[e]).invert()}for(let e=0,t=this.bones.length;e<t;e++){let i=this.bones[e];i&&(i.parent&&i.parent.isBone?(i.matrix.copy(i.parent.matrixWorld).invert(),i.matrix.multiply(i.matrixWorld)):i.matrix.copy(i.matrixWorld),i.matrix.decompose(i.position,i.quaternion,i.scale))}}update(){let e=this.bones,t=this.boneInverses,i=this.boneMatrices,r=this.boneTexture;for(let a=0,s=e.length;a<s;a++){let l=e[a]?e[a].matrixWorld:AQ;r6.multiplyMatrices(l,t[a]),r6.toArray(i,a*16)}r!==null&&(r.needsUpdate=!0)}clone(){return new n(this.bones,this.boneInverses)}computeBoneTexture(){let e=Math.sqrt(this.bones.length*4);e=Math.ceil(e/4)*4,e=Math.max(e,4);let t=new Float32Array(e*e*4);t.set(this.boneMatrices);let i=new As(t,e,e,wa,as);return i.needsUpdate=!0,this.boneMatrices=t,this.boneTexture=i,this}getBoneByName(e){for(let t=0,i=this.bones.length;t<i;t++){let r=this.bones[t];if(r.name===e)return r}}dispose(){this.boneTexture!==null&&(this.boneTexture.dispose(),this.boneTexture=null)}fromJSON(e,t){this.uuid=e.uuid;for(let i=0,r=e.bones.length;i<r;i++){let a=e.bones[i],s=t[a];s===void 0&&(Ft("Skeleton: No bone found with UUID:",a),s=new g0),this.bones.push(s),this.boneInverses.push(new Cn().fromArray(e.boneInverses[i]))}return this.init(),this}toJSON(){let e={metadata:{version:4.7,type:"Skeleton",generator:"Skeleton.toJSON"},bones:[],boneInverses:[]};e.uuid=this.uuid;let t=this.bones,i=this.boneInverses;for(let r=0,a=t.length;r<a;r++){let s=t[r];e.bones.push(s.uuid);let l=i[r];e.boneInverses.push(l.toArray())}return e}},Wf=class extends Li{constructor(e,t,i,r=1){super(e,t,i),this.isInstancedBufferAttribute=!0,this.meshPerAttribute=r}copy(e){return super.copy(e),this.meshPerAttribute=e.meshPerAttribute,this}toJSON(){let e=super.toJSON();return e.meshPerAttribute=this.meshPerAttribute,e.isInstancedBufferAttribute=!0,e}},$y=new Cn,a6=new Cn,RA=[],s6=new sa,CQ=new Cn,yw=new dr,bw=new Kr,jw=class extends dr{constructor(e,t,i){super(e,t),this.isInstancedMesh=!0,this.instanceMatrix=new Wf(new Float32Array(i*16),16),this.instanceColor=null,this.morphTexture=null,this.count=i,this.boundingBox=null,this.boundingSphere=null;for(let r=0;r<i;r++)this.setMatrixAt(r,CQ)}computeBoundingBox(){let e=this.geometry,t=this.count;this.boundingBox===null&&(this.boundingBox=new sa),e.boundingBox===null&&e.computeBoundingBox(),this.boundingBox.makeEmpty();for(let i=0;i<t;i++)this.getMatrixAt(i,$y),s6.copy(e.boundingBox).applyMatrix4($y),this.boundingBox.union(s6)}computeBoundingSphere(){let e=this.geometry,t=this.count;this.boundingSphere===null&&(this.boundingSphere=new Kr),e.boundingSphere===null&&e.computeBoundingSphere(),this.boundingSphere.makeEmpty();for(let i=0;i<t;i++)this.getMatrixAt(i,$y),bw.copy(e.boundingSphere).applyMatrix4($y),this.boundingSphere.union(bw)}copy(e,t){return super.copy(e,t),this.instanceMatrix.copy(e.instanceMatrix),e.morphTexture!==null&&(this.morphTexture=e.morphTexture.clone()),e.instanceColor!==null&&(this.instanceColor=e.instanceColor.clone()),this.count=e.count,e.boundingBox!==null&&(this.boundingBox=e.boundingBox.clone()),e.boundingSphere!==null&&(this.boundingSphere=e.boundingSphere.clone()),this}getColorAt(e,t){return this.instanceColor===null?t.setRGB(1,1,1):t.fromArray(this.instanceColor.array,e*3)}getMatrixAt(e,t){return t.fromArray(this.instanceMatrix.array,e*16)}getMorphAt(e,t){let i=t.morphTargetInfluences,r=this.morphTexture.source.data.data,a=i.length+1,s=e*a+1;for(let l=0;l<i.length;l++)i[l]=r[s+l]}raycast(e,t){let i=this.matrixWorld,r=this.count;if(yw.geometry=this.geometry,yw.material=this.material,yw.material!==void 0&&(this.boundingSphere===null&&this.computeBoundingSphere(),bw.copy(this.boundingSphere),bw.applyMatrix4(i),e.ray.intersectsSphere(bw)!==!1))for(let a=0;a<r;a++){this.getMatrixAt(a,$y),a6.multiplyMatrices(i,$y),yw.matrixWorld=a6,yw.raycast(e,RA);for(let s=0,l=RA.length;s<l;s++){let c=RA[s];c.instanceId=a,c.object=this,t.push(c)}RA.length=0}}setColorAt(e,t){return this.instanceColor===null&&(this.instanceColor=new Wf(new Float32Array(this.instanceMatrix.count*3).fill(1),3)),t.toArray(this.instanceColor.array,e*3),this}setMatrixAt(e,t){return t.toArray(this.instanceMatrix.array,e*16),this}setMorphAt(e,t){let i=t.morphTargetInfluences,r=i.length+1;this.morphTexture===null&&(this.morphTexture=new As(new Float32Array(r*this.count),r,this.count,e1,as));let a=this.morphTexture.source.data.data,s=0;for(let f=0;f<i.length;f++)s+=i[f];let l=this.geometry.morphTargetsRelative?1:1-s,c=r*e;return a[c]=l,a.set(i,c+1),this}updateMorphTargets(){}dispose(){super.dispose(),this.morphTexture!==null&&(this.morphTexture.dispose(),this.morphTexture=null)}},Km=new Kr,RQ=new ut(.5,.5),IA=new ve,qc=class{constructor(e=new fo,t=new fo,i=new fo,r=new fo,a=new fo,s=new fo){this.planes=[e,t,i,r,a,s]}set(e,t,i,r,a,s){let l=this.planes;return l[0].copy(e),l[1].copy(t),l[2].copy(i),l[3].copy(r),l[4].copy(a),l[5].copy(s),this}copy(e){let t=this.planes;for(let i=0;i<6;i++)t[i].copy(e.planes[i]);return this}setFromProjectionMatrix(e,t=ho,i=!1){let r=this.planes,a=e.elements,s=a[0],l=a[1],c=a[2],f=a[3],p=a[4],h=a[5],_=a[6],g=a[7],E=a[8],x=a[9],S=a[10],v=a[11],M=a[12],O=a[13],k=a[14],q=a[15];if(r[0].setComponents(f-s,g-p,v-E,q-M).normalize(),r[1].setComponents(f+s,g+p,v+E,q+M).normalize(),r[2].setComponents(f+l,g+h,v+x,q+O).normalize(),r[3].setComponents(f-l,g-h,v-x,q-O).normalize(),i)r[4].setComponents(c,_,S,k).normalize(),r[5].setComponents(f-c,g-_,v-S,q-k).normalize();else if(r[4].setComponents(f-c,g-_,v-S,q-k).normalize(),t===ho)r[5].setComponents(f+c,g+_,v+S,q+k).normalize();else if(t===Dh)r[5].setComponents(c,_,S,k).normalize();else throw new Error("THREE.Frustum.setFromProjectionMatrix(): Invalid coordinate system: "+t);return this}intersectsObject(e){if(e.boundingSphere!==void 0)e.boundingSphere===null&&e.computeBoundingSphere(),Km.copy(e.boundingSphere).applyMatrix4(e.matrixWorld);else{let t=e.geometry;t.boundingSphere===null&&t.computeBoundingSphere(),Km.copy(t.boundingSphere).applyMatrix4(e.matrixWorld)}return this.intersectsSphere(Km)}intersectsSprite(e){Km.center.set(0,0,0);let t=RQ.distanceTo(e.center);return Km.radius=.7071067811865476+t,Km.applyMatrix4(e.matrixWorld),this.intersectsSphere(Km)}intersectsSphere(e){let t=this.planes,i=e.center,r=-e.radius;for(let a=0;a<6;a++)if(t[a].distanceToPoint(i)<r)return!1;return!0}intersectsBox(e){let t=this.planes;for(let i=0;i<6;i++){let r=t[i];if(IA.x=r.normal.x>0?e.max.x:e.min.x,IA.y=r.normal.y>0?e.max.y:e.min.y,IA.z=r.normal.z>0?e.max.z:e.min.z,r.distanceToPoint(IA)<0)return!1}return!0}containsPoint(e){let t=this.planes;for(let i=0;i<6;i++)if(t[i].distanceToPoint(e)<0)return!1;return!0}clone(){return new this.constructor().copy(this)}},o6=new Cn,Qw=class n{constructor(){this.coordinateSystem=ho,this._frustums=[],this._count=0}setFromArrayCamera(e){let t=e.cameras,i=this._frustums;for(let r=0;r<t.length;r++){let a=t[r];o6.multiplyMatrices(a.projectionMatrix,a.matrixWorldInverse),i[r]===void 0&&(i[r]=new qc),i[r].setFromProjectionMatrix(o6,a.coordinateSystem,a.reversedDepth)}return this._count=t.length,this}intersectsObject(e){let t=this._frustums;for(let i=0;i<this._count;i++)if(t[i].intersectsObject(e))return!0;return!1}intersectsSprite(e){let t=this._frustums;for(let i=0;i<this._count;i++)if(t[i].intersectsSprite(e))return!0;return!1}intersectsSphere(e){let t=this._frustums;for(let i=0;i<this._count;i++)if(t[i].intersectsSphere(e))return!0;return!1}intersectsBox(e){let t=this._frustums;for(let i=0;i<this._count;i++)if(t[i].intersectsBox(e))return!0;return!1}containsPoint(e){let t=this._frustums;for(let i=0;i<this._count;i++)if(t[i].containsPoint(e))return!0;return!1}copy(e){this.coordinateSystem=e.coordinateSystem;let t=this._frustums,i=e._frustums;for(let r=0;r<e._count;r++)t[r]===void 0&&(t[r]=new qc),t[r].copy(i[r]);return this._count=e._count,this}clone(){return new n().copy(this)}};function zk(n,e){return n-e}function IQ(n,e){return n.z-e.z}function LQ(n,e){return e.z-n.z}var Jk=class{constructor(){this.index=0,this.pool=[],this.list=[]}push(e,t,i,r){let a=this.pool,s=this.list;this.index>=a.length&&a.push({start:-1,count:-1,z:-1,index:-1});let l=a[this.index];s.push(l),this.index++,l.start=e,l.count=t,l.z=i,l.index=r}reset(){this.list.length=0,this.index=0}},uo=new Cn,NQ=new Vt(1,1,1),kQ=new qc,OQ=new Qw,LA=new sa,Zm=new Kr,Sw=new ve,l6=new ve,DQ=new ve,qk=new Jk,rs=new dr,NA=[];function FQ(n,e,t=0){let i=e.itemSize;if(n.isInterleavedBufferAttribute||n.array.constructor!==e.array.constructor){let r=n.count;for(let a=0;a<r;a++)for(let s=0;s<i;s++)e.setComponent(a+t,s,n.getComponent(a,s))}else e.array.set(n.array,t*i);e.needsUpdate=!0}function $m(n,e){if(n.constructor!==e.constructor){let t=Math.min(n.length,e.length);for(let i=0;i<t;i++)e[i]=n[i]}else{let t=Math.min(n.length,e.length);e.set(new n.constructor(n.buffer,0,t))}}var Xw=class extends dr{constructor(e,t,i=t*2,r){super(new Nn,r),this.isBatchedMesh=!0,this.perObjectFrustumCulled=!0,this.sortObjects=!0,this.boundingBox=null,this.boundingSphere=null,this.customSort=null,this._instanceInfo=[],this._geometryInfo=[],this._availableInstanceIds=[],this._availableGeometryIds=[],this._nextIndexStart=0,this._nextVertexStart=0,this._geometryCount=0,this._visibilityChanged=!0,this._geometryInitialized=!1,this._maxInstanceCount=e,this._maxVertexCount=t,this._maxIndexCount=i,this._multiDrawCounts=new Int32Array(e),this._multiDrawStarts=new Int32Array(e),this._multiDrawCount=0,this._multiDrawBytesPerElement=1,this._matricesTexture=null,this._indirectTexture=null,this._colorsTexture=null,this._initMatricesTexture(),this._initIndirectTexture()}get maxInstanceCount(){return this._maxInstanceCount}get instanceCount(){return this._instanceInfo.length-this._availableInstanceIds.length}get unusedVertexCount(){return this._maxVertexCount-this._nextVertexStart}get unusedIndexCount(){return this._maxIndexCount-this._nextIndexStart}_initMatricesTexture(){let e=Math.sqrt(this._maxInstanceCount*4);e=Math.ceil(e/4)*4,e=Math.max(e,4);let t=new Float32Array(e*e*4),i=new As(t,e,e,wa,as);this._matricesTexture=i}_initIndirectTexture(){let e=Math.sqrt(this._maxInstanceCount);e=Math.ceil(e);let t=new Uint32Array(e*e),i=new As(t,e,e,Y0,il);this._indirectTexture=i}_initColorsTexture(){let e=Math.sqrt(this._maxInstanceCount);e=Math.ceil(e);let t=new Float32Array(e*e*4).fill(1),i=new As(t,e,e,wa,as);i.colorSpace=Gn.workingColorSpace,this._colorsTexture=i}_initializeGeometry(e){let t=this.geometry,i=this._maxVertexCount,r=this._maxIndexCount;if(this._geometryInitialized===!1){for(let a in e.attributes){let s=e.getAttribute(a),{array:l,itemSize:c,normalized:f}=s,p=new l.constructor(i*c),h=new Li(p,c,f);t.setAttribute(a,h)}if(e.getIndex()!==null){let a=i>65535?new Uint32Array(r):new Uint16Array(r);t.setIndex(new Li(a,1))}this._geometryInitialized=!0}}_validateGeometry(e){let t=this.geometry;if(!!e.getIndex()!=!!t.getIndex())throw new Error('THREE.BatchedMesh: All geometries must consistently have "index".');for(let i in t.attributes){if(!e.hasAttribute(i))throw new Error(`THREE.BatchedMesh: Added geometry missing "${i}". All geometries must have consistent attributes.`);let r=e.getAttribute(i),a=t.getAttribute(i);if(r.itemSize!==a.itemSize||r.normalized!==a.normalized)throw new Error("THREE.BatchedMesh: All attributes must have a consistent itemSize and normalized value.")}}validateInstanceId(e){let t=this._instanceInfo;if(e<0||e>=t.length||t[e].active===!1)throw new Error(`THREE.BatchedMesh: Invalid instanceId ${e}. Instance is either out of range or has been deleted.`)}validateGeometryId(e){let t=this._geometryInfo;if(e<0||e>=t.length||t[e].active===!1)throw new Error(`THREE.BatchedMesh: Invalid geometryId ${e}. Geometry is either out of range or has been deleted.`)}setCustomSort(e){return this.customSort=e,this}computeBoundingBox(){this.boundingBox===null&&(this.boundingBox=new sa);let e=this.boundingBox,t=this._instanceInfo;e.makeEmpty();for(let i=0,r=t.length;i<r;i++){if(t[i].active===!1)continue;let a=t[i].geometryIndex;this.getMatrixAt(i,uo),this.getBoundingBoxAt(a,LA).applyMatrix4(uo),e.union(LA)}}computeBoundingSphere(){this.boundingSphere===null&&(this.boundingSphere=new Kr);let e=this.boundingSphere,t=this._instanceInfo;e.makeEmpty();for(let i=0,r=t.length;i<r;i++){if(t[i].active===!1)continue;let a=t[i].geometryIndex;this.getMatrixAt(i,uo),this.getBoundingSphereAt(a,Zm).applyMatrix4(uo),e.union(Zm)}}addInstance(e){if(this._instanceInfo.length>=this.maxInstanceCount&&this._availableInstanceIds.length===0)throw new Error("THREE.BatchedMesh: Maximum item count reached.");let i={visible:!0,active:!0,geometryIndex:e},r=null;this._availableInstanceIds.length>0?(this._availableInstanceIds.sort(zk),r=this._availableInstanceIds.shift(),this._instanceInfo[r]=i):(r=this._instanceInfo.length,this._instanceInfo.push(i));let a=this._matricesTexture;uo.identity().toArray(a.image.data,r*16),a.needsUpdate=!0;let s=this._colorsTexture;return s&&(NQ.toArray(s.image.data,r*4),s.needsUpdate=!0),this._visibilityChanged=!0,r}addGeometry(e,t=-1,i=-1){this._initializeGeometry(e),this._validateGeometry(e);let r={vertexStart:-1,vertexCount:-1,reservedVertexCount:-1,indexStart:-1,indexCount:-1,reservedIndexCount:-1,start:-1,count:-1,boundingBox:null,boundingSphere:null,active:!0},a=this._geometryInfo;r.vertexStart=this._nextVertexStart,r.reservedVertexCount=t===-1?e.getAttribute("position").count:t;let s=e.getIndex();if(s!==null&&(r.indexStart=this._nextIndexStart,r.reservedIndexCount=i===-1?s.count:i),r.indexStart!==-1&&r.indexStart+r.reservedIndexCount>this._maxIndexCount||r.vertexStart+r.reservedVertexCount>this._maxVertexCount)throw new Error("THREE.BatchedMesh: Reserved space request exceeds the maximum buffer size.");let c;return this._availableGeometryIds.length>0?(this._availableGeometryIds.sort(zk),c=this._availableGeometryIds.shift(),a[c]=r):(c=this._geometryCount,this._geometryCount++,a.push(r)),this.setGeometryAt(c,e),this._nextIndexStart=r.indexStart+r.reservedIndexCount,this._nextVertexStart=r.vertexStart+r.reservedVertexCount,c}setGeometryAt(e,t){if(e>=this._geometryCount)throw new Error("THREE.BatchedMesh: Maximum geometry count reached.");this._validateGeometry(t);let i=this.geometry,r=i.getIndex()!==null,a=i.getIndex(),s=t.getIndex(),l=this._geometryInfo[e];if(r&&s.count>l.reservedIndexCount||t.attributes.position.count>l.reservedVertexCount)throw new Error("THREE.BatchedMesh: Reserved space not large enough for provided geometry.");let c=l.vertexStart,f=l.reservedVertexCount;l.vertexCount=t.getAttribute("position").count;for(let p in i.attributes){let h=t.getAttribute(p),_=i.getAttribute(p);FQ(h,_,c);let g=h.itemSize;for(let E=h.count,x=f;E<x;E++){let S=c+E;for(let v=0;v<g;v++)_.setComponent(S,v,0)}_.needsUpdate=!0,_.addUpdateRange(c*g,f*g)}if(r){let p=l.indexStart,h=l.reservedIndexCount;l.indexCount=t.getIndex().count;for(let _=0;_<s.count;_++)a.setX(p+_,c+s.getX(_));for(let _=s.count,g=h;_<g;_++)a.setX(p+_,c);a.needsUpdate=!0,a.addUpdateRange(p,l.reservedIndexCount)}return l.start=r?l.indexStart:l.vertexStart,l.count=r?l.indexCount:l.vertexCount,l.boundingBox=null,t.boundingBox!==null&&(l.boundingBox=t.boundingBox.clone()),l.boundingSphere=null,t.boundingSphere!==null&&(l.boundingSphere=t.boundingSphere.clone()),this._visibilityChanged=!0,e}deleteGeometry(e){let t=this._geometryInfo;if(e>=t.length||t[e].active===!1)return this;let i=this._instanceInfo;for(let r=0,a=i.length;r<a;r++)i[r].active&&i[r].geometryIndex===e&&this.deleteInstance(r);return t[e].active=!1,this._availableGeometryIds.push(e),this._visibilityChanged=!0,this}deleteInstance(e){return this.validateInstanceId(e),this._instanceInfo[e].active=!1,this._availableInstanceIds.push(e),this._visibilityChanged=!0,this}optimize(){let e=0,t=0,i=this._geometryInfo,r=i.map((s,l)=>l).sort((s,l)=>i[s].vertexStart-i[l].vertexStart),a=this.geometry;for(let s=0,l=i.length;s<l;s++){let c=r[s],f=i[c];if(f.active!==!1){if(a.index!==null){if(f.indexStart!==t){let{indexStart:p,vertexStart:h,reservedIndexCount:_}=f,g=a.index,E=g.array,x=e-h;for(let S=p;S<p+_;S++)E[S]=E[S]+x;g.array.copyWithin(t,p,p+_),g.addUpdateRange(t,_),g.needsUpdate=!0,f.indexStart=t}t+=f.reservedIndexCount}if(f.vertexStart!==e){let{vertexStart:p,reservedVertexCount:h}=f,_=a.attributes;for(let g in _){let E=_[g],{array:x,itemSize:S}=E;x.copyWithin(e*S,p*S,(p+h)*S),E.addUpdateRange(e*S,h*S),E.needsUpdate=!0}f.vertexStart=e}e+=f.reservedVertexCount,f.start=a.index?f.indexStart:f.vertexStart}}return this._nextIndexStart=t,this._nextVertexStart=e,this._visibilityChanged=!0,this}getBoundingBoxAt(e,t){if(e>=this._geometryCount)return null;let i=this.geometry,r=this._geometryInfo[e];if(r.boundingBox===null){let a=new sa,s=i.index,l=i.attributes.position;for(let c=r.start,f=r.start+r.count;c<f;c++){let p=c;s&&(p=s.getX(p)),a.expandByPoint(Sw.fromBufferAttribute(l,p))}r.boundingBox=a}return t.copy(r.boundingBox),t}getBoundingSphereAt(e,t){if(e>=this._geometryCount)return null;let i=this.geometry,r=this._geometryInfo[e];if(r.boundingSphere===null){let a=new Kr;this.getBoundingBoxAt(e,LA),LA.getCenter(a.center);let s=i.index,l=i.attributes.position,c=0;for(let f=r.start,p=r.start+r.count;f<p;f++){let h=f;s&&(h=s.getX(h)),Sw.fromBufferAttribute(l,h),c=Math.max(c,a.center.distanceToSquared(Sw))}a.radius=Math.sqrt(c),r.boundingSphere=a}return t.copy(r.boundingSphere),t}setMatrixAt(e,t){this.validateInstanceId(e);let i=this._matricesTexture,r=this._matricesTexture.image.data;return t.toArray(r,e*16),i.needsUpdate=!0,this}getMatrixAt(e,t){return this.validateInstanceId(e),t.fromArray(this._matricesTexture.image.data,e*16)}setColorAt(e,t){return this.validateInstanceId(e),this._colorsTexture===null&&this._initColorsTexture(),t.toArray(this._colorsTexture.image.data,e*4),this._colorsTexture.needsUpdate=!0,this}getColorAt(e,t){return this.validateInstanceId(e),this._colorsTexture===null?t.isVector4?t.set(1,1,1,1):t.setRGB(1,1,1):t.fromArray(this._colorsTexture.image.data,e*4)}setVisibleAt(e,t){return this.validateInstanceId(e),this._instanceInfo[e].visible===t?this:(this._instanceInfo[e].visible=t,this._visibilityChanged=!0,this)}getVisibleAt(e){return this.validateInstanceId(e),this._instanceInfo[e].visible}setGeometryIdAt(e,t){return this.validateInstanceId(e),this.validateGeometryId(t),this._instanceInfo[e].geometryIndex=t,this._visibilityChanged=!0,this}getGeometryIdAt(e){return this.validateInstanceId(e),this._instanceInfo[e].geometryIndex}getGeometryRangeAt(e,t={}){this.validateGeometryId(e);let i=this._geometryInfo[e];return t.vertexStart=i.vertexStart,t.vertexCount=i.vertexCount,t.reservedVertexCount=i.reservedVertexCount,t.indexStart=i.indexStart,t.indexCount=i.indexCount,t.reservedIndexCount=i.reservedIndexCount,t.start=i.start,t.count=i.count,t}setInstanceCount(e){let t=this._availableInstanceIds,i=this._instanceInfo;for(t.sort(zk);t[t.length-1]===i.length-1;)i.pop(),t.pop();if(e<i.length)throw new Error(`THREE.BatchedMesh: Instance ids outside the range ${e} are being used. Cannot shrink instance count.`);let r=new Int32Array(e),a=new Int32Array(e);$m(this._multiDrawCounts,r),$m(this._multiDrawStarts,a),this._multiDrawCounts=r,this._multiDrawStarts=a,this._maxInstanceCount=e;let s=this._indirectTexture,l=this._matricesTexture,c=this._colorsTexture;s.dispose(),this._initIndirectTexture(),$m(s.image.data,this._indirectTexture.image.data),l.dispose(),this._initMatricesTexture(),$m(l.image.data,this._matricesTexture.image.data),c&&(c.dispose(),this._initColorsTexture(),$m(c.image.data,this._colorsTexture.image.data))}setGeometrySize(e,t){let i=[...this._geometryInfo].filter(l=>l.active);if(Math.max(...i.map(l=>l.vertexStart+l.reservedVertexCount))>e)throw new Error(`THREE.BatchedMesh: Geometry vertex values are being used outside the range ${t}. Cannot shrink further.`);if(this.geometry.index&&Math.max(...i.map(c=>c.indexStart+c.reservedIndexCount))>t)throw new Error(`THREE.BatchedMesh: Geometry index values are being used outside the range ${t}. Cannot shrink further.`);let a=this.geometry;a.dispose(),this._maxVertexCount=e,this._maxIndexCount=t,this._geometryInitialized&&(this._geometryInitialized=!1,this.geometry=new Nn,this._initializeGeometry(a));let s=this.geometry;a.index&&$m(a.index.array,s.index.array);for(let l in a.attributes)$m(a.attributes[l].array,s.attributes[l].array)}raycast(e,t){let i=this._instanceInfo,r=this._geometryInfo,a=this.matrixWorld,s=this.geometry;rs.material=this.material,rs.geometry.index=s.index,rs.geometry.attributes=s.attributes,rs.geometry.boundingBox===null&&(rs.geometry.boundingBox=new sa),rs.geometry.boundingSphere===null&&(rs.geometry.boundingSphere=new Kr);for(let l=0,c=i.length;l<c;l++){if(!i[l].visible||!i[l].active)continue;let f=i[l].geometryIndex,p=r[f];rs.geometry.setDrawRange(p.start,p.count),this.getMatrixAt(l,rs.matrixWorld).premultiply(a),this.getBoundingBoxAt(f,rs.geometry.boundingBox),this.getBoundingSphereAt(f,rs.geometry.boundingSphere),rs.raycast(e,NA);for(let h=0,_=NA.length;h<_;h++){let g=NA[h];g.object=this,g.batchId=l,t.push(g)}NA.length=0}rs.material=null,rs.geometry.index=null,rs.geometry.attributes={},rs.geometry.setDrawRange(0,1/0)}copy(e){return super.copy(e),this.geometry=e.geometry.clone(),this.perObjectFrustumCulled=e.perObjectFrustumCulled,this.sortObjects=e.sortObjects,this.boundingBox=e.boundingBox!==null?e.boundingBox.clone():null,this.boundingSphere=e.boundingSphere!==null?e.boundingSphere.clone():null,this._geometryInfo=e._geometryInfo.map(t=>({...t,boundingBox:t.boundingBox!==null?t.boundingBox.clone():null,boundingSphere:t.boundingSphere!==null?t.boundingSphere.clone():null})),this._instanceInfo=e._instanceInfo.map(t=>({...t})),this._availableInstanceIds=e._availableInstanceIds.slice(),this._availableGeometryIds=e._availableGeometryIds.slice(),this._nextIndexStart=e._nextIndexStart,this._nextVertexStart=e._nextVertexStart,this._geometryCount=e._geometryCount,this._maxInstanceCount=e._maxInstanceCount,this._maxVertexCount=e._maxVertexCount,this._maxIndexCount=e._maxIndexCount,this._geometryInitialized=e._geometryInitialized,this._multiDrawCounts=e._multiDrawCounts.slice(),this._multiDrawStarts=e._multiDrawStarts.slice(),this._multiDrawBytesPerElement=e._multiDrawBytesPerElement,this._indirectTexture=e._indirectTexture.clone(),this._indirectTexture.image.data=this._indirectTexture.image.data.slice(),this._matricesTexture=e._matricesTexture.clone(),this._matricesTexture.image.data=this._matricesTexture.image.data.slice(),this._colorsTexture!==null&&(this._colorsTexture=e._colorsTexture.clone(),this._colorsTexture.image.data=this._colorsTexture.image.data.slice()),this}dispose(){super.dispose(),this.geometry.dispose(),this._matricesTexture.dispose(),this._matricesTexture=null,this._indirectTexture.dispose(),this._indirectTexture=null,this._colorsTexture!==null&&(this._colorsTexture.dispose(),this._colorsTexture=null)}onBeforeRender(e,t,i,r,a){if(!this._visibilityChanged&&!this.perObjectFrustumCulled&&!this.sortObjects)return;let s=r.getIndex(),l=s===null?1:s.array.BYTES_PER_ELEMENT,c=1;a.wireframe&&(c=2,l=r.attributes.position.count>65535?4:2);let f=this._instanceInfo,p=this._multiDrawStarts,h=this._multiDrawCounts,_=this._geometryInfo,g=this.perObjectFrustumCulled,E=this._indirectTexture,x=E.image.data,S=i.isArrayCamera?OQ:kQ;g&&(i.isArrayCamera?S.setFromArrayCamera(i):(uo.multiplyMatrices(i.projectionMatrix,i.matrixWorldInverse).multiply(this.matrixWorld),S.setFromProjectionMatrix(uo,i.coordinateSystem,i.reversedDepth)));let v=0;if(this.sortObjects){uo.copy(this.matrixWorld).invert(),Sw.setFromMatrixPosition(i.matrixWorld).applyMatrix4(uo),l6.set(0,0,-1).transformDirection(i.matrixWorld).transformDirection(uo);for(let k=0,q=f.length;k<q;k++)if(f[k].visible&&f[k].active){let G=f[k].geometryIndex;this.getMatrixAt(k,uo),this.getBoundingSphereAt(G,Zm).applyMatrix4(uo);let Q=!1;if(g&&(Q=!S.intersectsSphere(Zm)),!Q){let H=_[G],Z=DQ.subVectors(Zm.center,Sw).dot(l6);qk.push(H.start,H.count,Z,k)}}let M=qk.list,O=this.customSort;O===null?M.sort(a.transparent?LQ:IQ):O.call(this,M,i);for(let k=0,q=M.length;k<q;k++){let G=M[k];p[v]=G.start*l*c,h[v]=G.count*c,x[v]=G.index,v++}qk.reset()}else for(let M=0,O=f.length;M<O;M++)if(f[M].visible&&f[M].active){let k=f[M].geometryIndex,q=!1;if(g&&(this.getMatrixAt(M,uo),this.getBoundingSphereAt(k,Zm).applyMatrix4(uo),q=!S.intersectsSphere(Zm)),!q){let G=_[k];p[v]=G.start*l*c,h[v]=G.count*c,x[v]=M,v++}}E.needsUpdate=!0,this._multiDrawCount=v,this._multiDrawBytesPerElement=l,this._visibilityChanged=!1}onBeforeShadow(e,t,i,r,a,s){this.onBeforeRender(e,null,r,a,s)}},xa=class extends Zr{constructor(e){super(),this.isLineBasicMaterial=!0,this.type="LineBasicMaterial",this.color=new Vt(16777215),this.map=null,this.linewidth=1,this.linecap="round",this.linejoin="round",this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.linewidth=e.linewidth,this.linecap=e.linecap,this.linejoin=e.linejoin,this.fog=e.fog,this}},uC=new ve,cC=new ve,u6=new Cn,Ew=new Ru,kA=new Kr,Bk=new ve,c6=new ve,Lu=class extends gi{constructor(e=new Nn,t=new xa){super(),this.isLine=!0,this.type="Line",this.geometry=e,this.material=t,this.morphTargetDictionary=void 0,this.morphTargetInfluences=void 0,this.updateMorphTargets()}copy(e,t){return super.copy(e,t),this.material=Array.isArray(e.material)?e.material.slice():e.material,this.geometry=e.geometry,this}computeLineDistances(){let e=this.geometry;if(e.index===null){let t=e.attributes.position,i=[0];for(let r=1,a=t.count;r<a;r++)uC.fromBufferAttribute(t,r-1),cC.fromBufferAttribute(t,r),i[r]=i[r-1],i[r]+=uC.distanceTo(cC);e.setAttribute("lineDistance",new an(i,1))}else Ft("Line.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.");return this}intersectsFrustum(e){return e.intersectsObject(this)}raycast(e,t){let i=this.geometry,r=this.matrixWorld,a=e.params.Line.threshold,s=i.drawRange;if(i.boundingSphere===null&&i.computeBoundingSphere(),kA.copy(i.boundingSphere),kA.applyMatrix4(r),kA.radius+=a,e.ray.intersectsSphere(kA)===!1)return;u6.copy(r).invert(),Ew.copy(e.ray).applyMatrix4(u6);let l=a/((this.scale.x+this.scale.y+this.scale.z)/3),c=l*l,f=this.isLineSegments?2:1,p=i.index,_=i.attributes.position;if(p!==null){let g=Math.max(0,s.start),E=Math.min(p.count,s.start+s.count);for(let x=g,S=E-1;x<S;x+=f){let v=p.getX(x),M=p.getX(x+1),O=OA(this,e,Ew,c,v,M,x);O&&t.push(O)}if(this.isLineLoop){let x=p.getX(E-1),S=p.getX(g),v=OA(this,e,Ew,c,x,S,E-1);v&&t.push(v)}}else{let g=Math.max(0,s.start),E=Math.min(_.count,s.start+s.count);for(let x=g,S=E-1;x<S;x+=f){let v=OA(this,e,Ew,c,x,x+1,x);v&&t.push(v)}if(this.isLineLoop){let x=OA(this,e,Ew,c,E-1,g,E-1);x&&t.push(x)}}}updateMorphTargets(){let t=this.geometry.morphAttributes,i=Object.keys(t);if(i.length>0){let r=t[i[0]];if(r!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let a=0,s=r.length;a<s;a++){let l=r[a].name||String(a);this.morphTargetInfluences.push(0),this.morphTargetDictionary[l]=a}}}}};function OA(n,e,t,i,r,a,s){let l=n.geometry.attributes.position;if(uC.fromBufferAttribute(l,r),cC.fromBufferAttribute(l,a),t.distanceSqToSegment(uC,cC,Bk,c6)>i)return;Bk.applyMatrix4(n.matrixWorld);let f=e.ray.origin.distanceTo(Bk);if(!(f<e.near||f>e.far))return{distance:f,point:c6.clone().applyMatrix4(n.matrixWorld),index:s,face:null,faceIndex:null,barycoord:null,object:n}}var f6=new ve,d6=new ve,nl=class extends Lu{constructor(e,t){super(e,t),this.isLineSegments=!0,this.type="LineSegments"}computeLineDistances(){let e=this.geometry;if(e.index===null){let t=e.attributes.position,i=[];for(let r=0,a=t.count;r<a;r+=2)f6.fromBufferAttribute(t,r),d6.fromBufferAttribute(t,r+1),i[r]=r===0?0:i[r-1],i[r+1]=i[r]+f6.distanceTo(d6);e.setAttribute("lineDistance",new an(i,1))}else Ft("LineSegments.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.");return this}},Yw=class extends Lu{constructor(e,t){super(e,t),this.isLineLoop=!0,this.type="LineLoop"}},v0=class extends Zr{constructor(e){super(),this.isPointsMaterial=!0,this.type="PointsMaterial",this.color=new Vt(16777215),this.map=null,this.alphaMap=null,this.size=1,this.sizeAttenuation=!0,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.alphaMap=e.alphaMap,this.size=e.size,this.sizeAttenuation=e.sizeAttenuation,this.fog=e.fog,this}},h6=new Cn,eO=new Ru,DA=new Kr,FA=new ve,Kw=class extends gi{constructor(e=new Nn,t=new v0){super(),this.isPoints=!0,this.type="Points",this.geometry=e,this.material=t,this.morphTargetDictionary=void 0,this.morphTargetInfluences=void 0,this.updateMorphTargets()}copy(e,t){return super.copy(e,t),this.material=Array.isArray(e.material)?e.material.slice():e.material,this.geometry=e.geometry,this}intersectsFrustum(e){return e.intersectsObject(this)}raycast(e,t){let i=this.geometry,r=this.matrixWorld,a=e.params.Points.threshold,s=i.drawRange;if(i.boundingSphere===null&&i.computeBoundingSphere(),DA.copy(i.boundingSphere),DA.applyMatrix4(r),DA.radius+=a,e.ray.intersectsSphere(DA)===!1)return;h6.copy(r).invert(),eO.copy(e.ray).applyMatrix4(h6);let l=a/((this.scale.x+this.scale.y+this.scale.z)/3),c=l*l,f=i.index,h=i.attributes.position;if(f!==null){let _=Math.max(0,s.start),g=Math.min(f.count,s.start+s.count);for(let E=_,x=g;E<x;E++){let S=f.getX(E);FA.fromBufferAttribute(h,S),p6(FA,S,c,r,e,t,this)}}else{let _=Math.max(0,s.start),g=Math.min(h.count,s.start+s.count);for(let E=_,x=g;E<x;E++)FA.fromBufferAttribute(h,E),p6(FA,E,c,r,e,t,this)}}updateMorphTargets(){let t=this.geometry.morphAttributes,i=Object.keys(t);if(i.length>0){let r=t[i[0]];if(r!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let a=0,s=r.length;a<s;a++){let l=r[a].name||String(a);this.morphTargetInfluences.push(0),this.morphTargetDictionary[l]=a}}}}};function p6(n,e,t,i,r,a,s){let l=eO.distanceSqToPoint(n);if(l<t){let c=new ve;eO.closestPointToPoint(n,c),c.applyMatrix4(i);let f=r.ray.origin.distanceTo(c);if(f<r.near||f>r.far)return;a.push({distance:f,distanceToRay:Math.sqrt(l),point:c,index:e,face:null,faceIndex:null,barycoord:null,object:s})}}var Zw=class extends Sr{constructor(e,t,i,r,a=Ji,s=Ji,l,c,f){super(e,t,i,r,a,s,l,c,f),this.isVideoTexture=!0,this.generateMipmaps=!1,this._requestVideoFrameCallbackId=0;let p=this;function h(){p.needsUpdate=!0,p._requestVideoFrameCallbackId=e.requestVideoFrameCallback(h)}"requestVideoFrameCallback"in e&&(this._requestVideoFrameCallbackId=e.requestVideoFrameCallback(h))}clone(){return new this.constructor(this.image).copy(this)}update(){let e=this.image;"requestVideoFrameCallback"in e===!1&&e.readyState>=e.HAVE_CURRENT_DATA&&(this.needsUpdate=!0)}dispose(){this._requestVideoFrameCallbackId!==0&&(this.source.data.cancelVideoFrameCallback(this._requestVideoFrameCallbackId),this._requestVideoFrameCallbackId=0),super.dispose()}},fC=class extends Zw{constructor(e,t,i,r,a,s,l,c){super({},e,t,i,r,a,s,l,c),this.isVideoFrameTexture=!0}update(){}clone(){return new this.constructor().copy(this)}setFrame(e){this.image=e,this.needsUpdate=!0}},dC=class extends Sr{constructor(e,t){super({width:e,height:t}),this.isFramebufferTexture=!0,this.magFilter=br,this.minFilter=br,this.generateMipmaps=!1,this.needsUpdate=!0}},h_=class extends Sr{constructor(e,t,i,r,a,s,l,c,f,p,h,_){super(null,s,l,c,f,p,r,a,h,_),this.isCompressedTexture=!0,this.image={width:t,height:i},this.mipmaps=e,this.flipY=!1,this.generateMipmaps=!1}},hC=class extends h_{constructor(e,t,i,r,a,s){super(e,t,i,a,s),this.isCompressedArrayTexture=!0,this.image.depth=r,this.wrapR=Ms,this.layerUpdates=new Set}copy(e){return super.copy(e),this.wrapR=e.wrapR,this}addLayerUpdate(e){this.layerUpdates.add(e)}clearLayerUpdates(){this.layerUpdates.clear()}},pC=class extends h_{constructor(e,t,i){super(void 0,e[0].width,e[0].height,t,i,Du),this.isCompressedCubeTexture=!0,this.isCubeTexture=!0,this.image=e}},Uh=class extends Sr{constructor(e=[],t=Du,i,r,a,s,l,c,f,p){super(e,t,i,r,a,s,l,c,f,p),this.isCubeTexture=!0,this.flipY=!1}get images(){return this.image}set images(e){this.image=e}},y0=class extends Sr{constructor(e,t,i,r,a,s,l,c,f){super(e,t,i,r,a,s,l,c,f),this.isCanvasTexture=!0,this.needsUpdate=!0}},mC=class extends Sr{constructor(e,t,i,r,a,s,l,c,f){super(e,t,i,r,a,s,l,c,f),this.isHTMLTexture=!0,this.generateMipmaps=!1,this.needsUpdate=!0;let p=e?e.parentNode:null;p!==null&&"requestPaint"in p&&(p.onpaint=()=>{this.needsUpdate=!0},p.requestPaint())}dispose(){let e=this.image?this.image.parentNode:null;e!==null&&"onpaint"in e&&(e.onpaint=null),super.dispose()}},jf=class extends Sr{constructor(e,t,i=il,r,a,s,l=br,c=br,f,p=Cu,h=1){if(p!==Cu&&p!==ed)throw new Error("THREE.DepthTexture: format must be either THREE.DepthFormat or THREE.DepthStencilFormat");let _={width:e,height:t,depth:h};super(_,r,a,s,l,c,p,i,f),this.isDepthTexture=!0,this.flipY=!1,this.generateMipmaps=!1,this.compareFunction=null}copy(e){return super.copy(e),this.source=new Xl(Object.assign({},e.image)),this.compareFunction=e.compareFunction,this}toJSON(e){let t=super.toJSON(e);return t.compareFunction=this.compareFunction,t}},$w=class extends jf{constructor(e,t=il,i=Du,r,a,s=br,l=br,c,f=Cu){let p={width:e,height:e,depth:1},h=[p,p,p,p,p,p];super(e,e,t,i,r,a,s,l,c,f),this.image=h,this.isCubeDepthTexture=!0,this.isCubeTexture=!0}get images(){return this.image}set images(e){this.image=e}},b0=class extends Sr{constructor(e=null){super(),this.sourceTexture=e,this.isExternalTexture=!0}copy(e){return super.copy(e),this.sourceTexture=e.sourceTexture,this}},Bc=class n extends Nn{constructor(e=1,t=1,i=1,r=1,a=1,s=1){super(),this.type="BoxGeometry",this.parameters={width:e,height:t,depth:i,widthSegments:r,heightSegments:a,depthSegments:s};let l=this;r=Math.floor(r),a=Math.floor(a),s=Math.floor(s);let c=[],f=[],p=[],h=[],_=0,g=0;E("z","y","x",-1,-1,i,t,e,s,a,0),E("z","y","x",1,-1,i,t,-e,s,a,1),E("x","z","y",1,1,e,i,t,r,s,2),E("x","z","y",1,-1,e,i,-t,r,s,3),E("x","y","z",1,-1,e,t,i,r,a,4),E("x","y","z",-1,-1,e,t,-i,r,a,5),this.setIndex(c),this.setAttribute("position",new an(f,3)),this.setAttribute("normal",new an(p,3)),this.setAttribute("uv",new an(h,2));function E(x,S,v,M,O,k,q,G,Q,H,Z){let te=k/Q,j=q/H,he=k/2,ke=q/2,Me=G/2,ze=Q+1,Ne=H+1,Ve=0,Je=0,Qe=new ve;for(let st=0;st<Ne;st++){let We=st*j-ke;for(let gt=0;gt<ze;gt++){let Et=gt*te-he;Qe[x]=Et*M,Qe[S]=We*O,Qe[v]=Me,f.push(Qe.x,Qe.y,Qe.z),Qe[x]=0,Qe[S]=0,Qe[v]=G>0?1:-1,p.push(Qe.x,Qe.y,Qe.z),h.push(gt/Q),h.push(1-st/H),Ve+=1}}for(let st=0;st<H;st++)for(let We=0;We<Q;We++){let gt=_+We+ze*st,Et=_+We+ze*(st+1),jt=_+(We+1)+ze*(st+1),zt=_+(We+1)+ze*st;c.push(gt,Et,zt),c.push(Et,jt,zt),Je+=6}l.addGroup(g,Je,Z),g+=Je,_+=Ve}}copy(e){return super.copy(e),this.parameters=Object.assign({},e.parameters),this}static fromJSON(e){return new n(e.width,e.height,e.depth,e.widthSegments,e.heightSegments,e.depthSegments)}},Jw=class n extends Nn{constructor(e=1,t=1,i=4,r=8,a=1){super(),this.type="CapsuleGeometry",this.parameters={radius:e,height:t,capSegments:i,radialSegments:r,heightSegments:a},t=Math.max(0,t),i=Math.max(1,Math.floor(i)),r=Math.max(3,Math.floor(r)),a=Math.max(1,Math.floor(a));let s=[],l=[],c=[],f=[],p=t/2,h=Math.PI/2*e,_=t,g=2*h+_,E=i*2+a,x=r+1,S=new ve,v=new ve;for(let M=0;M<=E;M++){let O=0,k=0,q=0,G=0;if(M<=i){let Z=M/i,te=Z*Math.PI/2;k=-p-e*Math.cos(te),q=e*Math.sin(te),G=-e*Math.cos(te),O=Z*h}else if(M<=i+a){let Z=(M-i)/a;k=-p+Z*t,q=e,G=0,O=h+Z*_}else{let Z=(M-i-a)/i,te=Z*Math.PI/2;k=p+e*Math.sin(te),q=e*Math.cos(te),G=e*Math.sin(te),O=h+_+Z*h}let Q=Math.max(0,Math.min(1,O/g)),H=0;M===0?H=.5/r:M===E&&(H=-.5/r);for(let Z=0;Z<=r;Z++){let te=Z/r,j=te*Math.PI*2,he=Math.sin(j),ke=Math.cos(j);v.x=-q*ke,v.y=k,v.z=q*he,l.push(v.x,v.y,v.z),S.set(-q*ke,G,q*he),S.normalize(),c.push(S.x,S.y,S.z),f.push(te+H,Q)}if(M>0){let Z=(M-1)*x;for(let te=0;te<r;te++){let j=Z+te,he=Z+te+1,ke=M*x+te,Me=M*x+te+1;s.push(j,he,ke),s.push(he,Me,ke)}}}this.setIndex(s),this.setAttribute("position",new an(l,3)),this.setAttribute("normal",new an(c,3)),this.setAttribute("uv",new an(f,2))}copy(e){return super.copy(e),this.parameters=Object.assign({},e.parameters),this}static fromJSON(e){return new n(e.radius,e.height,e.capSegments,e.radialSegments,e.heightSegments)}},ex=class n extends Nn{constructor(e=1,t=32,i=0,r=Math.PI*2){super(),this.type="CircleGeometry",this.parameters={radius:e,segments:t,thetaStart:i,thetaLength:r},t=Math.max(3,t);let a=[],s=[],l=[],c=[],f=new ve,p=new ut;s.push(0,0,0),l.push(0,0,1),c.push(.5,.5);for(let h=0,_=3;h<=t;h++,_+=3){let g=i+h/t*r;f.x=e*Math.cos(g),f.y=e*Math.sin(g),s.push(f.x,f.y,f.z),l.push(0,0,1),p.x=(s[_]/e+1)/2,p.y=(s[_+1]/e+1)/2,c.push(p.x,p.y)}for(let h=1;h<=t;h++)a.push(h,h+1,0);this.setIndex(a),this.setAttribute("position",new an(s,3)),this.setAttribute("normal",new an(l,3)),this.setAttribute("uv",new an(c,2))}copy(e){return super.copy(e),this.parameters=Object.assign({},e.parameters),this}static fromJSON(e){return new n(e.radius,e.segments,e.thetaStart,e.thetaLength)}},S0=class n extends Nn{constructor(e=1,t=1,i=1,r=32,a=1,s=!1,l=0,c=Math.PI*2){super(),this.type="CylinderGeometry",this.parameters={radiusTop:e,radiusBottom:t,height:i,radialSegments:r,heightSegments:a,openEnded:s,thetaStart:l,thetaLength:c};let f=this;r=Math.floor(r),a=Math.floor(a);let p=[],h=[],_=[],g=[],E=0,x=[],S=i/2,v=0;M(),s===!1&&(e>0&&O(!0),t>0&&O(!1)),this.setIndex(p),this.setAttribute("position",new an(h,3)),this.setAttribute("normal",new an(_,3)),this.setAttribute("uv",new an(g,2));function M(){let k=new ve,q=new ve,G=0,Q=(t-e)/i;for(let H=0;H<=a;H++){let Z=[],te=H/a,j=te*(t-e)+e;for(let he=0;he<=r;he++){let ke=he/r,Me=ke*c+l,ze=Math.sin(Me),Ne=Math.cos(Me);q.x=j*ze,q.y=-te*i+S,q.z=j*Ne,h.push(q.x,q.y,q.z),k.set(ze,Q,Ne).normalize(),_.push(k.x,k.y,k.z),g.push(ke,1-te),Z.push(E++)}x.push(Z)}for(let H=0;H<r;H++)for(let Z=0;Z<a;Z++){let te=x[Z][H],j=x[Z+1][H],he=x[Z+1][H+1],ke=x[Z][H+1];(e>0||Z!==0)&&(p.push(te,j,ke),G+=3),(t>0||Z!==a-1)&&(p.push(j,he,ke),G+=3)}f.addGroup(v,G,0),v+=G}function O(k){let q=E,G=new ut,Q=new ve,H=0,Z=k===!0?e:t,te=k===!0?1:-1;for(let he=1;he<=r;he++)h.push(0,S*te,0),_.push(0,te,0),g.push(.5,.5),E++;let j=E;for(let he=0;he<=r;he++){let Me=he/r*c+l,ze=Math.cos(Me),Ne=Math.sin(Me);Q.x=Z*Ne,Q.y=S*te,Q.z=Z*ze,h.push(Q.x,Q.y,Q.z),_.push(0,te,0),G.x=ze*.5+.5,G.y=Ne*.5*te+.5,g.push(G.x,G.y),E++}for(let he=0;he<r;he++){let ke=q+he,Me=j+he;k===!0?p.push(Me,Me+1,ke):p.push(Me+1,Me,ke),H+=3}f.addGroup(v,H,k===!0?1:2),v+=H}}copy(e){return super.copy(e),this.parameters=Object.assign({},e.parameters),this}static fromJSON(e){return new n(e.radiusTop,e.radiusBottom,e.height,e.radialSegments,e.heightSegments,e.openEnded,e.thetaStart,e.thetaLength)}},E0=class n extends S0{constructor(e=1,t=1,i=32,r=1,a=!1,s=0,l=Math.PI*2){super(0,e,t,i,r,a,s,l),this.type="ConeGeometry",this.parameters={radius:e,height:t,radialSegments:i,heightSegments:r,openEnded:a,thetaStart:s,thetaLength:l}}static fromJSON(e){return new n(e.radius,e.height,e.radialSegments,e.heightSegments,e.openEnded,e.thetaStart,e.thetaLength)}},Qf=class n extends Nn{constructor(e=[],t=[],i=1,r=0){super(),this.type="PolyhedronGeometry",this.parameters={vertices:e,indices:t,radius:i,detail:r};let a=[],s=[];l(r),f(i),p(),this.setAttribute("position",new an(a,3)),this.setAttribute("normal",new an(a.slice(),3)),this.setAttribute("uv",new an(s,2)),r===0?this.computeVertexNormals():this.normalizeNormals();function l(M){let O=new ve,k=new ve,q=new ve;for(let G=0;G<t.length;G+=3)g(t[G+0],O),g(t[G+1],k),g(t[G+2],q),c(O,k,q,M)}function c(M,O,k,q){let G=q+1,Q=[];for(let H=0;H<=G;H++){Q[H]=[];let Z=M.clone().lerp(k,H/G),te=O.clone().lerp(k,H/G),j=G-H;for(let he=0;he<=j;he++)he===0&&H===G?Q[H][he]=Z:Q[H][he]=Z.clone().lerp(te,he/j)}for(let H=0;H<G;H++)for(let Z=0;Z<2*(G-H)-1;Z++){let te=Math.floor(Z/2);Z%2===0?(_(Q[H][te+1]),_(Q[H+1][te]),_(Q[H][te])):(_(Q[H][te+1]),_(Q[H+1][te+1]),_(Q[H+1][te]))}}function f(M){let O=new ve;for(let k=0;k<a.length;k+=3)O.x=a[k+0],O.y=a[k+1],O.z=a[k+2],O.normalize().multiplyScalar(M),a[k+0]=O.x,a[k+1]=O.y,a[k+2]=O.z}function p(){let M=new ve;for(let O=0;O<a.length;O+=3){M.x=a[O+0],M.y=a[O+1],M.z=a[O+2];let k=S(M)/2/Math.PI+.5,q=v(M)/Math.PI+.5;s.push(k,1-q)}E(),h()}function h(){for(let M=0;M<s.length;M+=6){let O=s[M+0],k=s[M+2],q=s[M+4],G=Math.max(O,k,q),Q=Math.min(O,k,q);G>.9&&Q<.1&&(O<.2&&(s[M+0]+=1),k<.2&&(s[M+2]+=1),q<.2&&(s[M+4]+=1))}}function _(M){a.push(M.x,M.y,M.z)}function g(M,O){let k=M*3;O.x=e[k+0],O.y=e[k+1],O.z=e[k+2]}function E(){let M=new ve,O=new ve,k=new ve,q=new ve,G=new ut,Q=new ut,H=new ut;for(let Z=0,te=0;Z<a.length;Z+=9,te+=6){M.set(a[Z+0],a[Z+1],a[Z+2]),O.set(a[Z+3],a[Z+4],a[Z+5]),k.set(a[Z+6],a[Z+7],a[Z+8]),G.set(s[te+0],s[te+1]),Q.set(s[te+2],s[te+3]),H.set(s[te+4],s[te+5]),q.copy(M).add(O).add(k).divideScalar(3);let j=S(q);x(G,te+0,M,j),x(Q,te+2,O,j),x(H,te+4,k,j)}}function x(M,O,k,q){q<0&&M.x===1&&(s[O]=M.x-1),k.x===0&&k.z===0&&(s[O]=q/2/Math.PI+.5)}function S(M){return Math.atan2(M.z,-M.x)}function v(M){return Math.atan2(-M.y,Math.sqrt(M.x*M.x+M.z*M.z))}}copy(e){return super.copy(e),this.parameters=Object.assign({},e.parameters),this}static fromJSON(e){return new n(e.vertices,e.indices,e.radius,e.detail)}},tx=class n extends Qf{constructor(e=1,t=0){let i=(1+Math.sqrt(5))/2,r=1/i,a=[-1,-1,-1,-1,-1,1,-1,1,-1,-1,1,1,1,-1,-1,1,-1,1,1,1,-1,1,1,1,0,-r,-i,0,-r,i,0,r,-i,0,r,i,-r,-i,0,-r,i,0,r,-i,0,r,i,0,-i,0,-r,i,0,-r,-i,0,r,i,0,r],s=[3,11,7,3,7,15,3,15,13,7,19,17,7,17,6,7,6,15,17,4,8,17,8,10,17,10,6,8,0,16,8,16,2,8,2,10,0,12,1,0,1,18,0,18,16,6,10,2,6,2,13,6,13,15,2,16,18,2,18,3,2,3,13,18,1,9,18,9,11,18,11,3,4,14,12,4,12,0,4,0,8,11,9,5,11,5,19,11,19,7,19,5,14,19,14,4,19,4,17,1,12,14,1,14,5,1,5,9];super(a,s,e,t),this.type="DodecahedronGeometry",this.parameters={radius:e,detail:t}}static fromJSON(e){return new n(e.radius,e.detail)}},PA=new ve,UA=new ve,Hk=new ve,zA=new Mu,nx=class extends Nn{constructor(e=null,t=1){if(super(),this.type="EdgesGeometry",this.parameters={geometry:e,thresholdAngle:t},e!==null){let r=Math.pow(10,4),a=Math.cos(a_*t),s=e.getIndex(),l=e.getAttribute("position"),c=s?s.count:l.count,f=[0,0,0],p=["a","b","c"],h=new Array(3),_={},g=[];for(let E=0;E<c;E+=3){s?(f[0]=s.getX(E),f[1]=s.getX(E+1),f[2]=s.getX(E+2)):(f[0]=E,f[1]=E+1,f[2]=E+2);let{a:x,b:S,c:v}=zA;if(x.fromBufferAttribute(l,f[0]),S.fromBufferAttribute(l,f[1]),v.fromBufferAttribute(l,f[2]),zA.getNormal(Hk),h[0]=`${Math.round(x.x*r)},${Math.round(x.y*r)},${Math.round(x.z*r)}`,h[1]=`${Math.round(S.x*r)},${Math.round(S.y*r)},${Math.round(S.z*r)}`,h[2]=`${Math.round(v.x*r)},${Math.round(v.y*r)},${Math.round(v.z*r)}`,!(h[0]===h[1]||h[1]===h[2]||h[2]===h[0]))for(let M=0;M<3;M++){let O=(M+1)%3,k=h[M],q=h[O],G=zA[p[M]],Q=zA[p[O]],H=`${k}_${q}`,Z=`${q}_${k}`;Z in _&&_[Z]?(Hk.dot(_[Z].normal)<=a&&(g.push(G.x,G.y,G.z),g.push(Q.x,Q.y,Q.z)),_[Z]=null):H in _||(_[H]={index0:f[M],index1:f[O],normal:Hk.clone()})}}for(let E in _)if(_[E]){let{index0:x,index1:S}=_[E];PA.fromBufferAttribute(l,x),UA.fromBufferAttribute(l,S),g.push(PA.x,PA.y,PA.z),g.push(UA.x,UA.y,UA.z)}this.setAttribute("position",new an(g,3))}}copy(e){return super.copy(e),this.parameters=Object.assign({},e.parameters),this}},mo=class{constructor(){this.type="Curve",this.arcLengthDivisions=200,this.needsUpdate=!1,this.cacheArcLengths=null}getPoint(){Ft("Curve: .getPoint() not implemented.")}getPointAt(e,t){let i=this.getUtoTmapping(e);return this.getPoint(i,t)}getPoints(e=5){let t=[];for(let i=0;i<=e;i++)t.push(this.getPoint(i/e));return t}getSpacedPoints(e=5){let t=[];for(let i=0;i<=e;i++)t.push(this.getPointAt(i/e));return t}getLength(){let e=this.getLengths();return e[e.length-1]}getLengths(e=this.arcLengthDivisions){if(this.cacheArcLengths&&this.cacheArcLengths.length===e+1&&!this.needsUpdate)return this.cacheArcLengths;this.needsUpdate=!1;let t=[],i,r=this.getPoint(0),a=0;t.push(0);for(let s=1;s<=e;s++)i=this.getPoint(s/e),a+=i.distanceTo(r),t.push(a),r=i;return this.cacheArcLengths=t,t}updateArcLengths(){this.needsUpdate=!0,this.getLengths()}getUtoTmapping(e,t=null){let i=this.getLengths(),r=0,a=i.length,s;t?s=t:s=e*i[a-1];let l=0,c=a-1,f;for(;l<=c;)if(r=Math.floor(l+(c-l)/2),f=i[r]-s,f<0)l=r+1;else if(f>0)c=r-1;else{c=r;break}if(r=c,i[r]===s)return r/(a-1);let p=i[r],_=i[r+1]-p,g=(s-p)/_;return(r+g)/(a-1)}getTangent(e,t){let r=e-1e-4,a=e+1e-4;r<0&&(r=0),a>1&&(a=1);let s=this.getPoint(r),l=this.getPoint(a),c=t||(s.isVector2?new ut:new ve);return c.copy(l).sub(s).normalize(),c}getTangentAt(e,t){let i=this.getUtoTmapping(e);return this.getTangent(i,t)}computeFrenetFrames(e,t=!1){let i=new ve,r=[],a=[],s=[],l=new ve,c=new Cn;for(let g=0;g<=e;g++){let E=g/e;r[g]=this.getTangentAt(E,new ve)}a[0]=new ve,s[0]=new ve;let f=Number.MAX_VALUE,p=Math.abs(r[0].x),h=Math.abs(r[0].y),_=Math.abs(r[0].z);p<=f&&(f=p,i.set(1,0,0)),h<=f&&(f=h,i.set(0,1,0)),_<=f&&i.set(0,0,1),l.crossVectors(r[0],i).normalize(),a[0].crossVectors(r[0],l),s[0].crossVectors(r[0],a[0]);for(let g=1;g<=e;g++){if(a[g]=a[g-1].clone(),s[g]=s[g-1].clone(),l.crossVectors(r[g-1],r[g]),l.length()>Number.EPSILON){l.normalize();let E=Math.acos(Tn(r[g-1].dot(r[g]),-1,1));a[g].applyMatrix4(c.makeRotationAxis(l,E))}s[g].crossVectors(r[g],a[g])}if(t===!0){let g=Math.acos(Tn(a[0].dot(a[e]),-1,1));g/=e,r[0].dot(l.crossVectors(a[0],a[e]))>0&&(g=-g);for(let E=1;E<=e;E++)a[E].applyMatrix4(c.makeRotationAxis(r[E],g*E)),s[E].crossVectors(r[E],a[E])}return{tangents:r,normals:a,binormals:s}}clone(){return new this.constructor().copy(this)}copy(e){return this.arcLengthDivisions=e.arcLengthDivisions,this}toJSON(){let e={metadata:{version:4.7,type:"Curve",generator:"Curve.toJSON"}};return e.arcLengthDivisions=this.arcLengthDivisions,e.type=this.type,e}fromJSON(e){return this.arcLengthDivisions=e.arcLengthDivisions,this}},p_=class extends mo{constructor(e=0,t=0,i=1,r=1,a=0,s=Math.PI*2,l=!1,c=0){super(),this.isEllipseCurve=!0,this.type="EllipseCurve",this.aX=e,this.aY=t,this.xRadius=i,this.yRadius=r,this.aStartAngle=a,this.aEndAngle=s,this.aClockwise=l,this.aRotation=c}getPoint(e,t=new ut){let i=t,r=Math.PI*2,a=this.aEndAngle-this.aStartAngle,s=Math.abs(a)<Number.EPSILON;for(;a<0;)a+=r;for(;a>r;)a-=r;a<Number.EPSILON&&(s?a=0:a=r),this.aClockwise===!0&&!s&&(a===r?a=-r:a=a-r);let l=this.aStartAngle+e*a,c=this.aX+this.xRadius*Math.cos(l),f=this.aY+this.yRadius*Math.sin(l);if(this.aRotation!==0){let p=Math.cos(this.aRotation),h=Math.sin(this.aRotation),_=c-this.aX,g=f-this.aY;c=_*p-g*h+this.aX,f=_*h+g*p+this.aY}return i.set(c,f)}copy(e){return super.copy(e),this.aX=e.aX,this.aY=e.aY,this.xRadius=e.xRadius,this.yRadius=e.yRadius,this.aStartAngle=e.aStartAngle,this.aEndAngle=e.aEndAngle,this.aClockwise=e.aClockwise,this.aRotation=e.aRotation,this}toJSON(){let e=super.toJSON();return e.aX=this.aX,e.aY=this.aY,e.xRadius=this.xRadius,e.yRadius=this.yRadius,e.aStartAngle=this.aStartAngle,e.aEndAngle=this.aEndAngle,e.aClockwise=this.aClockwise,e.aRotation=this.aRotation,e}fromJSON(e){return super.fromJSON(e),this.aX=e.aX,this.aY=e.aY,this.xRadius=e.xRadius,this.yRadius=e.yRadius,this.aStartAngle=e.aStartAngle,this.aEndAngle=e.aEndAngle,this.aClockwise=e.aClockwise,this.aRotation=e.aRotation,this}},ix=class extends p_{constructor(e,t,i,r,a,s){super(e,t,i,i,r,a,s),this.isArcCurve=!0,this.type="ArcCurve"}};function YO(){let n=0,e=0,t=0,i=0;function r(a,s,l,c){n=a,e=l,t=-3*a+3*s-2*l-c,i=2*a-2*s+l+c}return{initCatmullRom:function(a,s,l,c,f){r(s,l,f*(l-a),f*(c-s))},initNonuniformCatmullRom:function(a,s,l,c,f,p,h){let _=(s-a)/f-(l-a)/(f+p)+(l-s)/p,g=(l-s)/p-(c-s)/(p+h)+(c-l)/h;_*=p,g*=p,r(s,l,_,g)},calc:function(a){let s=a*a,l=s*a;return n+e*a+t*s+i*l}}}var m6=new ve,_6=new ve,Vk=new YO,Gk=new YO,Wk=new YO,rx=class extends mo{constructor(e=[],t=!1,i="centripetal",r=.5){super(),this.isCatmullRomCurve3=!0,this.type="CatmullRomCurve3",this.points=e,this.closed=t,this.curveType=i,this.tension=r}getPoint(e,t=new ve){let i=t,r=this.points,a=r.length,s=(a-(this.closed?0:1))*e,l=Math.floor(s),c=s-l;this.closed?l+=l>0?0:(Math.floor(Math.abs(l)/a)+1)*a:c===0&&l===a-1&&(l=a-2,c=1);let f,p;this.closed||l>0?f=r[(l-1)%a]:(_6.subVectors(r[0],r[1]).add(r[0]),f=_6);let h=r[l%a],_=r[(l+1)%a];if(this.closed||l+2<a?p=r[(l+2)%a]:(m6.subVectors(r[a-1],r[a-2]).add(r[a-1]),p=m6),this.curveType==="centripetal"||this.curveType==="chordal"){let g=this.curveType==="chordal"?.5:.25,E=Math.pow(f.distanceToSquared(h),g),x=Math.pow(h.distanceToSquared(_),g),S=Math.pow(_.distanceToSquared(p),g);x<1e-4&&(x=1),E<1e-4&&(E=x),S<1e-4&&(S=x),Vk.initNonuniformCatmullRom(f.x,h.x,_.x,p.x,E,x,S),Gk.initNonuniformCatmullRom(f.y,h.y,_.y,p.y,E,x,S),Wk.initNonuniformCatmullRom(f.z,h.z,_.z,p.z,E,x,S)}else this.curveType==="catmullrom"&&(Vk.initCatmullRom(f.x,h.x,_.x,p.x,this.tension),Gk.initCatmullRom(f.y,h.y,_.y,p.y,this.tension),Wk.initCatmullRom(f.z,h.z,_.z,p.z,this.tension));return i.set(Vk.calc(c),Gk.calc(c),Wk.calc(c)),i}copy(e){super.copy(e),this.points=[];for(let t=0,i=e.points.length;t<i;t++){let r=e.points[t];this.points.push(r.clone())}return this.closed=e.closed,this.curveType=e.curveType,this.tension=e.tension,this}toJSON(){let e=super.toJSON();e.points=[];for(let t=0,i=this.points.length;t<i;t++){let r=this.points[t];e.points.push(r.toArray())}return e.closed=this.closed,e.curveType=this.curveType,e.tension=this.tension,e}fromJSON(e){super.fromJSON(e),this.points=[];for(let t=0,i=e.points.length;t<i;t++){let r=e.points[t];this.points.push(new ve().fromArray(r))}return this.closed=e.closed,this.curveType=e.curveType,this.tension=e.tension,this}};function g6(n,e,t,i,r){let a=(i-e)*.5,s=(r-t)*.5,l=n*n,c=n*l;return(2*t-2*i+a+s)*c+(-3*t+3*i-2*a-s)*l+a*n+t}function PQ(n,e){let t=1-n;return t*t*e}function UQ(n,e){return 2*(1-n)*n*e}function zQ(n,e){return n*n*e}function Cw(n,e,t,i){return PQ(n,e)+UQ(n,t)+zQ(n,i)}function qQ(n,e){let t=1-n;return t*t*t*e}function BQ(n,e){let t=1-n;return 3*t*t*n*e}function HQ(n,e){return 3*(1-n)*n*n*e}function VQ(n,e){return n*n*n*e}function Rw(n,e,t,i,r){return qQ(n,e)+BQ(n,t)+HQ(n,i)+VQ(n,r)}var w0=class extends mo{constructor(e=new ut,t=new ut,i=new ut,r=new ut){super(),this.isCubicBezierCurve=!0,this.type="CubicBezierCurve",this.v0=e,this.v1=t,this.v2=i,this.v3=r}getPoint(e,t=new ut){let i=t,r=this.v0,a=this.v1,s=this.v2,l=this.v3;return i.set(Rw(e,r.x,a.x,s.x,l.x),Rw(e,r.y,a.y,s.y,l.y)),i}copy(e){return super.copy(e),this.v0.copy(e.v0),this.v1.copy(e.v1),this.v2.copy(e.v2),this.v3.copy(e.v3),this}toJSON(){let e=super.toJSON();return e.v0=this.v0.toArray(),e.v1=this.v1.toArray(),e.v2=this.v2.toArray(),e.v3=this.v3.toArray(),e}fromJSON(e){return super.fromJSON(e),this.v0.fromArray(e.v0),this.v1.fromArray(e.v1),this.v2.fromArray(e.v2),this.v3.fromArray(e.v3),this}},ax=class extends mo{constructor(e=new ve,t=new ve,i=new ve,r=new ve){super(),this.isCubicBezierCurve3=!0,this.type="CubicBezierCurve3",this.v0=e,this.v1=t,this.v2=i,this.v3=r}getPoint(e,t=new ve){let i=t,r=this.v0,a=this.v1,s=this.v2,l=this.v3;return i.set(Rw(e,r.x,a.x,s.x,l.x),Rw(e,r.y,a.y,s.y,l.y),Rw(e,r.z,a.z,s.z,l.z)),i}copy(e){return super.copy(e),this.v0.copy(e.v0),this.v1.copy(e.v1),this.v2.copy(e.v2),this.v3.copy(e.v3),this}toJSON(){let e=super.toJSON();return e.v0=this.v0.toArray(),e.v1=this.v1.toArray(),e.v2=this.v2.toArray(),e.v3=this.v3.toArray(),e}fromJSON(e){return super.fromJSON(e),this.v0.fromArray(e.v0),this.v1.fromArray(e.v1),this.v2.fromArray(e.v2),this.v3.fromArray(e.v3),this}},x0=class extends mo{constructor(e=new ut,t=new ut){super(),this.isLineCurve=!0,this.type="LineCurve",this.v1=e,this.v2=t}getPoint(e,t=new ut){let i=t;return e===1?i.copy(this.v2):(i.copy(this.v2).sub(this.v1),i.multiplyScalar(e).add(this.v1)),i}getPointAt(e,t){return this.getPoint(e,t)}getTangent(e,t=new ut){return t.subVectors(this.v2,this.v1).normalize()}getTangentAt(e,t){return this.getTangent(e,t)}copy(e){return super.copy(e),this.v1.copy(e.v1),this.v2.copy(e.v2),this}toJSON(){let e=super.toJSON();return e.v1=this.v1.toArray(),e.v2=this.v2.toArray(),e}fromJSON(e){return super.fromJSON(e),this.v1.fromArray(e.v1),this.v2.fromArray(e.v2),this}},sx=class extends mo{constructor(e=new ve,t=new ve){super(),this.isLineCurve3=!0,this.type="LineCurve3",this.v1=e,this.v2=t}getPoint(e,t=new ve){let i=t;return e===1?i.copy(this.v2):(i.copy(this.v2).sub(this.v1),i.multiplyScalar(e).add(this.v1)),i}getPointAt(e,t){return this.getPoint(e,t)}getTangent(e,t=new ve){return t.subVectors(this.v2,this.v1).normalize()}getTangentAt(e,t){return this.getTangent(e,t)}copy(e){return super.copy(e),this.v1.copy(e.v1),this.v2.copy(e.v2),this}toJSON(){let e=super.toJSON();return e.v1=this.v1.toArray(),e.v2=this.v2.toArray(),e}fromJSON(e){return super.fromJSON(e),this.v1.fromArray(e.v1),this.v2.fromArray(e.v2),this}},T0=class extends mo{constructor(e=new ut,t=new ut,i=new ut){super(),this.isQuadraticBezierCurve=!0,this.type="QuadraticBezierCurve",this.v0=e,this.v1=t,this.v2=i}getPoint(e,t=new ut){let i=t,r=this.v0,a=this.v1,s=this.v2;return i.set(Cw(e,r.x,a.x,s.x),Cw(e,r.y,a.y,s.y)),i}copy(e){return super.copy(e),this.v0.copy(e.v0),this.v1.copy(e.v1),this.v2.copy(e.v2),this}toJSON(){let e=super.toJSON();return e.v0=this.v0.toArray(),e.v1=this.v1.toArray(),e.v2=this.v2.toArray(),e}fromJSON(e){return super.fromJSON(e),this.v0.fromArray(e.v0),this.v1.fromArray(e.v1),this.v2.fromArray(e.v2),this}},M0=class extends mo{constructor(e=new ve,t=new ve,i=new ve){super(),this.isQuadraticBezierCurve3=!0,this.type="QuadraticBezierCurve3",this.v0=e,this.v1=t,this.v2=i}getPoint(e,t=new ve){let i=t,r=this.v0,a=this.v1,s=this.v2;return i.set(Cw(e,r.x,a.x,s.x),Cw(e,r.y,a.y,s.y),Cw(e,r.z,a.z,s.z)),i}copy(e){return super.copy(e),this.v0.copy(e.v0),this.v1.copy(e.v1),this.v2.copy(e.v2),this}toJSON(){let e=super.toJSON();return e.v0=this.v0.toArray(),e.v1=this.v1.toArray(),e.v2=this.v2.toArray(),e}fromJSON(e){return super.fromJSON(e),this.v0.fromArray(e.v0),this.v1.fromArray(e.v1),this.v2.fromArray(e.v2),this}},A0=class extends mo{constructor(e=[]){super(),this.isSplineCurve=!0,this.type="SplineCurve",this.points=e}getPoint(e,t=new ut){let i=t,r=this.points,a=(r.length-1)*e,s=Math.floor(a),l=a-s,c=r[s===0?s:s-1],f=r[s],p=r[s>r.length-2?r.length-1:s+1],h=r[s>r.length-3?r.length-1:s+2];return i.set(g6(l,c.x,f.x,p.x,h.x),g6(l,c.y,f.y,p.y,h.y)),i}copy(e){super.copy(e),this.points=[];for(let t=0,i=e.points.length;t<i;t++){let r=e.points[t];this.points.push(r.clone())}return this}toJSON(){let e=super.toJSON();e.points=[];for(let t=0,i=this.points.length;t<i;t++){let r=this.points[t];e.points.push(r.toArray())}return e}fromJSON(e){super.fromJSON(e),this.points=[];for(let t=0,i=e.points.length;t<i;t++){let r=e.points[t];this.points.push(new ut().fromArray(r))}return this}},_C=Object.freeze({__proto__:null,ArcCurve:ix,CatmullRomCurve3:rx,CubicBezierCurve:w0,CubicBezierCurve3:ax,EllipseCurve:p_,LineCurve:x0,LineCurve3:sx,QuadraticBezierCurve:T0,QuadraticBezierCurve3:M0,SplineCurve:A0}),ox=class extends mo{constructor(){super(),this.type="CurvePath",this.curves=[],this.autoClose=!1}add(e){this.curves.push(e)}closePath(){let e=this.curves[0].getPoint(0),t=this.curves[this.curves.length-1].getPoint(1);if(!e.equals(t)){let i=e.isVector2===!0?"LineCurve":"LineCurve3";this.curves.push(new _C[i](t,e))}return this}getPoint(e,t){let i=e*this.getLength(),r=this.getCurveLengths(),a=0;for(;a<r.length;){if(r[a]>=i){let s=r[a]-i,l=this.curves[a],c=l.getLength(),f=c===0?0:1-s/c;return l.getPointAt(f,t)}a++}return null}getLength(){let e=this.getCurveLengths();return e[e.length-1]}updateArcLengths(){this.needsUpdate=!0,this.cacheLengths=null,this.getCurveLengths()}getCurveLengths(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;let e=[],t=0;for(let i=0,r=this.curves.length;i<r;i++)t+=this.curves[i].getLength(),e.push(t);return this.cacheLengths=e,e}getSpacedPoints(e=40){let t=[];for(let i=0;i<=e;i++)t.push(this.getPoint(i/e));return this.autoClose&&t.push(t[0]),t}getPoints(e=12){let t=[],i;for(let r=0,a=this.curves;r<a.length;r++){let s=a[r],l=s.isEllipseCurve?e*2:s.isLineCurve||s.isLineCurve3?1:s.isSplineCurve?e*s.points.length:e,c=s.getPoints(l);for(let f=0;f<c.length;f++){let p=c[f];i&&i.equals(p)||(t.push(p),i=p)}}return this.autoClose&&t.length>1&&!t[t.length-1].equals(t[0])&&t.push(t[0]),t}copy(e){super.copy(e),this.curves=[];for(let t=0,i=e.curves.length;t<i;t++){let r=e.curves[t];this.curves.push(r.clone())}return this.autoClose=e.autoClose,this}toJSON(){let e=super.toJSON();e.autoClose=this.autoClose,e.curves=[];for(let t=0,i=this.curves.length;t<i;t++){let r=this.curves[t];e.curves.push(r.toJSON())}return e}fromJSON(e){super.fromJSON(e),this.autoClose=e.autoClose,this.curves=[];for(let t=0,i=e.curves.length;t<i;t++){let r=e.curves[t];this.curves.push(new _C[r.type]().fromJSON(r))}return this}},zh=class extends ox{constructor(e){super(),this.type="Path",this.currentPoint=new ut,e&&this.setFromPoints(e)}setFromPoints(e){this.moveTo(e[0].x,e[0].y);for(let t=1,i=e.length;t<i;t++)this.lineTo(e[t].x,e[t].y);return this}moveTo(e,t){return this.currentPoint.set(e,t),this}lineTo(e,t){let i=new x0(this.currentPoint.clone(),new ut(e,t));return this.curves.push(i),this.currentPoint.set(e,t),this}quadraticCurveTo(e,t,i,r){let a=new T0(this.currentPoint.clone(),new ut(e,t),new ut(i,r));return this.curves.push(a),this.currentPoint.set(i,r),this}bezierCurveTo(e,t,i,r,a,s){let l=new w0(this.currentPoint.clone(),new ut(e,t),new ut(i,r),new ut(a,s));return this.curves.push(l),this.currentPoint.set(a,s),this}splineThru(e){let t=[this.currentPoint.clone()].concat(e),i=new A0(t);return this.curves.push(i),this.currentPoint.copy(e[e.length-1]),this}arc(e,t,i,r,a,s){let l=this.currentPoint.x,c=this.currentPoint.y;return this.absarc(e+l,t+c,i,r,a,s),this}absarc(e,t,i,r,a,s){return this.absellipse(e,t,i,i,r,a,s),this}ellipse(e,t,i,r,a,s,l,c){let f=this.currentPoint.x,p=this.currentPoint.y;return this.absellipse(e+f,t+p,i,r,a,s,l,c),this}absellipse(e,t,i,r,a,s,l,c){let f=new p_(e,t,i,r,a,s,l,c);if(this.curves.length>0){let h=f.getPoint(0);h.equals(this.currentPoint)||this.lineTo(h.x,h.y)}this.curves.push(f);let p=f.getPoint(1);return this.currentPoint.copy(p),this}copy(e){return super.copy(e),this.currentPoint.copy(e.currentPoint),this}toJSON(){let e=super.toJSON();return e.currentPoint=this.currentPoint.toArray(),e}fromJSON(e){return super.fromJSON(e),this.currentPoint.fromArray(e.currentPoint),this}},qh=class extends zh{constructor(e){super(e),this.uuid=tl(),this.type="Shape",this.holes=[]}getPointsHoles(e){let t=[];for(let i=0,r=this.holes.length;i<r;i++)t[i]=this.holes[i].getPoints(e);return t}extractPoints(e){return{shape:this.getPoints(e),holes:this.getPointsHoles(e)}}copy(e){super.copy(e),this.holes=[];for(let t=0,i=e.holes.length;t<i;t++){let r=e.holes[t];this.holes.push(r.clone())}return this}toJSON(){let e=super.toJSON();e.uuid=this.uuid,e.holes=[];for(let t=0,i=this.holes.length;t<i;t++){let r=this.holes[t];e.holes.push(r.toJSON())}return e}fromJSON(e){super.fromJSON(e),this.uuid=e.uuid,this.holes=[];for(let t=0,i=e.holes.length;t<i;t++){let r=e.holes[t];this.holes.push(new zh().fromJSON(r))}return this}};function GQ(n,e,t=2){let i=e&&e.length,r=i?e[0]*t:n.length,a=G5(n,0,r,t,!0),s=[];if(!a||a.next===a.prev)return s;let l,c,f;if(i&&(a=YQ(n,e,a,t)),n.length>80*t){l=n[0],c=n[1];let p=l,h=c;for(let _=t;_<r;_+=t){let g=n[_],E=n[_+1];g<l&&(l=g),E<c&&(c=E),g>p&&(p=g),E>h&&(h=E)}f=Math.max(p-l,h-c),f=f!==0?32767/f:0}return lx(a,s,t,l,c,f,0),s}function G5(n,e,t,i,r){let a;if(r===sX(n,e,t,i)>0)for(let s=e;s<t;s+=i)a=v6(s/i|0,n[s],n[s+1],a);else for(let s=t-i;s>=e;s-=i)a=v6(s/i|0,n[s],n[s+1],a);return a&&C0(a,a.next)&&(cx(a),a=a.next),a}function m_(n,e){if(!n)return n;e||(e=n);let t=n,i;do if(i=!1,!t.steiner&&(C0(t,t.next)||fr(t.prev,t,t.next)===0)){if(cx(t),t=e=t.prev,t===t.next)break;i=!0}else t=t.next;while(i||t!==e);return e}function lx(n,e,t,i,r,a,s){if(!n)return;!s&&a&&eX(n,i,r,a);let l=n;for(;n.prev!==n.next;){let c=n.prev,f=n.next;if(a?jQ(n,i,r,a):WQ(n)){e.push(c.i,n.i,f.i),cx(n),n=f.next,l=f.next;continue}if(n=f,n===l){s?s===1?(n=QQ(m_(n),e),lx(n,e,t,i,r,a,2)):s===2&&XQ(n,e,t,i,r,a):lx(m_(n),e,t,i,r,a,1);break}}}function WQ(n){let e=n.prev,t=n,i=n.next;if(fr(e,t,i)>=0)return!1;let r=e.x,a=t.x,s=i.x,l=e.y,c=t.y,f=i.y,p=Math.min(r,a,s),h=Math.min(l,c,f),_=Math.max(r,a,s),g=Math.max(l,c,f),E=i.next;for(;E!==e;){if(E.x>=p&&E.x<=_&&E.y>=h&&E.y<=g&&xw(r,l,a,c,s,f,E.x,E.y)&&fr(E.prev,E,E.next)>=0)return!1;E=E.next}return!0}function jQ(n,e,t,i){let r=n.prev,a=n,s=n.next;if(fr(r,a,s)>=0)return!1;let l=r.x,c=a.x,f=s.x,p=r.y,h=a.y,_=s.y,g=Math.min(l,c,f),E=Math.min(p,h,_),x=Math.max(l,c,f),S=Math.max(p,h,_),v=tO(g,E,e,t,i),M=tO(x,S,e,t,i),O=n.prevZ,k=n.nextZ;for(;O&&O.z>=v&&k&&k.z<=M;){if(O.x>=g&&O.x<=x&&O.y>=E&&O.y<=S&&O!==r&&O!==s&&xw(l,p,c,h,f,_,O.x,O.y)&&fr(O.prev,O,O.next)>=0||(O=O.prevZ,k.x>=g&&k.x<=x&&k.y>=E&&k.y<=S&&k!==r&&k!==s&&xw(l,p,c,h,f,_,k.x,k.y)&&fr(k.prev,k,k.next)>=0))return!1;k=k.nextZ}for(;O&&O.z>=v;){if(O.x>=g&&O.x<=x&&O.y>=E&&O.y<=S&&O!==r&&O!==s&&xw(l,p,c,h,f,_,O.x,O.y)&&fr(O.prev,O,O.next)>=0)return!1;O=O.prevZ}for(;k&&k.z<=M;){if(k.x>=g&&k.x<=x&&k.y>=E&&k.y<=S&&k!==r&&k!==s&&xw(l,p,c,h,f,_,k.x,k.y)&&fr(k.prev,k,k.next)>=0)return!1;k=k.nextZ}return!0}function QQ(n,e){let t=n;do{let i=t.prev,r=t.next.next;!C0(i,r)&&j5(i,t,t.next,r)&&ux(i,r)&&ux(r,i)&&(e.push(i.i,t.i,r.i),cx(t),cx(t.next),t=n=r),t=t.next}while(t!==n);return m_(t)}function XQ(n,e,t,i,r,a){let s=n;do{let l=s.next.next;for(;l!==s.prev;){if(s.i!==l.i&&iX(s,l)){let c=Q5(s,l);s=m_(s,s.next),c=m_(c,c.next),lx(s,e,t,i,r,a,0),lx(c,e,t,i,r,a,0);return}l=l.next}s=s.next}while(s!==n)}function YQ(n,e,t,i){let r=[];for(let a=0,s=e.length;a<s;a++){let l=e[a]*i,c=a<s-1?e[a+1]*i:n.length,f=G5(n,l,c,i,!1);f===f.next&&(f.steiner=!0),r.push(nX(f))}r.sort(KQ);for(let a=0;a<r.length;a++)t=ZQ(r[a],t);return t}function KQ(n,e){let t=n.x-e.x;if(t===0&&(t=n.y-e.y,t===0)){let i=(n.next.y-n.y)/(n.next.x-n.x),r=(e.next.y-e.y)/(e.next.x-e.x);t=i-r}return t}function ZQ(n,e){let t=$Q(n,e);if(!t)return e;let i=Q5(t,n);return m_(i,i.next),m_(t,t.next)}function $Q(n,e){let t=e,i=n.x,r=n.y,a=-1/0,s;if(C0(n,t))return t;do{if(C0(n,t.next))return t.next;if(r<=t.y&&r>=t.next.y&&t.next.y!==t.y){let h=t.x+(r-t.y)*(t.next.x-t.x)/(t.next.y-t.y);if(h<=i&&h>a&&(a=h,s=t.x<t.next.x?t:t.next,h===i))return s}t=t.next}while(t!==e);if(!s)return null;let l=s,c=s.x,f=s.y,p=1/0;t=s;do{if(i>=t.x&&t.x>=c&&i!==t.x&&W5(r<f?i:a,r,c,f,r<f?a:i,r,t.x,t.y)){let h=Math.abs(r-t.y)/(i-t.x);ux(t,n)&&(h<p||h===p&&(t.x>s.x||t.x===s.x&&JQ(s,t)))&&(s=t,p=h)}t=t.next}while(t!==l);return s}function JQ(n,e){return fr(n.prev,n,e.prev)<0&&fr(e.next,n,n.next)<0}function eX(n,e,t,i){let r=n;do r.z===0&&(r.z=tO(r.x,r.y,e,t,i)),r.prevZ=r.prev,r.nextZ=r.next,r=r.next;while(r!==n);r.prevZ.nextZ=null,r.prevZ=null,tX(r)}function tX(n){let e,t=1;do{let i=n,r;n=null;let a=null;for(e=0;i;){e++;let s=i,l=0;for(let f=0;f<t&&(l++,s=s.nextZ,!!s);f++);let c=t;for(;l>0||c>0&&s;)l!==0&&(c===0||!s||i.z<=s.z)?(r=i,i=i.nextZ,l--):(r=s,s=s.nextZ,c--),a?a.nextZ=r:n=r,r.prevZ=a,a=r;i=s}a.nextZ=null,t*=2}while(e>1);return n}function tO(n,e,t,i,r){return n=(n-t)*r|0,e=(e-i)*r|0,n=(n|n<<8)&16711935,n=(n|n<<4)&252645135,n=(n|n<<2)&858993459,n=(n|n<<1)&1431655765,e=(e|e<<8)&16711935,e=(e|e<<4)&252645135,e=(e|e<<2)&858993459,e=(e|e<<1)&1431655765,n|e<<1}function nX(n){let e=n,t=n;do(e.x<t.x||e.x===t.x&&e.y<t.y)&&(t=e),e=e.next;while(e!==n);return t}function W5(n,e,t,i,r,a,s,l){return(r-s)*(e-l)>=(n-s)*(a-l)&&(n-s)*(i-l)>=(t-s)*(e-l)&&(t-s)*(a-l)>=(r-s)*(i-l)}function xw(n,e,t,i,r,a,s,l){return!(n===s&&e===l)&&W5(n,e,t,i,r,a,s,l)}function iX(n,e){return n.next.i!==e.i&&n.prev.i!==e.i&&!rX(n,e)&&(ux(n,e)&&ux(e,n)&&aX(n,e)&&(fr(n.prev,n,e.prev)||fr(n,e.prev,e))||C0(n,e)&&fr(n.prev,n,n.next)>0&&fr(e.prev,e,e.next)>0)}function fr(n,e,t){return(e.y-n.y)*(t.x-e.x)-(e.x-n.x)*(t.y-e.y)}function C0(n,e){return n.x===e.x&&n.y===e.y}function j5(n,e,t,i){let r=BA(fr(n,e,t)),a=BA(fr(n,e,i)),s=BA(fr(t,i,n)),l=BA(fr(t,i,e));return!!(r!==a&&s!==l||r===0&&qA(n,t,e)||a===0&&qA(n,i,e)||s===0&&qA(t,n,i)||l===0&&qA(t,e,i))}function qA(n,e,t){return e.x<=Math.max(n.x,t.x)&&e.x>=Math.min(n.x,t.x)&&e.y<=Math.max(n.y,t.y)&&e.y>=Math.min(n.y,t.y)}function BA(n){return n>0?1:n<0?-1:0}function rX(n,e){let t=n;do{if(t.i!==n.i&&t.next.i!==n.i&&t.i!==e.i&&t.next.i!==e.i&&j5(t,t.next,n,e))return!0;t=t.next}while(t!==n);return!1}function ux(n,e){return fr(n.prev,n,n.next)<0?fr(n,e,n.next)>=0&&fr(n,n.prev,e)>=0:fr(n,e,n.prev)<0||fr(n,n.next,e)<0}function aX(n,e){let t=n,i=!1,r=(n.x+e.x)/2,a=(n.y+e.y)/2;do t.y>a!=t.next.y>a&&t.next.y!==t.y&&r<(t.next.x-t.x)*(a-t.y)/(t.next.y-t.y)+t.x&&(i=!i),t=t.next;while(t!==n);return i}function Q5(n,e){let t=nO(n.i,n.x,n.y),i=nO(e.i,e.x,e.y),r=n.next,a=e.prev;return n.next=e,e.prev=n,t.next=r,r.prev=t,i.next=t,t.prev=i,a.next=i,i.prev=a,i}function v6(n,e,t,i){let r=nO(n,e,t);return i?(r.next=i.next,r.prev=i,i.next.prev=r,i.next=r):(r.prev=r,r.next=r),r}function cx(n){n.next.prev=n.prev,n.prev.next=n.next,n.prevZ&&(n.prevZ.nextZ=n.nextZ),n.nextZ&&(n.nextZ.prevZ=n.prevZ)}function nO(n,e,t){return{i:n,x:e,y:t,prev:null,next:null,z:0,prevZ:null,nextZ:null,steiner:!1}}function sX(n,e,t,i){let r=0;for(let a=e,s=t-i;a<t;a+=i)r+=(n[s]-n[a])*(n[a+1]+n[s+1]),s=a;return r}var iO=class{static triangulate(e,t,i=2){return GQ(e,t,i)}},Yl=class n{static area(e){let t=e.length,i=0;for(let r=t-1,a=0;a<t;r=a++)i+=e[r].x*e[a].y-e[a].x*e[r].y;return i*.5}static isClockWise(e){return n.area(e)<0}static triangulateShape(e,t){let i=[],r=[],a=[];y6(e),b6(i,e);let s=e.length;t.forEach(y6);for(let c=0;c<t.length;c++)r.push(s),s+=t[c].length,b6(i,t[c]);let l=iO.triangulate(i,r);for(let c=0;c<l.length;c+=3)a.push(l.slice(c,c+3));return a}};function y6(n){let e=n.length;e>2&&n[e-1].equals(n[0])&&n.pop()}function b6(n,e){for(let t=0;t<e.length;t++)n.push(e[t].x),n.push(e[t].y)}var fx=class n extends Nn{constructor(e=new qh([new ut(.5,.5),new ut(-.5,.5),new ut(-.5,-.5),new ut(.5,-.5)]),t={}){super(),this.type="ExtrudeGeometry",this.parameters={shapes:e,options:t},e=Array.isArray(e)?e:[e];let i=this,r=[],a=[];for(let l=0,c=e.length;l<c;l++){let f=e[l];s(f)}this.setAttribute("position",new an(r,3)),this.setAttribute("uv",new an(a,2)),this.computeVertexNormals();function s(l){let c=[],f=t.curveSegments!==void 0?t.curveSegments:12,p=t.steps!==void 0?t.steps:1,h=t.depth!==void 0?t.depth:1,_=t.bevelEnabled!==void 0?t.bevelEnabled:!0,g=t.bevelThickness!==void 0?t.bevelThickness:.2,E=t.bevelSize!==void 0?t.bevelSize:g-.1,x=t.bevelOffset!==void 0?t.bevelOffset:0,S=t.bevelSegments!==void 0?t.bevelSegments:3,v=t.extrudePath,M=t.UVGenerator!==void 0?t.UVGenerator:oX,O,k=!1,q,G,Q,H;if(v){O=v.getSpacedPoints(p),k=!0,_=!1;let lt=v.isCatmullRomCurve3?v.closed:!1;q=v.computeFrenetFrames(p,lt),G=new ve,Q=new ve,H=new ve}_||(S=0,g=0,E=0,x=0);let Z=l.extractPoints(f),te=Z.shape,j=Z.holes;if(!Yl.isClockWise(te)){te=te.reverse();for(let lt=0,_e=j.length;lt<_e;lt++){let Pe=j[lt];Yl.isClockWise(Pe)&&(j[lt]=Pe.reverse())}}function ke(lt){let Pe=10000000000000001e-36,dt=lt[0];for(let vt=1;vt<=lt.length;vt++){let Qt=vt%lt.length,Ht=lt[Qt],qt=Ht.x-dt.x,en=Ht.y-dt.y,Le=qt*qt+en*en,fn=Math.max(Math.abs(Ht.x),Math.abs(Ht.y),Math.abs(dt.x),Math.abs(dt.y)),kt=Pe*fn*fn;if(Le<=kt){lt.splice(Qt,1),vt--;continue}dt=Ht}}ke(te),j.forEach(ke);let Me=j.length,ze=te;for(let lt=0;lt<Me;lt++){let _e=j[lt];te=te.concat(_e)}function Ne(lt,_e,Pe){return _e||cn("ExtrudeGeometry: vec does not exist"),lt.clone().addScaledVector(_e,Pe)}let Ve=te.length;function Je(lt,_e,Pe){let dt,vt,Qt,Ht=lt.x-_e.x,qt=lt.y-_e.y,en=Pe.x-lt.x,Le=Pe.y-lt.y,fn=Ht*Ht+qt*qt,kt=Ht*Le-qt*en;if(Math.abs(kt)>Number.EPSILON){let ge=Math.sqrt(fn),L=Math.sqrt(en*en+Le*Le),N=_e.x-qt/ge,U=_e.y+Ht/ge,ee=Pe.x-Le/L,ne=Pe.y+en/L,X=((ee-N)*Le-(ne-U)*en)/(Ht*Le-qt*en);dt=N+Ht*X-lt.x,vt=U+qt*X-lt.y;let ie=dt*dt+vt*vt;if(ie<=2)return new ut(dt,vt);Qt=Math.sqrt(ie/2)}else{let ge=!1;Ht>Number.EPSILON?en>Number.EPSILON&&(ge=!0):Ht<-Number.EPSILON?en<-Number.EPSILON&&(ge=!0):Math.sign(qt)===Math.sign(Le)&&(ge=!0),ge?(dt=-qt,vt=Ht,Qt=Math.sqrt(fn)):(dt=Ht,vt=qt,Qt=Math.sqrt(fn/2))}return new ut(dt/Qt,vt/Qt)}let Qe=[];for(let lt=0,_e=ze.length,Pe=_e-1,dt=lt+1;lt<_e;lt++,Pe++,dt++)Pe===_e&&(Pe=0),dt===_e&&(dt=0),Qe[lt]=Je(ze[lt],ze[Pe],ze[dt]);let st=[],We,gt=Qe.concat();for(let lt=0,_e=Me;lt<_e;lt++){let Pe=j[lt];We=[];for(let dt=0,vt=Pe.length,Qt=vt-1,Ht=dt+1;dt<vt;dt++,Qt++,Ht++)Qt===vt&&(Qt=0),Ht===vt&&(Ht=0),We[dt]=Je(Pe[dt],Pe[Qt],Pe[Ht]);st.push(We),gt=gt.concat(We)}let Et;if(S===0)Et=Yl.triangulateShape(ze,j);else{let lt=[],_e=[];for(let Pe=0;Pe<S;Pe++){let dt=Pe/S,vt=g*Math.cos(dt*Math.PI/2),Qt=E*Math.sin(dt*Math.PI/2)+x;for(let Ht=0,qt=ze.length;Ht<qt;Ht++){let en=Ne(ze[Ht],Qe[Ht],Qt);yt(en.x,en.y,-vt),dt===0&&lt.push(en)}for(let Ht=0,qt=Me;Ht<qt;Ht++){let en=j[Ht];We=st[Ht];let Le=[];for(let fn=0,kt=en.length;fn<kt;fn++){let ge=Ne(en[fn],We[fn],Qt);yt(ge.x,ge.y,-vt),dt===0&&Le.push(ge)}dt===0&&_e.push(Le)}}Et=Yl.triangulateShape(lt,_e)}let jt=Et.length,zt=E+x;for(let lt=0;lt<Ve;lt++){let _e=_?Ne(te[lt],gt[lt],zt):te[lt];k?(Q.copy(q.normals[0]).multiplyScalar(_e.x),G.copy(q.binormals[0]).multiplyScalar(_e.y),H.copy(O[0]).add(Q).add(G),yt(H.x,H.y,H.z)):yt(_e.x,_e.y,0)}for(let lt=1;lt<=p;lt++)for(let _e=0;_e<Ve;_e++){let Pe=_?Ne(te[_e],gt[_e],zt):te[_e];k?(Q.copy(q.normals[lt]).multiplyScalar(Pe.x),G.copy(q.binormals[lt]).multiplyScalar(Pe.y),H.copy(O[lt]).add(Q).add(G),yt(H.x,H.y,H.z)):yt(Pe.x,Pe.y,h/p*lt)}for(let lt=S-1;lt>=0;lt--){let _e=lt/S,Pe=g*Math.cos(_e*Math.PI/2),dt=E*Math.sin(_e*Math.PI/2)+x;for(let vt=0,Qt=ze.length;vt<Qt;vt++){let Ht=Ne(ze[vt],Qe[vt],dt);yt(Ht.x,Ht.y,h+Pe)}for(let vt=0,Qt=j.length;vt<Qt;vt++){let Ht=j[vt];We=st[vt];for(let qt=0,en=Ht.length;qt<en;qt++){let Le=Ne(Ht[qt],We[qt],dt);k?yt(Le.x,Le.y+O[p-1].y,O[p-1].x+Pe):yt(Le.x,Le.y,h+Pe)}}}Mt(),Xe();function Mt(){let lt=r.length/3;if(_){let _e=0,Pe=Ve*_e;for(let dt=0;dt<jt;dt++){let vt=Et[dt];Wt(vt[2]+Pe,vt[1]+Pe,vt[0]+Pe)}_e=p+S*2,Pe=Ve*_e;for(let dt=0;dt<jt;dt++){let vt=Et[dt];Wt(vt[0]+Pe,vt[1]+Pe,vt[2]+Pe)}}else{for(let _e=0;_e<jt;_e++){let Pe=Et[_e];Wt(Pe[2],Pe[1],Pe[0])}for(let _e=0;_e<jt;_e++){let Pe=Et[_e];Wt(Pe[0]+Ve*p,Pe[1]+Ve*p,Pe[2]+Ve*p)}}i.addGroup(lt,r.length/3-lt,0)}function Xe(){let lt=r.length/3,_e=0;et(ze,_e),_e+=ze.length;for(let Pe=0,dt=j.length;Pe<dt;Pe++){let vt=j[Pe];et(vt,_e),_e+=vt.length}i.addGroup(lt,r.length/3-lt,1)}function et(lt,_e){let Pe=lt.length;for(;--Pe>=0;){let dt=Pe,vt=Pe-1;vt<0&&(vt=lt.length-1);for(let Qt=0,Ht=p+S*2;Qt<Ht;Qt++){let qt=Ve*Qt,en=Ve*(Qt+1),Le=_e+dt+qt,fn=_e+vt+qt,kt=_e+vt+en,ge=_e+dt+en;Lt(Le,fn,kt,ge)}}}function yt(lt,_e,Pe){c.push(lt),c.push(_e),c.push(Pe)}function Wt(lt,_e,Pe){sn(lt),sn(_e),sn(Pe);let dt=r.length/3,vt=M.generateTopUV(i,r,dt-3,dt-2,dt-1);pn(vt[0]),pn(vt[1]),pn(vt[2])}function Lt(lt,_e,Pe,dt){sn(lt),sn(_e),sn(dt),sn(_e),sn(Pe),sn(dt);let vt=r.length/3,Qt=M.generateSideWallUV(i,r,vt-6,vt-3,vt-2,vt-1);pn(Qt[0]),pn(Qt[1]),pn(Qt[3]),pn(Qt[1]),pn(Qt[2]),pn(Qt[3])}function sn(lt){r.push(c[lt*3+0]),r.push(c[lt*3+1]),r.push(c[lt*3+2])}function pn(lt){a.push(lt.x),a.push(lt.y)}}}copy(e){return super.copy(e),this.parameters=Object.assign({},e.parameters),this}toJSON(){let e=super.toJSON(),t=this.parameters.shapes,i=this.parameters.options;return lX(t,i,e)}static fromJSON(e,t){let i=[];for(let a=0,s=e.shapes.length;a<s;a++){let l=t[e.shapes[a]];i.push(l)}let r=e.options.extrudePath;return r!==void 0&&(e.options.extrudePath=new _C[r.type]().fromJSON(r)),new n(i,e.options)}},oX={generateTopUV:function(n,e,t,i,r){let a=e[t*3],s=e[t*3+1],l=e[i*3],c=e[i*3+1],f=e[r*3],p=e[r*3+1];return[new ut(a,s),new ut(l,c),new ut(f,p)]},generateSideWallUV:function(n,e,t,i,r,a){let s=e[t*3],l=e[t*3+1],c=e[t*3+2],f=e[i*3],p=e[i*3+1],h=e[i*3+2],_=e[r*3],g=e[r*3+1],E=e[r*3+2],x=e[a*3],S=e[a*3+1],v=e[a*3+2];return Math.abs(l-p)<Math.abs(s-f)?[new ut(s,1-c),new ut(f,1-h),new ut(_,1-E),new ut(x,1-v)]:[new ut(l,1-c),new ut(p,1-h),new ut(g,1-E),new ut(S,1-v)]}};function lX(n,e,t){if(t.shapes=[],Array.isArray(n))for(let i=0,r=n.length;i<r;i++){let a=n[i];t.shapes.push(a.uuid)}else t.shapes.push(n.uuid);return t.options=Object.assign({},e),e.extrudePath!==void 0&&(t.options.extrudePath=e.extrudePath.toJSON()),t}var dx=class n extends Qf{constructor(e=1,t=0){let i=(1+Math.sqrt(5))/2,r=[-1,i,0,1,i,0,-1,-i,0,1,-i,0,0,-1,i,0,1,i,0,-1,-i,0,1,-i,i,0,-1,i,0,1,-i,0,-1,-i,0,1],a=[0,11,5,0,5,1,0,1,7,0,7,10,0,10,11,1,5,9,5,11,4,11,10,2,10,7,6,7,1,8,3,9,4,3,4,2,3,2,6,3,6,8,3,8,9,4,9,5,2,4,11,6,2,10,8,6,7,9,8,1];super(r,a,e,t),this.type="IcosahedronGeometry",this.parameters={radius:e,detail:t}}static fromJSON(e){return new n(e.radius,e.detail)}},hx=class n extends Nn{constructor(e=[new ut(0,-.5),new ut(.5,0),new ut(0,.5)],t=12,i=0,r=Math.PI*2){super(),this.type="LatheGeometry",this.parameters={points:e,segments:t,phiStart:i,phiLength:r},t=Math.floor(t),r=Tn(r,0,Math.PI*2);let a=[],s=[],l=[],c=[],f=[],p=1/t,h=new ve,_=new ut,g=new ve,E=new ve,x=new ve,S=0,v=0;for(let M=0;M<=e.length-1;M++)switch(M){case 0:S=e[M+1].x-e[M].x,v=e[M+1].y-e[M].y,g.x=v*1,g.y=-S,g.z=v*0,x.copy(g),g.normalize(),c.push(g.x,g.y,g.z);break;case e.length-1:c.push(x.x,x.y,x.z);break;default:S=e[M+1].x-e[M].x,v=e[M+1].y-e[M].y,g.x=v*1,g.y=-S,g.z=v*0,E.copy(g),g.x+=x.x,g.y+=x.y,g.z+=x.z,g.normalize(),c.push(g.x,g.y,g.z),x.copy(E)}for(let M=0;M<=t;M++){let O=i+M*p*r,k=Math.sin(O),q=Math.cos(O);for(let G=0;G<=e.length-1;G++){h.x=e[G].x*k,h.y=e[G].y,h.z=e[G].x*q,s.push(h.x,h.y,h.z),_.x=M/t,_.y=G/(e.length-1),l.push(_.x,_.y);let Q=c[3*G+0]*k,H=c[3*G+1],Z=c[3*G+0]*q;f.push(Q,H,Z)}}for(let M=0;M<t;M++)for(let O=0;O<e.length-1;O++){let k=O+M*e.length,q=k,G=k+e.length,Q=k+e.length+1,H=k+1;a.push(q,G,H),a.push(Q,H,G)}this.setIndex(a),this.setAttribute("position",new an(s,3)),this.setAttribute("uv",new an(l,2)),this.setAttribute("normal",new an(f,3))}copy(e){return super.copy(e),this.parameters=Object.assign({},e.parameters),this}static fromJSON(e){return new n(e.points,e.segments,e.phiStart,e.phiLength)}},R0=class n extends Qf{constructor(e=1,t=0){let i=[1,0,0,-1,0,0,0,1,0,0,-1,0,0,0,1,0,0,-1],r=[0,2,4,0,4,3,0,3,5,0,5,2,1,2,5,1,5,3,1,3,4,1,4,2];super(i,r,e,t),this.type="OctahedronGeometry",this.parameters={radius:e,detail:t}}static fromJSON(e){return new n(e.radius,e.detail)}},__=class n extends Nn{constructor(e=1,t=1,i=1,r=1){super(),this.type="PlaneGeometry",this.parameters={width:e,height:t,widthSegments:i,heightSegments:r};let a=e/2,s=t/2,l=Math.floor(i),c=Math.floor(r),f=l+1,p=c+1,h=e/l,_=t/c,g=[],E=[],x=[],S=[];for(let v=0;v<p;v++){let M=v*_-s;for(let O=0;O<f;O++){let k=O*h-a;E.push(k,-M,0),x.push(0,0,1),S.push(O/l),S.push(1-v/c)}}for(let v=0;v<c;v++)for(let M=0;M<l;M++){let O=M+f*v,k=M+f*(v+1),q=M+1+f*(v+1),G=M+1+f*v;g.push(O,k,G),g.push(k,q,G)}this.setIndex(g),this.setAttribute("position",new an(E,3)),this.setAttribute("normal",new an(x,3)),this.setAttribute("uv",new an(S,2))}copy(e){return super.copy(e),this.parameters=Object.assign({},e.parameters),this}static fromJSON(e){return new n(e.width,e.height,e.widthSegments,e.heightSegments)}},px=class n extends Nn{constructor(e=.5,t=1,i=32,r=1,a=0,s=Math.PI*2){super(),this.type="RingGeometry",this.parameters={innerRadius:e,outerRadius:t,thetaSegments:i,phiSegments:r,thetaStart:a,thetaLength:s},i=Math.max(3,i),r=Math.max(1,r);let l=[],c=[],f=[],p=[],h=e,_=(t-e)/r,g=new ve,E=new ut;for(let x=0;x<=r;x++){for(let S=0;S<=i;S++){let v=a+S/i*s;g.x=h*Math.cos(v),g.y=h*Math.sin(v),c.push(g.x,g.y,g.z),f.push(0,0,1),E.x=(g.x/t+1)/2,E.y=(g.y/t+1)/2,p.push(E.x,E.y)}h+=_}for(let x=0;x<r;x++){let S=x*(i+1);for(let v=0;v<i;v++){let M=v+S,O=M,k=M+i+1,q=M+i+2,G=M+1;l.push(O,k,G),l.push(k,q,G)}}this.setIndex(l),this.setAttribute("position",new an(c,3)),this.setAttribute("normal",new an(f,3)),this.setAttribute("uv",new an(p,2))}copy(e){return super.copy(e),this.parameters=Object.assign({},e.parameters),this}static fromJSON(e){return new n(e.innerRadius,e.outerRadius,e.thetaSegments,e.phiSegments,e.thetaStart,e.thetaLength)}},mx=class n extends Nn{constructor(e=new qh([new ut(0,.5),new ut(-.5,-.5),new ut(.5,-.5)]),t=12){super(),this.type="ShapeGeometry",this.parameters={shapes:e,curveSegments:t};let i=[],r=[],a=[],s=[],l=0,c=0;if(Array.isArray(e)===!1)f(e);else for(let p=0;p<e.length;p++)f(e[p]),this.addGroup(l,c,p),l+=c,c=0;this.setIndex(i),this.setAttribute("position",new an(r,3)),this.setAttribute("normal",new an(a,3)),this.setAttribute("uv",new an(s,2));function f(p){let h=r.length/3,_=p.extractPoints(t),g=_.shape,E=_.holes;Yl.isClockWise(g)===!1&&(g=g.reverse());for(let S=0,v=E.length;S<v;S++){let M=E[S];Yl.isClockWise(M)===!0&&(E[S]=M.reverse())}let x=Yl.triangulateShape(g,E);for(let S=0,v=E.length;S<v;S++){let M=E[S];g=g.concat(M)}for(let S=0,v=g.length;S<v;S++){let M=g[S];r.push(M.x,M.y,0),a.push(0,0,1),s.push(M.x,M.y)}for(let S=0,v=x.length;S<v;S++){let M=x[S],O=M[0]+h,k=M[1]+h,q=M[2]+h;i.push(O,k,q),c+=3}}}copy(e){return super.copy(e),this.parameters=Object.assign({},e.parameters),this}toJSON(){let e=super.toJSON(),t=this.parameters.shapes;return uX(t,e)}static fromJSON(e,t){let i=[];for(let r=0,a=e.shapes.length;r<a;r++){let s=t[e.shapes[r]];i.push(s)}return new n(i,e.curveSegments)}};function uX(n,e){if(e.shapes=[],Array.isArray(n))for(let t=0,i=n.length;t<i;t++){let r=n[t];e.shapes.push(r.uuid)}else e.shapes.push(n.uuid);return e}var I0=class n extends Nn{constructor(e=1,t=32,i=16,r=0,a=Math.PI*2,s=0,l=Math.PI){super(),this.type="SphereGeometry",this.parameters={radius:e,widthSegments:t,heightSegments:i,phiStart:r,phiLength:a,thetaStart:s,thetaLength:l},t=Math.max(3,Math.floor(t)),i=Math.max(2,Math.floor(i));let c=Math.min(s+l,Math.PI),f=0,p=[],h=new ve,_=new ve,g=[],E=[],x=[],S=[];for(let v=0;v<=i;v++){let M=[],O=v/i,k=s+O*l,q=e*Math.cos(k),G=Math.sqrt(e*e-q*q),Q=0;v===0&&s===0?Q=.5/t:v===i&&c===Math.PI&&(Q=-.5/t);for(let H=0;H<=t;H++){let Z=H/t,te=r+Z*a;h.x=-G*Math.cos(te),h.y=q,h.z=G*Math.sin(te),E.push(h.x,h.y,h.z),_.copy(h).normalize(),x.push(_.x,_.y,_.z),S.push(Z+Q,1-O),M.push(f++)}p.push(M)}for(let v=0;v<i;v++)for(let M=0;M<t;M++){let O=p[v][M+1],k=p[v][M],q=p[v+1][M],G=p[v+1][M+1];(v!==0||s>0)&&g.push(O,k,G),(v!==i-1||c<Math.PI)&&g.push(k,q,G)}this.setIndex(g),this.setAttribute("position",new an(E,3)),this.setAttribute("normal",new an(x,3)),this.setAttribute("uv",new an(S,2))}copy(e){return super.copy(e),this.parameters=Object.assign({},e.parameters),this}static fromJSON(e){return new n(e.radius,e.widthSegments,e.heightSegments,e.phiStart,e.phiLength,e.thetaStart,e.thetaLength)}},_x=class n extends Qf{constructor(e=1,t=0){let i=[1,1,1,-1,-1,1,-1,1,-1,1,-1,-1],r=[2,1,0,0,3,2,1,3,0,2,3,1];super(i,r,e,t),this.type="TetrahedronGeometry",this.parameters={radius:e,detail:t}}static fromJSON(e){return new n(e.radius,e.detail)}},gx=class n extends Nn{constructor(e=1,t=.4,i=12,r=48,a=Math.PI*2,s=0,l=Math.PI*2){super(),this.type="TorusGeometry",this.parameters={radius:e,tube:t,radialSegments:i,tubularSegments:r,arc:a,thetaStart:s,thetaLength:l},i=Math.floor(i),r=Math.floor(r);let c=[],f=[],p=[],h=[],_=new ve,g=new ve,E=new ve;for(let x=0;x<=i;x++){let S=s+x/i*l;for(let v=0;v<=r;v++){let M=v/r*a;g.x=(e+t*Math.cos(S))*Math.cos(M),g.y=(e+t*Math.cos(S))*Math.sin(M),g.z=t*Math.sin(S),f.push(g.x,g.y,g.z),_.x=e*Math.cos(M),_.y=e*Math.sin(M),E.subVectors(g,_).normalize(),p.push(E.x,E.y,E.z),h.push(v/r),h.push(x/i)}}for(let x=1;x<=i;x++)for(let S=1;S<=r;S++){let v=(r+1)*x+S-1,M=(r+1)*(x-1)+S-1,O=(r+1)*(x-1)+S,k=(r+1)*x+S;c.push(v,M,k),c.push(M,O,k)}this.setIndex(c),this.setAttribute("position",new an(f,3)),this.setAttribute("normal",new an(p,3)),this.setAttribute("uv",new an(h,2))}copy(e){return super.copy(e),this.parameters=Object.assign({},e.parameters),this}static fromJSON(e){return new n(e.radius,e.tube,e.radialSegments,e.tubularSegments,e.arc,e.thetaStart,e.thetaLength)}},vx=class n extends Nn{constructor(e=1,t=.4,i=64,r=8,a=2,s=3){super(),this.type="TorusKnotGeometry",this.parameters={radius:e,tube:t,tubularSegments:i,radialSegments:r,p:a,q:s},i=Math.floor(i),r=Math.floor(r);let l=[],c=[],f=[],p=[],h=new ve,_=new ve,g=new ve,E=new ve,x=new ve,S=new ve,v=new ve;for(let O=0;O<=i;++O){let k=O/i*a*Math.PI*2;M(k,a,s,e,g),M(k+.01,a,s,e,E),S.subVectors(E,g),v.addVectors(E,g),x.crossVectors(S,v),v.crossVectors(x,S),x.normalize(),v.normalize();for(let q=0;q<=r;++q){let G=q/r*Math.PI*2,Q=-t*Math.cos(G),H=t*Math.sin(G);h.x=g.x+(Q*v.x+H*x.x),h.y=g.y+(Q*v.y+H*x.y),h.z=g.z+(Q*v.z+H*x.z),c.push(h.x,h.y,h.z),_.subVectors(h,g).normalize(),f.push(_.x,_.y,_.z),p.push(O/i),p.push(q/r)}}for(let O=1;O<=i;O++)for(let k=1;k<=r;k++){let q=(r+1)*(O-1)+(k-1),G=(r+1)*O+(k-1),Q=(r+1)*O+k,H=(r+1)*(O-1)+k;l.push(q,G,H),l.push(G,Q,H)}this.setIndex(l),this.setAttribute("position",new an(c,3)),this.setAttribute("normal",new an(f,3)),this.setAttribute("uv",new an(p,2));function M(O,k,q,G,Q){let H=Math.cos(O),Z=Math.sin(O),te=q/k*O,j=Math.cos(te);Q.x=G*(2+j)*.5*H,Q.y=G*(2+j)*Z*.5,Q.z=G*Math.sin(te)*.5}}copy(e){return super.copy(e),this.parameters=Object.assign({},e.parameters),this}static fromJSON(e){return new n(e.radius,e.tube,e.tubularSegments,e.radialSegments,e.p,e.q)}},yx=class n extends Nn{constructor(e=new M0(new ve(-1,-1,0),new ve(-1,1,0),new ve(1,1,0)),t=64,i=1,r=8,a=!1){super(),this.type="TubeGeometry",this.parameters={path:e,tubularSegments:t,radius:i,radialSegments:r,closed:a};let s=e.computeFrenetFrames(t,a);this.tangents=s.tangents,this.normals=s.normals,this.binormals=s.binormals;let l=new ve,c=new ve,f=new ut,p=new ve,h=[],_=[],g=[],E=[];x(),this.setIndex(E),this.setAttribute("position",new an(h,3)),this.setAttribute("normal",new an(_,3)),this.setAttribute("uv",new an(g,2));function x(){for(let O=0;O<t;O++)S(O);S(a===!1?t:0),M(),v()}function S(O){p=e.getPointAt(O/t,p);let k=s.normals[O],q=s.binormals[O];for(let G=0;G<=r;G++){let Q=G/r*Math.PI*2,H=Math.sin(Q),Z=-Math.cos(Q);c.x=Z*k.x+H*q.x,c.y=Z*k.y+H*q.y,c.z=Z*k.z+H*q.z,c.normalize(),_.push(c.x,c.y,c.z),l.x=p.x+i*c.x,l.y=p.y+i*c.y,l.z=p.z+i*c.z,h.push(l.x,l.y,l.z)}}function v(){for(let O=1;O<=t;O++)for(let k=1;k<=r;k++){let q=(r+1)*(O-1)+(k-1),G=(r+1)*O+(k-1),Q=(r+1)*O+k,H=(r+1)*(O-1)+k;E.push(q,G,H),E.push(G,Q,H)}}function M(){for(let O=0;O<=t;O++)for(let k=0;k<=r;k++)f.x=O/t,f.y=k/r,g.push(f.x,f.y)}}copy(e){return super.copy(e),this.parameters=Object.assign({},e.parameters),this}toJSON(){let e=super.toJSON();return e.path=this.parameters.path.toJSON(),e}static fromJSON(e){return new n(new _C[e.path.type]().fromJSON(e.path),e.tubularSegments,e.radius,e.radialSegments,e.closed)}},bx=class extends Nn{constructor(e=null){if(super(),this.type="WireframeGeometry",this.parameters={geometry:e},e!==null){let t=[],i=new Set,r=new ve,a=new ve;if(e.index!==null){let s=e.attributes.position,l=e.index,c=e.groups;c.length===0&&(c=[{start:0,count:l.count,materialIndex:0}]);for(let f=0,p=c.length;f<p;++f){let h=c[f],_=h.start,g=h.count;for(let E=_,x=_+g;E<x;E+=3)for(let S=0;S<3;S++){let v=l.getX(E+S),M=l.getX(E+(S+1)%3);r.fromBufferAttribute(s,v),a.fromBufferAttribute(s,M),S6(r,a,i)===!0&&(t.push(r.x,r.y,r.z),t.push(a.x,a.y,a.z))}}}else{let s=e.attributes.position;for(let l=0,c=s.count/3;l<c;l++)for(let f=0;f<3;f++){let p=3*l+f,h=3*l+(f+1)%3;r.fromBufferAttribute(s,p),a.fromBufferAttribute(s,h),S6(r,a,i)===!0&&(t.push(r.x,r.y,r.z),t.push(a.x,a.y,a.z))}}this.setAttribute("position",new an(t,3))}}copy(e){return super.copy(e),this.parameters=Object.assign({},e.parameters),this}};function S6(n,e,t){let i=`${n.x},${n.y},${n.z}-${e.x},${e.y},${e.z}`,r=`${e.x},${e.y},${e.z}-${n.x},${n.y},${n.z}`;return t.has(i)===!0||t.has(r)===!0?!1:(t.add(i),t.add(r),!0)}var E6=Object.freeze({__proto__:null,BoxGeometry:Bc,CapsuleGeometry:Jw,CircleGeometry:ex,ConeGeometry:E0,CylinderGeometry:S0,DodecahedronGeometry:tx,EdgesGeometry:nx,ExtrudeGeometry:fx,IcosahedronGeometry:dx,LatheGeometry:hx,OctahedronGeometry:R0,PlaneGeometry:__,PolyhedronGeometry:Qf,RingGeometry:px,ShapeGeometry:mx,SphereGeometry:I0,TetrahedronGeometry:_x,TorusGeometry:gx,TorusKnotGeometry:vx,TubeGeometry:yx,WireframeGeometry:bx}),Sx=class extends Zr{constructor(e){super(),this.isShadowMaterial=!0,this.type="ShadowMaterial",this.color=new Vt(0),this.transparent=!0,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.fog=e.fog,this}};function C_(n){let e={};for(let t in n){e[t]={};for(let i in n[t]){let r=n[t][i];if(w6(r))r.isRenderTargetTexture?(Ft("UniformsUtils: Textures of render targets cannot be cloned via cloneUniforms() or mergeUniforms()."),e[t][i]=null):e[t][i]=r.clone();else if(Array.isArray(r))if(w6(r[0])){let a=[];for(let s=0,l=r.length;s<l;s++)a[s]=r[s].clone();e[t][i]=a}else e[t][i]=r.slice();else e[t][i]=r}}return e}function os(n){let e={};for(let t=0;t<n.length;t++){let i=C_(n[t]);for(let r in i)e[r]=i[r]}return e}function w6(n){return n&&(n.isColor||n.isMatrix3||n.isMatrix4||n.isVector2||n.isVector3||n.isVector4||n.isTexture||n.isQuaternion)}function cX(n){let e=[];for(let t=0;t<n.length;t++)e.push(n[t].clone());return e}function KO(n){let e=n.getRenderTarget();return e===null?n.outputColorSpace:e.isXRRenderTarget===!0?e.texture.colorSpace:Gn.workingColorSpace}var ZO={clone:C_,merge:os},fX=`void main() {
	gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );
}`,dX=`void main() {
	gl_FragColor = vec4( 1.0, 0.0, 0.0, 1.0 );
}`,Ga=class extends Zr{constructor(e){super(),this.isShaderMaterial=!0,this.type="ShaderMaterial",this.defines={},this.uniforms={},this.uniformsGroups=[],this.vertexShader=fX,this.fragmentShader=dX,this.linewidth=1,this.wireframe=!1,this.wireframeLinewidth=1,this.fog=!1,this.lights=!1,this.clipping=!1,this.forceSinglePass=!0,this.extensions={clipCullDistance:!1,multiDraw:!1},this.defaultAttributeValues={color:[1,1,1],uv:[0,0],uv1:[0,0]},this.index0AttributeName=void 0,this.uniformsNeedUpdate=!1,this.glslVersion=null,e!==void 0&&this.setValues(e)}copy(e){return super.copy(e),this.fragmentShader=e.fragmentShader,this.vertexShader=e.vertexShader,this.uniforms=C_(e.uniforms),this.uniformsGroups=cX(e.uniformsGroups),this.defines=Object.assign({},e.defines),this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.fog=e.fog,this.lights=e.lights,this.clipping=e.clipping,this.extensions=Object.assign({},e.extensions),this.glslVersion=e.glslVersion,this.defaultAttributeValues=Object.assign({},e.defaultAttributeValues),this.index0AttributeName=e.index0AttributeName,this.uniformsNeedUpdate=e.uniformsNeedUpdate,this}toJSON(e){let t=super.toJSON(e);t.glslVersion=this.glslVersion,t.uniforms={};for(let r in this.uniforms){let s=this.uniforms[r].value;s&&s.isTexture?t.uniforms[r]={type:"t",value:s.toJSON(e).uuid}:s&&s.isColor?t.uniforms[r]={type:"c",value:s.getHex()}:s&&s.isVector2?t.uniforms[r]={type:"v2",value:s.toArray()}:s&&s.isVector3?t.uniforms[r]={type:"v3",value:s.toArray()}:s&&s.isVector4?t.uniforms[r]={type:"v4",value:s.toArray()}:s&&s.isMatrix3?t.uniforms[r]={type:"m3",value:s.toArray()}:s&&s.isMatrix4?t.uniforms[r]={type:"m4",value:s.toArray()}:t.uniforms[r]={value:s}}Object.keys(this.defines).length>0&&(t.defines=this.defines),t.vertexShader=this.vertexShader,t.fragmentShader=this.fragmentShader,t.lights=this.lights,t.clipping=this.clipping;let i={};for(let r in this.extensions)this.extensions[r]===!0&&(i[r]=!0);return Object.keys(i).length>0&&(t.extensions=i),t}fromJSON(e,t){if(super.fromJSON(e,t),e.uniforms!==void 0)for(let i in e.uniforms){let r=e.uniforms[i];switch(this.uniforms[i]={},r.type){case"t":this.uniforms[i].value=t[r.value]||null;break;case"c":this.uniforms[i].value=new Vt().setHex(r.value);break;case"v2":this.uniforms[i].value=new ut().fromArray(r.value);break;case"v3":this.uniforms[i].value=new ve().fromArray(r.value);break;case"v4":this.uniforms[i].value=new Ni().fromArray(r.value);break;case"m3":this.uniforms[i].value=new In().fromArray(r.value);break;case"m4":this.uniforms[i].value=new Cn().fromArray(r.value);break;default:this.uniforms[i].value=r.value}}if(e.defines!==void 0&&(this.defines=e.defines),e.vertexShader!==void 0&&(this.vertexShader=e.vertexShader),e.fragmentShader!==void 0&&(this.fragmentShader=e.fragmentShader),e.glslVersion!==void 0&&(this.glslVersion=e.glslVersion),e.extensions!==void 0)for(let i in e.extensions)this.extensions[i]=e.extensions[i];return e.lights!==void 0&&(this.lights=e.lights),e.clipping!==void 0&&(this.clipping=e.clipping),this}},L0=class extends Ga{constructor(e){super(e),this.isRawShaderMaterial=!0,this.type="RawShaderMaterial"}},Bh=class extends Zr{constructor(e){super(),this.isMeshStandardMaterial=!0,this.type="MeshStandardMaterial",this.defines={STANDARD:""},this.color=new Vt(16777215),this.roughness=1,this.metalness=0,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Vt(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=Wc,this.normalScale=new ut(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.roughnessMap=null,this.metalnessMap=null,this.alphaMap=null,this.envMap=null,this.envMapRotation=new Kl,this.envMapIntensity=1,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.defines={STANDARD:""},this.color.copy(e.color),this.roughness=e.roughness,this.metalness=e.metalness,this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.roughnessMap=e.roughnessMap,this.metalnessMap=e.metalnessMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.envMapRotation.copy(e.envMapRotation),this.envMapIntensity=e.envMapIntensity,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.flatShading=e.flatShading,this.fog=e.fog,this}},Ex=class extends Bh{constructor(e){super(),this.isMeshPhysicalMaterial=!0,this.defines={STANDARD:"",PHYSICAL:""},this.type="MeshPhysicalMaterial",this.anisotropyRotation=0,this.anisotropyMap=null,this.clearcoatMap=null,this.clearcoatRoughness=0,this.clearcoatRoughnessMap=null,this.clearcoatNormalScale=new ut(1,1),this.clearcoatNormalMap=null,this.ior=1.5,Object.defineProperty(this,"reflectivity",{get:function(){return Tn(2.5*(this.ior-1)/(this.ior+1),0,1)},set:function(t){this.ior=(1+.4*t)/(1-.4*t)}}),this.iridescenceMap=null,this.iridescenceIOR=1.3,this.iridescenceThicknessRange=[100,400],this.iridescenceThicknessMap=null,this.sheenColor=new Vt(0),this.sheenColorMap=null,this.sheenRoughness=1,this.sheenRoughnessMap=null,this.transmissionMap=null,this.thickness=0,this.thicknessMap=null,this.attenuationDistance=1/0,this.attenuationColor=new Vt(1,1,1),this.specularIntensity=1,this.specularIntensityMap=null,this.specularColor=new Vt(1,1,1),this.specularColorMap=null,this._anisotropy=0,this._clearcoat=0,this._dispersion=0,this._iridescence=0,this._retroreflectivity=0,this._sheen=0,this._transmission=0,this.setValues(e)}get anisotropy(){return this._anisotropy}set anisotropy(e){this._anisotropy>0!=e>0&&this.version++,this._anisotropy=e}get clearcoat(){return this._clearcoat}set clearcoat(e){this._clearcoat>0!=e>0&&this.version++,this._clearcoat=e}get iridescence(){return this._iridescence}set iridescence(e){this._iridescence>0!=e>0&&this.version++,this._iridescence=e}get dispersion(){return this._dispersion}set dispersion(e){this._dispersion>0!=e>0&&this.version++,this._dispersion=e}get retroreflectivity(){return this._retroreflectivity}set retroreflectivity(e){this._retroreflectivity>0!=e>0&&this.version++,this._retroreflectivity=e}get sheen(){return this._sheen}set sheen(e){this._sheen>0!=e>0&&this.version++,this._sheen=e}get transmission(){return this._transmission}set transmission(e){this._transmission>0!=e>0&&this.version++,this._transmission=e}copy(e){return super.copy(e),this.defines={STANDARD:"",PHYSICAL:""},this.anisotropy=e.anisotropy,this.anisotropyRotation=e.anisotropyRotation,this.anisotropyMap=e.anisotropyMap,this.clearcoat=e.clearcoat,this.clearcoatMap=e.clearcoatMap,this.clearcoatRoughness=e.clearcoatRoughness,this.clearcoatRoughnessMap=e.clearcoatRoughnessMap,this.clearcoatNormalMap=e.clearcoatNormalMap,this.clearcoatNormalScale.copy(e.clearcoatNormalScale),this.dispersion=e.dispersion,this.ior=e.ior,this.iridescence=e.iridescence,this.iridescenceMap=e.iridescenceMap,this.iridescenceIOR=e.iridescenceIOR,this.iridescenceThicknessRange=[...e.iridescenceThicknessRange],this.iridescenceThicknessMap=e.iridescenceThicknessMap,this.retroreflectivity=e.retroreflectivity,this.sheen=e.sheen,this.sheenColor.copy(e.sheenColor),this.sheenColorMap=e.sheenColorMap,this.sheenRoughness=e.sheenRoughness,this.sheenRoughnessMap=e.sheenRoughnessMap,this.transmission=e.transmission,this.transmissionMap=e.transmissionMap,this.thickness=e.thickness,this.thicknessMap=e.thicknessMap,this.attenuationDistance=e.attenuationDistance,this.attenuationColor.copy(e.attenuationColor),this.specularIntensity=e.specularIntensity,this.specularIntensityMap=e.specularIntensityMap,this.specularColor.copy(e.specularColor),this.specularColorMap=e.specularColorMap,this}},wx=class extends Zr{constructor(e){super(),this.isMeshPhongMaterial=!0,this.type="MeshPhongMaterial",this.color=new Vt(16777215),this.specular=new Vt(1118481),this.shininess=30,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Vt(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=Wc,this.normalScale=new ut(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.envMapRotation=new Kl,this.combine=G0,this.reflectivity=1,this.envMapIntensity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.specular.copy(e.specular),this.shininess=e.shininess,this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.envMapRotation.copy(e.envMapRotation),this.combine=e.combine,this.reflectivity=e.reflectivity,this.envMapIntensity=e.envMapIntensity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.flatShading=e.flatShading,this.fog=e.fog,this}},xx=class extends Zr{constructor(e){super(),this.isMeshToonMaterial=!0,this.defines={TOON:""},this.type="MeshToonMaterial",this.color=new Vt(16777215),this.map=null,this.gradientMap=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Vt(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=Wc,this.normalScale=new ut(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.gradientMap=e.gradientMap,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.alphaMap=e.alphaMap,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.fog=e.fog,this}},Tx=class extends Zr{constructor(e){super(),this.isMeshNormalMaterial=!0,this.type="MeshNormalMaterial",this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=Wc,this.normalScale=new ut(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.flatShading=!1,this.setValues(e)}copy(e){return super.copy(e),this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.flatShading=e.flatShading,this}},Mx=class extends Zr{constructor(e){super(),this.isMeshLambertMaterial=!0,this.type="MeshLambertMaterial",this.color=new Vt(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Vt(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=Wc,this.normalScale=new ut(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.envMapRotation=new Kl,this.combine=G0,this.reflectivity=1,this.envMapIntensity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.envMapRotation.copy(e.envMapRotation),this.combine=e.combine,this.reflectivity=e.reflectivity,this.envMapIntensity=e.envMapIntensity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.flatShading=e.flatShading,this.fog=e.fog,this}},N0=class extends Zr{constructor(e){super(),this.isMeshDepthMaterial=!0,this.type="MeshDepthMaterial",this.depthPacking=UO,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.setValues(e)}copy(e){return super.copy(e),this.depthPacking=e.depthPacking,this.map=e.map,this.alphaMap=e.alphaMap,this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this}},k0=class extends Zr{constructor(e){super(),this.isMeshDistanceMaterial=!0,this.type="MeshDistanceMaterial",this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.setValues(e)}copy(e){return super.copy(e),this.map=e.map,this.alphaMap=e.alphaMap,this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this}},Ax=class extends Zr{constructor(e){super(),this.isMeshMatcapMaterial=!0,this.defines={MATCAP:""},this.type="MeshMatcapMaterial",this.color=new Vt(16777215),this.matcap=null,this.map=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=Wc,this.normalScale=new ut(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.wireframe=!1,this.wireframeLinewidth=1,this.flatShading=!1,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.defines={MATCAP:""},this.color.copy(e.color),this.matcap=e.matcap,this.map=e.map,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.alphaMap=e.alphaMap,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.flatShading=e.flatShading,this.fog=e.fog,this}},Cx=class extends xa{constructor(e){super(),this.isLineDashedMaterial=!0,this.type="LineDashedMaterial",this.scale=1,this.dashSize=3,this.gapSize=1,this.setValues(e)}copy(e){return super.copy(e),this.scale=e.scale,this.dashSize=e.dashSize,this.gapSize=e.gapSize,this}};function Tu(n,e){return!n||n.constructor===e?n:typeof e.BYTES_PER_ELEMENT=="number"?new e(n):Array.prototype.slice.call(n)}function Iw(n){return n!==void 0&&n.inTangents!==void 0&&n.outTangents!==void 0}function X5(n){function e(r,a){return n[r]-n[a]}let t=n.length,i=new Array(t);for(let r=0;r!==t;++r)i[r]=r;return i.sort(e),i}function rO(n,e,t){let i=n.length,r=new n.constructor(i);for(let a=0,s=0;s!==i;++a){let l=t[a]*e;for(let c=0;c!==e;++c)r[s++]=n[l+c]}return r}function Y5(n,e,t,i){let r=1,a=n[0];for(;a!==void 0&&a[i]===void 0;)a=n[r++];if(a===void 0)return;let s=a[i];if(s!==void 0)if(Array.isArray(s))do s=a[i],s!==void 0&&(e.push(a.time),t.push(...s)),a=n[r++];while(a!==void 0);else if(s.toArray!==void 0)do s=a[i],s!==void 0&&(e.push(a.time),s.toArray(t,t.length)),a=n[r++];while(a!==void 0);else do s=a[i],s!==void 0&&(e.push(a.time),t.push(s)),a=n[r++];while(a!==void 0)}function hX(n,e,t,i,r=30){let a=n.clone();a.name=e;let s=[];for(let c=0;c<a.tracks.length;++c){let f=a.tracks[c],p=f.getValueSize(),h=[],_=[];for(let g=0;g<f.times.length;++g){let E=f.times[g]*r;if(!(E<t||E>=i)){h.push(f.times[g]);for(let x=0;x<p;++x)_.push(f.values[g*p+x])}}h.length!==0&&(f.times=Tu(h,f.times.constructor),f.values=Tu(_,f.values.constructor),s.push(f))}a.tracks=s;let l=1/0;for(let c=0;c<a.tracks.length;++c)l>a.tracks[c].times[0]&&(l=a.tracks[c].times[0]);for(let c=0;c<a.tracks.length;++c)a.tracks[c].shift(-1*l);return a.resetDuration(),a}function pX(n,e=0,t=n,i=30){i<=0&&(i=30);let r=t.tracks.length,a=e/i;for(let s=0;s<r;++s){let l=t.tracks[s],c=l.ValueTypeName;if(c==="bool"||c==="string")continue;let f=n.tracks.find(function(v){return v.name===l.name&&v.ValueTypeName===c});if(f===void 0)continue;let p=0,h=l.getValueSize();l.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline&&(p=h/3);let _=0,g=f.getValueSize();f.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline&&(_=g/3);let E=l.times.length-1,x;if(a<=l.times[0]){let v=p,M=h-p;x=l.values.slice(v,M)}else if(a>=l.times[E]){let v=E*h+p,M=v+h-p;x=l.values.slice(v,M)}else{let v=l.createInterpolant(),M=p,O=h-p;v.evaluate(a),x=v.resultBuffer.slice(M,O)}c==="quaternion"&&new Lr().fromArray(x).normalize().conjugate().toArray(x);let S=f.times.length;for(let v=0;v<S;++v){let M=v*g+_;if(c==="quaternion")Lr.multiplyQuaternionsFlat(f.values,M,x,0,f.values,M);else{let O=g-_*2;for(let k=0;k<O;++k)f.values[M+k]-=x[k]}}}return n.blendMode=S2,n}var gC=class{static convertArray(e,t){return Tu(e,t)}static isTypedArray(e){return F5(e)}static hasTangents(e){return Iw(e)}static getKeyframeOrder(e){return X5(e)}static sortedArray(e,t,i){return rO(e,t,i)}static flattenJSON(e,t,i,r){Y5(e,t,i,r)}static subclip(e,t,i,r,a=30){return hX(e,t,i,r,a)}static makeClipAdditive(e,t=0,i=e,r=30){return pX(e,t,i,r)}},Xf=class{constructor(e,t,i,r){this.parameterPositions=e,this._cachedIndex=0,this.resultBuffer=r!==void 0?r:new t.constructor(i),this.sampleValues=t,this.valueSize=i,this.settings=null,this.DefaultSettings_={}}evaluate(e){let t=this.parameterPositions,i=this._cachedIndex,r=t[i],a=t[i-1];e:{t:{let s;n:{i:if(!(e<r)){for(let l=i+2;;){if(r===void 0){if(e<a)break i;return i=t.length,this._cachedIndex=i,this.copySampleValue_(i-1)}if(i===l)break;if(a=r,r=t[++i],e<r)break t}s=t.length;break n}if(!(e>=a)){let l=t[1];e<l&&(i=2,a=l);for(let c=i-2;;){if(a===void 0)return this._cachedIndex=0,this.copySampleValue_(0);if(i===c)break;if(r=a,a=t[--i-1],e>=a)break t}s=i,i=0;break n}break e}for(;i<s;){let l=i+s>>>1;e<t[l]?s=l:i=l+1}if(r=t[i],a=t[i-1],a===void 0)return this._cachedIndex=0,this.copySampleValue_(0);if(r===void 0)return i=t.length,this._cachedIndex=i,this.copySampleValue_(i-1)}this._cachedIndex=i,this.intervalChanged_(i,a,r)}return this.interpolate_(i,a,e,r)}getSettings_(){return this.settings||this.DefaultSettings_}copySampleValue_(e){let t=this.resultBuffer,i=this.sampleValues,r=this.valueSize,a=e*r;for(let s=0;s!==r;++s)t[s]=i[a+s];return t}interpolate_(){throw new Error("THREE.Interpolant: Call to abstract method.")}intervalChanged_(){}},Rx=class extends Xf{constructor(e,t,i,r){super(e,t,i,r),this._weightPrev=-0,this._offsetPrev=-0,this._weightNext=-0,this._offsetNext=-0,this.DefaultSettings_={endingStart:Nh,endingEnd:Nh}}intervalChanged_(e,t,i){let r=this.parameterPositions,a=e-2,s=e+1,l=r[a],c=r[s];if(l===void 0)switch(this.getSettings_().endingStart){case kh:a=e,l=2*t-i;break;case u0:a=r.length-2,l=t+r[a]-r[a+1];break;default:a=e,l=i}if(c===void 0)switch(this.getSettings_().endingEnd){case kh:s=e,c=2*i-t;break;case u0:s=1,c=i+r[1]-r[0];break;default:s=e-1,c=t}let f=(i-t)*.5,p=this.valueSize;this._weightPrev=f/(t-l),this._weightNext=f/(c-i),this._offsetPrev=a*p,this._offsetNext=s*p}interpolate_(e,t,i,r){let a=this.resultBuffer,s=this.sampleValues,l=this.valueSize,c=e*l,f=c-l,p=this._offsetPrev,h=this._offsetNext,_=this._weightPrev,g=this._weightNext,E=(i-t)/(r-t),x=E*E,S=x*E,v=-_*S+2*_*x-_*E,M=(1+_)*S+(-1.5-2*_)*x+(-.5+_)*E+1,O=(-1-g)*S+(1.5+g)*x+.5*E,k=g*S-g*x;for(let q=0;q!==l;++q)a[q]=v*s[p+q]+M*s[f+q]+O*s[c+q]+k*s[h+q];return a}},O0=class extends Xf{constructor(e,t,i,r){super(e,t,i,r)}interpolate_(e,t,i,r){let a=this.resultBuffer,s=this.sampleValues,l=this.valueSize,c=e*l,f=c-l,p=(i-t)/(r-t),h=1-p;for(let _=0;_!==l;++_)a[_]=s[f+_]*h+s[c+_]*p;return a}},Ix=class extends Xf{constructor(e,t,i,r){super(e,t,i,r)}interpolate_(e){return this.copySampleValue_(e-1)}},Lx=class extends Xf{interpolate_(e,t,i,r){let a=this.resultBuffer,s=this.sampleValues,l=this.valueSize,c=e*l,f=c-l,p=this.inTangents,h=this.outTangents;if(!p||!h){let E=(i-t)/(r-t),x=1-E;for(let S=0;S!==l;++S)a[S]=s[f+S]*x+s[c+S]*E;return a}let _=l*2,g=e-1;for(let E=0;E!==l;++E){let x=s[f+E],S=s[c+E],v=g*_+E*2,M=h[v],O=h[v+1],k=e*_+E*2,q=p[k],G=p[k+1],Q=_X(i,t,M,q,r);a[E]=K5(Q,x,O,G,S)}return a}};function K5(n,e,t,i,r){let a=1-n;return a*a*a*e+3*a*a*n*t+3*a*n*n*i+n*n*n*r}function mX(n,e,t,i,r){let a=1-n;return 3*a*a*(t-e)+6*a*n*(i-t)+3*n*n*(r-i)}function _X(n,e,t,i,r){let a=(n-e)/(r-e);for(let s=0;s<8;s++){let l=K5(a,e,t,i,r)-n;if(Math.abs(l)<1e-10)break;let c=mX(a,e,t,i,r);if(Math.abs(c)<1e-10)break;a=Math.max(0,Math.min(1,a-l/c))}return a}var Cs=class{constructor(e,t,i,r){if(e===void 0)throw new Error("THREE.KeyframeTrack: track name is undefined");if(t===void 0||t.length===0)throw new Error("THREE.KeyframeTrack: no keyframes in track named "+e);this.name=e,this.times=Tu(t,this.TimeBufferType),this.values=Tu(i,this.ValueBufferType),this.setInterpolation(r||this.DefaultInterpolation)}static toJSON(e){let t=e.constructor,i;if(t.toJSON!==this.toJSON)i=t.toJSON(e);else{i={name:e.name,times:Tu(e.times,Array),values:Tu(e.values,Array)};let r=e.getInterpolation();r!==e.DefaultInterpolation&&(i.interpolation=r),Iw(e.settings)&&(i.settings={inTangents:Tu(e.settings.inTangents,Array),outTangents:Tu(e.settings.outTangents,Array)})}return i.type=e.ValueTypeName,i}InterpolantFactoryMethodDiscrete(e){return new Ix(this.times,this.values,this.getValueSize(),e)}InterpolantFactoryMethodLinear(e){return new O0(this.times,this.values,this.getValueSize(),e)}InterpolantFactoryMethodSmooth(e){return new Rx(this.times,this.values,this.getValueSize(),e)}InterpolantFactoryMethodBezier(e){let t=new Lx(this.times,this.values,this.getValueSize(),e);return this.settings&&(t.inTangents=this.settings.inTangents,t.outTangents=this.settings.outTangents),t}setInterpolation(e){let t;switch(e){case l0:t=this.InterpolantFactoryMethodDiscrete;break;case Uw:t=this.InterpolantFactoryMethodLinear;break;case Tw:t=this.InterpolantFactoryMethodSmooth;break;case $A:t=this.InterpolantFactoryMethodBezier;break}if(t===void 0){let i="unsupported interpolation for "+this.ValueTypeName+" keyframe track named "+this.name;if(this.createInterpolant===void 0)if(e!==this.DefaultInterpolation)this.setInterpolation(this.DefaultInterpolation);else throw new Error(i);return Ft("KeyframeTrack:",i),this}return this.createInterpolant=t,this}getInterpolation(){switch(this.createInterpolant){case this.InterpolantFactoryMethodDiscrete:return l0;case this.InterpolantFactoryMethodLinear:return Uw;case this.InterpolantFactoryMethodSmooth:return Tw;case this.InterpolantFactoryMethodBezier:return $A}}getValueSize(){return this.values.length/this.times.length}shift(e){if(e!==0){let t=this.times;for(let i=0,r=t.length;i!==r;++i)t[i]+=e}return this}scale(e){if(e!==1){let t=this.times;for(let i=0,r=t.length;i!==r;++i)t[i]*=e;Iw(this.settings)&&(x6(this.settings.inTangents,e),x6(this.settings.outTangents,e))}return this}trim(e,t){let i=this.times,r=i.length,a=0,s=r-1;for(;a!==r&&i[a]<e;)++a;for(;s!==-1&&i[s]>t;)--s;if(++s,a!==0||s!==r){a>=s&&(s=Math.max(s,1),a=s-1);let l=this.getValueSize();this.times=i.slice(a,s),this.values=this.values.slice(a*l,s*l)}return this}validate(){let e=!0,t=this.getValueSize();t-Math.floor(t)!==0&&(cn("KeyframeTrack: Invalid value size in track.",this),e=!1);let i=this.times,r=this.values,a=i.length;a===0&&(cn("KeyframeTrack: Track is empty.",this),e=!1);let s=null;for(let l=0;l!==a;l++){let c=i[l];if(typeof c=="number"&&isNaN(c)){cn("KeyframeTrack: Time is not a valid number.",this,l,c),e=!1;break}if(s!==null&&s>c){cn("KeyframeTrack: Out of order keys.",this,l,c,s),e=!1;break}s=c}if(r!==void 0&&F5(r))for(let l=0,c=r.length;l!==c;++l){let f=r[l];if(isNaN(f)){cn("KeyframeTrack: Value is not a valid number.",this,l,f),e=!1;break}}return e}optimize(){let e=this.times.slice(),t=this.values.slice(),i=this.getValueSize(),r=this.getInterpolation()===Tw,a=e.length-1,s=1;for(let l=1;l<a;++l){let c=!1,f=e[l],p=e[l+1];if(f!==p&&(l!==1||f!==e[0]))if(r)c=!0;else{let h=l*i,_=h-i,g=h+i;for(let E=0;E!==i;++E){let x=t[h+E];if(x!==t[_+E]||x!==t[g+E]){c=!0;break}}}if(c){if(l!==s){e[s]=e[l];let h=l*i,_=s*i;for(let g=0;g!==i;++g)t[_+g]=t[h+g]}++s}}if(a>0){e[s]=e[a];for(let l=a*i,c=s*i,f=0;f!==i;++f)t[c+f]=t[l+f];++s}return s!==e.length?(this.times=e.slice(0,s),this.values=t.slice(0,s*i)):(this.times=e,this.values=t),this}clone(){let e=this.times.slice(),t=this.values.slice(),i=this.constructor,r=new i(this.name,e,t);return r.createInterpolant=this.createInterpolant,Iw(this.settings)&&(r.settings={inTangents:this.settings.inTangents.slice(),outTangents:this.settings.outTangents.slice()}),r}};function x6(n,e){for(let t=0,i=n.length;t!==i;t+=2)n[t]*=e}Cs.prototype.ValueTypeName="";Cs.prototype.TimeBufferType=Float32Array;Cs.prototype.ValueBufferType=Float32Array;Cs.prototype.DefaultInterpolation=Uw;var Hc=class extends Cs{constructor(e,t,i){super(e,t,i)}};Hc.prototype.ValueTypeName="bool";Hc.prototype.ValueBufferType=Array;Hc.prototype.DefaultInterpolation=l0;Hc.prototype.InterpolantFactoryMethodLinear=void 0;Hc.prototype.InterpolantFactoryMethodSmooth=void 0;var D0=class extends Cs{constructor(e,t,i,r){super(e,t,i,r)}};D0.prototype.ValueTypeName="color";var g_=class extends Cs{constructor(e,t,i,r){super(e,t,i,r)}};g_.prototype.ValueTypeName="number";var Nx=class extends Xf{constructor(e,t,i,r){super(e,t,i,r)}interpolate_(e,t,i,r){let a=this.resultBuffer,s=this.sampleValues,l=this.valueSize,c=(i-t)/(r-t),f=e*l;for(let p=f+l;f!==p;f+=4)Lr.slerpFlat(a,0,s,f-l,s,f,c);return a}},v_=class extends Cs{constructor(e,t,i,r){super(e,t,i,r)}InterpolantFactoryMethodLinear(e){return new Nx(this.times,this.values,this.getValueSize(),e)}};v_.prototype.ValueTypeName="quaternion";v_.prototype.InterpolantFactoryMethodSmooth=void 0;var Vc=class extends Cs{constructor(e,t,i){super(e,t,i)}};Vc.prototype.ValueTypeName="string";Vc.prototype.ValueBufferType=Array;Vc.prototype.DefaultInterpolation=l0;Vc.prototype.InterpolantFactoryMethodLinear=void 0;Vc.prototype.InterpolantFactoryMethodSmooth=void 0;var F0=class extends Cs{constructor(e,t,i,r){super(e,t,i,r)}};F0.prototype.ValueTypeName="vector";var Hh=class{constructor(e="",t=-1,i=[],r=k1){this.name=e,this.tracks=i,this.duration=t,this.blendMode=r,this.uuid=tl(),this.userData={},this.duration<0&&this.resetDuration()}static parse(e){let t=[],i=e.tracks,r=1/(e.fps||1);for(let s=0,l=i.length;s!==l;++s)t.push(vX(i[s]).scale(r));let a=new this(e.name,e.duration,t,e.blendMode);return a.uuid=e.uuid,a.userData=JSON.parse(e.userData||"{}"),a}static toJSON(e){let t=[],i=e.tracks,r={name:e.name,duration:e.duration,tracks:t,uuid:e.uuid,blendMode:e.blendMode,userData:JSON.stringify(e.userData)};for(let a=0,s=i.length;a!==s;++a)t.push(Cs.toJSON(i[a]));return r}static CreateFromMorphTargetSequence(e,t,i,r){let a=t.length,s=[];for(let l=0;l<a;l++){let c=[],f=[];c.push((l+a-1)%a,l,(l+1)%a),f.push(0,1,0);let p=X5(c);c=rO(c,1,p),f=rO(f,1,p),!r&&c[0]===0&&(c.push(a),f.push(f[0])),s.push(new g_(".morphTargetInfluences["+t[l].name+"]",c,f).scale(1/i))}return new this(e,-1,s)}static findByName(e,t){let i=e;if(!Array.isArray(e)){let r=e;i=r.geometry&&r.geometry.animations||r.animations}for(let r=0;r<i.length;r++)if(i[r].name===t)return i[r];return null}static CreateClipsFromMorphTargetSequences(e,t,i){let r={},a=/^([\w-]*?)([\d]+)$/;for(let l=0,c=e.length;l<c;l++){let f=e[l],p=f.name.match(a);if(p&&p.length>1){let h=p[1],_=r[h];_||(r[h]=_=[]),_.push(f)}}let s=[];for(let l in r)s.push(this.CreateFromMorphTargetSequence(l,r[l],t,i));return s}resetDuration(){let e=this.tracks,t=0;for(let i=0,r=e.length;i!==r;++i){let a=this.tracks[i];t=Math.max(t,a.times[a.times.length-1])}return this.duration=t,this}trim(){for(let e=0;e<this.tracks.length;e++)this.tracks[e].trim(0,this.duration);return this}validate(){let e=!0;for(let t=0;t<this.tracks.length;t++)e=e&&this.tracks[t].validate();return e}optimize(){for(let e=0;e<this.tracks.length;e++)this.tracks[e].optimize();return this}clone(){let e=[];for(let i=0;i<this.tracks.length;i++)e.push(this.tracks[i].clone());let t=new this.constructor(this.name,this.duration,e,this.blendMode);return t.userData=JSON.parse(JSON.stringify(this.userData)),t}toJSON(){return this.constructor.toJSON(this)}};function gX(n){switch(n.toLowerCase()){case"scalar":case"double":case"float":case"number":case"integer":return g_;case"vector":case"vector2":case"vector3":case"vector4":return F0;case"color":return D0;case"quaternion":return v_;case"bool":case"boolean":return Hc;case"string":return Vc}throw new Error("THREE.KeyframeTrack: Unsupported typeName: "+n)}function vX(n){if(n.type===void 0)throw new Error("THREE.KeyframeTrack: track type undefined, can not parse");let e=gX(n.type);if(n.times===void 0){let i=[],r=[];Y5(n.keys,i,r,"value"),n.times=i,n.values=r}let t;return e.parse!==void 0?t=e.parse(n):t=new e(n.name,n.times,n.values,n.interpolation),Iw(n.settings)&&(t.settings={inTangents:Tu(n.settings.inTangents,Float32Array),outTangents:Tu(n.settings.outTangents,Float32Array)}),t}var Au={enabled:!1,files:{},add:function(n,e){this.enabled!==!1&&(T6(n)||(this.files[n]=e))},get:function(n){if(this.enabled!==!1&&!T6(n))return this.files[n]},remove:function(n){delete this.files[n]},clear:function(){this.files={}}};function T6(n){try{let e=n.slice(n.indexOf(":")+1);return new URL(e).protocol==="blob:"}catch{return!1}}var P0=class{constructor(e,t,i){let r=this,a=!1,s=0,l=0,c,f=[];this.onStart=void 0,this.onLoad=e,this.onProgress=t,this.onError=i,this._abortController=null,this.itemStart=function(p){l++,a===!1&&r.onStart!==void 0&&r.onStart(p,s,l),a=!0},this.itemEnd=function(p){s++,r.onProgress!==void 0&&r.onProgress(p,s,l),s===l&&(a=!1,r.onLoad!==void 0&&r.onLoad())},this.itemError=function(p){r.onError!==void 0&&r.onError(p)},this.resolveURL=function(p){return p=p.normalize("NFC"),c?c(p):p},this.setURLModifier=function(p){return c=p,this},this.addHandler=function(p,h){return f.push(p,h),this},this.removeHandler=function(p){let h=f.indexOf(p);return h!==-1&&f.splice(h,2),this},this.getHandler=function(p){for(let h=0,_=f.length;h<_;h+=2){let g=f[h],E=f[h+1];if(g.global&&(g.lastIndex=0),g.test(p))return E}return null},this.abort=function(){return this.abortController.abort(),this._abortController=null,this}}get abortController(){return this._abortController||(this._abortController=new AbortController),this._abortController}},$O=new P0,Wa=class{constructor(e){this.manager=e!==void 0?e:$O,this.crossOrigin="anonymous",this.withCredentials=!1,this.path="",this.resourcePath="",this.requestHeader={},typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}load(){}loadAsync(e,t){let i=this;return new Promise(function(r,a){i.load(e,r,t,a)})}parse(){}setCrossOrigin(e){return this.crossOrigin=e,this}setWithCredentials(e){return this.withCredentials=e,this}setPath(e){return this.path=e,this}setResourcePath(e){return this.resourcePath=e,this}setRequestHeader(e){return this.requestHeader=e,this}abort(){return this}};Wa.DEFAULT_MATERIAL_NAME="__DEFAULT";var Bf={},aO=class extends Error{constructor(e,t){super(e),this.response=t}},Zl=class extends Wa{constructor(e){super(e),this.mimeType="",this.responseType="",this._abortController=new AbortController}load(e,t,i,r){e===void 0&&(e=""),this.path!==void 0&&(e=this.path+e),e=this.manager.resolveURL(e);let a=Au.get(`file:${e}`);if(a!==void 0){this.manager.itemStart(e),setTimeout(()=>{t&&t(a),this.manager.itemEnd(e)},0);return}if(Bf[e]!==void 0){Bf[e].push({onLoad:t,onProgress:i,onError:r});return}Bf[e]=[],Bf[e].push({onLoad:t,onProgress:i,onError:r});let s=new Request(e,{headers:new Headers(this.requestHeader),credentials:this.withCredentials?"include":"same-origin",signal:typeof AbortSignal.any=="function"?AbortSignal.any([this._abortController.signal,this.manager.abortController.signal]):this._abortController.signal}),l=this.mimeType,c=this.responseType;fetch(s).then(f=>{if(f.status===200||f.status===0){if(f.status===0&&Ft("FileLoader: HTTP Status 0 received."),typeof ReadableStream>"u"||f.body===void 0||f.body.getReader===void 0)return f;let p=Bf[e],h=f.body.getReader(),_=f.headers.get("X-File-Size")||f.headers.get("Content-Length"),g=_?parseInt(_):0,E=g!==0,x=0,S=new ReadableStream({start(v){M();function M(){h.read().then(({done:O,value:k})=>{if(O)v.close();else{x+=k.byteLength;let q=new ProgressEvent("progress",{lengthComputable:E,loaded:x,total:g});for(let G=0,Q=p.length;G<Q;G++){let H=p[G];H.onProgress&&H.onProgress(q)}v.enqueue(k),M()}},O=>{v.error(O)})}}});return new Response(S)}else throw new aO(`fetch for "${f.url}" responded with ${f.status}: ${f.statusText}`,f)}).then(f=>{switch(c){case"arraybuffer":return f.arrayBuffer();case"blob":return f.blob();case"document":return f.text().then(p=>new DOMParser().parseFromString(p,l));case"json":return f.json();default:if(l==="")return f.text();{let h=/charset="?([^;"\s]*)"?/i.exec(l),_=h&&h[1]?h[1].toLowerCase():void 0,g=new TextDecoder(_);return f.arrayBuffer().then(E=>g.decode(E))}}}).then(f=>{Au.add(`file:${e}`,f);let p=Bf[e];delete Bf[e];for(let h=0,_=p.length;h<_;h++){let g=p[h];g.onLoad&&g.onLoad(f)}}).catch(f=>{let p=Bf[e];if(p===void 0)throw this.manager.itemError(e),f;delete Bf[e];for(let h=0,_=p.length;h<_;h++){let g=p[h];g.onError&&g.onError(f)}this.manager.itemError(e)}).finally(()=>{this.manager.itemEnd(e)}),this.manager.itemStart(e)}setResponseType(e){return this.responseType=e,this}setMimeType(e){return this.mimeType=e,this}abort(){return this._abortController.abort(),this._abortController=new AbortController,this}},vC=class extends Wa{constructor(e){super(e)}load(e,t,i,r){let a=this,s=new Zl(this.manager);s.setPath(this.path),s.setRequestHeader(this.requestHeader),s.setWithCredentials(this.withCredentials),s.load(e,function(l){try{t(a.parse(JSON.parse(l)))}catch(c){r?r(c):cn(c),a.manager.itemError(e)}},i,r)}parse(e){let t=[];for(let i=0;i<e.length;i++){let r=Hh.parse(e[i]);t.push(r)}return t}},yC=class extends Wa{constructor(e){super(e)}load(e,t,i,r){let a=this,s=[],l=new h_,c=new Zl(this.manager);c.setPath(this.path),c.setResponseType("arraybuffer"),c.setRequestHeader(this.requestHeader),c.setWithCredentials(a.withCredentials);let f=0;function p(h){c.load(e[h],function(_){let g=a.parse(_,!0);s[h]={width:g.width,height:g.height,format:g.format,mipmaps:g.mipmaps},f+=1,f===6&&(g.mipmapCount===1&&(l.minFilter=Ji),l.image=s,l.format=g.format,l.needsUpdate=!0,t&&t(l))},i,r)}if(Array.isArray(e))for(let h=0,_=e.length;h<_;++h)p(h);else c.load(e,function(h){let _=a.parse(h,!0);if(_.isCubemap){let g=_.mipmaps.length/_.mipmapCount;for(let E=0;E<g;E++){s[E]={mipmaps:[]};for(let x=0;x<_.mipmapCount;x++)s[E].mipmaps.push(_.mipmaps[E*_.mipmapCount+x]),s[E].format=_.format,s[E].width=_.width,s[E].height=_.height}l.image=s}else l.image.width=_.width,l.image.height=_.height,l.mipmaps=_.mipmaps;_.mipmapCount===1&&(l.minFilter=Ji),l.format=_.format,l.needsUpdate=!0,t&&t(l)},i,r);return l}},Jy=new WeakMap,Vh=class extends Wa{constructor(e){super(e)}load(e,t,i,r){this.path!==void 0&&(e=this.path+e),e=this.manager.resolveURL(e);let a=this,s=Au.get(`image:${e}`);if(s!==void 0){if(s.complete===!0)a.manager.itemStart(e),setTimeout(function(){t&&t(s),a.manager.itemEnd(e)},0);else{let h=Jy.get(s);h===void 0&&(h=[],Jy.set(s,h)),h.push({onLoad:t,onError:r})}return s}let l=f0("img");function c(){p(),t&&t(this);let h=Jy.get(this)||[];for(let _=0;_<h.length;_++){let g=h[_];g.onLoad&&g.onLoad(this)}Jy.delete(this),a.manager.itemEnd(e)}function f(h){p(),r&&r(h),Au.remove(`image:${e}`);let _=Jy.get(this)||[];for(let g=0;g<_.length;g++){let E=_[g];E.onError&&E.onError(h)}Jy.delete(this),a.manager.itemError(e),a.manager.itemEnd(e)}function p(){l.removeEventListener("load",c,!1),l.removeEventListener("error",f,!1)}return l.addEventListener("load",c,!1),l.addEventListener("error",f,!1),e.slice(0,5)!=="data:"&&this.crossOrigin!==void 0&&(l.crossOrigin=this.crossOrigin),Au.add(`image:${e}`,l),a.manager.itemStart(e),l.src=e,l}},bC=class extends Wa{constructor(e){super(e)}load(e,t,i,r){let a=new Uh;a.colorSpace=Yr;let s=new Vh(this.manager);s.setCrossOrigin(this.crossOrigin),s.setPath(this.path);let l=0;function c(f){s.load(e[f],function(p){a.images[f]=p,l++,l===6&&(a.needsUpdate=!0,t&&t(a))},void 0,r)}for(let f=0;f<e.length;++f)c(f);return a}},SC=class extends Wa{constructor(e){super(e)}load(e,t,i,r){let a=this,s=new As,l=new Zl(this.manager);return l.setResponseType("arraybuffer"),l.setRequestHeader(this.requestHeader),l.setPath(this.path),l.setWithCredentials(a.withCredentials),l.load(e,function(c){let f;try{f=a.parse(c)}catch(p){r!==void 0?r(p):cn(p);return}a._applyTexData(s,f),t&&t(s,f)},i,r),s}createDataTexture(e){let t=new As;return this._applyTexData(t,this.parse(e)),t}_applyTexData(e,t){t.image!==void 0?e.image=t.image:t.data!==void 0&&(e.image.width=t.width,e.image.height=t.height,e.image.data=t.data),e.wrapS=t.wrapS!==void 0?t.wrapS:Ms,e.wrapT=t.wrapT!==void 0?t.wrapT:Ms,e.magFilter=t.magFilter!==void 0?t.magFilter:Ji,e.minFilter=t.minFilter!==void 0?t.minFilter:Ji,e.anisotropy=t.anisotropy!==void 0?t.anisotropy:1,t.colorSpace!==void 0&&(e.colorSpace=t.colorSpace),t.flipY!==void 0&&(e.flipY=t.flipY),t.format!==void 0&&(e.format=t.format),t.type!==void 0&&(e.type=t.type),t.mipmaps!==void 0&&(e.mipmaps=t.mipmaps,e.minFilter=Fu),t.mipmapCount===1&&(e.minFilter=Ji),t.generateMipmaps!==void 0&&(e.generateMipmaps=t.generateMipmaps),e.needsUpdate=!0}},EC=class extends Wa{constructor(e){super(e)}load(e,t,i,r){let a=new Sr,s=new Vh(this.manager);return s.setCrossOrigin(this.crossOrigin),s.setPath(this.path),s.load(e,function(l){a.image=l,a.needsUpdate=!0,t!==void 0&&t(a)},i,r),a}},Nu=class extends gi{constructor(e,t=1){super(),this.isLight=!0,this.type="Light",this.color=new Vt(e),this.intensity=t}copy(e,t){return super.copy(e,t),this.color.copy(e.color),this.intensity=e.intensity,this}toJSON(e){let t=super.toJSON(e);return t.object.color=this.color.getHex(),t.object.intensity=this.intensity,t}},kx=class extends Nu{constructor(e,t,i){super(e,i),this.isHemisphereLight=!0,this.type="HemisphereLight",this.position.copy(gi.DEFAULT_UP),this.updateMatrix(),this.groundColor=new Vt(t)}copy(e,t){return super.copy(e,t),this.groundColor.copy(e.groundColor),this}toJSON(e){let t=super.toJSON(e);return t.object.groundColor=this.groundColor.getHex(),t}},jk=new Cn,M6=new ve,A6=new ve,y_=class{constructor(e){this.camera=e,this.intensity=1,this.bias=0,this.biasNode=null,this.normalBias=0,this.radius=1,this.blurSamples=8,this.mapSize=new ut(512,512),this.mapType=ja,this.map=null,this.mapPass=null,this.matrix=new Cn,this.autoUpdate=!0,this.needsUpdate=!1,this._frustum=new qc,this._frameExtents=new ut(1,1),this._viewportCount=1,this._viewports=[new Ni(0,0,1,1)]}getViewportCount(){return this._viewportCount}getCamera(){return this.camera}getFrustum(){return this._frustum}updateMatrices(e){let t=this.camera;M6.setFromMatrixPosition(e.matrixWorld),t.position.copy(M6),A6.setFromMatrixPosition(e.target.matrixWorld),t.lookAt(A6),t.updateMatrixWorld(),this._updateMatrix(t,this.matrix,this._frustum)}_updateMatrix(e,t,i,r){jk.multiplyMatrices(e.projectionMatrix,e.matrixWorldInverse),i.setFromProjectionMatrix(jk,e.coordinateSystem,e.reversedDepth);let a=this._frameExtents,s=r?r.z/a.x:1,l=r?r.w/a.y:1,c=r?r.x/a.x:0,f=r?r.y/a.y:0;e.coordinateSystem===Dh||e.reversedDepth?t.set(.5*s,0,0,.5*s+c,0,.5*l,0,.5*l+f,0,0,1,0,0,0,0,1):t.set(.5*s,0,0,.5*s+c,0,.5*l,0,.5*l+f,0,0,.5,.5,0,0,0,1),t.multiply(jk)}getViewport(e){return this._viewports[e]}getFrameExtents(){return this._frameExtents}dispose(){this.map&&this.map.dispose(),this.mapPass&&this.mapPass.dispose()}copy(e){return this.camera=e.camera.clone(),this.intensity=e.intensity,this.bias=e.bias,this.radius=e.radius,this.autoUpdate=e.autoUpdate,this.needsUpdate=e.needsUpdate,this.normalBias=e.normalBias,this.blurSamples=e.blurSamples,this.mapSize.copy(e.mapSize),this.biasNode=e.biasNode,this}clone(){return new this.constructor().copy(this)}toJSON(){let e={};return e.intensity=this.intensity,e.bias=this.bias,e.normalBias=this.normalBias,e.radius=this.radius,e.blurSamples=this.blurSamples,e.mapSize=this.mapSize.toArray(),e.camera=this.camera.toJSON(!1).object,delete e.camera.matrix,e}},HA=new ve,VA=new Lr,Pc=new ve,b_=class extends gi{constructor(){super(),this.isCamera=!0,this.type="Camera",this.matrixWorldInverse=new Cn,this.projectionMatrix=new Cn,this.projectionMatrixInverse=new Cn,this.coordinateSystem=ho,this._reversedDepth=!1}get reversedDepth(){return this._reversedDepth}copy(e,t){return super.copy(e,t),this.matrixWorldInverse.copy(e.matrixWorldInverse),this.projectionMatrix.copy(e.projectionMatrix),this.projectionMatrixInverse.copy(e.projectionMatrixInverse),this.coordinateSystem=e.coordinateSystem,this}getWorldDirection(e){return super.getWorldDirection(e).negate()}updateMatrixWorld(e){super.updateMatrixWorld(e),this.matrixWorld.decompose(HA,VA,Pc),Pc.x===1&&Pc.y===1&&Pc.z===1?this.matrixWorldInverse.copy(this.matrixWorld).invert():this.matrixWorldInverse.compose(HA,VA,Pc.set(1,1,1)).invert()}updateWorldMatrix(e,t,i=!1){super.updateWorldMatrix(e,t,i),this.matrixWorld.decompose(HA,VA,Pc),Pc.x===1&&Pc.y===1&&Pc.z===1?this.matrixWorldInverse.copy(this.matrixWorld).invert():this.matrixWorldInverse.compose(HA,VA,Pc.set(1,1,1)).invert()}clone(){return new this.constructor().copy(this)}},Ih=new ve,C6=new ut,R6=new ut,yr=class extends b_{constructor(e=50,t=1,i=.1,r=2e3){super(),this.isPerspectiveCamera=!0,this.type="PerspectiveCamera",this.fov=e,this.zoom=1,this.near=i,this.far=r,this.focus=10,this.aspect=t,this.view=null,this.filmGauge=35,this.filmOffset=0,this.updateProjectionMatrix()}copy(e,t){return super.copy(e,t),this.fov=e.fov,this.zoom=e.zoom,this.near=e.near,this.far=e.far,this.focus=e.focus,this.aspect=e.aspect,this.view=e.view===null?null:Object.assign({},e.view),this.filmGauge=e.filmGauge,this.filmOffset=e.filmOffset,this}setFocalLength(e){let t=.5*this.getFilmHeight()/e;this.fov=o_*2*Math.atan(t),this.updateProjectionMatrix()}getFocalLength(){let e=Math.tan(a_*.5*this.fov);return .5*this.getFilmHeight()/e}getEffectiveFOV(){return o_*2*Math.atan(Math.tan(a_*.5*this.fov)/this.zoom)}getFilmWidth(){return this.filmGauge*Math.min(this.aspect,1)}getFilmHeight(){return this.filmGauge/Math.max(this.aspect,1)}getViewBounds(e,t,i){Ih.set(-1,-1,.5).applyMatrix4(this.projectionMatrixInverse),t.set(Ih.x,Ih.y).multiplyScalar(-e/Ih.z),Ih.set(1,1,.5).applyMatrix4(this.projectionMatrixInverse),i.set(Ih.x,Ih.y).multiplyScalar(-e/Ih.z)}getViewSize(e,t){return this.getViewBounds(e,C6,R6),t.subVectors(R6,C6)}setViewOffset(e,t,i,r,a,s){this.aspect=e/t,this.view===null&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=e,this.view.fullHeight=t,this.view.offsetX=i,this.view.offsetY=r,this.view.width=a,this.view.height=s,this.updateProjectionMatrix()}clearViewOffset(){this.view!==null&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){let e=this.near,t=e*Math.tan(a_*.5*this.fov)/this.zoom,i=2*t,r=this.aspect*i,a=-.5*r,s=this.view;if(this.view!==null&&this.view.enabled){let c=s.fullWidth,f=s.fullHeight;a+=s.offsetX*r/c,t-=s.offsetY*i/f,r*=s.width/c,i*=s.height/f}let l=this.filmOffset;l!==0&&(a+=e*l/this.getFilmWidth()),this.projectionMatrix.makePerspective(a,a+r,t,t-i,e,this.far,this.coordinateSystem,this.reversedDepth),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(e){let t=super.toJSON(e);return t.object.fov=this.fov,t.object.zoom=this.zoom,t.object.near=this.near,t.object.far=this.far,t.object.focus=this.focus,t.object.aspect=this.aspect,this.view!==null&&(t.object.view=Object.assign({},this.view)),t.object.filmGauge=this.filmGauge,t.object.filmOffset=this.filmOffset,t}},sO=class extends y_{constructor(){super(new yr(50,1,.5,500)),this.isSpotLightShadow=!0,this.focus=1,this.aspect=1}updateMatrices(e){let t=this.camera,i=o_*2*e.angle*this.focus,r=this.mapSize.width/this.mapSize.height*this.aspect,a=e.distance||t.far;(i!==t.fov||r!==t.aspect||a!==t.far)&&(t.fov=i,t.aspect=r,t.far=a,t.updateProjectionMatrix()),super.updateMatrices(e)}copy(e){return super.copy(e),this.focus=e.focus,this.aspect=e.aspect,this}toJSON(){let e=super.toJSON();return e.focus=this.focus,e.aspect=this.aspect,e}},Ox=class extends Nu{constructor(e,t,i=0,r=Math.PI/3,a=0,s=2){super(e,t),this.isSpotLight=!0,this.type="SpotLight",this.position.copy(gi.DEFAULT_UP),this.updateMatrix(),this.target=new gi,this.distance=i,this.angle=r,this.penumbra=a,this.decay=s,this.map=null,this.shadow=new sO}get power(){return this.intensity*Math.PI}set power(e){this.intensity=e/Math.PI}dispose(){super.dispose(),this.shadow.dispose()}copy(e,t){return super.copy(e,t),this.distance=e.distance,this.angle=e.angle,this.penumbra=e.penumbra,this.decay=e.decay,this.target=e.target.clone(),this.map=e.map,this.shadow=e.shadow.clone(),this}toJSON(e){let t=super.toJSON(e);return t.object.distance=this.distance,t.object.angle=this.angle,t.object.decay=this.decay,t.object.penumbra=this.penumbra,t.object.target=this.target.uuid,this.map&&this.map.isTexture&&(t.object.map=this.map.toJSON(e).uuid),t.object.shadow=this.shadow.toJSON(),t}},oO=class extends y_{constructor(){super(new yr(90,1,.5,500)),this.isPointLightShadow=!0}},Dx=class extends Nu{constructor(e,t,i=0,r=2){super(e,t),this.isPointLight=!0,this.type="PointLight",this.distance=i,this.decay=r,this.shadow=new oO}get power(){return this.intensity*4*Math.PI}set power(e){this.intensity=e/(4*Math.PI)}dispose(){super.dispose(),this.shadow.dispose()}copy(e,t){return super.copy(e,t),this.distance=e.distance,this.decay=e.decay,this.shadow=e.shadow.clone(),this}toJSON(e){let t=super.toJSON(e);return t.object.distance=this.distance,t.object.decay=this.decay,t.object.shadow=this.shadow.toJSON(),t}},Gc=class extends b_{constructor(e=-1,t=1,i=1,r=-1,a=.1,s=2e3){super(),this.isOrthographicCamera=!0,this.type="OrthographicCamera",this.zoom=1,this.view=null,this.left=e,this.right=t,this.top=i,this.bottom=r,this.near=a,this.far=s,this.updateProjectionMatrix()}copy(e,t){return super.copy(e,t),this.left=e.left,this.right=e.right,this.top=e.top,this.bottom=e.bottom,this.near=e.near,this.far=e.far,this.zoom=e.zoom,this.view=e.view===null?null:Object.assign({},e.view),this}setViewOffset(e,t,i,r,a,s){this.view===null&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=e,this.view.fullHeight=t,this.view.offsetX=i,this.view.offsetY=r,this.view.width=a,this.view.height=s,this.updateProjectionMatrix()}clearViewOffset(){this.view!==null&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){let e=(this.right-this.left)/(2*this.zoom),t=(this.top-this.bottom)/(2*this.zoom),i=(this.right+this.left)/2,r=(this.top+this.bottom)/2,a=i-e,s=i+e,l=r+t,c=r-t;if(this.view!==null&&this.view.enabled){let f=(this.right-this.left)/this.view.fullWidth/this.zoom,p=(this.top-this.bottom)/this.view.fullHeight/this.zoom;a+=f*this.view.offsetX,s=a+f*this.view.width,l-=p*this.view.offsetY,c=l-p*this.view.height}this.projectionMatrix.makeOrthographic(a,s,l,c,this.near,this.far,this.coordinateSystem,this.reversedDepth),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(e){let t=super.toJSON(e);return t.object.zoom=this.zoom,t.object.left=this.left,t.object.right=this.right,t.object.top=this.top,t.object.bottom=this.bottom,t.object.near=this.near,t.object.far=this.far,this.view!==null&&(t.object.view=Object.assign({},this.view)),t}},lO=class extends y_{constructor(){super(new Gc(-5,5,5,-5,.5,500)),this.isDirectionalLightShadow=!0}},Fx=class extends Nu{constructor(e,t){super(e,t),this.isDirectionalLight=!0,this.type="DirectionalLight",this.position.copy(gi.DEFAULT_UP),this.updateMatrix(),this.target=new gi,this.shadow=new lO}dispose(){super.dispose(),this.shadow.dispose()}copy(e){return super.copy(e),this.target=e.target.clone(),this.shadow=e.shadow.clone(),this}toJSON(e){let t=super.toJSON(e);return t.object.shadow=this.shadow.toJSON(),t.object.target=this.target.uuid,t}},Px=class extends Nu{constructor(e,t){super(e,t),this.isAmbientLight=!0,this.type="AmbientLight"}},Ux=class extends Nu{constructor(e,t,i=10,r=10){super(e,t),this.isRectAreaLight=!0,this.type="RectAreaLight",this.width=i,this.height=r}get power(){return this.intensity*this.width*this.height*Math.PI}set power(e){this.intensity=e/(this.width*this.height*Math.PI)}copy(e){return super.copy(e),this.width=e.width,this.height=e.height,this}toJSON(e){let t=super.toJSON(e);return t.object.width=this.width,t.object.height=this.height,t}},U0=class{constructor(){this.isSphericalHarmonics3=!0,this.coefficients=[];for(let e=0;e<9;e++)this.coefficients.push(new ve)}set(e){for(let t=0;t<9;t++)this.coefficients[t].copy(e[t]);return this}zero(){for(let e=0;e<9;e++)this.coefficients[e].set(0,0,0);return this}getAt(e,t){let i=e.x,r=e.y,a=e.z,s=this.coefficients;return t.copy(s[0]).multiplyScalar(.282095),t.addScaledVector(s[1],.488603*r),t.addScaledVector(s[2],.488603*a),t.addScaledVector(s[3],.488603*i),t.addScaledVector(s[4],1.092548*(i*r)),t.addScaledVector(s[5],1.092548*(r*a)),t.addScaledVector(s[6],.315392*(3*a*a-1)),t.addScaledVector(s[7],1.092548*(i*a)),t.addScaledVector(s[8],.546274*(i*i-r*r)),t}getIrradianceAt(e,t){let i=e.x,r=e.y,a=e.z,s=this.coefficients;return t.copy(s[0]).multiplyScalar(.886227),t.addScaledVector(s[1],2*.511664*r),t.addScaledVector(s[2],2*.511664*a),t.addScaledVector(s[3],2*.511664*i),t.addScaledVector(s[4],2*.429043*i*r),t.addScaledVector(s[5],2*.429043*r*a),t.addScaledVector(s[6],.743125*a*a-.247708),t.addScaledVector(s[7],2*.429043*i*a),t.addScaledVector(s[8],.429043*(i*i-r*r)),t}add(e){for(let t=0;t<9;t++)this.coefficients[t].add(e.coefficients[t]);return this}addScaledSH(e,t){for(let i=0;i<9;i++)this.coefficients[i].addScaledVector(e.coefficients[i],t);return this}scale(e){for(let t=0;t<9;t++)this.coefficients[t].multiplyScalar(e);return this}lerp(e,t){for(let i=0;i<9;i++)this.coefficients[i].lerp(e.coefficients[i],t);return this}equals(e){for(let t=0;t<9;t++)if(!this.coefficients[t].equals(e.coefficients[t]))return!1;return!0}copy(e){return this.set(e.coefficients)}clone(){return new this.constructor().copy(this)}fromArray(e,t=0){let i=this.coefficients;for(let r=0;r<9;r++)i[r].fromArray(e,t+r*3);return this}toArray(e=[],t=0){let i=this.coefficients;for(let r=0;r<9;r++)i[r].toArray(e,t+r*3);return e}static getBasisAt(e,t){let i=e.x,r=e.y,a=e.z;t[0]=.282095,t[1]=.488603*r,t[2]=.488603*a,t[3]=.488603*i,t[4]=1.092548*i*r,t[5]=1.092548*r*a,t[6]=.315392*(3*a*a-1),t[7]=1.092548*i*a,t[8]=.546274*(i*i-r*r)}},zx=class extends Nu{constructor(e=new U0,t=1){super(void 0,t),this.isLightProbe=!0,this.sh=e}copy(e){return super.copy(e),this.sh.copy(e.sh),this}toJSON(e){let t=super.toJSON(e);return t.object.sh=this.sh.toArray(),t}},I6={},qx=class n extends Wa{constructor(e){super(e),this.textures={}}load(e,t,i,r){let a=this,s=new Zl(a.manager);s.setPath(a.path),s.setRequestHeader(a.requestHeader),s.setWithCredentials(a.withCredentials),s.load(e,function(l){try{t(a.parse(JSON.parse(l)))}catch(c){r?r(c):cn(c),a.manager.itemError(e)}},i,r)}parse(e){let t=this.createMaterialFromType(e.type);return t.fromJSON(e,this.textures),t}setTextures(e){return this.textures=e,this}createMaterialFromType(e){return n.createMaterialFromType(e)}static createMaterialFromType(e){let i={ShadowMaterial:Sx,SpriteMaterial:_0,RawShaderMaterial:L0,ShaderMaterial:Ga,PointsMaterial:v0,MeshPhysicalMaterial:Ex,MeshStandardMaterial:Bh,MeshPhongMaterial:wx,MeshToonMaterial:xx,MeshNormalMaterial:Tx,MeshLambertMaterial:Mx,MeshDepthMaterial:N0,MeshDistanceMaterial:k0,MeshBasicMaterial:Iu,MeshMatcapMaterial:Ax,LineDashedMaterial:Cx,LineBasicMaterial:xa,Material:Zr,...I6}[e],r;return i===void 0?(Uc(`MaterialLoader: Unknown material type "${e}". Use .registerMaterial() before starting the deserialization process.`),r=new Zr):r=new i,r}static registerMaterial(e,t){I6[e]=t}},z0=class{static extractUrlBase(e){let t=e.lastIndexOf("/");return t===-1?"./":e.slice(0,t+1)}static resolveURL(e,t){return typeof e!="string"||e===""?"":(/^https?:\/\//i.test(t)&&/^\//.test(e)&&(t=t.replace(/(^https?:\/\/[^\/]+).*/i,"$1")),/^(https?:)?\/\//i.test(e)||/^data:.*,.*$/i.test(e)||/^blob:.*$/i.test(e)?e:t+e)}},Bx=class extends Nn{constructor(){super(),this.isInstancedBufferGeometry=!0,this.type="InstancedBufferGeometry",this.instanceCount=1/0}copy(e){return super.copy(e),this.instanceCount=e.instanceCount,this}toJSON(){let e=super.toJSON();return e.instanceCount=this.instanceCount,e.isInstancedBufferGeometry=!0,e}},Hx=class extends Wa{constructor(e){super(e)}load(e,t,i,r){let a=this,s=new Zl(a.manager);s.setPath(a.path),s.setRequestHeader(a.requestHeader),s.setWithCredentials(a.withCredentials),s.load(e,function(l){try{t(a.parse(JSON.parse(l)))}catch(c){r?r(c):cn(c),a.manager.itemError(e)}},i,r)}parse(e){let t={},i={};function r(g,E){if(t[E]!==void 0)return t[E];let S=g.interleavedBuffers[E],v=a(g,S.buffer),M=r0(S.type,v),O=new d_(M,S.stride);return O.uuid=S.uuid,S.usage!==void 0&&O.setUsage(S.usage),t[E]=O,O}function a(g,E){if(i[E]!==void 0)return i[E];let S=g.arrayBuffers[E],v=new Uint32Array(S).buffer;return i[E]=v,v}let s=e.isInstancedBufferGeometry?new Bx:new Nn,l=e.data.index;if(l!==void 0){let g=r0(l.type,l.array);s.setIndex(new Li(g,1))}let c=e.data.attributes;for(let g in c){let E=c[g],x;if(E.isInterleavedBufferAttribute){let S=r(e.data,E.data);x=new Ph(S,E.itemSize,E.offset,E.normalized)}else{let S=r0(E.type,E.array),v=E.isInstancedBufferAttribute?Wf:Li;x=new v(S,E.itemSize,E.normalized)}E.name!==void 0&&(x.name=E.name),E.usage!==void 0&&x.setUsage(E.usage),E.gpuType!==void 0&&(x.gpuType=E.gpuType),s.setAttribute(g,x)}let f=e.data.morphAttributes;if(f)for(let g in f){let E=f[g],x=[];for(let S=0,v=E.length;S<v;S++){let M=E[S],O;if(M.isInterleavedBufferAttribute){let k=r(e.data,M.data);O=new Ph(k,M.itemSize,M.offset,M.normalized)}else{let k=r0(M.type,M.array);O=new Li(k,M.itemSize,M.normalized)}M.name!==void 0&&(O.name=M.name),M.usage!==void 0&&O.setUsage(M.usage),M.gpuType!==void 0&&(O.gpuType=M.gpuType),x.push(O)}s.morphAttributes[g]=x}e.data.morphTargetsRelative&&(s.morphTargetsRelative=!0);let h=e.data.groups||e.data.drawcalls||e.data.offsets;if(h!==void 0)for(let g=0,E=h.length;g!==E;++g){let x=h[g];s.addGroup(x.start,x.count,x.materialIndex)}let _=e.data.boundingSphere;return _!==void 0&&(s.boundingSphere=new Kr().fromJSON(_)),e.name&&(s.name=e.name),e.userData&&(s.userData=e.userData),s}},Qk={},wC=class extends Wa{constructor(e){super(e)}load(e,t,i,r){let a=this,s=this.path===""?z0.extractUrlBase(e):this.path;this.resourcePath=this.resourcePath||s;let l=new Zl(this.manager);l.setPath(this.path),l.setRequestHeader(this.requestHeader),l.setWithCredentials(this.withCredentials),l.load(e,function(c){let f=null;try{f=JSON.parse(c)}catch(h){r!==void 0&&r(h),cn("ObjectLoader: Can't parse "+e+".",h.message);return}let p=f.metadata;if(p===void 0||p.type===void 0||p.type.toLowerCase()==="geometry"){r!==void 0&&r(new Error("THREE.ObjectLoader: Can't load "+e)),cn("ObjectLoader: Can't load "+e);return}a.parse(f,t)},i,r)}async loadAsync(e,t){let i=this,r=this.path===""?z0.extractUrlBase(e):this.path;this.resourcePath=this.resourcePath||r;let a=new Zl(this.manager);a.setPath(this.path),a.setRequestHeader(this.requestHeader),a.setWithCredentials(this.withCredentials);let s=await a.loadAsync(e,t),l;try{l=JSON.parse(s)}catch(f){throw new Error("THREE.ObjectLoader: Can't parse "+e+". "+f.message)}let c=l.metadata;if(c===void 0||c.type===void 0||c.type.toLowerCase()==="geometry")throw new Error("THREE.ObjectLoader: Can't load "+e);return await i.parseAsync(l)}parse(e,t){let i=this.parseAnimations(e.animations),r=this.parseShapes(e.shapes),a=this.parseGeometries(e.geometries,r),s=this.parseImages(e.images,function(){t!==void 0&&t(f)}),l=this.parseTextures(e.textures,s),c=this.parseMaterials(e.materials,l),f=this.parseObject(e.object,a,c,l,i),p=this.parseSkeletons(e.skeletons,f);if(this.bindSkeletons(f,p),this.bindLightTargets(f),t!==void 0){let h=!1;for(let _ in s)if(s[_].data instanceof HTMLImageElement){h=!0;break}h===!1&&t(f)}return f}async parseAsync(e){let t=this.parseAnimations(e.animations),i=this.parseShapes(e.shapes),r=this.parseGeometries(e.geometries,i),a=await this.parseImagesAsync(e.images),s=this.parseTextures(e.textures,a),l=this.parseMaterials(e.materials,s),c=this.parseObject(e.object,r,l,s,t),f=this.parseSkeletons(e.skeletons,c);return this.bindSkeletons(c,f),this.bindLightTargets(c),c}static registerGeometry(e,t){Qk[e]=t}parseShapes(e){let t={};if(e!==void 0)for(let i=0,r=e.length;i<r;i++){let a=new qh().fromJSON(e[i]);t[a.uuid]=a}return t}parseSkeletons(e,t){let i={},r={};if(t.traverse(function(a){a.isBone&&(r[a.uuid]=a)}),e!==void 0)for(let a=0,s=e.length;a<s;a++){let l=new Ww().fromJSON(e[a],r);i[l.uuid]=l}return i}parseGeometries(e,t){let i={};if(e!==void 0){let r=new Hx;for(let a=0,s=e.length;a<s;a++){let l,c=e[a];switch(c.type){case"BufferGeometry":case"InstancedBufferGeometry":l=r.parse(c);break;default:c.type in E6?l=E6[c.type].fromJSON(c,t):c.type in Qk?l=Qk[c.type].fromJSON(c,t):Ft(`ObjectLoader: Unknown geometry type "${c.type}". Use .registerGeometry() before starting the deserialization process.`)}l.uuid=c.uuid,c.name!==void 0&&(l.name=c.name),c.userData!==void 0&&(l.userData=c.userData),i[c.uuid]=l}}return i}parseMaterials(e,t){let i={},r={};if(e!==void 0){let a=new qx;a.setTextures(t);for(let s=0,l=e.length;s<l;s++){let c=e[s];i[c.uuid]===void 0&&(i[c.uuid]=a.parse(c)),r[c.uuid]=i[c.uuid]}}return r}parseAnimations(e){let t={};if(e!==void 0)for(let i=0;i<e.length;i++){let r=e[i],a=Hh.parse(r);t[a.uuid]=a}return t}parseImages(e,t){let i=this,r={},a;function s(c){return c=i.manager.resolveURL(c),i.manager.itemStart(c),a.load(c,function(){i.manager.itemEnd(c)},void 0,function(){i.manager.itemError(c),i.manager.itemEnd(c)})}function l(c){if(typeof c=="string"){let f=c,p=/^(\/\/)|([a-z]+:(\/\/)?)/i.test(f)?f:i.resourcePath+f;return s(p)}else return c.data?{data:r0(c.type,c.data),width:c.width,height:c.height}:null}if(e!==void 0&&e.length>0){let c=new P0(t);a=new Vh(c),a.setCrossOrigin(this.crossOrigin);for(let f=0,p=e.length;f<p;f++){let h=e[f],_=h.url;if(Array.isArray(_)){let g=[];for(let E=0,x=_.length;E<x;E++){let S=_[E],v=l(S);v!==null&&(v instanceof HTMLImageElement?g.push(v):g.push(new As(v.data,v.width,v.height)))}r[h.uuid]=new Xl(g)}else{let g=l(h.url);r[h.uuid]=new Xl(g)}}}return r}async parseImagesAsync(e){let t=this,i={},r;async function a(s){if(typeof s=="string"){let l=s,c=/^(\/\/)|([a-z]+:(\/\/)?)/i.test(l)?l:t.resourcePath+l;return await r.loadAsync(c)}else return s.data?{data:r0(s.type,s.data),width:s.width,height:s.height}:null}if(e!==void 0&&e.length>0){r=new Vh(this.manager),r.setCrossOrigin(this.crossOrigin);for(let s=0,l=e.length;s<l;s++){let c=e[s],f=c.url;if(Array.isArray(f)){let p=[];for(let h=0,_=f.length;h<_;h++){let g=f[h],E=await a(g);E!==null&&(E instanceof HTMLImageElement?p.push(E):p.push(new As(E.data,E.width,E.height)))}i[c.uuid]=new Xl(p)}else{let p=await a(c.url);i[c.uuid]=new Xl(p)}}}return i}parseTextures(e,t){function i(a,s){return typeof a=="number"?a:(Ft("ObjectLoader.parseTexture: Constant should be in numeric form.",a),s[a])}let r={};if(e!==void 0)for(let a=0,s=e.length;a<s;a++){let l=e[a];l.image===void 0&&Ft('ObjectLoader: No "image" specified for',l.uuid),t[l.image]===void 0&&Ft("ObjectLoader: Undefined image",l.image);let c=t[l.image],f=c.data,p;Array.isArray(f)?(p=new Uh,f.length===6&&(p.needsUpdate=!0)):(f&&f.data?p=new As:p=new Sr,f&&(p.needsUpdate=!0)),p.source=c,p.uuid=l.uuid,l.name!==void 0&&(p.name=l.name),l.mapping!==void 0&&(p.mapping=i(l.mapping,yX)),l.channel!==void 0&&(p.channel=l.channel),l.offset!==void 0&&p.offset.fromArray(l.offset),l.repeat!==void 0&&p.repeat.fromArray(l.repeat),l.center!==void 0&&p.center.fromArray(l.center),l.rotation!==void 0&&(p.rotation=l.rotation),l.wrap!==void 0&&(p.wrapS=i(l.wrap[0],L6),p.wrapT=i(l.wrap[1],L6)),l.format!==void 0&&(p.format=l.format),l.internalFormat!==void 0&&(p.internalFormat=l.internalFormat),l.type!==void 0&&(p.type=l.type),l.colorSpace!==void 0&&(p.colorSpace=l.colorSpace),l.minFilter!==void 0&&(p.minFilter=i(l.minFilter,N6)),l.magFilter!==void 0&&(p.magFilter=i(l.magFilter,N6)),l.anisotropy!==void 0&&(p.anisotropy=l.anisotropy),l.flipY!==void 0&&(p.flipY=l.flipY),l.generateMipmaps!==void 0&&(p.generateMipmaps=l.generateMipmaps),l.premultiplyAlpha!==void 0&&(p.premultiplyAlpha=l.premultiplyAlpha),l.unpackAlignment!==void 0&&(p.unpackAlignment=l.unpackAlignment),l.compareFunction!==void 0&&(p.compareFunction=l.compareFunction),l.normalized!==void 0&&(p.normalized=l.normalized),l.userData!==void 0&&(p.userData=l.userData),r[l.uuid]=p}return r}parseObject(e,t,i,r,a){let s;function l(_){return t[_]===void 0&&Ft("ObjectLoader: Undefined geometry",_),t[_]}function c(_){if(_!==void 0){if(Array.isArray(_)){let g=[];for(let E=0,x=_.length;E<x;E++){let S=_[E];i[S]===void 0&&Ft("ObjectLoader: Undefined material",S),g.push(i[S])}return g}return i[_]===void 0&&Ft("ObjectLoader: Undefined material",_),i[_]}}function f(_){return r[_]===void 0&&Ft("ObjectLoader: Undefined texture",_),r[_]}let p,h;switch(e.type){case"Scene":s=new f_,e.background!==void 0&&(Number.isInteger(e.background)?s.background=new Vt(e.background):s.background=f(e.background)),e.environment!==void 0&&(s.environment=f(e.environment)),e.fog!==void 0&&(e.fog.type==="Fog"?s.fog=new Bw(e.fog.color,e.fog.near,e.fog.far):e.fog.type==="FogExp2"&&(s.fog=new qw(e.fog.color,e.fog.density)),e.fog.name!==""&&(s.fog.name=e.fog.name)),e.backgroundBlurriness!==void 0&&(s.backgroundBlurriness=e.backgroundBlurriness),e.backgroundIntensity!==void 0&&(s.backgroundIntensity=e.backgroundIntensity),e.backgroundRotation!==void 0&&s.backgroundRotation.fromArray(e.backgroundRotation),e.environmentIntensity!==void 0&&(s.environmentIntensity=e.environmentIntensity),e.environmentRotation!==void 0&&s.environmentRotation.fromArray(e.environmentRotation);break;case"PerspectiveCamera":s=new yr(e.fov,e.aspect,e.near,e.far),e.focus!==void 0&&(s.focus=e.focus),e.zoom!==void 0&&(s.zoom=e.zoom),e.filmGauge!==void 0&&(s.filmGauge=e.filmGauge),e.filmOffset!==void 0&&(s.filmOffset=e.filmOffset),e.view!==void 0&&(s.view=Object.assign({},e.view));break;case"OrthographicCamera":s=new Gc(e.left,e.right,e.top,e.bottom,e.near,e.far),e.zoom!==void 0&&(s.zoom=e.zoom),e.view!==void 0&&(s.view=Object.assign({},e.view));break;case"AmbientLight":s=new Px(e.color,e.intensity);break;case"DirectionalLight":s=new Fx(e.color,e.intensity),s.target=e.target||"";break;case"PointLight":s=new Dx(e.color,e.intensity,e.distance,e.decay);break;case"RectAreaLight":s=new Ux(e.color,e.intensity,e.width,e.height);break;case"SpotLight":s=new Ox(e.color,e.intensity,e.distance,e.angle,e.penumbra,e.decay),s.target=e.target||"";break;case"HemisphereLight":s=new kx(e.color,e.groundColor,e.intensity);break;case"LightProbe":let _=new U0().fromArray(e.sh);s=new zx(_,e.intensity);break;case"SkinnedMesh":p=l(e.geometry),h=c(e.material),s=new Gw(p,h),e.bindMode!==void 0&&(s.bindMode=e.bindMode),e.bindMatrix!==void 0&&s.bindMatrix.fromArray(e.bindMatrix),e.skeleton!==void 0&&(s.skeleton=e.skeleton);break;case"Mesh":p=l(e.geometry),h=c(e.material),s=new dr(p,h);break;case"InstancedMesh":p=l(e.geometry),h=c(e.material);let g=e.count,E=e.instanceMatrix,x=e.instanceColor;s=new jw(p,h,g),s.instanceMatrix=new Wf(new Float32Array(E.array),16),x!==void 0&&(s.instanceColor=new Wf(new Float32Array(x.array),x.itemSize));break;case"BatchedMesh":p=l(e.geometry),h=c(e.material),s=new Xw(e.maxInstanceCount,e.maxVertexCount,e.maxIndexCount,h),s.geometry=p,s.perObjectFrustumCulled=e.perObjectFrustumCulled,s.sortObjects=e.sortObjects,s._drawRanges=e.drawRanges,s._reservedRanges=e.reservedRanges,s._geometryInfo=e.geometryInfo.map(S=>{let v=null,M=null;return S.boundingBox!==void 0&&(v=new sa().fromJSON(S.boundingBox)),S.boundingSphere!==void 0&&(M=new Kr().fromJSON(S.boundingSphere)),{...S,boundingBox:v,boundingSphere:M}}),s._instanceInfo=e.instanceInfo,s._availableInstanceIds=e._availableInstanceIds,s._availableGeometryIds=e._availableGeometryIds,s._nextIndexStart=e.nextIndexStart,s._nextVertexStart=e.nextVertexStart,s._geometryCount=e.geometryCount,s._maxInstanceCount=e.maxInstanceCount,s._maxVertexCount=e.maxVertexCount,s._maxIndexCount=e.maxIndexCount,s._geometryInitialized=e.geometryInitialized,s._matricesTexture=f(e.matricesTexture.uuid),s._indirectTexture=f(e.indirectTexture.uuid),e.colorsTexture!==void 0&&(s._colorsTexture=f(e.colorsTexture.uuid)),e.boundingSphere!==void 0&&(s.boundingSphere=new Kr().fromJSON(e.boundingSphere)),e.boundingBox!==void 0&&(s.boundingBox=new sa().fromJSON(e.boundingBox));break;case"LOD":s=new Vw;break;case"Line":s=new Lu(l(e.geometry),c(e.material));break;case"LineLoop":s=new Yw(l(e.geometry),c(e.material));break;case"LineSegments":s=new nl(l(e.geometry),c(e.material));break;case"PointCloud":case"Points":s=new Kw(l(e.geometry),c(e.material));break;case"Sprite":s=new Hw(c(e.material));break;case"Group":s=new Vf;break;case"Bone":s=new g0;break;default:s=new gi}if(s.uuid=e.uuid,e.name!==void 0&&(s.name=e.name),e.matrix!==void 0?(s.matrix.fromArray(e.matrix),e.matrixAutoUpdate!==void 0&&(s.matrixAutoUpdate=e.matrixAutoUpdate),s.matrixAutoUpdate&&s.matrix.decompose(s.position,s.quaternion,s.scale)):(e.position!==void 0&&s.position.fromArray(e.position),e.rotation!==void 0&&s.rotation.fromArray(e.rotation),e.quaternion!==void 0&&s.quaternion.fromArray(e.quaternion),e.scale!==void 0&&s.scale.fromArray(e.scale)),e.up!==void 0&&s.up.fromArray(e.up),e.pivot!==void 0&&(s.pivot=new ve().fromArray(e.pivot)),e.morphTargetDictionary!==void 0&&(s.morphTargetDictionary=Object.assign({},e.morphTargetDictionary)),e.morphTargetInfluences!==void 0&&(s.morphTargetInfluences=e.morphTargetInfluences.slice()),e.castShadow!==void 0&&(s.castShadow=e.castShadow),e.receiveShadow!==void 0&&(s.receiveShadow=e.receiveShadow),e.shadow&&(e.shadow.intensity!==void 0&&(s.shadow.intensity=e.shadow.intensity),e.shadow.bias!==void 0&&(s.shadow.bias=e.shadow.bias),e.shadow.normalBias!==void 0&&(s.shadow.normalBias=e.shadow.normalBias),e.shadow.radius!==void 0&&(s.shadow.radius=e.shadow.radius),e.shadow.blurSamples!==void 0&&(s.shadow.blurSamples=e.shadow.blurSamples),e.shadow.focus!==void 0&&(s.shadow.focus=e.shadow.focus),e.shadow.aspect!==void 0&&(s.shadow.aspect=e.shadow.aspect),e.shadow.mapSize!==void 0&&s.shadow.mapSize.fromArray(e.shadow.mapSize),e.shadow.camera!==void 0&&(s.shadow.camera=this.parseObject(e.shadow.camera))),e.visible!==void 0&&(s.visible=e.visible),e.frustumCulled!==void 0&&(s.frustumCulled=e.frustumCulled),e.renderOrder!==void 0&&(s.renderOrder=e.renderOrder),e.static!==void 0&&(s.static=e.static),e.userData!==void 0&&(s.userData=e.userData),e.layers!==void 0&&(s.layers.mask=e.layers),e.children!==void 0){let _=e.children;for(let g=0;g<_.length;g++)s.add(this.parseObject(_[g],t,i,r,a))}if(e.animations!==void 0){let _=e.animations;for(let g=0;g<_.length;g++){let E=_[g];s.animations.push(a[E])}}if(e.type==="LOD"){e.autoUpdate!==void 0&&(s.autoUpdate=e.autoUpdate);let _=e.levels;for(let g=0;g<_.length;g++){let E=_[g],x=s.getObjectByProperty("uuid",E.object);x!==void 0&&s.addLevel(x,E.distance,E.hysteresis)}}return s}bindSkeletons(e,t){Object.keys(t).length!==0&&e.traverse(function(i){if(i.isSkinnedMesh===!0&&i.skeleton!==void 0){let r=t[i.skeleton];r===void 0?Ft("ObjectLoader: No skeleton found with UUID:",i.skeleton):i.bind(r,i.bindMatrix)}})}bindLightTargets(e){e.traverse(function(t){if(t.isDirectionalLight||t.isSpotLight){let i=t.target,r=e.getObjectByProperty("uuid",i);r!==void 0?t.target=r:t.target=new gi}})}},yX={UVMapping:Kx,CubeReflectionMapping:Du,CubeRefractionMapping:Jf,EquirectangularReflectionMapping:j0,EquirectangularRefractionMapping:Q0,CubeUVReflectionMapping:x_},L6={RepeatWrapping:s0,ClampToEdgeWrapping:Ms,MirroredRepeatWrapping:o0},N6={NearestFilter:br,NearestMipmapNearestFilter:p2,NearestMipmapLinearFilter:T_,LinearFilter:Ji,LinearMipmapNearestFilter:X0,LinearMipmapLinearFilter:Fu},Xk=new WeakMap,xC=class extends Wa{constructor(e){super(e),this.isImageBitmapLoader=!0,typeof createImageBitmap>"u"&&Ft("ImageBitmapLoader: createImageBitmap() not supported."),typeof fetch>"u"&&Ft("ImageBitmapLoader: fetch() not supported."),this.options={premultiplyAlpha:"none"},this._abortController=new AbortController}setOptions(e){return this.options=e,this}load(e,t,i,r){e===void 0&&(e=""),this.path!==void 0&&(e=this.path+e),e=this.manager.resolveURL(e);let a=this,s=Au.get(`image-bitmap:${e}`);if(s!==void 0){if(a.manager.itemStart(e),s.then){s.then(f=>{Xk.has(s)===!0?(r&&r(Xk.get(s)),a.manager.itemError(e),a.manager.itemEnd(e)):(t&&t(f),a.manager.itemEnd(e))});return}setTimeout(function(){t&&t(s),a.manager.itemEnd(e)},0);return}let l={};l.credentials=this.crossOrigin==="anonymous"?"same-origin":"include",l.headers=this.requestHeader,l.signal=typeof AbortSignal.any=="function"?AbortSignal.any([this._abortController.signal,this.manager.abortController.signal]):this._abortController.signal;let c=fetch(e,l).then(function(f){return f.blob()}).then(function(f){return createImageBitmap(f,Object.assign({},a.options,{colorSpaceConversion:"none"}))}).then(function(f){return Au.add(`image-bitmap:${e}`,f),t&&t(f),a.manager.itemEnd(e),f}).catch(function(f){r&&r(f),Xk.set(c,f),Au.remove(`image-bitmap:${e}`),a.manager.itemError(e),a.manager.itemEnd(e)});Au.add(`image-bitmap:${e}`,c),a.manager.itemStart(e)}abort(){return this._abortController.abort(),this._abortController=new AbortController,this}},GA,q0=class{static getContext(){return GA===void 0&&(GA=new(window.AudioContext||window.webkitAudioContext)),GA}static setContext(e){GA=e}},TC=class extends Wa{constructor(e){super(e)}load(e,t,i,r){let a=this,s=new Zl(this.manager);s.setResponseType("arraybuffer"),s.setPath(this.path),s.setRequestHeader(this.requestHeader),s.setWithCredentials(this.withCredentials),s.load(e,function(c){try{let f=c.slice(0),p=q0.getContext(),h=e+"#decode";a.manager.itemStart(h),p.decodeAudioData(f,function(_){t(_),a.manager.itemEnd(h)}).catch(function(_){l(_),a.manager.itemEnd(h)})}catch(f){l(f)}},i,r);function l(c){r?r(c):cn(c),a.manager.itemError(e)}}},k6=new Cn,O6=new Cn,Jm=new Cn,MC=class{constructor(){this.type="StereoCamera",this.aspect=1,this.eyeSep=.064,this.cameraL=new yr,this.cameraL.layers.enable(1),this.cameraL.matrixAutoUpdate=!1,this.cameraR=new yr,this.cameraR.layers.enable(2),this.cameraR.matrixAutoUpdate=!1,this._cache={focus:null,fov:null,aspect:null,near:null,far:null,zoom:null,eyeSep:null}}update(e){let t=this._cache;if(t.focus!==e.focus||t.fov!==e.fov||t.aspect!==e.aspect*this.aspect||t.near!==e.near||t.far!==e.far||t.zoom!==e.zoom||t.eyeSep!==this.eyeSep){t.focus=e.focus,t.fov=e.fov,t.aspect=e.aspect*this.aspect,t.near=e.near,t.far=e.far,t.zoom=e.zoom,t.eyeSep=this.eyeSep,Jm.copy(e.projectionMatrix);let r=t.eyeSep/2,a=r*t.near/t.focus,s=t.near*Math.tan(a_*t.fov*.5)/t.zoom,l,c;O6.elements[12]=-r,k6.elements[12]=r,l=-s*t.aspect+a,c=s*t.aspect+a,Jm.elements[0]=2*t.near/(c-l),Jm.elements[8]=(c+l)/(c-l),this.cameraL.projectionMatrix.copy(Jm),l=-s*t.aspect-a,c=s*t.aspect-a,Jm.elements[0]=2*t.near/(c-l),Jm.elements[8]=(c+l)/(c-l),this.cameraR.projectionMatrix.copy(Jm)}this.cameraL.matrix.copy(e.matrixWorld).multiply(O6),this.cameraL.matrixWorldNeedsUpdate=!0,this.cameraR.matrix.copy(e.matrixWorld).multiply(k6),this.cameraR.matrixWorldNeedsUpdate=!0}},e0=-90,t0=1,Vx=class extends gi{constructor(e,t,i){super(),this.type="CubeCamera",this.renderTarget=i,this.coordinateSystem=null,this.activeMipmapLevel=0;let r=new yr(e0,t0,e,t);r.layers=this.layers,this.add(r);let a=new yr(e0,t0,e,t);a.layers=this.layers,this.add(a);let s=new yr(e0,t0,e,t);s.layers=this.layers,this.add(s);let l=new yr(e0,t0,e,t);l.layers=this.layers,this.add(l);let c=new yr(e0,t0,e,t);c.layers=this.layers,this.add(c);let f=new yr(e0,t0,e,t);f.layers=this.layers,this.add(f)}updateCoordinateSystem(){let e=this.coordinateSystem,t=this.children.concat(),[i,r,a,s,l,c]=t;for(let f of t)this.remove(f);if(e===ho)i.up.set(0,1,0),i.lookAt(1,0,0),r.up.set(0,1,0),r.lookAt(-1,0,0),a.up.set(0,0,-1),a.lookAt(0,1,0),s.up.set(0,0,1),s.lookAt(0,-1,0),l.up.set(0,1,0),l.lookAt(0,0,1),c.up.set(0,1,0),c.lookAt(0,0,-1);else if(e===Dh)i.up.set(0,-1,0),i.lookAt(-1,0,0),r.up.set(0,-1,0),r.lookAt(1,0,0),a.up.set(0,0,1),a.lookAt(0,1,0),s.up.set(0,0,-1),s.lookAt(0,-1,0),l.up.set(0,-1,0),l.lookAt(0,0,1),c.up.set(0,-1,0),c.lookAt(0,0,-1);else throw new Error("THREE.CubeCamera.updateCoordinateSystem(): Invalid coordinate system: "+e);for(let f of t)this.add(f),f.updateMatrixWorld()}update(e,t){this.parent===null&&this.updateMatrixWorld();let{renderTarget:i,activeMipmapLevel:r}=this;this.coordinateSystem!==e.coordinateSystem&&(this.coordinateSystem=e.coordinateSystem,this.updateCoordinateSystem());let[a,s,l,c,f,p]=this.children,h=e.getRenderTarget(),_=e.getActiveCubeFace(),g=e.getActiveMipmapLevel(),E=e.xr.enabled;e.xr.enabled=!1;let x=i.texture.generateMipmaps;i.texture.generateMipmaps=!1;let S=!1;e.isWebGLRenderer===!0?S=e.state.buffers.depth.getReversed():S=e.reversedDepthBuffer,e.setRenderTarget(i,0,r),S&&e.autoClear===!1&&e.clearDepth(),e.render(t,a),e.setRenderTarget(i,1,r),S&&e.autoClear===!1&&e.clearDepth(),e.render(t,s),e.setRenderTarget(i,2,r),S&&e.autoClear===!1&&e.clearDepth(),e.render(t,l),e.setRenderTarget(i,3,r),S&&e.autoClear===!1&&e.clearDepth(),e.render(t,c),e.setRenderTarget(i,4,r),S&&e.autoClear===!1&&e.clearDepth(),e.render(t,f),i.texture.generateMipmaps=x,e.setRenderTarget(i,5,r),S&&e.autoClear===!1&&e.clearDepth(),e.render(t,p),e.setRenderTarget(h,_,g),e.xr.enabled=E,i.texture.needsPMREMUpdate=!0}},Gx=class extends yr{constructor(e=[]){super(),this.isArrayCamera=!0,this.isMultiViewCamera=!1,this.cameras=e}},Wx=class{constructor(){this._previousTime=0,this._currentTime=0,this._startTime=performance.now(),this._delta=0,this._elapsed=0,this._timescale=1,this._document=null,this._pageVisibilityHandler=null}connect(e){this._document=e,e.hidden!==void 0&&(this._pageVisibilityHandler=bX.bind(this),e.addEventListener("visibilitychange",this._pageVisibilityHandler,!1))}disconnect(){this._pageVisibilityHandler!==null&&(this._document.removeEventListener("visibilitychange",this._pageVisibilityHandler),this._pageVisibilityHandler=null),this._document=null}getDelta(){return this._delta/1e3}getElapsed(){return this._elapsed/1e3}getTimescale(){return this._timescale}setTimescale(e){return this._timescale=e,this}reset(){return this._currentTime=performance.now()-this._startTime,this}dispose(){this.disconnect()}update(e){return this._pageVisibilityHandler!==null&&this._document.hidden===!0?this._delta=0:(this._previousTime=this._currentTime,this._currentTime=(e!==void 0?e:performance.now())-this._startTime,this._delta=(this._currentTime-this._previousTime)*this._timescale,this._elapsed+=this._delta),this}};function bX(){this._document.hidden===!1&&this.reset()}var e_=new ve,Yk=new Lr,SX=new ve,t_=new ve,n_=new ve,AC=class extends gi{constructor(){super(),this.type="AudioListener",this.context=q0.getContext(),this.gain=this.context.createGain(),this.gain.connect(this.context.destination),this.filter=null,this.timeDelta=0,this._timer=new Wx}getInput(){return this.gain}removeFilter(){return this.filter!==null&&(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination),this.gain.connect(this.context.destination),this.filter=null),this}getFilter(){return this.filter}setFilter(e){return this.filter!==null?(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination)):this.gain.disconnect(this.context.destination),this.filter=e,this.gain.connect(this.filter),this.filter.connect(this.context.destination),this}getMasterVolume(){return this.gain.gain.value}setMasterVolume(e){return this.gain.gain.setTargetAtTime(e,this.context.currentTime,.01),this}updateMatrixWorld(e){super.updateMatrixWorld(e),this._timer.update();let t=this.context.listener;if(this.timeDelta=this._timer.getDelta(),this.matrixWorld.decompose(e_,Yk,SX),t_.set(0,0,-1).applyQuaternion(Yk),n_.set(0,1,0).applyQuaternion(Yk),t.positionX){let i=this.context.currentTime+this.timeDelta;t.positionX.linearRampToValueAtTime(e_.x,i),t.positionY.linearRampToValueAtTime(e_.y,i),t.positionZ.linearRampToValueAtTime(e_.z,i),t.forwardX.linearRampToValueAtTime(t_.x,i),t.forwardY.linearRampToValueAtTime(t_.y,i),t.forwardZ.linearRampToValueAtTime(t_.z,i),t.upX.linearRampToValueAtTime(n_.x,i),t.upY.linearRampToValueAtTime(n_.y,i),t.upZ.linearRampToValueAtTime(n_.z,i)}else t.setPosition(e_.x,e_.y,e_.z),t.setOrientation(t_.x,t_.y,t_.z,n_.x,n_.y,n_.z)}},jx=class extends gi{constructor(e){super(),this.type="Audio",this.listener=e,this.context=e.context,this.gain=this.context.createGain(),this.gain.connect(e.getInput()),this.autoplay=!1,this.buffer=null,this.detune=0,this.loop=!1,this.loopStart=0,this.loopEnd=0,this.offset=0,this.duration=void 0,this.playbackRate=1,this.isPlaying=!1,this.hasPlaybackControl=!0,this.source=null,this.sourceType="empty",this._startedAt=0,this._progress=0,this._connected=!1,this.filters=[]}getOutput(){return this.gain}setNodeSource(e){return this.hasPlaybackControl=!1,this.sourceType="audioNode",this.source=e,this.connect(),this}setMediaElementSource(e){return this.hasPlaybackControl=!1,this.sourceType="mediaNode",this.source=this.context.createMediaElementSource(e),this.connect(),this}setMediaStreamSource(e){return this.hasPlaybackControl=!1,this.sourceType="mediaStreamNode",this.source=this.context.createMediaStreamSource(e),this.connect(),this}setBuffer(e){return this.buffer=e,this.sourceType="buffer",this.autoplay&&this.play(),this}play(e=0){if(this.isPlaying===!0){Ft("Audio: Audio is already playing.");return}if(this.hasPlaybackControl===!1){Ft("Audio: this Audio has no playback control.");return}this._startedAt=this.context.currentTime+e;let t=this.context.createBufferSource();return t.buffer=this.buffer,t.loop=this.loop,t.loopStart=this.loopStart,t.loopEnd=this.loopEnd,t.onended=this.onEnded.bind(this),t.start(this._startedAt,this._progress+this.offset,this.duration),this.isPlaying=!0,this.source=t,this.setDetune(this.detune),this.setPlaybackRate(this.playbackRate),this.connect()}pause(){if(this.hasPlaybackControl===!1){Ft("Audio: this Audio has no playback control.");return}return this.isPlaying===!0&&(this._progress+=Math.max(this.context.currentTime-this._startedAt,0)*this.playbackRate,this.loop===!0&&(this._progress=this._progress%(this.duration||this.buffer.duration)),this.source.stop(),this.source.onended=null,this.isPlaying=!1),this}stop(e=0){if(this.hasPlaybackControl===!1){Ft("Audio: this Audio has no playback control.");return}return this._progress=0,this.source!==null&&(this.source.stop(this.context.currentTime+e),this.source.onended=null),this.isPlaying=!1,this}connect(){if(this.filters.length>0){this.source.connect(this.filters[0]);for(let e=1,t=this.filters.length;e<t;e++)this.filters[e-1].connect(this.filters[e]);this.filters[this.filters.length-1].connect(this.getOutput())}else this.source.connect(this.getOutput());return this._connected=!0,this}disconnect(){if(this._connected!==!1){if(this.filters.length>0){this.source.disconnect(this.filters[0]);for(let e=1,t=this.filters.length;e<t;e++)this.filters[e-1].disconnect(this.filters[e]);this.filters[this.filters.length-1].disconnect(this.getOutput())}else this.source.disconnect(this.getOutput());return this._connected=!1,this}}getFilters(){return this.filters}setFilters(e){return e||(e=[]),this._connected===!0?(this.disconnect(),this.filters=e.slice(),this.connect()):this.filters=e.slice(),this}setDetune(e){return this.detune=e,this.isPlaying===!0&&this.source.detune!==void 0&&this.source.detune.setTargetAtTime(this.detune,this.context.currentTime,.01),this}getDetune(){return this.detune}getFilter(){return this.getFilters()[0]}setFilter(e){return this.setFilters(e?[e]:[])}setPlaybackRate(e){if(this.hasPlaybackControl===!1){Ft("Audio: this Audio has no playback control.");return}return this.playbackRate=e,this.isPlaying===!0&&this.source.playbackRate.setTargetAtTime(this.playbackRate,this.context.currentTime,.01),this}getPlaybackRate(){return this.playbackRate}onEnded(){this.isPlaying=!1,this._progress=0}getLoop(){return this.hasPlaybackControl===!1?(Ft("Audio: this Audio has no playback control."),!1):this.loop}setLoop(e){if(this.hasPlaybackControl===!1){Ft("Audio: this Audio has no playback control.");return}return this.loop=e,this.isPlaying===!0&&(this.source.loop=this.loop),this}setLoopStart(e){return this.loopStart=e,this}setLoopEnd(e){return this.loopEnd=e,this}getVolume(){return this.gain.gain.value}setVolume(e){return this.gain.gain.setTargetAtTime(e,this.context.currentTime,.01),this}copy(e,t){return super.copy(e,t),e.sourceType!=="buffer"?(Ft("Audio: Audio source type cannot be copied."),this):(this.autoplay=e.autoplay,this.buffer=e.buffer,this.detune=e.detune,this.loop=e.loop,this.loopStart=e.loopStart,this.loopEnd=e.loopEnd,this.offset=e.offset,this.duration=e.duration,this.playbackRate=e.playbackRate,this.hasPlaybackControl=e.hasPlaybackControl,this.sourceType=e.sourceType,this.filters=e.filters.slice(),this)}clone(e){return new this.constructor(this.listener).copy(this,e)}},i_=new ve,D6=new Lr,EX=new ve,r_=new ve,CC=class extends jx{constructor(e){super(e),this.panner=this.context.createPanner(),this.panner.panningModel="HRTF",this.panner.connect(this.gain)}connect(){return super.connect(),this.panner.connect(this.gain),this}disconnect(){return super.disconnect(),this.panner.disconnect(this.gain),this}getOutput(){return this.panner}getRefDistance(){return this.panner.refDistance}setRefDistance(e){return this.panner.refDistance=e,this}getRolloffFactor(){return this.panner.rolloffFactor}setRolloffFactor(e){return this.panner.rolloffFactor=e,this}getDistanceModel(){return this.panner.distanceModel}setDistanceModel(e){return this.panner.distanceModel=e,this}getMaxDistance(){return this.panner.maxDistance}setMaxDistance(e){return this.panner.maxDistance=e,this}setDirectionalCone(e,t,i){return this.panner.coneInnerAngle=e,this.panner.coneOuterAngle=t,this.panner.coneOuterGain=i,this}updateMatrixWorld(e){if(super.updateMatrixWorld(e),this.hasPlaybackControl===!0&&this.isPlaying===!1)return;this.matrixWorld.decompose(i_,D6,EX),r_.set(0,0,1).applyQuaternion(D6);let t=this.panner;if(t.positionX){let i=this.context.currentTime+this.listener.timeDelta;t.positionX.linearRampToValueAtTime(i_.x,i),t.positionY.linearRampToValueAtTime(i_.y,i),t.positionZ.linearRampToValueAtTime(i_.z,i),t.orientationX.linearRampToValueAtTime(r_.x,i),t.orientationY.linearRampToValueAtTime(r_.y,i),t.orientationZ.linearRampToValueAtTime(r_.z,i)}else t.setPosition(i_.x,i_.y,i_.z),t.setOrientation(r_.x,r_.y,r_.z)}},RC=class{constructor(e,t=2048){this.analyser=e.context.createAnalyser(),this.analyser.fftSize=t,this.data=new Uint8Array(this.analyser.frequencyBinCount),e.getOutput().connect(this.analyser)}getFrequencyData(){return this.analyser.getByteFrequencyData(this.data),this.data}getAverageFrequency(){let e=0,t=this.getFrequencyData();for(let i=0;i<t.length;i++)e+=t[i];return e/t.length}},Qx=class{constructor(e,t,i){this.binding=e,this.valueSize=i;let r,a,s;switch(t){case"quaternion":r=this._slerp,a=this._slerpAdditive,s=this._setAdditiveIdentityQuaternion,this.buffer=new Float64Array(i*6),this._workIndex=5;break;case"string":case"bool":r=this._select,a=this._select,s=this._setAdditiveIdentityOther,this.buffer=new Array(i*5);break;default:r=this._lerp,a=this._lerpAdditive,s=this._setAdditiveIdentityNumeric,this.buffer=new Float64Array(i*5)}this._mixBufferRegion=r,this._mixBufferRegionAdditive=a,this._setIdentity=s,this._origIndex=3,this._addIndex=4,this.cumulativeWeight=0,this.cumulativeWeightAdditive=0,this.useCount=0,this.referenceCount=0}accumulate(e,t){let i=this.buffer,r=this.valueSize,a=e*r+r,s=this.cumulativeWeight;if(s===0){for(let l=0;l!==r;++l)i[a+l]=i[l];s=t}else{s+=t;let l=t/s;this._mixBufferRegion(i,a,0,l,r)}this.cumulativeWeight=s}accumulateAdditive(e){let t=this.buffer,i=this.valueSize,r=i*this._addIndex;this.cumulativeWeightAdditive===0&&this._setIdentity(),this._mixBufferRegionAdditive(t,r,0,e,i),this.cumulativeWeightAdditive+=e}apply(e){let t=this.valueSize,i=this.buffer,r=e*t+t,a=this.cumulativeWeight,s=this.cumulativeWeightAdditive,l=this.binding;if(this.cumulativeWeight=0,this.cumulativeWeightAdditive=0,a<1){let c=t*this._origIndex;this._mixBufferRegion(i,r,c,1-a,t)}s>0&&this._mixBufferRegionAdditive(i,r,this._addIndex*t,1,t);for(let c=t,f=t+t;c!==f;++c)if(i[c]!==i[c+t]){l.setValue(i,r);break}}saveOriginalState(){let e=this.binding,t=this.buffer,i=this.valueSize,r=i*this._origIndex;e.getValue(t,r);for(let a=i,s=r;a!==s;++a)t[a]=t[r+a%i];this._setIdentity(),this.cumulativeWeight=0,this.cumulativeWeightAdditive=0}restoreOriginalState(){let e=this.valueSize*3;this.binding.setValue(this.buffer,e)}_setAdditiveIdentityNumeric(){let e=this._addIndex*this.valueSize,t=e+this.valueSize;for(let i=e;i<t;i++)this.buffer[i]=0}_setAdditiveIdentityQuaternion(){this._setAdditiveIdentityNumeric(),this.buffer[this._addIndex*this.valueSize+3]=1}_setAdditiveIdentityOther(){let e=this._origIndex*this.valueSize,t=this._addIndex*this.valueSize;for(let i=0;i<this.valueSize;i++)this.buffer[t+i]=this.buffer[e+i]}_select(e,t,i,r,a){if(r>=.5)for(let s=0;s!==a;++s)e[t+s]=e[i+s]}_slerp(e,t,i,r){Lr.slerpFlat(e,t,e,t,e,i,r)}_slerpAdditive(e,t,i,r,a){let s=this._workIndex*a;Lr.multiplyQuaternionsFlat(e,s,e,t,e,i),Lr.slerpFlat(e,t,e,t,e,s,r)}_lerp(e,t,i,r,a){let s=1-r;for(let l=0;l!==a;++l){let c=t+l;e[c]=e[c]*s+e[i+l]*r}}_lerpAdditive(e,t,i,r,a){for(let s=0;s!==a;++s){let l=t+s;e[l]=e[l]+e[i+s]*r}}},JO="\\[\\]\\.:\\/",wX=new RegExp("["+JO+"]","g"),eD="[^"+JO+"]",xX="[^"+JO.replace("\\.","")+"]",TX=/((?:WC+[\/:])*)/.source.replace("WC",eD),MX=/(WCOD+)?/.source.replace("WCOD",xX),AX=/(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC",eD),CX=/\.(WC+)(?:\[(.+)\])?/.source.replace("WC",eD),RX=new RegExp("^"+TX+MX+AX+CX+"$"),IX=["material","materials","bones","map"],uO=class{constructor(e,t,i){let r=i||Ii.parseTrackName(t);this._targetGroup=e,this._bindings=e.subscribe_(t,r)}getValue(e,t){this.bind();let i=this._targetGroup.nCachedObjects_,r=this._bindings[i];r!==void 0&&r.getValue(e,t)}setValue(e,t){let i=this._bindings;for(let r=this._targetGroup.nCachedObjects_,a=i.length;r!==a;++r)i[r].setValue(e,t)}bind(){let e=this._bindings;for(let t=this._targetGroup.nCachedObjects_,i=e.length;t!==i;++t)e[t].bind()}unbind(){let e=this._bindings;for(let t=this._targetGroup.nCachedObjects_,i=e.length;t!==i;++t)e[t].unbind()}},Ii=class n{constructor(e,t,i){this.path=t,this.parsedPath=i||n.parseTrackName(t),this.node=n.findNode(e,this.parsedPath.nodeName),this.rootNode=e,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}static create(e,t,i){return e&&e.isAnimationObjectGroup?new n.Composite(e,t,i):new n(e,t,i)}static sanitizeNodeName(e){return e.replace(/\s/g,"_").replace(wX,"")}static parseTrackName(e){let t=RX.exec(e);if(t===null)throw new Error("THREE.PropertyBinding: Cannot parse trackName: "+e);let i={nodeName:t[2],objectName:t[3],objectIndex:t[4],propertyName:t[5],propertyIndex:t[6]},r=i.nodeName&&i.nodeName.lastIndexOf(".");if(r!==void 0&&r!==-1){let a=i.nodeName.substring(r+1);IX.indexOf(a)!==-1&&(i.nodeName=i.nodeName.substring(0,r),i.objectName=a)}if(i.propertyName===null||i.propertyName.length===0)throw new Error("THREE.PropertyBinding: can not parse propertyName from trackName: "+e);return i}static findNode(e,t){if(t===void 0||t===""||t==="."||t===-1||t===e.name||t===e.uuid)return e;if(e.skeleton){let i=e.skeleton.getBoneByName(t);if(i!==void 0)return i}if(e.children){let i=function(a){for(let s=0;s<a.length;s++){let l=a[s];if(l.name===t||l.uuid===t)return l;let c=i(l.children);if(c)return c}return null},r=i(e.children);if(r)return r}return null}_getValue_unavailable(){}_setValue_unavailable(){}_getValue_direct(e,t){e[t]=this.targetObject[this.propertyName]}_getValue_array(e,t){let i=this.resolvedProperty;for(let r=0,a=i.length;r!==a;++r)e[t++]=i[r]}_getValue_arrayElement(e,t){e[t]=this.resolvedProperty[this.propertyIndex]}_getValue_toArray(e,t){this.resolvedProperty.toArray(e,t)}_setValue_direct(e,t){this.targetObject[this.propertyName]=e[t]}_setValue_direct_setNeedsUpdate(e,t){this.targetObject[this.propertyName]=e[t],this.targetObject.needsUpdate=!0}_setValue_direct_setMatrixWorldNeedsUpdate(e,t){this.targetObject[this.propertyName]=e[t],this.targetObject.matrixWorldNeedsUpdate=!0}_setValue_array(e,t){let i=this.resolvedProperty;for(let r=0,a=i.length;r!==a;++r)i[r]=e[t++]}_setValue_array_setNeedsUpdate(e,t){let i=this.resolvedProperty;for(let r=0,a=i.length;r!==a;++r)i[r]=e[t++];this.targetObject.needsUpdate=!0}_setValue_array_setMatrixWorldNeedsUpdate(e,t){let i=this.resolvedProperty;for(let r=0,a=i.length;r!==a;++r)i[r]=e[t++];this.targetObject.matrixWorldNeedsUpdate=!0}_setValue_arrayElement(e,t){this.resolvedProperty[this.propertyIndex]=e[t]}_setValue_arrayElement_setNeedsUpdate(e,t){this.resolvedProperty[this.propertyIndex]=e[t],this.targetObject.needsUpdate=!0}_setValue_arrayElement_setMatrixWorldNeedsUpdate(e,t){this.resolvedProperty[this.propertyIndex]=e[t],this.targetObject.matrixWorldNeedsUpdate=!0}_setValue_fromArray(e,t){this.resolvedProperty.fromArray(e,t)}_setValue_fromArray_setNeedsUpdate(e,t){this.resolvedProperty.fromArray(e,t),this.targetObject.needsUpdate=!0}_setValue_fromArray_setMatrixWorldNeedsUpdate(e,t){this.resolvedProperty.fromArray(e,t),this.targetObject.matrixWorldNeedsUpdate=!0}_getValue_unbound(e,t){this.bind(),this.getValue(e,t)}_setValue_unbound(e,t){this.bind(),this.setValue(e,t)}bind(){let e=this.node,t=this.parsedPath,i=t.objectName,r=t.propertyName,a=t.propertyIndex;if(e||(e=n.findNode(this.rootNode,t.nodeName),this.node=e),this.getValue=this._getValue_unavailable,this.setValue=this._setValue_unavailable,!e){Ft("PropertyBinding: No target node found for track: "+this.path+".");return}if(i){let f=t.objectIndex;switch(i){case"materials":if(!e.material){cn("PropertyBinding: Can not bind to material as node does not have a material.",this);return}if(!e.material.materials){cn("PropertyBinding: Can not bind to material.materials as node.material does not have a materials array.",this);return}e=e.material.materials;break;case"bones":if(!e.skeleton){cn("PropertyBinding: Can not bind to bones as node does not have a skeleton.",this);return}e=e.skeleton.bones;for(let p=0;p<e.length;p++)if(e[p].name===f){f=p;break}break;case"map":if("map"in e){e=e.map;break}if(!e.material){cn("PropertyBinding: Can not bind to material as node does not have a material.",this);return}if(!e.material.map){cn("PropertyBinding: Can not bind to material.map as node.material does not have a map.",this);return}e=e.material.map;break;default:if(e[i]===void 0){cn("PropertyBinding: Can not bind to objectName of node undefined.",this);return}e=e[i]}if(f!==void 0){if(e[f]===void 0){cn("PropertyBinding: Trying to bind to objectIndex of objectName, but is undefined.",this,e);return}e=e[f]}}let s=e[r];if(s===void 0){let f=t.nodeName;cn("PropertyBinding: Trying to update property for track: "+f+"."+r+" but it wasn't found.",e);return}let l=this.Versioning.None;this.targetObject=e,e.isMaterial===!0?l=this.Versioning.NeedsUpdate:e.isObject3D===!0&&(l=this.Versioning.MatrixWorldNeedsUpdate);let c=this.BindingType.Direct;if(a!==void 0){if(r==="morphTargetInfluences"){if(!e.geometry){cn("PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.",this);return}if(!e.geometry.morphAttributes){cn("PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.morphAttributes.",this);return}e.morphTargetDictionary[a]!==void 0&&(a=e.morphTargetDictionary[a])}c=this.BindingType.ArrayElement,this.resolvedProperty=s,this.propertyIndex=a}else s.fromArray!==void 0&&s.toArray!==void 0?(c=this.BindingType.HasFromToArray,this.resolvedProperty=s):Array.isArray(s)?(c=this.BindingType.EntireArray,this.resolvedProperty=s):this.propertyName=r;this.getValue=this.GetterByBindingType[c],this.setValue=this.SetterByBindingTypeAndVersioning[c][l]}unbind(){this.node=null,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}};Ii.Composite=uO;Ii.prototype.BindingType={Direct:0,EntireArray:1,ArrayElement:2,HasFromToArray:3};Ii.prototype.Versioning={None:0,NeedsUpdate:1,MatrixWorldNeedsUpdate:2};Ii.prototype.GetterByBindingType=[Ii.prototype._getValue_direct,Ii.prototype._getValue_array,Ii.prototype._getValue_arrayElement,Ii.prototype._getValue_toArray];Ii.prototype.SetterByBindingTypeAndVersioning=[[Ii.prototype._setValue_direct,Ii.prototype._setValue_direct_setNeedsUpdate,Ii.prototype._setValue_direct_setMatrixWorldNeedsUpdate],[Ii.prototype._setValue_array,Ii.prototype._setValue_array_setNeedsUpdate,Ii.prototype._setValue_array_setMatrixWorldNeedsUpdate],[Ii.prototype._setValue_arrayElement,Ii.prototype._setValue_arrayElement_setNeedsUpdate,Ii.prototype._setValue_arrayElement_setMatrixWorldNeedsUpdate],[Ii.prototype._setValue_fromArray,Ii.prototype._setValue_fromArray_setNeedsUpdate,Ii.prototype._setValue_fromArray_setMatrixWorldNeedsUpdate]];var IC=class{constructor(){this.isAnimationObjectGroup=!0,this.uuid=tl(),this._objects=Array.prototype.slice.call(arguments),this.nCachedObjects_=0;let e={};this._indicesByUUID=e;for(let i=0,r=arguments.length;i!==r;++i)e[arguments[i].uuid]=i;this._paths=[],this._parsedPaths=[],this._bindings=[],this._bindingsIndicesByPath={};let t=this;this.stats={objects:{get total(){return t._objects.length},get inUse(){return this.total-t.nCachedObjects_}},get bindingsPerObject(){return t._bindings.length}}}add(){let e=this._objects,t=this._indicesByUUID,i=this._paths,r=this._parsedPaths,a=this._bindings,s=a.length,l,c=e.length,f=this.nCachedObjects_;for(let p=0,h=arguments.length;p!==h;++p){let _=arguments[p],g=_.uuid,E=t[g];if(E===void 0){E=c++,t[g]=E,e.push(_);for(let x=0,S=s;x!==S;++x)a[x].push(new Ii(_,i[x],r[x]))}else if(E<f){l=e[E];let x=--f,S=e[x];t[S.uuid]=E,e[E]=S,t[g]=x,e[x]=_;for(let v=0,M=s;v!==M;++v){let O=a[v],k=O[x],q=O[E];O[E]=k,q===void 0&&(q=new Ii(_,i[v],r[v])),O[x]=q}}else e[E]!==l&&cn("AnimationObjectGroup: Different objects with the same UUID detected. Clean the caches or recreate your infrastructure when reloading scenes.")}this.nCachedObjects_=f}remove(){let e=this._objects,t=this._indicesByUUID,i=this._bindings,r=i.length,a=this.nCachedObjects_;for(let s=0,l=arguments.length;s!==l;++s){let c=arguments[s],f=c.uuid,p=t[f];if(p!==void 0&&p>=a){let h=a++,_=e[h];t[_.uuid]=p,e[p]=_,t[f]=h,e[h]=c;for(let g=0,E=r;g!==E;++g){let x=i[g],S=x[h],v=x[p];x[p]=S,x[h]=v}}}this.nCachedObjects_=a}uncache(){let e=this._objects,t=this._indicesByUUID,i=this._bindings,r=i.length,a=this.nCachedObjects_,s=e.length;for(let l=0,c=arguments.length;l!==c;++l){let f=arguments[l],p=f.uuid,h=t[p];if(h!==void 0)if(delete t[p],h<a){let _=--a,g=e[_],E=--s,x=e[E];h!==_&&(t[g.uuid]=h),e[h]=g,_!==E&&(t[x.uuid]=_),e[_]=x,e.pop();for(let S=0,v=r;S!==v;++S){let M=i[S],O=M[_],k=M[E];M[h]=O,M[_]=k,M.pop()}}else{let _=--s,g=e[_];h!==_&&(t[g.uuid]=h),e[h]=g,e.pop();for(let E=0,x=r;E!==x;++E){let S=i[E];S[h]=S[_],S.pop()}}}this.nCachedObjects_=a}subscribe_(e,t){let i=this._bindingsIndicesByPath,r=i[e],a=this._bindings;if(r!==void 0)return a[r];let s=this._paths,l=this._parsedPaths,c=this._objects,f=c.length,p=this.nCachedObjects_,h=new Array(f);r=a.length,i[e]=r,s.push(e),l.push(t),a.push(h);for(let _=p,g=c.length;_!==g;++_){let E=c[_];h[_]=new Ii(E,e,t)}return h}unsubscribe_(e){let t=this._bindingsIndicesByPath,i=t[e];if(i!==void 0){let r=this._paths,a=this._parsedPaths,s=this._bindings,l=s.length-1,c=s[l],f=r[l];t[f]=i,s[i]=c,s.pop(),a[i]=a[l],a.pop(),r[i]=r[l],r.pop()}}},Xx=class{constructor(e,t,i=null,r=t.blendMode){this._mixer=e,this._clip=t,this._localRoot=i,this.blendMode=r;let a=t.tracks,s=a.length,l=new Array(s),c={endingStart:Nh,endingEnd:Nh};for(let f=0;f!==s;++f){let p=a[f].createInterpolant(null);l[f]=p,p.settings=c}this._interpolantSettings=c,this._interpolants=l,this._propertyBindings=new Array(s),this._cacheIndex=null,this._byClipCacheIndex=null,this._timeScaleInterpolant=null,this._restoreTimeScale=null,this._weightInterpolant=null,this.loop=FO,this._loopCount=-1,this._startTime=null,this.time=0,this.timeScale=1,this._effectiveTimeScale=1,this.weight=1,this._effectiveWeight=1,this.repetitions=1/0,this.paused=!1,this.enabled=!0,this.clampWhenFinished=!1,this.zeroSlopeAtStart=!0,this.zeroSlopeAtEnd=!0}play(){return this._mixer._activateAction(this),this}stop(){return this._mixer._deactivateAction(this),this.reset()}reset(){return this.paused=!1,this.enabled=!0,this.time=0,this._loopCount=-1,this._startTime=null,this.stopFading().stopWarping()}isRunning(){return this.enabled&&!this.paused&&this.timeScale!==0&&this._startTime===null&&this._mixer._isActiveAction(this)}isScheduled(){return this._mixer._isActiveAction(this)}startAt(e){return this._startTime=e,this}setLoop(e,t){return this.loop=e,this.repetitions=t,this}setEffectiveWeight(e){return this.weight=e,this._effectiveWeight=this.enabled?e:0,this.stopFading()}getEffectiveWeight(){return this._effectiveWeight}fadeIn(e){return this._scheduleFading(e,0,1)}fadeOut(e){return this._scheduleFading(e,1,0)}crossFadeFrom(e,t,i=!1){if(e.fadeOut(t),this.fadeIn(t),i===!0){let r=this._clip.duration,a=e._clip.duration,s=a/r,l=r/a;e._restoreTimeScale=e.timeScale,this._restoreTimeScale=this.timeScale,e.warp(1,s,t),this.warp(l,1,t)}return this}crossFadeTo(e,t,i=!1){return e.crossFadeFrom(this,t,i)}stopFading(){let e=this._weightInterpolant;return e!==null&&(this._weightInterpolant=null,this._mixer._takeBackControlInterpolant(e)),this}setEffectiveTimeScale(e){return this.timeScale=e,this._effectiveTimeScale=this.paused?0:e,this.stopWarping()}getEffectiveTimeScale(){return this._effectiveTimeScale}setDuration(e){return this.timeScale=this._clip.duration/e,this.stopWarping()}syncWith(e){return this.time=e.time,this.timeScale=e.timeScale,this.stopWarping()}halt(e){return this.warp(this._effectiveTimeScale,0,e)}warp(e,t,i){let r=this._mixer,a=r.time,s=this.timeScale,l=this._timeScaleInterpolant;l===null&&(l=r._lendControlInterpolant(),this._timeScaleInterpolant=l);let c=l.parameterPositions,f=l.sampleValues;return c[0]=a,c[1]=a+i,f[0]=e/s,f[1]=t/s,this}stopWarping(){let e=this._timeScaleInterpolant;return e!==null&&(this._timeScaleInterpolant=null,this._mixer._takeBackControlInterpolant(e)),this._restoreTimeScale=null,this}getMixer(){return this._mixer}getClip(){return this._clip}getRoot(){return this._localRoot||this._mixer._root}_update(e,t,i,r){if(!this.enabled){this._updateWeight(e);return}let a=this._startTime;if(a!==null){let c=(e-a)*i;c<0||i===0?t=0:(this._startTime=null,t=i*c)}t*=this._updateTimeScale(e);let s=this._updateTime(t),l=this._updateWeight(e);if(l>0){let c=this._interpolants,f=this._propertyBindings;switch(this.blendMode){case S2:for(let p=0,h=c.length;p!==h;++p)c[p].evaluate(s),f[p].accumulateAdditive(l);break;case k1:default:for(let p=0,h=c.length;p!==h;++p)c[p].evaluate(s),f[p].accumulate(r,l)}}}_updateWeight(e){let t=0;if(this.enabled){t=this.weight;let i=this._weightInterpolant;if(i!==null){let r=i.evaluate(e)[0];t*=r,e>i.parameterPositions[1]&&(this.stopFading(),r===0&&(this.enabled=!1))}}return this._effectiveWeight=t,t}_updateTimeScale(e){let t=0;if(!this.paused){t=this.timeScale;let i=this._timeScaleInterpolant;if(i!==null){let r=i.evaluate(e)[0];t*=r,e>i.parameterPositions[1]&&(t===0?this.paused=!0:(this._restoreTimeScale!==null&&(t=this._restoreTimeScale),this.timeScale=t),this.stopWarping())}}return this._effectiveTimeScale=t,t}_updateTime(e){let t=this._clip.duration,i=this.loop,r=this.time+e,a=this._loopCount,s=i===PO;if(e===0)return a===-1?r:s&&(a&1)===1?t-r:r;if(i===DO){a===-1&&(this._loopCount=0,this._setEndings(!0,!0,!1));e:{if(r>=t)r=t;else if(r<0)r=0;else{this.time=r;break e}this.clampWhenFinished?this.paused=!0:this.enabled=!1,this.time=r,this._mixer.dispatchEvent({type:"finished",action:this,direction:e<0?-1:1})}}else{if(a===-1&&(e>=0?(a=0,this._setEndings(!0,this.repetitions===0,s)):this._setEndings(this.repetitions===0,!0,s)),r>=t||r<0){let l=Math.floor(r/t);r-=t*l,a+=Math.abs(l);let c=this.repetitions-a;if(c<=0)this.clampWhenFinished?this.paused=!0:this.enabled=!1,r=e>0?t:0,this.time=r,this._mixer.dispatchEvent({type:"finished",action:this,direction:e>0?1:-1});else{if(c===1){let f=e<0;this._setEndings(f,!f,s)}else this._setEndings(!1,!1,s);this._loopCount=a,this.time=r,this._mixer.dispatchEvent({type:"loop",action:this,loopDelta:l})}}else this._loopCount=a,this.time=r;if(s&&(a&1)===1)return t-r}return r}_setEndings(e,t,i){let r=this._interpolantSettings;i?(r.endingStart=kh,r.endingEnd=kh):(e?r.endingStart=this.zeroSlopeAtStart?kh:Nh:r.endingStart=u0,t?r.endingEnd=this.zeroSlopeAtEnd?kh:Nh:r.endingEnd=u0)}_scheduleFading(e,t,i){let r=this._mixer,a=r.time,s=this._weightInterpolant;s===null&&(s=r._lendControlInterpolant(),this._weightInterpolant=s);let l=s.parameterPositions,c=s.sampleValues;return l[0]=a,c[0]=t,l[1]=a+e,c[1]=i,this}},LX=new Float32Array(1),LC=class extends po{constructor(e){super(),this._root=e,this._initMemoryManager(),this._accuIndex=0,this.time=0,this.timeScale=1,typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}_bindAction(e,t){let i=e._localRoot||this._root,r=e._clip.tracks,a=r.length,s=e._propertyBindings,l=e._interpolants,c=i.uuid,f=this._bindingsByRootAndName,p=f[c];p===void 0&&(p={},f[c]=p);for(let h=0;h!==a;++h){let _=r[h],g=_.name,E=p[g];if(E!==void 0)++E.referenceCount,s[h]=E;else{if(E=s[h],E!==void 0){E._cacheIndex===null&&(++E.referenceCount,this._addInactiveBinding(E,c,g));continue}let x=t&&t._propertyBindings[h].binding.parsedPath;E=new Qx(Ii.create(i,g,x),_.ValueTypeName,_.getValueSize()),++E.referenceCount,this._addInactiveBinding(E,c,g),s[h]=E}l[h].resultBuffer=E.buffer}}_activateAction(e){if(!this._isActiveAction(e)){if(e._cacheIndex===null){let i=(e._localRoot||this._root).uuid,r=e._clip.uuid,a=this._actionsByClip[r];this._bindAction(e,a&&a.knownActions[0]),this._addInactiveAction(e,r,i)}let t=e._propertyBindings;for(let i=0,r=t.length;i!==r;++i){let a=t[i];a.useCount++===0&&(this._lendBinding(a),a.saveOriginalState())}this._lendAction(e)}}_deactivateAction(e){if(this._isActiveAction(e)){let t=e._propertyBindings;for(let i=0,r=t.length;i!==r;++i){let a=t[i];--a.useCount===0&&(a.restoreOriginalState(),this._takeBackBinding(a))}this._takeBackAction(e)}}_initMemoryManager(){this._actions=[],this._nActiveActions=0,this._actionsByClip={},this._bindings=[],this._nActiveBindings=0,this._bindingsByRootAndName={},this._controlInterpolants=[],this._nActiveControlInterpolants=0;let e=this;this.stats={actions:{get total(){return e._actions.length},get inUse(){return e._nActiveActions}},bindings:{get total(){return e._bindings.length},get inUse(){return e._nActiveBindings}},controlInterpolants:{get total(){return e._controlInterpolants.length},get inUse(){return e._nActiveControlInterpolants}}}}_isActiveAction(e){let t=e._cacheIndex;return t!==null&&t<this._nActiveActions}_addInactiveAction(e,t,i){let r=this._actions,a=this._actionsByClip,s=a[t];if(s===void 0)s={knownActions:[e],actionByRoot:{}},e._byClipCacheIndex=0,a[t]=s;else{let l=s.knownActions;e._byClipCacheIndex=l.length,l.push(e)}e._cacheIndex=r.length,r.push(e),s.actionByRoot[i]=e}_removeInactiveAction(e){let t=this._actions,i=t[t.length-1],r=e._cacheIndex;i._cacheIndex=r,t[r]=i,t.pop(),e._cacheIndex=null;let a=e._clip.uuid,s=this._actionsByClip,l=s[a],c=l.knownActions,f=c[c.length-1],p=e._byClipCacheIndex;f._byClipCacheIndex=p,c[p]=f,c.pop(),e._byClipCacheIndex=null;let h=l.actionByRoot,_=(e._localRoot||this._root).uuid;delete h[_],c.length===0&&delete s[a],this._removeInactiveBindingsForAction(e)}_removeInactiveBindingsForAction(e){let t=e._propertyBindings;for(let i=0,r=t.length;i!==r;++i){let a=t[i];--a.referenceCount===0&&this._removeInactiveBinding(a)}}_lendAction(e){let t=this._actions,i=e._cacheIndex,r=this._nActiveActions++,a=t[r];e._cacheIndex=r,t[r]=e,a._cacheIndex=i,t[i]=a}_takeBackAction(e){let t=this._actions,i=e._cacheIndex,r=--this._nActiveActions,a=t[r];e._cacheIndex=r,t[r]=e,a._cacheIndex=i,t[i]=a}_addInactiveBinding(e,t,i){let r=this._bindingsByRootAndName,a=this._bindings,s=r[t];s===void 0&&(s={},r[t]=s),s[i]=e,e._cacheIndex=a.length,a.push(e)}_removeInactiveBinding(e){let t=this._bindings,i=e.binding,r=i.rootNode.uuid,a=i.path,s=this._bindingsByRootAndName,l=s[r],c=t[t.length-1],f=e._cacheIndex;c._cacheIndex=f,t[f]=c,t.pop(),delete l[a],Object.keys(l).length===0&&delete s[r]}_lendBinding(e){let t=this._bindings,i=e._cacheIndex,r=this._nActiveBindings++,a=t[r];e._cacheIndex=r,t[r]=e,a._cacheIndex=i,t[i]=a}_takeBackBinding(e){let t=this._bindings,i=e._cacheIndex,r=--this._nActiveBindings,a=t[r];e._cacheIndex=r,t[r]=e,a._cacheIndex=i,t[i]=a}_lendControlInterpolant(){let e=this._controlInterpolants,t=this._nActiveControlInterpolants++,i=e[t];return i===void 0&&(i=new O0(new Float32Array(2),new Float32Array(2),1,LX),i.__cacheIndex=t,e[t]=i),i}_takeBackControlInterpolant(e){let t=this._controlInterpolants,i=e.__cacheIndex,r=--this._nActiveControlInterpolants,a=t[r];e.__cacheIndex=r,t[r]=e,a.__cacheIndex=i,t[i]=a}clipAction(e,t,i){let r=t||this._root,a=r.uuid,s=typeof e=="string"?Hh.findByName(r,e):e,l=s!==null?s.uuid:e,c=this._actionsByClip[l],f=null;if(i===void 0&&(s!==null?i=s.blendMode:i=k1),c!==void 0){let h=c.actionByRoot[a];if(h!==void 0&&h.blendMode===i)return h;f=c.knownActions[0],s===null&&(s=f._clip)}if(s===null)return null;let p=new Xx(this,s,t,i);return this._bindAction(p,f),this._addInactiveAction(p,l,a),p}existingAction(e,t){let i=t||this._root,r=i.uuid,a=typeof e=="string"?Hh.findByName(i,e):e,s=a?a.uuid:e,l=this._actionsByClip[s];return l!==void 0&&l.actionByRoot[r]||null}stopAllAction(){let e=this._actions,t=this._nActiveActions;for(let i=t-1;i>=0;--i)e[i].stop();return this}update(e){e*=this.timeScale;let t=this._actions,i=this._nActiveActions,r=this.time+=e,a=Math.sign(e),s=this._accuIndex^=1;for(let f=0;f!==i;++f)t[f]._update(r,e,a,s);let l=this._bindings,c=this._nActiveBindings;for(let f=0;f!==c;++f)l[f].apply(s);return this}setTime(e){this.time=0;for(let t=0;t<this._actions.length;t++)this._actions[t].time=0;return this.update(e)}getRoot(){return this._root}uncacheClip(e){let t=this._actions,i=e.uuid,r=this._actionsByClip,a=r[i];if(a!==void 0){let s=a.knownActions;for(let l=0,c=s.length;l!==c;++l){let f=s[l];this._deactivateAction(f);let p=f._cacheIndex,h=t[t.length-1];f._cacheIndex=null,f._byClipCacheIndex=null,h._cacheIndex=p,t[p]=h,t.pop(),this._removeInactiveBindingsForAction(f)}delete r[i]}}uncacheRoot(e){let t=e.uuid,i=this._actionsByClip;for(let s in i){let l=i[s].actionByRoot,c=l[t];c!==void 0&&(this._deactivateAction(c),this._removeInactiveAction(c))}let r=this._bindingsByRootAndName,a=r[t];if(a!==void 0)for(let s in a){let l=a[s];l.restoreOriginalState(),this._removeInactiveBinding(l)}}uncacheAction(e,t){let i=this.existingAction(e,t);i!==null&&(this._deactivateAction(i),this._removeInactiveAction(i))}},NC=class extends h0{constructor(e=1,t=1,i=1,r={}){super(e,t,r),this.isRenderTarget3D=!0,this.depth=i;for(let a=0;a<this.textures.length;a++){let s=new u_(null,e,t,i);s.isRenderTargetTexture=!0,s.renderTarget=this,this.textures[a]=s}this._setTextureOptions(r)}},kC=class n{constructor(e){this.value=e}clone(){return new n(this.value.clone===void 0?this.value:this.value.clone())}},NX=0,OC=class extends po{constructor(){super(),this.isUniformsGroup=!0,Object.defineProperty(this,"id",{value:NX++}),this.name="",this.usage=F1,this.uniforms=[]}add(e){return this.uniforms.push(e),this}remove(e){let t=this.uniforms.indexOf(e);return t!==-1&&this.uniforms.splice(t,1),this}setName(e){return this.name=e,this}setUsage(e){return this.usage=e,this}dispose(){this.dispatchEvent({type:"dispose"})}copy(e){this.name=e.name,this.usage=e.usage;let t=e.uniforms;this.uniforms.length=0;for(let i=0,r=t.length;i<r;i++){let a=Array.isArray(t[i])?t[i]:[t[i]];for(let s=0;s<a.length;s++)this.uniforms.push(a[s].clone())}return this}clone(){return new this.constructor().copy(this)}},DC=class extends d_{constructor(e,t,i=1){super(e,t),this.isInstancedInterleavedBuffer=!0,this.meshPerAttribute=i}copy(e){return super.copy(e),this.meshPerAttribute=e.meshPerAttribute,this}clone(e){let t=super.clone(e);return t.meshPerAttribute=this.meshPerAttribute,t}toJSON(e){let t=super.toJSON(e);return t.isInstancedInterleavedBuffer=!0,t.meshPerAttribute=this.meshPerAttribute,t}},FC=class{constructor(e,t,i,r,a,s=!1){this.isGLBufferAttribute=!0,this.name="",this.buffer=e,this.type=t,this.itemSize=i,this.elementSize=r,this.count=a,this.normalized=s,this.version=0}set needsUpdate(e){e===!0&&this.version++}setBuffer(e){return this.buffer=e,this}setType(e,t){return this.type=e,this.elementSize=t,this}setItemSize(e){return this.itemSize=e,this}setCount(e){return this.count=e,this}},F6=new Cn,B0=class{constructor(e,t,i=0,r=1/0){this.ray=new Ru(e,t),this.near=i,this.far=r,this.camera=null,this.layers=new zc,this.params={Mesh:{},Line:{threshold:1},LOD:{},Points:{threshold:1},Sprite:{}}}set(e,t){this.ray.set(e,t)}setFromCamera(e,t){t.isPerspectiveCamera?(this.ray.origin.setFromMatrixPosition(t.matrixWorld),this.ray.direction.set(e.x,e.y,.5).unproject(t).sub(this.ray.origin).normalize(),this.camera=t):t.isOrthographicCamera?(this.ray.origin.set(e.x,e.y,t.projectionMatrix.elements[14]).unproject(t),this.ray.direction.set(0,0,-1).transformDirection(t.matrixWorld),this.camera=t):cn("Raycaster: Unsupported camera type: "+t.type)}setFromXRController(e){return F6.identity().extractRotation(e.matrixWorld),this.ray.origin.setFromMatrixPosition(e.matrixWorld),this.ray.direction.set(0,0,-1).applyMatrix4(F6),this}intersectObject(e,t=!0,i=[]){return cO(e,this,i,t),i.sort(P6),i}intersectObjects(e,t=!0,i=[]){for(let r=0,a=e.length;r<a;r++)cO(e[r],this,i,t);return i.sort(P6),i}};function P6(n,e){return n.distance-e.distance}function cO(n,e,t,i){let r=!0;if(n.layers.test(e.layers)&&n.raycast(e,t)===!1&&(r=!1),r===!0&&i===!0){let a=n.children;for(let s=0,l=a.length;s<l;s++)cO(a[s],e,t,!0)}}var H0=class{constructor(e=!0){this.autoStart=e,this.startTime=0,this.oldTime=0,this.elapsedTime=0,this.running=!1,Ft("Clock: This module has been deprecated. Please use THREE.Timer instead.")}start(){this.startTime=performance.now(),this.oldTime=this.startTime,this.elapsedTime=0,this.running=!0}stop(){this.getElapsedTime(),this.running=!1,this.autoStart=!1}getElapsedTime(){return this.getDelta(),this.elapsedTime}getDelta(){let e=0;if(this.autoStart&&!this.running)return this.start(),0;if(this.running){let t=performance.now();e=(t-this.oldTime)/1e3,this.oldTime=t,this.elapsedTime+=e}return e}},S_=class{constructor(e=1,t=0,i=0){this.radius=e,this.phi=t,this.theta=i}set(e,t,i){return this.radius=e,this.phi=t,this.theta=i,this}copy(e){return this.radius=e.radius,this.phi=e.phi,this.theta=e.theta,this}makeSafe(){return this.phi=Tn(this.phi,1e-6,Math.PI-1e-6),this}setFromVector3(e){return this.setFromCartesianCoords(e.x,e.y,e.z)}setFromCartesianCoords(e,t,i){return this.radius=Math.sqrt(e*e+t*t+i*i),this.radius===0?(this.theta=0,this.phi=0):(this.theta=Math.atan2(e,i),this.phi=Math.acos(Tn(t/this.radius,-1,1))),this}clone(){return new this.constructor().copy(this)}},PC=class{constructor(e=1,t=0,i=0){this.radius=e,this.theta=t,this.y=i}set(e,t,i){return this.radius=e,this.theta=t,this.y=i,this}copy(e){return this.radius=e.radius,this.theta=e.theta,this.y=e.y,this}setFromVector3(e){return this.setFromCartesianCoords(e.x,e.y,e.z)}setFromCartesianCoords(e,t,i){return this.radius=Math.sqrt(e*e+i*i),this.theta=Math.atan2(e,i),this.y=t,this}clone(){return new this.constructor().copy(this)}},UC=class n{static{n.prototype.isMatrix2=!0}constructor(e,t,i,r){this.elements=[1,0,0,1],e!==void 0&&this.set(e,t,i,r)}identity(){return this.set(1,0,0,1),this}fromArray(e,t=0){for(let i=0;i<4;i++)this.elements[i]=e[i+t];return this}set(e,t,i,r){let a=this.elements;return a[0]=e,a[2]=t,a[1]=i,a[3]=r,this}},U6=new ut,Yx=class{constructor(e=new ut(1/0,1/0),t=new ut(-1/0,-1/0)){this.isBox2=!0,this.min=e,this.max=t}set(e,t){return this.min.copy(e),this.max.copy(t),this}setFromPoints(e){this.makeEmpty();for(let t=0,i=e.length;t<i;t++)this.expandByPoint(e[t]);return this}setFromCenterAndSize(e,t){let i=U6.copy(t).multiplyScalar(.5);return this.min.copy(e).sub(i),this.max.copy(e).add(i),this}clone(){return new this.constructor().copy(this)}copy(e){return this.min.copy(e.min),this.max.copy(e.max),this}makeEmpty(){return this.min.x=this.min.y=1/0,this.max.x=this.max.y=-1/0,this}isEmpty(){return this.max.x<this.min.x||this.max.y<this.min.y}getCenter(e){return this.isEmpty()?e.set(0,0):e.addVectors(this.min,this.max).multiplyScalar(.5)}getSize(e){return this.isEmpty()?e.set(0,0):e.subVectors(this.max,this.min)}expandByPoint(e){return this.min.min(e),this.max.max(e),this}expandByVector(e){return this.min.sub(e),this.max.add(e),this}expandByScalar(e){return this.min.addScalar(-e),this.max.addScalar(e),this}containsPoint(e){return e.x>=this.min.x&&e.x<=this.max.x&&e.y>=this.min.y&&e.y<=this.max.y}containsBox(e){return this.min.x<=e.min.x&&e.max.x<=this.max.x&&this.min.y<=e.min.y&&e.max.y<=this.max.y}getParameter(e,t){return t.set((e.x-this.min.x)/(this.max.x-this.min.x),(e.y-this.min.y)/(this.max.y-this.min.y))}intersectsBox(e){return e.max.x>=this.min.x&&e.min.x<=this.max.x&&e.max.y>=this.min.y&&e.min.y<=this.max.y}clampPoint(e,t){return t.copy(e).clamp(this.min,this.max)}distanceToPoint(e){return this.clampPoint(e,U6).distanceTo(e)}intersect(e){return this.min.max(e.min),this.max.min(e.max),this.isEmpty()&&this.makeEmpty(),this}union(e){return this.min.min(e.min),this.max.max(e.max),this}translate(e){return this.min.add(e),this.max.add(e),this}equals(e){return e.min.equals(this.min)&&e.max.equals(this.max)}},z6=new ve,WA=new ve,n0=new ve,i0=new ve,Kk=new ve,kX=new ve,OX=new ve,zC=class{constructor(e=new ve,t=new ve){this.start=e,this.end=t}set(e,t){return this.start.copy(e),this.end.copy(t),this}copy(e){return this.start.copy(e.start),this.end.copy(e.end),this}getCenter(e){return e.addVectors(this.start,this.end).multiplyScalar(.5)}delta(e){return e.subVectors(this.end,this.start)}distanceSq(){return this.start.distanceToSquared(this.end)}distance(){return this.start.distanceTo(this.end)}at(e,t){return this.delta(t).multiplyScalar(e).add(this.start)}closestPointToPointParameter(e,t){z6.subVectors(e,this.start),WA.subVectors(this.end,this.start);let i=WA.dot(WA);if(i===0)return 0;let a=WA.dot(z6)/i;return t&&(a=Tn(a,0,1)),a}closestPointToPoint(e,t,i){let r=this.closestPointToPointParameter(e,t);return this.delta(i).multiplyScalar(r).add(this.start)}distanceSqToLine3(e,t=kX,i=OX){let r=10000000000000001e-32,a,s,l=this.start,c=e.start,f=this.end,p=e.end;n0.subVectors(f,l),i0.subVectors(p,c),Kk.subVectors(l,c);let h=n0.dot(n0),_=i0.dot(i0),g=i0.dot(Kk);if(h<=r&&_<=r)return t.copy(l),i.copy(c),t.sub(i),t.dot(t);if(h<=r)a=0,s=g/_,s=Tn(s,0,1);else{let E=n0.dot(Kk);if(_<=r)s=0,a=Tn(-E/h,0,1);else{let x=n0.dot(i0),S=h*_-x*x;S!==0?a=Tn((x*g-E*_)/S,0,1):a=0,s=(x*a+g)/_,s<0?(s=0,a=Tn(-E/h,0,1)):s>1&&(s=1,a=Tn((x-E)/h,0,1))}}return t.copy(l).addScaledVector(n0,a),i.copy(c).addScaledVector(i0,s),t.distanceToSquared(i)}applyMatrix4(e){return this.start.applyMatrix4(e),this.end.applyMatrix4(e),this}equals(e){return e.start.equals(this.start)&&e.end.equals(this.end)}clone(){return new this.constructor().copy(this)}},q6=new ve,qC=class extends gi{constructor(e,t){super(),this.light=e,this.matrixAutoUpdate=!1,this.color=t,this.type="SpotLightHelper";let i=new Nn,r=[0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,-1,0,1,0,0,0,0,1,1,0,0,0,0,-1,1];for(let s=0,l=1,c=32;s<c;s++,l++){let f=s/c*Math.PI*2,p=l/c*Math.PI*2;r.push(Math.cos(f),Math.sin(f),1,Math.cos(p),Math.sin(p),1)}i.setAttribute("position",new an(r,3));let a=new xa({fog:!1,toneMapped:!1});this.cone=new nl(i,a),this.add(this.cone),this.update()}dispose(){super.dispose(),this.cone.geometry.dispose(),this.cone.material.dispose()}update(){this.light.updateWorldMatrix(!0,!1),this.light.target.updateWorldMatrix(!0,!1),this.parent?(this.parent.updateWorldMatrix(!0),this.matrix.copy(this.parent.matrixWorld).invert().multiply(this.light.matrixWorld)):this.matrix.copy(this.light.matrixWorld),this.matrixWorldNeedsUpdate=!0;let e=this.light.distance?this.light.distance:1e3,t=e*Math.tan(this.light.angle);this.cone.scale.set(t,t,e),q6.setFromMatrixPosition(this.light.target.matrixWorld),this.cone.lookAt(q6),this.color!==void 0?this.cone.material.color.set(this.color):this.cone.material.color.copy(this.light.color)}},Lh=new ve,jA=new Cn,Zk=new Cn,BC=class extends nl{constructor(e){let t=Z5(e),i=new Nn,r=[],a=[];for(let f=0;f<t.length;f++){let p=t[f];p.parent&&p.parent.isBone&&(r.push(0,0,0),r.push(0,0,0),a.push(0,0,0),a.push(0,0,0))}i.setAttribute("position",new an(r,3)),i.setAttribute("color",new an(a,3));let s=new xa({vertexColors:!0,depthTest:!1,depthWrite:!1,toneMapped:!1,transparent:!0});super(i,s),this.isSkeletonHelper=!0,this.type="SkeletonHelper",this.root=e,this.bones=t,this.matrix=e.matrixWorld,this.matrixAutoUpdate=!1;let l=new Vt(255),c=new Vt(65280);this.setColors(l,c)}updateMatrixWorld(e){let t=this.bones,i=this.geometry,r=i.getAttribute("position");Zk.copy(this.root.matrixWorld).invert();for(let a=0,s=0;a<t.length;a++){let l=t[a];l.parent&&l.parent.isBone&&(jA.multiplyMatrices(Zk,l.matrixWorld),Lh.setFromMatrixPosition(jA),r.setXYZ(s,Lh.x,Lh.y,Lh.z),jA.multiplyMatrices(Zk,l.parent.matrixWorld),Lh.setFromMatrixPosition(jA),r.setXYZ(s+1,Lh.x,Lh.y,Lh.z),s+=2)}i.getAttribute("position").needsUpdate=!0,super.updateMatrixWorld(e)}setColors(e,t){let r=this.geometry.getAttribute("color");for(let a=0;a<r.count;a+=2)r.setXYZ(a,e.r,e.g,e.b),r.setXYZ(a+1,t.r,t.g,t.b);return r.needsUpdate=!0,this}dispose(){super.dispose(),this.geometry.dispose(),this.material.dispose()}};function Z5(n){let e=[];n.isBone===!0&&e.push(n);for(let t=0;t<n.children.length;t++)e.push(...Z5(n.children[t]));return e}var HC=class extends dr{constructor(e,t,i){let r=new I0(t,4,2),a=new Iu({wireframe:!0,fog:!1,toneMapped:!1});super(r,a),this.light=e,this.color=i,this.type="PointLightHelper",this.matrix=this.light.matrixWorld,this.matrixAutoUpdate=!1,this.update()}dispose(){super.dispose(),this.geometry.dispose(),this.material.dispose()}update(){this.matrixWorldNeedsUpdate=!0,this.light.updateWorldMatrix(!0,!1),this.color!==void 0?this.material.color.set(this.color):this.material.color.copy(this.light.color)}},DX=new ve,B6=new Vt,H6=new Vt,VC=class extends gi{constructor(e,t,i){super(),this.light=e,this.matrix=e.matrixWorld,this.matrixAutoUpdate=!1,this.color=i,this.type="HemisphereLightHelper";let r=new R0(t);r.rotateY(Math.PI*.5),this.material=new Iu({wireframe:!0,fog:!1,toneMapped:!1}),this.color===void 0&&(this.material.vertexColors=!0);let a=r.getAttribute("position"),s=new Float32Array(a.count*3);r.setAttribute("color",new Li(s,3)),this.add(new dr(r,this.material)),this.update()}dispose(){super.dispose(),this.children[0].geometry.dispose(),this.children[0].material.dispose()}update(){let e=this.children[0];if(this.color!==void 0)this.material.color.set(this.color);else{let t=e.geometry.getAttribute("color");B6.copy(this.light.color),H6.copy(this.light.groundColor);for(let i=0,r=t.count;i<r;i++){let a=i<r/2?B6:H6;t.setXYZ(i,a.r,a.g,a.b)}t.needsUpdate=!0}this.matrixWorldNeedsUpdate=!0,this.light.updateWorldMatrix(!0,!1),e.lookAt(DX.setFromMatrixPosition(this.light.matrixWorld).negate())}},GC=class extends nl{constructor(e=10,t=10,i=4473924,r=8947848){i=new Vt(i),r=new Vt(r);let a=t/2,s=e/t,l=e/2,c=[],f=[];for(let _=0,g=0,E=-l;_<=t;_++,E+=s){c.push(-l,0,E,l,0,E),c.push(E,0,-l,E,0,l);let x=_===a?i:r;x.toArray(f,g),g+=3,x.toArray(f,g),g+=3,x.toArray(f,g),g+=3,x.toArray(f,g),g+=3}let p=new Nn;p.setAttribute("position",new an(c,3)),p.setAttribute("color",new an(f,3));let h=new xa({vertexColors:!0,toneMapped:!1});super(p,h),this.type="GridHelper"}dispose(){super.dispose(),this.geometry.dispose(),this.material.dispose()}},WC=class extends nl{constructor(e=10,t=16,i=8,r=64,a=4473924,s=8947848){a=new Vt(a),s=new Vt(s);let l=[],c=[];if(t>1)for(let h=0;h<t;h++){let _=h/t*(Math.PI*2),g=Math.sin(_)*e,E=Math.cos(_)*e;l.push(0,0,0),l.push(g,0,E);let x=h&1?a:s;c.push(x.r,x.g,x.b),c.push(x.r,x.g,x.b)}for(let h=0;h<i;h++){let _=h&1?a:s,g=e-e/i*h;for(let E=0;E<r;E++){let x=E/r*(Math.PI*2),S=Math.sin(x)*g,v=Math.cos(x)*g;l.push(S,0,v),c.push(_.r,_.g,_.b),x=(E+1)/r*(Math.PI*2),S=Math.sin(x)*g,v=Math.cos(x)*g,l.push(S,0,v),c.push(_.r,_.g,_.b)}}let f=new Nn;f.setAttribute("position",new an(l,3)),f.setAttribute("color",new an(c,3));let p=new xa({vertexColors:!0,toneMapped:!1});super(f,p),this.type="PolarGridHelper"}dispose(){super.dispose(),this.geometry.dispose(),this.material.dispose()}},V6=new ve,QA=new ve,G6=new ve,jC=class extends gi{constructor(e,t,i){super(),this.light=e,this.matrix=e.matrixWorld,this.matrixAutoUpdate=!1,this.color=i,this.type="DirectionalLightHelper",t===void 0&&(t=1);let r=new Nn;r.setAttribute("position",new an([-t,t,0,t,t,0,t,-t,0,-t,-t,0,-t,t,0],3));let a=new xa({fog:!1,toneMapped:!1});this.lightPlane=new Lu(r,a),this.add(this.lightPlane),r=new Nn,r.setAttribute("position",new an([0,0,0,0,0,1],3)),this.targetLine=new Lu(r,a),this.add(this.targetLine),this.update()}dispose(){super.dispose(),this.lightPlane.geometry.dispose(),this.lightPlane.material.dispose(),this.targetLine.geometry.dispose(),this.targetLine.material.dispose()}update(){this.matrixWorldNeedsUpdate=!0,this.light.updateWorldMatrix(!0,!1),this.light.target.updateWorldMatrix(!0,!1),V6.setFromMatrixPosition(this.light.matrixWorld),QA.setFromMatrixPosition(this.light.target.matrixWorld),G6.subVectors(QA,V6),this.lightPlane.lookAt(QA),this.color!==void 0?(this.lightPlane.material.color.set(this.color),this.targetLine.material.color.set(this.color)):(this.lightPlane.material.color.copy(this.light.color),this.targetLine.material.color.copy(this.light.color)),this.targetLine.lookAt(QA),this.targetLine.scale.z=G6.length()}},XA=new ve,vr=new b_,QC=class extends nl{constructor(e){let t=new Nn,i=new xa({color:16777215,vertexColors:!0,toneMapped:!1}),r=[],a=[],s={};l("n1","n2"),l("n2","n4"),l("n4","n3"),l("n3","n1"),l("f1","f2"),l("f2","f4"),l("f4","f3"),l("f3","f1"),l("n1","f1"),l("n2","f2"),l("n3","f3"),l("n4","f4"),l("p","n1"),l("p","n2"),l("p","n3"),l("p","n4"),l("u1","u2"),l("u2","u3"),l("u3","u1"),l("c","t"),l("p","c"),l("cn1","cn2"),l("cn3","cn4"),l("cf1","cf2"),l("cf3","cf4");function l(E,x){c(E),c(x)}function c(E){r.push(0,0,0),a.push(0,0,0),s[E]===void 0&&(s[E]=[]),s[E].push(r.length/3-1)}t.setAttribute("position",new an(r,3)),t.setAttribute("color",new an(a,3)),super(t,i),this.type="CameraHelper",this.camera=e,this.camera.updateProjectionMatrix&&this.camera.updateProjectionMatrix(),this.matrix=e.matrixWorld,this.matrixAutoUpdate=!1,this.pointMap=s,this.update();let f=new Vt(16755200),p=new Vt(16711680),h=new Vt(43775),_=new Vt(16777215),g=new Vt(3355443);this.setColors(f,p,h,_,g)}setColors(e,t,i,r,a){let l=this.geometry.getAttribute("color");return l.setXYZ(0,e.r,e.g,e.b),l.setXYZ(1,e.r,e.g,e.b),l.setXYZ(2,e.r,e.g,e.b),l.setXYZ(3,e.r,e.g,e.b),l.setXYZ(4,e.r,e.g,e.b),l.setXYZ(5,e.r,e.g,e.b),l.setXYZ(6,e.r,e.g,e.b),l.setXYZ(7,e.r,e.g,e.b),l.setXYZ(8,e.r,e.g,e.b),l.setXYZ(9,e.r,e.g,e.b),l.setXYZ(10,e.r,e.g,e.b),l.setXYZ(11,e.r,e.g,e.b),l.setXYZ(12,e.r,e.g,e.b),l.setXYZ(13,e.r,e.g,e.b),l.setXYZ(14,e.r,e.g,e.b),l.setXYZ(15,e.r,e.g,e.b),l.setXYZ(16,e.r,e.g,e.b),l.setXYZ(17,e.r,e.g,e.b),l.setXYZ(18,e.r,e.g,e.b),l.setXYZ(19,e.r,e.g,e.b),l.setXYZ(20,e.r,e.g,e.b),l.setXYZ(21,e.r,e.g,e.b),l.setXYZ(22,e.r,e.g,e.b),l.setXYZ(23,e.r,e.g,e.b),l.setXYZ(24,t.r,t.g,t.b),l.setXYZ(25,t.r,t.g,t.b),l.setXYZ(26,t.r,t.g,t.b),l.setXYZ(27,t.r,t.g,t.b),l.setXYZ(28,t.r,t.g,t.b),l.setXYZ(29,t.r,t.g,t.b),l.setXYZ(30,t.r,t.g,t.b),l.setXYZ(31,t.r,t.g,t.b),l.setXYZ(32,i.r,i.g,i.b),l.setXYZ(33,i.r,i.g,i.b),l.setXYZ(34,i.r,i.g,i.b),l.setXYZ(35,i.r,i.g,i.b),l.setXYZ(36,i.r,i.g,i.b),l.setXYZ(37,i.r,i.g,i.b),l.setXYZ(38,r.r,r.g,r.b),l.setXYZ(39,r.r,r.g,r.b),l.setXYZ(40,a.r,a.g,a.b),l.setXYZ(41,a.r,a.g,a.b),l.setXYZ(42,a.r,a.g,a.b),l.setXYZ(43,a.r,a.g,a.b),l.setXYZ(44,a.r,a.g,a.b),l.setXYZ(45,a.r,a.g,a.b),l.setXYZ(46,a.r,a.g,a.b),l.setXYZ(47,a.r,a.g,a.b),l.setXYZ(48,a.r,a.g,a.b),l.setXYZ(49,a.r,a.g,a.b),l.needsUpdate=!0,this}update(){let e=this.geometry,t=this.pointMap,i=1,r=1,a,s;if(vr.projectionMatrixInverse.copy(this.camera.projectionMatrixInverse),this.camera.reversedDepth===!0)a=1,s=0;else if(this.camera.coordinateSystem===ho)a=-1,s=1;else if(this.camera.coordinateSystem===Dh)a=0,s=1;else throw new Error("THREE.CameraHelper.update(): Invalid coordinate system: "+this.camera.coordinateSystem);Ir("c",t,e,vr,0,0,a),Ir("t",t,e,vr,0,0,s),Ir("n1",t,e,vr,-i,-r,a),Ir("n2",t,e,vr,i,-r,a),Ir("n3",t,e,vr,-i,r,a),Ir("n4",t,e,vr,i,r,a),Ir("f1",t,e,vr,-i,-r,s),Ir("f2",t,e,vr,i,-r,s),Ir("f3",t,e,vr,-i,r,s),Ir("f4",t,e,vr,i,r,s),Ir("u1",t,e,vr,i*.7,r*1.1,a),Ir("u2",t,e,vr,-i*.7,r*1.1,a),Ir("u3",t,e,vr,0,r*2,a),Ir("cf1",t,e,vr,-i,0,s),Ir("cf2",t,e,vr,i,0,s),Ir("cf3",t,e,vr,0,-r,s),Ir("cf4",t,e,vr,0,r,s),Ir("cn1",t,e,vr,-i,0,a),Ir("cn2",t,e,vr,i,0,a),Ir("cn3",t,e,vr,0,-r,a),Ir("cn4",t,e,vr,0,r,a),e.getAttribute("position").needsUpdate=!0}dispose(){super.dispose(),this.geometry.dispose(),this.material.dispose()}};function Ir(n,e,t,i,r,a,s){XA.set(r,a,s).unproject(i);let l=e[n];if(l!==void 0){let c=t.getAttribute("position");for(let f=0,p=l.length;f<p;f++)c.setXYZ(l[f],XA.x,XA.y,XA.z)}}var YA=new sa,XC=class extends nl{constructor(e,t=16776960){let i=new Uint16Array([0,1,1,2,2,3,3,0,4,5,5,6,6,7,7,4,0,4,1,5,2,6,3,7]),r=new Float32Array(24),a=new Nn;a.setIndex(new Li(i,1)),a.setAttribute("position",new Li(r,3)),super(a,new xa({color:t,toneMapped:!1})),this.object=e,this.type="BoxHelper",this.matrixAutoUpdate=!1,this.update()}update(){if(this.object!==void 0&&YA.setFromObject(this.object),YA.isEmpty())return;let e=YA.min,t=YA.max,i=this.geometry.attributes.position,r=i.array;r[0]=t.x,r[1]=t.y,r[2]=t.z,r[3]=e.x,r[4]=t.y,r[5]=t.z,r[6]=e.x,r[7]=e.y,r[8]=t.z,r[9]=t.x,r[10]=e.y,r[11]=t.z,r[12]=t.x,r[13]=t.y,r[14]=e.z,r[15]=e.x,r[16]=t.y,r[17]=e.z,r[18]=e.x,r[19]=e.y,r[20]=e.z,r[21]=t.x,r[22]=e.y,r[23]=e.z,i.needsUpdate=!0,this.geometry.computeBoundingSphere()}setFromObject(e){return this.object=e,this.update(),this}copy(e,t){return super.copy(e,t),this.object=e.object,this}dispose(){super.dispose(),this.geometry.dispose(),this.material.dispose()}},YC=class extends nl{constructor(e,t=16776960){let i=new Uint16Array([0,1,1,2,2,3,3,0,4,5,5,6,6,7,7,4,0,4,1,5,2,6,3,7]),r=[1,1,1,-1,1,1,-1,-1,1,1,-1,1,1,1,-1,-1,1,-1,-1,-1,-1,1,-1,-1],a=new Nn;a.setIndex(new Li(i,1)),a.setAttribute("position",new an(r,3)),super(a,new xa({color:t,toneMapped:!1})),this.box=e,this.type="Box3Helper",this.geometry.computeBoundingSphere()}updateMatrixWorld(e){let t=this.box;t.isEmpty()||(t.getCenter(this.position),t.getSize(this.scale),this.scale.multiplyScalar(.5),super.updateMatrixWorld(e))}dispose(){super.dispose(),this.geometry.dispose(),this.material.dispose()}},KC=class extends Lu{constructor(e,t=1,i=16776960){let r=i,a=[1,-1,0,-1,1,0,-1,-1,0,1,1,0,-1,1,0,-1,-1,0,1,-1,0,1,1,0],s=new Nn;s.setAttribute("position",new an(a,3)),s.computeBoundingSphere(),super(s,new xa({color:r,toneMapped:!1})),this.type="PlaneHelper",this.plane=e,this.size=t;let l=[1,1,0,-1,1,0,-1,-1,0,1,1,0,-1,-1,0,1,-1,0],c=new Nn;c.setAttribute("position",new an(l,3)),c.computeBoundingSphere(),this.add(new dr(c,new Iu({color:r,opacity:.2,transparent:!0,depthWrite:!1,toneMapped:!1})))}updateMatrixWorld(e){this.position.set(0,0,0),this.scale.set(.5*this.size,.5*this.size,1),this.lookAt(this.plane.normal),this.translateZ(-this.plane.constant),super.updateMatrixWorld(e)}dispose(){super.dispose(),this.geometry.dispose(),this.material.dispose(),this.children[0].geometry.dispose(),this.children[0].material.dispose()}},W6=new ve,KA,$k,ZC=class extends gi{constructor(e=new ve(0,0,1),t=new ve(0,0,0),i=1,r=16776960,a=i*.2,s=a*.2){super(),this.type="ArrowHelper",KA===void 0&&(KA=new Nn,KA.setAttribute("position",new an([0,0,0,0,1,0],3)),$k=new E0(.5,1,5,1),$k.translate(0,-.5,0)),this.position.copy(t),this.line=new Lu(KA,new xa({color:r,toneMapped:!1})),this.line.matrixAutoUpdate=!1,this.add(this.line),this.cone=new dr($k,new Iu({color:r,toneMapped:!1})),this.cone.matrixAutoUpdate=!1,this.add(this.cone),this.setDirection(e),this.setLength(i,a,s)}setDirection(e){if(e.y>.99999)this.quaternion.set(0,0,0,1);else if(e.y<-.99999)this.quaternion.set(1,0,0,0);else{W6.set(e.z,0,-e.x).normalize();let t=Math.acos(e.y);this.quaternion.setFromAxisAngle(W6,t)}}setLength(e,t=e*.2,i=t*.2){this.line.scale.set(1,Math.max(1e-4,e-t),1),this.line.updateMatrix(),this.cone.scale.set(i,t,i),this.cone.position.y=e,this.cone.updateMatrix()}setColor(e){this.line.material.color.set(e),this.cone.material.color.set(e)}copy(e){return super.copy(e,!1),this.line.copy(e.line),this.cone.copy(e.cone),this}dispose(){super.dispose(),this.line.geometry.dispose(),this.line.material.dispose(),this.cone.geometry.dispose(),this.cone.material.dispose()}},$C=class extends nl{constructor(e=1){let t=[0,0,0,e,0,0,0,0,0,0,e,0,0,0,0,0,0,e],i=[1,0,0,1,.6,0,0,1,0,.6,1,0,0,0,1,0,.6,1],r=new Nn;r.setAttribute("position",new an(t,3)),r.setAttribute("color",new an(i,3));let a=new xa({vertexColors:!0,toneMapped:!1});super(r,a),this.type="AxesHelper"}setColors(e,t,i){let r=new Vt,a=this.geometry.attributes.color.array;return r.set(e),r.toArray(a,0),r.toArray(a,3),r.set(t),r.toArray(a,6),r.toArray(a,9),r.set(i),r.toArray(a,12),r.toArray(a,15),this.geometry.attributes.color.needsUpdate=!0,this}dispose(){super.dispose(),this.geometry.dispose(),this.material.dispose()}},JC=class{constructor(){this.type="ShapePath",this.color=new Vt,this.subPaths=[],this.currentPath=null,this.userData={}}moveTo(e,t){return this.currentPath=new zh,this.subPaths.push(this.currentPath),this.currentPath.moveTo(e,t),this}lineTo(e,t){return this.currentPath.lineTo(e,t),this}quadraticCurveTo(e,t,i,r){return this.currentPath.quadraticCurveTo(e,t,i,r),this}bezierCurveTo(e,t,i,r,a,s){return this.currentPath.bezierCurveTo(e,t,i,r,a,s),this}splineThru(e){return this.currentPath.splineThru(e),this}toShapes(){function e(c,f){let p=!1,h=f.length;for(let _=0,g=h-1;_<h;g=_++){let E=f[_],x=f[g];E.y>c.y!=x.y>c.y&&c.x<(x.x-E.x)*(c.y-E.y)/(x.y-E.y)+E.x&&(p=!p)}return p}function t(c,f){let p=f.getCenter(new ut);if(e(p,c))return p;let h=p.y,_=[],g=c.length;for(let E=0;E<g;E++){let x=c[E],S=c[(E+1)%g];if(x.y>h!=S.y>h){let v=x.x+(h-x.y)*(S.x-x.x)/(S.y-x.y);_.push(v)}}return _.length>1&&(_.sort((E,x)=>E-x),p.x=(_[0]+_[1])/2),p}let i=this.userData.style&&this.userData.style.fillRule||"nonzero";i!=="nonzero"&&i!=="evenodd"&&(Ft('Fill-rule "'+i+'" is not supported, falling back to "nonzero".'),i="nonzero");let r=i==="nonzero"?(c=>c!==0):(c=>(c&1)!==0),a=[];for(let c of this.subPaths){let f=c.getPoints();if(f.length<3)continue;let p=Yl.area(f);if(p===0)continue;let h=new Yx;for(let _=0;_<f.length;_++)h.expandByPoint(f[_]);a.push({subPath:c,points:f,boundingBox:h,interiorPoint:t(f,h),absArea:Math.abs(p),winding:p<0?-1:1,container:null,exclude:!1,role:null})}a.sort((c,f)=>f.absArea-c.absArea);for(let c=0;c<a.length;c++){let f=a[c],p=0;for(let h=c-1;h>=0;h--){let _=a[h];if(_.boundingBox.containsBox(f.boundingBox)&&e(f.interiorPoint,_.points)){f.container=_.exclude?_.container:_,p=_.winding,f.winding+=p;break}}r(f.winding)===r(p)&&(f.exclude=!0)}for(let c of a)c.exclude||(c.role=c.container===null||c.container.role==="hole"?"outer":"hole");let s=[],l=new Map;for(let c of a){if(c.exclude||c.role!=="outer")continue;let f=new qh;f.curves=c.subPath.curves,s.push(f),l.set(c,f)}for(let c of a){if(c.exclude||c.role!=="hole")continue;let f=l.get(c.container);if(!f)continue;let p=new zh;p.curves=c.subPath.curves,f.holes.push(p)}return s}},V0=class extends po{constructor(e,t=null){super(),this.object=e,this.domElement=t,this.enabled=!0,this.state=-1,this.keys={},this.mouseButtons={LEFT:null,MIDDLE:null,RIGHT:null},this.touches={ONE:null,TWO:null}}connect(e){this.domElement!==null&&this.disconnect(),this.domElement=e}disconnect(){}dispose(){}update(){}};function FX(n,e){let t=n.image&&n.image.width?n.image.width/n.image.height:1;return t>e?(n.repeat.x=1,n.repeat.y=t/e,n.offset.x=0,n.offset.y=(1-n.repeat.y)/2):(n.repeat.x=e/t,n.repeat.y=1,n.offset.x=(1-n.repeat.x)/2,n.offset.y=0),n}function PX(n,e){let t=n.image&&n.image.width?n.image.width/n.image.height:1;return t>e?(n.repeat.x=e/t,n.repeat.y=1,n.offset.x=(1-n.repeat.x)/2,n.offset.y=0):(n.repeat.x=1,n.repeat.y=t/e,n.offset.x=0,n.offset.y=(1-n.repeat.y)/2),n}function UX(n){return n.repeat.x=1,n.repeat.y=1,n.offset.x=0,n.offset.y=0,n}function x2(n,e,t,i){let r=zX(i);switch(t){case y2:return n*e;case e1:return n*e/r.components*r.byteLength;case Y0:return n*e/r.components*r.byteLength;case td:return n*e*2/r.components*r.byteLength;case t1:return n*e*2/r.components*r.byteLength;case b2:return n*e*3/r.components*r.byteLength;case wa:return n*e*4/r.components*r.byteLength;case n1:return n*e*4/r.components*r.byteLength;case K0:case Z0:return Math.floor((n+3)/4)*Math.floor((e+3)/4)*8;case $0:case J0:return Math.floor((n+3)/4)*Math.floor((e+3)/4)*16;case r1:case s1:return Math.max(n,16)*Math.max(e,8)/4;case i1:case a1:return Math.max(n,8)*Math.max(e,8)/2;case o1:case l1:case c1:case f1:return Math.floor((n+3)/4)*Math.floor((e+3)/4)*8;case u1:case eb:case d1:return Math.floor((n+3)/4)*Math.floor((e+3)/4)*16;case h1:return Math.floor((n+3)/4)*Math.floor((e+3)/4)*16;case p1:return Math.floor((n+4)/5)*Math.floor((e+3)/4)*16;case m1:return Math.floor((n+4)/5)*Math.floor((e+4)/5)*16;case _1:return Math.floor((n+5)/6)*Math.floor((e+4)/5)*16;case g1:return Math.floor((n+5)/6)*Math.floor((e+5)/6)*16;case v1:return Math.floor((n+7)/8)*Math.floor((e+4)/5)*16;case y1:return Math.floor((n+7)/8)*Math.floor((e+5)/6)*16;case b1:return Math.floor((n+7)/8)*Math.floor((e+7)/8)*16;case S1:return Math.floor((n+9)/10)*Math.floor((e+4)/5)*16;case E1:return Math.floor((n+9)/10)*Math.floor((e+5)/6)*16;case w1:return Math.floor((n+9)/10)*Math.floor((e+7)/8)*16;case x1:return Math.floor((n+9)/10)*Math.floor((e+9)/10)*16;case T1:return Math.floor((n+11)/12)*Math.floor((e+9)/10)*16;case M1:return Math.floor((n+11)/12)*Math.floor((e+11)/12)*16;case A1:case C1:case R1:return Math.ceil(n/4)*Math.ceil(e/4)*16;case I1:case L1:return Math.ceil(n/4)*Math.ceil(e/4)*8;case tb:case N1:return Math.ceil(n/4)*Math.ceil(e/4)*16}throw new Error(`Unable to determine texture byte length for ${t} format.`)}function zX(n){switch(n){case ja:case m2:return{byteLength:1,components:1};case M_:case _2:case $l:return{byteLength:2,components:1};case $x:case Jx:return{byteLength:2,components:4};case il:case Zx:case as:return{byteLength:4,components:1};case g2:case v2:return{byteLength:4,components:3}}throw new Error(`THREE.TextureUtils: Unknown texture type ${n}.`)}var e2=class{static contain(e,t){return FX(e,t)}static cover(e,t){return PX(e,t)}static fill(e){return UX(e)}static getByteLength(e,t,i,r){return x2(e,t,i,r)}};typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("register",{detail:{revision:"186"}}));typeof window<"u"&&(window.__THREE__?Ft("WARNING: Multiple instances of Three.js being imported."):window.__THREE__="186");function y8(){let n=null,e=!1,t=null,i=null;function r(a,s){i=n.requestAnimationFrame(r),t(a,s)}return{start:function(){e!==!0&&t!==null&&n!==null&&(i=n.requestAnimationFrame(r),e=!0)},stop:function(){n!==null&&n.cancelAnimationFrame(i),e=!1},setAnimationLoop:function(a){t=a},setContext:function(a){n=a}}}function qX(n){let e=new WeakMap;function t(l,c){let f=l.array,p=l.usage,h=f.byteLength,_=n.createBuffer();n.bindBuffer(c,_),n.bufferData(c,f,p),l.onUploadCallback();let g;if(f instanceof Float32Array)g=n.FLOAT;else if(typeof Float16Array<"u"&&f instanceof Float16Array)g=n.HALF_FLOAT;else if(f instanceof Uint16Array)l.isFloat16BufferAttribute?g=n.HALF_FLOAT:g=n.UNSIGNED_SHORT;else if(f instanceof Int16Array)g=n.SHORT;else if(f instanceof Uint32Array)g=n.UNSIGNED_INT;else if(f instanceof Int32Array)g=n.INT;else if(f instanceof Int8Array)g=n.BYTE;else if(f instanceof Uint8Array)g=n.UNSIGNED_BYTE;else if(f instanceof Uint8ClampedArray)g=n.UNSIGNED_BYTE;else throw new Error("THREE.WebGLAttributes: Unsupported buffer data format: "+f);return{buffer:_,type:g,bytesPerElement:f.BYTES_PER_ELEMENT,version:l.version,size:h}}function i(l,c,f){let p=c.array,h=c.updateRanges;if(n.bindBuffer(f,l),h.length===0)n.bufferSubData(f,0,p);else{h.sort((g,E)=>g.start-E.start);let _=0;for(let g=1;g<h.length;g++){let E=h[_],x=h[g];x.start<=E.start+E.count+1?E.count=Math.max(E.count,x.start+x.count-E.start):(++_,h[_]=x)}h.length=_+1;for(let g=0,E=h.length;g<E;g++){let x=h[g];n.bufferSubData(f,x.start*p.BYTES_PER_ELEMENT,p,x.start,x.count)}c.clearUpdateRanges()}c.onUploadCallback()}function r(l){return l.isInterleavedBufferAttribute&&(l=l.data),e.get(l)}function a(l){l.isInterleavedBufferAttribute&&(l=l.data);let c=e.get(l);c&&(n.deleteBuffer(c.buffer),e.delete(l))}function s(l,c){if(l.isInterleavedBufferAttribute&&(l=l.data),l.isGLBufferAttribute){let p=e.get(l);(!p||p.version<l.version)&&e.set(l,{buffer:l.buffer,type:l.type,bytesPerElement:l.elementSize,version:l.version});return}let f=e.get(l);if(f===void 0)e.set(l,t(l,c));else if(f.version<l.version){if(f.size!==l.array.byteLength)throw new Error("THREE.WebGLAttributes: The size of the buffer attribute's array buffer does not match the original size. Resizing buffer attributes is not supported.");i(f.buffer,l,c),f.version=l.version}}return{get:r,remove:a,update:s}}var BX=`#ifdef USE_ALPHAHASH
	if ( diffuseColor.a < getAlphaHashThreshold( vPosition ) ) discard;
#endif`,HX=`#ifdef USE_ALPHAHASH
	const float ALPHA_HASH_SCALE = 0.05;
	float hash2D( vec2 value ) {
		return fract( 1.0e4 * sin( 17.0 * value.x + 0.1 * value.y ) * ( 0.1 + abs( sin( 13.0 * value.y + value.x ) ) ) );
	}
	float hash3D( vec3 value ) {
		return hash2D( vec2( hash2D( value.xy ), value.z ) );
	}
	float getAlphaHashThreshold( vec3 position ) {
		float maxDeriv = max(
			length( dFdx( position.xyz ) ),
			length( dFdy( position.xyz ) )
		);
		float pixScale = 1.0 / ( ALPHA_HASH_SCALE * maxDeriv );
		vec2 pixScales = vec2(
			exp2( floor( log2( pixScale ) ) ),
			exp2( ceil( log2( pixScale ) ) )
		);
		vec2 alpha = vec2(
			hash3D( floor( pixScales.x * position.xyz ) ),
			hash3D( floor( pixScales.y * position.xyz ) )
		);
		float lerpFactor = fract( log2( pixScale ) );
		float x = ( 1.0 - lerpFactor ) * alpha.x + lerpFactor * alpha.y;
		float a = min( lerpFactor, 1.0 - lerpFactor );
		vec3 cases = vec3(
			x * x / ( 2.0 * a * ( 1.0 - a ) ),
			( x - 0.5 * a ) / ( 1.0 - a ),
			1.0 - ( ( 1.0 - x ) * ( 1.0 - x ) / ( 2.0 * a * ( 1.0 - a ) ) )
		);
		float threshold = ( x < ( 1.0 - a ) )
			? ( ( x < a ) ? cases.x : cases.y )
			: cases.z;
		return clamp( threshold , 1.0e-6, 1.0 );
	}
#endif`,VX=`#ifdef USE_ALPHAMAP
	diffuseColor.a *= texture2D( alphaMap, vAlphaMapUv ).g;
#endif`,GX=`#ifdef USE_ALPHAMAP
	uniform sampler2D alphaMap;
#endif`,WX=`#ifdef USE_ALPHATEST
	#ifdef ALPHA_TO_COVERAGE
	diffuseColor.a = smoothstep( alphaTest, alphaTest + fwidth( diffuseColor.a ), diffuseColor.a );
	if ( diffuseColor.a == 0.0 ) discard;
	#else
	if ( diffuseColor.a < alphaTest ) discard;
	#endif
#endif`,jX=`#ifdef USE_ALPHATEST
	uniform float alphaTest;
#endif`,QX=`#ifdef USE_AOMAP
	float ambientOcclusion = ( texture2D( aoMap, vAoMapUv ).r - 1.0 ) * aoMapIntensity + 1.0;
	reflectedLight.indirectDiffuse *= ambientOcclusion;
	#if defined( USE_CLEARCOAT ) 
		clearcoatSpecularIndirect *= ambientOcclusion;
	#endif
	#if defined( USE_SHEEN ) 
		sheenSpecularIndirect *= ambientOcclusion;
	#endif
	#if defined( USE_ENVMAP ) && defined( STANDARD )
		float dotNV = saturate( dot( geometryNormal, geometryViewDir ) );
		reflectedLight.indirectSpecular *= computeSpecularOcclusion( dotNV, ambientOcclusion, material.roughness );
	#endif
#endif`,XX=`#ifdef USE_AOMAP
	uniform sampler2D aoMap;
	uniform float aoMapIntensity;
#endif`,YX=`#ifdef USE_BATCHING
	#if ! defined( GL_ANGLE_multi_draw )
	#define gl_DrawID _gl_DrawID
	uniform int _gl_DrawID;
	#endif
	uniform highp sampler2D batchingTexture;
	uniform highp usampler2D batchingIdTexture;
	mat4 getBatchingMatrix( const in float i ) {
		int size = textureSize( batchingTexture, 0 ).x;
		int j = int( i ) * 4;
		int x = j % size;
		int y = j / size;
		vec4 v1 = texelFetch( batchingTexture, ivec2( x, y ), 0 );
		vec4 v2 = texelFetch( batchingTexture, ivec2( x + 1, y ), 0 );
		vec4 v3 = texelFetch( batchingTexture, ivec2( x + 2, y ), 0 );
		vec4 v4 = texelFetch( batchingTexture, ivec2( x + 3, y ), 0 );
		return mat4( v1, v2, v3, v4 );
	}
	float getIndirectIndex( const in int i ) {
		int size = textureSize( batchingIdTexture, 0 ).x;
		int x = i % size;
		int y = i / size;
		return float( texelFetch( batchingIdTexture, ivec2( x, y ), 0 ).r );
	}
#endif
#ifdef USE_BATCHING_COLOR
	uniform sampler2D batchingColorTexture;
	vec4 getBatchingColor( const in float i ) {
		int size = textureSize( batchingColorTexture, 0 ).x;
		int j = int( i );
		int x = j % size;
		int y = j / size;
		return texelFetch( batchingColorTexture, ivec2( x, y ), 0 );
	}
#endif`,KX=`#ifdef USE_BATCHING
	mat4 batchingMatrix = getBatchingMatrix( getIndirectIndex( gl_DrawID ) );
#endif`,ZX=`vec3 transformed = vec3( position );
#ifdef USE_ALPHAHASH
	vPosition = vec3( position );
#endif`,$X=`vec3 objectNormal = vec3( normal );
#ifdef USE_TANGENT
	vec3 objectTangent = vec3( tangent.xyz );
#endif`,JX=`float G_BlinnPhong_Implicit( ) {
	return 0.25;
}
float D_BlinnPhong( const in float shininess, const in float dotNH ) {
	return RECIPROCAL_PI * ( shininess * 0.5 + 1.0 ) * pow( dotNH, shininess );
}
vec3 BRDF_BlinnPhong( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in vec3 specularColor, const in float shininess ) {
	vec3 halfDir = normalize( lightDir + viewDir );
	float dotNH = saturate( dot( normal, halfDir ) );
	float dotVH = saturate( dot( viewDir, halfDir ) );
	vec3 F = F_Schlick( specularColor, 1.0, dotVH );
	float G = G_BlinnPhong_Implicit( );
	float D = D_BlinnPhong( shininess, dotNH );
	return F * ( G * D );
} // validated`,eY=`#ifdef USE_IRIDESCENCE
	const mat3 XYZ_TO_REC709 = mat3(
		 3.2404542, -0.9692660,  0.0556434,
		-1.5371385,  1.8760108, -0.2040259,
		-0.4985314,  0.0415560,  1.0572252
	);
	vec3 Fresnel0ToIor( vec3 fresnel0 ) {
		vec3 sqrtF0 = sqrt( fresnel0 );
		return ( vec3( 1.0 ) + sqrtF0 ) / ( vec3( 1.0 ) - sqrtF0 );
	}
	vec3 IorToFresnel0( vec3 transmittedIor, float incidentIor ) {
		return pow2( ( transmittedIor - vec3( incidentIor ) ) / ( transmittedIor + vec3( incidentIor ) ) );
	}
	float IorToFresnel0( float transmittedIor, float incidentIor ) {
		return pow2( ( transmittedIor - incidentIor ) / ( transmittedIor + incidentIor ));
	}
	vec3 evalSensitivity( float OPD, vec3 shift ) {
		float phase = 2.0 * PI * OPD * 1.0e-9;
		vec3 val = vec3( 5.4856e-13, 4.4201e-13, 5.2481e-13 );
		vec3 pos = vec3( 1.6810e+06, 1.7953e+06, 2.2084e+06 );
		vec3 var = vec3( 4.3278e+09, 9.3046e+09, 6.6121e+09 );
		vec3 xyz = val * sqrt( 2.0 * PI * var ) * cos( pos * phase + shift ) * exp( - pow2( phase ) * var );
		xyz.x += 9.7470e-14 * sqrt( 2.0 * PI * 4.5282e+09 ) * cos( 2.2399e+06 * phase + shift[ 0 ] ) * exp( - 4.5282e+09 * pow2( phase ) );
		xyz /= 1.0685e-7;
		vec3 rgb = XYZ_TO_REC709 * xyz;
		return rgb;
	}
	vec3 evalIridescence( float outsideIOR, float eta2, float cosTheta1, float thinFilmThickness, vec3 baseF0 ) {
		vec3 I;
		float iridescenceIOR = mix( outsideIOR, eta2, smoothstep( 0.0, 0.03, thinFilmThickness ) );
		float sinTheta2Sq = pow2( outsideIOR / iridescenceIOR ) * ( 1.0 - pow2( cosTheta1 ) );
		float cosTheta2Sq = 1.0 - sinTheta2Sq;
		if ( cosTheta2Sq < 0.0 ) {
			return vec3( 1.0 );
		}
		float cosTheta2 = sqrt( cosTheta2Sq );
		float R0 = IorToFresnel0( iridescenceIOR, outsideIOR );
		float R12 = F_Schlick( R0, 1.0, cosTheta1 );
		float T121 = 1.0 - R12;
		float phi12 = 0.0;
		if ( iridescenceIOR < outsideIOR ) phi12 = PI;
		float phi21 = PI - phi12;
		vec3 baseIOR = Fresnel0ToIor( clamp( baseF0, 0.0, 0.9999 ) );		vec3 R1 = IorToFresnel0( baseIOR, iridescenceIOR );
		vec3 R23 = F_Schlick( R1, 1.0, cosTheta2 );
		vec3 phi23 = vec3( 0.0 );
		if ( baseIOR[ 0 ] < iridescenceIOR ) phi23[ 0 ] = PI;
		if ( baseIOR[ 1 ] < iridescenceIOR ) phi23[ 1 ] = PI;
		if ( baseIOR[ 2 ] < iridescenceIOR ) phi23[ 2 ] = PI;
		float OPD = 2.0 * iridescenceIOR * thinFilmThickness * cosTheta2;
		vec3 phi = vec3( phi21 ) + phi23;
		vec3 R123 = clamp( R12 * R23, 1e-5, 0.9999 );
		vec3 r123 = sqrt( R123 );
		vec3 Rs = pow2( T121 ) * R23 / ( vec3( 1.0 ) - R123 );
		vec3 C0 = R12 + Rs;
		I = C0;
		vec3 Cm = Rs - T121;
		for ( int m = 1; m <= 2; ++ m ) {
			Cm *= r123;
			vec3 Sm = 2.0 * evalSensitivity( float( m ) * OPD, float( m ) * phi );
			I += Cm * Sm;
		}
		return max( I, vec3( 0.0 ) );
	}
#endif`,tY=`#ifdef USE_BUMPMAP
	uniform sampler2D bumpMap;
	uniform float bumpScale;
	vec2 dHdxy_fwd() {
		vec2 dSTdx = dFdx( vBumpMapUv );
		vec2 dSTdy = dFdy( vBumpMapUv );
		float Hll = bumpScale * texture2D( bumpMap, vBumpMapUv ).x;
		float dBx = bumpScale * texture2D( bumpMap, vBumpMapUv + dSTdx ).x - Hll;
		float dBy = bumpScale * texture2D( bumpMap, vBumpMapUv + dSTdy ).x - Hll;
		return vec2( dBx, dBy );
	}
	vec3 perturbNormalArb( vec3 surf_pos, vec3 surf_norm, vec2 dHdxy, float faceDirection ) {
		vec3 vSigmaX = normalize( dFdx( surf_pos.xyz ) );
		vec3 vSigmaY = normalize( dFdy( surf_pos.xyz ) );
		vec3 vN = surf_norm;
		vec3 R1 = cross( vSigmaY, vN );
		vec3 R2 = cross( vN, vSigmaX );
		float fDet = dot( vSigmaX, R1 ) * faceDirection;
		vec3 vGrad = sign( fDet ) * ( dHdxy.x * R1 + dHdxy.y * R2 );
		return normalize( abs( fDet ) * surf_norm - vGrad );
	}
#endif`,nY=`#if NUM_CLIPPING_PLANES > 0
	vec4 plane;
	#ifdef ALPHA_TO_COVERAGE
		float distanceToPlane, distanceGradient;
		float clipOpacity = 1.0;
		#pragma unroll_loop_start
		for ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {
			plane = clippingPlanes[ i ];
			distanceToPlane = - dot( vClipPosition, plane.xyz ) + plane.w;
			distanceGradient = fwidth( distanceToPlane ) / 2.0;
			clipOpacity *= smoothstep( - distanceGradient, distanceGradient, distanceToPlane );
			if ( clipOpacity == 0.0 ) discard;
		}
		#pragma unroll_loop_end
		#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES
			float unionClipOpacity = 1.0;
			#pragma unroll_loop_start
			for ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {
				plane = clippingPlanes[ i ];
				distanceToPlane = - dot( vClipPosition, plane.xyz ) + plane.w;
				distanceGradient = fwidth( distanceToPlane ) / 2.0;
				unionClipOpacity *= 1.0 - smoothstep( - distanceGradient, distanceGradient, distanceToPlane );
			}
			#pragma unroll_loop_end
			clipOpacity *= 1.0 - unionClipOpacity;
		#endif
		diffuseColor.a *= clipOpacity;
		if ( diffuseColor.a == 0.0 ) discard;
	#else
		#pragma unroll_loop_start
		for ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {
			plane = clippingPlanes[ i ];
			if ( dot( vClipPosition, plane.xyz ) > plane.w ) discard;
		}
		#pragma unroll_loop_end
		#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES
			bool clipped = true;
			#pragma unroll_loop_start
			for ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {
				plane = clippingPlanes[ i ];
				clipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped;
			}
			#pragma unroll_loop_end
			if ( clipped ) discard;
		#endif
	#endif
#endif`,iY=`#if NUM_CLIPPING_PLANES > 0
	varying vec3 vClipPosition;
	uniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ];
#endif`,rY=`#if NUM_CLIPPING_PLANES > 0
	varying vec3 vClipPosition;
#endif`,aY=`#if NUM_CLIPPING_PLANES > 0
	vClipPosition = - mvPosition.xyz;
#endif`,sY=`#if defined( USE_COLOR ) || defined( USE_COLOR_ALPHA )
	diffuseColor *= vColor;
#endif`,oY=`#if defined( USE_COLOR ) || defined( USE_COLOR_ALPHA )
	varying vec4 vColor;
#endif`,lY=`#if defined( USE_COLOR ) || defined( USE_COLOR_ALPHA ) || defined( USE_INSTANCING_COLOR ) || defined( USE_BATCHING_COLOR )
	varying vec4 vColor;
#endif`,uY=`#if defined( USE_COLOR ) || defined( USE_COLOR_ALPHA ) || defined( USE_INSTANCING_COLOR ) || defined( USE_BATCHING_COLOR )
	vColor = vec4( 1.0 );
#endif
#ifdef USE_COLOR_ALPHA
	vColor *= color;
#elif defined( USE_COLOR )
	vColor.rgb *= color;
#endif
#ifdef USE_INSTANCING_COLOR
	vColor.rgb *= instanceColor.rgb;
#endif
#ifdef USE_BATCHING_COLOR
	vColor *= getBatchingColor( getIndirectIndex( gl_DrawID ) );
#endif`,cY=`#define PI 3.141592653589793
#define PI2 6.283185307179586
#define PI_HALF 1.5707963267948966
#define RECIPROCAL_PI 0.3183098861837907
#define RECIPROCAL_PI2 0.15915494309189535
#define EPSILON 1e-6
#ifndef saturate
#define saturate( a ) clamp( a, 0.0, 1.0 )
#endif
#define whiteComplement( a ) ( 1.0 - saturate( a ) )
float pow2( const in float x ) { return x*x; }
vec3 pow2( const in vec3 x ) { return x*x; }
float pow3( const in float x ) { return x*x*x; }
float pow4( const in float x ) { float x2 = x*x; return x2*x2; }
float max3( const in vec3 v ) { return max( max( v.x, v.y ), v.z ); }
float average( const in vec3 v ) { return dot( v, vec3( 0.3333333 ) ); }
highp float rand( const in vec2 uv ) {
	const highp float a = 12.9898, b = 78.233, c = 43758.5453;
	highp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI );
	return fract( sin( sn ) * c );
}
#ifdef HIGH_PRECISION
	float precisionSafeLength( vec3 v ) { return length( v ); }
#else
	float precisionSafeLength( vec3 v ) {
		float maxComponent = max3( abs( v ) );
		return length( v / maxComponent ) * maxComponent;
	}
#endif
struct IncidentLight {
	vec3 color;
	vec3 direction;
	bool visible;
};
struct ReflectedLight {
	vec3 directDiffuse;
	vec3 directSpecular;
	vec3 indirectDiffuse;
	vec3 indirectSpecular;
};
#ifdef USE_ALPHAHASH
	varying vec3 vPosition;
#endif
vec3 transformDirection( in vec3 dir, in mat4 matrix ) {
	return normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );
}
#define inverseTransformDirection transformDirectionByInverseViewMatrix
vec3 transformNormalByInverseViewMatrix( in vec3 normal, in mat4 viewMatrix ) {
	return normalize( ( vec4( normal, 0.0 ) * viewMatrix ).xyz );
}
vec3 transformDirectionByInverseViewMatrix( in vec3 dir, in mat4 viewMatrix ) {
	return normalize( ( vec4( dir, 0.0 ) * viewMatrix ).xyz );
}
bool isPerspectiveMatrix( mat4 m ) {
	return m[ 2 ][ 3 ] == - 1.0;
}
vec2 equirectUv( in vec3 dir ) {
	float u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5;
	float v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;
	return vec2( u, v );
}
vec3 BRDF_Lambert( const in vec3 diffuseColor ) {
	return RECIPROCAL_PI * diffuseColor;
}
vec3 F_Schlick( const in vec3 f0, const in float f90, const in float dotVH ) {
	float fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );
	return f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );
}
float F_Schlick( const in float f0, const in float f90, const in float dotVH ) {
	float fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );
	return f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );
} // validated`,fY=`#ifdef ENVMAP_TYPE_CUBE_UV
	#define cubeUV_minMipLevel 4.0
	#define cubeUV_minTileSize 16.0
	float getFace( vec3 direction ) {
		vec3 absDirection = abs( direction );
		float face = - 1.0;
		if ( absDirection.x > absDirection.z ) {
			if ( absDirection.x > absDirection.y )
				face = direction.x > 0.0 ? 0.0 : 3.0;
			else
				face = direction.y > 0.0 ? 1.0 : 4.0;
		} else {
			if ( absDirection.z > absDirection.y )
				face = direction.z > 0.0 ? 2.0 : 5.0;
			else
				face = direction.y > 0.0 ? 1.0 : 4.0;
		}
		return face;
	}
	vec2 getUV( vec3 direction, float face ) {
		vec2 uv;
		if ( face == 0.0 ) {
			uv = vec2( direction.z, direction.y ) / abs( direction.x );
		} else if ( face == 1.0 ) {
			uv = vec2( - direction.x, - direction.z ) / abs( direction.y );
		} else if ( face == 2.0 ) {
			uv = vec2( - direction.x, direction.y ) / abs( direction.z );
		} else if ( face == 3.0 ) {
			uv = vec2( - direction.z, direction.y ) / abs( direction.x );
		} else if ( face == 4.0 ) {
			uv = vec2( - direction.x, direction.z ) / abs( direction.y );
		} else {
			uv = vec2( direction.x, direction.y ) / abs( direction.z );
		}
		return 0.5 * ( uv + 1.0 );
	}
	vec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) {
		float face = getFace( direction );
		float filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 );
		mipInt = max( mipInt, cubeUV_minMipLevel );
		float faceSize = exp2( mipInt );
		highp vec2 uv = getUV( direction, face ) * ( faceSize - 2.0 ) + 1.0;
		if ( face > 2.0 ) {
			uv.y += faceSize;
			face -= 3.0;
		}
		uv.x += face * faceSize;
		uv.x += filterInt * 3.0 * cubeUV_minTileSize;
		uv.y += 4.0 * ( exp2( CUBEUV_MAX_MIP ) - faceSize );
		uv.x *= CUBEUV_TEXEL_WIDTH;
		uv.y *= CUBEUV_TEXEL_HEIGHT;
		#ifdef texture2DGradEXT
			return texture2DGradEXT( envMap, uv, vec2( 0.0 ), vec2( 0.0 ) ).rgb;
		#else
			return texture2D( envMap, uv ).rgb;
		#endif
	}
	#define cubeUV_r0 1.0
	#define cubeUV_m0 - 2.0
	#define cubeUV_r1 0.8
	#define cubeUV_m1 - 1.0
	#define cubeUV_r4 0.4
	#define cubeUV_m4 2.0
	#define cubeUV_r5 0.305
	#define cubeUV_m5 3.0
	#define cubeUV_r6 0.21
	#define cubeUV_m6 4.0
	float roughnessToMip( float roughness ) {
		float mip = 0.0;
		if ( roughness >= cubeUV_r1 ) {
			mip = ( cubeUV_r0 - roughness ) * ( cubeUV_m1 - cubeUV_m0 ) / ( cubeUV_r0 - cubeUV_r1 ) + cubeUV_m0;
		} else if ( roughness >= cubeUV_r4 ) {
			mip = ( cubeUV_r1 - roughness ) * ( cubeUV_m4 - cubeUV_m1 ) / ( cubeUV_r1 - cubeUV_r4 ) + cubeUV_m1;
		} else if ( roughness >= cubeUV_r5 ) {
			mip = ( cubeUV_r4 - roughness ) * ( cubeUV_m5 - cubeUV_m4 ) / ( cubeUV_r4 - cubeUV_r5 ) + cubeUV_m4;
		} else if ( roughness >= cubeUV_r6 ) {
			mip = ( cubeUV_r5 - roughness ) * ( cubeUV_m6 - cubeUV_m5 ) / ( cubeUV_r5 - cubeUV_r6 ) + cubeUV_m5;
		} else {
			mip = - 2.0 * log2( 1.16 * roughness );		}
		return mip;
	}
	vec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) {
		float mip = clamp( roughnessToMip( roughness ), cubeUV_m0, CUBEUV_MAX_MIP );
		float mipF = fract( mip );
		float mipInt = floor( mip );
		vec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt );
		if ( mipF == 0.0 ) {
			return vec4( color0, 1.0 );
		} else {
			vec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 );
			return vec4( mix( color0, color1, mipF ), 1.0 );
		}
	}
#endif`,dY=`vec3 transformedNormal = objectNormal;
#ifdef USE_TANGENT
	vec3 transformedTangent = objectTangent;
#endif
#ifdef USE_BATCHING
	mat3 bm = mat3( batchingMatrix );
	transformedNormal /= vec3( dot( bm[ 0 ], bm[ 0 ] ), dot( bm[ 1 ], bm[ 1 ] ), dot( bm[ 2 ], bm[ 2 ] ) );
	transformedNormal = bm * transformedNormal;
	#ifdef USE_TANGENT
		transformedTangent = bm * transformedTangent;
	#endif
#endif
#ifdef USE_INSTANCING
	mat3 im = mat3( instanceMatrix );
	transformedNormal /= vec3( dot( im[ 0 ], im[ 0 ] ), dot( im[ 1 ], im[ 1 ] ), dot( im[ 2 ], im[ 2 ] ) );
	transformedNormal = im * transformedNormal;
	#ifdef USE_TANGENT
		transformedTangent = im * transformedTangent;
	#endif
#endif
transformedNormal = normalMatrix * transformedNormal;
#ifdef FLIP_SIDED
	transformedNormal = - transformedNormal;
#endif
#ifdef USE_TANGENT
	transformedTangent = ( modelViewMatrix * vec4( transformedTangent, 0.0 ) ).xyz;
#endif`,hY=`#ifdef USE_DISPLACEMENTMAP
	uniform sampler2D displacementMap;
	uniform float displacementScale;
	uniform float displacementBias;
#endif`,pY=`#ifdef USE_DISPLACEMENTMAP
	transformed += normalize( objectNormal ) * ( texture2D( displacementMap, vDisplacementMapUv ).x * displacementScale + displacementBias );
#endif`,mY=`#ifdef USE_EMISSIVEMAP
	vec4 emissiveColor = texture2D( emissiveMap, vEmissiveMapUv );
	#ifdef DECODE_VIDEO_TEXTURE_EMISSIVE
		emissiveColor = sRGBTransferEOTF( emissiveColor );
	#endif
	totalEmissiveRadiance *= emissiveColor.rgb;
#endif`,_Y=`#ifdef USE_EMISSIVEMAP
	uniform sampler2D emissiveMap;
#endif`,gY="gl_FragColor = linearToOutputTexel( gl_FragColor );",vY=`vec4 LinearTransferOETF( in vec4 value ) {
	return value;
}
vec4 sRGBTransferEOTF( in vec4 value ) {
	return vec4( mix( pow( value.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), value.rgb * 0.0773993808, vec3( lessThanEqual( value.rgb, vec3( 0.04045 ) ) ) ), value.a );
}
vec4 sRGBTransferOETF( in vec4 value ) {
	return vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.a );
}`,yY=`#ifdef USE_ENVMAP
	#ifdef ENV_WORLDPOS
		vec3 cameraToFrag;
		if ( isOrthographic ) {
			cameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );
		} else {
			cameraToFrag = normalize( vWorldPosition - cameraPosition );
		}
		vec3 worldNormal = transformNormalByInverseViewMatrix( normal, viewMatrix );
		#ifdef ENVMAP_MODE_REFLECTION
			vec3 reflectVec = reflect( cameraToFrag, worldNormal );
		#else
			vec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio );
		#endif
	#else
		vec3 reflectVec = vReflect;
	#endif
	#ifdef ENVMAP_TYPE_CUBE
		vec4 envColor = textureCube( envMap, envMapRotation * reflectVec );
		#ifdef ENVMAP_BLENDING_MULTIPLY
			outgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity );
		#elif defined( ENVMAP_BLENDING_MIX )
			outgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity );
		#elif defined( ENVMAP_BLENDING_ADD )
			outgoingLight += envColor.xyz * specularStrength * reflectivity;
		#endif
	#endif
#endif`,bY=`#ifdef USE_ENVMAP
	uniform float envMapIntensity;
	uniform mat3 envMapRotation;
	#ifdef ENVMAP_TYPE_CUBE
		uniform samplerCube envMap;
	#else
		uniform sampler2D envMap;
	#endif
#endif`,SY=`#ifdef USE_ENVMAP
	uniform float reflectivity;
	#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )
		#define ENV_WORLDPOS
	#endif
	#ifdef ENV_WORLDPOS
		varying vec3 vWorldPosition;
		uniform float refractionRatio;
	#else
		varying vec3 vReflect;
	#endif
#endif`,EY=`#ifdef USE_ENVMAP
	#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )
		#define ENV_WORLDPOS
	#endif
	#ifdef ENV_WORLDPOS
		
		varying vec3 vWorldPosition;
	#else
		varying vec3 vReflect;
		uniform float refractionRatio;
	#endif
#endif`,wY=`#ifdef USE_ENVMAP
	#ifdef ENV_WORLDPOS
		vWorldPosition = worldPosition.xyz;
	#else
		vec3 cameraToVertex;
		if ( isOrthographic ) {
			cameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );
		} else {
			cameraToVertex = normalize( worldPosition.xyz - cameraPosition );
		}
		vec3 worldNormal = transformNormalByInverseViewMatrix( transformedNormal, viewMatrix );
		#ifdef ENVMAP_MODE_REFLECTION
			vReflect = reflect( cameraToVertex, worldNormal );
		#else
			vReflect = refract( cameraToVertex, worldNormal, refractionRatio );
		#endif
	#endif
#endif`,xY=`#ifdef USE_FOG
	vFogDepth = - mvPosition.z;
#endif`,TY=`#ifdef USE_FOG
	varying float vFogDepth;
#endif`,MY=`#ifdef USE_FOG
	#ifdef FOG_EXP2
		float fogFactor = 1.0 - exp( - fogDensity * fogDensity * vFogDepth * vFogDepth );
	#else
		float fogFactor = smoothstep( fogNear, fogFar, vFogDepth );
	#endif
	gl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );
#endif`,AY=`#ifdef USE_FOG
	uniform vec3 fogColor;
	varying float vFogDepth;
	#ifdef FOG_EXP2
		uniform float fogDensity;
	#else
		uniform float fogNear;
		uniform float fogFar;
	#endif
#endif`,CY=`#ifdef USE_GRADIENTMAP
	uniform sampler2D gradientMap;
#endif
vec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) {
	float dotNL = dot( normal, lightDirection );
	vec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 );
	#ifdef USE_GRADIENTMAP
		return vec3( texture2D( gradientMap, coord ).r );
	#else
		vec2 fw = fwidth( coord ) * 0.5;
		return mix( vec3( 0.7 ), vec3( 1.0 ), smoothstep( 0.7 - fw.x, 0.7 + fw.x, coord.x ) );
	#endif
}`,RY=`#ifdef USE_LIGHTMAP
	uniform sampler2D lightMap;
	uniform float lightMapIntensity;
#endif`,IY=`LambertMaterial material;
material.diffuseColor = diffuseColor.rgb;
material.specularStrength = specularStrength;`,LY=`varying vec3 vViewPosition;
struct LambertMaterial {
	vec3 diffuseColor;
	float specularStrength;
};
void RE_Direct_Lambert( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {
	float dotNL = saturate( dot( geometryNormal, directLight.direction ) );
	vec3 irradiance = dotNL * directLight.color;
	reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );
}
void RE_IndirectDiffuse_Lambert( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {
	reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );
}
#define RE_Direct				RE_Direct_Lambert
#define RE_IndirectDiffuse		RE_IndirectDiffuse_Lambert`,NY=`uniform bool receiveShadow;
uniform vec3 ambientLightColor;
#if defined( USE_LIGHT_PROBES )
	uniform vec3 lightProbe[ 9 ];
#endif
vec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) {
	float x = normal.x, y = normal.y, z = normal.z;
	vec3 result = shCoefficients[ 0 ] * 0.886227;
	result += shCoefficients[ 1 ] * 2.0 * 0.511664 * y;
	result += shCoefficients[ 2 ] * 2.0 * 0.511664 * z;
	result += shCoefficients[ 3 ] * 2.0 * 0.511664 * x;
	result += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y;
	result += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z;
	result += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 );
	result += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z;
	result += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y );
	return result;
}
vec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in vec3 normal ) {
	vec3 worldNormal = transformNormalByInverseViewMatrix( normal, viewMatrix );
	vec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe );
	return irradiance;
}
vec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {
	vec3 irradiance = ambientLightColor;
	return irradiance;
}
float getDistanceAttenuation( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) {
	float distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );
	if ( cutoffDistance > 0.0 ) {
		distanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );
	}
	return distanceFalloff;
}
float getSpotAttenuation( const in float coneCosine, const in float penumbraCosine, const in float angleCosine ) {
	return smoothstep( coneCosine, penumbraCosine, angleCosine );
}
#if NUM_SUN_LIGHTS > 0
	struct SunLight {
		vec3 direction;
		vec3 color;
	};
	uniform SunLight sunLights[ NUM_SUN_LIGHTS ];
	void getSunLightInfo( const in SunLight sunLight, out IncidentLight light ) {
		light.color = sunLight.color;
		light.direction = sunLight.direction;
		light.visible = true;
	}
#endif
#if NUM_DIR_LIGHTS > 0
	struct DirectionalLight {
		vec3 direction;
		vec3 color;
	};
	uniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ];
	void getDirectionalLightInfo( const in DirectionalLight directionalLight, out IncidentLight light ) {
		light.color = directionalLight.color;
		light.direction = directionalLight.direction;
		light.visible = true;
	}
#endif
#if NUM_POINT_LIGHTS > 0
	struct PointLight {
		vec3 position;
		vec3 color;
		float distance;
		float decay;
	};
	uniform PointLight pointLights[ NUM_POINT_LIGHTS ];
	void getPointLightInfo( const in PointLight pointLight, const in vec3 geometryPosition, out IncidentLight light ) {
		vec3 lVector = pointLight.position - geometryPosition;
		light.direction = normalize( lVector );
		float lightDistance = length( lVector );
		light.color = pointLight.color;
		light.color *= getDistanceAttenuation( lightDistance, pointLight.distance, pointLight.decay );
		light.visible = ( light.color != vec3( 0.0 ) );
	}
#endif
#if NUM_SPOT_LIGHTS > 0
	struct SpotLight {
		vec3 position;
		vec3 direction;
		vec3 color;
		float distance;
		float decay;
		float coneCos;
		float penumbraCos;
	};
	uniform SpotLight spotLights[ NUM_SPOT_LIGHTS ];
	void getSpotLightInfo( const in SpotLight spotLight, const in vec3 geometryPosition, out IncidentLight light ) {
		vec3 lVector = spotLight.position - geometryPosition;
		light.direction = normalize( lVector );
		float angleCos = dot( light.direction, spotLight.direction );
		float spotAttenuation = getSpotAttenuation( spotLight.coneCos, spotLight.penumbraCos, angleCos );
		if ( spotAttenuation > 0.0 ) {
			float lightDistance = length( lVector );
			light.color = spotLight.color * spotAttenuation;
			light.color *= getDistanceAttenuation( lightDistance, spotLight.distance, spotLight.decay );
			light.visible = ( light.color != vec3( 0.0 ) );
		} else {
			light.color = vec3( 0.0 );
			light.visible = false;
		}
	}
#endif
#if NUM_RECT_AREA_LIGHTS > 0
	struct RectAreaLight {
		vec3 color;
		vec3 position;
		vec3 halfWidth;
		vec3 halfHeight;
	};
	uniform sampler2D ltc_1;	uniform sampler2D ltc_2;
	uniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ];
#endif
#if NUM_HEMI_LIGHTS > 0
	struct HemisphereLight {
		vec3 direction;
		vec3 skyColor;
		vec3 groundColor;
	};
	uniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ];
	vec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in vec3 normal ) {
		float dotNL = dot( normal, hemiLight.direction );
		float hemiDiffuseWeight = 0.5 * dotNL + 0.5;
		vec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );
		return irradiance;
	}
#endif
#include <lightprobes_pars_fragment>`,kY=`#ifdef USE_ENVMAP
	vec3 getIBLIrradiance( const in vec3 normal ) {
		#ifdef ENVMAP_TYPE_CUBE_UV
			vec3 worldNormal = transformNormalByInverseViewMatrix( normal, viewMatrix );
			vec4 envMapColor = textureCubeUV( envMap, envMapRotation * worldNormal, 1.0 );
			return PI * envMapColor.rgb * envMapIntensity;
		#else
			return vec3( 0.0 );
		#endif
	}
	vec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) {
		#ifdef ENVMAP_TYPE_CUBE_UV
			vec3 reflectVec = reflect( - viewDir, normal );
			reflectVec = normalize( mix( reflectVec, normal, pow4( roughness ) ) );
			reflectVec = transformDirectionByInverseViewMatrix( reflectVec, viewMatrix );
			vec4 envMapColor = textureCubeUV( envMap, envMapRotation * reflectVec, roughness );
			return envMapColor.rgb * envMapIntensity;
		#else
			return vec3( 0.0 );
		#endif
	}
	#ifdef USE_RETROREFLECTION
		vec3 getIBLRetroRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) {
			#ifdef ENVMAP_TYPE_CUBE_UV
				vec3 retroVec = normalize( mix( viewDir, normal, pow4( roughness ) ) );
				retroVec = transformDirectionByInverseViewMatrix( retroVec, viewMatrix );
				vec4 envMapColor = textureCubeUV( envMap, envMapRotation * retroVec, roughness );
				return envMapColor.rgb * envMapIntensity;
			#else
				return vec3( 0.0 );
			#endif
		}
	#endif
	#ifdef USE_ANISOTROPY
		vec3 getIBLAnisotropyRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness, const in vec3 bitangent, const in float anisotropy ) {
			#ifdef ENVMAP_TYPE_CUBE_UV
				vec3 bentNormal = cross( bitangent, viewDir );
				bentNormal = normalize( cross( bentNormal, bitangent ) );
				bentNormal = normalize( mix( bentNormal, normal, pow2( pow2( 1.0 - anisotropy * ( 1.0 - roughness ) ) ) ) );
				return getIBLRadiance( viewDir, bentNormal, roughness );
			#else
				return vec3( 0.0 );
			#endif
		}
		#ifdef USE_RETROREFLECTION
			vec3 getIBLAnisotropyRetroRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness, const in vec3 bitangent, const in float anisotropy ) {
				#ifdef ENVMAP_TYPE_CUBE_UV
					vec3 bentNormal = cross( bitangent, viewDir );
					bentNormal = normalize( cross( bentNormal, bitangent ) );
					bentNormal = normalize( mix( bentNormal, normal, pow2( pow2( 1.0 - anisotropy * ( 1.0 - roughness ) ) ) ) );
					return getIBLRetroRadiance( viewDir, bentNormal, roughness );
				#else
					return vec3( 0.0 );
				#endif
			}
		#endif
	#endif
#endif`,OY=`ToonMaterial material;
material.diffuseColor = diffuseColor.rgb;`,DY=`varying vec3 vViewPosition;
struct ToonMaterial {
	vec3 diffuseColor;
};
void RE_Direct_Toon( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {
	vec3 irradiance = getGradientIrradiance( geometryNormal, directLight.direction ) * directLight.color;
	reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );
}
void RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {
	reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );
}
#define RE_Direct				RE_Direct_Toon
#define RE_IndirectDiffuse		RE_IndirectDiffuse_Toon`,FY=`BlinnPhongMaterial material;
material.diffuseColor = diffuseColor.rgb;
material.specularColor = specular;
material.specularShininess = shininess;
material.specularStrength = specularStrength;`,PY=`varying vec3 vViewPosition;
struct BlinnPhongMaterial {
	vec3 diffuseColor;
	vec3 specularColor;
	float specularShininess;
	float specularStrength;
};
void RE_Direct_BlinnPhong( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {
	float dotNL = saturate( dot( geometryNormal, directLight.direction ) );
	vec3 irradiance = dotNL * directLight.color;
	reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );
	reflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction, geometryViewDir, geometryNormal, material.specularColor, material.specularShininess ) * material.specularStrength;
}
void RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {
	reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );
}
#define RE_Direct				RE_Direct_BlinnPhong
#define RE_IndirectDiffuse		RE_IndirectDiffuse_BlinnPhong`,UY=`PhysicalMaterial material;
material.diffuseColor = diffuseColor.rgb;
material.diffuseContribution = diffuseColor.rgb * ( 1.0 - metalnessFactor );
material.metalness = metalnessFactor;
vec3 dxy = max( abs( dFdx( nonPerturbedNormal ) ), abs( dFdy( nonPerturbedNormal ) ) );
float geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );
material.roughness = max( roughnessFactor, 0.0525 );material.roughness += geometryRoughness;
material.roughness = min( material.roughness, 1.0 );
#ifdef IOR
	material.ior = ior;
	#ifdef USE_SPECULAR
		float specularIntensityFactor = specularIntensity;
		vec3 specularColorFactor = specularColor;
		#ifdef USE_SPECULAR_COLORMAP
			specularColorFactor *= texture2D( specularColorMap, vSpecularColorMapUv ).rgb;
		#endif
		#ifdef USE_SPECULAR_INTENSITYMAP
			specularIntensityFactor *= texture2D( specularIntensityMap, vSpecularIntensityMapUv ).a;
		#endif
		material.specularF90 = mix( specularIntensityFactor, 1.0, metalnessFactor );
	#else
		float specularIntensityFactor = 1.0;
		vec3 specularColorFactor = vec3( 1.0 );
		material.specularF90 = 1.0;
	#endif
	material.specularColor = min( pow2( ( material.ior - 1.0 ) / ( material.ior + 1.0 ) ) * specularColorFactor, vec3( 1.0 ) ) * specularIntensityFactor;
	material.specularColorBlended = mix( material.specularColor, diffuseColor.rgb, metalnessFactor );
#else
	material.specularColor = vec3( 0.04 );
	material.specularColorBlended = mix( material.specularColor, diffuseColor.rgb, metalnessFactor );
	material.specularF90 = 1.0;
#endif
#ifdef USE_CLEARCOAT
	material.clearcoat = clearcoat;
	material.clearcoatRoughness = clearcoatRoughness;
	material.clearcoatF0 = vec3( 0.04 );
	material.clearcoatF90 = 1.0;
	#ifdef USE_CLEARCOATMAP
		material.clearcoat *= texture2D( clearcoatMap, vClearcoatMapUv ).x;
	#endif
	#ifdef USE_CLEARCOAT_ROUGHNESSMAP
		material.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vClearcoatRoughnessMapUv ).y;
	#endif
	material.clearcoat = saturate( material.clearcoat );	material.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 );
	material.clearcoatRoughness += geometryRoughness;
	material.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 );
#endif
#ifdef USE_DISPERSION
	material.dispersion = dispersion;
#endif
#ifdef USE_RETROREFLECTION
	material.retroreflectivity = retroreflectivity;
#endif
#ifdef USE_IRIDESCENCE
	material.iridescence = iridescence;
	material.iridescenceIOR = iridescenceIOR;
	#ifdef USE_IRIDESCENCEMAP
		material.iridescence *= texture2D( iridescenceMap, vIridescenceMapUv ).r;
	#endif
	#ifdef USE_IRIDESCENCE_THICKNESSMAP
		material.iridescenceThickness = (iridescenceThicknessMaximum - iridescenceThicknessMinimum) * texture2D( iridescenceThicknessMap, vIridescenceThicknessMapUv ).g + iridescenceThicknessMinimum;
	#else
		material.iridescenceThickness = iridescenceThicknessMaximum;
	#endif
#endif
#ifdef USE_SHEEN
	material.sheenColor = sheenColor;
	#ifdef USE_SHEEN_COLORMAP
		material.sheenColor *= texture2D( sheenColorMap, vSheenColorMapUv ).rgb;
	#endif
	material.sheenRoughness = clamp( sheenRoughness, 0.0001, 1.0 );
	#ifdef USE_SHEEN_ROUGHNESSMAP
		material.sheenRoughness *= texture2D( sheenRoughnessMap, vSheenRoughnessMapUv ).a;
	#endif
#endif
#ifdef USE_ANISOTROPY
	#ifdef USE_ANISOTROPYMAP
		mat2 anisotropyMat = mat2( anisotropyVector.x, anisotropyVector.y, - anisotropyVector.y, anisotropyVector.x );
		vec3 anisotropyPolar = texture2D( anisotropyMap, vAnisotropyMapUv ).rgb;
		vec2 anisotropyV = anisotropyMat * normalize( 2.0 * anisotropyPolar.rg - vec2( 1.0 ) ) * anisotropyPolar.b;
	#else
		vec2 anisotropyV = anisotropyVector;
	#endif
	material.anisotropy = length( anisotropyV );
	if( material.anisotropy == 0.0 ) {
		anisotropyV = vec2( 1.0, 0.0 );
	} else {
		anisotropyV /= material.anisotropy;
		material.anisotropy = saturate( material.anisotropy );
	}
	material.alphaT = mix( pow2( material.roughness ), 1.0, pow2( material.anisotropy ) );
	material.anisotropyT = tbn[ 0 ] * anisotropyV.x + tbn[ 1 ] * anisotropyV.y;
	material.anisotropyB = tbn[ 1 ] * anisotropyV.x - tbn[ 0 ] * anisotropyV.y;
#endif`,zY=`uniform sampler2D dfgLUT;
struct PhysicalMaterial {
	vec3 diffuseColor;
	vec3 diffuseContribution;
	vec3 specularColor;
	vec3 specularColorBlended;
	float roughness;
	float metalness;
	float specularF90;
	float dispersion;
	vec2 dfg;
	vec3 multiScatteringCompensation;
	#ifdef USE_RETROREFLECTION
		float retroreflectivity;
	#endif
	#ifdef USE_CLEARCOAT
		float clearcoat;
		float clearcoatRoughness;
		vec3 clearcoatF0;
		float clearcoatF90;
	#endif
	#ifdef USE_IRIDESCENCE
		float iridescence;
		float iridescenceIOR;
		float iridescenceThickness;
		vec3 iridescenceFresnel;
		vec3 iridescenceF0Dielectric;
		vec3 iridescenceF0Metallic;
	#endif
	#ifdef USE_SHEEN
		vec3 sheenColor;
		float sheenRoughness;
	#endif
	#ifdef IOR
		float ior;
	#endif
	#ifdef USE_TRANSMISSION
		float transmission;
		float transmissionAlpha;
		float thickness;
		float attenuationDistance;
		vec3 attenuationColor;
	#endif
	#ifdef USE_ANISOTROPY
		float anisotropy;
		float alphaT;
		vec3 anisotropyT;
		vec3 anisotropyB;
	#endif
};
vec3 clearcoatSpecularDirect = vec3( 0.0 );
vec3 clearcoatSpecularIndirect = vec3( 0.0 );
vec3 sheenSpecularDirect = vec3( 0.0 );
vec3 sheenSpecularIndirect = vec3(0.0 );
vec3 Schlick_to_F0( const in vec3 f, const in float f90, const in float dotVH ) {
    float x = clamp( 1.0 - dotVH, 0.0, 1.0 );
    float x2 = x * x;
    float x5 = clamp( x * x2 * x2, 0.0, 0.9999 );
    return ( f - vec3( f90 ) * x5 ) / ( 1.0 - x5 );
}
float V_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) {
	float a2 = pow2( alpha );
	float gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );
	float gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );
	return 0.5 / max( gv + gl, EPSILON );
}
float D_GGX( const in float alpha, const in float dotNH ) {
	float a2 = pow2( alpha );
	float denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0;
	return RECIPROCAL_PI * a2 / pow2( denom );
}
#ifdef USE_ANISOTROPY
	float V_GGX_SmithCorrelated_Anisotropic( const in float alphaT, const in float alphaB, const in float dotTV, const in float dotBV, const in float dotTL, const in float dotBL, const in float dotNV, const in float dotNL ) {
		float gv = dotNL * length( vec3( alphaT * dotTV, alphaB * dotBV, dotNV ) );
		float gl = dotNV * length( vec3( alphaT * dotTL, alphaB * dotBL, dotNL ) );
		return 0.5 / max( gv + gl, EPSILON );
	}
	float D_GGX_Anisotropic( const in float alphaT, const in float alphaB, const in float dotNH, const in float dotTH, const in float dotBH ) {
		float a2 = alphaT * alphaB;
		highp vec3 v = vec3( alphaB * dotTH, alphaT * dotBH, a2 * dotNH );
		highp float v2 = dot( v, v );
		float w2 = a2 / v2;
		return RECIPROCAL_PI * a2 * pow2 ( w2 );
	}
#endif
#ifdef USE_CLEARCOAT
	vec3 BRDF_GGX_Clearcoat( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material) {
		vec3 f0 = material.clearcoatF0;
		float f90 = material.clearcoatF90;
		float roughness = material.clearcoatRoughness;
		float alpha = pow2( roughness );
		vec3 halfDir = normalize( lightDir + viewDir );
		float dotNL = saturate( dot( normal, lightDir ) );
		float dotNV = saturate( dot( normal, viewDir ) );
		float dotNH = saturate( dot( normal, halfDir ) );
		float dotVH = saturate( dot( viewDir, halfDir ) );
		vec3 F = F_Schlick( f0, f90, dotVH );
		float V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );
		float D = D_GGX( alpha, dotNH );
		return F * ( V * D );
	}
#endif
vec3 BRDF_GGX( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material ) {
	vec3 f0 = material.specularColorBlended;
	float f90 = material.specularF90;
	float roughness = material.roughness;
	float alpha = pow2( roughness );
	vec3 halfDir = normalize( lightDir + viewDir );
	float dotNL = saturate( dot( normal, lightDir ) );
	float dotNV = saturate( dot( normal, viewDir ) );
	float dotNH = saturate( dot( normal, halfDir ) );
	float dotVH = saturate( dot( viewDir, halfDir ) );
	vec3 F = F_Schlick( f0, f90, dotVH );
	#ifdef USE_IRIDESCENCE
		F = mix( F, material.iridescenceFresnel, material.iridescence );
	#endif
	#ifdef USE_ANISOTROPY
		float dotTL = dot( material.anisotropyT, lightDir );
		float dotTV = dot( material.anisotropyT, viewDir );
		float dotTH = dot( material.anisotropyT, halfDir );
		float dotBL = dot( material.anisotropyB, lightDir );
		float dotBV = dot( material.anisotropyB, viewDir );
		float dotBH = dot( material.anisotropyB, halfDir );
		float V = V_GGX_SmithCorrelated_Anisotropic( material.alphaT, alpha, dotTV, dotBV, dotTL, dotBL, dotNV, dotNL );
		float D = D_GGX_Anisotropic( material.alphaT, alpha, dotNH, dotTH, dotBH );
	#else
		float V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );
		float D = D_GGX( alpha, dotNH );
	#endif
	return F * ( V * D );
}
vec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) {
	const float LUT_SIZE = 64.0;
	const float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;
	const float LUT_BIAS = 0.5 / LUT_SIZE;
	float dotNV = saturate( dot( N, V ) );
	vec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) );
	uv = uv * LUT_SCALE + LUT_BIAS;
	return uv;
}
float LTC_ClippedSphereFormFactor( const in vec3 f ) {
	float l = length( f );
	return max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 );
}
vec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) {
	float x = dot( v1, v2 );
	float y = abs( x );
	float a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y;
	float b = 3.4175940 + ( 4.1616724 + y ) * y;
	float v = a / b;
	float theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v;
	return cross( v1, v2 ) * theta_sintheta;
}
vec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) {
	vec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ];
	vec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ];
	vec3 lightNormal = cross( v1, v2 );
	if( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 );
	vec3 T1, T2;
	T1 = normalize( V - N * dot( V, N ) );
	T2 = - cross( N, T1 );
	mat3 mat = mInv * transpose( mat3( T1, T2, N ) );
	vec3 coords[ 4 ];
	coords[ 0 ] = mat * ( rectCoords[ 0 ] - P );
	coords[ 1 ] = mat * ( rectCoords[ 1 ] - P );
	coords[ 2 ] = mat * ( rectCoords[ 2 ] - P );
	coords[ 3 ] = mat * ( rectCoords[ 3 ] - P );
	coords[ 0 ] = normalize( coords[ 0 ] );
	coords[ 1 ] = normalize( coords[ 1 ] );
	coords[ 2 ] = normalize( coords[ 2 ] );
	coords[ 3 ] = normalize( coords[ 3 ] );
	vec3 vectorFormFactor = vec3( 0.0 );
	vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );
	vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );
	vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );
	vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );
	float result = LTC_ClippedSphereFormFactor( vectorFormFactor );
	return vec3( result );
}
#if defined( USE_SHEEN )
float D_Charlie( float roughness, float dotNH ) {
	float alpha = pow2( roughness );
	float invAlpha = 1.0 / alpha;
	float cos2h = dotNH * dotNH;
	float sin2h = max( 1.0 - cos2h, 0.0078125 );
	return ( 2.0 + invAlpha ) * pow( sin2h, invAlpha * 0.5 ) / ( 2.0 * PI );
}
float V_Neubelt( float dotNV, float dotNL ) {
	return saturate( 1.0 / ( 4.0 * ( dotNL + dotNV - dotNL * dotNV ) ) );
}
vec3 BRDF_Sheen( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, vec3 sheenColor, const in float sheenRoughness ) {
	vec3 halfDir = normalize( lightDir + viewDir );
	float dotNL = saturate( dot( normal, lightDir ) );
	float dotNV = saturate( dot( normal, viewDir ) );
	float dotNH = saturate( dot( normal, halfDir ) );
	float D = D_Charlie( sheenRoughness, dotNH );
	float V = V_Neubelt( dotNV, dotNL );
	return sheenColor * ( D * V );
}
#endif
float IBLSheenBRDF( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {
	float dotNV = saturate( dot( normal, viewDir ) );
	float r2 = roughness * roughness;
	float rInv = 1.0 / ( roughness + 0.1 );
	float a = -1.9362 + 1.0678 * roughness + 0.4573 * r2 - 0.8469 * rInv;
	float b = -0.6014 + 0.5538 * roughness - 0.4670 * r2 - 0.1255 * rInv;
	float DG = exp( a * dotNV + b );
	return saturate( DG );
}
vec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) {
	float dotNV = saturate( dot( normal, viewDir ) );
	vec2 fab = texture2D( dfgLUT, vec2( roughness, dotNV ) ).rg;
	return specularColor * fab.x + specularF90 * fab.y;
}
#ifdef USE_IRIDESCENCE
void computeMultiscatteringIridescence( const in vec2 fab, const in vec3 specularColor, const in float specularF90, const in float iridescence, const in vec3 iridescenceF0, inout vec3 singleScatter, inout vec3 multiScatter ) {
#else
void computeMultiscattering( const in vec2 fab, const in vec3 specularColor, const in float specularF90, inout vec3 singleScatter, inout vec3 multiScatter ) {
#endif
	#ifdef USE_IRIDESCENCE
		vec3 Fr = mix( specularColor, iridescenceF0, iridescence );
	#else
		vec3 Fr = specularColor;
	#endif
	vec3 FssEss = Fr * fab.x + specularF90 * fab.y;
	float Ess = fab.x + fab.y;
	float Ems = 1.0 - Ess;
	vec3 Favg = Fr + ( 1.0 - Fr ) * 0.047619;	vec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg );
	singleScatter += FssEss;
	multiScatter += Fms * Ems;
}
#if NUM_RECT_AREA_LIGHTS > 0
	void RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {
		vec3 normal = geometryNormal;
		vec3 viewDir = geometryViewDir;
		vec3 position = geometryPosition;
		vec3 lightPos = rectAreaLight.position;
		vec3 halfWidth = rectAreaLight.halfWidth;
		vec3 halfHeight = rectAreaLight.halfHeight;
		vec3 lightColor = rectAreaLight.color;
		float roughness = material.roughness;
		vec3 rectCoords[ 4 ];
		rectCoords[ 0 ] = lightPos + halfWidth - halfHeight;		rectCoords[ 1 ] = lightPos - halfWidth - halfHeight;
		rectCoords[ 2 ] = lightPos - halfWidth + halfHeight;
		rectCoords[ 3 ] = lightPos + halfWidth + halfHeight;
		vec2 uv = LTC_Uv( normal, viewDir, roughness );
		vec4 t1 = texture2D( ltc_1, uv );
		vec4 t2 = texture2D( ltc_2, uv );
		mat3 mInv = mat3(
			vec3( t1.x, 0, t1.y ),
			vec3(    0, 1,    0 ),
			vec3( t1.z, 0, t1.w )
		);
		vec3 fresnel = ( material.specularColorBlended * t2.x + ( material.specularF90 - material.specularColorBlended ) * t2.y );
		reflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords );
		reflectedLight.directDiffuse += lightColor * material.diffuseContribution * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords );
		#ifdef USE_CLEARCOAT
			vec3 Ncc = geometryClearcoatNormal;
			vec2 uvClearcoat = LTC_Uv( Ncc, viewDir, material.clearcoatRoughness );
			vec4 t1Clearcoat = texture2D( ltc_1, uvClearcoat );
			vec4 t2Clearcoat = texture2D( ltc_2, uvClearcoat );
			mat3 mInvClearcoat = mat3(
				vec3( t1Clearcoat.x, 0, t1Clearcoat.y ),
				vec3(             0, 1,             0 ),
				vec3( t1Clearcoat.z, 0, t1Clearcoat.w )
			);
			vec3 fresnelClearcoat = material.clearcoatF0 * t2Clearcoat.x + ( material.clearcoatF90 - material.clearcoatF0 ) * t2Clearcoat.y;
			clearcoatSpecularDirect += lightColor * fresnelClearcoat * LTC_Evaluate( Ncc, viewDir, position, mInvClearcoat, rectCoords );
		#endif
	}
#endif
void RE_Direct_Physical( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {
	float dotNL = saturate( dot( geometryNormal, directLight.direction ) );
	vec3 irradiance = dotNL * directLight.color;
	#ifdef USE_CLEARCOAT
		float dotNLcc = saturate( dot( geometryClearcoatNormal, directLight.direction ) );
		vec3 ccIrradiance = dotNLcc * directLight.color;
		clearcoatSpecularDirect += ccIrradiance * BRDF_GGX_Clearcoat( directLight.direction, geometryViewDir, geometryClearcoatNormal, material );
	#endif
	#ifdef USE_SHEEN
 
 		sheenSpecularDirect += irradiance * BRDF_Sheen( directLight.direction, geometryViewDir, geometryNormal, material.sheenColor, material.sheenRoughness );
 
 		float sheenAlbedoV = IBLSheenBRDF( geometryNormal, geometryViewDir, material.sheenRoughness );
 		float sheenAlbedoL = IBLSheenBRDF( geometryNormal, directLight.direction, material.sheenRoughness );
 
 		float sheenEnergyComp = 1.0 - max3( material.sheenColor ) * max( sheenAlbedoV, sheenAlbedoL );
 
 		irradiance *= sheenEnergyComp;
 
 	#endif
	vec3 specularBRDF = BRDF_GGX( directLight.direction, geometryViewDir, geometryNormal, material );
	#ifdef USE_RETROREFLECTION
		vec3 retroViewDir = reflect( - geometryViewDir, geometryNormal );
		vec3 retroSpecularBRDF = BRDF_GGX( directLight.direction, retroViewDir, geometryNormal, material );
		specularBRDF = mix( specularBRDF, retroSpecularBRDF, saturate( material.retroreflectivity ) );
	#endif
	reflectedLight.directSpecular += irradiance * specularBRDF * material.multiScatteringCompensation;
	vec3 halfDir = normalize( directLight.direction + geometryViewDir );
	float dotVH = saturate( dot( geometryViewDir, halfDir ) );
	vec3 F = F_Schlick( material.specularColor, material.specularF90, dotVH );
	#ifdef USE_RETROREFLECTION
		vec3 retroHalfDir = normalize( directLight.direction + retroViewDir );
		float dotRetroVH = saturate( dot( retroViewDir, retroHalfDir ) );
		vec3 retroF = F_Schlick( material.specularColor, material.specularF90, dotRetroVH );
		F = mix( F, retroF, saturate( material.retroreflectivity ) );
	#endif
	reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseContribution ) * ( 1.0 - F );
}
void RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {
	vec3 singleScattering = vec3( 0.0 );
	vec3 multiScattering = vec3( 0.0 );
	#ifdef USE_IRIDESCENCE
		computeMultiscatteringIridescence( material.dfg, material.specularColor, material.specularF90, material.iridescence, material.iridescenceF0Dielectric, singleScattering, multiScattering );
	#else
		computeMultiscattering( material.dfg, material.specularColor, material.specularF90, singleScattering, multiScattering );
	#endif
	vec3 diffuse = irradiance * BRDF_Lambert( material.diffuseContribution ) * ( 1.0 - singleScattering - multiScattering );
	#ifdef USE_SHEEN
		float sheenAlbedo = IBLSheenBRDF( geometryNormal, geometryViewDir, material.sheenRoughness );
		sheenSpecularIndirect += irradiance * material.sheenColor * sheenAlbedo * RECIPROCAL_PI;
		float sheenEnergyComp = 1.0 - max3( material.sheenColor ) * sheenAlbedo;
		diffuse *= sheenEnergyComp;
	#endif
	reflectedLight.indirectDiffuse += diffuse;
}
void RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {
	#ifdef USE_CLEARCOAT
		clearcoatSpecularIndirect += clearcoatRadiance * EnvironmentBRDF( geometryClearcoatNormal, geometryViewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness );
	#endif
	#ifdef USE_SHEEN
		sheenSpecularIndirect += irradiance * material.sheenColor * IBLSheenBRDF( geometryNormal, geometryViewDir, material.sheenRoughness ) * RECIPROCAL_PI;
 	#endif
	vec3 singleScatteringDielectric = vec3( 0.0 );
	vec3 multiScatteringDielectric = vec3( 0.0 );
	vec3 singleScatteringMetallic = vec3( 0.0 );
	vec3 multiScatteringMetallic = vec3( 0.0 );
	#ifdef USE_IRIDESCENCE
		computeMultiscatteringIridescence( material.dfg, material.specularColor, material.specularF90, material.iridescence, material.iridescenceF0Dielectric, singleScatteringDielectric, multiScatteringDielectric );
		computeMultiscatteringIridescence( material.dfg, material.diffuseColor, material.specularF90, material.iridescence, material.iridescenceF0Metallic, singleScatteringMetallic, multiScatteringMetallic );
	#else
		computeMultiscattering( material.dfg, material.specularColor, material.specularF90, singleScatteringDielectric, multiScatteringDielectric );
		computeMultiscattering( material.dfg, material.diffuseColor, material.specularF90, singleScatteringMetallic, multiScatteringMetallic );
	#endif
	vec3 singleScattering = mix( singleScatteringDielectric, singleScatteringMetallic, material.metalness );
	vec3 multiScattering = mix( multiScatteringDielectric, multiScatteringMetallic, material.metalness );
	vec3 totalScatteringDielectric = singleScatteringDielectric + multiScatteringDielectric;
	vec3 diffuse = material.diffuseContribution * ( 1.0 - totalScatteringDielectric );
	vec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI;
	vec3 indirectSpecular = radiance * singleScattering;
	indirectSpecular += multiScattering * cosineWeightedIrradiance;
	vec3 indirectDiffuse = diffuse * cosineWeightedIrradiance;
	#ifdef USE_SHEEN
		float sheenAlbedo = IBLSheenBRDF( geometryNormal, geometryViewDir, material.sheenRoughness );
		float sheenEnergyComp = 1.0 - max3( material.sheenColor ) * sheenAlbedo;
		indirectSpecular *= sheenEnergyComp;
		indirectDiffuse *= sheenEnergyComp;
	#endif
	reflectedLight.indirectSpecular += indirectSpecular;
	reflectedLight.indirectDiffuse += indirectDiffuse;
}
#define RE_Direct				RE_Direct_Physical
#define RE_Direct_RectArea		RE_Direct_RectArea_Physical
#define RE_IndirectDiffuse		RE_IndirectDiffuse_Physical
#define RE_IndirectSpecular		RE_IndirectSpecular_Physical
float computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {
	return saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );
}`,qY=`
vec3 geometryPosition = - vViewPosition;
vec3 geometryNormal = normal;
vec3 geometryViewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition );
vec3 geometryClearcoatNormal = vec3( 0.0 );
#ifdef USE_CLEARCOAT
	geometryClearcoatNormal = clearcoatNormal;
#endif
#ifdef USE_IRIDESCENCE
	float dotNVi = saturate( dot( normal, geometryViewDir ) );
	if ( material.iridescenceThickness == 0.0 ) {
		material.iridescence = 0.0;
	} else {
		material.iridescence = saturate( material.iridescence );
	}
	if ( material.iridescence > 0.0 ) {
		vec3 iridescenceFresnelDielectric = evalIridescence( 1.0, material.iridescenceIOR, dotNVi, material.iridescenceThickness, material.specularColor );
		vec3 iridescenceFresnelMetallic = evalIridescence( 1.0, material.iridescenceIOR, dotNVi, material.iridescenceThickness, material.diffuseColor );
		material.iridescenceFresnel = mix( iridescenceFresnelDielectric, iridescenceFresnelMetallic, material.metalness );
		material.iridescenceF0Dielectric = Schlick_to_F0( iridescenceFresnelDielectric, 1.0, dotNVi );
		material.iridescenceF0Metallic = Schlick_to_F0( iridescenceFresnelMetallic, 1.0, dotNVi );
	}
#endif
#ifdef STANDARD
	float dotNVms = saturate( dot( geometryNormal, geometryViewDir ) );
	material.dfg = texture2D( dfgLUT, vec2( material.roughness, dotNVms ) ).rg;
	#if ( NUM_SUN_LIGHTS > 0 || NUM_DIR_LIGHTS > 0 || NUM_POINT_LIGHTS > 0 || NUM_SPOT_LIGHTS > 0 )
		float EssMs = material.dfg.x + material.dfg.y;
		material.multiScatteringCompensation = 1.0 + material.specularColorBlended * ( 1.0 / EssMs - 1.0 );
	#endif
#endif
IncidentLight directLight;
#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )
	PointLight pointLight;
	#if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0
	PointLightShadow pointLightShadow;
	#endif
	#pragma unroll_loop_start
	for ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {
		pointLight = pointLights[ i ];
		getPointLightInfo( pointLight, geometryPosition, directLight );
		#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS ) && ( defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_BASIC ) )
		pointLightShadow = pointLightShadows[ i ];
		directLight.color *= ( directLight.visible && receiveShadow ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowIntensity, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0;
		#endif
		RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );
	}
	#pragma unroll_loop_end
#endif
#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )
	SpotLight spotLight;
	vec4 spotColor;
	vec3 spotLightCoord;
	bool inSpotLightMap;
	#if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0
	SpotLightShadow spotLightShadow;
	#endif
	#pragma unroll_loop_start
	for ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {
		spotLight = spotLights[ i ];
		getSpotLightInfo( spotLight, geometryPosition, directLight );
		#if ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )
		#define SPOT_LIGHT_MAP_INDEX UNROLLED_LOOP_INDEX
		#elif ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )
		#define SPOT_LIGHT_MAP_INDEX NUM_SPOT_LIGHT_MAPS
		#else
		#define SPOT_LIGHT_MAP_INDEX ( UNROLLED_LOOP_INDEX - NUM_SPOT_LIGHT_SHADOWS + NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )
		#endif
		#if ( SPOT_LIGHT_MAP_INDEX < NUM_SPOT_LIGHT_MAPS )
			spotLightCoord = vSpotLightCoord[ i ].xyz / vSpotLightCoord[ i ].w;
			inSpotLightMap = all( lessThan( abs( spotLightCoord * 2. - 1. ), vec3( 1.0 ) ) );
			spotColor = texture2D( spotLightMap[ SPOT_LIGHT_MAP_INDEX ], spotLightCoord.xy );
			directLight.color = inSpotLightMap ? directLight.color * spotColor.rgb : directLight.color;
		#endif
		#undef SPOT_LIGHT_MAP_INDEX
		#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )
		spotLightShadow = spotLightShadows[ i ];
		directLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowIntensity, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;
		#endif
		RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );
	}
	#pragma unroll_loop_end
#endif
#if ( NUM_SUN_LIGHTS > 0 ) && defined( RE_Direct )
	SunLight sunLight;
	#if defined( USE_SHADOWMAP ) && NUM_SUN_LIGHT_SHADOWS > 0
	SunLightShadow sunLightShadow;
	#endif
	#pragma unroll_loop_start
	for ( int i = 0; i < NUM_SUN_LIGHTS; i ++ ) {
		sunLight = sunLights[ i ];
		getSunLightInfo( sunLight, directLight );
		#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SUN_LIGHT_SHADOWS )
		sunLightShadow = sunLightShadows[ i ];
		directLight.color *= ( directLight.visible && receiveShadow ) ? getSunShadow( sunShadowMap[ i ], sunLightShadow, UNROLLED_LOOP_INDEX ) : 1.0;
		#endif
		RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );
	}
	#pragma unroll_loop_end
#endif
#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct )
	DirectionalLight directionalLight;
	#if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0
	DirectionalLightShadow directionalLightShadow;
	#endif
	#pragma unroll_loop_start
	for ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {
		directionalLight = directionalLights[ i ];
		getDirectionalLightInfo( directionalLight, directLight );
		#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS )
		directionalLightShadow = directionalLightShadows[ i ];
		directLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowIntensity, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;
		#endif
		RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );
	}
	#pragma unroll_loop_end
#endif
#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea )
	RectAreaLight rectAreaLight;
	#pragma unroll_loop_start
	for ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) {
		rectAreaLight = rectAreaLights[ i ];
		RE_Direct_RectArea( rectAreaLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );
	}
	#pragma unroll_loop_end
#endif
#if defined( RE_IndirectDiffuse )
	vec3 iblIrradiance = vec3( 0.0 );
	vec3 irradiance = getAmbientLightIrradiance( ambientLightColor );
	#if defined( USE_LIGHT_PROBES )
		irradiance += getLightProbeIrradiance( lightProbe, geometryNormal );
	#endif
	#if ( NUM_HEMI_LIGHTS > 0 )
		#pragma unroll_loop_start
		for ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {
			irradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometryNormal );
		}
		#pragma unroll_loop_end
	#endif
	#ifdef USE_LIGHT_PROBES_GRID
		vec3 probeWorldPos = ( ( vec4( geometryPosition, 1.0 ) - viewMatrix[ 3 ] ) * viewMatrix ).xyz;
		vec3 probeWorldNormal = transformNormalByInverseViewMatrix( geometryNormal, viewMatrix );
		irradiance += getLightProbeGridIrradiance( probeWorldPos, probeWorldNormal );
	#endif
#endif
#if defined( RE_IndirectSpecular )
	vec3 radiance = vec3( 0.0 );
	vec3 clearcoatRadiance = vec3( 0.0 );
#endif`,BY=`#if defined( RE_IndirectDiffuse )
	#ifdef USE_LIGHTMAP
		vec4 lightMapTexel = texture2D( lightMap, vLightMapUv );
		vec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;
		irradiance += lightMapIrradiance;
	#endif
	#if defined( USE_ENVMAP ) && defined( ENVMAP_TYPE_CUBE_UV )
		#if defined( STANDARD ) || defined( LAMBERT ) || defined( PHONG )
			iblIrradiance += getIBLIrradiance( geometryNormal );
		#endif
	#endif
#endif
#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )
	#ifdef USE_ANISOTROPY
		vec3 iblRadiance = getIBLAnisotropyRadiance( geometryViewDir, geometryNormal, material.roughness, material.anisotropyB, material.anisotropy );
	#else
		vec3 iblRadiance = getIBLRadiance( geometryViewDir, geometryNormal, material.roughness );
	#endif
	#ifdef USE_RETROREFLECTION
		#ifdef USE_ANISOTROPY
			vec3 retroIBLRadiance = getIBLAnisotropyRetroRadiance( geometryViewDir, geometryNormal, material.roughness, material.anisotropyB, material.anisotropy );
		#else
			vec3 retroIBLRadiance = getIBLRetroRadiance( geometryViewDir, geometryNormal, material.roughness );
		#endif
		iblRadiance = mix( iblRadiance, retroIBLRadiance, saturate( material.retroreflectivity ) );
	#endif
	radiance += iblRadiance;
	#ifdef USE_CLEARCOAT
		clearcoatRadiance += getIBLRadiance( geometryViewDir, geometryClearcoatNormal, material.clearcoatRoughness );
	#endif
#endif`,HY=`#if defined( RE_IndirectDiffuse )
	#if defined( LAMBERT ) || defined( PHONG )
		irradiance += iblIrradiance;
	#endif
	RE_IndirectDiffuse( irradiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );
#endif
#if defined( RE_IndirectSpecular )
	RE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );
#endif`,VY=`#ifdef USE_LIGHT_PROBES_GRID
uniform highp sampler3D probesSH;
uniform vec3 probesMin;
uniform vec3 probesMax;
uniform vec3 probesResolution;
vec3 getLightProbeGridIrradiance( vec3 worldPos, vec3 worldNormal ) {
	vec3 res = probesResolution;
	vec3 gridRange = probesMax - probesMin;
	vec3 resMinusOne = res - 1.0;
	vec3 probeSpacing = gridRange / resMinusOne;
	vec3 samplePos = worldPos + worldNormal * probeSpacing * 0.5;
	vec3 uvw = clamp( ( samplePos - probesMin ) / gridRange, 0.0, 1.0 );
	uvw = uvw * resMinusOne / res + 0.5 / res;
	float nz          = res.z;
	float paddedSlices = nz + 2.0;
	float atlasDepth  = 7.0 * paddedSlices;
	float uvZBase     = uvw.z * nz + 1.0;
	vec4 s0 = texture( probesSH, vec3( uvw.xy, ( uvZBase                       ) / atlasDepth ) );
	vec4 s1 = texture( probesSH, vec3( uvw.xy, ( uvZBase +       paddedSlices   ) / atlasDepth ) );
	vec4 s2 = texture( probesSH, vec3( uvw.xy, ( uvZBase + 2.0 * paddedSlices   ) / atlasDepth ) );
	vec4 s3 = texture( probesSH, vec3( uvw.xy, ( uvZBase + 3.0 * paddedSlices   ) / atlasDepth ) );
	vec4 s4 = texture( probesSH, vec3( uvw.xy, ( uvZBase + 4.0 * paddedSlices   ) / atlasDepth ) );
	vec4 s5 = texture( probesSH, vec3( uvw.xy, ( uvZBase + 5.0 * paddedSlices   ) / atlasDepth ) );
	vec4 s6 = texture( probesSH, vec3( uvw.xy, ( uvZBase + 6.0 * paddedSlices   ) / atlasDepth ) );
	vec3 c0 = s0.xyz;
	vec3 c1 = vec3( s0.w, s1.xy );
	vec3 c2 = vec3( s1.zw, s2.x );
	vec3 c3 = s2.yzw;
	vec3 c4 = s3.xyz;
	vec3 c5 = vec3( s3.w, s4.xy );
	vec3 c6 = vec3( s4.zw, s5.x );
	vec3 c7 = s5.yzw;
	vec3 c8 = s6.xyz;
	float x = worldNormal.x, y = worldNormal.y, z = worldNormal.z;
	vec3 result = c0 * 0.886227;
	result += c1 * 2.0 * 0.511664 * y;
	result += c2 * 2.0 * 0.511664 * z;
	result += c3 * 2.0 * 0.511664 * x;
	result += c4 * 2.0 * 0.429043 * x * y;
	result += c5 * 2.0 * 0.429043 * y * z;
	result += c6 * ( 0.743125 * z * z - 0.247708 );
	result += c7 * 2.0 * 0.429043 * x * z;
	result += c8 * 0.429043 * ( x * x - y * y );
	return max( result, vec3( 0.0 ) );
}
#endif`,GY=`#if defined( USE_LOGARITHMIC_DEPTH_BUFFER )
	gl_FragDepth = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;
#endif`,WY=`#if defined( USE_LOGARITHMIC_DEPTH_BUFFER )
	uniform float logDepthBufFC;
	varying float vFragDepth;
	varying float vIsPerspective;
#endif`,jY=`#ifdef USE_LOGARITHMIC_DEPTH_BUFFER
	varying float vFragDepth;
	varying float vIsPerspective;
#endif`,QY=`#ifdef USE_LOGARITHMIC_DEPTH_BUFFER
	vFragDepth = 1.0 + gl_Position.w;
	vIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) );
#endif`,XY=`#ifdef USE_MAP
	vec4 sampledDiffuseColor = texture2D( map, vMapUv );
	#ifdef DECODE_VIDEO_TEXTURE
		sampledDiffuseColor = sRGBTransferEOTF( sampledDiffuseColor );
	#endif
	diffuseColor *= sampledDiffuseColor;
#endif`,YY=`#ifdef USE_MAP
	uniform sampler2D map;
#endif`,KY=`#if defined( USE_MAP ) || defined( USE_ALPHAMAP )
	#if defined( USE_POINTS_UV )
		vec2 uv = vUv;
	#else
		vec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy;
	#endif
#endif
#ifdef USE_MAP
	diffuseColor *= texture2D( map, uv );
#endif
#ifdef USE_ALPHAMAP
	diffuseColor.a *= texture2D( alphaMap, uv ).g;
#endif`,ZY=`#if defined( USE_POINTS_UV )
	varying vec2 vUv;
#else
	#if defined( USE_MAP ) || defined( USE_ALPHAMAP )
		uniform mat3 uvTransform;
	#endif
#endif
#ifdef USE_MAP
	uniform sampler2D map;
#endif
#ifdef USE_ALPHAMAP
	uniform sampler2D alphaMap;
#endif`,$Y=`float metalnessFactor = metalness;
#ifdef USE_METALNESSMAP
	vec4 texelMetalness = texture2D( metalnessMap, vMetalnessMapUv );
	metalnessFactor *= texelMetalness.b;
#endif`,JY=`#ifdef USE_METALNESSMAP
	uniform sampler2D metalnessMap;
#endif`,eK=`#ifdef USE_INSTANCING_MORPH
	float morphTargetInfluences[ MORPHTARGETS_COUNT ];
	float morphTargetBaseInfluence = texelFetch( morphTexture, ivec2( 0, gl_InstanceID ), 0 ).r;
	for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {
		morphTargetInfluences[i] =  texelFetch( morphTexture, ivec2( i + 1, gl_InstanceID ), 0 ).r;
	}
#endif`,tK=`#if defined( USE_MORPHCOLORS )
	vColor *= morphTargetBaseInfluence;
	for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {
		#if defined( USE_COLOR_ALPHA )
			if ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ) * morphTargetInfluences[ i ];
		#elif defined( USE_COLOR )
			if ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ).rgb * morphTargetInfluences[ i ];
		#endif
	}
#endif`,nK=`#ifdef USE_MORPHNORMALS
	objectNormal *= morphTargetBaseInfluence;
	for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {
		if ( morphTargetInfluences[ i ] != 0.0 ) objectNormal += getMorph( gl_VertexID, i, 1 ).xyz * morphTargetInfluences[ i ];
	}
#endif`,iK=`#ifdef USE_MORPHTARGETS
	#ifndef USE_INSTANCING_MORPH
		uniform float morphTargetBaseInfluence;
		uniform float morphTargetInfluences[ MORPHTARGETS_COUNT ];
	#endif
	uniform sampler2DArray morphTargetsTexture;
	uniform ivec2 morphTargetsTextureSize;
	vec4 getMorph( const in int vertexIndex, const in int morphTargetIndex, const in int offset ) {
		int texelIndex = vertexIndex * MORPHTARGETS_TEXTURE_STRIDE + offset;
		int y = texelIndex / morphTargetsTextureSize.x;
		int x = texelIndex - y * morphTargetsTextureSize.x;
		ivec3 morphUV = ivec3( x, y, morphTargetIndex );
		return texelFetch( morphTargetsTexture, morphUV, 0 );
	}
#endif`,rK=`#ifdef USE_MORPHTARGETS
	transformed *= morphTargetBaseInfluence;
	for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {
		if ( morphTargetInfluences[ i ] != 0.0 ) transformed += getMorph( gl_VertexID, i, 0 ).xyz * morphTargetInfluences[ i ];
	}
#endif`,aK=`float faceDirection = gl_FrontFacing ? 1.0 : - 1.0;
#ifdef FLAT_SHADED
	vec3 fdx = dFdx( vViewPosition );
	vec3 fdy = dFdy( vViewPosition );
	vec3 normal = normalize( cross( fdx, fdy ) );
#else
	vec3 normal = normalize( vNormal );
	#ifdef DOUBLE_SIDED
		normal *= faceDirection;
	#endif
#endif
#if defined( USE_NORMALMAP_TANGENTSPACE ) || defined( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY )
	#ifdef USE_TANGENT
		mat3 tbn = mat3( normalize( vTangent ), normalize( vBitangent ), normal );
	#else
		mat3 tbn = getTangentFrame( - vViewPosition, normal,
		#if defined( USE_NORMALMAP )
			vNormalMapUv
		#elif defined( USE_CLEARCOAT_NORMALMAP )
			vClearcoatNormalMapUv
		#else
			vUv
		#endif
		);
	#endif
	#ifdef DOUBLE_SIDED
		tbn[0] *= faceDirection;
		tbn[1] *= faceDirection;
	#endif
#endif
#ifdef USE_CLEARCOAT_NORMALMAP
	#ifdef USE_TANGENT
		mat3 tbn2 = mat3( normalize( vTangent ), normalize( vBitangent ), normal );
	#else
		mat3 tbn2 = getTangentFrame( - vViewPosition, normal, vClearcoatNormalMapUv );
	#endif
	#ifdef DOUBLE_SIDED
		tbn2[0] *= faceDirection;
		tbn2[1] *= faceDirection;
	#endif
#endif
vec3 nonPerturbedNormal = normal;`,sK=`#ifdef USE_NORMALMAP_OBJECTSPACE
	normal = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;
	#ifdef FLIP_SIDED
		normal = - normal;
	#endif
	#ifdef DOUBLE_SIDED
		normal = normal * faceDirection;
	#endif
	normal = normalize( normalMatrix * normal );
#elif defined( USE_NORMALMAP_TANGENTSPACE )
	vec3 mapN = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;
	#if defined( USE_PACKED_NORMALMAP )
		mapN = vec3( mapN.xy, sqrt( saturate( 1.0 - dot( mapN.xy, mapN.xy ) ) ) );
	#endif
	mapN.xy *= normalScale;
	normal = normalize( tbn * mapN );
#elif defined( USE_BUMPMAP )
	normal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection );
#endif`,oK=`#ifndef FLAT_SHADED
	varying vec3 vNormal;
	#ifdef USE_TANGENT
		varying vec3 vTangent;
		varying vec3 vBitangent;
	#endif
#endif`,lK=`#ifndef FLAT_SHADED
	varying vec3 vNormal;
	#ifdef USE_TANGENT
		varying vec3 vTangent;
		varying vec3 vBitangent;
	#endif
#endif`,uK=`#ifndef FLAT_SHADED
	vNormal = normalize( transformedNormal );
	#ifdef USE_TANGENT
		vTangent = normalize( transformedTangent );
		vBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );
		#ifdef FLIP_SIDED
			vBitangent = - vBitangent;
		#endif
	#endif
#endif`,cK=`#ifdef USE_NORMALMAP
	uniform sampler2D normalMap;
	uniform vec2 normalScale;
#endif
#ifdef USE_NORMALMAP_OBJECTSPACE
	uniform mat3 normalMatrix;
#endif
#if ! defined ( USE_TANGENT ) && ( defined ( USE_NORMALMAP_TANGENTSPACE ) || defined ( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY ) )
	mat3 getTangentFrame( vec3 eye_pos, vec3 surf_norm, vec2 uv ) {
		vec3 q0 = dFdx( eye_pos.xyz );
		vec3 q1 = dFdy( eye_pos.xyz );
		vec2 st0 = dFdx( uv.st );
		vec2 st1 = dFdy( uv.st );
		vec3 N = surf_norm;
		vec3 q1perp = cross( q1, N );
		vec3 q0perp = cross( N, q0 );
		vec3 T = q1perp * st0.x + q0perp * st1.x;
		vec3 B = q1perp * st0.y + q0perp * st1.y;
		float det = max( dot( T, T ), dot( B, B ) );
		float scale = ( det == 0.0 ) ? 0.0 : inversesqrt( det );
		return mat3( T * scale, B * scale, N );
	}
#endif`,fK=`#ifdef USE_CLEARCOAT
	vec3 clearcoatNormal = nonPerturbedNormal;
#endif`,dK=`#ifdef USE_CLEARCOAT_NORMALMAP
	vec3 clearcoatMapN = texture2D( clearcoatNormalMap, vClearcoatNormalMapUv ).xyz * 2.0 - 1.0;
	clearcoatMapN.xy *= clearcoatNormalScale;
	clearcoatNormal = normalize( tbn2 * clearcoatMapN );
#endif`,hK=`#ifdef USE_CLEARCOATMAP
	uniform sampler2D clearcoatMap;
#endif
#ifdef USE_CLEARCOAT_NORMALMAP
	uniform sampler2D clearcoatNormalMap;
	uniform vec2 clearcoatNormalScale;
#endif
#ifdef USE_CLEARCOAT_ROUGHNESSMAP
	uniform sampler2D clearcoatRoughnessMap;
#endif`,pK=`#ifdef USE_IRIDESCENCEMAP
	uniform sampler2D iridescenceMap;
#endif
#ifdef USE_IRIDESCENCE_THICKNESSMAP
	uniform sampler2D iridescenceThicknessMap;
#endif`,mK=`#ifdef OPAQUE
diffuseColor.a = 1.0;
#endif
#ifdef USE_TRANSMISSION
diffuseColor.a *= material.transmissionAlpha;
#endif
gl_FragColor = vec4( outgoingLight, diffuseColor.a );`,_K=`vec3 packNormalToRGB( const in vec3 normal ) {
	return normalize( normal ) * 0.5 + 0.5;
}
vec3 unpackRGBToNormal( const in vec3 rgb ) {
	return 2.0 * rgb.xyz - 1.0;
}
const float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.;const float ShiftRight8 = 1. / 256.;
const float Inv255 = 1. / 255.;
const vec4 PackFactors = vec4( 1.0, 256.0, 256.0 * 256.0, 256.0 * 256.0 * 256.0 );
const vec2 UnpackFactors2 = vec2( UnpackDownscale, 1.0 / PackFactors.g );
const vec3 UnpackFactors3 = vec3( UnpackDownscale / PackFactors.rg, 1.0 / PackFactors.b );
const vec4 UnpackFactors4 = vec4( UnpackDownscale / PackFactors.rgb, 1.0 / PackFactors.a );
vec4 packDepthToRGBA( const in float v ) {
	if( v <= 0.0 )
		return vec4( 0., 0., 0., 0. );
	if( v >= 1.0 )
		return vec4( 1., 1., 1., 1. );
	float vuf;
	float af = modf( v * PackFactors.a, vuf );
	float bf = modf( vuf * ShiftRight8, vuf );
	float gf = modf( vuf * ShiftRight8, vuf );
	return vec4( vuf * Inv255, gf * PackUpscale, bf * PackUpscale, af );
}
vec3 packDepthToRGB( const in float v ) {
	if( v <= 0.0 )
		return vec3( 0., 0., 0. );
	if( v >= 1.0 )
		return vec3( 1., 1., 1. );
	float vuf;
	float bf = modf( v * PackFactors.b, vuf );
	float gf = modf( vuf * ShiftRight8, vuf );
	return vec3( vuf * Inv255, gf * PackUpscale, bf );
}
vec2 packDepthToRG( const in float v ) {
	if( v <= 0.0 )
		return vec2( 0., 0. );
	if( v >= 1.0 )
		return vec2( 1., 1. );
	float vuf;
	float gf = modf( v * 256., vuf );
	return vec2( vuf * Inv255, gf );
}
float unpackRGBAToDepth( const in vec4 v ) {
	return dot( v, UnpackFactors4 );
}
float unpackRGBToDepth( const in vec3 v ) {
	return dot( v, UnpackFactors3 );
}
float unpackRGToDepth( const in vec2 v ) {
	return v.r * UnpackFactors2.r + v.g * UnpackFactors2.g;
}
vec4 pack2HalfToRGBA( const in vec2 v ) {
	vec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ) );
	return vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w );
}
vec2 unpackRGBATo2Half( const in vec4 v ) {
	return vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) );
}
float viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) {
	return ( viewZ + near ) / ( near - far );
}
float orthographicDepthToViewZ( const in float depth, const in float near, const in float far ) {
	#ifdef USE_REVERSED_DEPTH_BUFFER
	
		return depth * ( far - near ) - far;
	#else
		return depth * ( near - far ) - near;
	#endif
}
float viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) {
	return ( ( near + viewZ ) * far ) / ( ( far - near ) * viewZ );
}
float perspectiveDepthToViewZ( const in float depth, const in float near, const in float far ) {
	
	#ifdef USE_REVERSED_DEPTH_BUFFER
		return ( near * far ) / ( ( near - far ) * depth - near );
	#else
		return ( near * far ) / ( ( far - near ) * depth - far );
	#endif
}`,gK=`#ifdef PREMULTIPLIED_ALPHA
	gl_FragColor.rgb *= gl_FragColor.a;
#endif`,vK=`vec4 mvPosition = vec4( transformed, 1.0 );
#ifdef USE_BATCHING
	mvPosition = batchingMatrix * mvPosition;
#endif
#ifdef USE_INSTANCING
	mvPosition = instanceMatrix * mvPosition;
#endif
mvPosition = modelViewMatrix * mvPosition;
gl_Position = projectionMatrix * mvPosition;`,yK=`#ifdef DITHERING
	gl_FragColor.rgb = dithering( gl_FragColor.rgb );
#endif`,bK=`#ifdef DITHERING
	vec3 dithering( vec3 color ) {
		float grid_position = rand( gl_FragCoord.xy );
		vec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 );
		dither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position );
		return color + dither_shift_RGB;
	}
#endif`,SK=`float roughnessFactor = roughness;
#ifdef USE_ROUGHNESSMAP
	vec4 texelRoughness = texture2D( roughnessMap, vRoughnessMapUv );
	roughnessFactor *= texelRoughness.g;
#endif`,EK=`#ifdef USE_ROUGHNESSMAP
	uniform sampler2D roughnessMap;
#endif`,wK=`#if NUM_SPOT_LIGHT_COORDS > 0
	varying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];
#endif
#if NUM_SPOT_LIGHT_MAPS > 0
	uniform sampler2D spotLightMap[ NUM_SPOT_LIGHT_MAPS ];
#endif
#ifdef USE_SHADOWMAP
	#if NUM_SUN_LIGHT_SHADOWS > 0
		#define SUN_LIGHT_CASCADES 2
		#if defined( SHADOWMAP_TYPE_PCF )
			uniform sampler2DShadow sunShadowMap[ NUM_SUN_LIGHT_SHADOWS ];
		#else
			uniform sampler2D sunShadowMap[ NUM_SUN_LIGHT_SHADOWS ];
		#endif
		uniform mat4 sunShadowMatrix[ NUM_SUN_LIGHT_SHADOWS * SUN_LIGHT_CASCADES ];
		uniform vec4 sunShadowCascade[ NUM_SUN_LIGHT_SHADOWS * SUN_LIGHT_CASCADES ];
		varying vec4 vSunShadowWorldPosition;
		varying vec3 vSunShadowWorldNormal;
		struct SunLightShadow {
			float shadowIntensity;
			float shadowBias;
			float shadowNormalBias;
			float shadowRadius;
			vec2 shadowMapSize;
		};
		uniform SunLightShadow sunLightShadows[ NUM_SUN_LIGHT_SHADOWS ];
	#endif
	#if NUM_DIR_LIGHT_SHADOWS > 0
		#if defined( SHADOWMAP_TYPE_PCF )
			uniform sampler2DShadow directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ];
		#else
			uniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ];
		#endif
		varying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];
		struct DirectionalLightShadow {
			float shadowIntensity;
			float shadowBias;
			float shadowNormalBias;
			float shadowRadius;
			vec2 shadowMapSize;
		};
		uniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];
	#endif
	#if NUM_SPOT_LIGHT_SHADOWS > 0
		#if defined( SHADOWMAP_TYPE_PCF )
			uniform sampler2DShadow spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ];
		#else
			uniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ];
		#endif
		struct SpotLightShadow {
			float shadowIntensity;
			float shadowBias;
			float shadowNormalBias;
			float shadowRadius;
			vec2 shadowMapSize;
		};
		uniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];
	#endif
	#if NUM_POINT_LIGHT_SHADOWS > 0
		#if defined( SHADOWMAP_TYPE_PCF )
			uniform samplerCubeShadow pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ];
		#elif defined( SHADOWMAP_TYPE_BASIC )
			uniform samplerCube pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ];
		#endif
		varying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];
		struct PointLightShadow {
			float shadowIntensity;
			float shadowBias;
			float shadowNormalBias;
			float shadowRadius;
			vec2 shadowMapSize;
			float shadowCameraNear;
			float shadowCameraFar;
		};
		uniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];
	#endif
	#if defined( SHADOWMAP_TYPE_PCF )
		float interleavedGradientNoise( vec2 position ) {
			return fract( 52.9829189 * fract( dot( position, vec2( 0.06711056, 0.00583715 ) ) ) );
		}
		vec2 vogelDiskSample( int sampleIndex, int samplesCount, float phi ) {
			const float goldenAngle = 2.399963229728653;
			float r = sqrt( ( float( sampleIndex ) + 0.5 ) / float( samplesCount ) );
			float theta = float( sampleIndex ) * goldenAngle + phi;
			return vec2( cos( theta ), sin( theta ) ) * r;
		}
	#endif
	#if defined( SHADOWMAP_TYPE_PCF )
		float getShadow( sampler2DShadow shadowMap, vec2 shadowMapSize, float shadowIntensity, float shadowBias, float shadowRadius, vec4 shadowCoord ) {
			float shadow = 1.0;
			shadowCoord.xyz /= shadowCoord.w;
			shadowCoord.z += shadowBias;
			bool inFrustum = shadowCoord.x >= 0.0 && shadowCoord.x <= 1.0 && shadowCoord.y >= 0.0 && shadowCoord.y <= 1.0;
			bool frustumTest = inFrustum && shadowCoord.z <= 1.0;
			if ( frustumTest ) {
				vec2 texelSize = vec2( 1.0 ) / shadowMapSize;
				float radius = shadowRadius * texelSize.x;
				float phi = interleavedGradientNoise( gl_FragCoord.xy ) * PI2;
				shadow = (
					texture( shadowMap, vec3( shadowCoord.xy + vogelDiskSample( 0, 5, phi ) * radius, shadowCoord.z ) ) +
					texture( shadowMap, vec3( shadowCoord.xy + vogelDiskSample( 1, 5, phi ) * radius, shadowCoord.z ) ) +
					texture( shadowMap, vec3( shadowCoord.xy + vogelDiskSample( 2, 5, phi ) * radius, shadowCoord.z ) ) +
					texture( shadowMap, vec3( shadowCoord.xy + vogelDiskSample( 3, 5, phi ) * radius, shadowCoord.z ) ) +
					texture( shadowMap, vec3( shadowCoord.xy + vogelDiskSample( 4, 5, phi ) * radius, shadowCoord.z ) )
				) * 0.2;
			}
			return mix( 1.0, shadow, shadowIntensity );
		}
	#elif defined( SHADOWMAP_TYPE_VSM )
		float getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowIntensity, float shadowBias, float shadowRadius, vec4 shadowCoord ) {
			float shadow = 1.0;
			shadowCoord.xyz /= shadowCoord.w;
			#ifdef USE_REVERSED_DEPTH_BUFFER
				shadowCoord.z -= shadowBias;
			#else
				shadowCoord.z += shadowBias;
			#endif
			bool inFrustum = shadowCoord.x >= 0.0 && shadowCoord.x <= 1.0 && shadowCoord.y >= 0.0 && shadowCoord.y <= 1.0;
			bool frustumTest = inFrustum && shadowCoord.z <= 1.0;
			if ( frustumTest ) {
				vec2 distribution = texture2D( shadowMap, shadowCoord.xy ).rg;
				float mean = distribution.x;
				float variance = distribution.y * distribution.y;
				#ifdef USE_REVERSED_DEPTH_BUFFER
					float hard_shadow = step( mean, shadowCoord.z );
				#else
					float hard_shadow = step( shadowCoord.z, mean );
				#endif
				
				if ( hard_shadow == 1.0 ) {
					shadow = 1.0;
				} else {
					variance = max( variance, 0.0000001 );
					float d = shadowCoord.z - mean;
					float p_max = variance / ( variance + d * d );
					p_max = clamp( ( p_max - 0.3 ) / 0.65, 0.0, 1.0 );
					shadow = max( hard_shadow, p_max );
				}
			}
			return mix( 1.0, shadow, shadowIntensity );
		}
	#else
		float getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowIntensity, float shadowBias, float shadowRadius, vec4 shadowCoord ) {
			float shadow = 1.0;
			shadowCoord.xyz /= shadowCoord.w;
			#ifdef USE_REVERSED_DEPTH_BUFFER
				shadowCoord.z -= shadowBias;
			#else
				shadowCoord.z += shadowBias;
			#endif
			bool inFrustum = shadowCoord.x >= 0.0 && shadowCoord.x <= 1.0 && shadowCoord.y >= 0.0 && shadowCoord.y <= 1.0;
			bool frustumTest = inFrustum && shadowCoord.z <= 1.0;
			if ( frustumTest ) {
				float depth = texture2D( shadowMap, shadowCoord.xy ).r;
				#ifdef USE_REVERSED_DEPTH_BUFFER
					shadow = step( depth, shadowCoord.z );
				#else
					shadow = step( shadowCoord.z, depth );
				#endif
			}
			return mix( 1.0, shadow, shadowIntensity );
		}
	#endif
	#if NUM_SUN_LIGHT_SHADOWS > 0
		float getSunShadow(
			#if defined( SHADOWMAP_TYPE_PCF )
				sampler2DShadow shadowMap,
			#else
				sampler2D shadowMap,
			#endif
			SunLightShadow sunLightShadow,
			int shadowIndex
		) {
			vec4 shadowWorldPosition = vec4( vSunShadowWorldPosition.xyz + vSunShadowWorldNormal * sunLightShadow.shadowNormalBias, 1.0 );
			float viewDepth = vSunShadowWorldPosition.w;
			int cascadeOffset = shadowIndex * SUN_LIGHT_CASCADES;
			float shadow = 1.0;
			for ( int i = SUN_LIGHT_CASCADES - 1; i >= 0; i -- ) {
				vec4 cascade = sunShadowCascade[ cascadeOffset + i ];
				if ( viewDepth >= cascade.x && viewDepth < cascade.y ) {
					float cascadeShadow = getShadow(
						shadowMap,
						sunLightShadow.shadowMapSize,
						sunLightShadow.shadowIntensity,
						sunLightShadow.shadowBias,
						sunLightShadow.shadowRadius,
						sunShadowMatrix[ cascadeOffset + i ] * shadowWorldPosition
					);
					shadow = mix( cascadeShadow, shadow, smoothstep( cascade.z, cascade.y, viewDepth ) );
				}
			}
			return shadow;
		}
	#endif
	#if NUM_POINT_LIGHT_SHADOWS > 0
	#if defined( SHADOWMAP_TYPE_PCF )
	float getPointShadow( samplerCubeShadow shadowMap, vec2 shadowMapSize, float shadowIntensity, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) {
		float shadow = 1.0;
		vec3 lightToPosition = shadowCoord.xyz;
		vec3 bd3D = normalize( lightToPosition );
		vec3 absVec = abs( lightToPosition );
		float viewSpaceZ = max( max( absVec.x, absVec.y ), absVec.z );
		if ( viewSpaceZ - shadowCameraFar <= 0.0 && viewSpaceZ - shadowCameraNear >= 0.0 ) {
			#ifdef USE_REVERSED_DEPTH_BUFFER
				float dp = ( shadowCameraNear * ( shadowCameraFar - viewSpaceZ ) ) / ( viewSpaceZ * ( shadowCameraFar - shadowCameraNear ) );
				dp -= shadowBias;
			#else
				float dp = ( shadowCameraFar * ( viewSpaceZ - shadowCameraNear ) ) / ( viewSpaceZ * ( shadowCameraFar - shadowCameraNear ) );
				dp += shadowBias;
			#endif
			float texelSize = shadowRadius / shadowMapSize.x;
			vec3 absDir = abs( bd3D );
			vec3 tangent = absDir.x > absDir.z ? vec3( 0.0, 1.0, 0.0 ) : vec3( 1.0, 0.0, 0.0 );
			tangent = normalize( cross( bd3D, tangent ) );
			vec3 bitangent = cross( bd3D, tangent );
			float phi = interleavedGradientNoise( gl_FragCoord.xy ) * PI2;
			vec2 sample0 = vogelDiskSample( 0, 5, phi );
			vec2 sample1 = vogelDiskSample( 1, 5, phi );
			vec2 sample2 = vogelDiskSample( 2, 5, phi );
			vec2 sample3 = vogelDiskSample( 3, 5, phi );
			vec2 sample4 = vogelDiskSample( 4, 5, phi );
			shadow = (
				texture( shadowMap, vec4( bd3D + ( tangent * sample0.x + bitangent * sample0.y ) * texelSize, dp ) ) +
				texture( shadowMap, vec4( bd3D + ( tangent * sample1.x + bitangent * sample1.y ) * texelSize, dp ) ) +
				texture( shadowMap, vec4( bd3D + ( tangent * sample2.x + bitangent * sample2.y ) * texelSize, dp ) ) +
				texture( shadowMap, vec4( bd3D + ( tangent * sample3.x + bitangent * sample3.y ) * texelSize, dp ) ) +
				texture( shadowMap, vec4( bd3D + ( tangent * sample4.x + bitangent * sample4.y ) * texelSize, dp ) )
			) * 0.2;
		}
		return mix( 1.0, shadow, shadowIntensity );
	}
	#elif defined( SHADOWMAP_TYPE_BASIC )
	float getPointShadow( samplerCube shadowMap, vec2 shadowMapSize, float shadowIntensity, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) {
		float shadow = 1.0;
		vec3 lightToPosition = shadowCoord.xyz;
		vec3 absVec = abs( lightToPosition );
		float viewSpaceZ = max( max( absVec.x, absVec.y ), absVec.z );
		if ( viewSpaceZ - shadowCameraFar <= 0.0 && viewSpaceZ - shadowCameraNear >= 0.0 ) {
			float dp = ( shadowCameraFar * ( viewSpaceZ - shadowCameraNear ) ) / ( viewSpaceZ * ( shadowCameraFar - shadowCameraNear ) );
			dp += shadowBias;
			vec3 bd3D = normalize( lightToPosition );
			float depth = textureCube( shadowMap, bd3D ).r;
			#ifdef USE_REVERSED_DEPTH_BUFFER
				depth = 1.0 - depth;
			#endif
			shadow = step( dp, depth );
		}
		return mix( 1.0, shadow, shadowIntensity );
	}
	#endif
	#endif
#endif`,xK=`#if NUM_SPOT_LIGHT_COORDS > 0
	uniform mat4 spotLightMatrix[ NUM_SPOT_LIGHT_COORDS ];
	varying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];
#endif
#ifdef USE_SHADOWMAP
	#if NUM_SUN_LIGHT_SHADOWS > 0
		varying vec4 vSunShadowWorldPosition;
		varying vec3 vSunShadowWorldNormal;
	#endif
	#if NUM_DIR_LIGHT_SHADOWS > 0
		uniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ];
		varying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];
		struct DirectionalLightShadow {
			float shadowIntensity;
			float shadowBias;
			float shadowNormalBias;
			float shadowRadius;
			vec2 shadowMapSize;
		};
		uniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];
	#endif
	#if NUM_SPOT_LIGHT_SHADOWS > 0
		struct SpotLightShadow {
			float shadowIntensity;
			float shadowBias;
			float shadowNormalBias;
			float shadowRadius;
			vec2 shadowMapSize;
		};
		uniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];
	#endif
	#if NUM_POINT_LIGHT_SHADOWS > 0
		uniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ];
		varying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];
		struct PointLightShadow {
			float shadowIntensity;
			float shadowBias;
			float shadowNormalBias;
			float shadowRadius;
			vec2 shadowMapSize;
			float shadowCameraNear;
			float shadowCameraFar;
		};
		uniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];
	#endif
#endif`,TK=`#if ( defined( USE_SHADOWMAP ) && ( NUM_DIR_LIGHT_SHADOWS > 0 || NUM_SUN_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0 ) ) || ( NUM_SPOT_LIGHT_COORDS > 0 )
	#ifdef HAS_NORMAL
		vec3 shadowWorldNormal = transformNormalByInverseViewMatrix( transformedNormal, viewMatrix );
	#else
		vec3 shadowWorldNormal = vec3( 0.0 );
	#endif
	vec4 shadowWorldPosition;
#endif
#if defined( USE_SHADOWMAP )
	#if NUM_SUN_LIGHT_SHADOWS > 0
		vSunShadowWorldPosition = vec4( worldPosition.xyz, - mvPosition.z );
		vSunShadowWorldNormal = shadowWorldNormal;
	#endif
	#if NUM_DIR_LIGHT_SHADOWS > 0
		#pragma unroll_loop_start
		for ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {
			shadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 );
			vDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition;
		}
		#pragma unroll_loop_end
	#endif
	#if NUM_POINT_LIGHT_SHADOWS > 0
		#pragma unroll_loop_start
		for ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {
			shadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 );
			vPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition;
		}
		#pragma unroll_loop_end
	#endif
#endif
#if NUM_SPOT_LIGHT_COORDS > 0
	#pragma unroll_loop_start
	for ( int i = 0; i < NUM_SPOT_LIGHT_COORDS; i ++ ) {
		shadowWorldPosition = worldPosition;
		#if ( defined( USE_SHADOWMAP ) && UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )
			shadowWorldPosition.xyz += shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias;
		#endif
		vSpotLightCoord[ i ] = spotLightMatrix[ i ] * shadowWorldPosition;
	}
	#pragma unroll_loop_end
#endif`,MK=`float getShadowMask() {
	float shadow = 1.0;
	#ifdef USE_SHADOWMAP
	#if NUM_SUN_LIGHT_SHADOWS > 0
	SunLightShadow sunLight;
	#pragma unroll_loop_start
	for ( int i = 0; i < NUM_SUN_LIGHT_SHADOWS; i ++ ) {
		sunLight = sunLightShadows[ i ];
		shadow *= receiveShadow ? getSunShadow( sunShadowMap[ i ], sunLight, UNROLLED_LOOP_INDEX ) : 1.0;
	}
	#pragma unroll_loop_end
	#endif
	#if NUM_DIR_LIGHT_SHADOWS > 0
	DirectionalLightShadow directionalLight;
	#pragma unroll_loop_start
	for ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {
		directionalLight = directionalLightShadows[ i ];
		shadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowIntensity, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;
	}
	#pragma unroll_loop_end
	#endif
	#if NUM_SPOT_LIGHT_SHADOWS > 0
	SpotLightShadow spotLight;
	#pragma unroll_loop_start
	for ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {
		spotLight = spotLightShadows[ i ];
		shadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowIntensity, spotLight.shadowBias, spotLight.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;
	}
	#pragma unroll_loop_end
	#endif
	#if NUM_POINT_LIGHT_SHADOWS > 0 && ( defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_BASIC ) )
	PointLightShadow pointLight;
	#pragma unroll_loop_start
	for ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {
		pointLight = pointLightShadows[ i ];
		shadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowIntensity, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;
	}
	#pragma unroll_loop_end
	#endif
	#endif
	return shadow;
}`,AK=`#ifdef USE_SKINNING
	mat4 boneMatX = getBoneMatrix( skinIndex.x );
	mat4 boneMatY = getBoneMatrix( skinIndex.y );
	mat4 boneMatZ = getBoneMatrix( skinIndex.z );
	mat4 boneMatW = getBoneMatrix( skinIndex.w );
#endif`,CK=`#ifdef USE_SKINNING
	uniform mat4 bindMatrix;
	uniform mat4 bindMatrixInverse;
	uniform highp sampler2D boneTexture;
	mat4 getBoneMatrix( const in float i ) {
		int size = textureSize( boneTexture, 0 ).x;
		int j = int( i ) * 4;
		int x = j % size;
		int y = j / size;
		vec4 v1 = texelFetch( boneTexture, ivec2( x, y ), 0 );
		vec4 v2 = texelFetch( boneTexture, ivec2( x + 1, y ), 0 );
		vec4 v3 = texelFetch( boneTexture, ivec2( x + 2, y ), 0 );
		vec4 v4 = texelFetch( boneTexture, ivec2( x + 3, y ), 0 );
		return mat4( v1, v2, v3, v4 );
	}
#endif`,RK=`#ifdef USE_SKINNING
	vec4 skinVertex = bindMatrix * vec4( transformed, 1.0 );
	vec4 skinned = vec4( 0.0 );
	skinned += boneMatX * skinVertex * skinWeight.x;
	skinned += boneMatY * skinVertex * skinWeight.y;
	skinned += boneMatZ * skinVertex * skinWeight.z;
	skinned += boneMatW * skinVertex * skinWeight.w;
	transformed = ( bindMatrixInverse * skinned ).xyz;
#endif`,IK=`#ifdef USE_SKINNING
	mat4 skinMatrix = mat4( 0.0 );
	skinMatrix += skinWeight.x * boneMatX;
	skinMatrix += skinWeight.y * boneMatY;
	skinMatrix += skinWeight.z * boneMatZ;
	skinMatrix += skinWeight.w * boneMatW;
	skinMatrix = bindMatrixInverse * skinMatrix * bindMatrix;
	objectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz;
	#ifdef USE_TANGENT
		objectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz;
	#endif
#endif`,LK=`float specularStrength;
#ifdef USE_SPECULARMAP
	vec4 texelSpecular = texture2D( specularMap, vSpecularMapUv );
	specularStrength = texelSpecular.r;
#else
	specularStrength = 1.0;
#endif`,NK=`#ifdef USE_SPECULARMAP
	uniform sampler2D specularMap;
#endif`,kK=`#if defined( TONE_MAPPING )
	gl_FragColor.rgb = toneMapping( gl_FragColor.rgb );
#endif`,OK=`#ifndef saturate
#define saturate( a ) clamp( a, 0.0, 1.0 )
#endif
uniform float toneMappingExposure;
vec3 LinearToneMapping( vec3 color ) {
	return saturate( toneMappingExposure * color );
}
vec3 ReinhardToneMapping( vec3 color ) {
	color *= toneMappingExposure;
	return saturate( color / ( vec3( 1.0 ) + color ) );
}
vec3 CineonToneMapping( vec3 color ) {
	color *= toneMappingExposure;
	color = max( vec3( 0.0 ), color - 0.004 );
	return pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) );
}
vec3 RRTAndODTFit( vec3 v ) {
	vec3 a = v * ( v + 0.0245786 ) - 0.000090537;
	vec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081;
	return a / b;
}
vec3 ACESFilmicToneMapping( vec3 color ) {
	const mat3 ACESInputMat = mat3(
		vec3( 0.59719, 0.07600, 0.02840 ),		vec3( 0.35458, 0.90834, 0.13383 ),
		vec3( 0.04823, 0.01566, 0.83777 )
	);
	const mat3 ACESOutputMat = mat3(
		vec3(  1.60475, -0.10208, -0.00327 ),		vec3( -0.53108,  1.10813, -0.07276 ),
		vec3( -0.07367, -0.00605,  1.07602 )
	);
	color *= toneMappingExposure / 0.6;
	color = ACESInputMat * color;
	color = RRTAndODTFit( color );
	color = ACESOutputMat * color;
	return saturate( color );
}
const mat3 LINEAR_REC2020_TO_LINEAR_SRGB = mat3(
	vec3( 1.6605, - 0.1246, - 0.0182 ),
	vec3( - 0.5876, 1.1329, - 0.1006 ),
	vec3( - 0.0728, - 0.0083, 1.1187 )
);
const mat3 LINEAR_SRGB_TO_LINEAR_REC2020 = mat3(
	vec3( 0.6274, 0.0691, 0.0164 ),
	vec3( 0.3293, 0.9195, 0.0880 ),
	vec3( 0.0433, 0.0113, 0.8956 )
);
vec3 agxDefaultContrastApprox( vec3 x ) {
	vec3 x2 = x * x;
	vec3 x4 = x2 * x2;
	return + 15.5 * x4 * x2
		- 40.14 * x4 * x
		+ 31.96 * x4
		- 6.868 * x2 * x
		+ 0.4298 * x2
		+ 0.1191 * x
		- 0.00232;
}
vec3 AgXToneMapping( vec3 color ) {
	const mat3 AgXInsetMatrix = mat3(
		vec3( 0.856627153315983, 0.137318972929847, 0.11189821299995 ),
		vec3( 0.0951212405381588, 0.761241990602591, 0.0767994186031903 ),
		vec3( 0.0482516061458583, 0.101439036467562, 0.811302368396859 )
	);
	const mat3 AgXOutsetMatrix = mat3(
		vec3( 1.1271005818144368, - 0.1413297634984383, - 0.14132976349843826 ),
		vec3( - 0.11060664309660323, 1.157823702216272, - 0.11060664309660294 ),
		vec3( - 0.016493938717834573, - 0.016493938717834257, 1.2519364065950405 )
	);
	const float AgxMinEv = - 12.47393;	const float AgxMaxEv = 4.026069;
	color *= toneMappingExposure;
	color = LINEAR_SRGB_TO_LINEAR_REC2020 * color;
	color = AgXInsetMatrix * color;
	color = max( color, 1e-10 );	color = log2( color );
	color = ( color - AgxMinEv ) / ( AgxMaxEv - AgxMinEv );
	color = clamp( color, 0.0, 1.0 );
	color = agxDefaultContrastApprox( color );
	color = AgXOutsetMatrix * color;
	color = pow( max( vec3( 0.0 ), color ), vec3( 2.2 ) );
	color = LINEAR_REC2020_TO_LINEAR_SRGB * color;
	color = clamp( color, 0.0, 1.0 );
	return color;
}
vec3 NeutralToneMapping( vec3 color ) {
	const float StartCompression = 0.8 - 0.04;
	const float Desaturation = 0.15;
	color *= toneMappingExposure;
	float x = min( color.r, min( color.g, color.b ) );
	float offset = x < 0.08 ? x - 6.25 * x * x : 0.04;
	color -= offset;
	float peak = max( color.r, max( color.g, color.b ) );
	if ( peak < StartCompression ) return color;
	float d = 1. - StartCompression;
	float newPeak = 1. - d * d / ( peak + d - StartCompression );
	color *= newPeak / peak;
	float g = 1. - 1. / ( Desaturation * ( peak - newPeak ) + 1. );
	return mix( color, vec3( newPeak ), g );
}
vec3 CustomToneMapping( vec3 color ) { return color; }`,DK=`#ifdef USE_TRANSMISSION
	material.transmission = transmission;
	material.transmissionAlpha = 1.0;
	material.thickness = thickness;
	material.attenuationDistance = attenuationDistance;
	material.attenuationColor = attenuationColor;
	#ifdef USE_TRANSMISSIONMAP
		material.transmission *= texture2D( transmissionMap, vTransmissionMapUv ).r;
	#endif
	#ifdef USE_THICKNESSMAP
		material.thickness *= texture2D( thicknessMap, vThicknessMapUv ).g;
	#endif
	vec3 pos = vWorldPosition;
	vec3 v = normalize( cameraPosition - pos );
	vec3 n = transformNormalByInverseViewMatrix( normal, viewMatrix );
	vec4 transmitted = getIBLVolumeRefraction(
		n, v, material.roughness, material.diffuseContribution, material.specularColorBlended, material.specularF90,
		pos, modelMatrix, viewMatrix, projectionMatrix, material.dispersion, material.ior, material.thickness,
		material.attenuationColor, material.attenuationDistance );
	material.transmissionAlpha = mix( material.transmissionAlpha, transmitted.a, material.transmission );
	totalDiffuse = mix( totalDiffuse, transmitted.rgb, material.transmission );
#endif`,FK=`#ifdef USE_TRANSMISSION
	uniform float transmission;
	uniform float thickness;
	uniform float attenuationDistance;
	uniform vec3 attenuationColor;
	#ifdef USE_TRANSMISSIONMAP
		uniform sampler2D transmissionMap;
	#endif
	#ifdef USE_THICKNESSMAP
		uniform sampler2D thicknessMap;
	#endif
	uniform vec2 transmissionSamplerSize;
	uniform sampler2D transmissionSamplerMap;
	uniform mat4 modelMatrix;
	uniform mat4 projectionMatrix;
	varying vec3 vWorldPosition;
	float w0( float a ) {
		return ( 1.0 / 6.0 ) * ( a * ( a * ( - a + 3.0 ) - 3.0 ) + 1.0 );
	}
	float w1( float a ) {
		return ( 1.0 / 6.0 ) * ( a *  a * ( 3.0 * a - 6.0 ) + 4.0 );
	}
	float w2( float a ){
		return ( 1.0 / 6.0 ) * ( a * ( a * ( - 3.0 * a + 3.0 ) + 3.0 ) + 1.0 );
	}
	float w3( float a ) {
		return ( 1.0 / 6.0 ) * ( a * a * a );
	}
	float g0( float a ) {
		return w0( a ) + w1( a );
	}
	float g1( float a ) {
		return w2( a ) + w3( a );
	}
	float h0( float a ) {
		return - 1.0 + w1( a ) / ( w0( a ) + w1( a ) );
	}
	float h1( float a ) {
		return 1.0 + w3( a ) / ( w2( a ) + w3( a ) );
	}
	vec4 bicubic( sampler2D tex, vec2 uv, vec4 texelSize, float lod ) {
		uv = uv * texelSize.zw + 0.5;
		vec2 iuv = floor( uv );
		vec2 fuv = fract( uv );
		float g0x = g0( fuv.x );
		float g1x = g1( fuv.x );
		float h0x = h0( fuv.x );
		float h1x = h1( fuv.x );
		float h0y = h0( fuv.y );
		float h1y = h1( fuv.y );
		vec2 p0 = ( vec2( iuv.x + h0x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;
		vec2 p1 = ( vec2( iuv.x + h1x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;
		vec2 p2 = ( vec2( iuv.x + h0x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;
		vec2 p3 = ( vec2( iuv.x + h1x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;
		return g0( fuv.y ) * ( g0x * textureLod( tex, p0, lod ) + g1x * textureLod( tex, p1, lod ) ) +
			g1( fuv.y ) * ( g0x * textureLod( tex, p2, lod ) + g1x * textureLod( tex, p3, lod ) );
	}
	vec4 textureBicubic( sampler2D sampler, vec2 uv, float lod ) {
		vec2 fLodSize = vec2( textureSize( sampler, int( lod ) ) );
		vec2 cLodSize = vec2( textureSize( sampler, int( lod + 1.0 ) ) );
		vec2 fLodSizeInv = 1.0 / fLodSize;
		vec2 cLodSizeInv = 1.0 / cLodSize;
		vec4 fSample = bicubic( sampler, uv, vec4( fLodSizeInv, fLodSize ), floor( lod ) );
		vec4 cSample = bicubic( sampler, uv, vec4( cLodSizeInv, cLodSize ), ceil( lod ) );
		return mix( fSample, cSample, fract( lod ) );
	}
	vec3 getVolumeTransmissionRay( const in vec3 n, const in vec3 v, const in float thickness, const in float ior, const in mat4 modelMatrix ) {
		vec3 refractionVector = refract( - v, normalize( n ), 1.0 / ior );
		vec3 modelScale;
		modelScale.x = length( vec3( modelMatrix[ 0 ].xyz ) );
		modelScale.y = length( vec3( modelMatrix[ 1 ].xyz ) );
		modelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) );
		return normalize( refractionVector ) * thickness * modelScale;
	}
	float applyIorToRoughness( const in float roughness, const in float ior ) {
		return roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 );
	}
	vec4 getTransmissionSample( const in vec2 fragCoord, const in float roughness, const in float ior ) {
		float lod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior );
		return textureBicubic( transmissionSamplerMap, fragCoord.xy, lod );
	}
	vec3 volumeAttenuation( const in float transmissionDistance, const in vec3 attenuationColor, const in float attenuationDistance ) {
		if ( isinf( attenuationDistance ) ) {
			return vec3( 1.0 );
		} else {
			vec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance;
			vec3 transmittance = exp( - attenuationCoefficient * transmissionDistance );			return transmittance;
		}
	}
	vec4 getIBLVolumeRefraction( const in vec3 n, const in vec3 v, const in float roughness, const in vec3 diffuseColor,
		const in vec3 specularColor, const in float specularF90, const in vec3 position, const in mat4 modelMatrix,
		const in mat4 viewMatrix, const in mat4 projMatrix, const in float dispersion, const in float ior, const in float thickness,
		const in vec3 attenuationColor, const in float attenuationDistance ) {
		vec4 transmittedLight;
		vec3 transmittance;
		#ifdef USE_DISPERSION
			float halfSpread = ( ior - 1.0 ) * 0.025 * dispersion;
			vec3 iors = vec3( ior - halfSpread, ior, ior + halfSpread );
			for ( int i = 0; i < 3; i ++ ) {
				vec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, iors[ i ], modelMatrix );
				vec3 refractedRayExit = position + transmissionRay;
				vec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 );
				vec2 refractionCoords = ndcPos.xy / ndcPos.w;
				refractionCoords += 1.0;
				refractionCoords /= 2.0;
				vec4 transmissionSample = getTransmissionSample( refractionCoords, roughness, iors[ i ] );
				transmittedLight[ i ] = transmissionSample[ i ];
				transmittedLight.a += transmissionSample.a;
				transmittance[ i ] = diffuseColor[ i ] * volumeAttenuation( length( transmissionRay ), attenuationColor, attenuationDistance )[ i ];
			}
			transmittedLight.a /= 3.0;
		#else
			vec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix );
			vec3 refractedRayExit = position + transmissionRay;
			vec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 );
			vec2 refractionCoords = ndcPos.xy / ndcPos.w;
			refractionCoords += 1.0;
			refractionCoords /= 2.0;
			transmittedLight = getTransmissionSample( refractionCoords, roughness, ior );
			transmittance = diffuseColor * volumeAttenuation( length( transmissionRay ), attenuationColor, attenuationDistance );
		#endif
		vec3 attenuatedColor = transmittance * transmittedLight.rgb;
		vec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness );
		float transmittanceFactor = ( transmittance.r + transmittance.g + transmittance.b ) / 3.0;
		return vec4( ( 1.0 - F ) * attenuatedColor, 1.0 - ( 1.0 - transmittedLight.a ) * transmittanceFactor );
	}
#endif`,PK=`#if defined( USE_UV ) || defined( USE_ANISOTROPY )
	varying vec2 vUv;
#endif
#ifdef USE_MAP
	varying vec2 vMapUv;
#endif
#ifdef USE_ALPHAMAP
	varying vec2 vAlphaMapUv;
#endif
#ifdef USE_LIGHTMAP
	varying vec2 vLightMapUv;
#endif
#ifdef USE_AOMAP
	varying vec2 vAoMapUv;
#endif
#ifdef USE_BUMPMAP
	varying vec2 vBumpMapUv;
#endif
#ifdef USE_NORMALMAP
	varying vec2 vNormalMapUv;
#endif
#ifdef USE_EMISSIVEMAP
	varying vec2 vEmissiveMapUv;
#endif
#ifdef USE_METALNESSMAP
	varying vec2 vMetalnessMapUv;
#endif
#ifdef USE_ROUGHNESSMAP
	varying vec2 vRoughnessMapUv;
#endif
#ifdef USE_ANISOTROPYMAP
	varying vec2 vAnisotropyMapUv;
#endif
#ifdef USE_CLEARCOATMAP
	varying vec2 vClearcoatMapUv;
#endif
#ifdef USE_CLEARCOAT_NORMALMAP
	varying vec2 vClearcoatNormalMapUv;
#endif
#ifdef USE_CLEARCOAT_ROUGHNESSMAP
	varying vec2 vClearcoatRoughnessMapUv;
#endif
#ifdef USE_IRIDESCENCEMAP
	varying vec2 vIridescenceMapUv;
#endif
#ifdef USE_IRIDESCENCE_THICKNESSMAP
	varying vec2 vIridescenceThicknessMapUv;
#endif
#ifdef USE_SHEEN_COLORMAP
	varying vec2 vSheenColorMapUv;
#endif
#ifdef USE_SHEEN_ROUGHNESSMAP
	varying vec2 vSheenRoughnessMapUv;
#endif
#ifdef USE_SPECULARMAP
	varying vec2 vSpecularMapUv;
#endif
#ifdef USE_SPECULAR_COLORMAP
	varying vec2 vSpecularColorMapUv;
#endif
#ifdef USE_SPECULAR_INTENSITYMAP
	varying vec2 vSpecularIntensityMapUv;
#endif
#ifdef USE_TRANSMISSIONMAP
	uniform mat3 transmissionMapTransform;
	varying vec2 vTransmissionMapUv;
#endif
#ifdef USE_THICKNESSMAP
	uniform mat3 thicknessMapTransform;
	varying vec2 vThicknessMapUv;
#endif`,UK=`#if defined( USE_UV ) || defined( USE_ANISOTROPY )
	varying vec2 vUv;
#endif
#ifdef USE_MAP
	uniform mat3 mapTransform;
	varying vec2 vMapUv;
#endif
#ifdef USE_ALPHAMAP
	uniform mat3 alphaMapTransform;
	varying vec2 vAlphaMapUv;
#endif
#ifdef USE_LIGHTMAP
	uniform mat3 lightMapTransform;
	varying vec2 vLightMapUv;
#endif
#ifdef USE_AOMAP
	uniform mat3 aoMapTransform;
	varying vec2 vAoMapUv;
#endif
#ifdef USE_BUMPMAP
	uniform mat3 bumpMapTransform;
	varying vec2 vBumpMapUv;
#endif
#ifdef USE_NORMALMAP
	uniform mat3 normalMapTransform;
	varying vec2 vNormalMapUv;
#endif
#ifdef USE_DISPLACEMENTMAP
	uniform mat3 displacementMapTransform;
	varying vec2 vDisplacementMapUv;
#endif
#ifdef USE_EMISSIVEMAP
	uniform mat3 emissiveMapTransform;
	varying vec2 vEmissiveMapUv;
#endif
#ifdef USE_METALNESSMAP
	uniform mat3 metalnessMapTransform;
	varying vec2 vMetalnessMapUv;
#endif
#ifdef USE_ROUGHNESSMAP
	uniform mat3 roughnessMapTransform;
	varying vec2 vRoughnessMapUv;
#endif
#ifdef USE_ANISOTROPYMAP
	uniform mat3 anisotropyMapTransform;
	varying vec2 vAnisotropyMapUv;
#endif
#ifdef USE_CLEARCOATMAP
	uniform mat3 clearcoatMapTransform;
	varying vec2 vClearcoatMapUv;
#endif
#ifdef USE_CLEARCOAT_NORMALMAP
	uniform mat3 clearcoatNormalMapTransform;
	varying vec2 vClearcoatNormalMapUv;
#endif
#ifdef USE_CLEARCOAT_ROUGHNESSMAP
	uniform mat3 clearcoatRoughnessMapTransform;
	varying vec2 vClearcoatRoughnessMapUv;
#endif
#ifdef USE_SHEEN_COLORMAP
	uniform mat3 sheenColorMapTransform;
	varying vec2 vSheenColorMapUv;
#endif
#ifdef USE_SHEEN_ROUGHNESSMAP
	uniform mat3 sheenRoughnessMapTransform;
	varying vec2 vSheenRoughnessMapUv;
#endif
#ifdef USE_IRIDESCENCEMAP
	uniform mat3 iridescenceMapTransform;
	varying vec2 vIridescenceMapUv;
#endif
#ifdef USE_IRIDESCENCE_THICKNESSMAP
	uniform mat3 iridescenceThicknessMapTransform;
	varying vec2 vIridescenceThicknessMapUv;
#endif
#ifdef USE_SPECULARMAP
	uniform mat3 specularMapTransform;
	varying vec2 vSpecularMapUv;
#endif
#ifdef USE_SPECULAR_COLORMAP
	uniform mat3 specularColorMapTransform;
	varying vec2 vSpecularColorMapUv;
#endif
#ifdef USE_SPECULAR_INTENSITYMAP
	uniform mat3 specularIntensityMapTransform;
	varying vec2 vSpecularIntensityMapUv;
#endif
#ifdef USE_TRANSMISSIONMAP
	uniform mat3 transmissionMapTransform;
	varying vec2 vTransmissionMapUv;
#endif
#ifdef USE_THICKNESSMAP
	uniform mat3 thicknessMapTransform;
	varying vec2 vThicknessMapUv;
#endif`,zK=`#if defined( USE_UV ) || defined( USE_ANISOTROPY )
	vUv = vec3( uv, 1 ).xy;
#endif
#ifdef USE_MAP
	vMapUv = ( mapTransform * vec3( MAP_UV, 1 ) ).xy;
#endif
#ifdef USE_ALPHAMAP
	vAlphaMapUv = ( alphaMapTransform * vec3( ALPHAMAP_UV, 1 ) ).xy;
#endif
#ifdef USE_LIGHTMAP
	vLightMapUv = ( lightMapTransform * vec3( LIGHTMAP_UV, 1 ) ).xy;
#endif
#ifdef USE_AOMAP
	vAoMapUv = ( aoMapTransform * vec3( AOMAP_UV, 1 ) ).xy;
#endif
#ifdef USE_BUMPMAP
	vBumpMapUv = ( bumpMapTransform * vec3( BUMPMAP_UV, 1 ) ).xy;
#endif
#ifdef USE_NORMALMAP
	vNormalMapUv = ( normalMapTransform * vec3( NORMALMAP_UV, 1 ) ).xy;
#endif
#ifdef USE_DISPLACEMENTMAP
	vDisplacementMapUv = ( displacementMapTransform * vec3( DISPLACEMENTMAP_UV, 1 ) ).xy;
#endif
#ifdef USE_EMISSIVEMAP
	vEmissiveMapUv = ( emissiveMapTransform * vec3( EMISSIVEMAP_UV, 1 ) ).xy;
#endif
#ifdef USE_METALNESSMAP
	vMetalnessMapUv = ( metalnessMapTransform * vec3( METALNESSMAP_UV, 1 ) ).xy;
#endif
#ifdef USE_ROUGHNESSMAP
	vRoughnessMapUv = ( roughnessMapTransform * vec3( ROUGHNESSMAP_UV, 1 ) ).xy;
#endif
#ifdef USE_ANISOTROPYMAP
	vAnisotropyMapUv = ( anisotropyMapTransform * vec3( ANISOTROPYMAP_UV, 1 ) ).xy;
#endif
#ifdef USE_CLEARCOATMAP
	vClearcoatMapUv = ( clearcoatMapTransform * vec3( CLEARCOATMAP_UV, 1 ) ).xy;
#endif
#ifdef USE_CLEARCOAT_NORMALMAP
	vClearcoatNormalMapUv = ( clearcoatNormalMapTransform * vec3( CLEARCOAT_NORMALMAP_UV, 1 ) ).xy;
#endif
#ifdef USE_CLEARCOAT_ROUGHNESSMAP
	vClearcoatRoughnessMapUv = ( clearcoatRoughnessMapTransform * vec3( CLEARCOAT_ROUGHNESSMAP_UV, 1 ) ).xy;
#endif
#ifdef USE_IRIDESCENCEMAP
	vIridescenceMapUv = ( iridescenceMapTransform * vec3( IRIDESCENCEMAP_UV, 1 ) ).xy;
#endif
#ifdef USE_IRIDESCENCE_THICKNESSMAP
	vIridescenceThicknessMapUv = ( iridescenceThicknessMapTransform * vec3( IRIDESCENCE_THICKNESSMAP_UV, 1 ) ).xy;
#endif
#ifdef USE_SHEEN_COLORMAP
	vSheenColorMapUv = ( sheenColorMapTransform * vec3( SHEEN_COLORMAP_UV, 1 ) ).xy;
#endif
#ifdef USE_SHEEN_ROUGHNESSMAP
	vSheenRoughnessMapUv = ( sheenRoughnessMapTransform * vec3( SHEEN_ROUGHNESSMAP_UV, 1 ) ).xy;
#endif
#ifdef USE_SPECULARMAP
	vSpecularMapUv = ( specularMapTransform * vec3( SPECULARMAP_UV, 1 ) ).xy;
#endif
#ifdef USE_SPECULAR_COLORMAP
	vSpecularColorMapUv = ( specularColorMapTransform * vec3( SPECULAR_COLORMAP_UV, 1 ) ).xy;
#endif
#ifdef USE_SPECULAR_INTENSITYMAP
	vSpecularIntensityMapUv = ( specularIntensityMapTransform * vec3( SPECULAR_INTENSITYMAP_UV, 1 ) ).xy;
#endif
#ifdef USE_TRANSMISSIONMAP
	vTransmissionMapUv = ( transmissionMapTransform * vec3( TRANSMISSIONMAP_UV, 1 ) ).xy;
#endif
#ifdef USE_THICKNESSMAP
	vThicknessMapUv = ( thicknessMapTransform * vec3( THICKNESSMAP_UV, 1 ) ).xy;
#endif`,qK=`#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION ) || NUM_SPOT_LIGHT_COORDS > 0
	vec4 worldPosition = vec4( transformed, 1.0 );
	#ifdef USE_BATCHING
		worldPosition = batchingMatrix * worldPosition;
	#endif
	#ifdef USE_INSTANCING
		worldPosition = instanceMatrix * worldPosition;
	#endif
	worldPosition = modelMatrix * worldPosition;
#endif`,BK=`varying vec2 vUv;
uniform mat3 uvTransform;
void main() {
	vUv = ( uvTransform * vec3( uv, 1 ) ).xy;
	gl_Position = vec4( position.xy, 1.0, 1.0 );
}`,HK=`uniform sampler2D t2D;
uniform float backgroundIntensity;
varying vec2 vUv;
void main() {
	vec4 texColor = texture2D( t2D, vUv );
	#ifdef DECODE_VIDEO_TEXTURE
		texColor = vec4( mix( pow( texColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), texColor.rgb * 0.0773993808, vec3( lessThanEqual( texColor.rgb, vec3( 0.04045 ) ) ) ), texColor.w );
	#endif
	texColor.rgb *= backgroundIntensity;
	gl_FragColor = texColor;
	#include <tonemapping_fragment>
	#include <colorspace_fragment>
}`,VK=`varying vec3 vWorldDirection;
#include <common>
void main() {
	vWorldDirection = transformDirection( position, modelMatrix );
	#include <begin_vertex>
	#include <project_vertex>
	gl_Position.z = gl_Position.w;
}`,GK=`#ifdef ENVMAP_TYPE_CUBE
	uniform samplerCube envMap;
#elif defined( ENVMAP_TYPE_CUBE_UV )
	uniform sampler2D envMap;
#endif
uniform float backgroundBlurriness;
uniform float backgroundIntensity;
uniform mat3 backgroundRotation;
varying vec3 vWorldDirection;
#include <cube_uv_reflection_fragment>
void main() {
	#ifdef ENVMAP_TYPE_CUBE
		vec4 texColor = textureCube( envMap, backgroundRotation * vWorldDirection );
	#elif defined( ENVMAP_TYPE_CUBE_UV )
		vec4 texColor = textureCubeUV( envMap, backgroundRotation * vWorldDirection, backgroundBlurriness );
	#else
		vec4 texColor = vec4( 0.0, 0.0, 0.0, 1.0 );
	#endif
	texColor.rgb *= backgroundIntensity;
	gl_FragColor = texColor;
	#include <tonemapping_fragment>
	#include <colorspace_fragment>
}`,WK=`varying vec3 vWorldDirection;
#include <common>
void main() {
	vWorldDirection = transformDirection( position, modelMatrix );
	#include <begin_vertex>
	#include <project_vertex>
	gl_Position.z = gl_Position.w;
}`,jK=`uniform samplerCube tCube;
uniform float tFlip;
uniform float opacity;
varying vec3 vWorldDirection;
void main() {
	vec4 texColor = textureCube( tCube, vec3( tFlip * vWorldDirection.x, vWorldDirection.yz ) );
	gl_FragColor = texColor;
	gl_FragColor.a *= opacity;
	#include <tonemapping_fragment>
	#include <colorspace_fragment>
}`,QK=`#include <common>
#include <batching_pars_vertex>
#include <uv_pars_vertex>
#include <displacementmap_pars_vertex>
#include <morphtarget_pars_vertex>
#include <skinning_pars_vertex>
#include <logdepthbuf_pars_vertex>
#include <clipping_planes_pars_vertex>
varying vec2 vHighPrecisionZW;
void main() {
	#include <uv_vertex>
	#include <batching_vertex>
	#include <skinbase_vertex>
	#include <morphinstance_vertex>
	#ifdef USE_DISPLACEMENTMAP
		#include <beginnormal_vertex>
		#include <morphnormal_vertex>
		#include <skinnormal_vertex>
	#endif
	#include <begin_vertex>
	#include <morphtarget_vertex>
	#include <skinning_vertex>
	#include <displacementmap_vertex>
	#include <project_vertex>
	#include <logdepthbuf_vertex>
	#include <clipping_planes_vertex>
	vHighPrecisionZW = gl_Position.zw;
}`,XK=`#if DEPTH_PACKING == 3200
	uniform float opacity;
#endif
#include <common>
#include <packing>
#include <uv_pars_fragment>
#include <map_pars_fragment>
#include <alphamap_pars_fragment>
#include <alphatest_pars_fragment>
#include <alphahash_pars_fragment>
#include <logdepthbuf_pars_fragment>
#include <clipping_planes_pars_fragment>
varying vec2 vHighPrecisionZW;
void main() {
	vec4 diffuseColor = vec4( 1.0 );
	#include <clipping_planes_fragment>
	#if DEPTH_PACKING == 3200
		diffuseColor.a = opacity;
	#endif
	#include <map_fragment>
	#include <alphamap_fragment>
	#include <alphatest_fragment>
	#include <alphahash_fragment>
	#include <logdepthbuf_fragment>
	#ifdef USE_REVERSED_DEPTH_BUFFER
		float fragCoordZ = vHighPrecisionZW[ 0 ] / vHighPrecisionZW[ 1 ];
	#else
		float fragCoordZ = 0.5 * vHighPrecisionZW[ 0 ] / vHighPrecisionZW[ 1 ] + 0.5;
	#endif
	#if DEPTH_PACKING == 3200
		gl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity );
	#elif DEPTH_PACKING == 3201
		gl_FragColor = packDepthToRGBA( fragCoordZ );
	#elif DEPTH_PACKING == 3202
		gl_FragColor = vec4( packDepthToRGB( fragCoordZ ), 1.0 );
	#elif DEPTH_PACKING == 3203
		gl_FragColor = vec4( packDepthToRG( fragCoordZ ), 0.0, 1.0 );
	#endif
}`,YK=`#define DISTANCE
varying vec3 vWorldPosition;
#include <common>
#include <batching_pars_vertex>
#include <uv_pars_vertex>
#include <displacementmap_pars_vertex>
#include <morphtarget_pars_vertex>
#include <skinning_pars_vertex>
#include <clipping_planes_pars_vertex>
void main() {
	#include <uv_vertex>
	#include <batching_vertex>
	#include <skinbase_vertex>
	#include <morphinstance_vertex>
	#ifdef USE_DISPLACEMENTMAP
		#include <beginnormal_vertex>
		#include <morphnormal_vertex>
		#include <skinnormal_vertex>
	#endif
	#include <begin_vertex>
	#include <morphtarget_vertex>
	#include <skinning_vertex>
	#include <displacementmap_vertex>
	#include <project_vertex>
	#include <worldpos_vertex>
	#include <clipping_planes_vertex>
	vWorldPosition = worldPosition.xyz;
}`,KK=`#define DISTANCE
uniform vec3 referencePosition;
uniform float nearDistance;
uniform float farDistance;
varying vec3 vWorldPosition;
#include <common>
#include <uv_pars_fragment>
#include <map_pars_fragment>
#include <alphamap_pars_fragment>
#include <alphatest_pars_fragment>
#include <alphahash_pars_fragment>
#include <clipping_planes_pars_fragment>
void main() {
	vec4 diffuseColor = vec4( 1.0 );
	#include <clipping_planes_fragment>
	#include <map_fragment>
	#include <alphamap_fragment>
	#include <alphatest_fragment>
	#include <alphahash_fragment>
	float dist = length( vWorldPosition - referencePosition );
	dist = ( dist - nearDistance ) / ( farDistance - nearDistance );
	dist = saturate( dist );
	gl_FragColor = vec4( dist, 0.0, 0.0, 1.0 );
}`,ZK=`varying vec3 vWorldDirection;
#include <common>
void main() {
	vWorldDirection = transformDirection( position, modelMatrix );
	#include <begin_vertex>
	#include <project_vertex>
}`,$K=`uniform sampler2D tEquirect;
varying vec3 vWorldDirection;
#include <common>
void main() {
	vec3 direction = normalize( vWorldDirection );
	vec2 sampleUV = equirectUv( direction );
	gl_FragColor = texture2D( tEquirect, sampleUV );
	#include <tonemapping_fragment>
	#include <colorspace_fragment>
}`,JK=`uniform float scale;
attribute float lineDistance;
varying float vLineDistance;
#include <common>
#include <uv_pars_vertex>
#include <color_pars_vertex>
#include <fog_pars_vertex>
#include <morphtarget_pars_vertex>
#include <logdepthbuf_pars_vertex>
#include <clipping_planes_pars_vertex>
void main() {
	vLineDistance = scale * lineDistance;
	#include <uv_vertex>
	#include <color_vertex>
	#include <morphinstance_vertex>
	#include <morphcolor_vertex>
	#include <begin_vertex>
	#include <morphtarget_vertex>
	#include <project_vertex>
	#include <logdepthbuf_vertex>
	#include <clipping_planes_vertex>
	#include <fog_vertex>
}`,eZ=`uniform vec3 diffuse;
uniform float opacity;
uniform float dashSize;
uniform float totalSize;
varying float vLineDistance;
#include <common>
#include <color_pars_fragment>
#include <uv_pars_fragment>
#include <map_pars_fragment>
#include <fog_pars_fragment>
#include <logdepthbuf_pars_fragment>
#include <clipping_planes_pars_fragment>
void main() {
	vec4 diffuseColor = vec4( diffuse, opacity );
	#include <clipping_planes_fragment>
	if ( mod( vLineDistance, totalSize ) > dashSize ) {
		discard;
	}
	vec3 outgoingLight = vec3( 0.0 );
	#include <logdepthbuf_fragment>
	#include <map_fragment>
	#include <color_fragment>
	outgoingLight = diffuseColor.rgb;
	#include <opaque_fragment>
	#include <tonemapping_fragment>
	#include <colorspace_fragment>
	#include <fog_fragment>
	#include <premultiplied_alpha_fragment>
}`,tZ=`#include <common>
#include <batching_pars_vertex>
#include <uv_pars_vertex>
#include <envmap_pars_vertex>
#include <color_pars_vertex>
#include <fog_pars_vertex>
#include <morphtarget_pars_vertex>
#include <skinning_pars_vertex>
#include <logdepthbuf_pars_vertex>
#include <clipping_planes_pars_vertex>
void main() {
	#include <uv_vertex>
	#include <color_vertex>
	#include <morphinstance_vertex>
	#include <morphcolor_vertex>
	#include <batching_vertex>
	#if defined ( USE_ENVMAP ) || defined ( USE_SKINNING )
		#include <beginnormal_vertex>
		#include <morphnormal_vertex>
		#include <skinbase_vertex>
		#include <skinnormal_vertex>
		#include <defaultnormal_vertex>
	#endif
	#include <begin_vertex>
	#include <morphtarget_vertex>
	#include <skinning_vertex>
	#include <project_vertex>
	#include <logdepthbuf_vertex>
	#include <clipping_planes_vertex>
	#include <worldpos_vertex>
	#include <envmap_vertex>
	#include <fog_vertex>
}`,nZ=`uniform vec3 diffuse;
uniform float opacity;
#ifndef FLAT_SHADED
	varying vec3 vNormal;
#endif
#include <common>
#include <dithering_pars_fragment>
#include <color_pars_fragment>
#include <uv_pars_fragment>
#include <map_pars_fragment>
#include <alphamap_pars_fragment>
#include <alphatest_pars_fragment>
#include <alphahash_pars_fragment>
#include <aomap_pars_fragment>
#include <lightmap_pars_fragment>
#include <envmap_common_pars_fragment>
#include <envmap_pars_fragment>
#include <fog_pars_fragment>
#include <specularmap_pars_fragment>
#include <logdepthbuf_pars_fragment>
#include <clipping_planes_pars_fragment>
void main() {
	vec4 diffuseColor = vec4( diffuse, opacity );
	#include <clipping_planes_fragment>
	#include <logdepthbuf_fragment>
	#include <map_fragment>
	#include <color_fragment>
	#include <alphamap_fragment>
	#include <alphatest_fragment>
	#include <alphahash_fragment>
	#include <specularmap_fragment>
	ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );
	#ifdef USE_LIGHTMAP
		vec4 lightMapTexel = texture2D( lightMap, vLightMapUv );
		reflectedLight.indirectDiffuse += lightMapTexel.rgb * lightMapIntensity * RECIPROCAL_PI;
	#else
		reflectedLight.indirectDiffuse += vec3( 1.0 );
	#endif
	#include <aomap_fragment>
	reflectedLight.indirectDiffuse *= diffuseColor.rgb;
	vec3 outgoingLight = reflectedLight.indirectDiffuse;
	#include <envmap_fragment>
	#include <opaque_fragment>
	#include <tonemapping_fragment>
	#include <colorspace_fragment>
	#include <fog_fragment>
	#include <premultiplied_alpha_fragment>
	#include <dithering_fragment>
}`,iZ=`#define LAMBERT
varying vec3 vViewPosition;
#include <common>
#include <batching_pars_vertex>
#include <uv_pars_vertex>
#include <displacementmap_pars_vertex>
#include <envmap_pars_vertex>
#include <color_pars_vertex>
#include <fog_pars_vertex>
#include <normal_pars_vertex>
#include <morphtarget_pars_vertex>
#include <skinning_pars_vertex>
#include <shadowmap_pars_vertex>
#include <logdepthbuf_pars_vertex>
#include <clipping_planes_pars_vertex>
void main() {
	#include <uv_vertex>
	#include <color_vertex>
	#include <morphinstance_vertex>
	#include <morphcolor_vertex>
	#include <batching_vertex>
	#include <beginnormal_vertex>
	#include <morphnormal_vertex>
	#include <skinbase_vertex>
	#include <skinnormal_vertex>
	#include <defaultnormal_vertex>
	#include <normal_vertex>
	#include <begin_vertex>
	#include <morphtarget_vertex>
	#include <skinning_vertex>
	#include <displacementmap_vertex>
	#include <project_vertex>
	#include <logdepthbuf_vertex>
	#include <clipping_planes_vertex>
	vViewPosition = - mvPosition.xyz;
	#include <worldpos_vertex>
	#include <envmap_vertex>
	#include <shadowmap_vertex>
	#include <fog_vertex>
}`,rZ=`#define LAMBERT
uniform vec3 diffuse;
uniform vec3 emissive;
uniform float opacity;
#include <common>
#include <dithering_pars_fragment>
#include <color_pars_fragment>
#include <uv_pars_fragment>
#include <map_pars_fragment>
#include <alphamap_pars_fragment>
#include <alphatest_pars_fragment>
#include <alphahash_pars_fragment>
#include <aomap_pars_fragment>
#include <lightmap_pars_fragment>
#include <emissivemap_pars_fragment>
#include <cube_uv_reflection_fragment>
#include <envmap_common_pars_fragment>
#include <envmap_pars_fragment>
#include <envmap_physical_pars_fragment>
#include <fog_pars_fragment>
#include <bsdfs>
#include <lights_pars_begin>
#include <normal_pars_fragment>
#include <lights_lambert_pars_fragment>
#include <shadowmap_pars_fragment>
#include <bumpmap_pars_fragment>
#include <normalmap_pars_fragment>
#include <specularmap_pars_fragment>
#include <logdepthbuf_pars_fragment>
#include <clipping_planes_pars_fragment>
void main() {
	vec4 diffuseColor = vec4( diffuse, opacity );
	#include <clipping_planes_fragment>
	ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );
	vec3 totalEmissiveRadiance = emissive;
	#include <logdepthbuf_fragment>
	#include <map_fragment>
	#include <color_fragment>
	#include <alphamap_fragment>
	#include <alphatest_fragment>
	#include <alphahash_fragment>
	#include <specularmap_fragment>
	#include <normal_fragment_begin>
	#include <normal_fragment_maps>
	#include <emissivemap_fragment>
	#include <lights_lambert_fragment>
	#include <lights_fragment_begin>
	#include <lights_fragment_maps>
	#include <lights_fragment_end>
	#include <aomap_fragment>
	vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;
	#include <envmap_fragment>
	#include <opaque_fragment>
	#include <tonemapping_fragment>
	#include <colorspace_fragment>
	#include <fog_fragment>
	#include <premultiplied_alpha_fragment>
	#include <dithering_fragment>
}`,aZ=`#define MATCAP
varying vec3 vViewPosition;
#include <common>
#include <batching_pars_vertex>
#include <uv_pars_vertex>
#include <color_pars_vertex>
#include <displacementmap_pars_vertex>
#include <fog_pars_vertex>
#include <normal_pars_vertex>
#include <morphtarget_pars_vertex>
#include <skinning_pars_vertex>
#include <logdepthbuf_pars_vertex>
#include <clipping_planes_pars_vertex>
void main() {
	#include <uv_vertex>
	#include <color_vertex>
	#include <morphinstance_vertex>
	#include <morphcolor_vertex>
	#include <batching_vertex>
	#include <beginnormal_vertex>
	#include <morphnormal_vertex>
	#include <skinbase_vertex>
	#include <skinnormal_vertex>
	#include <defaultnormal_vertex>
	#include <normal_vertex>
	#include <begin_vertex>
	#include <morphtarget_vertex>
	#include <skinning_vertex>
	#include <displacementmap_vertex>
	#include <project_vertex>
	#include <logdepthbuf_vertex>
	#include <clipping_planes_vertex>
	#include <fog_vertex>
	vViewPosition = - mvPosition.xyz;
}`,sZ=`#define MATCAP
uniform vec3 diffuse;
uniform float opacity;
uniform sampler2D matcap;
varying vec3 vViewPosition;
#include <common>
#include <dithering_pars_fragment>
#include <color_pars_fragment>
#include <uv_pars_fragment>
#include <map_pars_fragment>
#include <alphamap_pars_fragment>
#include <alphatest_pars_fragment>
#include <alphahash_pars_fragment>
#include <fog_pars_fragment>
#include <normal_pars_fragment>
#include <bumpmap_pars_fragment>
#include <normalmap_pars_fragment>
#include <logdepthbuf_pars_fragment>
#include <clipping_planes_pars_fragment>
void main() {
	vec4 diffuseColor = vec4( diffuse, opacity );
	#include <clipping_planes_fragment>
	#include <logdepthbuf_fragment>
	#include <map_fragment>
	#include <color_fragment>
	#include <alphamap_fragment>
	#include <alphatest_fragment>
	#include <alphahash_fragment>
	#include <normal_fragment_begin>
	#include <normal_fragment_maps>
	vec3 viewDir = normalize( vViewPosition );
	vec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) );
	vec3 y = cross( viewDir, x );
	vec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5;
	#ifdef USE_MATCAP
		vec4 matcapColor = texture2D( matcap, uv );
	#else
		vec4 matcapColor = vec4( vec3( mix( 0.2, 0.8, uv.y ) ), 1.0 );
	#endif
	vec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb;
	#include <opaque_fragment>
	#include <tonemapping_fragment>
	#include <colorspace_fragment>
	#include <fog_fragment>
	#include <premultiplied_alpha_fragment>
	#include <dithering_fragment>
}`,oZ=`#define NORMAL
#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )
	varying vec3 vViewPosition;
#endif
#include <common>
#include <batching_pars_vertex>
#include <uv_pars_vertex>
#include <displacementmap_pars_vertex>
#include <normal_pars_vertex>
#include <morphtarget_pars_vertex>
#include <skinning_pars_vertex>
#include <logdepthbuf_pars_vertex>
#include <clipping_planes_pars_vertex>
void main() {
	#include <uv_vertex>
	#include <batching_vertex>
	#include <beginnormal_vertex>
	#include <morphinstance_vertex>
	#include <morphnormal_vertex>
	#include <skinbase_vertex>
	#include <skinnormal_vertex>
	#include <defaultnormal_vertex>
	#include <normal_vertex>
	#include <begin_vertex>
	#include <morphtarget_vertex>
	#include <skinning_vertex>
	#include <displacementmap_vertex>
	#include <project_vertex>
	#include <logdepthbuf_vertex>
	#include <clipping_planes_vertex>
#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )
	vViewPosition = - mvPosition.xyz;
#endif
}`,lZ=`#define NORMAL
uniform float opacity;
#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )
	varying vec3 vViewPosition;
#endif
#include <uv_pars_fragment>
#include <normal_pars_fragment>
#include <bumpmap_pars_fragment>
#include <normalmap_pars_fragment>
#include <logdepthbuf_pars_fragment>
#include <clipping_planes_pars_fragment>
void main() {
	vec4 diffuseColor = vec4( 0.0, 0.0, 0.0, opacity );
	#include <clipping_planes_fragment>
	#include <logdepthbuf_fragment>
	#include <normal_fragment_begin>
	#include <normal_fragment_maps>
	gl_FragColor = vec4( normalize( normal ) * 0.5 + 0.5, diffuseColor.a );
	#ifdef OPAQUE
		gl_FragColor.a = 1.0;
	#endif
}`,uZ=`#define PHONG
varying vec3 vViewPosition;
#include <common>
#include <batching_pars_vertex>
#include <uv_pars_vertex>
#include <displacementmap_pars_vertex>
#include <envmap_pars_vertex>
#include <color_pars_vertex>
#include <fog_pars_vertex>
#include <normal_pars_vertex>
#include <morphtarget_pars_vertex>
#include <skinning_pars_vertex>
#include <shadowmap_pars_vertex>
#include <logdepthbuf_pars_vertex>
#include <clipping_planes_pars_vertex>
void main() {
	#include <uv_vertex>
	#include <color_vertex>
	#include <morphcolor_vertex>
	#include <batching_vertex>
	#include <beginnormal_vertex>
	#include <morphinstance_vertex>
	#include <morphnormal_vertex>
	#include <skinbase_vertex>
	#include <skinnormal_vertex>
	#include <defaultnormal_vertex>
	#include <normal_vertex>
	#include <begin_vertex>
	#include <morphtarget_vertex>
	#include <skinning_vertex>
	#include <displacementmap_vertex>
	#include <project_vertex>
	#include <logdepthbuf_vertex>
	#include <clipping_planes_vertex>
	vViewPosition = - mvPosition.xyz;
	#include <worldpos_vertex>
	#include <envmap_vertex>
	#include <shadowmap_vertex>
	#include <fog_vertex>
}`,cZ=`#define PHONG
uniform vec3 diffuse;
uniform vec3 emissive;
uniform vec3 specular;
uniform float shininess;
uniform float opacity;
#include <common>
#include <dithering_pars_fragment>
#include <color_pars_fragment>
#include <uv_pars_fragment>
#include <map_pars_fragment>
#include <alphamap_pars_fragment>
#include <alphatest_pars_fragment>
#include <alphahash_pars_fragment>
#include <aomap_pars_fragment>
#include <lightmap_pars_fragment>
#include <emissivemap_pars_fragment>
#include <cube_uv_reflection_fragment>
#include <envmap_common_pars_fragment>
#include <envmap_pars_fragment>
#include <envmap_physical_pars_fragment>
#include <fog_pars_fragment>
#include <bsdfs>
#include <lights_pars_begin>
#include <normal_pars_fragment>
#include <lights_phong_pars_fragment>
#include <shadowmap_pars_fragment>
#include <bumpmap_pars_fragment>
#include <normalmap_pars_fragment>
#include <specularmap_pars_fragment>
#include <logdepthbuf_pars_fragment>
#include <clipping_planes_pars_fragment>
void main() {
	vec4 diffuseColor = vec4( diffuse, opacity );
	#include <clipping_planes_fragment>
	ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );
	vec3 totalEmissiveRadiance = emissive;
	#include <logdepthbuf_fragment>
	#include <map_fragment>
	#include <color_fragment>
	#include <alphamap_fragment>
	#include <alphatest_fragment>
	#include <alphahash_fragment>
	#include <specularmap_fragment>
	#include <normal_fragment_begin>
	#include <normal_fragment_maps>
	#include <emissivemap_fragment>
	#include <lights_phong_fragment>
	#include <lights_fragment_begin>
	#include <lights_fragment_maps>
	#include <lights_fragment_end>
	#include <aomap_fragment>
	vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;
	#include <envmap_fragment>
	#include <opaque_fragment>
	#include <tonemapping_fragment>
	#include <colorspace_fragment>
	#include <fog_fragment>
	#include <premultiplied_alpha_fragment>
	#include <dithering_fragment>
}`,fZ=`#define STANDARD
varying vec3 vViewPosition;
#ifdef USE_TRANSMISSION
	varying vec3 vWorldPosition;
#endif
#include <common>
#include <batching_pars_vertex>
#include <uv_pars_vertex>
#include <displacementmap_pars_vertex>
#include <color_pars_vertex>
#include <fog_pars_vertex>
#include <normal_pars_vertex>
#include <morphtarget_pars_vertex>
#include <skinning_pars_vertex>
#include <shadowmap_pars_vertex>
#include <logdepthbuf_pars_vertex>
#include <clipping_planes_pars_vertex>
void main() {
	#include <uv_vertex>
	#include <color_vertex>
	#include <morphinstance_vertex>
	#include <morphcolor_vertex>
	#include <batching_vertex>
	#include <beginnormal_vertex>
	#include <morphnormal_vertex>
	#include <skinbase_vertex>
	#include <skinnormal_vertex>
	#include <defaultnormal_vertex>
	#include <normal_vertex>
	#include <begin_vertex>
	#include <morphtarget_vertex>
	#include <skinning_vertex>
	#include <displacementmap_vertex>
	#include <project_vertex>
	#include <logdepthbuf_vertex>
	#include <clipping_planes_vertex>
	vViewPosition = - mvPosition.xyz;
	#include <worldpos_vertex>
	#include <shadowmap_vertex>
	#include <fog_vertex>
#ifdef USE_TRANSMISSION
	vWorldPosition = worldPosition.xyz;
#endif
}`,dZ=`#define STANDARD
#ifdef PHYSICAL
	#define IOR
	#define USE_SPECULAR
#endif
uniform vec3 diffuse;
uniform vec3 emissive;
uniform float roughness;
uniform float metalness;
uniform float opacity;
#ifdef IOR
	uniform float ior;
#endif
#ifdef USE_SPECULAR
	uniform float specularIntensity;
	uniform vec3 specularColor;
	#ifdef USE_SPECULAR_COLORMAP
		uniform sampler2D specularColorMap;
	#endif
	#ifdef USE_SPECULAR_INTENSITYMAP
		uniform sampler2D specularIntensityMap;
	#endif
#endif
#ifdef USE_CLEARCOAT
	uniform float clearcoat;
	uniform float clearcoatRoughness;
#endif
#ifdef USE_DISPERSION
	uniform float dispersion;
#endif
#ifdef USE_RETROREFLECTION
	uniform float retroreflectivity;
#endif
#ifdef USE_IRIDESCENCE
	uniform float iridescence;
	uniform float iridescenceIOR;
	uniform float iridescenceThicknessMinimum;
	uniform float iridescenceThicknessMaximum;
#endif
#ifdef USE_SHEEN
	uniform vec3 sheenColor;
	uniform float sheenRoughness;
	#ifdef USE_SHEEN_COLORMAP
		uniform sampler2D sheenColorMap;
	#endif
	#ifdef USE_SHEEN_ROUGHNESSMAP
		uniform sampler2D sheenRoughnessMap;
	#endif
#endif
#ifdef USE_ANISOTROPY
	uniform vec2 anisotropyVector;
	#ifdef USE_ANISOTROPYMAP
		uniform sampler2D anisotropyMap;
	#endif
#endif
varying vec3 vViewPosition;
#include <common>
#include <dithering_pars_fragment>
#include <color_pars_fragment>
#include <uv_pars_fragment>
#include <map_pars_fragment>
#include <alphamap_pars_fragment>
#include <alphatest_pars_fragment>
#include <alphahash_pars_fragment>
#include <aomap_pars_fragment>
#include <lightmap_pars_fragment>
#include <emissivemap_pars_fragment>
#include <iridescence_fragment>
#include <cube_uv_reflection_fragment>
#include <envmap_common_pars_fragment>
#include <envmap_physical_pars_fragment>
#include <fog_pars_fragment>
#include <lights_pars_begin>
#include <normal_pars_fragment>
#include <lights_physical_pars_fragment>
#include <transmission_pars_fragment>
#include <shadowmap_pars_fragment>
#include <bumpmap_pars_fragment>
#include <normalmap_pars_fragment>
#include <clearcoat_pars_fragment>
#include <iridescence_pars_fragment>
#include <roughnessmap_pars_fragment>
#include <metalnessmap_pars_fragment>
#include <logdepthbuf_pars_fragment>
#include <clipping_planes_pars_fragment>
void main() {
	vec4 diffuseColor = vec4( diffuse, opacity );
	#include <clipping_planes_fragment>
	ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );
	vec3 totalEmissiveRadiance = emissive;
	#include <logdepthbuf_fragment>
	#include <map_fragment>
	#include <color_fragment>
	#include <alphamap_fragment>
	#include <alphatest_fragment>
	#include <alphahash_fragment>
	#include <roughnessmap_fragment>
	#include <metalnessmap_fragment>
	#include <normal_fragment_begin>
	#include <normal_fragment_maps>
	#include <clearcoat_normal_fragment_begin>
	#include <clearcoat_normal_fragment_maps>
	#include <emissivemap_fragment>
	#include <lights_physical_fragment>
	#include <lights_fragment_begin>
	#include <lights_fragment_maps>
	#include <lights_fragment_end>
	#include <aomap_fragment>
	vec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;
	vec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular;
	#include <transmission_fragment>
	vec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance;
	#ifdef USE_SHEEN
 
		outgoingLight = outgoingLight + sheenSpecularDirect + sheenSpecularIndirect;
 
 	#endif
	#ifdef USE_CLEARCOAT
		float dotNVcc = saturate( dot( geometryClearcoatNormal, geometryViewDir ) );
		vec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc );
		outgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + ( clearcoatSpecularDirect + clearcoatSpecularIndirect ) * material.clearcoat;
	#endif
	#include <opaque_fragment>
	#include <tonemapping_fragment>
	#include <colorspace_fragment>
	#include <fog_fragment>
	#include <premultiplied_alpha_fragment>
	#include <dithering_fragment>
}`,hZ=`#define TOON
varying vec3 vViewPosition;
#include <common>
#include <batching_pars_vertex>
#include <uv_pars_vertex>
#include <displacementmap_pars_vertex>
#include <color_pars_vertex>
#include <fog_pars_vertex>
#include <normal_pars_vertex>
#include <morphtarget_pars_vertex>
#include <skinning_pars_vertex>
#include <shadowmap_pars_vertex>
#include <logdepthbuf_pars_vertex>
#include <clipping_planes_pars_vertex>
void main() {
	#include <uv_vertex>
	#include <color_vertex>
	#include <morphinstance_vertex>
	#include <morphcolor_vertex>
	#include <batching_vertex>
	#include <beginnormal_vertex>
	#include <morphnormal_vertex>
	#include <skinbase_vertex>
	#include <skinnormal_vertex>
	#include <defaultnormal_vertex>
	#include <normal_vertex>
	#include <begin_vertex>
	#include <morphtarget_vertex>
	#include <skinning_vertex>
	#include <displacementmap_vertex>
	#include <project_vertex>
	#include <logdepthbuf_vertex>
	#include <clipping_planes_vertex>
	vViewPosition = - mvPosition.xyz;
	#include <worldpos_vertex>
	#include <shadowmap_vertex>
	#include <fog_vertex>
}`,pZ=`#define TOON
uniform vec3 diffuse;
uniform vec3 emissive;
uniform float opacity;
#include <common>
#include <dithering_pars_fragment>
#include <color_pars_fragment>
#include <uv_pars_fragment>
#include <map_pars_fragment>
#include <alphamap_pars_fragment>
#include <alphatest_pars_fragment>
#include <alphahash_pars_fragment>
#include <aomap_pars_fragment>
#include <lightmap_pars_fragment>
#include <emissivemap_pars_fragment>
#include <gradientmap_pars_fragment>
#include <fog_pars_fragment>
#include <bsdfs>
#include <lights_pars_begin>
#include <normal_pars_fragment>
#include <lights_toon_pars_fragment>
#include <shadowmap_pars_fragment>
#include <bumpmap_pars_fragment>
#include <normalmap_pars_fragment>
#include <logdepthbuf_pars_fragment>
#include <clipping_planes_pars_fragment>
void main() {
	vec4 diffuseColor = vec4( diffuse, opacity );
	#include <clipping_planes_fragment>
	ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );
	vec3 totalEmissiveRadiance = emissive;
	#include <logdepthbuf_fragment>
	#include <map_fragment>
	#include <color_fragment>
	#include <alphamap_fragment>
	#include <alphatest_fragment>
	#include <alphahash_fragment>
	#include <normal_fragment_begin>
	#include <normal_fragment_maps>
	#include <emissivemap_fragment>
	#include <lights_toon_fragment>
	#include <lights_fragment_begin>
	#include <lights_fragment_maps>
	#include <lights_fragment_end>
	#include <aomap_fragment>
	vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;
	#include <opaque_fragment>
	#include <tonemapping_fragment>
	#include <colorspace_fragment>
	#include <fog_fragment>
	#include <premultiplied_alpha_fragment>
	#include <dithering_fragment>
}`,mZ=`uniform float size;
uniform float scale;
#include <common>
#include <color_pars_vertex>
#include <fog_pars_vertex>
#include <morphtarget_pars_vertex>
#include <logdepthbuf_pars_vertex>
#include <clipping_planes_pars_vertex>
#ifdef USE_POINTS_UV
	varying vec2 vUv;
	uniform mat3 uvTransform;
#endif
void main() {
	#ifdef USE_POINTS_UV
		vUv = ( uvTransform * vec3( uv, 1 ) ).xy;
	#endif
	#include <color_vertex>
	#include <morphinstance_vertex>
	#include <morphcolor_vertex>
	#include <begin_vertex>
	#include <morphtarget_vertex>
	#include <project_vertex>
	gl_PointSize = size;
	#ifdef USE_SIZEATTENUATION
		bool isPerspective = isPerspectiveMatrix( projectionMatrix );
		if ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z );
	#endif
	#include <logdepthbuf_vertex>
	#include <clipping_planes_vertex>
	#include <worldpos_vertex>
	#include <fog_vertex>
}`,_Z=`uniform vec3 diffuse;
uniform float opacity;
#include <common>
#include <color_pars_fragment>
#include <map_particle_pars_fragment>
#include <alphatest_pars_fragment>
#include <alphahash_pars_fragment>
#include <fog_pars_fragment>
#include <logdepthbuf_pars_fragment>
#include <clipping_planes_pars_fragment>
void main() {
	vec4 diffuseColor = vec4( diffuse, opacity );
	#include <clipping_planes_fragment>
	vec3 outgoingLight = vec3( 0.0 );
	#include <logdepthbuf_fragment>
	#include <map_particle_fragment>
	#include <color_fragment>
	#include <alphatest_fragment>
	#include <alphahash_fragment>
	outgoingLight = diffuseColor.rgb;
	#include <opaque_fragment>
	#include <tonemapping_fragment>
	#include <colorspace_fragment>
	#include <fog_fragment>
	#include <premultiplied_alpha_fragment>
}`,gZ=`#include <common>
#include <batching_pars_vertex>
#include <fog_pars_vertex>
#include <morphtarget_pars_vertex>
#include <skinning_pars_vertex>
#include <logdepthbuf_pars_vertex>
#include <shadowmap_pars_vertex>
void main() {
	#include <batching_vertex>
	#include <beginnormal_vertex>
	#include <morphinstance_vertex>
	#include <morphnormal_vertex>
	#include <skinbase_vertex>
	#include <skinnormal_vertex>
	#include <defaultnormal_vertex>
	#include <begin_vertex>
	#include <morphtarget_vertex>
	#include <skinning_vertex>
	#include <project_vertex>
	#include <logdepthbuf_vertex>
	#include <worldpos_vertex>
	#include <shadowmap_vertex>
	#include <fog_vertex>
}`,vZ=`uniform vec3 color;
uniform float opacity;
#include <common>
#include <fog_pars_fragment>
#include <bsdfs>
#include <lights_pars_begin>
#include <logdepthbuf_pars_fragment>
#include <shadowmap_pars_fragment>
#include <shadowmask_pars_fragment>
void main() {
	#include <logdepthbuf_fragment>
	gl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) );
	#include <tonemapping_fragment>
	#include <colorspace_fragment>
	#include <fog_fragment>
	#include <premultiplied_alpha_fragment>
}`,yZ=`uniform float rotation;
uniform vec2 center;
#include <common>
#include <uv_pars_vertex>
#include <fog_pars_vertex>
#include <logdepthbuf_pars_vertex>
#include <clipping_planes_pars_vertex>
void main() {
	#include <uv_vertex>
	vec4 mvPosition = modelViewMatrix[ 3 ];
	vec2 scale = vec2( length( modelMatrix[ 0 ].xyz ), length( modelMatrix[ 1 ].xyz ) );
	#ifndef USE_SIZEATTENUATION
		bool isPerspective = isPerspectiveMatrix( projectionMatrix );
		if ( isPerspective ) scale *= - mvPosition.z;
	#endif
	vec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale;
	vec2 rotatedPosition;
	rotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;
	rotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;
	mvPosition.xy += rotatedPosition;
	gl_Position = projectionMatrix * mvPosition;
	#include <logdepthbuf_vertex>
	#include <clipping_planes_vertex>
	#include <fog_vertex>
}`,bZ=`uniform vec3 diffuse;
uniform float opacity;
#include <common>
#include <uv_pars_fragment>
#include <map_pars_fragment>
#include <alphamap_pars_fragment>
#include <alphatest_pars_fragment>
#include <alphahash_pars_fragment>
#include <fog_pars_fragment>
#include <logdepthbuf_pars_fragment>
#include <clipping_planes_pars_fragment>
void main() {
	vec4 diffuseColor = vec4( diffuse, opacity );
	#include <clipping_planes_fragment>
	vec3 outgoingLight = vec3( 0.0 );
	#include <logdepthbuf_fragment>
	#include <map_fragment>
	#include <alphamap_fragment>
	#include <alphatest_fragment>
	#include <alphahash_fragment>
	outgoingLight = diffuseColor.rgb;
	#include <opaque_fragment>
	#include <tonemapping_fragment>
	#include <colorspace_fragment>
	#include <fog_fragment>
}`,Bn={alphahash_fragment:BX,alphahash_pars_fragment:HX,alphamap_fragment:VX,alphamap_pars_fragment:GX,alphatest_fragment:WX,alphatest_pars_fragment:jX,aomap_fragment:QX,aomap_pars_fragment:XX,batching_pars_vertex:YX,batching_vertex:KX,begin_vertex:ZX,beginnormal_vertex:$X,bsdfs:JX,iridescence_fragment:eY,bumpmap_pars_fragment:tY,clipping_planes_fragment:nY,clipping_planes_pars_fragment:iY,clipping_planes_pars_vertex:rY,clipping_planes_vertex:aY,color_fragment:sY,color_pars_fragment:oY,color_pars_vertex:lY,color_vertex:uY,common:cY,cube_uv_reflection_fragment:fY,defaultnormal_vertex:dY,displacementmap_pars_vertex:hY,displacementmap_vertex:pY,emissivemap_fragment:mY,emissivemap_pars_fragment:_Y,colorspace_fragment:gY,colorspace_pars_fragment:vY,envmap_fragment:yY,envmap_common_pars_fragment:bY,envmap_pars_fragment:SY,envmap_pars_vertex:EY,envmap_physical_pars_fragment:kY,envmap_vertex:wY,fog_vertex:xY,fog_pars_vertex:TY,fog_fragment:MY,fog_pars_fragment:AY,gradientmap_pars_fragment:CY,lightmap_pars_fragment:RY,lights_lambert_fragment:IY,lights_lambert_pars_fragment:LY,lights_pars_begin:NY,lights_toon_fragment:OY,lights_toon_pars_fragment:DY,lights_phong_fragment:FY,lights_phong_pars_fragment:PY,lights_physical_fragment:UY,lights_physical_pars_fragment:zY,lights_fragment_begin:qY,lights_fragment_maps:BY,lights_fragment_end:HY,lightprobes_pars_fragment:VY,logdepthbuf_fragment:GY,logdepthbuf_pars_fragment:WY,logdepthbuf_pars_vertex:jY,logdepthbuf_vertex:QY,map_fragment:XY,map_pars_fragment:YY,map_particle_fragment:KY,map_particle_pars_fragment:ZY,metalnessmap_fragment:$Y,metalnessmap_pars_fragment:JY,morphinstance_vertex:eK,morphcolor_vertex:tK,morphnormal_vertex:nK,morphtarget_pars_vertex:iK,morphtarget_vertex:rK,normal_fragment_begin:aK,normal_fragment_maps:sK,normal_pars_fragment:oK,normal_pars_vertex:lK,normal_vertex:uK,normalmap_pars_fragment:cK,clearcoat_normal_fragment_begin:fK,clearcoat_normal_fragment_maps:dK,clearcoat_pars_fragment:hK,iridescence_pars_fragment:pK,opaque_fragment:mK,packing:_K,premultiplied_alpha_fragment:gK,project_vertex:vK,dithering_fragment:yK,dithering_pars_fragment:bK,roughnessmap_fragment:SK,roughnessmap_pars_fragment:EK,shadowmap_pars_fragment:wK,shadowmap_pars_vertex:xK,shadowmap_vertex:TK,shadowmask_pars_fragment:MK,skinbase_vertex:AK,skinning_pars_vertex:CK,skinning_vertex:RK,skinnormal_vertex:IK,specularmap_fragment:LK,specularmap_pars_fragment:NK,tonemapping_fragment:kK,tonemapping_pars_fragment:OK,transmission_fragment:DK,transmission_pars_fragment:FK,uv_pars_fragment:PK,uv_pars_vertex:UK,uv_vertex:zK,worldpos_vertex:qK,background_vert:BK,background_frag:HK,backgroundCube_vert:VK,backgroundCube_frag:GK,cube_vert:WK,cube_frag:jK,depth_vert:QK,depth_frag:XK,distance_vert:YK,distance_frag:KK,equirect_vert:ZK,equirect_frag:$K,linedashed_vert:JK,linedashed_frag:eZ,meshbasic_vert:tZ,meshbasic_frag:nZ,meshlambert_vert:iZ,meshlambert_frag:rZ,meshmatcap_vert:aZ,meshmatcap_frag:sZ,meshnormal_vert:oZ,meshnormal_frag:lZ,meshphong_vert:uZ,meshphong_frag:cZ,meshphysical_vert:fZ,meshphysical_frag:dZ,meshtoon_vert:hZ,meshtoon_frag:pZ,points_vert:mZ,points_frag:_Z,shadow_vert:gZ,shadow_frag:vZ,sprite_vert:yZ,sprite_frag:bZ},Gt={common:{diffuse:{value:new Vt(16777215)},opacity:{value:1},map:{value:null},mapTransform:{value:new In},alphaMap:{value:null},alphaMapTransform:{value:new In},alphaTest:{value:0}},specularmap:{specularMap:{value:null},specularMapTransform:{value:new In}},envmap:{envMap:{value:null},envMapRotation:{value:new In},reflectivity:{value:1},ior:{value:1.5},refractionRatio:{value:.98},dfgLUT:{value:null}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1},aoMapTransform:{value:new In}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1},lightMapTransform:{value:new In}},bumpmap:{bumpMap:{value:null},bumpMapTransform:{value:new In},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalMapTransform:{value:new In},normalScale:{value:new ut(1,1)}},displacementmap:{displacementMap:{value:null},displacementMapTransform:{value:new In},displacementScale:{value:1},displacementBias:{value:0}},emissivemap:{emissiveMap:{value:null},emissiveMapTransform:{value:new In}},metalnessmap:{metalnessMap:{value:null},metalnessMapTransform:{value:new In}},roughnessmap:{roughnessMap:{value:null},roughnessMapTransform:{value:new In}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new Vt(16777215)}},lights:{ambientLightColor:{value:[]},lightProbe:{value:[]},sunLights:{value:[],properties:{direction:{},color:{}}},sunLightShadows:{value:[],properties:{shadowIntensity:1,shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},sunShadowMatrix:{value:[]},sunShadowCascade:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{}}},directionalLightShadows:{value:[],properties:{shadowIntensity:1,shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{}}},spotLightShadows:{value:[],properties:{shadowIntensity:1,shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},spotLightMap:{value:[]},spotLightMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{}}},pointLightShadows:{value:[],properties:{shadowIntensity:1,shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}},ltc_1:{value:null},ltc_2:{value:null},probesSH:{value:null},probesMin:{value:new ve},probesMax:{value:new ve},probesResolution:{value:new ve}},points:{diffuse:{value:new Vt(16777215)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},alphaMapTransform:{value:new In},alphaTest:{value:0},uvTransform:{value:new In}},sprite:{diffuse:{value:new Vt(16777215)},opacity:{value:1},center:{value:new ut(.5,.5)},rotation:{value:0},map:{value:null},mapTransform:{value:new In},alphaMap:{value:null},alphaMapTransform:{value:new In},alphaTest:{value:0}}},Pu={basic:{uniforms:os([Gt.common,Gt.specularmap,Gt.envmap,Gt.aomap,Gt.lightmap,Gt.fog]),vertexShader:Bn.meshbasic_vert,fragmentShader:Bn.meshbasic_frag},lambert:{uniforms:os([Gt.common,Gt.specularmap,Gt.envmap,Gt.aomap,Gt.lightmap,Gt.emissivemap,Gt.bumpmap,Gt.normalmap,Gt.displacementmap,Gt.fog,Gt.lights,{emissive:{value:new Vt(0)},envMapIntensity:{value:1}}]),vertexShader:Bn.meshlambert_vert,fragmentShader:Bn.meshlambert_frag},phong:{uniforms:os([Gt.common,Gt.specularmap,Gt.envmap,Gt.aomap,Gt.lightmap,Gt.emissivemap,Gt.bumpmap,Gt.normalmap,Gt.displacementmap,Gt.fog,Gt.lights,{emissive:{value:new Vt(0)},specular:{value:new Vt(1118481)},shininess:{value:30},envMapIntensity:{value:1}}]),vertexShader:Bn.meshphong_vert,fragmentShader:Bn.meshphong_frag},standard:{uniforms:os([Gt.common,Gt.envmap,Gt.aomap,Gt.lightmap,Gt.emissivemap,Gt.bumpmap,Gt.normalmap,Gt.displacementmap,Gt.roughnessmap,Gt.metalnessmap,Gt.fog,Gt.lights,{emissive:{value:new Vt(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:Bn.meshphysical_vert,fragmentShader:Bn.meshphysical_frag},toon:{uniforms:os([Gt.common,Gt.aomap,Gt.lightmap,Gt.emissivemap,Gt.bumpmap,Gt.normalmap,Gt.displacementmap,Gt.gradientmap,Gt.fog,Gt.lights,{emissive:{value:new Vt(0)}}]),vertexShader:Bn.meshtoon_vert,fragmentShader:Bn.meshtoon_frag},matcap:{uniforms:os([Gt.common,Gt.bumpmap,Gt.normalmap,Gt.displacementmap,Gt.fog,{matcap:{value:null}}]),vertexShader:Bn.meshmatcap_vert,fragmentShader:Bn.meshmatcap_frag},points:{uniforms:os([Gt.points,Gt.fog]),vertexShader:Bn.points_vert,fragmentShader:Bn.points_frag},dashed:{uniforms:os([Gt.common,Gt.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:Bn.linedashed_vert,fragmentShader:Bn.linedashed_frag},depth:{uniforms:os([Gt.common,Gt.displacementmap]),vertexShader:Bn.depth_vert,fragmentShader:Bn.depth_frag},normal:{uniforms:os([Gt.common,Gt.bumpmap,Gt.normalmap,Gt.displacementmap,{opacity:{value:1}}]),vertexShader:Bn.meshnormal_vert,fragmentShader:Bn.meshnormal_frag},sprite:{uniforms:os([Gt.sprite,Gt.fog]),vertexShader:Bn.sprite_vert,fragmentShader:Bn.sprite_frag},background:{uniforms:{uvTransform:{value:new In},t2D:{value:null},backgroundIntensity:{value:1}},vertexShader:Bn.background_vert,fragmentShader:Bn.background_frag},backgroundCube:{uniforms:{envMap:{value:null},backgroundBlurriness:{value:0},backgroundIntensity:{value:1},backgroundRotation:{value:new In}},vertexShader:Bn.backgroundCube_vert,fragmentShader:Bn.backgroundCube_frag},cube:{uniforms:{tCube:{value:null},tFlip:{value:-1},opacity:{value:1}},vertexShader:Bn.cube_vert,fragmentShader:Bn.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:Bn.equirect_vert,fragmentShader:Bn.equirect_frag},distance:{uniforms:os([Gt.common,Gt.displacementmap,{referencePosition:{value:new ve},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:Bn.distance_vert,fragmentShader:Bn.distance_frag},shadow:{uniforms:os([Gt.lights,Gt.fog,{color:{value:new Vt(0)},opacity:{value:1}}]),vertexShader:Bn.shadow_vert,fragmentShader:Bn.shadow_frag}};Pu.physical={uniforms:os([Pu.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatMapTransform:{value:new In},clearcoatNormalMap:{value:null},clearcoatNormalMapTransform:{value:new In},clearcoatNormalScale:{value:new ut(1,1)},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatRoughnessMapTransform:{value:new In},dispersion:{value:0},retroreflectivity:{value:0},iridescence:{value:0},iridescenceMap:{value:null},iridescenceMapTransform:{value:new In},iridescenceIOR:{value:1.3},iridescenceThicknessMinimum:{value:100},iridescenceThicknessMaximum:{value:400},iridescenceThicknessMap:{value:null},iridescenceThicknessMapTransform:{value:new In},sheen:{value:0},sheenColor:{value:new Vt(0)},sheenColorMap:{value:null},sheenColorMapTransform:{value:new In},sheenRoughness:{value:1},sheenRoughnessMap:{value:null},sheenRoughnessMapTransform:{value:new In},transmission:{value:0},transmissionMap:{value:null},transmissionMapTransform:{value:new In},transmissionSamplerSize:{value:new ut},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},thicknessMapTransform:{value:new In},attenuationDistance:{value:0},attenuationColor:{value:new Vt(0)},specularColor:{value:new Vt(1,1,1)},specularColorMap:{value:null},specularColorMapTransform:{value:new In},specularIntensity:{value:1},specularIntensityMap:{value:null},specularIntensityMapTransform:{value:new In},anisotropyVector:{value:new ut},anisotropyMap:{value:null},anisotropyMapTransform:{value:new In}}]),vertexShader:Bn.meshphysical_vert,fragmentShader:Bn.meshphysical_frag};var T2={r:0,b:0,g:0},SZ=new Cn,b8=new In;b8.set(-1,0,0,0,1,0,0,0,1);function EZ(n,e,t,i,r,a){let s=new Vt(0),l=r===!0?0:1,c,f,p=null,h=0,_=null;function g(M){let O=M.isScene===!0?M.background:null;if(O&&O.isTexture){let k=M.backgroundBlurriness>0;O=e.get(O,k)}return O}function E(M){let O=!1,k=g(M);k===null?S(s,l):k&&k.isColor&&(S(k,1),O=!0);let q=n.xr.getEnvironmentBlendMode();q==="additive"?t.buffers.color.setClear(0,0,0,1,a):q==="alpha-blend"&&t.buffers.color.setClear(0,0,0,0,a),(n.autoClear||O)&&(t.buffers.depth.setTest(!0),t.buffers.depth.setMask(!0),t.buffers.color.setMask(!0),n.clear(n.autoClearColor,n.autoClearDepth,n.autoClearStencil))}function x(M,O){let k=g(O);k&&(k.isCubeTexture||k.mapping===x_)?(f===void 0&&(f=new dr(new Bc(1,1,1),new Ga({name:"BackgroundCubeMaterial",uniforms:C_(Pu.backgroundCube.uniforms),vertexShader:Pu.backgroundCube.vertexShader,fragmentShader:Pu.backgroundCube.fragmentShader,side:ss,depthTest:!1,depthWrite:!1,fog:!1,allowOverride:!1})),f.geometry.deleteAttribute("normal"),f.geometry.deleteAttribute("uv"),f.onBeforeRender=function(q,G,Q){this.matrixWorld.copyPosition(Q.matrixWorld)},Object.defineProperty(f.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),i.update(f)),f.material.uniforms.envMap.value=k,f.material.uniforms.backgroundBlurriness.value=O.backgroundBlurriness,f.material.uniforms.backgroundIntensity.value=O.backgroundIntensity,f.material.uniforms.backgroundRotation.value.setFromMatrix4(SZ.makeRotationFromEuler(O.backgroundRotation)).transpose(),k.isCubeTexture&&k.isRenderTargetTexture===!1&&f.material.uniforms.backgroundRotation.value.premultiply(b8),f.material.toneMapped=Gn.getTransfer(k.colorSpace)!==xi,(p!==k||h!==k.version||_!==n.toneMapping)&&(f.material.needsUpdate=!0,p=k,h=k.version,_=n.toneMapping),f.layers.enableAll(),M.unshift(f,f.geometry,f.material,0,0,null)):k&&k.isTexture&&(c===void 0&&(c=new dr(new __(2,2),new Ga({name:"BackgroundMaterial",uniforms:C_(Pu.background.uniforms),vertexShader:Pu.background.vertexShader,fragmentShader:Pu.background.fragmentShader,side:$f,depthTest:!1,depthWrite:!1,fog:!1,allowOverride:!1})),c.geometry.deleteAttribute("normal"),Object.defineProperty(c.material,"map",{get:function(){return this.uniforms.t2D.value}}),i.update(c)),c.material.uniforms.t2D.value=k,c.material.uniforms.backgroundIntensity.value=O.backgroundIntensity,c.material.toneMapped=Gn.getTransfer(k.colorSpace)!==xi,k.matrixAutoUpdate===!0&&k.updateMatrix(),c.material.uniforms.uvTransform.value.copy(k.matrix),(p!==k||h!==k.version||_!==n.toneMapping)&&(c.material.needsUpdate=!0,p=k,h=k.version,_=n.toneMapping),c.layers.enableAll(),M.unshift(c,c.geometry,c.material,0,0,null))}function S(M,O){M.getRGB(T2,KO(n)),t.buffers.color.setClear(T2.r,T2.g,T2.b,O,a)}function v(){f!==void 0&&(f.geometry.dispose(),f.material.dispose(),f=void 0),c!==void 0&&(c.geometry.dispose(),c.material.dispose(),c=void 0)}return{getClearColor:function(){return s},setClearColor:function(M,O=1){s.set(M),l=O,S(s,l)},getClearAlpha:function(){return l},setClearAlpha:function(M){l=M,S(s,l)},render:E,addToRenderList:x,dispose:v}}function wZ(n,e){let t=n.getParameter(n.MAX_VERTEX_ATTRIBS),i={},r=_(null),a=r,s=!1;function l(j,he,ke,Me,ze){let Ne=!1,Ve=h(j,Me,ke,he);a!==Ve&&(a=Ve,f(a.object)),Ne=g(j,Me,ke,ze),Ne&&E(j,Me,ke,ze),ze!==null&&e.update(ze,n.ELEMENT_ARRAY_BUFFER),(Ne||s)&&(s=!1,k(j,he,ke,Me),ze!==null&&n.bindBuffer(n.ELEMENT_ARRAY_BUFFER,e.get(ze).buffer))}function c(){return n.createVertexArray()}function f(j){return n.bindVertexArray(j)}function p(j){return n.deleteVertexArray(j)}function h(j,he,ke,Me){let ze=Me.wireframe===!0,Ne=i[he.id];Ne===void 0&&(Ne={},i[he.id]=Ne);let Ve=j.isInstancedMesh===!0?j.id:0,Je=Ne[Ve];Je===void 0&&(Je={},Ne[Ve]=Je);let Qe=Je[ke.id];Qe===void 0&&(Qe={},Je[ke.id]=Qe);let st=Qe[ze];return st===void 0&&(st=_(c()),Qe[ze]=st),st}function _(j){let he=[],ke=[],Me=[];for(let ze=0;ze<t;ze++)he[ze]=0,ke[ze]=0,Me[ze]=0;return{geometry:null,program:null,wireframe:!1,newAttributes:he,enabledAttributes:ke,attributeDivisors:Me,object:j,attributes:{},index:null}}function g(j,he,ke,Me){let ze=a.attributes,Ne=he.attributes,Ve=0,Je=ke.getAttributes();for(let Qe in Je)if(Je[Qe].location>=0){let We=ze[Qe],gt=Ne[Qe];if(gt===void 0&&(Qe==="instanceMatrix"&&j.instanceMatrix&&(gt=j.instanceMatrix),Qe==="instanceColor"&&j.instanceColor&&(gt=j.instanceColor)),We===void 0||We.attribute!==gt||gt&&We.data!==gt.data)return!0;Ve++}return a.attributesNum!==Ve||a.index!==Me}function E(j,he,ke,Me){let ze={},Ne=he.attributes,Ve=0,Je=ke.getAttributes();for(let Qe in Je)if(Je[Qe].location>=0){let We=Ne[Qe];We===void 0&&(Qe==="instanceMatrix"&&j.instanceMatrix&&(We=j.instanceMatrix),Qe==="instanceColor"&&j.instanceColor&&(We=j.instanceColor));let gt={};gt.attribute=We,We&&We.data&&(gt.data=We.data),ze[Qe]=gt,Ve++}a.attributes=ze,a.attributesNum=Ve,a.index=Me}function x(){let j=a.newAttributes;for(let he=0,ke=j.length;he<ke;he++)j[he]=0}function S(j){v(j,0)}function v(j,he){let ke=a.newAttributes,Me=a.enabledAttributes,ze=a.attributeDivisors;ke[j]=1,Me[j]===0&&(n.enableVertexAttribArray(j),Me[j]=1),ze[j]!==he&&(n.vertexAttribDivisor(j,he),ze[j]=he)}function M(){let j=a.newAttributes,he=a.enabledAttributes;for(let ke=0,Me=he.length;ke<Me;ke++)he[ke]!==j[ke]&&(n.disableVertexAttribArray(ke),he[ke]=0)}function O(j,he,ke,Me,ze,Ne,Ve){Ve===!0?n.vertexAttribIPointer(j,he,ke,ze,Ne):n.vertexAttribPointer(j,he,ke,Me,ze,Ne)}function k(j,he,ke,Me){x();let ze=Me.attributes,Ne=ke.getAttributes(),Ve=he.defaultAttributeValues;for(let Je in Ne){let Qe=Ne[Je];if(Qe.location>=0){let st=ze[Je];if(st===void 0&&(Je==="instanceMatrix"&&j.instanceMatrix&&(st=j.instanceMatrix),Je==="instanceColor"&&j.instanceColor&&(st=j.instanceColor)),st!==void 0){let We=st.normalized,gt=st.itemSize,Et=e.get(st);if(Et===void 0)continue;let jt=Et.buffer,zt=Et.type,Mt=Et.bytesPerElement,Xe=zt===n.INT||zt===n.UNSIGNED_INT||st.gpuType===Zx;if(st.isInterleavedBufferAttribute){let et=st.data,yt=et.stride,Wt=st.offset;if(et.isInstancedInterleavedBuffer){for(let Lt=0;Lt<Qe.locationSize;Lt++)v(Qe.location+Lt,et.meshPerAttribute);j.isInstancedMesh!==!0&&Me._maxInstanceCount===void 0&&(Me._maxInstanceCount=et.meshPerAttribute*et.count)}else for(let Lt=0;Lt<Qe.locationSize;Lt++)S(Qe.location+Lt);n.bindBuffer(n.ARRAY_BUFFER,jt);for(let Lt=0;Lt<Qe.locationSize;Lt++)O(Qe.location+Lt,gt/Qe.locationSize,zt,We,yt*Mt,(Wt+gt/Qe.locationSize*Lt)*Mt,Xe)}else{if(st.isInstancedBufferAttribute){for(let et=0;et<Qe.locationSize;et++)v(Qe.location+et,st.meshPerAttribute);j.isInstancedMesh!==!0&&Me._maxInstanceCount===void 0&&(Me._maxInstanceCount=st.meshPerAttribute*st.count)}else for(let et=0;et<Qe.locationSize;et++)S(Qe.location+et);n.bindBuffer(n.ARRAY_BUFFER,jt);for(let et=0;et<Qe.locationSize;et++)O(Qe.location+et,gt/Qe.locationSize,zt,We,gt*Mt,gt/Qe.locationSize*et*Mt,Xe)}}else if(Ve!==void 0){let We=Ve[Je];if(We!==void 0)switch(We.length){case 2:n.vertexAttrib2fv(Qe.location,We);break;case 3:n.vertexAttrib3fv(Qe.location,We);break;case 4:n.vertexAttrib4fv(Qe.location,We);break;default:n.vertexAttrib1fv(Qe.location,We)}}}}M()}function q(){Z();for(let j in i){let he=i[j];for(let ke in he){let Me=he[ke];for(let ze in Me){let Ne=Me[ze];for(let Ve in Ne)p(Ne[Ve].object),delete Ne[Ve];delete Me[ze]}}delete i[j]}}function G(j){if(i[j.id]===void 0)return;let he=i[j.id];for(let ke in he){let Me=he[ke];for(let ze in Me){let Ne=Me[ze];for(let Ve in Ne)p(Ne[Ve].object),delete Ne[Ve];delete Me[ze]}}delete i[j.id]}function Q(j){for(let he in i){let ke=i[he];for(let Me in ke){let ze=ke[Me];if(ze[j.id]===void 0)continue;let Ne=ze[j.id];for(let Ve in Ne)p(Ne[Ve].object),delete Ne[Ve];delete ze[j.id]}}}function H(j){for(let he in i){let ke=i[he],Me=j.isInstancedMesh===!0?j.id:0,ze=ke[Me];if(ze!==void 0){for(let Ne in ze){let Ve=ze[Ne];for(let Je in Ve)p(Ve[Je].object),delete Ve[Je];delete ze[Ne]}delete ke[Me],Object.keys(ke).length===0&&delete i[he]}}}function Z(){te(),s=!0,a!==r&&(a=r,f(a.object))}function te(){r.geometry=null,r.program=null,r.wireframe=!1}return{setup:l,reset:Z,resetDefaultState:te,dispose:q,releaseStatesOfGeometry:G,releaseStatesOfObject:H,releaseStatesOfProgram:Q,initAttributes:x,enableAttribute:S,disableUnusedAttributes:M}}function xZ(n,e,t){let i;function r(c){i=c}function a(c,f){n.drawArrays(i,c,f),t.update(f,i,1)}function s(c,f,p){p!==0&&(n.drawArraysInstanced(i,c,f,p),t.update(f,i,p))}function l(c,f,p){if(p===0)return;e.get("WEBGL_multi_draw").multiDrawArraysWEBGL(i,c,0,f,0,p);let _=0;for(let g=0;g<p;g++)_+=f[g];t.update(_,i,1)}this.setMode=r,this.render=a,this.renderInstances=s,this.renderMultiDraw=l}function TZ(n,e,t,i){let r;function a(){if(r!==void 0)return r;if(e.has("EXT_texture_filter_anisotropic")===!0){let Q=e.get("EXT_texture_filter_anisotropic");r=n.getParameter(Q.MAX_TEXTURE_MAX_ANISOTROPY_EXT)}else r=0;return r}function s(Q){return!(Q!==wa&&i.convert(Q)!==n.getParameter(n.IMPLEMENTATION_COLOR_READ_FORMAT))}function l(Q){let H=Q===$l&&(e.has("EXT_color_buffer_half_float")||e.has("EXT_color_buffer_float"));return!(Q!==ja&&Q!==as&&!H&&i.convert(Q)!==n.getParameter(n.IMPLEMENTATION_COLOR_READ_TYPE))}function c(Q){if(Q==="highp"){if(n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.HIGH_FLOAT).precision>0&&n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.HIGH_FLOAT).precision>0)return"highp";Q="mediump"}return Q==="mediump"&&n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.MEDIUM_FLOAT).precision>0&&n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.MEDIUM_FLOAT).precision>0?"mediump":"lowp"}let f=t.precision!==void 0?t.precision:"highp",p=c(f);p!==f&&(Ft("WebGLRenderer:",f,"not supported, using",p,"instead."),f=p);let h=t.logarithmicDepthBuffer===!0,_=t.reversedDepthBuffer===!0&&e.has("EXT_clip_control");t.reversedDepthBuffer===!0&&_===!1&&Ft("WebGLRenderer: Unable to use reversed depth buffer due to missing EXT_clip_control extension. Fallback to default depth buffer.");let g=n.getParameter(n.MAX_TEXTURE_IMAGE_UNITS),E=n.getParameter(n.MAX_VERTEX_TEXTURE_IMAGE_UNITS),x=n.getParameter(n.MAX_TEXTURE_SIZE),S=n.getParameter(n.MAX_CUBE_MAP_TEXTURE_SIZE),v=n.getParameter(n.MAX_VERTEX_ATTRIBS),M=n.getParameter(n.MAX_VERTEX_UNIFORM_VECTORS),O=n.getParameter(n.MAX_VARYING_VECTORS),k=n.getParameter(n.MAX_FRAGMENT_UNIFORM_VECTORS),q=n.getParameter(n.MAX_SAMPLES),G=n.getParameter(n.SAMPLES);return{isWebGL2:!0,getMaxAnisotropy:a,getMaxPrecision:c,textureFormatReadable:s,textureTypeReadable:l,precision:f,logarithmicDepthBuffer:h,reversedDepthBuffer:_,maxTextures:g,maxVertexTextures:E,maxTextureSize:x,maxCubemapSize:S,maxAttributes:v,maxVertexUniforms:M,maxVaryings:O,maxFragmentUniforms:k,maxSamples:q,samples:G}}function MZ(n){let e=this,t=null,i=0,r=!1,a=!1,s=new fo,l=new In,c={value:null,needsUpdate:!1};this.uniform=c,this.numPlanes=0,this.numIntersection=0,this.init=function(h,_){let g=h.length!==0||_||i!==0||r;return r=_,i=h.length,g},this.beginShadows=function(){a=!0,p(null)},this.endShadows=function(){a=!1},this.setGlobalState=function(h,_){t=p(h,_,0)},this.setState=function(h,_,g){let E=h.clippingPlanes,x=h.clipIntersection,S=h.clipShadows,v=n.get(h);if(!r||E===null||E.length===0||a&&!S)a?p(null):f();else{let M=a?0:i,O=M*4,k=v.clippingState||null;c.value=k,k=p(E,_,O,g);for(let q=0;q!==O;++q)k[q]=t[q];v.clippingState=k,this.numIntersection=x?this.numPlanes:0,this.numPlanes+=M}};function f(){c.value!==t&&(c.value=t,c.needsUpdate=i>0),e.numPlanes=i,e.numIntersection=0}function p(h,_,g,E){let x=h!==null?h.length:0,S=null;if(x!==0){if(S=c.value,E!==!0||S===null){let v=g+x*4,M=_.matrixWorldInverse;l.getNormalMatrix(M),(S===null||S.length<v)&&(S=new Float32Array(v));for(let O=0,k=g;O!==x;++O,k+=4)s.copy(h[O]).applyMatrix4(M,l),s.normal.toArray(S,k),S[k+3]=s.constant}c.value=S,c.needsUpdate=!0}return e.numPlanes=x,e.numIntersection=0,S}}var ib=4,AZ=6,CZ=20,RZ=256,P1=new Gc,$5=new Vt,tD=null,nD=0,iD=0,rD=!1,IZ=new ve,R_=new ve,q1=class{constructor(e){this._renderer=e,this._pingPongRenderTarget=null,this._lodMax=0,this._cubeSize=0,this._sizeLods=[],this._lodMeshes=[],this._backgroundBox=null,this._cubemapMaterial=null,this._equirectMaterial=null,this._blurMaterial=null,this._ggxMaterial=null}fromScene(e,t=0,i=.1,r=100,a={}){let{size:s=256,position:l=IZ}=a;tD=this._renderer.getRenderTarget(),nD=this._renderer.getActiveCubeFace(),iD=this._renderer.getActiveMipmapLevel(),rD=this._renderer.xr.enabled,this._renderer.xr.enabled=!1,this._setSize(s);let c=this._allocateTargets();return c.depthBuffer=!0,this._sceneToCubeUV(e,i,r,c,l),t>0&&this._blur(c,0,0,t),this._applyPMREM(c),this._cleanup(c),c}fromEquirectangular(e,t=null){return this._fromTexture(e,t)}fromCubemap(e,t=null){return this._fromTexture(e,t)}compileCubemapShader(){this._cubemapMaterial===null&&(this._cubemapMaterial=t8(),this._compileMaterial(this._cubemapMaterial))}compileEquirectangularShader(){this._equirectMaterial===null&&(this._equirectMaterial=e8(),this._compileMaterial(this._equirectMaterial))}dispose(){this._dispose(),this._cubemapMaterial!==null&&this._cubemapMaterial.dispose(),this._equirectMaterial!==null&&this._equirectMaterial.dispose(),this._backgroundBox!==null&&(this._backgroundBox.geometry.dispose(),this._backgroundBox.material.dispose())}_setSize(e){this._lodMax=Math.floor(Math.log2(e)),this._cubeSize=Math.pow(2,this._lodMax)}_dispose(){this._blurMaterial!==null&&this._blurMaterial.dispose(),this._ggxMaterial!==null&&this._ggxMaterial.dispose(),this._pingPongRenderTarget!==null&&this._pingPongRenderTarget.dispose();for(let e=0;e<this._lodMeshes.length;e++)this._lodMeshes[e].geometry.dispose()}_cleanup(e){this._renderer.setRenderTarget(tD,nD,iD),this._renderer.xr.enabled=rD,e.scissorTest=!1,nb(e,0,0,e.width,e.height)}_fromTexture(e,t){e.mapping===Du||e.mapping===Jf?this._setSize(e.image.length===0?16:e.image[0].width||e.image[0].image.width):this._setSize(e.image.width/4),tD=this._renderer.getRenderTarget(),nD=this._renderer.getActiveCubeFace(),iD=this._renderer.getActiveMipmapLevel(),rD=this._renderer.xr.enabled,this._renderer.xr.enabled=!1;let i=t||this._allocateTargets();return this._textureToCubeUV(e,i),this._applyPMREM(i),this._cleanup(i),i}_allocateTargets(){let e=3*Math.max(this._cubeSize,112),t=4*this._cubeSize,i={magFilter:Ji,minFilter:Ji,generateMipmaps:!1,type:$l,format:wa,colorSpace:Oh,depthBuffer:!1},r=J5(e,t,i);if(this._pingPongRenderTarget===null||this._pingPongRenderTarget.width!==e||this._pingPongRenderTarget.height!==t){this._pingPongRenderTarget!==null&&this._dispose(),this._pingPongRenderTarget=J5(e,t,i);let{_lodMax:a}=this;({lodMeshes:this._lodMeshes,sizeLods:this._sizeLods}=LZ(a)),this._blurMaterial=kZ(a,e,t),this._ggxMaterial=NZ(a,e,t)}return r}_compileMaterial(e){let t=new dr(new Nn,e);this._renderer.compile(t,P1)}_sceneToCubeUV(e,t,i,r,a){let c=new yr(90,1,t,i),f=[1,-1,1,1,1,1],p=[1,1,1,-1,-1,-1],h=this._renderer,_=h.autoClear,g=h.toneMapping;h.getClearColor($5),h.toneMapping=_o,h.autoClear=!1,h.state.buffers.depth.getReversed()&&(h.setRenderTarget(r),h.clearDepth(),h.setRenderTarget(null)),this._backgroundBox===null&&(this._backgroundBox=new dr(new Bc,new Iu({name:"PMREM.Background",side:ss,depthWrite:!1,depthTest:!1})));let x=this._backgroundBox,S=x.material,v=!1,M=e.background;M?M.isColor&&(S.color.copy(M),e.background=null,v=!0):(S.color.copy($5),v=!0);for(let O=0;O<6;O++){let k=O%3;k===0?(c.up.set(0,f[O],0),c.position.set(a.x,a.y,a.z),c.lookAt(a.x+p[O],a.y,a.z)):k===1?(c.up.set(0,0,f[O]),c.position.set(a.x,a.y,a.z),c.lookAt(a.x,a.y+p[O],a.z)):(c.up.set(0,f[O],0),c.position.set(a.x,a.y,a.z),c.lookAt(a.x,a.y,a.z+p[O]));let q=this._cubeSize;nb(r,k*q,O>2?q:0,q,q),h.setRenderTarget(r),v&&h.render(x,c),h.render(e,c)}h.toneMapping=g,h.autoClear=_,e.background=M}_textureToCubeUV(e,t){let i=this._renderer,r=e.mapping===Du||e.mapping===Jf;r?(this._cubemapMaterial===null&&(this._cubemapMaterial=t8()),this._cubemapMaterial.uniforms.flipEnvMap.value=e.isRenderTargetTexture===!1?-1:1):this._equirectMaterial===null&&(this._equirectMaterial=e8());let a=r?this._cubemapMaterial:this._equirectMaterial,s=this._lodMeshes[0];s.material=a;let l=a.uniforms;l.envMap.value=e;let c=this._cubeSize;nb(t,0,0,3*c,2*c),i.setRenderTarget(t),i.render(s,P1)}_applyPMREM(e){let t=this._renderer,i=t.autoClear;t.autoClear=!1;let r=this._lodMeshes.length;for(let a=1;a<r;a++)this._applyGGXFilter(e,a-1,a);t.autoClear=i}_applyGGXFilter(e,t,i){let r=this._renderer,a=this._pingPongRenderTarget,s=this._ggxMaterial,l=this._lodMeshes[i];l.material=s;let c=s.uniforms,f=i/(this._lodMeshes.length-1),p=t/(this._lodMeshes.length-1),h=Math.sqrt(f*f-p*p),_=f*1.25,g=h*_,{_lodMax:E}=this,x=this._sizeLods[i],S=3*x*(i>E-ib?i-E+ib:0),v=4*(this._cubeSize-x);c.envMap.value=e.texture,c.roughness.value=g,c.mipInt.value=E-t,nb(a,S,v,3*x,2*x),r.setRenderTarget(a),r.render(l,P1),c.envMap.value=a.texture,c.roughness.value=0,c.mipInt.value=E-i,nb(e,S,v,3*x,2*x),r.setRenderTarget(e),r.render(l,P1)}_blur(e,t,i,r){let a=this._pingPongRenderTarget,s=Math.min(r,Math.PI)/Math.SQRT2;this._blurPass(e,a,t,i,s),this._blurPass(a,e,i,i,s)}_blurPass(e,t,i,r,a){let s=this._renderer,l=this._blurMaterial,c=this._lodMeshes[r];c.material=l;let f=l.uniforms;f.envMap.value=e.texture,f.sigma.value=a,f.mipInt.value=this._lodMax-i;let p=this._sizeLods[r],h=3*p*(r>this._lodMax-ib?r-this._lodMax+ib:0),_=4*(this._cubeSize-p);nb(t,h,_,3*p,2*p),s.setRenderTarget(t),s.render(c,P1)}};function LZ(n){let e=[],t=[],i=n,r=n-ib+1+AZ;for(let a=0;a<r;a++){let s=Math.pow(2,i);e.push(s);let l=1/(s-2),c=-l,f=1+l,p=[c,c,f,c,f,f,c,c,f,f,c,f],h=6,_=6,g=3,E=new Float32Array(g*_*h),x=new Float32Array(g*_*h);for(let v=0;v<h;v++){let M=v%3*2/3-1,O=v>2?0:-1,k=[M,O,0,M+2/3,O,0,M+2/3,O+1,0,M,O,0,M+2/3,O+1,0,M,O+1,0];E.set(k,g*_*v);for(let q=0;q<_;q++){let G=p[q*2]*2-1,Q=p[q*2+1]*2-1;v===0?R_.set(1,Q,G):v===1?R_.set(-G,1,-Q):v===2?R_.set(-G,Q,1):v===3?R_.set(-1,Q,-G):v===4?R_.set(-G,-1,Q):R_.set(G,Q,-1),R_.toArray(x,(v*_+q)*g)}}let S=new Nn;S.setAttribute("position",new Li(E,g)),S.setAttribute("outputDirection",new Li(x,g)),t.push(new dr(S,null)),i>ib&&i--}return{lodMeshes:t,sizeLods:e}}function J5(n,e,t){let i=new Va(n,e,t);return i.texture.mapping=x_,i.texture.name="PMREM.cubeUv",i.scissorTest=!0,i}function nb(n,e,t,i,r){n.viewport.set(e,t,i,r),n.scissor.set(e,t,i,r)}function NZ(n,e,t){return new Ga({name:"PMREMGGXConvolution",defines:{GGX_SAMPLES:RZ,CUBEUV_TEXEL_WIDTH:1/e,CUBEUV_TEXEL_HEIGHT:1/t,CUBEUV_MAX_MIP:`${n}.0`},uniforms:{envMap:{value:null},roughness:{value:0},mipInt:{value:0}},vertexShader:A2(),fragmentShader:`

			precision highp float;
			precision highp int;

			varying vec3 vOutputDirection;

			uniform sampler2D envMap;
			uniform float roughness;
			uniform float mipInt;

			#define ENVMAP_TYPE_CUBE_UV
			#include <cube_uv_reflection_fragment>

			#define PI 3.14159265359

			// Van der Corput radical inverse
			float radicalInverse_VdC(uint bits) {
				bits = (bits << 16u) | (bits >> 16u);
				bits = ((bits & 0x55555555u) << 1u) | ((bits & 0xAAAAAAAAu) >> 1u);
				bits = ((bits & 0x33333333u) << 2u) | ((bits & 0xCCCCCCCCu) >> 2u);
				bits = ((bits & 0x0F0F0F0Fu) << 4u) | ((bits & 0xF0F0F0F0u) >> 4u);
				bits = ((bits & 0x00FF00FFu) << 8u) | ((bits & 0xFF00FF00u) >> 8u);
				return float(bits) * 2.3283064365386963e-10; // / 0x100000000
			}

			// Hammersley sequence
			vec2 hammersley(uint i, uint N) {
				return vec2(float(i) / float(N), radicalInverse_VdC(i));
			}

			// GGX VNDF importance sampling (Eric Heitz 2018)
			// "Sampling the GGX Distribution of Visible Normals"
			// https://jcgt.org/published/0007/04/01/
			vec3 importanceSampleGGX_VNDF(vec2 Xi, vec3 V, float roughness) {
				float alpha = roughness * roughness;

				// Section 4.1: Orthonormal basis
				vec3 T1 = vec3(1.0, 0.0, 0.0);
				vec3 T2 = cross(V, T1);

				// Section 4.2: Parameterization of projected area
				float r = sqrt(Xi.x);
				float phi = 2.0 * PI * Xi.y;
				float t1 = r * cos(phi);
				float t2 = r * sin(phi);
				float s = 0.5 * (1.0 + V.z);
				t2 = (1.0 - s) * sqrt(1.0 - t1 * t1) + s * t2;

				// Section 4.3: Reprojection onto hemisphere
				vec3 Nh = t1 * T1 + t2 * T2 + sqrt(max(0.0, 1.0 - t1 * t1 - t2 * t2)) * V;

				// Section 3.4: Transform back to ellipsoid configuration
				return normalize(vec3(alpha * Nh.x, alpha * Nh.y, max(0.0, Nh.z)));
			}

			void main() {
				vec3 N = normalize(vOutputDirection);
				vec3 V = N; // Assume view direction equals normal for pre-filtering

				vec3 prefilteredColor = vec3(0.0);
				float totalWeight = 0.0;

				// For very low roughness, just sample the environment directly
				if (roughness < 0.001) {
					gl_FragColor = vec4(bilinearCubeUV(envMap, N, mipInt), 1.0);
					return;
				}

				// Tangent space basis for VNDF sampling
				vec3 up = abs(N.z) < 0.999 ? vec3(0.0, 0.0, 1.0) : vec3(1.0, 0.0, 0.0);
				vec3 tangent = normalize(cross(up, N));
				vec3 bitangent = cross(N, tangent);

				for(uint i = 0u; i < uint(GGX_SAMPLES); i++) {
					vec2 Xi = hammersley(i, uint(GGX_SAMPLES));

					// For PMREM, V = N, so in tangent space V is always (0, 0, 1)
					vec3 H_tangent = importanceSampleGGX_VNDF(Xi, vec3(0.0, 0.0, 1.0), roughness);

					// Transform H back to world space
					vec3 H = normalize(tangent * H_tangent.x + bitangent * H_tangent.y + N * H_tangent.z);
					vec3 L = normalize(2.0 * dot(V, H) * H - V);

					float NdotL = max(dot(N, L), 0.0);

					if(NdotL > 0.0) {
						// Sample environment at fixed mip level
						// VNDF importance sampling handles the distribution filtering
						vec3 sampleColor = bilinearCubeUV(envMap, L, mipInt);

						// Weight by NdotL for the split-sum approximation
						// VNDF PDF naturally accounts for the visible microfacet distribution
						prefilteredColor += sampleColor * NdotL;
						totalWeight += NdotL;
					}
				}

				if (totalWeight > 0.0) {
					prefilteredColor = prefilteredColor / totalWeight;
				}

				gl_FragColor = vec4(prefilteredColor, 1.0);
			}
		`,blending:Ou,depthTest:!1,depthWrite:!1})}function kZ(n,e,t){return new Ga({name:"SphericalGaussianBlur",defines:{SAMPLES:CZ,CUBEUV_TEXEL_WIDTH:1/e,CUBEUV_TEXEL_HEIGHT:1/t,CUBEUV_MAX_MIP:`${n}.0`},uniforms:{envMap:{value:null},sigma:{value:0},mipInt:{value:0}},vertexShader:A2(),fragmentShader:`

			precision highp float;
			precision highp int;

			varying vec3 vOutputDirection;

			uniform sampler2D envMap;
			uniform float sigma;
			uniform float mipInt;

			#define ENVMAP_TYPE_CUBE_UV
			#include <cube_uv_reflection_fragment>

			#define PI 3.14159265359
			#define GOLDEN_ANGLE 2.39996322973

			void main() {

				if ( sigma == 0.0 ) {

					gl_FragColor = vec4( bilinearCubeUV( envMap, vOutputDirection, mipInt ), 1.0 );
					return;

				}

				vec3 outputDirection = normalize( vOutputDirection );

				vec3 up = abs( outputDirection.z ) < 0.999 ? vec3( 0.0, 0.0, 1.0 ) : vec3( 1.0, 0.0, 0.0 );
				vec3 tangent = normalize( cross( up, outputDirection ) );
				vec3 bitangent = cross( outputDirection, tangent );

				// Truncate the kernel at three standard deviations or at the antipode.
				float thetaMax = min( 3.0 * sigma, PI );
				float truncation = 1.0 - exp( - 0.5 * thetaMax * thetaMax / ( sigma * sigma ) );

				vec3 accumColor = vec3( 0.0 );
				float accumWeight = 0.0;

				for ( int i = 0; i < SAMPLES; i ++ ) {

					// Stratified inverse-CDF sampling of the Gaussian, placed on a golden-angle spiral.
					float stratum = ( float( i ) + 0.5 ) / float( SAMPLES );
					float theta = sigma * sqrt( - 2.0 * log( 1.0 - stratum * truncation ) );
					float phi = float( i ) * GOLDEN_ANGLE;

					vec3 offset = cos( phi ) * tangent + sin( phi ) * bitangent;
					vec3 sampleDirection = cos( theta ) * outputDirection + sin( theta ) * offset;

					// Correct the planar sample density to solid angle.
					float weight = sin( theta ) / theta;

					accumColor += weight * bilinearCubeUV( envMap, sampleDirection, mipInt );
					accumWeight += weight;

				}

				gl_FragColor = vec4( accumColor / accumWeight, 1.0 );

			}
		`,blending:Ou,depthTest:!1,depthWrite:!1})}function e8(){return new Ga({name:"EquirectangularToCubeUV",uniforms:{envMap:{value:null}},vertexShader:A2(),fragmentShader:`

			precision mediump float;
			precision mediump int;

			varying vec3 vOutputDirection;

			uniform sampler2D envMap;

			#include <common>

			void main() {

				vec3 outputDirection = normalize( vOutputDirection );
				vec2 uv = equirectUv( outputDirection );

				gl_FragColor = vec4( texture2D ( envMap, uv ).rgb, 1.0 );

			}
		`,blending:Ou,depthTest:!1,depthWrite:!1})}function t8(){return new Ga({name:"CubemapToCubeUV",uniforms:{envMap:{value:null},flipEnvMap:{value:-1}},vertexShader:A2(),fragmentShader:`

			precision mediump float;
			precision mediump int;

			uniform float flipEnvMap;

			varying vec3 vOutputDirection;

			uniform samplerCube envMap;

			void main() {

				gl_FragColor = textureCube( envMap, vec3( flipEnvMap * vOutputDirection.x, vOutputDirection.yz ) );

			}
		`,blending:Ou,depthTest:!1,depthWrite:!1})}function A2(){return`

		precision mediump float;
		precision mediump int;

		attribute vec3 outputDirection;

		varying vec3 vOutputDirection;

		void main() {

			vOutputDirection = outputDirection;
			gl_Position = vec4( position, 1.0 );

		}
	`}var B1=class extends Va{constructor(e=1,t={}){super(e,e,t),this.isWebGLCubeRenderTarget=!0;let i={width:e,height:e,depth:1},r=[i,i,i,i,i,i];this.texture=new Uh(r),this._setTextureOptions(t),this.texture.isRenderTargetTexture=!0}fromEquirectangularTexture(e,t){this.texture.type=t.type,this.texture.colorSpace=t.colorSpace,this.texture.generateMipmaps=t.generateMipmaps,this.texture.minFilter=t.minFilter,this.texture.magFilter=t.magFilter;let i={uniforms:{tEquirect:{value:null}},vertexShader:`

				varying vec3 vWorldDirection;

				vec3 transformDirection( in vec3 dir, in mat4 matrix ) {

					return normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );

				}

				void main() {

					vWorldDirection = transformDirection( position, modelMatrix );

					#include <begin_vertex>
					#include <project_vertex>

				}
			`,fragmentShader:`

				uniform sampler2D tEquirect;

				varying vec3 vWorldDirection;

				#include <common>

				void main() {

					vec3 direction = normalize( vWorldDirection );

					vec2 sampleUV = equirectUv( direction );

					gl_FragColor = texture2D( tEquirect, sampleUV );

				}
			`},r=new Bc(5,5,5),a=new Ga({name:"CubemapFromEquirect",uniforms:C_(i.uniforms),vertexShader:i.vertexShader,fragmentShader:i.fragmentShader,side:ss,blending:Ou});a.uniforms.tEquirect.value=t;let s=new dr(r,a),l=t.minFilter;return t.minFilter===Fu&&(t.minFilter=Ji),new Vx(1,10,this).update(e,s),t.minFilter=l,s.geometry.dispose(),s.material.dispose(),this}clear(e,t=!0,i=!0,r=!0){let a=e.getRenderTarget();for(let s=0;s<6;s++)e.setRenderTarget(this,s),e.clear(t,i,r);e.setRenderTarget(a)}};function OZ(n){let e=new WeakMap,t=new WeakMap,i=null;function r(_,g=!1){return _==null?null:g?s(_):a(_)}function a(_){if(_&&_.isTexture){let g=_.mapping;if(g===j0||g===Q0)if(e.has(_)){let E=e.get(_).texture;return l(E,_.mapping)}else{let E=_.image;if(E&&E.height>0){let x=new B1(E.height);return x.fromEquirectangularTexture(n,_),e.set(_,x),_.addEventListener("dispose",f),l(x.texture,_.mapping)}else return null}}return _}function s(_){if(_&&_.isTexture){let g=_.mapping,E=g===j0||g===Q0,x=g===Du||g===Jf;if(E||x){let S=t.get(_),v=S!==void 0?S.texture.pmremVersion:0;if(_.isRenderTargetTexture&&_.pmremVersion!==v)return i===null&&(i=new q1(n)),S=E?i.fromEquirectangular(_,S):i.fromCubemap(_,S),S.texture.pmremVersion=_.pmremVersion,t.set(_,S),S.texture;if(S!==void 0)return S.texture;{let M=_.image;return E&&M&&M.height>0||x&&M&&c(M)?(i===null&&(i=new q1(n)),S=E?i.fromEquirectangular(_):i.fromCubemap(_),S.texture.pmremVersion=_.pmremVersion,t.set(_,S),_.addEventListener("dispose",p),S.texture):null}}}return _}function l(_,g){return g===j0?_.mapping=Du:g===Q0&&(_.mapping=Jf),_}function c(_){let g=0,E=6;for(let x=0;x<E;x++)_[x]!==void 0&&g++;return g===E}function f(_){let g=_.target;g.removeEventListener("dispose",f);let E=e.get(g);E!==void 0&&(e.delete(g),E.dispose())}function p(_){let g=_.target;g.removeEventListener("dispose",p);let E=t.get(g);E!==void 0&&(t.delete(g),E.dispose())}function h(){e=new WeakMap,t=new WeakMap,i!==null&&(i.dispose(),i=null)}return{get:r,dispose:h}}function DZ(n){let e={};function t(i){if(e[i]!==void 0)return e[i];let r=n.getExtension(i);return e[i]=r,r}return{has:function(i){return t(i)!==null},init:function(){t("EXT_color_buffer_float"),t("WEBGL_clip_cull_distance"),t("OES_texture_float_linear"),t("EXT_color_buffer_half_float"),t("WEBGL_multisampled_render_to_texture"),t("WEBGL_render_shared_exponent")},get:function(i){let r=t(i);return r===null&&Uc("WebGLRenderer: "+i+" extension not supported."),r}}}function FZ(n,e,t,i){let r={},a=new WeakMap;function s(h){let _=h.target;_.index!==null&&e.remove(_.index);for(let E in _.attributes)e.remove(_.attributes[E]);_.removeEventListener("dispose",s),delete r[_.id];let g=a.get(_);g&&(e.remove(g),a.delete(_)),i.releaseStatesOfGeometry(_),_.isInstancedBufferGeometry===!0&&delete _._maxInstanceCount,t.memory.geometries--}function l(h,_){return r[_.id]===!0||(_.addEventListener("dispose",s),r[_.id]=!0,t.memory.geometries++),_}function c(h){let _=h.attributes;for(let g in _)e.update(_[g],n.ARRAY_BUFFER)}function f(h){let _=[],g=h.index,E=h.attributes.position,x=0;if(E===void 0)return;if(g!==null){let M=g.array;x=g.version;for(let O=0,k=M.length;O<k;O+=3){let q=M[O+0],G=M[O+1],Q=M[O+2];_.push(q,G,G,Q,Q,q)}}else{let M=E.array;x=E.version;for(let O=0,k=M.length/3-1;O<k;O+=3){let q=O+0,G=O+1,Q=O+2;_.push(q,G,G,Q,Q,q)}}let S=new(E.count>=65535?m0:p0)(_,1);S.version=x;let v=a.get(h);v&&e.remove(v),a.set(h,S)}function p(h){let _=a.get(h);if(_){let g=h.index;g!==null&&_.version<g.version&&f(h)}else f(h);return a.get(h)}return{get:l,update:c,getWireframeAttribute:p}}function PZ(n,e,t){let i;function r(h){i=h}let a,s;function l(h){a=h.type,s=h.bytesPerElement}function c(h,_){n.drawElements(i,_,a,h*s),t.update(_,i,1)}function f(h,_,g){g!==0&&(n.drawElementsInstanced(i,_,a,h*s,g),t.update(_,i,g))}function p(h,_,g){if(g===0)return;e.get("WEBGL_multi_draw").multiDrawElementsWEBGL(i,_,0,a,h,0,g);let x=0;for(let S=0;S<g;S++)x+=_[S];t.update(x,i,1)}this.setMode=r,this.setIndex=l,this.render=c,this.renderInstances=f,this.renderMultiDraw=p}function UZ(n){let e={geometries:0,textures:0},t={frame:0,calls:0,triangles:0,points:0,lines:0};function i(a,s,l){switch(t.calls++,s){case n.TRIANGLES:t.triangles+=l*(a/3);break;case n.LINES:t.lines+=l*(a/2);break;case n.LINE_STRIP:t.lines+=l*(a-1);break;case n.LINE_LOOP:t.lines+=l*a;break;case n.POINTS:t.points+=l*a;break;default:cn("WebGLInfo: Unknown draw mode:",s);break}}function r(){t.calls=0,t.triangles=0,t.points=0,t.lines=0}return{memory:e,render:t,programs:null,autoReset:!0,reset:r,update:i}}function zZ(n,e,t){let i=new WeakMap,r=new Ni;function a(s,l,c){let f=s.morphTargetInfluences,p=l.morphAttributes.position||l.morphAttributes.normal||l.morphAttributes.color,h=p!==void 0?p.length:0,_=i.get(l);if(_===void 0||_.count!==h){let Z=function(){Q.dispose(),i.delete(l),l.removeEventListener("dispose",Z)};_!==void 0&&_.texture.dispose();let g=l.morphAttributes.position!==void 0,E=l.morphAttributes.normal!==void 0,x=l.morphAttributes.color!==void 0,S=l.morphAttributes.position||[],v=l.morphAttributes.normal||[],M=l.morphAttributes.color||[],O=0;g===!0&&(O=1),E===!0&&(O=2),x===!0&&(O=3);let k=l.attributes.position.count*O,q=1;k>e.maxTextureSize&&(q=Math.ceil(k/e.maxTextureSize),k=e.maxTextureSize);let G=new Float32Array(k*q*4*h),Q=new l_(G,k,q,h);Q.type=as,Q.needsUpdate=!0;let H=O*4;for(let te=0;te<h;te++){let j=S[te],he=v[te],ke=M[te],Me=k*q*4*te;for(let ze=0;ze<j.count;ze++){let Ne=ze*H;g===!0&&(r.fromBufferAttribute(j,ze),G[Me+Ne+0]=r.x,G[Me+Ne+1]=r.y,G[Me+Ne+2]=r.z,G[Me+Ne+3]=0),E===!0&&(r.fromBufferAttribute(he,ze),G[Me+Ne+4]=r.x,G[Me+Ne+5]=r.y,G[Me+Ne+6]=r.z,G[Me+Ne+7]=0),x===!0&&(r.fromBufferAttribute(ke,ze),G[Me+Ne+8]=r.x,G[Me+Ne+9]=r.y,G[Me+Ne+10]=r.z,G[Me+Ne+11]=ke.itemSize===4?r.w:1)}}_={count:h,texture:Q,size:new ut(k,q)},i.set(l,_),l.addEventListener("dispose",Z)}if(s.isInstancedMesh===!0&&s.morphTexture!==null)c.getUniforms().setValue(n,"morphTexture",s.morphTexture,t);else{let g=0;for(let x=0;x<f.length;x++)g+=f[x];let E=l.morphTargetsRelative?1:1-g;c.getUniforms().setValue(n,"morphTargetBaseInfluence",E),c.getUniforms().setValue(n,"morphTargetInfluences",f)}c.getUniforms().setValue(n,"morphTargetsTexture",_.texture,t),c.getUniforms().setValue(n,"morphTargetsTextureSize",_.size)}return{update:a}}function qZ(n,e,t,i,r){let a=new WeakMap;function s(f){let p=r.render.frame,h=f.geometry,_=e.get(f,h);if(a.get(_)!==p&&(e.update(_),a.set(_,p)),f.isInstancedMesh&&(f.hasEventListener("dispose",c)===!1&&f.addEventListener("dispose",c),a.get(f)!==p&&(t.update(f.instanceMatrix,n.ARRAY_BUFFER),f.instanceColor!==null&&t.update(f.instanceColor,n.ARRAY_BUFFER),a.set(f,p))),f.isSkinnedMesh){let g=f.skeleton;a.get(g)!==p&&(g.update(),a.set(g,p))}return _}function l(){a=new WeakMap}function c(f){let p=f.target;p.removeEventListener("dispose",c),i.releaseStatesOfObject(p),t.remove(p.instanceMatrix),p.instanceColor!==null&&t.remove(p.instanceColor)}return{update:s,dispose:l}}var BZ={[l2]:"LINEAR_TONE_MAPPING",[u2]:"REINHARD_TONE_MAPPING",[c2]:"CINEON_TONE_MAPPING",[W0]:"ACES_FILMIC_TONE_MAPPING",[d2]:"AGX_TONE_MAPPING",[h2]:"NEUTRAL_TONE_MAPPING",[f2]:"CUSTOM_TONE_MAPPING"};function HZ(n,e,t,i,r,a){let s=new Va(e,t,{type:n,depthBuffer:r,stencilBuffer:a,samples:i?4:0,storeMultisampledDepthBuffer:!1,storeMultisampledStencilBuffer:!1,resolveDepthBuffer:!1,resolveStencilBuffer:!1}),l=null,c=null,f=new Nn;f.setAttribute("position",new an([-1,3,0,-1,-1,0,3,-1,0],3)),f.setAttribute("uv",new an([0,2,0,0,2,0],2));let p=new L0({uniforms:{tDiffuse:{value:null}},vertexShader:`
			precision highp float;

			uniform mat4 modelViewMatrix;
			uniform mat4 projectionMatrix;

			attribute vec3 position;
			attribute vec2 uv;

			varying vec2 vUv;

			void main() {
				vUv = uv;
				gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );
			}`,fragmentShader:`
			precision highp float;

			uniform sampler2D tDiffuse;

			varying vec2 vUv;

			#include <tonemapping_pars_fragment>
			#include <colorspace_pars_fragment>

			void main() {
				gl_FragColor = texture2D( tDiffuse, vUv );

				#ifdef LINEAR_TONE_MAPPING
					gl_FragColor.rgb = LinearToneMapping( gl_FragColor.rgb );
				#elif defined( REINHARD_TONE_MAPPING )
					gl_FragColor.rgb = ReinhardToneMapping( gl_FragColor.rgb );
				#elif defined( CINEON_TONE_MAPPING )
					gl_FragColor.rgb = CineonToneMapping( gl_FragColor.rgb );
				#elif defined( ACES_FILMIC_TONE_MAPPING )
					gl_FragColor.rgb = ACESFilmicToneMapping( gl_FragColor.rgb );
				#elif defined( AGX_TONE_MAPPING )
					gl_FragColor.rgb = AgXToneMapping( gl_FragColor.rgb );
				#elif defined( NEUTRAL_TONE_MAPPING )
					gl_FragColor.rgb = NeutralToneMapping( gl_FragColor.rgb );
				#elif defined( CUSTOM_TONE_MAPPING )
					gl_FragColor.rgb = CustomToneMapping( gl_FragColor.rgb );
				#endif

				#ifdef SRGB_TRANSFER
					gl_FragColor = sRGBTransferOETF( gl_FragColor );
				#endif
			}`,depthTest:!1,depthWrite:!1}),h=new dr(f,p),_=new Gc(-1,1,1,-1,0,1),g=null,E=null,x=!1,S,v=null,M=[],O=!1;this.setSize=function(k,q){s.setSize(k,q),l!==null&&l.setSize(k,q),c!==null&&c.setSize(k,q);for(let G=0;G<M.length;G++){let Q=M[G];Q.setSize&&Q.setSize(k,q)}},this.setEffects=function(k){M=k,O=M.length>0&&M[0].isRenderPass===!0;let q=s.width,G=s.height;M.length>0&&l===null&&(l=new Va(q,G,{type:$l,depthBuffer:!1,stencilBuffer:!1}),c=new Va(q,G,{type:$l,depthBuffer:!1,stencilBuffer:!1}));for(let Q=0;Q<M.length;Q++){let H=M[Q];H.setSize&&H.setSize(q,G)}},this.begin=function(k,q){if(x||k.toneMapping===_o&&M.length===0)return!1;if(v=q,q!==null){let G=q.width,Q=q.height;(s.width!==G||s.height!==Q)&&this.setSize(G,Q)}return O===!1&&k.setRenderTarget(s),S=k.toneMapping,k.toneMapping=_o,!0},this.hasRenderPass=function(){return O},this.end=function(k,q){k.toneMapping=S,x=!0;let G=s,Q=l;for(let H=0;H<M.length;H++){let Z=M[H];Z.enabled!==!1&&(Z.render(k,Q,G,q),Z.needsSwap!==!1&&(G=Q,Q=Q===l?c:l))}if(g!==k.outputColorSpace||E!==k.toneMapping){g=k.outputColorSpace,E=k.toneMapping,p.defines={},Gn.getTransfer(g)===xi&&(p.defines.SRGB_TRANSFER="");let H=BZ[E];H&&(p.defines[H]=""),p.needsUpdate=!0}p.uniforms.tDiffuse.value=G.texture,k.setRenderTarget(v),k.render(h,_),v=null,x=!1},this.isCompositing=function(){return x},this.dispose=function(){s.dispose(),l!==null&&l.dispose(),c!==null&&c.dispose(),f.dispose(),p.dispose()}}var S8=new Sr,oD=new jf(1,1),E8=new l_,w8=new u_,x8=new Uh,n8=[],i8=[],r8=new Float32Array(16),a8=new Float32Array(9),s8=new Float32Array(4);function ab(n,e,t){let i=n[0];if(i<=0||i>0)return n;let r=e*t,a=n8[r];if(a===void 0&&(a=new Float32Array(r),n8[r]=a),e!==0){i.toArray(a,0);for(let s=1,l=0;s!==e;++s)l+=t,n[s].toArray(a,l)}return a}function oa(n,e){if(n.length!==e.length)return!1;for(let t=0,i=n.length;t<i;t++)if(n[t]!==e[t])return!1;return!0}function la(n,e){for(let t=0,i=e.length;t<i;t++)n[t]=e[t]}function C2(n,e){let t=i8[e];t===void 0&&(t=new Int32Array(e),i8[e]=t);for(let i=0;i!==e;++i)t[i]=n.allocateTextureUnit();return t}function VZ(n,e){let t=this.cache;t[0]!==e&&(n.uniform1f(this.addr,e),t[0]=e)}function GZ(n,e){let t=this.cache;if(e.x!==void 0)(t[0]!==e.x||t[1]!==e.y)&&(n.uniform2f(this.addr,e.x,e.y),t[0]=e.x,t[1]=e.y);else{if(oa(t,e))return;n.uniform2fv(this.addr,e),la(t,e)}}function WZ(n,e){let t=this.cache;if(e.x!==void 0)(t[0]!==e.x||t[1]!==e.y||t[2]!==e.z)&&(n.uniform3f(this.addr,e.x,e.y,e.z),t[0]=e.x,t[1]=e.y,t[2]=e.z);else if(e.r!==void 0)(t[0]!==e.r||t[1]!==e.g||t[2]!==e.b)&&(n.uniform3f(this.addr,e.r,e.g,e.b),t[0]=e.r,t[1]=e.g,t[2]=e.b);else{if(oa(t,e))return;n.uniform3fv(this.addr,e),la(t,e)}}function jZ(n,e){let t=this.cache;if(e.x!==void 0)(t[0]!==e.x||t[1]!==e.y||t[2]!==e.z||t[3]!==e.w)&&(n.uniform4f(this.addr,e.x,e.y,e.z,e.w),t[0]=e.x,t[1]=e.y,t[2]=e.z,t[3]=e.w);else{if(oa(t,e))return;n.uniform4fv(this.addr,e),la(t,e)}}function QZ(n,e){let t=this.cache,i=e.elements;if(i===void 0){if(oa(t,e))return;n.uniformMatrix2fv(this.addr,!1,e),la(t,e)}else{if(oa(t,i))return;s8.set(i),n.uniformMatrix2fv(this.addr,!1,s8),la(t,i)}}function XZ(n,e){let t=this.cache,i=e.elements;if(i===void 0){if(oa(t,e))return;n.uniformMatrix3fv(this.addr,!1,e),la(t,e)}else{if(oa(t,i))return;a8.set(i),n.uniformMatrix3fv(this.addr,!1,a8),la(t,i)}}function YZ(n,e){let t=this.cache,i=e.elements;if(i===void 0){if(oa(t,e))return;n.uniformMatrix4fv(this.addr,!1,e),la(t,e)}else{if(oa(t,i))return;r8.set(i),n.uniformMatrix4fv(this.addr,!1,r8),la(t,i)}}function KZ(n,e){let t=this.cache;t[0]!==e&&(n.uniform1i(this.addr,e),t[0]=e)}function ZZ(n,e){let t=this.cache;if(e.x!==void 0)(t[0]!==e.x||t[1]!==e.y)&&(n.uniform2i(this.addr,e.x,e.y),t[0]=e.x,t[1]=e.y);else{if(oa(t,e))return;n.uniform2iv(this.addr,e),la(t,e)}}function $Z(n,e){let t=this.cache;if(e.x!==void 0)(t[0]!==e.x||t[1]!==e.y||t[2]!==e.z)&&(n.uniform3i(this.addr,e.x,e.y,e.z),t[0]=e.x,t[1]=e.y,t[2]=e.z);else{if(oa(t,e))return;n.uniform3iv(this.addr,e),la(t,e)}}function JZ(n,e){let t=this.cache;if(e.x!==void 0)(t[0]!==e.x||t[1]!==e.y||t[2]!==e.z||t[3]!==e.w)&&(n.uniform4i(this.addr,e.x,e.y,e.z,e.w),t[0]=e.x,t[1]=e.y,t[2]=e.z,t[3]=e.w);else{if(oa(t,e))return;n.uniform4iv(this.addr,e),la(t,e)}}function e$(n,e){let t=this.cache;t[0]!==e&&(n.uniform1ui(this.addr,e),t[0]=e)}function t$(n,e){let t=this.cache;if(e.x!==void 0)(t[0]!==e.x||t[1]!==e.y)&&(n.uniform2ui(this.addr,e.x,e.y),t[0]=e.x,t[1]=e.y);else{if(oa(t,e))return;n.uniform2uiv(this.addr,e),la(t,e)}}function n$(n,e){let t=this.cache;if(e.x!==void 0)(t[0]!==e.x||t[1]!==e.y||t[2]!==e.z)&&(n.uniform3ui(this.addr,e.x,e.y,e.z),t[0]=e.x,t[1]=e.y,t[2]=e.z);else{if(oa(t,e))return;n.uniform3uiv(this.addr,e),la(t,e)}}function i$(n,e){let t=this.cache;if(e.x!==void 0)(t[0]!==e.x||t[1]!==e.y||t[2]!==e.z||t[3]!==e.w)&&(n.uniform4ui(this.addr,e.x,e.y,e.z,e.w),t[0]=e.x,t[1]=e.y,t[2]=e.z,t[3]=e.w);else{if(oa(t,e))return;n.uniform4uiv(this.addr,e),la(t,e)}}function r$(n,e,t){let i=this.cache,r=t.allocateTextureUnit();i[0]!==r&&(n.uniform1i(this.addr,r),i[0]=r);let a;this.type===n.SAMPLER_2D_SHADOW?(oD.compareFunction=t.isReversedDepthBuffer()?D1:O1,a=oD):a=S8,t.setTexture2D(e||a,r)}function a$(n,e,t){let i=this.cache,r=t.allocateTextureUnit();i[0]!==r&&(n.uniform1i(this.addr,r),i[0]=r),t.setTexture3D(e||w8,r)}function s$(n,e,t){let i=this.cache,r=t.allocateTextureUnit();i[0]!==r&&(n.uniform1i(this.addr,r),i[0]=r),t.setTextureCube(e||x8,r)}function o$(n,e,t){let i=this.cache,r=t.allocateTextureUnit();i[0]!==r&&(n.uniform1i(this.addr,r),i[0]=r),t.setTexture2DArray(e||E8,r)}function l$(n){switch(n){case 5126:return VZ;case 35664:return GZ;case 35665:return WZ;case 35666:return jZ;case 35674:return QZ;case 35675:return XZ;case 35676:return YZ;case 5124:case 35670:return KZ;case 35667:case 35671:return ZZ;case 35668:case 35672:return $Z;case 35669:case 35673:return JZ;case 5125:return e$;case 36294:return t$;case 36295:return n$;case 36296:return i$;case 35678:case 36198:case 36298:case 36306:case 35682:return r$;case 35679:case 36299:case 36307:return a$;case 35680:case 36300:case 36308:case 36293:return s$;case 36289:case 36303:case 36311:case 36292:return o$}}function u$(n,e){n.uniform1fv(this.addr,e)}function c$(n,e){let t=ab(e,this.size,2);n.uniform2fv(this.addr,t)}function f$(n,e){let t=ab(e,this.size,3);n.uniform3fv(this.addr,t)}function d$(n,e){let t=ab(e,this.size,4);n.uniform4fv(this.addr,t)}function h$(n,e){let t=ab(e,this.size,4);n.uniformMatrix2fv(this.addr,!1,t)}function p$(n,e){let t=ab(e,this.size,9);n.uniformMatrix3fv(this.addr,!1,t)}function m$(n,e){let t=ab(e,this.size,16);n.uniformMatrix4fv(this.addr,!1,t)}function _$(n,e){n.uniform1iv(this.addr,e)}function g$(n,e){n.uniform2iv(this.addr,e)}function v$(n,e){n.uniform3iv(this.addr,e)}function y$(n,e){n.uniform4iv(this.addr,e)}function b$(n,e){n.uniform1uiv(this.addr,e)}function S$(n,e){n.uniform2uiv(this.addr,e)}function E$(n,e){n.uniform3uiv(this.addr,e)}function w$(n,e){n.uniform4uiv(this.addr,e)}function x$(n,e,t){let i=this.cache,r=e.length,a=C2(t,r);oa(i,a)||(n.uniform1iv(this.addr,a),la(i,a));let s;this.type===n.SAMPLER_2D_SHADOW?s=oD:s=S8;for(let l=0;l!==r;++l)t.setTexture2D(e[l]||s,a[l])}function T$(n,e,t){let i=this.cache,r=e.length,a=C2(t,r);oa(i,a)||(n.uniform1iv(this.addr,a),la(i,a));for(let s=0;s!==r;++s)t.setTexture3D(e[s]||w8,a[s])}function M$(n,e,t){let i=this.cache,r=e.length,a=C2(t,r);oa(i,a)||(n.uniform1iv(this.addr,a),la(i,a));for(let s=0;s!==r;++s)t.setTextureCube(e[s]||x8,a[s])}function A$(n,e,t){let i=this.cache,r=e.length,a=C2(t,r);oa(i,a)||(n.uniform1iv(this.addr,a),la(i,a));for(let s=0;s!==r;++s)t.setTexture2DArray(e[s]||E8,a[s])}function C$(n){switch(n){case 5126:return u$;case 35664:return c$;case 35665:return f$;case 35666:return d$;case 35674:return h$;case 35675:return p$;case 35676:return m$;case 5124:case 35670:return _$;case 35667:case 35671:return g$;case 35668:case 35672:return v$;case 35669:case 35673:return y$;case 5125:return b$;case 36294:return S$;case 36295:return E$;case 36296:return w$;case 35678:case 36198:case 36298:case 36306:case 35682:return x$;case 35679:case 36299:case 36307:return T$;case 35680:case 36300:case 36308:case 36293:return M$;case 36289:case 36303:case 36311:case 36292:return A$}}var lD=class{constructor(e,t,i){this.id=e,this.addr=i,this.cache=[],this.type=t.type,this.setValue=l$(t.type)}},uD=class{constructor(e,t,i){this.id=e,this.addr=i,this.cache=[],this.type=t.type,this.size=t.size,this.setValue=C$(t.type)}},cD=class{constructor(e){this.id=e,this.seq=[],this.map={}}setValue(e,t,i){let r=this.seq;for(let a=0,s=r.length;a!==s;++a){let l=r[a];l.setValue(e,t[l.id],i)}}},aD=/(\w+)(\])?(\[|\.)?/g;function o8(n,e){n.seq.push(e),n.map[e.id]=e}function R$(n,e,t){let i=n.name,r=i.length;for(aD.lastIndex=0;;){let a=aD.exec(i),s=aD.lastIndex,l=a[1],c=a[2]==="]",f=a[3];if(c&&(l=l|0),f===void 0||f==="["&&s+2===r){o8(t,f===void 0?new lD(l,n,e):new uD(l,n,e));break}else{let h=t.map[l];h===void 0&&(h=new cD(l),o8(t,h)),t=h}}}var rb=class{constructor(e,t){this.seq=[],this.map={};let i=e.getProgramParameter(t,e.ACTIVE_UNIFORMS);for(let s=0;s<i;++s){let l=e.getActiveUniform(t,s),c=e.getUniformLocation(t,l.name);R$(l,c,this)}let r=[],a=[];for(let s of this.seq)s.type===e.SAMPLER_2D_SHADOW||s.type===e.SAMPLER_CUBE_SHADOW||s.type===e.SAMPLER_2D_ARRAY_SHADOW?r.push(s):a.push(s);r.length>0&&(this.seq=r.concat(a))}setValue(e,t,i,r){let a=this.map[t];a!==void 0&&a.setValue(e,i,r)}setOptional(e,t,i){let r=t[i];r!==void 0&&this.setValue(e,i,r)}static upload(e,t,i,r){for(let a=0,s=t.length;a!==s;++a){let l=t[a],c=i[l.id];c.needsUpdate!==!1&&l.setValue(e,c.value,r)}}static seqWithValue(e,t){let i=[];for(let r=0,a=e.length;r!==a;++r){let s=e[r];s.id in t&&i.push(s)}return i}};function l8(n,e,t){let i=n.createShader(e);return n.shaderSource(i,t),n.compileShader(i),i}var I$=37297,L$=0;function N$(n,e){let t=n.split(`
`),i=[],r=Math.max(e-6,0),a=Math.min(e+6,t.length);for(let s=r;s<a;s++){let l=s+1;i.push(`${l===e?">":" "} ${l}: ${t[s]}`)}return i.join(`
`)}var u8=new In;function k$(n){Gn._getMatrix(u8,Gn.workingColorSpace,n);let e=`mat3( ${u8.elements.map(t=>t.toFixed(4))} )`;switch(Gn.getTransfer(n)){case c0:return[e,"LinearTransferOETF"];case xi:return[e,"sRGBTransferOETF"];default:return Ft("WebGLProgram: Unsupported color space: ",n),[e,"LinearTransferOETF"]}}function c8(n,e,t){let i=n.getShaderParameter(e,n.COMPILE_STATUS),a=(n.getShaderInfoLog(e)||"").trim();if(i&&a==="")return"";let s=/ERROR: 0:(\d+)/.exec(a);if(s){let l=parseInt(s[1]);return t.toUpperCase()+`

`+a+`

`+N$(n.getShaderSource(e),l)}else return a}function O$(n,e){let t=k$(e);return[`vec4 ${n}( vec4 value ) {`,`	return ${t[1]}( vec4( value.rgb * ${t[0]}, value.a ) );`,"}"].join(`
`)}var D$={[l2]:"Linear",[u2]:"Reinhard",[c2]:"Cineon",[W0]:"ACESFilmic",[d2]:"AgX",[h2]:"Neutral",[f2]:"Custom"};function F$(n,e){let t=D$[e];return t===void 0?(Ft("WebGLProgram: Unsupported toneMapping:",e),"vec3 "+n+"( vec3 color ) { return LinearToneMapping( color ); }"):"vec3 "+n+"( vec3 color ) { return "+t+"ToneMapping( color ); }"}var M2=new ve;function P$(){Gn.getLuminanceCoefficients(M2);let n=M2.x.toFixed(4),e=M2.y.toFixed(4),t=M2.z.toFixed(4);return["float luminance( const in vec3 rgb ) {",`	const vec3 weights = vec3( ${n}, ${e}, ${t} );`,"	return dot( weights, rgb );","}"].join(`
`)}function U$(n){return[n.extensionClipCullDistance?"#extension GL_ANGLE_clip_cull_distance : require":"",n.extensionMultiDraw?"#extension GL_ANGLE_multi_draw : require":""].filter(z1).join(`
`)}function z$(n){let e=[];for(let t in n){let i=n[t];i!==!1&&e.push("#define "+t+" "+i)}return e.join(`
`)}function q$(n,e){let t={},i=n.getProgramParameter(e,n.ACTIVE_ATTRIBUTES);for(let r=0;r<i;r++){let a=n.getActiveAttrib(e,r),s=a.name,l=1;a.type===n.FLOAT_MAT2&&(l=2),a.type===n.FLOAT_MAT3&&(l=3),a.type===n.FLOAT_MAT4&&(l=4),t[s]={type:a.type,location:n.getAttribLocation(e,s),locationSize:l}}return t}function z1(n){return n!==""}function f8(n,e){let t=e.numSpotLightShadows+e.numSpotLightMaps-e.numSpotLightShadowsWithMaps;return n.replace(/NUM_SUN_LIGHTS/g,e.numSunLights).replace(/NUM_DIR_LIGHTS/g,e.numDirLights).replace(/NUM_SPOT_LIGHTS/g,e.numSpotLights).replace(/NUM_SPOT_LIGHT_MAPS/g,e.numSpotLightMaps).replace(/NUM_SPOT_LIGHT_COORDS/g,t).replace(/NUM_RECT_AREA_LIGHTS/g,e.numRectAreaLights).replace(/NUM_POINT_LIGHTS/g,e.numPointLights).replace(/NUM_HEMI_LIGHTS/g,e.numHemiLights).replace(/NUM_SUN_LIGHT_SHADOWS/g,e.numSunLightShadows).replace(/NUM_DIR_LIGHT_SHADOWS/g,e.numDirLightShadows).replace(/NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS/g,e.numSpotLightShadowsWithMaps).replace(/NUM_SPOT_LIGHT_SHADOWS/g,e.numSpotLightShadows).replace(/NUM_POINT_LIGHT_SHADOWS/g,e.numPointLightShadows)}function d8(n,e){return n.replace(/NUM_CLIPPING_PLANES/g,e.numClippingPlanes).replace(/UNION_CLIPPING_PLANES/g,e.numClippingPlanes-e.numClipIntersection)}var B$=/^[ \t]*#include +<([\w\d./]+)>/gm;function fD(n){return n.replace(B$,V$)}var H$=new Map;function V$(n,e){let t=Bn[e];if(t===void 0){let i=H$.get(e);if(i!==void 0)t=Bn[i],Ft('WebGLRenderer: Shader chunk "%s" has been deprecated. Use "%s" instead.',e,i);else throw new Error("THREE.WebGLProgram: Can not resolve #include <"+e+">")}return fD(t)}var G$=/#pragma unroll_loop_start\s+for\s*\(\s*int\s+i\s*=\s*(\d+)\s*;\s*i\s*<\s*(\d+)\s*;\s*i\s*\+\+\s*\)\s*{([\s\S]+?)}\s+#pragma unroll_loop_end/g;function h8(n){return n.replace(G$,W$)}function W$(n,e,t,i){let r="";for(let a=parseInt(e);a<parseInt(t);a++)r+=i.replace(/\[\s*i\s*\]/g,"[ "+a+" ]").replace(/UNROLLED_LOOP_INDEX/g,a);return r}function p8(n){let e=`precision ${n.precision} float;
	precision ${n.precision} int;
	precision ${n.precision} sampler2D;
	precision ${n.precision} samplerCube;
	precision ${n.precision} sampler3D;
	precision ${n.precision} sampler2DArray;
	precision ${n.precision} sampler2DShadow;
	precision ${n.precision} samplerCubeShadow;
	precision ${n.precision} sampler2DArrayShadow;
	precision ${n.precision} isampler2D;
	precision ${n.precision} isampler3D;
	precision ${n.precision} isamplerCube;
	precision ${n.precision} isampler2DArray;
	precision ${n.precision} usampler2D;
	precision ${n.precision} usampler3D;
	precision ${n.precision} usamplerCube;
	precision ${n.precision} usampler2DArray;
	`;return n.precision==="highp"?e+=`
#define HIGH_PRECISION`:n.precision==="mediump"?e+=`
#define MEDIUM_PRECISION`:n.precision==="lowp"&&(e+=`
#define LOW_PRECISION`),e}var j$={[Gh]:"SHADOWMAP_TYPE_PCF",[Zf]:"SHADOWMAP_TYPE_VSM"};function Q$(n){return j$[n.shadowMapType]||"SHADOWMAP_TYPE_BASIC"}var X$={[Du]:"ENVMAP_TYPE_CUBE",[Jf]:"ENVMAP_TYPE_CUBE",[x_]:"ENVMAP_TYPE_CUBE_UV"};function Y$(n){return n.envMap===!1?"ENVMAP_TYPE_CUBE":X$[n.envMapMode]||"ENVMAP_TYPE_CUBE"}var K$={[Jf]:"ENVMAP_MODE_REFRACTION"};function Z$(n){return n.envMap===!1?"ENVMAP_MODE_REFLECTION":K$[n.envMapMode]||"ENVMAP_MODE_REFLECTION"}var $$={[G0]:"ENVMAP_BLENDING_MULTIPLY",[NO]:"ENVMAP_BLENDING_MIX",[kO]:"ENVMAP_BLENDING_ADD"};function J$(n){return n.envMap===!1?"ENVMAP_BLENDING_NONE":$$[n.combine]||"ENVMAP_BLENDING_NONE"}function eJ(n){let e=n.envMapCubeUVHeight;if(e===null)return null;let t=Math.log2(e)-2,i=1/e;return{texelWidth:1/(3*Math.max(Math.pow(2,t),112)),texelHeight:i,maxMip:t}}function tJ(n,e,t,i){let r=n.getContext(),a=t.defines,s=t.vertexShader,l=t.fragmentShader,c=Q$(t),f=Y$(t),p=Z$(t),h=J$(t),_=eJ(t),g=U$(t),E=z$(a),x=r.createProgram(),S,v,M=t.glslVersion?"#version "+t.glslVersion+`
`:"";t.isRawShaderMaterial?(S=["#define SHADER_TYPE "+t.shaderType,"#define SHADER_NAME "+t.shaderName,E].filter(z1).join(`
`),S.length>0&&(S+=`
`),v=["#define SHADER_TYPE "+t.shaderType,"#define SHADER_NAME "+t.shaderName,E].filter(z1).join(`
`),v.length>0&&(v+=`
`)):(S=[p8(t),"#define SHADER_TYPE "+t.shaderType,"#define SHADER_NAME "+t.shaderName,E,t.extensionClipCullDistance?"#define USE_CLIP_DISTANCE":"",t.batching?"#define USE_BATCHING":"",t.batchingColor?"#define USE_BATCHING_COLOR":"",t.instancing?"#define USE_INSTANCING":"",t.instancingColor?"#define USE_INSTANCING_COLOR":"",t.instancingMorph?"#define USE_INSTANCING_MORPH":"",t.useFog&&t.fog?"#define USE_FOG":"",t.useFog&&t.fogExp2?"#define FOG_EXP2":"",t.map?"#define USE_MAP":"",t.envMap?"#define USE_ENVMAP":"",t.envMap?"#define "+p:"",t.lightMap?"#define USE_LIGHTMAP":"",t.aoMap?"#define USE_AOMAP":"",t.bumpMap?"#define USE_BUMPMAP":"",t.normalMap?"#define USE_NORMALMAP":"",t.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",t.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",t.displacementMap?"#define USE_DISPLACEMENTMAP":"",t.emissiveMap?"#define USE_EMISSIVEMAP":"",t.anisotropy?"#define USE_ANISOTROPY":"",t.anisotropyMap?"#define USE_ANISOTROPYMAP":"",t.clearcoatMap?"#define USE_CLEARCOATMAP":"",t.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",t.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",t.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",t.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",t.specularMap?"#define USE_SPECULARMAP":"",t.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",t.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",t.roughnessMap?"#define USE_ROUGHNESSMAP":"",t.metalnessMap?"#define USE_METALNESSMAP":"",t.alphaMap?"#define USE_ALPHAMAP":"",t.alphaHash?"#define USE_ALPHAHASH":"",t.transmission?"#define USE_TRANSMISSION":"",t.transmissionMap?"#define USE_TRANSMISSIONMAP":"",t.thicknessMap?"#define USE_THICKNESSMAP":"",t.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",t.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",t.mapUv?"#define MAP_UV "+t.mapUv:"",t.alphaMapUv?"#define ALPHAMAP_UV "+t.alphaMapUv:"",t.lightMapUv?"#define LIGHTMAP_UV "+t.lightMapUv:"",t.aoMapUv?"#define AOMAP_UV "+t.aoMapUv:"",t.emissiveMapUv?"#define EMISSIVEMAP_UV "+t.emissiveMapUv:"",t.bumpMapUv?"#define BUMPMAP_UV "+t.bumpMapUv:"",t.normalMapUv?"#define NORMALMAP_UV "+t.normalMapUv:"",t.displacementMapUv?"#define DISPLACEMENTMAP_UV "+t.displacementMapUv:"",t.metalnessMapUv?"#define METALNESSMAP_UV "+t.metalnessMapUv:"",t.roughnessMapUv?"#define ROUGHNESSMAP_UV "+t.roughnessMapUv:"",t.anisotropyMapUv?"#define ANISOTROPYMAP_UV "+t.anisotropyMapUv:"",t.clearcoatMapUv?"#define CLEARCOATMAP_UV "+t.clearcoatMapUv:"",t.clearcoatNormalMapUv?"#define CLEARCOAT_NORMALMAP_UV "+t.clearcoatNormalMapUv:"",t.clearcoatRoughnessMapUv?"#define CLEARCOAT_ROUGHNESSMAP_UV "+t.clearcoatRoughnessMapUv:"",t.iridescenceMapUv?"#define IRIDESCENCEMAP_UV "+t.iridescenceMapUv:"",t.iridescenceThicknessMapUv?"#define IRIDESCENCE_THICKNESSMAP_UV "+t.iridescenceThicknessMapUv:"",t.sheenColorMapUv?"#define SHEEN_COLORMAP_UV "+t.sheenColorMapUv:"",t.sheenRoughnessMapUv?"#define SHEEN_ROUGHNESSMAP_UV "+t.sheenRoughnessMapUv:"",t.specularMapUv?"#define SPECULARMAP_UV "+t.specularMapUv:"",t.specularColorMapUv?"#define SPECULAR_COLORMAP_UV "+t.specularColorMapUv:"",t.specularIntensityMapUv?"#define SPECULAR_INTENSITYMAP_UV "+t.specularIntensityMapUv:"",t.transmissionMapUv?"#define TRANSMISSIONMAP_UV "+t.transmissionMapUv:"",t.thicknessMapUv?"#define THICKNESSMAP_UV "+t.thicknessMapUv:"",t.vertexTangents&&t.flatShading===!1?"#define USE_TANGENT":"",t.vertexNormals?"#define HAS_NORMAL":"",t.vertexColors?"#define USE_COLOR":"",t.vertexAlphas?"#define USE_COLOR_ALPHA":"",t.vertexUv1s?"#define USE_UV1":"",t.vertexUv2s?"#define USE_UV2":"",t.vertexUv3s?"#define USE_UV3":"",t.pointsUvs?"#define USE_POINTS_UV":"",t.flatShading?"#define FLAT_SHADED":"",t.skinning?"#define USE_SKINNING":"",t.morphTargets?"#define USE_MORPHTARGETS":"",t.morphNormals&&t.flatShading===!1?"#define USE_MORPHNORMALS":"",t.morphColors?"#define USE_MORPHCOLORS":"",t.morphTargetsCount>0?"#define MORPHTARGETS_TEXTURE_STRIDE "+t.morphTextureStride:"",t.morphTargetsCount>0?"#define MORPHTARGETS_COUNT "+t.morphTargetsCount:"",t.doubleSided?"#define DOUBLE_SIDED":"",t.flipSided?"#define FLIP_SIDED":"",t.shadowMapEnabled?"#define USE_SHADOWMAP":"",t.shadowMapEnabled?"#define "+c:"",t.sizeAttenuation?"#define USE_SIZEATTENUATION":"",t.numLightProbes>0?"#define USE_LIGHT_PROBES":"",t.logarithmicDepthBuffer?"#define USE_LOGARITHMIC_DEPTH_BUFFER":"",t.reversedDepthBuffer?"#define USE_REVERSED_DEPTH_BUFFER":"","uniform mat4 modelMatrix;","uniform mat4 modelViewMatrix;","uniform mat4 projectionMatrix;","uniform mat4 viewMatrix;","uniform mat3 normalMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;","#ifdef USE_INSTANCING","	attribute mat4 instanceMatrix;","#endif","#ifdef USE_INSTANCING_COLOR","	attribute vec3 instanceColor;","#endif","#ifdef USE_INSTANCING_MORPH","	uniform sampler2D morphTexture;","#endif","attribute vec3 position;","attribute vec3 normal;","attribute vec2 uv;","#ifdef USE_UV1","	attribute vec2 uv1;","#endif","#ifdef USE_UV2","	attribute vec2 uv2;","#endif","#ifdef USE_UV3","	attribute vec2 uv3;","#endif","#ifdef USE_TANGENT","	attribute vec4 tangent;","#endif","#if defined( USE_COLOR_ALPHA )","	attribute vec4 color;","#elif defined( USE_COLOR )","	attribute vec3 color;","#endif","#ifdef USE_SKINNING","	attribute vec4 skinIndex;","	attribute vec4 skinWeight;","#endif",`
`].filter(z1).join(`
`),v=[p8(t),"#define SHADER_TYPE "+t.shaderType,"#define SHADER_NAME "+t.shaderName,E,t.useFog&&t.fog?"#define USE_FOG":"",t.useFog&&t.fogExp2?"#define FOG_EXP2":"",t.alphaToCoverage?"#define ALPHA_TO_COVERAGE":"",t.map?"#define USE_MAP":"",t.matcap?"#define USE_MATCAP":"",t.envMap?"#define USE_ENVMAP":"",t.envMap?"#define "+f:"",t.envMap?"#define "+p:"",t.envMap?"#define "+h:"",_?"#define CUBEUV_TEXEL_WIDTH "+_.texelWidth:"",_?"#define CUBEUV_TEXEL_HEIGHT "+_.texelHeight:"",_?"#define CUBEUV_MAX_MIP "+_.maxMip+".0":"",t.lightMap?"#define USE_LIGHTMAP":"",t.aoMap?"#define USE_AOMAP":"",t.bumpMap?"#define USE_BUMPMAP":"",t.normalMap?"#define USE_NORMALMAP":"",t.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",t.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",t.packedNormalMap?"#define USE_PACKED_NORMALMAP":"",t.emissiveMap?"#define USE_EMISSIVEMAP":"",t.anisotropy?"#define USE_ANISOTROPY":"",t.anisotropyMap?"#define USE_ANISOTROPYMAP":"",t.clearcoat?"#define USE_CLEARCOAT":"",t.clearcoatMap?"#define USE_CLEARCOATMAP":"",t.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",t.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",t.dispersion?"#define USE_DISPERSION":"",t.retroreflection?"#define USE_RETROREFLECTION":"",t.iridescence?"#define USE_IRIDESCENCE":"",t.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",t.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",t.specularMap?"#define USE_SPECULARMAP":"",t.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",t.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",t.roughnessMap?"#define USE_ROUGHNESSMAP":"",t.metalnessMap?"#define USE_METALNESSMAP":"",t.alphaMap?"#define USE_ALPHAMAP":"",t.alphaTest?"#define USE_ALPHATEST":"",t.alphaHash?"#define USE_ALPHAHASH":"",t.sheen?"#define USE_SHEEN":"",t.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",t.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",t.transmission?"#define USE_TRANSMISSION":"",t.transmissionMap?"#define USE_TRANSMISSIONMAP":"",t.thicknessMap?"#define USE_THICKNESSMAP":"",t.vertexTangents&&t.flatShading===!1?"#define USE_TANGENT":"",t.vertexColors||t.instancingColor?"#define USE_COLOR":"",t.vertexAlphas||t.batchingColor?"#define USE_COLOR_ALPHA":"",t.vertexUv1s?"#define USE_UV1":"",t.vertexUv2s?"#define USE_UV2":"",t.vertexUv3s?"#define USE_UV3":"",t.pointsUvs?"#define USE_POINTS_UV":"",t.gradientMap?"#define USE_GRADIENTMAP":"",t.flatShading?"#define FLAT_SHADED":"",t.doubleSided?"#define DOUBLE_SIDED":"",t.flipSided?"#define FLIP_SIDED":"",t.shadowMapEnabled?"#define USE_SHADOWMAP":"",t.shadowMapEnabled?"#define "+c:"",t.premultipliedAlpha?"#define PREMULTIPLIED_ALPHA":"",t.numLightProbes>0?"#define USE_LIGHT_PROBES":"",t.numLightProbeGrids>0?"#define USE_LIGHT_PROBES_GRID":"",t.decodeVideoTexture?"#define DECODE_VIDEO_TEXTURE":"",t.decodeVideoTextureEmissive?"#define DECODE_VIDEO_TEXTURE_EMISSIVE":"",t.logarithmicDepthBuffer?"#define USE_LOGARITHMIC_DEPTH_BUFFER":"",t.reversedDepthBuffer?"#define USE_REVERSED_DEPTH_BUFFER":"","uniform mat4 viewMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;",t.toneMapping!==_o?"#define TONE_MAPPING":"",t.toneMapping!==_o?Bn.tonemapping_pars_fragment:"",t.toneMapping!==_o?F$("toneMapping",t.toneMapping):"",t.dithering?"#define DITHERING":"",t.opaque?"#define OPAQUE":"",Bn.colorspace_pars_fragment,O$("linearToOutputTexel",t.outputColorSpace),P$(),t.useDepthPacking?"#define DEPTH_PACKING "+t.depthPacking:"",`
`].filter(z1).join(`
`)),s=fD(s),s=f8(s,t),s=d8(s,t),l=fD(l),l=f8(l,t),l=d8(l,t),s=h8(s),l=h8(l),t.isRawShaderMaterial!==!0&&(M=`#version 300 es
`,S=[g,"#define attribute in","#define varying out","#define texture2D texture"].join(`
`)+`
`+S,v=["#define varying in",t.glslVersion===E2?"":"layout(location = 0) out highp vec4 pc_fragColor;",t.glslVersion===E2?"":"#define gl_FragColor pc_fragColor","#define gl_FragDepthEXT gl_FragDepth","#define texture2D texture","#define textureCube texture","#define texture2DProj textureProj","#define texture2DLodEXT textureLod","#define texture2DProjLodEXT textureProjLod","#define textureCubeLodEXT textureLod","#define texture2DGradEXT textureGrad","#define texture2DProjGradEXT textureProjGrad","#define textureCubeGradEXT textureGrad"].join(`
`)+`
`+v);let O=M+S+s,k=M+v+l,q=l8(r,r.VERTEX_SHADER,O),G=l8(r,r.FRAGMENT_SHADER,k);r.attachShader(x,q),r.attachShader(x,G),t.index0AttributeName!==void 0?r.bindAttribLocation(x,0,t.index0AttributeName):t.hasPositionAttribute===!0&&r.bindAttribLocation(x,0,"position"),r.linkProgram(x);function Q(j){if(n.debug.checkShaderErrors){let he=r.getProgramInfoLog(x)||"",ke=r.getShaderInfoLog(q)||"",Me=r.getShaderInfoLog(G)||"",ze=he.trim(),Ne=ke.trim(),Ve=Me.trim(),Je=!0,Qe=!0;if(r.getProgramParameter(x,r.LINK_STATUS)===!1)if(Je=!1,typeof n.debug.onShaderError=="function")n.debug.onShaderError(r,x,q,G);else{let st=c8(r,q,"vertex"),We=c8(r,G,"fragment");cn("WebGLProgram: Shader Error "+r.getError()+" - VALIDATE_STATUS "+r.getProgramParameter(x,r.VALIDATE_STATUS)+`

Material Name: `+j.name+`
Material Type: `+j.type+`

Program Info Log: `+ze+`
`+st+`
`+We)}else ze!==""?Ft("WebGLProgram: Program Info Log:",ze):(Ne===""||Ve==="")&&(Qe=!1);Qe&&(j.diagnostics={runnable:Je,programLog:ze,vertexShader:{log:Ne,prefix:S},fragmentShader:{log:Ve,prefix:v}})}r.deleteShader(q),r.deleteShader(G),H=new rb(r,x),Z=q$(r,x)}let H;this.getUniforms=function(){return H===void 0&&Q(this),H};let Z;this.getAttributes=function(){return Z===void 0&&Q(this),Z};let te=t.rendererExtensionParallelShaderCompile===!1;return this.isReady=function(){return te===!1&&(te=r.getProgramParameter(x,I$)),te},this.destroy=function(){i.releaseStatesOfProgram(this),r.deleteProgram(x),this.program=void 0},this.type=t.shaderType,this.name=t.shaderName,this.id=L$++,this.cacheKey=e,this.usedTimes=1,this.program=x,this.vertexShader=q,this.fragmentShader=G,this}var nJ=0,dD=class{constructor(){this.shaderCache=new Map,this.materialCache=new Map}update(e,t,i){let r=this._getShaderCacheForMaterial(e);return r.has(t)===!1&&(r.add(t),t.usedTimes++),r.has(i)===!1&&(r.add(i),i.usedTimes++),this}remove(e){let t=this.materialCache.get(e);for(let i of t)i.usedTimes--,i.usedTimes===0&&this.shaderCache.delete(i.code);return this.materialCache.delete(e),this}getVertexShaderStage(e){return this._getShaderStage(e.vertexShader)}getFragmentShaderStage(e){return this._getShaderStage(e.fragmentShader)}dispose(){this.shaderCache.clear(),this.materialCache.clear()}_getShaderCacheForMaterial(e){let t=this.materialCache,i=t.get(e);return i===void 0&&(i=new Set,t.set(e,i)),i}_getShaderStage(e){let t=this.shaderCache,i=t.get(e);return i===void 0&&(i=new hD(e),t.set(e,i)),i}},hD=class{constructor(e){this.id=nJ++,this.code=e,this.usedTimes=0}};function iJ(n){return n===td||n===eb||n===tb}function rJ(n,e,t,i,r,a){let s=new zc,l=new dD,c=new Set,f=[],p=new Map,h=i.logarithmicDepthBuffer,_=i.precision,g={MeshDepthMaterial:"depth",MeshDistanceMaterial:"distance",MeshNormalMaterial:"normal",MeshBasicMaterial:"basic",MeshLambertMaterial:"lambert",MeshPhongMaterial:"phong",MeshToonMaterial:"toon",MeshStandardMaterial:"physical",MeshPhysicalMaterial:"physical",MeshMatcapMaterial:"matcap",LineBasicMaterial:"basic",LineDashedMaterial:"dashed",PointsMaterial:"points",ShadowMaterial:"shadow",SpriteMaterial:"sprite"};function E(H){return c.add(H),H===0?"uv":`uv${H}`}function x(H,Z,te,j,he,ke){let Me=j.fog,ze=he.geometry,Ne=H.isMeshStandardMaterial||H.isMeshLambertMaterial||H.isMeshPhongMaterial?j.environment:null,Ve=H.isMeshStandardMaterial||H.isMeshLambertMaterial&&!H.envMap||H.isMeshPhongMaterial&&!H.envMap,Je=e.get(H.envMap||Ne,Ve),Qe=Je&&Je.mapping===x_?Je.image.height:null,st=g[H.type];H.precision!==null&&(_=i.getMaxPrecision(H.precision),_!==H.precision&&Ft("WebGLProgram.getParameters:",H.precision,"not supported, using",_,"instead."));let We=ze.morphAttributes.position||ze.morphAttributes.normal||ze.morphAttributes.color,gt=We!==void 0?We.length:0,Et=0;ze.morphAttributes.position!==void 0&&(Et=1),ze.morphAttributes.normal!==void 0&&(Et=2),ze.morphAttributes.color!==void 0&&(Et=3);let jt,zt,Mt,Xe;if(st){let Wn=Pu[st];jt=Wn.vertexShader,zt=Wn.fragmentShader}else{jt=H.vertexShader,zt=H.fragmentShader;let Wn=l.getVertexShaderStage(H),Un=l.getFragmentShaderStage(H);l.update(H,Wn,Un),Mt=Wn.id,Xe=Un.id}let et=n.getRenderTarget(),yt=n.state.buffers.depth.getReversed(),Wt=he.isInstancedMesh===!0,Lt=he.isBatchedMesh===!0,sn=!!H.map,pn=!!H.matcap,lt=!!Je,_e=!!H.aoMap,Pe=!!H.lightMap,dt=!!H.bumpMap&&H.wireframe===!1,vt=!!H.normalMap,Qt=!!H.displacementMap,Ht=!!H.emissiveMap,qt=!!H.metalnessMap,en=!!H.roughnessMap,Le=H.anisotropy>0,fn=H.clearcoat>0,kt=H.dispersion>0,ge=H.retroreflectivity>0,L=H.iridescence>0,N=H.sheen>0,U=H.transmission>0,ee=Le&&!!H.anisotropyMap,ne=fn&&!!H.clearcoatMap,X=fn&&!!H.clearcoatNormalMap,ie=fn&&!!H.clearcoatRoughnessMap,le=L&&!!H.iridescenceMap,be=L&&!!H.iridescenceThicknessMap,tt=N&&!!H.sheenColorMap,Oe=N&&!!H.sheenRoughnessMap,je=!!H.specularMap,Ct=!!H.specularColorMap,nn=!!H.specularIntensityMap,ht=U&&!!H.transmissionMap,De=U&&!!H.thicknessMap,bt=!!H.gradientMap,at=!!H.alphaMap,we=H.alphaTest>0,Rt=!!H.alphaHash,ft=!!H.extensions,Yt=_o;H.toneMapped&&(et===null||et.isXRRenderTarget===!0)&&(Yt=n.toneMapping);let $t={shaderID:st,shaderType:H.type,shaderName:H.name,vertexShader:jt,fragmentShader:zt,defines:H.defines,customVertexShaderID:Mt,customFragmentShaderID:Xe,isRawShaderMaterial:H.isRawShaderMaterial===!0,glslVersion:H.glslVersion,precision:_,batching:Lt,batchingColor:Lt&&he._colorsTexture!==null,instancing:Wt,instancingColor:Wt&&he.instanceColor!==null,instancingMorph:Wt&&he.morphTexture!==null,outputColorSpace:et===null?n.outputColorSpace:et.isXRRenderTarget===!0?et.texture.colorSpace:Gn.workingColorSpace,alphaToCoverage:!!H.alphaToCoverage,map:sn,matcap:pn,envMap:lt,envMapMode:lt&&Je.mapping,envMapCubeUVHeight:Qe,aoMap:_e,lightMap:Pe,bumpMap:dt,normalMap:vt,displacementMap:Qt,emissiveMap:Ht,normalMapObjectSpace:vt&&H.normalMapType===zO,normalMapTangentSpace:vt&&H.normalMapType===Wc,packedNormalMap:vt&&H.normalMapType===Wc&&iJ(H.normalMap.format),metalnessMap:qt,roughnessMap:en,anisotropy:Le,anisotropyMap:ee,clearcoat:fn,clearcoatMap:ne,clearcoatNormalMap:X,clearcoatRoughnessMap:ie,dispersion:kt,retroreflection:ge,iridescence:L,iridescenceMap:le,iridescenceThicknessMap:be,sheen:N,sheenColorMap:tt,sheenRoughnessMap:Oe,specularMap:je,specularColorMap:Ct,specularIntensityMap:nn,transmission:U,transmissionMap:ht,thicknessMap:De,gradientMap:bt,opaque:H.transparent===!1&&H.blending===w_&&H.alphaToCoverage===!1,alphaMap:at,alphaTest:we,alphaHash:Rt,combine:H.combine,mapUv:sn&&E(H.map.channel),aoMapUv:_e&&E(H.aoMap.channel),lightMapUv:Pe&&E(H.lightMap.channel),bumpMapUv:dt&&E(H.bumpMap.channel),normalMapUv:vt&&E(H.normalMap.channel),displacementMapUv:Qt&&E(H.displacementMap.channel),emissiveMapUv:Ht&&E(H.emissiveMap.channel),metalnessMapUv:qt&&E(H.metalnessMap.channel),roughnessMapUv:en&&E(H.roughnessMap.channel),anisotropyMapUv:ee&&E(H.anisotropyMap.channel),clearcoatMapUv:ne&&E(H.clearcoatMap.channel),clearcoatNormalMapUv:X&&E(H.clearcoatNormalMap.channel),clearcoatRoughnessMapUv:ie&&E(H.clearcoatRoughnessMap.channel),iridescenceMapUv:le&&E(H.iridescenceMap.channel),iridescenceThicknessMapUv:be&&E(H.iridescenceThicknessMap.channel),sheenColorMapUv:tt&&E(H.sheenColorMap.channel),sheenRoughnessMapUv:Oe&&E(H.sheenRoughnessMap.channel),specularMapUv:je&&E(H.specularMap.channel),specularColorMapUv:Ct&&E(H.specularColorMap.channel),specularIntensityMapUv:nn&&E(H.specularIntensityMap.channel),transmissionMapUv:ht&&E(H.transmissionMap.channel),thicknessMapUv:De&&E(H.thicknessMap.channel),alphaMapUv:at&&E(H.alphaMap.channel),vertexTangents:!!ze.attributes.tangent&&(vt||Le),vertexNormals:!!ze.attributes.normal,vertexColors:H.vertexColors,vertexAlphas:H.vertexColors===!0&&!!ze.attributes.color&&ze.attributes.color.itemSize===4,pointsUvs:he.isPoints===!0&&!!ze.attributes.uv&&(sn||at),fog:!!Me,useFog:H.fog===!0,fogExp2:!!Me&&Me.isFogExp2,flatShading:H.wireframe===!1&&(H.flatShading===!0||ze.attributes.normal===void 0&&vt===!1&&(H.isMeshLambertMaterial||H.isMeshPhongMaterial||H.isMeshStandardMaterial||H.isMeshPhysicalMaterial)),sizeAttenuation:H.sizeAttenuation===!0,logarithmicDepthBuffer:h,reversedDepthBuffer:yt,skinning:he.isSkinnedMesh===!0,hasPositionAttribute:ze.attributes.position!==void 0,morphTargets:ze.morphAttributes.position!==void 0,morphNormals:ze.morphAttributes.normal!==void 0,morphColors:ze.morphAttributes.color!==void 0,morphTargetsCount:gt,morphTextureStride:Et,numSunLights:Z.sun.length,numDirLights:Z.directional.length,numPointLights:Z.point.length,numSpotLights:Z.spot.length,numSpotLightMaps:Z.spotLightMap.length,numRectAreaLights:Z.rectArea.length,numHemiLights:Z.hemi.length,numSunLightShadows:Z.sunShadowMap.length,numDirLightShadows:Z.directionalShadowMap.length,numPointLightShadows:Z.pointShadowMap.length,numSpotLightShadows:Z.spotShadowMap.length,numSpotLightShadowsWithMaps:Z.numSpotLightShadowsWithMaps,numLightProbes:Z.numLightProbes,numLightProbeGrids:ke.length,numClippingPlanes:a.numPlanes,numClipIntersection:a.numIntersection,dithering:H.dithering,shadowMapEnabled:n.shadowMap.enabled&&te.length>0,shadowMapType:n.shadowMap.type,toneMapping:Yt,decodeVideoTexture:sn&&H.map.isVideoTexture===!0&&Gn.getTransfer(H.map.colorSpace)===xi,decodeVideoTextureEmissive:Ht&&H.emissiveMap.isVideoTexture===!0&&Gn.getTransfer(H.emissiveMap.colorSpace)===xi,premultipliedAlpha:H.premultipliedAlpha,doubleSided:H.side===ku,flipSided:H.side===ss,useDepthPacking:H.depthPacking>=0,depthPacking:H.depthPacking||0,index0AttributeName:H.index0AttributeName,extensionClipCullDistance:ft&&H.extensions.clipCullDistance===!0&&t.has("WEBGL_clip_cull_distance"),extensionMultiDraw:(ft&&H.extensions.multiDraw===!0||Lt)&&t.has("WEBGL_multi_draw"),rendererExtensionParallelShaderCompile:t.has("KHR_parallel_shader_compile"),customProgramCacheKey:H.customProgramCacheKey()};return $t.vertexUv1s=c.has(1),$t.vertexUv2s=c.has(2),$t.vertexUv3s=c.has(3),c.clear(),$t}function S(H){let Z=[];if(H.shaderID?Z.push(H.shaderID):(Z.push(H.customVertexShaderID),Z.push(H.customFragmentShaderID)),H.defines!==void 0)for(let te in H.defines)Z.push(te),Z.push(H.defines[te]);return H.isRawShaderMaterial===!1&&(v(Z,H),M(Z,H),Z.push(n.outputColorSpace)),Z.push(H.customProgramCacheKey),Z.join()}function v(H,Z){H.push(Z.precision),H.push(Z.outputColorSpace),H.push(Z.envMapMode),H.push(Z.envMapCubeUVHeight),H.push(Z.mapUv),H.push(Z.alphaMapUv),H.push(Z.lightMapUv),H.push(Z.aoMapUv),H.push(Z.bumpMapUv),H.push(Z.normalMapUv),H.push(Z.displacementMapUv),H.push(Z.emissiveMapUv),H.push(Z.metalnessMapUv),H.push(Z.roughnessMapUv),H.push(Z.anisotropyMapUv),H.push(Z.clearcoatMapUv),H.push(Z.clearcoatNormalMapUv),H.push(Z.clearcoatRoughnessMapUv),H.push(Z.iridescenceMapUv),H.push(Z.iridescenceThicknessMapUv),H.push(Z.sheenColorMapUv),H.push(Z.sheenRoughnessMapUv),H.push(Z.specularMapUv),H.push(Z.specularColorMapUv),H.push(Z.specularIntensityMapUv),H.push(Z.transmissionMapUv),H.push(Z.thicknessMapUv),H.push(Z.combine),H.push(Z.fogExp2),H.push(Z.sizeAttenuation),H.push(Z.morphTargetsCount),H.push(Z.morphAttributeCount),H.push(Z.numSunLights),H.push(Z.numDirLights),H.push(Z.numPointLights),H.push(Z.numSpotLights),H.push(Z.numSpotLightMaps),H.push(Z.numHemiLights),H.push(Z.numRectAreaLights),H.push(Z.numSunLightShadows),H.push(Z.numDirLightShadows),H.push(Z.numPointLightShadows),H.push(Z.numSpotLightShadows),H.push(Z.numSpotLightShadowsWithMaps),H.push(Z.numLightProbes),H.push(Z.shadowMapType),H.push(Z.toneMapping),H.push(Z.numClippingPlanes),H.push(Z.numClipIntersection),H.push(Z.depthPacking)}function M(H,Z){s.disableAll(),Z.instancing&&s.enable(0),Z.instancingColor&&s.enable(1),Z.instancingMorph&&s.enable(2),Z.matcap&&s.enable(3),Z.envMap&&s.enable(4),Z.normalMapObjectSpace&&s.enable(5),Z.normalMapTangentSpace&&s.enable(6),Z.clearcoat&&s.enable(7),Z.iridescence&&s.enable(8),Z.alphaTest&&s.enable(9),Z.vertexColors&&s.enable(10),Z.vertexAlphas&&s.enable(11),Z.vertexUv1s&&s.enable(12),Z.vertexUv2s&&s.enable(13),Z.vertexUv3s&&s.enable(14),Z.vertexTangents&&s.enable(15),Z.anisotropy&&s.enable(16),Z.alphaHash&&s.enable(17),Z.batching&&s.enable(18),Z.dispersion&&s.enable(19),Z.retroreflection&&s.enable(24),Z.batchingColor&&s.enable(20),Z.gradientMap&&s.enable(21),Z.packedNormalMap&&s.enable(22),Z.vertexNormals&&s.enable(23),H.push(s.mask),s.disableAll(),Z.fog&&s.enable(0),Z.useFog&&s.enable(1),Z.flatShading&&s.enable(2),Z.logarithmicDepthBuffer&&s.enable(3),Z.reversedDepthBuffer&&s.enable(4),Z.skinning&&s.enable(5),Z.morphTargets&&s.enable(6),Z.morphNormals&&s.enable(7),Z.morphColors&&s.enable(8),Z.premultipliedAlpha&&s.enable(9),Z.shadowMapEnabled&&s.enable(10),Z.doubleSided&&s.enable(11),Z.flipSided&&s.enable(12),Z.useDepthPacking&&s.enable(13),Z.dithering&&s.enable(14),Z.transmission&&s.enable(15),Z.sheen&&s.enable(16),Z.opaque&&s.enable(17),Z.pointsUvs&&s.enable(18),Z.decodeVideoTexture&&s.enable(19),Z.decodeVideoTextureEmissive&&s.enable(20),Z.alphaToCoverage&&s.enable(21),Z.numLightProbeGrids>0&&s.enable(22),Z.hasPositionAttribute&&s.enable(23),H.push(s.mask)}function O(H){let Z=g[H.type],te;if(Z){let j=Pu[Z];te=ZO.clone(j.uniforms)}else te=H.uniforms;return te}function k(H,Z){let te=p.get(Z);return te!==void 0?++te.usedTimes:(te=new tJ(n,Z,H,r),f.push(te),p.set(Z,te)),te}function q(H){if(--H.usedTimes===0){let Z=f.indexOf(H);f[Z]=f[f.length-1],f.pop(),p.delete(H.cacheKey),H.destroy()}}function G(H){l.remove(H)}function Q(){l.dispose()}return{getParameters:x,getProgramCacheKey:S,getUniforms:O,acquireProgram:k,releaseProgram:q,releaseShaderCache:G,programs:f,dispose:Q}}function aJ(){let n=new WeakMap;function e(s){return n.has(s)}function t(s){let l=n.get(s);return l===void 0&&(l={},n.set(s,l)),l}function i(s){n.delete(s)}function r(s,l,c){n.get(s)[l]=c}function a(){n=new WeakMap}return{has:e,get:t,remove:i,update:r,dispose:a}}function sJ(n,e){return n.groupOrder!==e.groupOrder?n.groupOrder-e.groupOrder:n.renderOrder!==e.renderOrder?n.renderOrder-e.renderOrder:n.material.id!==e.material.id?n.material.id-e.material.id:n.materialVariant!==e.materialVariant?n.materialVariant-e.materialVariant:n.z!==e.z?n.z-e.z:n.id-e.id}function m8(n,e){return n.groupOrder!==e.groupOrder?n.groupOrder-e.groupOrder:n.renderOrder!==e.renderOrder?n.renderOrder-e.renderOrder:n.z!==e.z?e.z-n.z:n.id-e.id}function _8(){let n=[],e=0,t=[],i=[],r=[];function a(){e=0,t.length=0,i.length=0,r.length=0}function s(_){let g=0;return _.isInstancedMesh&&(g+=2),_.isSkinnedMesh&&(g+=1),g}function l(_,g,E,x,S,v){let M=n[e];return M===void 0?(M={id:_.id,object:_,geometry:g,material:E,materialVariant:s(_),groupOrder:x,renderOrder:_.renderOrder,z:S,group:v},n[e]=M):(M.id=_.id,M.object=_,M.geometry=g,M.material=E,M.materialVariant=s(_),M.groupOrder=x,M.renderOrder=_.renderOrder,M.z=S,M.group=v),e++,M}function c(_,g,E,x,S,v,M){M.reversedDepth===!0&&(S=-S);let O=l(_,g,E,x,S,v);E.transmission>0?i.push(O):E.transparent===!0?r.push(O):t.push(O)}function f(_,g,E,x,S,v){let M=l(_,g,E,x,S,v);E.transmission>0?i.unshift(M):E.transparent===!0?r.unshift(M):t.unshift(M)}function p(_,g){t.length>1&&t.sort(_||sJ),i.length>1&&i.sort(g||m8),r.length>1&&r.sort(g||m8)}function h(){for(let _=e,g=n.length;_<g;_++){let E=n[_];if(E.id===null)break;E.id=null,E.object=null,E.geometry=null,E.material=null,E.group=null}}return{opaque:t,transmissive:i,transparent:r,init:a,push:c,unshift:f,finish:h,sort:p}}function oJ(){let n=new WeakMap;function e(i,r){let a=n.get(i),s;return a===void 0?(s=new _8,n.set(i,[s])):r>=a.length?(s=new _8,a.push(s)):s=a[r],s}function t(){n=new WeakMap}return{get:e,dispose:t}}function lJ(){let n={};return{get:function(e){if(n[e.id]!==void 0)return n[e.id];let t;switch(e.type){case"SunLight":case"DirectionalLight":t={direction:new ve,color:new Vt};break;case"SpotLight":t={position:new ve,direction:new ve,color:new Vt,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case"PointLight":t={position:new ve,color:new Vt,distance:0,decay:0};break;case"HemisphereLight":t={direction:new ve,skyColor:new Vt,groundColor:new Vt};break;case"RectAreaLight":t={color:new Vt,position:new ve,halfWidth:new ve,halfHeight:new ve};break}return n[e.id]=t,t}}}function uJ(){let n={};return{get:function(e){if(n[e.id]!==void 0)return n[e.id];let t;switch(e.type){case"SunLight":case"DirectionalLight":t={shadowIntensity:1,shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new ut};break;case"SpotLight":t={shadowIntensity:1,shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new ut};break;case"PointLight":t={shadowIntensity:1,shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new ut,shadowCameraNear:1,shadowCameraFar:1e3};break}return n[e.id]=t,t}}}var cJ=0;function fJ(n,e){return(e.castShadow?2:0)-(n.castShadow?2:0)+(e.map?1:0)-(n.map?1:0)}function dJ(n){let e=new lJ,t=uJ(),i={version:0,hash:{sunLength:-1,directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numSunShadows:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1,numSpotMaps:-1,numLightProbes:-1},ambient:[0,0,0],probe:[],sun:[],sunShadow:[],sunShadowMap:[],sunShadowMatrix:[],sunShadowCascade:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotLightMap:[],spotShadow:[],spotShadowMap:[],spotLightMatrix:[],rectArea:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[],numSpotLightShadowsWithMaps:0,numLightProbes:0};for(let f=0;f<9;f++)i.probe.push(new ve);let r=new ve,a=new Cn,s=new Cn;function l(f){let p=0,h=0,_=0;for(let he=0;he<9;he++)i.probe[he].set(0,0,0);let g=0,E=0,x=0,S=0,v=0,M=0,O=0,k=0,q=0,G=0,Q=0,H=0,Z=0,te=0;f.sort(fJ);for(let he=0,ke=f.length;he<ke;he++){let Me=f[he],ze=Me.color,Ne=Me.intensity,Ve=Me.distance,Je=null;if(Me.shadow&&Me.shadow.map&&(Me.shadow.map.texture.format===td?Je=Me.shadow.map.texture:Je=Me.shadow.map.depthTexture||Me.shadow.map.texture),Me.isAmbientLight)p+=ze.r*Ne,h+=ze.g*Ne,_+=ze.b*Ne;else if(Me.isLightProbe){for(let Qe=0;Qe<9;Qe++)i.probe[Qe].addScaledVector(Me.sh.coefficients[Qe],Ne);te++}else if(Me.isSunLight){let Qe=e.get(Me);if(Qe.color.copy(Me.color).multiplyScalar(Me.intensity),Me.castShadow){let st=Me.shadow,We=t.get(Me);We.shadowIntensity=st.intensity,We.shadowBias=st.bias,We.shadowNormalBias=st.normalBias,We.shadowRadius=st.radius,We.shadowMapSize.copy(st.mapSize).multiply(st.getFrameExtents()),i.sunShadow[E]=We,i.sunShadowMap[E]=Je;let gt=st.getViewportCount();for(let Et=0;Et<gt;Et++)i.sunShadowMatrix[x+Et]=st.getMatrix(Et),i.sunShadowCascade[x+Et]=st._cascadeData[Et];x+=gt,E++}i.sun[g]=Qe,g++}else if(Me.isDirectionalLight){let Qe=e.get(Me);if(Qe.color.copy(Me.color).multiplyScalar(Me.intensity),Me.castShadow){let st=Me.shadow,We=t.get(Me);We.shadowIntensity=st.intensity,We.shadowBias=st.bias,We.shadowNormalBias=st.normalBias,We.shadowRadius=st.radius,We.shadowMapSize=st.mapSize,i.directionalShadow[S]=We,i.directionalShadowMap[S]=Je,i.directionalShadowMatrix[S]=Me.shadow.matrix,q++}i.directional[S]=Qe,S++}else if(Me.isSpotLight){let Qe=e.get(Me);Qe.position.setFromMatrixPosition(Me.matrixWorld),Qe.color.copy(ze).multiplyScalar(Ne),Qe.distance=Ve,Qe.coneCos=Math.cos(Me.angle),Qe.penumbraCos=Math.cos(Me.angle*(1-Me.penumbra)),Qe.decay=Me.decay,i.spot[M]=Qe;let st=Me.shadow;if(Me.map&&(i.spotLightMap[H]=Me.map,H++,st.updateMatrices(Me),Me.castShadow&&Z++),i.spotLightMatrix[M]=st.matrix,Me.castShadow){let We=t.get(Me);We.shadowIntensity=st.intensity,We.shadowBias=st.bias,We.shadowNormalBias=st.normalBias,We.shadowRadius=st.radius,We.shadowMapSize=st.mapSize,i.spotShadow[M]=We,i.spotShadowMap[M]=Je,Q++}M++}else if(Me.isRectAreaLight){let Qe=e.get(Me);Qe.color.copy(ze).multiplyScalar(Ne),Qe.halfWidth.set(Me.width*.5,0,0),Qe.halfHeight.set(0,Me.height*.5,0),i.rectArea[O]=Qe,O++}else if(Me.isPointLight){let Qe=e.get(Me);if(Qe.color.copy(Me.color).multiplyScalar(Me.intensity),Qe.distance=Me.distance,Qe.decay=Me.decay,Me.castShadow){let st=Me.shadow,We=t.get(Me);We.shadowIntensity=st.intensity,We.shadowBias=st.bias,We.shadowNormalBias=st.normalBias,We.shadowRadius=st.radius,We.shadowMapSize=st.mapSize,We.shadowCameraNear=st.camera.near,We.shadowCameraFar=st.camera.far,i.pointShadow[v]=We,i.pointShadowMap[v]=Je,i.pointShadowMatrix[v]=Me.shadow.matrix,G++}i.point[v]=Qe,v++}else if(Me.isHemisphereLight){let Qe=e.get(Me);Qe.skyColor.copy(Me.color).multiplyScalar(Ne),Qe.groundColor.copy(Me.groundColor).multiplyScalar(Ne),i.hemi[k]=Qe,k++}}O>0&&(n.has("OES_texture_float_linear")===!0?(i.rectAreaLTC1=Gt.LTC_FLOAT_1,i.rectAreaLTC2=Gt.LTC_FLOAT_2):(i.rectAreaLTC1=Gt.LTC_HALF_1,i.rectAreaLTC2=Gt.LTC_HALF_2)),i.ambient[0]=p,i.ambient[1]=h,i.ambient[2]=_;let j=i.hash;(j.sunLength!==g||j.directionalLength!==S||j.pointLength!==v||j.spotLength!==M||j.rectAreaLength!==O||j.hemiLength!==k||j.numSunShadows!==E||j.numDirectionalShadows!==q||j.numPointShadows!==G||j.numSpotShadows!==Q||j.numSpotMaps!==H||j.numLightProbes!==te)&&(i.sun.length=g,i.directional.length=S,i.spot.length=M,i.rectArea.length=O,i.point.length=v,i.hemi.length=k,i.sunShadow.length=E,i.sunShadowMap.length=E,i.sunShadowMatrix.length=x,i.sunShadowCascade.length=x,i.directionalShadow.length=q,i.directionalShadowMap.length=q,i.directionalShadowMatrix.length=q,i.pointShadow.length=G,i.pointShadowMap.length=G,i.pointShadowMatrix.length=G,i.spotShadow.length=Q,i.spotShadowMap.length=Q,i.spotLightMatrix.length=Q+H-Z,i.spotLightMap.length=H,i.numSpotLightShadowsWithMaps=Z,i.numLightProbes=te,j.sunLength=g,j.directionalLength=S,j.pointLength=v,j.spotLength=M,j.rectAreaLength=O,j.hemiLength=k,j.numSunShadows=E,j.numDirectionalShadows=q,j.numPointShadows=G,j.numSpotShadows=Q,j.numSpotMaps=H,j.numLightProbes=te,i.version=cJ++)}function c(f,p){let h=0,_=0,g=0,E=0,x=0,S=0,v=p.matrixWorldInverse;for(let M=0,O=f.length;M<O;M++){let k=f[M];if(k.isSunLight){let q=i.sun[h];q.direction.setFromMatrixPosition(k.matrixWorld),q.direction.transformDirection(v),h++}else if(k.isDirectionalLight){let q=i.directional[_];q.direction.setFromMatrixPosition(k.matrixWorld),r.setFromMatrixPosition(k.target.matrixWorld),q.direction.sub(r),q.direction.transformDirection(v),_++}else if(k.isSpotLight){let q=i.spot[E];q.position.setFromMatrixPosition(k.matrixWorld),q.position.applyMatrix4(v),q.direction.setFromMatrixPosition(k.matrixWorld),r.setFromMatrixPosition(k.target.matrixWorld),q.direction.sub(r),q.direction.transformDirection(v),E++}else if(k.isRectAreaLight){let q=i.rectArea[x];q.position.setFromMatrixPosition(k.matrixWorld),q.position.applyMatrix4(v),s.identity(),a.copy(k.matrixWorld),a.premultiply(v),s.extractRotation(a),q.halfWidth.set(k.width*.5,0,0),q.halfHeight.set(0,k.height*.5,0),q.halfWidth.applyMatrix4(s),q.halfHeight.applyMatrix4(s),x++}else if(k.isPointLight){let q=i.point[g];q.position.setFromMatrixPosition(k.matrixWorld),q.position.applyMatrix4(v),g++}else if(k.isHemisphereLight){let q=i.hemi[S];q.direction.setFromMatrixPosition(k.matrixWorld),q.direction.transformDirection(v),S++}}}return{setup:l,setupView:c,state:i}}function g8(n){let e=new dJ(n),t=[],i=[],r=[];function a(_){h.camera=_,t.length=0,i.length=0,r.length=0}function s(_){t.push(_)}function l(_){i.push(_)}function c(_){r.push(_)}function f(){e.setup(t)}function p(_){e.setupView(t,_)}let h={lightsArray:t,shadowsArray:i,lightProbeGridArray:r,camera:null,lights:e,transmissionRenderTarget:{},textureUnits:0};return{init:a,state:h,setupLights:f,setupLightsView:p,pushLight:s,pushShadow:l,pushLightProbeGrid:c}}function hJ(n){let e=new WeakMap;function t(r,a=0){let s=e.get(r),l;return s===void 0?(l=new g8(n),e.set(r,[l])):a>=s.length?(l=new g8(n),s.push(l)):l=s[a],l}function i(){e=new WeakMap}return{get:t,dispose:i}}var pJ=`void main() {
	gl_Position = vec4( position, 1.0 );
}`,mJ=`uniform sampler2D shadow_pass;
uniform vec2 resolution;
uniform float radius;
void main() {
	const float samples = float( VSM_SAMPLES );
	float mean = 0.0;
	float squared_mean = 0.0;
	float uvStride = samples <= 1.0 ? 0.0 : 2.0 / ( samples - 1.0 );
	float uvStart = samples <= 1.0 ? 0.0 : - 1.0;
	for ( float i = 0.0; i < samples; i ++ ) {
		float uvOffset = uvStart + i * uvStride;
		#ifdef HORIZONTAL_PASS
			vec2 distribution = texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( uvOffset, 0.0 ) * radius ) / resolution ).rg;
			mean += distribution.x;
			squared_mean += distribution.y * distribution.y + distribution.x * distribution.x;
		#else
			float depth = texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, uvOffset ) * radius ) / resolution ).r;
			mean += depth;
			squared_mean += depth * depth;
		#endif
	}
	mean = mean / samples;
	squared_mean = squared_mean / samples;
	float std_dev = sqrt( max( 0.0, squared_mean - mean * mean ) );
	gl_FragColor = vec4( mean, std_dev, 0.0, 1.0 );
}`,_J=[new ve(1,0,0),new ve(-1,0,0),new ve(0,1,0),new ve(0,-1,0),new ve(0,0,1),new ve(0,0,-1)],gJ=[new ve(0,-1,0),new ve(0,-1,0),new ve(0,0,1),new ve(0,0,-1),new ve(0,-1,0),new ve(0,-1,0)],v8=new Cn,U1=new ve,sD=new ve;function vJ(n,e,t){let i=new qc,r=new ut,a=new ut,s=new Ni,l=new N0,c=new k0,f={},p=t.maxTextureSize,h={[$f]:ss,[ss]:$f,[ku]:ku},_=new Ga({defines:{VSM_SAMPLES:8},uniforms:{shadow_pass:{value:null},resolution:{value:new ut},radius:{value:4}},vertexShader:pJ,fragmentShader:mJ}),g=_.clone();g.defines.HORIZONTAL_PASS=1;let E=new Nn;E.setAttribute("position",new Li(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));let x=new dr(E,_),S=this;this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=Gh;let v=this.type;this.render=function(G,Q,H){if(S.enabled===!1||S.autoUpdate===!1&&S.needsUpdate===!1||G.length===0)return;this.type===E_&&(Ft("WebGLShadowMap: PCFSoftShadowMap has been removed. Using PCFShadowMap instead."),this.type=Gh);let Z=n.getRenderTarget(),te=n.getActiveCubeFace(),j=n.getActiveMipmapLevel(),he=n.state;he.setBlending(Ou),he.buffers.depth.getReversed()===!0?he.buffers.color.setClear(0,0,0,0):he.buffers.color.setClear(1,1,1,1),he.buffers.depth.setTest(!0),he.setScissorTest(!1);let ke=v!==this.type;ke&&Q.traverse(function(Me){Me.material&&(Array.isArray(Me.material)?Me.material.forEach(ze=>ze.needsUpdate=!0):Me.material.needsUpdate=!0)});for(let Me=0,ze=G.length;Me<ze;Me++){let Ne=G[Me],Ve=Ne.shadow;if(Ve===void 0){Ft("WebGLShadowMap:",Ne,"has no shadow.");continue}if(Ve.autoUpdate===!1&&Ve.needsUpdate===!1)continue;r.copy(Ve.mapSize);let Je=Ve.getFrameExtents();r.multiply(Je),a.copy(Ve.mapSize),(r.x>p||r.y>p)&&(r.x>p&&(a.x=Math.floor(p/Je.x),r.x=a.x*Je.x,Ve.mapSize.x=a.x),r.y>p&&(a.y=Math.floor(p/Je.y),r.y=a.y*Je.y,Ve.mapSize.y=a.y));let Qe=n.state.buffers.depth.getReversed();if(Ve.camera._reversedDepth=Qe,Ve.map===null||ke===!0){if(Ve.map!==null&&(Ve.map.depthTexture!==null&&(Ve.map.depthTexture.dispose(),Ve.map.depthTexture=null),Ve.map.dispose()),this.type===Zf){if(Ne.isPointLight){Ft("WebGLShadowMap: VSM shadow maps are not supported for PointLights. Use PCF or BasicShadowMap instead.");continue}Ve.map=new Va(r.x,r.y,{format:td,type:$l,minFilter:Ji,magFilter:Ji,generateMipmaps:!1}),Ve.map.texture.name=Ne.name+".shadowMap",Ve.map.depthTexture=new jf(r.x,r.y,as),Ve.map.depthTexture.name=Ne.name+".shadowMapDepth",Ve.map.depthTexture.format=Cu,Ve.map.depthTexture.compareFunction=null,Ve.map.depthTexture.minFilter=br,Ve.map.depthTexture.magFilter=br}else Ne.isPointLight?(Ve.map=new B1(r.x),Ve.map.depthTexture=new $w(r.x,il)):(Ve.map=new Va(r.x,r.y),Ve.map.depthTexture=new jf(r.x,r.y,il)),Ve.map.depthTexture.name=Ne.name+".shadowMap",Ve.map.depthTexture.format=Cu,this.type===Gh?(Ve.map.depthTexture.compareFunction=Qe?D1:O1,Ve.map.depthTexture.minFilter=Ji,Ve.map.depthTexture.magFilter=Ji):(Ve.map.depthTexture.compareFunction=null,Ve.map.depthTexture.minFilter=br,Ve.map.depthTexture.magFilter=br);Ve.camera.updateProjectionMatrix()}Ve.map.isWebGLCubeRenderTarget!==!0&&(Ve.map.width!==r.x||Ve.map.height!==r.y)&&Ve.map.setSize(r.x,r.y);let st=Ve.map.isWebGLCubeRenderTarget?6:Ve.getViewportCount();Ne.isPointLight!==!0&&Ve.updateMatrices(Ne,H);for(let We=0;We<st;We++){let gt=Ve.getCamera(We);if(Ne.isPointLight){let Et=Ve.camera,jt=Ve.matrix,zt=Ne.distance||Et.far;zt!==Et.far&&(Et.far=zt,Et.updateProjectionMatrix()),U1.setFromMatrixPosition(Ne.matrixWorld),Et.position.copy(U1),sD.copy(Et.position),sD.add(_J[We]),Et.up.copy(gJ[We]),Et.lookAt(sD),Et.updateMatrixWorld(),jt.makeTranslation(-U1.x,-U1.y,-U1.z),v8.multiplyMatrices(Et.projectionMatrix,Et.matrixWorldInverse),Ve._frustum.setFromProjectionMatrix(v8,Et.coordinateSystem,Et.reversedDepth)}if(Ve.map.isWebGLCubeRenderTarget)n.setRenderTarget(Ve.map,We),n.clear();else{We===0&&(n.setRenderTarget(Ve.map),n.clear());let Et=Ve.getViewport(We);s.set(a.x*Et.x,a.y*Et.y,a.x*Et.z,a.y*Et.w),he.viewport(s)}i=Ve.getFrustum(We),k(Q,H,gt,Ne,this.type)}Ve.isPointLightShadow!==!0&&this.type===Zf&&M(Ve,H),Ve.needsUpdate=!1}v=this.type,S.needsUpdate=!1,n.setRenderTarget(Z,te,j)};function M(G,Q){let H=e.update(x);_.defines.VSM_SAMPLES!==G.blurSamples&&(_.defines.VSM_SAMPLES=G.blurSamples,g.defines.VSM_SAMPLES=G.blurSamples,_.needsUpdate=!0,g.needsUpdate=!0),G.mapPass===null?G.mapPass=new Va(r.x,r.y,{format:td,type:$l}):(G.mapPass.width!==G.map.width||G.mapPass.height!==G.map.height)&&G.mapPass.setSize(G.map.width,G.map.height),_.uniforms.shadow_pass.value=G.map.depthTexture,_.uniforms.resolution.value.set(G.map.width,G.map.height),_.uniforms.radius.value=G.radius,n.setRenderTarget(G.mapPass),n.clear(),n.renderBufferDirect(Q,null,H,_,x,null),g.uniforms.shadow_pass.value=G.mapPass.texture,g.uniforms.resolution.value.set(G.map.width,G.map.height),g.uniforms.radius.value=G.radius,n.setRenderTarget(G.map),n.clear(),n.renderBufferDirect(Q,null,H,g,x,null)}function O(G,Q,H,Z){let te=null,j=H.isPointLight===!0?G.customDistanceMaterial:G.customDepthMaterial;if(j!==void 0)te=j;else if(te=H.isPointLight===!0?c:l,n.localClippingEnabled&&Q.clipShadows===!0&&Array.isArray(Q.clippingPlanes)&&Q.clippingPlanes.length!==0||Q.displacementMap&&Q.displacementScale!==0||Q.alphaMap&&Q.alphaTest>0||Q.map&&Q.alphaTest>0||Q.alphaToCoverage===!0){let he=te.uuid,ke=Q.uuid,Me=f[he];Me===void 0&&(Me={},f[he]=Me);let ze=Me[ke];ze===void 0&&(ze=te.clone(),Me[ke]=ze,Q.addEventListener("dispose",q)),te=ze}if(te.visible=Q.visible,te.wireframe=Q.wireframe,Z===Zf?te.side=Q.shadowSide!==null?Q.shadowSide:Q.side:te.side=Q.shadowSide!==null?Q.shadowSide:h[Q.side],te.alphaMap=Q.alphaMap,te.alphaTest=Q.alphaToCoverage===!0?.5:Q.alphaTest,te.map=Q.map,te.clipShadows=Q.clipShadows,te.clippingPlanes=Q.clippingPlanes,te.clipIntersection=Q.clipIntersection,te.displacementMap=Q.displacementMap,te.displacementScale=Q.displacementScale,te.displacementBias=Q.displacementBias,te.wireframeLinewidth=Q.wireframeLinewidth,te.linewidth=Q.linewidth,H.isPointLight===!0&&te.isMeshDistanceMaterial===!0){let he=n.properties.get(te);he.light=H}return te}function k(G,Q,H,Z,te){if(G.visible===!1)return;if(G.layers.test(Q.layers)&&(G.isMesh||G.isLine||G.isPoints)&&(G.castShadow||G.receiveShadow&&te===Zf)&&(!G.frustumCulled||G.intersectsFrustum(i))){G.modelViewMatrix.multiplyMatrices(H.matrixWorldInverse,G.matrixWorld);let ke=e.update(G),Me=G.material;if(Array.isArray(Me)){let ze=ke.groups;for(let Ne=0,Ve=ze.length;Ne<Ve;Ne++){let Je=ze[Ne],Qe=Me[Je.materialIndex];if(Qe&&Qe.visible){let st=O(G,Qe,Z,te);G.onBeforeShadow(n,G,Q,H,ke,st,Je),n.renderBufferDirect(H,null,ke,st,G,Je),G.onAfterShadow(n,G,Q,H,ke,st,Je)}}}else if(Me.visible){let ze=O(G,Me,Z,te);G.onBeforeShadow(n,G,Q,H,ke,ze,null),n.renderBufferDirect(H,null,ke,ze,G,null),G.onAfterShadow(n,G,Q,H,ke,ze,null)}}let he=G.children;for(let ke=0,Me=he.length;ke<Me;ke++)k(he[ke],Q,H,Z,te)}function q(G){G.target.removeEventListener("dispose",q);for(let H in f){let Z=f[H],te=G.target.uuid;te in Z&&(Z[te].dispose(),delete Z[te])}}}function yJ(n,e){function t(){let De=!1,bt=new Ni,at=null,we=new Ni(0,0,0,0);return{setMask:function(Rt){at!==Rt&&!De&&(n.colorMask(Rt,Rt,Rt,Rt),at=Rt)},setLocked:function(Rt){De=Rt},setClear:function(Rt,ft,Yt,$t,Wn){Wn===!0&&(Rt*=$t,ft*=$t,Yt*=$t),bt.set(Rt,ft,Yt,$t),we.equals(bt)===!1&&(n.clearColor(Rt,ft,Yt,$t),we.copy(bt))},reset:function(){De=!1,at=null,we.set(-1,0,0,0)}}}function i(){let De=!1,bt=!1,at=null,we=null,Rt=null;return{setReversed:function(ft){if(bt!==ft){let Yt=e.get("EXT_clip_control");ft?Yt.clipControlEXT(Yt.LOWER_LEFT_EXT,Yt.ZERO_TO_ONE_EXT):Yt.clipControlEXT(Yt.LOWER_LEFT_EXT,Yt.NEGATIVE_ONE_TO_ONE_EXT),bt=ft;let $t=Rt;Rt=null,this.setClear($t)}},getReversed:function(){return bt},setTest:function(ft){ft?et(n.DEPTH_TEST):yt(n.DEPTH_TEST)},setMask:function(ft){at!==ft&&!De&&(n.depthMask(ft),at=ft)},setFunc:function(ft){if(bt&&(ft=B5[ft]),we!==ft){switch(ft){case Lw:n.depthFunc(n.NEVER);break;case Nw:n.depthFunc(n.ALWAYS);break;case kw:n.depthFunc(n.LESS);break;case s_:n.depthFunc(n.LEQUAL);break;case Ow:n.depthFunc(n.EQUAL);break;case Dw:n.depthFunc(n.GEQUAL);break;case Fw:n.depthFunc(n.GREATER);break;case Pw:n.depthFunc(n.NOTEQUAL);break;default:n.depthFunc(n.LEQUAL)}we=ft}},setLocked:function(ft){De=ft},setClear:function(ft){Rt!==ft&&(Rt=ft,bt&&(ft=1-ft),n.clearDepth(ft))},reset:function(){De=!1,at=null,we=null,Rt=null,bt=!1}}}function r(){let De=!1,bt=null,at=null,we=null,Rt=null,ft=null,Yt=null,$t=null,Wn=null;return{setTest:function(Un){De||(Un?et(n.STENCIL_TEST):yt(n.STENCIL_TEST))},setMask:function(Un){bt!==Un&&!De&&(n.stencilMask(Un),bt=Un)},setFunc:function(Un,Ti,d){(at!==Un||we!==Ti||Rt!==d)&&(n.stencilFunc(Un,Ti,d),at=Un,we=Ti,Rt=d)},setOp:function(Un,Ti,d){(ft!==Un||Yt!==Ti||$t!==d)&&(n.stencilOp(Un,Ti,d),ft=Un,Yt=Ti,$t=d)},setLocked:function(Un){De=Un},setClear:function(Un){Wn!==Un&&(n.clearStencil(Un),Wn=Un)},reset:function(){De=!1,bt=null,at=null,we=null,Rt=null,ft=null,Yt=null,$t=null,Wn=null}}}let a=new t,s=new i,l=new r,c=new WeakMap,f=new WeakMap,p={},h={},_={},g=new WeakMap,E=[],x=null,S=!1,v=null,M=null,O=null,k=null,q=null,G=null,Q=null,H=new Vt(0,0,0),Z=0,te=!1,j=null,he=null,ke=null,Me=null,ze=null,Ne=n.getParameter(n.MAX_COMBINED_TEXTURE_IMAGE_UNITS),Ve=!1,Je=0,Qe=n.getParameter(n.VERSION);Qe.indexOf("WebGL")!==-1?(Je=parseFloat(/^WebGL (\d)/.exec(Qe)[1]),Ve=Je>=1):Qe.indexOf("OpenGL ES")!==-1&&(Je=parseFloat(/^OpenGL ES (\d)/.exec(Qe)[1]),Ve=Je>=2);let st=null,We={},gt=n.getParameter(n.SCISSOR_BOX),Et=n.getParameter(n.VIEWPORT),jt=new Ni().fromArray(gt),zt=new Ni().fromArray(Et);function Mt(De,bt,at,we){let Rt=new Uint8Array(4),ft=n.createTexture();n.bindTexture(De,ft),n.texParameteri(De,n.TEXTURE_MIN_FILTER,n.NEAREST),n.texParameteri(De,n.TEXTURE_MAG_FILTER,n.NEAREST);for(let Yt=0;Yt<at;Yt++)De===n.TEXTURE_3D||De===n.TEXTURE_2D_ARRAY?n.texImage3D(bt,0,n.RGBA,1,1,we,0,n.RGBA,n.UNSIGNED_BYTE,Rt):n.texImage2D(bt+Yt,0,n.RGBA,1,1,0,n.RGBA,n.UNSIGNED_BYTE,Rt);return ft}let Xe={};Xe[n.TEXTURE_2D]=Mt(n.TEXTURE_2D,n.TEXTURE_2D,1),Xe[n.TEXTURE_CUBE_MAP]=Mt(n.TEXTURE_CUBE_MAP,n.TEXTURE_CUBE_MAP_POSITIVE_X,6),Xe[n.TEXTURE_2D_ARRAY]=Mt(n.TEXTURE_2D_ARRAY,n.TEXTURE_2D_ARRAY,1,1),Xe[n.TEXTURE_3D]=Mt(n.TEXTURE_3D,n.TEXTURE_3D,1,1),a.setClear(0,0,0,1),s.setClear(1),l.setClear(0),et(n.DEPTH_TEST),s.setFunc(s_),dt(!1),vt(t2),et(n.CULL_FACE),_e(Ou);function et(De){p[De]!==!0&&(n.enable(De),p[De]=!0)}function yt(De){p[De]!==!1&&(n.disable(De),p[De]=!1)}function Wt(De,bt){return _[De]!==bt?(n.bindFramebuffer(De,bt),_[De]=bt,De===n.DRAW_FRAMEBUFFER&&(_[n.FRAMEBUFFER]=bt),De===n.FRAMEBUFFER&&(_[n.DRAW_FRAMEBUFFER]=bt),!0):!1}function Lt(De,bt){let at=E,we=!1;if(De){at=g.get(bt),at===void 0&&(at=[],g.set(bt,at));let Rt=De.textures;if(at.length!==Rt.length||at[0]!==n.COLOR_ATTACHMENT0){for(let ft=0,Yt=Rt.length;ft<Yt;ft++)at[ft]=n.COLOR_ATTACHMENT0+ft;at.length=Rt.length,we=!0}}else at[0]!==n.BACK&&(at[0]=n.BACK,we=!0);we&&n.drawBuffers(at)}function sn(De){return x!==De?(n.useProgram(De),x=De,!0):!1}let pn={[Wh]:n.FUNC_ADD,[mO]:n.FUNC_SUBTRACT,[_O]:n.FUNC_REVERSE_SUBTRACT};pn[gO]=n.MIN,pn[vO]=n.MAX;let lt={[yO]:n.ZERO,[bO]:n.ONE,[SO]:n.SRC_COLOR,[s2]:n.SRC_ALPHA,[AO]:n.SRC_ALPHA_SATURATE,[TO]:n.DST_COLOR,[wO]:n.DST_ALPHA,[EO]:n.ONE_MINUS_SRC_COLOR,[o2]:n.ONE_MINUS_SRC_ALPHA,[MO]:n.ONE_MINUS_DST_COLOR,[xO]:n.ONE_MINUS_DST_ALPHA,[CO]:n.CONSTANT_COLOR,[RO]:n.ONE_MINUS_CONSTANT_COLOR,[IO]:n.CONSTANT_ALPHA,[LO]:n.ONE_MINUS_CONSTANT_ALPHA};function _e(De,bt,at,we,Rt,ft,Yt,$t,Wn,Un){if(De===Ou){S===!0&&(yt(n.BLEND),S=!1);return}if(S===!1&&(et(n.BLEND),S=!0),De!==pO){if(De!==v||Un!==te){if((M!==Wh||q!==Wh)&&(n.blendEquation(n.FUNC_ADD),M=Wh,q=Wh),Un)switch(De){case w_:n.blendFuncSeparate(n.ONE,n.ONE_MINUS_SRC_ALPHA,n.ONE,n.ONE_MINUS_SRC_ALPHA);break;case i2:n.blendFunc(n.ONE,n.ONE);break;case r2:n.blendFuncSeparate(n.ZERO,n.ONE_MINUS_SRC_COLOR,n.ZERO,n.ONE);break;case a2:n.blendFuncSeparate(n.DST_COLOR,n.ONE_MINUS_SRC_ALPHA,n.ZERO,n.ONE);break;default:cn("WebGLState: Invalid blending: ",De);break}else switch(De){case w_:n.blendFuncSeparate(n.SRC_ALPHA,n.ONE_MINUS_SRC_ALPHA,n.ONE,n.ONE_MINUS_SRC_ALPHA);break;case i2:n.blendFuncSeparate(n.SRC_ALPHA,n.ONE,n.ONE,n.ONE);break;case r2:cn("WebGLState: SubtractiveBlending requires material.premultipliedAlpha = true");break;case a2:cn("WebGLState: MultiplyBlending requires material.premultipliedAlpha = true");break;default:cn("WebGLState: Invalid blending: ",De);break}O=null,k=null,G=null,Q=null,H.set(0,0,0),Z=0,v=De,te=Un}return}Rt=Rt||bt,ft=ft||at,Yt=Yt||we,(bt!==M||Rt!==q)&&(n.blendEquationSeparate(pn[bt],pn[Rt]),M=bt,q=Rt),(at!==O||we!==k||ft!==G||Yt!==Q)&&(n.blendFuncSeparate(lt[at],lt[we],lt[ft],lt[Yt]),O=at,k=we,G=ft,Q=Yt),($t.equals(H)===!1||Wn!==Z)&&(n.blendColor($t.r,$t.g,$t.b,Wn),H.copy($t),Z=Wn),v=De,te=!1}function Pe(De,bt){De.side===ku?yt(n.CULL_FACE):et(n.CULL_FACE);let at=De.side===ss;bt&&(at=!at),dt(at),De.blending===w_&&De.transparent===!1?_e(Ou):_e(De.blending,De.blendEquation,De.blendSrc,De.blendDst,De.blendEquationAlpha,De.blendSrcAlpha,De.blendDstAlpha,De.blendColor,De.blendAlpha,De.premultipliedAlpha),s.setFunc(De.depthFunc),s.setTest(De.depthTest),s.setMask(De.depthWrite),a.setMask(De.colorWrite);let we=De.stencilWrite;l.setTest(we),we&&(l.setMask(De.stencilWriteMask),l.setFunc(De.stencilFunc,De.stencilRef,De.stencilFuncMask),l.setOp(De.stencilFail,De.stencilZFail,De.stencilZPass)),Ht(De.polygonOffset,De.polygonOffsetFactor,De.polygonOffsetUnits),De.alphaToCoverage===!0?et(n.SAMPLE_ALPHA_TO_COVERAGE):yt(n.SAMPLE_ALPHA_TO_COVERAGE)}function dt(De){j!==De&&(De?n.frontFace(n.CW):n.frontFace(n.CCW),j=De)}function vt(De){De!==dO?(et(n.CULL_FACE),De!==he&&(De===t2?n.cullFace(n.BACK):De===hO?n.cullFace(n.FRONT):n.cullFace(n.FRONT_AND_BACK))):yt(n.CULL_FACE),he=De}function Qt(De){De!==ke&&(Ve&&n.lineWidth(De),ke=De)}function Ht(De,bt,at){De?(et(n.POLYGON_OFFSET_FILL),(Me!==bt||ze!==at)&&(Me=bt,ze=at,s.getReversed()&&(bt=-bt),n.polygonOffset(bt,at))):yt(n.POLYGON_OFFSET_FILL)}function qt(De){De?et(n.SCISSOR_TEST):yt(n.SCISSOR_TEST)}function en(De){De===void 0&&(De=n.TEXTURE0+Ne-1),st!==De&&(n.activeTexture(De),st=De)}function Le(De,bt,at){at===void 0&&(st===null?at=n.TEXTURE0+Ne-1:at=st);let we=We[at];we===void 0&&(we={type:void 0,texture:void 0},We[at]=we),(we.type!==De||we.texture!==bt)&&(st!==at&&(n.activeTexture(at),st=at),n.bindTexture(De,bt||Xe[De]),we.type=De,we.texture=bt)}function fn(){let De=We[st];De!==void 0&&De.type!==void 0&&(n.bindTexture(De.type,null),De.type=void 0,De.texture=void 0)}function kt(){try{n.compressedTexImage2D(...arguments)}catch(De){cn("WebGLState:",De)}}function ge(){try{n.compressedTexImage3D(...arguments)}catch(De){cn("WebGLState:",De)}}function L(){try{n.texSubImage2D(...arguments)}catch(De){cn("WebGLState:",De)}}function N(){try{n.texSubImage3D(...arguments)}catch(De){cn("WebGLState:",De)}}function U(){try{n.compressedTexSubImage2D(...arguments)}catch(De){cn("WebGLState:",De)}}function ee(){try{n.compressedTexSubImage3D(...arguments)}catch(De){cn("WebGLState:",De)}}function ne(){try{n.texStorage2D(...arguments)}catch(De){cn("WebGLState:",De)}}function X(){try{n.texStorage3D(...arguments)}catch(De){cn("WebGLState:",De)}}function ie(){try{n.texImage2D(...arguments)}catch(De){cn("WebGLState:",De)}}function le(){try{n.texImage3D(...arguments)}catch(De){cn("WebGLState:",De)}}function be(De){return h[De]!==void 0?h[De]:n.getParameter(De)}function tt(De,bt){h[De]!==bt&&(n.pixelStorei(De,bt),h[De]=bt)}function Oe(De){jt.equals(De)===!1&&(n.scissor(De.x,De.y,De.z,De.w),jt.copy(De))}function je(De){zt.equals(De)===!1&&(n.viewport(De.x,De.y,De.z,De.w),zt.copy(De))}function Ct(De,bt){let at=f.get(bt);at===void 0&&(at=new WeakMap,f.set(bt,at));let we=at.get(De);we===void 0&&(we=n.getUniformBlockIndex(bt,De.name),at.set(De,we))}function nn(De,bt){let we=f.get(bt).get(De);c.get(bt)!==we&&(n.uniformBlockBinding(bt,we,De.__bindingPointIndex),c.set(bt,we))}function ht(){n.disable(n.BLEND),n.disable(n.CULL_FACE),n.disable(n.DEPTH_TEST),n.disable(n.POLYGON_OFFSET_FILL),n.disable(n.SCISSOR_TEST),n.disable(n.STENCIL_TEST),n.disable(n.SAMPLE_ALPHA_TO_COVERAGE),n.blendEquation(n.FUNC_ADD),n.blendFunc(n.ONE,n.ZERO),n.blendFuncSeparate(n.ONE,n.ZERO,n.ONE,n.ZERO),n.blendColor(0,0,0,0),n.colorMask(!0,!0,!0,!0),n.clearColor(0,0,0,0),n.depthMask(!0),n.depthFunc(n.LESS),s.setReversed(!1),n.clearDepth(1),n.stencilMask(4294967295),n.stencilFunc(n.ALWAYS,0,4294967295),n.stencilOp(n.KEEP,n.KEEP,n.KEEP),n.clearStencil(0),n.cullFace(n.BACK),n.frontFace(n.CCW),n.polygonOffset(0,0),n.activeTexture(n.TEXTURE0),n.bindFramebuffer(n.FRAMEBUFFER,null),n.bindFramebuffer(n.DRAW_FRAMEBUFFER,null),n.bindFramebuffer(n.READ_FRAMEBUFFER,null),n.useProgram(null),n.lineWidth(1),n.scissor(0,0,n.canvas.width,n.canvas.height),n.viewport(0,0,n.canvas.width,n.canvas.height),n.pixelStorei(n.PACK_ALIGNMENT,4),n.pixelStorei(n.UNPACK_ALIGNMENT,4),n.pixelStorei(n.UNPACK_FLIP_Y_WEBGL,!1),n.pixelStorei(n.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),n.pixelStorei(n.UNPACK_COLORSPACE_CONVERSION_WEBGL,n.BROWSER_DEFAULT_WEBGL),n.pixelStorei(n.PACK_ROW_LENGTH,0),n.pixelStorei(n.PACK_SKIP_PIXELS,0),n.pixelStorei(n.PACK_SKIP_ROWS,0),n.pixelStorei(n.UNPACK_ROW_LENGTH,0),n.pixelStorei(n.UNPACK_IMAGE_HEIGHT,0),n.pixelStorei(n.UNPACK_SKIP_PIXELS,0),n.pixelStorei(n.UNPACK_SKIP_ROWS,0),n.pixelStorei(n.UNPACK_SKIP_IMAGES,0),p={},h={},st=null,We={},_={},g=new WeakMap,E=[],x=null,S=!1,v=null,M=null,O=null,k=null,q=null,G=null,Q=null,H=new Vt(0,0,0),Z=0,te=!1,j=null,he=null,ke=null,Me=null,ze=null,jt.set(0,0,n.canvas.width,n.canvas.height),zt.set(0,0,n.canvas.width,n.canvas.height),a.reset(),s.reset(),l.reset()}return{buffers:{color:a,depth:s,stencil:l},enable:et,disable:yt,bindFramebuffer:Wt,drawBuffers:Lt,useProgram:sn,setBlending:_e,setMaterial:Pe,setFlipSided:dt,setCullFace:vt,setLineWidth:Qt,setPolygonOffset:Ht,setScissorTest:qt,activeTexture:en,bindTexture:Le,unbindTexture:fn,compressedTexImage2D:kt,compressedTexImage3D:ge,texImage2D:ie,texImage3D:le,pixelStorei:tt,getParameter:be,updateUBOMapping:Ct,uniformBlockBinding:nn,texStorage2D:ne,texStorage3D:X,texSubImage2D:L,texSubImage3D:N,compressedTexSubImage2D:U,compressedTexSubImage3D:ee,scissor:Oe,viewport:je,reset:ht}}function bJ(n,e,t,i,r,a,s){let l=e.has("WEBGL_multisampled_render_to_texture")?e.get("WEBGL_multisampled_render_to_texture"):null,c=typeof navigator>"u"?!1:/OculusBrowser/g.test(navigator.userAgent),f=new ut,p=new WeakMap,h=new Set,_,g=new WeakMap,E=!1;try{E=typeof OffscreenCanvas<"u"&&new OffscreenCanvas(1,1).getContext("2d")!==null}catch{}function x(ge,L){return E?new OffscreenCanvas(ge,L):f0("canvas")}function S(ge,L,N){let U=1,ee=kt(ge);if((ee.width>N||ee.height>N)&&(U=N/Math.max(ee.width,ee.height)),U<1)if(typeof HTMLImageElement<"u"&&ge instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&ge instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&ge instanceof ImageBitmap||typeof VideoFrame<"u"&&ge instanceof VideoFrame){let ne=Math.floor(U*ee.width),X=Math.floor(U*ee.height);_===void 0&&(_=x(ne,X));let ie=L?x(ne,X):_;return ie.width=ne,ie.height=X,ie.getContext("2d").drawImage(ge,0,0,ne,X),Ft("WebGLRenderer: Texture has been resized from ("+ee.width+"x"+ee.height+") to ("+ne+"x"+X+")."),ie}else return"data"in ge&&Ft("WebGLRenderer: Image in DataTexture is too big ("+ee.width+"x"+ee.height+")."),ge;return ge}function v(ge){return ge.generateMipmaps}function M(ge){n.generateMipmap(ge)}function O(ge){return ge.isWebGLCubeRenderTarget?n.TEXTURE_CUBE_MAP:ge.isWebGL3DRenderTarget?n.TEXTURE_3D:ge.isWebGLArrayRenderTarget||ge.isCompressedArrayTexture?n.TEXTURE_2D_ARRAY:n.TEXTURE_2D}function k(ge,L,N,U,ee,ne=!1){if(ge!==null){if(n[ge]!==void 0)return n[ge];Ft("WebGLRenderer: Attempt to use non-existing WebGL internal format '"+ge+"'")}let X;U&&(X=e.get("EXT_texture_norm16"),X||Ft("WebGLRenderer: Unable to use normalized textures without EXT_texture_norm16 extension"));let ie=L;if(L===n.RED&&(N===n.FLOAT&&(ie=n.R32F),N===n.HALF_FLOAT&&(ie=n.R16F),N===n.UNSIGNED_BYTE&&(ie=n.R8),N===n.UNSIGNED_SHORT&&X&&(ie=X.R16_EXT),N===n.SHORT&&X&&(ie=X.R16_SNORM_EXT)),L===n.RED_INTEGER&&(N===n.UNSIGNED_BYTE&&(ie=n.R8UI),N===n.UNSIGNED_SHORT&&(ie=n.R16UI),N===n.UNSIGNED_INT&&(ie=n.R32UI),N===n.BYTE&&(ie=n.R8I),N===n.SHORT&&(ie=n.R16I),N===n.INT&&(ie=n.R32I)),L===n.RG&&(N===n.FLOAT&&(ie=n.RG32F),N===n.HALF_FLOAT&&(ie=n.RG16F),N===n.UNSIGNED_BYTE&&(ie=n.RG8),N===n.UNSIGNED_SHORT&&X&&(ie=X.RG16_EXT),N===n.SHORT&&X&&(ie=X.RG16_SNORM_EXT)),L===n.RG_INTEGER&&(N===n.UNSIGNED_BYTE&&(ie=n.RG8UI),N===n.UNSIGNED_SHORT&&(ie=n.RG16UI),N===n.UNSIGNED_INT&&(ie=n.RG32UI),N===n.BYTE&&(ie=n.RG8I),N===n.SHORT&&(ie=n.RG16I),N===n.INT&&(ie=n.RG32I)),L===n.RGB_INTEGER&&(N===n.UNSIGNED_BYTE&&(ie=n.RGB8UI),N===n.UNSIGNED_SHORT&&(ie=n.RGB16UI),N===n.UNSIGNED_INT&&(ie=n.RGB32UI),N===n.BYTE&&(ie=n.RGB8I),N===n.SHORT&&(ie=n.RGB16I),N===n.INT&&(ie=n.RGB32I)),L===n.RGBA_INTEGER&&(N===n.UNSIGNED_BYTE&&(ie=n.RGBA8UI),N===n.UNSIGNED_SHORT&&(ie=n.RGBA16UI),N===n.UNSIGNED_INT&&(ie=n.RGBA32UI),N===n.BYTE&&(ie=n.RGBA8I),N===n.SHORT&&(ie=n.RGBA16I),N===n.INT&&(ie=n.RGBA32I)),L===n.RGB&&(N===n.UNSIGNED_SHORT&&X&&(ie=X.RGB16_EXT),N===n.SHORT&&X&&(ie=X.RGB16_SNORM_EXT),N===n.UNSIGNED_INT_5_9_9_9_REV&&(ie=n.RGB9_E5),N===n.UNSIGNED_INT_10F_11F_11F_REV&&(ie=n.R11F_G11F_B10F)),L===n.RGBA){let le=ne?c0:Gn.getTransfer(ee);N===n.FLOAT&&(ie=n.RGBA32F),N===n.HALF_FLOAT&&(ie=n.RGBA16F),N===n.UNSIGNED_BYTE&&(ie=le===xi?n.SRGB8_ALPHA8:n.RGBA8),N===n.UNSIGNED_SHORT&&X&&(ie=X.RGBA16_EXT),N===n.SHORT&&X&&(ie=X.RGBA16_SNORM_EXT),N===n.UNSIGNED_SHORT_4_4_4_4&&(ie=n.RGBA4),N===n.UNSIGNED_SHORT_5_5_5_1&&(ie=n.RGB5_A1)}return(ie===n.R16F||ie===n.R32F||ie===n.RG16F||ie===n.RG32F||ie===n.RGBA16F||ie===n.RGBA32F)&&e.get("EXT_color_buffer_float"),ie}function q(ge,L){let N;return ge?L===null||L===il||L===A_?N=n.DEPTH24_STENCIL8:L===as?N=n.DEPTH32F_STENCIL8:L===M_&&(N=n.DEPTH24_STENCIL8,Ft("DepthTexture: 16 bit depth attachment is not supported with stencil. Using 24-bit attachment.")):L===null||L===il||L===A_?N=n.DEPTH_COMPONENT24:L===as?N=n.DEPTH_COMPONENT32F:L===M_&&(N=n.DEPTH_COMPONENT16),N}function G(ge,L){return v(ge)===!0||ge.isFramebufferTexture&&ge.minFilter!==br&&ge.minFilter!==Ji?Math.log2(Math.max(L.width,L.height))+1:ge.mipmaps!==void 0&&ge.mipmaps.length>0?ge.mipmaps.length:ge.isCompressedTexture&&Array.isArray(ge.image)?L.mipmaps.length:1}function Q(ge){let L=ge.target;L.removeEventListener("dispose",Q),Z(L),L.isVideoTexture&&p.delete(L),L.isHTMLTexture&&h.delete(L)}function H(ge){let L=ge.target;L.removeEventListener("dispose",H),j(L)}function Z(ge){let L=i.get(ge);if(L.__webglInit===void 0)return;let N=ge.source,U=g.get(N);if(U){let ee=U[L.__cacheKey];ee.usedTimes--,ee.usedTimes===0&&te(ge),Object.keys(U).length===0&&g.delete(N)}i.remove(ge)}function te(ge){let L=i.get(ge);n.deleteTexture(L.__webglTexture);let N=ge.source,U=g.get(N);delete U[L.__cacheKey],s.memory.textures--}function j(ge){let L=i.get(ge);if(ge.depthTexture&&(ge.depthTexture.dispose(),i.remove(ge.depthTexture)),ge.isWebGLCubeRenderTarget)for(let U=0;U<6;U++){if(Array.isArray(L.__webglFramebuffer[U]))for(let ee=0;ee<L.__webglFramebuffer[U].length;ee++)n.deleteFramebuffer(L.__webglFramebuffer[U][ee]);else n.deleteFramebuffer(L.__webglFramebuffer[U]);L.__webglDepthbuffer&&n.deleteRenderbuffer(L.__webglDepthbuffer[U])}else{if(Array.isArray(L.__webglFramebuffer))for(let U=0;U<L.__webglFramebuffer.length;U++)n.deleteFramebuffer(L.__webglFramebuffer[U]);else n.deleteFramebuffer(L.__webglFramebuffer);if(L.__webglDepthbuffer&&n.deleteRenderbuffer(L.__webglDepthbuffer),L.__webglMultisampledFramebuffer&&n.deleteFramebuffer(L.__webglMultisampledFramebuffer),L.__webglColorRenderbuffer)for(let U=0;U<L.__webglColorRenderbuffer.length;U++)L.__webglColorRenderbuffer[U]&&n.deleteRenderbuffer(L.__webglColorRenderbuffer[U]);L.__webglDepthRenderbuffer&&n.deleteRenderbuffer(L.__webglDepthRenderbuffer)}let N=ge.textures;for(let U=0,ee=N.length;U<ee;U++){let ne=i.get(N[U]);ne.__webglTexture&&(n.deleteTexture(ne.__webglTexture),s.memory.textures--),i.remove(N[U])}i.remove(ge)}let he=0;function ke(){he=0}function Me(){return he}function ze(ge){he=ge}function Ne(){let ge=he;return ge>=r.maxTextures&&Ft("WebGLTextures: Trying to use "+(ge+1)+" texture units while this GPU supports only "+r.maxTextures),he+=1,ge}function Ve(ge){let L=[];return L.push(ge.wrapS),L.push(ge.wrapT),L.push(ge.wrapR||0),L.push(ge.magFilter),L.push(ge.minFilter),L.push(ge.anisotropy),L.push(ge.internalFormat),L.push(ge.format),L.push(ge.type),L.push(ge.generateMipmaps),L.push(ge.premultiplyAlpha),L.push(ge.flipY),L.push(ge.unpackAlignment),L.push(ge.colorSpace),L.join()}function Je(ge,L){let N=i.get(ge);if(ge.isVideoTexture&&Le(ge),ge.isRenderTargetTexture===!1&&ge.isExternalTexture!==!0&&ge.version>0&&N.__version!==ge.version){let U=ge.image;if(U===null)Ft("WebGLRenderer: Texture marked for update but no image data found.");else if(U.complete===!1)Ft("WebGLRenderer: Texture marked for update but image is incomplete");else{yt(N,ge,L);return}}else ge.isExternalTexture&&(N.__webglTexture=ge.sourceTexture?ge.sourceTexture:null);t.bindTexture(n.TEXTURE_2D,N.__webglTexture,n.TEXTURE0+L)}function Qe(ge,L){let N=i.get(ge);if(ge.isRenderTargetTexture===!1&&ge.version>0&&N.__version!==ge.version){yt(N,ge,L);return}else ge.isExternalTexture&&(N.__webglTexture=ge.sourceTexture?ge.sourceTexture:null);t.bindTexture(n.TEXTURE_2D_ARRAY,N.__webglTexture,n.TEXTURE0+L)}function st(ge,L){let N=i.get(ge);if(ge.isRenderTargetTexture===!1&&ge.version>0&&N.__version!==ge.version){yt(N,ge,L);return}t.bindTexture(n.TEXTURE_3D,N.__webglTexture,n.TEXTURE0+L)}function We(ge,L){let N=i.get(ge);if(ge.isCubeDepthTexture!==!0&&ge.version>0&&N.__version!==ge.version){Wt(N,ge,L);return}t.bindTexture(n.TEXTURE_CUBE_MAP,N.__webglTexture,n.TEXTURE0+L)}let gt={[s0]:n.REPEAT,[Ms]:n.CLAMP_TO_EDGE,[o0]:n.MIRRORED_REPEAT},Et={[br]:n.NEAREST,[p2]:n.NEAREST_MIPMAP_NEAREST,[T_]:n.NEAREST_MIPMAP_LINEAR,[Ji]:n.LINEAR,[X0]:n.LINEAR_MIPMAP_NEAREST,[Fu]:n.LINEAR_MIPMAP_LINEAR},jt={[BO]:n.NEVER,[jO]:n.ALWAYS,[HO]:n.LESS,[O1]:n.LEQUAL,[VO]:n.EQUAL,[D1]:n.GEQUAL,[GO]:n.GREATER,[WO]:n.NOTEQUAL};function zt(ge,L){if(L.type===as&&e.has("OES_texture_float_linear")===!1&&(L.magFilter===Ji||L.magFilter===X0||L.magFilter===T_||L.magFilter===Fu||L.minFilter===Ji||L.minFilter===X0||L.minFilter===T_||L.minFilter===Fu)&&Ft("WebGLRenderer: Unable to use linear filtering with floating point textures. OES_texture_float_linear not supported on this device."),n.texParameteri(ge,n.TEXTURE_WRAP_S,gt[L.wrapS]),n.texParameteri(ge,n.TEXTURE_WRAP_T,gt[L.wrapT]),(ge===n.TEXTURE_3D||ge===n.TEXTURE_2D_ARRAY)&&n.texParameteri(ge,n.TEXTURE_WRAP_R,gt[L.wrapR]),n.texParameteri(ge,n.TEXTURE_MAG_FILTER,Et[L.magFilter]),n.texParameteri(ge,n.TEXTURE_MIN_FILTER,Et[L.minFilter]),L.compareFunction&&(n.texParameteri(ge,n.TEXTURE_COMPARE_MODE,n.COMPARE_REF_TO_TEXTURE),n.texParameteri(ge,n.TEXTURE_COMPARE_FUNC,jt[L.compareFunction])),e.has("EXT_texture_filter_anisotropic")===!0){if(L.magFilter===br||L.minFilter!==T_&&L.minFilter!==Fu||L.type===as&&e.has("OES_texture_float_linear")===!1)return;if(L.anisotropy>1||i.get(L).__currentAnisotropy){let N=e.get("EXT_texture_filter_anisotropic");n.texParameterf(ge,N.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(L.anisotropy,r.getMaxAnisotropy())),i.get(L).__currentAnisotropy=L.anisotropy}}}function Mt(ge,L){let N=!1;ge.__webglInit===void 0&&(ge.__webglInit=!0,L.addEventListener("dispose",Q));let U=L.source,ee=g.get(U);ee===void 0&&(ee={},g.set(U,ee));let ne=Ve(L);if(ne!==ge.__cacheKey){ee[ne]===void 0&&(ee[ne]={texture:n.createTexture(),usedTimes:0},s.memory.textures++,N=!0),ee[ne].usedTimes++;let X=ee[ge.__cacheKey];X!==void 0&&(ee[ge.__cacheKey].usedTimes--,X.usedTimes===0&&te(L)),ge.__cacheKey=ne,ge.__webglTexture=ee[ne].texture}return N}function Xe(ge,L,N){return Math.floor(Math.floor(ge/N)/L)}function et(ge,L,N,U){let ne=ge.updateRanges;if(ne.length===0)t.texSubImage2D(n.TEXTURE_2D,0,0,0,L.width,L.height,N,U,L.data);else{ne.sort((tt,Oe)=>tt.start-Oe.start);let X=0;for(let tt=1;tt<ne.length;tt++){let Oe=ne[X],je=ne[tt],Ct=Oe.start+Oe.count,nn=Xe(je.start,L.width,4),ht=Xe(Oe.start,L.width,4);je.start<=Ct+1&&nn===ht&&Xe(je.start+je.count-1,L.width,4)===nn?Oe.count=Math.max(Oe.count,je.start+je.count-Oe.start):(++X,ne[X]=je)}ne.length=X+1;let ie=t.getParameter(n.UNPACK_ROW_LENGTH),le=t.getParameter(n.UNPACK_SKIP_PIXELS),be=t.getParameter(n.UNPACK_SKIP_ROWS);t.pixelStorei(n.UNPACK_ROW_LENGTH,L.width);for(let tt=0,Oe=ne.length;tt<Oe;tt++){let je=ne[tt],Ct=Math.floor(je.start/4),nn=Math.ceil(je.count/4),ht=Ct%L.width,De=Math.floor(Ct/L.width),bt=nn,at=1;t.pixelStorei(n.UNPACK_SKIP_PIXELS,ht),t.pixelStorei(n.UNPACK_SKIP_ROWS,De),t.texSubImage2D(n.TEXTURE_2D,0,ht,De,bt,at,N,U,L.data)}ge.clearUpdateRanges(),t.pixelStorei(n.UNPACK_ROW_LENGTH,ie),t.pixelStorei(n.UNPACK_SKIP_PIXELS,le),t.pixelStorei(n.UNPACK_SKIP_ROWS,be)}}function yt(ge,L,N){let U=n.TEXTURE_2D;(L.isDataArrayTexture||L.isCompressedArrayTexture)&&(U=n.TEXTURE_2D_ARRAY),L.isData3DTexture&&(U=n.TEXTURE_3D);let ee=Mt(ge,L),ne=L.source;t.bindTexture(U,ge.__webglTexture,n.TEXTURE0+N);let X=i.get(ne);if(ne.version!==X.__version||ee===!0){if(t.activeTexture(n.TEXTURE0+N),(typeof ImageBitmap<"u"&&L.image instanceof ImageBitmap)===!1){let at=Gn.getPrimaries(Gn.workingColorSpace),we=L.colorSpace===jc?null:Gn.getPrimaries(L.colorSpace),Rt=L.colorSpace===jc||at===we?n.NONE:n.BROWSER_DEFAULT_WEBGL;t.pixelStorei(n.UNPACK_FLIP_Y_WEBGL,L.flipY),t.pixelStorei(n.UNPACK_PREMULTIPLY_ALPHA_WEBGL,L.premultiplyAlpha),t.pixelStorei(n.UNPACK_COLORSPACE_CONVERSION_WEBGL,Rt)}t.pixelStorei(n.UNPACK_ALIGNMENT,L.unpackAlignment);let le=S(L.image,!1,r.maxTextureSize);le=fn(L,le);let be=a.convert(L.format,L.colorSpace),tt=a.convert(L.type),Oe=k(L.internalFormat,be,tt,L.normalized,L.colorSpace,L.isVideoTexture);zt(U,L);let je,Ct=L.mipmaps,nn=L.isVideoTexture!==!0,ht=X.__version===void 0||ee===!0,De=ne.dataReady,bt=G(L,le);if(L.isDepthTexture)Oe=q(L.format===ed,L.type),ht&&(nn?t.texStorage2D(n.TEXTURE_2D,1,Oe,le.width,le.height):t.texImage2D(n.TEXTURE_2D,0,Oe,le.width,le.height,0,be,tt,null));else if(L.isDataTexture)if(Ct.length>0){nn&&ht&&t.texStorage2D(n.TEXTURE_2D,bt,Oe,Ct[0].width,Ct[0].height);for(let at=0,we=Ct.length;at<we;at++)je=Ct[at],nn?De&&t.texSubImage2D(n.TEXTURE_2D,at,0,0,je.width,je.height,be,tt,je.data):t.texImage2D(n.TEXTURE_2D,at,Oe,je.width,je.height,0,be,tt,je.data);L.generateMipmaps=!1}else nn?(ht&&t.texStorage2D(n.TEXTURE_2D,bt,Oe,le.width,le.height),De&&et(L,le,be,tt)):t.texImage2D(n.TEXTURE_2D,0,Oe,le.width,le.height,0,be,tt,le.data);else if(L.isCompressedTexture)if(L.isCompressedArrayTexture){nn&&ht&&t.texStorage3D(n.TEXTURE_2D_ARRAY,bt,Oe,Ct[0].width,Ct[0].height,le.depth);for(let at=0,we=Ct.length;at<we;at++)if(je=Ct[at],L.format!==wa)if(be!==null)if(nn){if(De)if(L.layerUpdates.size>0){let Rt=x2(je.width,je.height,L.format,L.type);for(let ft of L.layerUpdates){let Yt=je.data.subarray(ft*Rt/je.data.BYTES_PER_ELEMENT,(ft+1)*Rt/je.data.BYTES_PER_ELEMENT);t.compressedTexSubImage3D(n.TEXTURE_2D_ARRAY,at,0,0,ft,je.width,je.height,1,be,Yt)}}else t.compressedTexSubImage3D(n.TEXTURE_2D_ARRAY,at,0,0,0,je.width,je.height,le.depth,be,je.data)}else t.compressedTexImage3D(n.TEXTURE_2D_ARRAY,at,Oe,je.width,je.height,le.depth,0,je.data,0,0);else Ft("WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()");else nn?De&&t.texSubImage3D(n.TEXTURE_2D_ARRAY,at,0,0,0,je.width,je.height,le.depth,be,tt,je.data):t.texImage3D(n.TEXTURE_2D_ARRAY,at,Oe,je.width,je.height,le.depth,0,be,tt,je.data);L.layerUpdates.size>0&&L.clearLayerUpdates()}else{nn&&ht&&t.texStorage2D(n.TEXTURE_2D,bt,Oe,Ct[0].width,Ct[0].height);for(let at=0,we=Ct.length;at<we;at++)je=Ct[at],L.format!==wa?be!==null?nn?De&&t.compressedTexSubImage2D(n.TEXTURE_2D,at,0,0,je.width,je.height,be,je.data):t.compressedTexImage2D(n.TEXTURE_2D,at,Oe,je.width,je.height,0,je.data):Ft("WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()"):nn?De&&t.texSubImage2D(n.TEXTURE_2D,at,0,0,je.width,je.height,be,tt,je.data):t.texImage2D(n.TEXTURE_2D,at,Oe,je.width,je.height,0,be,tt,je.data)}else if(L.isDataArrayTexture)if(nn){if(ht&&t.texStorage3D(n.TEXTURE_2D_ARRAY,bt,Oe,le.width,le.height,le.depth),De)if(L.layerUpdates.size>0){let at=x2(le.width,le.height,L.format,L.type);for(let we of L.layerUpdates){let Rt=le.data.subarray(we*at/le.data.BYTES_PER_ELEMENT,(we+1)*at/le.data.BYTES_PER_ELEMENT);t.texSubImage3D(n.TEXTURE_2D_ARRAY,0,0,0,we,le.width,le.height,1,be,tt,Rt)}L.clearLayerUpdates()}else t.texSubImage3D(n.TEXTURE_2D_ARRAY,0,0,0,0,le.width,le.height,le.depth,be,tt,le.data)}else t.texImage3D(n.TEXTURE_2D_ARRAY,0,Oe,le.width,le.height,le.depth,0,be,tt,le.data);else if(L.isData3DTexture)nn?(ht&&t.texStorage3D(n.TEXTURE_3D,bt,Oe,le.width,le.height,le.depth),De&&t.texSubImage3D(n.TEXTURE_3D,0,0,0,0,le.width,le.height,le.depth,be,tt,le.data)):t.texImage3D(n.TEXTURE_3D,0,Oe,le.width,le.height,le.depth,0,be,tt,le.data);else if(L.isFramebufferTexture){if(ht)if(nn)t.texStorage2D(n.TEXTURE_2D,bt,Oe,le.width,le.height);else{let at=le.width,we=le.height;for(let Rt=0;Rt<bt;Rt++)t.texImage2D(n.TEXTURE_2D,Rt,Oe,at,we,0,be,tt,null),at>>=1,we>>=1}}else if(L.isHTMLTexture){if("texElementImage2D"in n){let at=n.canvas;if(at.hasAttribute("layoutsubtree")||at.setAttribute("layoutsubtree","true"),le.parentNode!==at){at.appendChild(le),h.add(L),at.onpaint=we=>{let Rt=we.changedElements;for(let ft of h)Rt.includes(ft.image)&&(ft.needsUpdate=!0)},at.requestPaint();return}if(n.texElementImage2D.length===3)n.texElementImage2D(n.TEXTURE_2D,n.RGBA8,le);else{let Rt=n.RGBA,ft=n.RGBA,Yt=n.UNSIGNED_BYTE;n.texElementImage2D(n.TEXTURE_2D,0,Rt,ft,Yt,le)}n.texParameteri(n.TEXTURE_2D,n.TEXTURE_MIN_FILTER,n.LINEAR),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_WRAP_S,n.CLAMP_TO_EDGE),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_WRAP_T,n.CLAMP_TO_EDGE)}}else if(Ct.length>0){if(nn&&ht){let at=kt(Ct[0]);t.texStorage2D(n.TEXTURE_2D,bt,Oe,at.width,at.height)}for(let at=0,we=Ct.length;at<we;at++)je=Ct[at],nn?De&&t.texSubImage2D(n.TEXTURE_2D,at,0,0,be,tt,je):t.texImage2D(n.TEXTURE_2D,at,Oe,be,tt,je);L.generateMipmaps=!1}else if(nn){if(ht){let at=kt(le);t.texStorage2D(n.TEXTURE_2D,bt,Oe,at.width,at.height)}De&&t.texSubImage2D(n.TEXTURE_2D,0,0,0,be,tt,le)}else t.texImage2D(n.TEXTURE_2D,0,Oe,be,tt,le);v(L)&&M(U),X.__version=ne.version,L.onUpdate&&L.onUpdate(L)}ge.__version=L.version}function Wt(ge,L,N){if(L.image.length!==6)return;let U=Mt(ge,L),ee=L.source;t.bindTexture(n.TEXTURE_CUBE_MAP,ge.__webglTexture,n.TEXTURE0+N);let ne=i.get(ee);if(ee.version!==ne.__version||U===!0){t.activeTexture(n.TEXTURE0+N);let X=Gn.getPrimaries(Gn.workingColorSpace),ie=L.colorSpace===jc?null:Gn.getPrimaries(L.colorSpace),le=L.colorSpace===jc||X===ie?n.NONE:n.BROWSER_DEFAULT_WEBGL;t.pixelStorei(n.UNPACK_FLIP_Y_WEBGL,L.flipY),t.pixelStorei(n.UNPACK_PREMULTIPLY_ALPHA_WEBGL,L.premultiplyAlpha),t.pixelStorei(n.UNPACK_ALIGNMENT,L.unpackAlignment),t.pixelStorei(n.UNPACK_COLORSPACE_CONVERSION_WEBGL,le);let be=L.isCompressedTexture||L.image[0].isCompressedTexture,tt=L.image[0]&&L.image[0].isDataTexture,Oe=[];for(let ft=0;ft<6;ft++)!be&&!tt?Oe[ft]=S(L.image[ft],!0,r.maxCubemapSize):Oe[ft]=tt?L.image[ft].image:L.image[ft],Oe[ft]=fn(L,Oe[ft]);let je=Oe[0],Ct=a.convert(L.format,L.colorSpace),nn=a.convert(L.type),ht=k(L.internalFormat,Ct,nn,L.normalized,L.colorSpace),De=L.isVideoTexture!==!0,bt=ne.__version===void 0||U===!0,at=ee.dataReady,we=G(L,je);zt(n.TEXTURE_CUBE_MAP,L);let Rt;if(be){De&&bt&&t.texStorage2D(n.TEXTURE_CUBE_MAP,we,ht,je.width,je.height);for(let ft=0;ft<6;ft++){Rt=Oe[ft].mipmaps;for(let Yt=0;Yt<Rt.length;Yt++){let $t=Rt[Yt];L.format!==wa?Ct!==null?De?at&&t.compressedTexSubImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+ft,Yt,0,0,$t.width,$t.height,Ct,$t.data):t.compressedTexImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+ft,Yt,ht,$t.width,$t.height,0,$t.data):Ft("WebGLRenderer: Attempt to load unsupported compressed texture format in .setTextureCube()"):De?at&&t.texSubImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+ft,Yt,0,0,$t.width,$t.height,Ct,nn,$t.data):t.texImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+ft,Yt,ht,$t.width,$t.height,0,Ct,nn,$t.data)}}}else{if(Rt=L.mipmaps,De&&bt){Rt.length>0&&we++;let ft=kt(Oe[0]);t.texStorage2D(n.TEXTURE_CUBE_MAP,we,ht,ft.width,ft.height)}for(let ft=0;ft<6;ft++)if(tt){De?at&&t.texSubImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+ft,0,0,0,Oe[ft].width,Oe[ft].height,Ct,nn,Oe[ft].data):t.texImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+ft,0,ht,Oe[ft].width,Oe[ft].height,0,Ct,nn,Oe[ft].data);for(let Yt=0;Yt<Rt.length;Yt++){let Wn=Rt[Yt].image[ft].image;De?at&&t.texSubImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+ft,Yt+1,0,0,Wn.width,Wn.height,Ct,nn,Wn.data):t.texImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+ft,Yt+1,ht,Wn.width,Wn.height,0,Ct,nn,Wn.data)}}else{De?at&&t.texSubImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+ft,0,0,0,Ct,nn,Oe[ft]):t.texImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+ft,0,ht,Ct,nn,Oe[ft]);for(let Yt=0;Yt<Rt.length;Yt++){let $t=Rt[Yt];De?at&&t.texSubImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+ft,Yt+1,0,0,Ct,nn,$t.image[ft]):t.texImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+ft,Yt+1,ht,Ct,nn,$t.image[ft])}}}v(L)&&M(n.TEXTURE_CUBE_MAP),ne.__version=ee.version,L.onUpdate&&L.onUpdate(L)}ge.__version=L.version}function Lt(ge,L,N,U,ee,ne){let X=a.convert(N.format,N.colorSpace),ie=a.convert(N.type),le=k(N.internalFormat,X,ie,N.normalized,N.colorSpace),be=i.get(L),tt=i.get(N);if(tt.__renderTarget=L,!be.__hasExternalTextures){let Oe=Math.max(1,L.width>>ne),je=Math.max(1,L.height>>ne);ee===n.TEXTURE_3D||ee===n.TEXTURE_2D_ARRAY?t.texImage3D(ee,ne,le,Oe,je,L.depth,0,X,ie,null):t.texImage2D(ee,ne,le,Oe,je,0,X,ie,null)}t.bindFramebuffer(n.FRAMEBUFFER,ge),en(L)?l.framebufferTexture2DMultisampleEXT(n.FRAMEBUFFER,U,ee,tt.__webglTexture,0,qt(L)):(ee===n.TEXTURE_2D||ee>=n.TEXTURE_CUBE_MAP_POSITIVE_X&&ee<=n.TEXTURE_CUBE_MAP_NEGATIVE_Z)&&n.framebufferTexture2D(n.FRAMEBUFFER,U,ee,tt.__webglTexture,ne),t.bindFramebuffer(n.FRAMEBUFFER,null)}function sn(ge,L,N){if(n.bindRenderbuffer(n.RENDERBUFFER,ge),L.depthBuffer){let U=L.depthTexture,ee=U&&U.isDepthTexture?U.type:null,ne=q(L.stencilBuffer,ee),X=L.stencilBuffer?n.DEPTH_STENCIL_ATTACHMENT:n.DEPTH_ATTACHMENT;en(L)?l.renderbufferStorageMultisampleEXT(n.RENDERBUFFER,qt(L),ne,L.width,L.height):N?n.renderbufferStorageMultisample(n.RENDERBUFFER,qt(L),ne,L.width,L.height):n.renderbufferStorage(n.RENDERBUFFER,ne,L.width,L.height),n.framebufferRenderbuffer(n.FRAMEBUFFER,X,n.RENDERBUFFER,ge)}else{let U=L.textures;for(let ee=0;ee<U.length;ee++){let ne=U[ee],X=a.convert(ne.format,ne.colorSpace),ie=a.convert(ne.type),le=k(ne.internalFormat,X,ie,ne.normalized,ne.colorSpace);en(L)?l.renderbufferStorageMultisampleEXT(n.RENDERBUFFER,qt(L),le,L.width,L.height):N?n.renderbufferStorageMultisample(n.RENDERBUFFER,qt(L),le,L.width,L.height):n.renderbufferStorage(n.RENDERBUFFER,le,L.width,L.height)}}n.bindRenderbuffer(n.RENDERBUFFER,null)}function pn(ge,L,N){let U=L.isWebGLCubeRenderTarget===!0;if(t.bindFramebuffer(n.FRAMEBUFFER,ge),!(L.depthTexture&&L.depthTexture.isDepthTexture))throw new Error("THREE.WebGLTextures: renderTarget.depthTexture must be an instance of THREE.DepthTexture.");let ee=i.get(L.depthTexture);if(ee.__renderTarget=L,(!ee.__webglTexture||L.depthTexture.image.width!==L.width||L.depthTexture.image.height!==L.height)&&(L.depthTexture.image.width=L.width,L.depthTexture.image.height=L.height,L.depthTexture.needsUpdate=!0),U){if(ee.__webglInit===void 0&&(ee.__webglInit=!0,L.depthTexture.addEventListener("dispose",Q)),ee.__webglTexture===void 0){ee.__webglTexture=n.createTexture(),t.bindTexture(n.TEXTURE_CUBE_MAP,ee.__webglTexture),zt(n.TEXTURE_CUBE_MAP,L.depthTexture);let be=a.convert(L.depthTexture.format),tt=a.convert(L.depthTexture.type),Oe;L.depthTexture.format===Cu?Oe=n.DEPTH_COMPONENT24:L.depthTexture.format===ed&&(Oe=n.DEPTH24_STENCIL8);for(let je=0;je<6;je++)n.texImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+je,0,Oe,L.width,L.height,0,be,tt,null)}}else Je(L.depthTexture,0);let ne=ee.__webglTexture,X=qt(L),ie=U?n.TEXTURE_CUBE_MAP_POSITIVE_X+N:n.TEXTURE_2D,le=L.depthTexture.format===ed?n.DEPTH_STENCIL_ATTACHMENT:n.DEPTH_ATTACHMENT;if(L.depthTexture.format===Cu)en(L)?l.framebufferTexture2DMultisampleEXT(n.FRAMEBUFFER,le,ie,ne,0,X):n.framebufferTexture2D(n.FRAMEBUFFER,le,ie,ne,0);else if(L.depthTexture.format===ed)en(L)?l.framebufferTexture2DMultisampleEXT(n.FRAMEBUFFER,le,ie,ne,0,X):n.framebufferTexture2D(n.FRAMEBUFFER,le,ie,ne,0);else throw new Error("THREE.WebGLTextures: Unknown depthTexture format.")}function lt(ge){let L=i.get(ge),N=ge.isWebGLCubeRenderTarget===!0;if(L.__boundDepthTexture!==ge.depthTexture){let U=ge.depthTexture;if(L.__depthDisposeCallback&&L.__depthDisposeCallback(),U){let ee=()=>{delete L.__boundDepthTexture,delete L.__depthDisposeCallback,U.removeEventListener("dispose",ee)};U.addEventListener("dispose",ee),L.__depthDisposeCallback=ee}L.__boundDepthTexture=U}if(ge.depthTexture&&!L.__autoAllocateDepthBuffer)if(N)for(let U=0;U<6;U++)pn(L.__webglFramebuffer[U],ge,U);else{let U=ge.texture.mipmaps;U&&U.length>0?pn(L.__webglFramebuffer[0],ge,0):pn(L.__webglFramebuffer,ge,0)}else if(N){L.__webglDepthbuffer=[];for(let U=0;U<6;U++)if(t.bindFramebuffer(n.FRAMEBUFFER,L.__webglFramebuffer[U]),L.__webglDepthbuffer[U]===void 0)L.__webglDepthbuffer[U]=n.createRenderbuffer(),sn(L.__webglDepthbuffer[U],ge,!1);else{let ee=ge.stencilBuffer?n.DEPTH_STENCIL_ATTACHMENT:n.DEPTH_ATTACHMENT,ne=L.__webglDepthbuffer[U];n.bindRenderbuffer(n.RENDERBUFFER,ne),n.framebufferRenderbuffer(n.FRAMEBUFFER,ee,n.RENDERBUFFER,ne)}}else{let U=ge.texture.mipmaps;if(U&&U.length>0?t.bindFramebuffer(n.FRAMEBUFFER,L.__webglFramebuffer[0]):t.bindFramebuffer(n.FRAMEBUFFER,L.__webglFramebuffer),L.__webglDepthbuffer===void 0)L.__webglDepthbuffer=n.createRenderbuffer(),sn(L.__webglDepthbuffer,ge,!1);else{let ee=ge.stencilBuffer?n.DEPTH_STENCIL_ATTACHMENT:n.DEPTH_ATTACHMENT,ne=L.__webglDepthbuffer;n.bindRenderbuffer(n.RENDERBUFFER,ne),n.framebufferRenderbuffer(n.FRAMEBUFFER,ee,n.RENDERBUFFER,ne)}}t.bindFramebuffer(n.FRAMEBUFFER,null)}function _e(ge,L,N){let U=i.get(ge);L!==void 0&&Lt(U.__webglFramebuffer,ge,ge.texture,n.COLOR_ATTACHMENT0,n.TEXTURE_2D,0),N!==void 0&&lt(ge)}function Pe(ge){let L=ge.texture,N=i.get(ge),U=i.get(L);ge.addEventListener("dispose",H);let ee=ge.textures,ne=ge.isWebGLCubeRenderTarget===!0,X=ee.length>1;if(X||(U.__webglTexture===void 0&&(U.__webglTexture=n.createTexture()),U.__version=L.version,s.memory.textures++),ne){N.__webglFramebuffer=[];for(let ie=0;ie<6;ie++)if(L.mipmaps&&L.mipmaps.length>0){N.__webglFramebuffer[ie]=[];for(let le=0;le<L.mipmaps.length;le++)N.__webglFramebuffer[ie][le]=n.createFramebuffer()}else N.__webglFramebuffer[ie]=n.createFramebuffer()}else{if(L.mipmaps&&L.mipmaps.length>0){N.__webglFramebuffer=[];for(let ie=0;ie<L.mipmaps.length;ie++)N.__webglFramebuffer[ie]=n.createFramebuffer()}else N.__webglFramebuffer=n.createFramebuffer();if(X)for(let ie=0,le=ee.length;ie<le;ie++){let be=i.get(ee[ie]);be.__webglTexture===void 0&&(be.__webglTexture=n.createTexture(),s.memory.textures++)}if(ge.samples>0&&en(ge)===!1){N.__webglMultisampledFramebuffer=n.createFramebuffer(),N.__webglColorRenderbuffer=[],t.bindFramebuffer(n.FRAMEBUFFER,N.__webglMultisampledFramebuffer);for(let ie=0;ie<ee.length;ie++){let le=ee[ie];N.__webglColorRenderbuffer[ie]=n.createRenderbuffer(),n.bindRenderbuffer(n.RENDERBUFFER,N.__webglColorRenderbuffer[ie]);let be=a.convert(le.format,le.colorSpace),tt=a.convert(le.type),Oe=k(le.internalFormat,be,tt,le.normalized,le.colorSpace,ge.isXRRenderTarget===!0),je=qt(ge);n.renderbufferStorageMultisample(n.RENDERBUFFER,je,Oe,ge.width,ge.height),n.framebufferRenderbuffer(n.FRAMEBUFFER,n.COLOR_ATTACHMENT0+ie,n.RENDERBUFFER,N.__webglColorRenderbuffer[ie])}n.bindRenderbuffer(n.RENDERBUFFER,null),ge.depthBuffer&&(N.__webglDepthRenderbuffer=n.createRenderbuffer(),sn(N.__webglDepthRenderbuffer,ge,!0)),t.bindFramebuffer(n.FRAMEBUFFER,null)}}if(ne){t.bindTexture(n.TEXTURE_CUBE_MAP,U.__webglTexture),zt(n.TEXTURE_CUBE_MAP,L);for(let ie=0;ie<6;ie++)if(L.mipmaps&&L.mipmaps.length>0)for(let le=0;le<L.mipmaps.length;le++)Lt(N.__webglFramebuffer[ie][le],ge,L,n.COLOR_ATTACHMENT0,n.TEXTURE_CUBE_MAP_POSITIVE_X+ie,le);else Lt(N.__webglFramebuffer[ie],ge,L,n.COLOR_ATTACHMENT0,n.TEXTURE_CUBE_MAP_POSITIVE_X+ie,0);v(L)&&M(n.TEXTURE_CUBE_MAP),t.unbindTexture()}else if(X){for(let ie=0,le=ee.length;ie<le;ie++){let be=ee[ie],tt=i.get(be),Oe=n.TEXTURE_2D;(ge.isWebGL3DRenderTarget||ge.isWebGLArrayRenderTarget)&&(Oe=ge.isWebGL3DRenderTarget?n.TEXTURE_3D:n.TEXTURE_2D_ARRAY),t.bindTexture(Oe,tt.__webglTexture),zt(Oe,be),Lt(N.__webglFramebuffer,ge,be,n.COLOR_ATTACHMENT0+ie,Oe,0),v(be)&&M(Oe)}t.unbindTexture()}else{let ie=n.TEXTURE_2D;if((ge.isWebGL3DRenderTarget||ge.isWebGLArrayRenderTarget)&&(ie=ge.isWebGL3DRenderTarget?n.TEXTURE_3D:n.TEXTURE_2D_ARRAY),t.bindTexture(ie,U.__webglTexture),zt(ie,L),L.mipmaps&&L.mipmaps.length>0)for(let le=0;le<L.mipmaps.length;le++)Lt(N.__webglFramebuffer[le],ge,L,n.COLOR_ATTACHMENT0,ie,le);else Lt(N.__webglFramebuffer,ge,L,n.COLOR_ATTACHMENT0,ie,0);v(L)&&M(ie),t.unbindTexture()}ge.depthBuffer&&lt(ge)}function dt(ge){let L=ge.textures;for(let N=0,U=L.length;N<U;N++){let ee=L[N];if(v(ee)){let ne=O(ge),X=i.get(ee).__webglTexture;t.bindTexture(ne,X),M(ne),t.unbindTexture()}}}let vt=[],Qt=[];function Ht(ge){if(ge.samples>0){if(en(ge)===!1){let L=ge.textures,N=ge.width,U=ge.height,ee=n.COLOR_BUFFER_BIT,ne=ge.stencilBuffer?n.DEPTH_STENCIL_ATTACHMENT:n.DEPTH_ATTACHMENT,X=i.get(ge),ie=L.length>1;if(ie)for(let be=0;be<L.length;be++)t.bindFramebuffer(n.FRAMEBUFFER,X.__webglMultisampledFramebuffer),n.framebufferRenderbuffer(n.FRAMEBUFFER,n.COLOR_ATTACHMENT0+be,n.RENDERBUFFER,null),t.bindFramebuffer(n.FRAMEBUFFER,X.__webglFramebuffer),n.framebufferTexture2D(n.DRAW_FRAMEBUFFER,n.COLOR_ATTACHMENT0+be,n.TEXTURE_2D,null,0);t.bindFramebuffer(n.READ_FRAMEBUFFER,X.__webglMultisampledFramebuffer);let le=ge.texture.mipmaps;le&&le.length>0?t.bindFramebuffer(n.DRAW_FRAMEBUFFER,X.__webglFramebuffer[0]):t.bindFramebuffer(n.DRAW_FRAMEBUFFER,X.__webglFramebuffer);for(let be=0;be<L.length;be++){if(ge.resolveDepthBuffer&&(ge.depthBuffer&&(ee|=n.DEPTH_BUFFER_BIT),ge.stencilBuffer&&ge.resolveStencilBuffer&&(ee|=n.STENCIL_BUFFER_BIT)),ie){n.framebufferRenderbuffer(n.READ_FRAMEBUFFER,n.COLOR_ATTACHMENT0,n.RENDERBUFFER,X.__webglColorRenderbuffer[be]);let tt=i.get(L[be]).__webglTexture;n.framebufferTexture2D(n.DRAW_FRAMEBUFFER,n.COLOR_ATTACHMENT0,n.TEXTURE_2D,tt,0)}n.blitFramebuffer(0,0,N,U,0,0,N,U,ee,n.NEAREST),c===!0&&(vt.length=0,Qt.length=0,vt.push(n.COLOR_ATTACHMENT0+be),ge.depthBuffer&&ge.storeMultisampledDepthBuffer===!1&&(vt.push(ne),Qt.push(ne),n.invalidateFramebuffer(n.DRAW_FRAMEBUFFER,Qt)),n.invalidateFramebuffer(n.READ_FRAMEBUFFER,vt))}if(t.bindFramebuffer(n.READ_FRAMEBUFFER,null),t.bindFramebuffer(n.DRAW_FRAMEBUFFER,null),ie)for(let be=0;be<L.length;be++){t.bindFramebuffer(n.FRAMEBUFFER,X.__webglMultisampledFramebuffer),n.framebufferRenderbuffer(n.FRAMEBUFFER,n.COLOR_ATTACHMENT0+be,n.RENDERBUFFER,X.__webglColorRenderbuffer[be]);let tt=i.get(L[be]).__webglTexture;t.bindFramebuffer(n.FRAMEBUFFER,X.__webglFramebuffer),n.framebufferTexture2D(n.DRAW_FRAMEBUFFER,n.COLOR_ATTACHMENT0+be,n.TEXTURE_2D,tt,0)}t.bindFramebuffer(n.DRAW_FRAMEBUFFER,X.__webglMultisampledFramebuffer)}else if(ge.depthBuffer&&ge.storeMultisampledDepthBuffer===!1&&c){let L=ge.stencilBuffer?n.DEPTH_STENCIL_ATTACHMENT:n.DEPTH_ATTACHMENT;n.invalidateFramebuffer(n.DRAW_FRAMEBUFFER,[L])}}}function qt(ge){return Math.min(r.maxSamples,ge.samples)}function en(ge){let L=i.get(ge);return ge.samples>0&&e.has("WEBGL_multisampled_render_to_texture")===!0&&L.__useRenderToTexture!==!1}function Le(ge){let L=s.render.frame;p.get(ge)!==L&&(p.set(ge,L),ge.update())}function fn(ge,L){let N=ge.colorSpace,U=ge.format,ee=ge.type;return ge.isCompressedTexture===!0||ge.isVideoTexture===!0||N!==Oh&&N!==jc&&(Gn.getTransfer(N)===xi?(U!==wa||ee!==ja)&&Ft("WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType."):cn("WebGLTextures: Unsupported texture color space:",N)),L}function kt(ge){return typeof HTMLImageElement<"u"&&ge instanceof HTMLImageElement?(f.width=ge.naturalWidth||ge.width,f.height=ge.naturalHeight||ge.height):typeof VideoFrame<"u"&&ge instanceof VideoFrame?(f.width=ge.displayWidth,f.height=ge.displayHeight):(f.width=ge.width,f.height=ge.height),f}this.allocateTextureUnit=Ne,this.resetTextureUnits=ke,this.getTextureUnits=Me,this.setTextureUnits=ze,this.setTexture2D=Je,this.setTexture2DArray=Qe,this.setTexture3D=st,this.setTextureCube=We,this.rebindTextures=_e,this.setupRenderTarget=Pe,this.updateRenderTargetMipmap=dt,this.updateMultisampleRenderTarget=Ht,this.setupDepthRenderbuffer=lt,this.setupFrameBufferTexture=Lt,this.useMultisampledRTT=en,this.isReversedDepthBuffer=function(){return t.buffers.depth.getReversed()}}function T8(n,e){function t(i,r=jc){let a,s=Gn.getTransfer(r);if(i===ja)return n.UNSIGNED_BYTE;if(i===$x)return n.UNSIGNED_SHORT_4_4_4_4;if(i===Jx)return n.UNSIGNED_SHORT_5_5_5_1;if(i===g2)return n.UNSIGNED_INT_5_9_9_9_REV;if(i===v2)return n.UNSIGNED_INT_10F_11F_11F_REV;if(i===m2)return n.BYTE;if(i===_2)return n.SHORT;if(i===M_)return n.UNSIGNED_SHORT;if(i===Zx)return n.INT;if(i===il)return n.UNSIGNED_INT;if(i===as)return n.FLOAT;if(i===$l)return n.HALF_FLOAT;if(i===y2)return n.ALPHA;if(i===b2)return n.RGB;if(i===wa)return n.RGBA;if(i===Cu)return n.DEPTH_COMPONENT;if(i===ed)return n.DEPTH_STENCIL;if(i===e1)return n.RED;if(i===Y0)return n.RED_INTEGER;if(i===td)return n.RG;if(i===t1)return n.RG_INTEGER;if(i===n1)return n.RGBA_INTEGER;if(i===K0||i===Z0||i===$0||i===J0)if(s===xi)if(a=e.get("WEBGL_compressed_texture_s3tc_srgb"),a!==null){if(i===K0)return a.COMPRESSED_SRGB_S3TC_DXT1_EXT;if(i===Z0)return a.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT;if(i===$0)return a.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT;if(i===J0)return a.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT}else return null;else if(a=e.get("WEBGL_compressed_texture_s3tc"),a!==null){if(i===K0)return a.COMPRESSED_RGB_S3TC_DXT1_EXT;if(i===Z0)return a.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(i===$0)return a.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(i===J0)return a.COMPRESSED_RGBA_S3TC_DXT5_EXT}else return null;if(i===i1||i===r1||i===a1||i===s1)if(a=e.get("WEBGL_compressed_texture_pvrtc"),a!==null){if(i===i1)return a.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(i===r1)return a.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(i===a1)return a.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(i===s1)return a.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}else return null;if(i===o1||i===l1||i===u1||i===c1||i===f1||i===eb||i===d1)if(a=e.get("WEBGL_compressed_texture_etc"),a!==null){if(i===o1||i===l1)return s===xi?a.COMPRESSED_SRGB8_ETC2:a.COMPRESSED_RGB8_ETC2;if(i===u1)return s===xi?a.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:a.COMPRESSED_RGBA8_ETC2_EAC;if(i===c1)return a.COMPRESSED_R11_EAC;if(i===f1)return a.COMPRESSED_SIGNED_R11_EAC;if(i===eb)return a.COMPRESSED_RG11_EAC;if(i===d1)return a.COMPRESSED_SIGNED_RG11_EAC}else return null;if(i===h1||i===p1||i===m1||i===_1||i===g1||i===v1||i===y1||i===b1||i===S1||i===E1||i===w1||i===x1||i===T1||i===M1)if(a=e.get("WEBGL_compressed_texture_astc"),a!==null){if(i===h1)return s===xi?a.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR:a.COMPRESSED_RGBA_ASTC_4x4_KHR;if(i===p1)return s===xi?a.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR:a.COMPRESSED_RGBA_ASTC_5x4_KHR;if(i===m1)return s===xi?a.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR:a.COMPRESSED_RGBA_ASTC_5x5_KHR;if(i===_1)return s===xi?a.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR:a.COMPRESSED_RGBA_ASTC_6x5_KHR;if(i===g1)return s===xi?a.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR:a.COMPRESSED_RGBA_ASTC_6x6_KHR;if(i===v1)return s===xi?a.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR:a.COMPRESSED_RGBA_ASTC_8x5_KHR;if(i===y1)return s===xi?a.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR:a.COMPRESSED_RGBA_ASTC_8x6_KHR;if(i===b1)return s===xi?a.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR:a.COMPRESSED_RGBA_ASTC_8x8_KHR;if(i===S1)return s===xi?a.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR:a.COMPRESSED_RGBA_ASTC_10x5_KHR;if(i===E1)return s===xi?a.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR:a.COMPRESSED_RGBA_ASTC_10x6_KHR;if(i===w1)return s===xi?a.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR:a.COMPRESSED_RGBA_ASTC_10x8_KHR;if(i===x1)return s===xi?a.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR:a.COMPRESSED_RGBA_ASTC_10x10_KHR;if(i===T1)return s===xi?a.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR:a.COMPRESSED_RGBA_ASTC_12x10_KHR;if(i===M1)return s===xi?a.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR:a.COMPRESSED_RGBA_ASTC_12x12_KHR}else return null;if(i===A1||i===C1||i===R1)if(a=e.get("EXT_texture_compression_bptc"),a!==null){if(i===A1)return s===xi?a.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT:a.COMPRESSED_RGBA_BPTC_UNORM_EXT;if(i===C1)return a.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT;if(i===R1)return a.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT}else return null;if(i===I1||i===L1||i===tb||i===N1)if(a=e.get("EXT_texture_compression_rgtc"),a!==null){if(i===I1)return a.COMPRESSED_RED_RGTC1_EXT;if(i===L1)return a.COMPRESSED_SIGNED_RED_RGTC1_EXT;if(i===tb)return a.COMPRESSED_RED_GREEN_RGTC2_EXT;if(i===N1)return a.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT}else return null;return i===A_?n.UNSIGNED_INT_24_8:n[i]!==void 0?n[i]:null}return{convert:t}}var SJ=`
void main() {

	gl_Position = vec4( position, 1.0 );

}`,EJ=`
uniform sampler2DArray depthColor;
uniform float depthWidth;
uniform float depthHeight;

void main() {

	vec2 coord = vec2( gl_FragCoord.x / depthWidth, gl_FragCoord.y / depthHeight );

	if ( coord.x >= 1.0 ) {

		gl_FragDepth = texture( depthColor, vec3( coord.x - 1.0, coord.y, 1 ) ).r;

	} else {

		gl_FragDepth = texture( depthColor, vec3( coord.x, coord.y, 0 ) ).r;

	}

}`,pD=class{constructor(){this.texture=null,this.mesh=null,this.depthNear=0,this.depthFar=0}init(e,t){if(this.texture===null){let i=new b0(e.texture);(e.depthNear!==t.depthNear||e.depthFar!==t.depthFar)&&(this.depthNear=e.depthNear,this.depthFar=e.depthFar),this.texture=i}}getMesh(e){if(this.texture!==null&&this.mesh===null){let t=e.cameras[0].viewport,i=new Ga({vertexShader:SJ,fragmentShader:EJ,uniforms:{depthColor:{value:this.texture},depthWidth:{value:t.z},depthHeight:{value:t.w}}});this.mesh=new dr(new __(20,20),i)}return this.mesh}reset(){this.texture=null,this.mesh=null}getDepthTexture(){return this.texture}},mD=class extends po{constructor(e,t){super();let i=this,r=null,a=1,s=null,l="local-floor",c=1,f=null,p=null,h=null,_=null,g=null,E=null,x=typeof XRWebGLBinding<"u",S=new pD,v={},M=t.getContextAttributes(),O=null,k=null,q=[],G=[],Q=new ut,H=null,Z=null,te=new yr;te.viewport=new Ni;let j=new yr;j.viewport=new Ni;let he=[te,j],ke=new Gx,Me=null,ze=null;this.cameraAutoUpdate=!0,this.enabled=!1,this.isPresenting=!1,this.getController=function(Xe){let et=q[Xe];return et===void 0&&(et=new c_,q[Xe]=et),et.getTargetRaySpace()},this.getControllerGrip=function(Xe){let et=q[Xe];return et===void 0&&(et=new c_,q[Xe]=et),et.getGripSpace()},this.getHand=function(Xe){let et=q[Xe];return et===void 0&&(et=new c_,q[Xe]=et),et.getHandSpace()};function Ne(Xe){let et=G.indexOf(Xe.inputSource);if(et===-1)return;let yt=q[et];yt!==void 0&&(yt.update(Xe.inputSource,Xe.frame,f||s),yt.dispatchEvent({type:Xe.type,data:Xe.inputSource}))}function Ve(){r.removeEventListener("select",Ne),r.removeEventListener("selectstart",Ne),r.removeEventListener("selectend",Ne),r.removeEventListener("squeeze",Ne),r.removeEventListener("squeezestart",Ne),r.removeEventListener("squeezeend",Ne),r.removeEventListener("end",Ve),r.removeEventListener("inputsourceschange",Je);for(let Xe=0;Xe<q.length;Xe++){let et=G[Xe];et!==null&&(G[Xe]=null,q[Xe].disconnect(et))}Me=null,ze=null,S.reset();for(let Xe in v)delete v[Xe];if(e.setRenderTarget(O),g=null,_=null,h=null,r=null,k=null,Mt.stop(),i.isPresenting=!1,e.setPixelRatio(H),e.setSize(Q.width,Q.height,!1),Z!==null){let Xe=Z.camera;Xe.fov=Z.fov,Xe.zoom=Z.zoom,Xe.updateProjectionMatrix(),Z=null}i.dispatchEvent({type:"sessionend"})}this.setFramebufferScaleFactor=function(Xe){a=Xe,i.isPresenting===!0&&Ft("WebXRManager: Cannot change framebuffer scale while presenting.")},this.setReferenceSpaceType=function(Xe){l=Xe,i.isPresenting===!0&&Ft("WebXRManager: Cannot change reference space type while presenting.")},this.getReferenceSpace=function(){return f||s},this.setReferenceSpace=function(Xe){f=Xe},this.getBaseLayer=function(){return _!==null?_:g},this.getBinding=function(){return h===null&&x&&(h=new XRWebGLBinding(r,t)),h},this.getFrame=function(){return E},this.getSession=function(){return r},this.setSession=async function(Xe){if(r=Xe,r!==null){if(O=e.getRenderTarget(),r.addEventListener("select",Ne),r.addEventListener("selectstart",Ne),r.addEventListener("selectend",Ne),r.addEventListener("squeeze",Ne),r.addEventListener("squeezestart",Ne),r.addEventListener("squeezeend",Ne),r.addEventListener("end",Ve),r.addEventListener("inputsourceschange",Je),M.xrCompatible!==!0&&await t.makeXRCompatible(),H=e.getPixelRatio(),e.getSize(Q),x&&"createProjectionLayer"in XRWebGLBinding.prototype){let yt=null,Wt=null,Lt=null;M.depth&&(Lt=M.stencil?t.DEPTH24_STENCIL8:t.DEPTH_COMPONENT24,yt=M.stencil?ed:Cu,Wt=M.stencil?A_:il);let sn={colorFormat:t.RGBA8,depthFormat:Lt,scaleFactor:a};h=this.getBinding(),_=h.createProjectionLayer(sn),r.updateRenderState({layers:[_]}),e.setPixelRatio(1),e.setSize(_.textureWidth,_.textureHeight,!1),k=new Va(_.textureWidth,_.textureHeight,{format:wa,type:ja,depthTexture:new jf(_.textureWidth,_.textureHeight,Wt,void 0,void 0,void 0,void 0,void 0,void 0,yt),stencilBuffer:M.stencil,colorSpace:e.outputColorSpace,samples:M.antialias?4:0,resolveDepthBuffer:_.ignoreDepthValues===!1,resolveStencilBuffer:_.ignoreDepthValues===!1,storeMultisampledDepthBuffer:_.ignoreDepthValues===!1,storeMultisampledStencilBuffer:_.ignoreDepthValues===!1})}else{let yt={antialias:M.antialias,alpha:!0,depth:M.depth,stencil:M.stencil,framebufferScaleFactor:a};g=new XRWebGLLayer(r,t,yt),r.updateRenderState({baseLayer:g}),e.setPixelRatio(1),e.setSize(g.framebufferWidth,g.framebufferHeight,!1),k=new Va(g.framebufferWidth,g.framebufferHeight,{format:wa,type:ja,colorSpace:e.outputColorSpace,stencilBuffer:M.stencil,resolveDepthBuffer:g.ignoreDepthValues===!1,resolveStencilBuffer:g.ignoreDepthValues===!1,storeMultisampledDepthBuffer:g.ignoreDepthValues===!1,storeMultisampledStencilBuffer:g.ignoreDepthValues===!1})}k.isXRRenderTarget=!0,this.setFoveation(c),f=null,s=await r.requestReferenceSpace(l),Mt.setContext(r),Mt.start(),i.isPresenting=!0,i.dispatchEvent({type:"sessionstart"})}},this.getEnvironmentBlendMode=function(){if(r!==null)return r.environmentBlendMode},this.getDepthTexture=function(){return S.getDepthTexture()};function Je(Xe){for(let et=0;et<Xe.removed.length;et++){let yt=Xe.removed[et],Wt=G.indexOf(yt);Wt>=0&&(G[Wt]=null,q[Wt].disconnect(yt))}for(let et=0;et<Xe.added.length;et++){let yt=Xe.added[et],Wt=G.indexOf(yt);if(Wt===-1){for(let sn=0;sn<q.length;sn++)if(sn>=G.length){G.push(yt),Wt=sn;break}else if(G[sn]===null){G[sn]=yt,Wt=sn;break}if(Wt===-1)break}let Lt=q[Wt];Lt&&Lt.connect(yt)}}let Qe=new ve,st=new ve;function We(Xe,et,yt){Qe.setFromMatrixPosition(et.matrixWorld),st.setFromMatrixPosition(yt.matrixWorld);let Wt=Qe.distanceTo(st),Lt=et.projectionMatrix.elements,sn=yt.projectionMatrix.elements,pn=Lt[14]/(Lt[10]-1),lt=Lt[14]/(Lt[10]+1),_e=(Lt[9]+1)/Lt[5],Pe=(Lt[9]-1)/Lt[5],dt=(Lt[8]-1)/Lt[0],vt=(sn[8]+1)/sn[0],Qt=pn*dt,Ht=pn*vt,qt=Wt/(-dt+vt),en=qt*-dt;if(et.matrixWorld.decompose(Xe.position,Xe.quaternion,Xe.scale),Xe.translateX(en),Xe.translateZ(qt),Xe.matrixWorld.compose(Xe.position,Xe.quaternion,Xe.scale),Xe.matrixWorldInverse.copy(Xe.matrixWorld).invert(),Lt[10]===-1)Xe.projectionMatrix.copy(et.projectionMatrix),Xe.projectionMatrixInverse.copy(et.projectionMatrixInverse);else{let Le=pn+qt,fn=lt+qt,kt=Qt-en,ge=Ht+(Wt-en),L=_e*lt/fn*Le,N=Pe*lt/fn*Le;Xe.projectionMatrix.makePerspective(kt,ge,L,N,Le,fn),Xe.projectionMatrixInverse.copy(Xe.projectionMatrix).invert()}}function gt(Xe,et){et===null?Xe.matrixWorld.copy(Xe.matrix):Xe.matrixWorld.multiplyMatrices(et.matrixWorld,Xe.matrix),Xe.matrixWorldInverse.copy(Xe.matrixWorld).invert()}this.updateCamera=function(Xe){if(r===null)return;let et=Xe.near,yt=Xe.far;S.texture!==null&&(S.depthNear>0&&(et=S.depthNear),S.depthFar>0&&(yt=S.depthFar)),ke.near=j.near=te.near=et,ke.far=j.far=te.far=yt,(Me!==ke.near||ze!==ke.far)&&(r.updateRenderState({depthNear:ke.near,depthFar:ke.far}),Me=ke.near,ze=ke.far),ke.layers.mask=Xe.layers.mask|6,te.layers.mask=ke.layers.mask&-5,j.layers.mask=ke.layers.mask&-3;let Wt=Xe.parent,Lt=ke.cameras;gt(ke,Wt);for(let sn=0;sn<Lt.length;sn++)gt(Lt[sn],Wt);Lt.length===2?We(ke,te,j):ke.projectionMatrix.copy(te.projectionMatrix),Z===null&&Xe.isPerspectiveCamera&&(Z={camera:Xe,fov:Xe.fov,zoom:Xe.zoom}),Et(Xe,ke,Wt)};function Et(Xe,et,yt){yt===null?Xe.matrix.copy(et.matrixWorld):(Xe.matrix.copy(yt.matrixWorld),Xe.matrix.invert(),Xe.matrix.multiply(et.matrixWorld)),Xe.matrix.decompose(Xe.position,Xe.quaternion,Xe.scale),Xe.updateMatrixWorld(!0),Xe.projectionMatrix.copy(et.projectionMatrix),Xe.projectionMatrixInverse.copy(et.projectionMatrixInverse),Xe.isPerspectiveCamera&&(Xe.fov=o_*2*Math.atan(1/Xe.projectionMatrix.elements[5]),Xe.zoom=1)}this.getCamera=function(){return ke},this.getFoveation=function(){if(!(_===null&&g===null))return c},this.setFoveation=function(Xe){c=Xe,_!==null&&(_.fixedFoveation=Xe),g!==null&&g.fixedFoveation!==void 0&&(g.fixedFoveation=Xe)},this.hasDepthSensing=function(){return S.texture!==null},this.getDepthSensingMesh=function(){return S.getMesh(ke)},this.getCameraTexture=function(Xe){return v[Xe]};let jt=null;function zt(Xe,et){if(p=et.getViewerPose(f||s),E=et,p!==null){let yt=p.views;g!==null&&(e.setRenderTargetFramebuffer(k,g.framebuffer),e.setRenderTarget(k));let Wt=!1;yt.length!==ke.cameras.length&&(ke.cameras.length=0,Wt=!0);for(let lt=0;lt<yt.length;lt++){let _e=yt[lt],Pe=null;if(g!==null)Pe=g.getViewport(_e);else{let vt=h.getViewSubImage(_,_e);Pe=vt.viewport,lt===0&&(e.setRenderTargetTextures(k,vt.colorTexture,vt.depthStencilTexture),e.setRenderTarget(k))}let dt=he[lt];dt===void 0&&(dt=new yr,dt.layers.enable(lt),dt.viewport=new Ni,he[lt]=dt),dt.matrix.fromArray(_e.transform.matrix),dt.matrix.decompose(dt.position,dt.quaternion,dt.scale),dt.projectionMatrix.fromArray(_e.projectionMatrix),dt.projectionMatrixInverse.copy(dt.projectionMatrix).invert(),dt.viewport.set(Pe.x,Pe.y,Pe.width,Pe.height),lt===0&&(ke.matrix.copy(dt.matrix),ke.matrix.decompose(ke.position,ke.quaternion,ke.scale)),Wt===!0&&ke.cameras.push(dt)}let Lt=r.enabledFeatures;if(Lt&&Lt.includes("depth-sensing")&&r.depthUsage=="gpu-optimized"&&x){h=i.getBinding();let lt=h.getDepthInformation(yt[0]);lt&&lt.isValid&&lt.texture&&S.init(lt,r.renderState)}if(Lt&&Lt.includes("camera-access")&&x){e.state.unbindTexture(),h=i.getBinding();for(let lt=0;lt<yt.length;lt++){let _e=yt[lt].camera;if(_e){let Pe=v[_e];Pe||(Pe=new b0,v[_e]=Pe);let dt=h.getCameraImage(_e);Pe.sourceTexture=dt}}}}for(let yt=0;yt<q.length;yt++){let Wt=G[yt],Lt=q[yt];Wt!==null&&Lt!==void 0&&Lt.update(Wt,et,f||s)}jt&&jt(Xe,et),et.detectedPlanes&&i.dispatchEvent({type:"planesdetected",data:et}),E=null}let Mt=new y8;Mt.setAnimationLoop(zt),this.setAnimationLoop=function(Xe){jt=Xe},this.dispose=function(){}}},wJ=new Cn,M8=new In;M8.set(-1,0,0,0,1,0,0,0,1);function xJ(n,e){function t(S,v){S.matrixAutoUpdate===!0&&S.updateMatrix(),v.value.copy(S.matrix)}function i(S,v){v.color.getRGB(S.fogColor.value,KO(n)),v.isFog?(S.fogNear.value=v.near,S.fogFar.value=v.far):v.isFogExp2&&(S.fogDensity.value=v.density)}function r(S,v,M,O,k){v.isNodeMaterial?v.uniformsNeedUpdate=!1:v.isMeshBasicMaterial?a(S,v):v.isMeshLambertMaterial?(a(S,v),v.envMap&&(S.envMapIntensity.value=v.envMapIntensity)):v.isMeshToonMaterial?(a(S,v),h(S,v)):v.isMeshPhongMaterial?(a(S,v),p(S,v),v.envMap&&(S.envMapIntensity.value=v.envMapIntensity)):v.isMeshStandardMaterial?(a(S,v),_(S,v),v.isMeshPhysicalMaterial&&g(S,v,k)):v.isMeshMatcapMaterial?(a(S,v),E(S,v)):v.isMeshDepthMaterial?a(S,v):v.isMeshDistanceMaterial?(a(S,v),x(S,v)):v.isMeshNormalMaterial?a(S,v):v.isLineBasicMaterial?(s(S,v),v.isLineDashedMaterial&&l(S,v)):v.isPointsMaterial?c(S,v,M,O):v.isSpriteMaterial?f(S,v):v.isShadowMaterial?(S.color.value.copy(v.color),S.opacity.value=v.opacity):v.isShaderMaterial&&(v.uniformsNeedUpdate=!1)}function a(S,v){S.opacity.value=v.opacity,v.color&&S.diffuse.value.copy(v.color),v.emissive&&S.emissive.value.copy(v.emissive).multiplyScalar(v.emissiveIntensity),v.map&&(S.map.value=v.map,t(v.map,S.mapTransform)),v.alphaMap&&(S.alphaMap.value=v.alphaMap,t(v.alphaMap,S.alphaMapTransform)),v.bumpMap&&(S.bumpMap.value=v.bumpMap,t(v.bumpMap,S.bumpMapTransform),S.bumpScale.value=v.bumpScale,v.side===ss&&(S.bumpScale.value*=-1)),v.normalMap&&(S.normalMap.value=v.normalMap,t(v.normalMap,S.normalMapTransform),S.normalScale.value.copy(v.normalScale),v.side===ss&&S.normalScale.value.negate()),v.displacementMap&&(S.displacementMap.value=v.displacementMap,t(v.displacementMap,S.displacementMapTransform),S.displacementScale.value=v.displacementScale,S.displacementBias.value=v.displacementBias),v.emissiveMap&&(S.emissiveMap.value=v.emissiveMap,t(v.emissiveMap,S.emissiveMapTransform)),v.specularMap&&(S.specularMap.value=v.specularMap,t(v.specularMap,S.specularMapTransform)),v.alphaTest>0&&(S.alphaTest.value=v.alphaTest);let M=e.get(v),O=M.envMap,k=M.envMapRotation;O&&(S.envMap.value=O,S.envMapRotation.value.setFromMatrix4(wJ.makeRotationFromEuler(k)).transpose(),O.isCubeTexture&&O.isRenderTargetTexture===!1&&S.envMapRotation.value.premultiply(M8),S.reflectivity.value=v.reflectivity,S.ior.value=v.ior,S.refractionRatio.value=v.refractionRatio),v.lightMap&&(S.lightMap.value=v.lightMap,S.lightMapIntensity.value=v.lightMapIntensity,t(v.lightMap,S.lightMapTransform)),v.aoMap&&(S.aoMap.value=v.aoMap,S.aoMapIntensity.value=v.aoMapIntensity,t(v.aoMap,S.aoMapTransform))}function s(S,v){S.diffuse.value.copy(v.color),S.opacity.value=v.opacity,v.map&&(S.map.value=v.map,t(v.map,S.mapTransform))}function l(S,v){S.dashSize.value=v.dashSize,S.totalSize.value=v.dashSize+v.gapSize,S.scale.value=v.scale}function c(S,v,M,O){S.diffuse.value.copy(v.color),S.opacity.value=v.opacity,S.size.value=v.size*M,S.scale.value=O*.5,v.map&&(S.map.value=v.map,t(v.map,S.uvTransform)),v.alphaMap&&(S.alphaMap.value=v.alphaMap,t(v.alphaMap,S.alphaMapTransform)),v.alphaTest>0&&(S.alphaTest.value=v.alphaTest)}function f(S,v){S.diffuse.value.copy(v.color),S.opacity.value=v.opacity,S.rotation.value=v.rotation,v.map&&(S.map.value=v.map,t(v.map,S.mapTransform)),v.alphaMap&&(S.alphaMap.value=v.alphaMap,t(v.alphaMap,S.alphaMapTransform)),v.alphaTest>0&&(S.alphaTest.value=v.alphaTest)}function p(S,v){S.specular.value.copy(v.specular),S.shininess.value=Math.max(v.shininess,1e-4)}function h(S,v){v.gradientMap&&(S.gradientMap.value=v.gradientMap)}function _(S,v){S.metalness.value=v.metalness,v.metalnessMap&&(S.metalnessMap.value=v.metalnessMap,t(v.metalnessMap,S.metalnessMapTransform)),S.roughness.value=v.roughness,v.roughnessMap&&(S.roughnessMap.value=v.roughnessMap,t(v.roughnessMap,S.roughnessMapTransform)),v.envMap&&(S.envMapIntensity.value=v.envMapIntensity)}function g(S,v,M){S.ior.value=v.ior,v.sheen>0&&(S.sheenColor.value.copy(v.sheenColor).multiplyScalar(v.sheen),S.sheenRoughness.value=v.sheenRoughness,v.sheenColorMap&&(S.sheenColorMap.value=v.sheenColorMap,t(v.sheenColorMap,S.sheenColorMapTransform)),v.sheenRoughnessMap&&(S.sheenRoughnessMap.value=v.sheenRoughnessMap,t(v.sheenRoughnessMap,S.sheenRoughnessMapTransform))),v.clearcoat>0&&(S.clearcoat.value=v.clearcoat,S.clearcoatRoughness.value=v.clearcoatRoughness,v.clearcoatMap&&(S.clearcoatMap.value=v.clearcoatMap,t(v.clearcoatMap,S.clearcoatMapTransform)),v.clearcoatRoughnessMap&&(S.clearcoatRoughnessMap.value=v.clearcoatRoughnessMap,t(v.clearcoatRoughnessMap,S.clearcoatRoughnessMapTransform)),v.clearcoatNormalMap&&(S.clearcoatNormalMap.value=v.clearcoatNormalMap,t(v.clearcoatNormalMap,S.clearcoatNormalMapTransform),S.clearcoatNormalScale.value.copy(v.clearcoatNormalScale),v.side===ss&&S.clearcoatNormalScale.value.negate())),v.dispersion>0&&(S.dispersion.value=v.dispersion),v.retroreflectivity>0&&(S.retroreflectivity.value=v.retroreflectivity),v.iridescence>0&&(S.iridescence.value=v.iridescence,S.iridescenceIOR.value=v.iridescenceIOR,S.iridescenceThicknessMinimum.value=v.iridescenceThicknessRange[0],S.iridescenceThicknessMaximum.value=v.iridescenceThicknessRange[1],v.iridescenceMap&&(S.iridescenceMap.value=v.iridescenceMap,t(v.iridescenceMap,S.iridescenceMapTransform)),v.iridescenceThicknessMap&&(S.iridescenceThicknessMap.value=v.iridescenceThicknessMap,t(v.iridescenceThicknessMap,S.iridescenceThicknessMapTransform))),v.transmission>0&&(S.transmission.value=v.transmission,S.transmissionSamplerMap.value=M.texture,S.transmissionSamplerSize.value.set(M.width,M.height),v.transmissionMap&&(S.transmissionMap.value=v.transmissionMap,t(v.transmissionMap,S.transmissionMapTransform)),S.thickness.value=v.thickness,v.thicknessMap&&(S.thicknessMap.value=v.thicknessMap,t(v.thicknessMap,S.thicknessMapTransform)),S.attenuationDistance.value=v.attenuationDistance,S.attenuationColor.value.copy(v.attenuationColor)),v.anisotropy>0&&(S.anisotropyVector.value.set(v.anisotropy*Math.cos(v.anisotropyRotation),v.anisotropy*Math.sin(v.anisotropyRotation)),v.anisotropyMap&&(S.anisotropyMap.value=v.anisotropyMap,t(v.anisotropyMap,S.anisotropyMapTransform))),S.specularIntensity.value=v.specularIntensity,S.specularColor.value.copy(v.specularColor),v.specularColorMap&&(S.specularColorMap.value=v.specularColorMap,t(v.specularColorMap,S.specularColorMapTransform)),v.specularIntensityMap&&(S.specularIntensityMap.value=v.specularIntensityMap,t(v.specularIntensityMap,S.specularIntensityMapTransform))}function E(S,v){v.matcap&&(S.matcap.value=v.matcap)}function x(S,v){let M=e.get(v).light;S.referencePosition.value.setFromMatrixPosition(M.matrixWorld),S.nearDistance.value=M.shadow.camera.near,S.farDistance.value=M.shadow.camera.far}return{refreshFogUniforms:i,refreshMaterialUniforms:r}}function TJ(n,e,t,i){let r={},a={},s=[],l=n.getParameter(n.MAX_UNIFORM_BUFFER_BINDINGS);function c(k,q){let G=q.program;i.uniformBlockBinding(k,G)}function f(k,q){let G=r[k.id];G===void 0&&(S(k),G=p(k),r[k.id]=G,k.addEventListener("dispose",M));let Q=q.program;i.updateUBOMapping(k,Q);let H=e.render.frame;a[k.id]!==H&&(_(k),a[k.id]=H)}function p(k){let q=h();k.__bindingPointIndex=q;let G=n.createBuffer(),Q=k.__size,H=k.usage;return n.bindBuffer(n.UNIFORM_BUFFER,G),n.bufferData(n.UNIFORM_BUFFER,Q,H),n.bindBuffer(n.UNIFORM_BUFFER,null),n.bindBufferBase(n.UNIFORM_BUFFER,q,G),G}function h(){for(let k=0;k<l;k++)if(s.indexOf(k)===-1)return s.push(k),k;return cn("WebGLRenderer: Maximum number of simultaneously usable uniforms groups reached."),0}function _(k){let q=r[k.id],G=k.uniforms,Q=k.__cache;n.bindBuffer(n.UNIFORM_BUFFER,q);for(let H=0,Z=G.length;H<Z;H++){let te=G[H];if(Array.isArray(te))for(let j=0,he=te.length;j<he;j++)g(te[j],H,j,Q);else g(te,H,0,Q)}n.bindBuffer(n.UNIFORM_BUFFER,null)}function g(k,q,G,Q){if(x(k,q,G,Q)===!0){let H=k.__offset,Z=k.value;if(Array.isArray(Z)){let te=0;for(let j=0;j<Z.length;j++){let he=Z[j],ke=v(he);E(he,k.__data,te),typeof he!="number"&&typeof he!="boolean"&&!he.isMatrix3&&!ArrayBuffer.isView(he)&&(te+=ke.storage/Float32Array.BYTES_PER_ELEMENT)}}else E(Z,k.__data,0);n.bufferSubData(n.UNIFORM_BUFFER,H,k.__data)}}function E(k,q,G){typeof k=="number"||typeof k=="boolean"?q[0]=k:k.isMatrix3?(q[0]=k.elements[0],q[1]=k.elements[1],q[2]=k.elements[2],q[3]=0,q[4]=k.elements[3],q[5]=k.elements[4],q[6]=k.elements[5],q[7]=0,q[8]=k.elements[6],q[9]=k.elements[7],q[10]=k.elements[8],q[11]=0):ArrayBuffer.isView(k)?q.set(new k.constructor(k.buffer,k.byteOffset,q.length)):k.toArray(q,G)}function x(k,q,G,Q){let H=k.value,Z=q+"_"+G;if(Q[Z]===void 0)return typeof H=="number"||typeof H=="boolean"?Q[Z]=H:ArrayBuffer.isView(H)?Q[Z]=H.slice():Q[Z]=H.clone(),!0;{let te=Q[Z];if(typeof H=="number"||typeof H=="boolean"){if(te!==H)return Q[Z]=H,!0}else{if(ArrayBuffer.isView(H))return!0;if(te.equals(H)===!1)return te.copy(H),!0}}return!1}function S(k){let q=k.uniforms,G=0,Q=16;for(let Z=0,te=q.length;Z<te;Z++){let j=Array.isArray(q[Z])?q[Z]:[q[Z]];for(let he=0,ke=j.length;he<ke;he++){let Me=j[he],ze=Array.isArray(Me.value)?Me.value:[Me.value];for(let Ne=0,Ve=ze.length;Ne<Ve;Ne++){let Je=ze[Ne],Qe=v(Je),st=G%Q,We=st%Qe.boundary,gt=st+We;G+=We,gt!==0&&Q-gt<Qe.storage&&(G+=Q-gt),Me.__data=new Float32Array(Qe.storage/Float32Array.BYTES_PER_ELEMENT),Me.__offset=G,G+=Qe.storage}}}let H=G%Q;return H>0&&(G+=Q-H),k.__size=G,k.__cache={},this}function v(k){let q={boundary:0,storage:0};return typeof k=="number"||typeof k=="boolean"?(q.boundary=4,q.storage=4):k.isVector2?(q.boundary=8,q.storage=8):k.isVector3||k.isColor?(q.boundary=16,q.storage=12):k.isVector4?(q.boundary=16,q.storage=16):k.isMatrix3?(q.boundary=48,q.storage=48):k.isMatrix4?(q.boundary=64,q.storage=64):k.isTexture?Ft("WebGLRenderer: Texture samplers can not be part of an uniforms group."):ArrayBuffer.isView(k)?(q.boundary=16,q.storage=k.byteLength):Ft("WebGLRenderer: Unsupported uniform value type.",k),q}function M(k){let q=k.target;q.removeEventListener("dispose",M);let G=s.indexOf(q.__bindingPointIndex);s.splice(G,1),n.deleteBuffer(r[q.id]),delete r[q.id],delete a[q.id]}function O(){for(let k in r)n.deleteBuffer(r[k]);s=[],r={},a={}}return{bind:c,update:f,dispose:O}}var MJ=new Uint16Array([12469,15057,12620,14925,13266,14620,13807,14376,14323,13990,14545,13625,14713,13328,14840,12882,14931,12528,14996,12233,15039,11829,15066,11525,15080,11295,15085,10976,15082,10705,15073,10495,13880,14564,13898,14542,13977,14430,14158,14124,14393,13732,14556,13410,14702,12996,14814,12596,14891,12291,14937,11834,14957,11489,14958,11194,14943,10803,14921,10506,14893,10278,14858,9960,14484,14039,14487,14025,14499,13941,14524,13740,14574,13468,14654,13106,14743,12678,14818,12344,14867,11893,14889,11509,14893,11180,14881,10751,14852,10428,14812,10128,14765,9754,14712,9466,14764,13480,14764,13475,14766,13440,14766,13347,14769,13070,14786,12713,14816,12387,14844,11957,14860,11549,14868,11215,14855,10751,14825,10403,14782,10044,14729,9651,14666,9352,14599,9029,14967,12835,14966,12831,14963,12804,14954,12723,14936,12564,14917,12347,14900,11958,14886,11569,14878,11247,14859,10765,14828,10401,14784,10011,14727,9600,14660,9289,14586,8893,14508,8533,15111,12234,15110,12234,15104,12216,15092,12156,15067,12010,15028,11776,14981,11500,14942,11205,14902,10752,14861,10393,14812,9991,14752,9570,14682,9252,14603,8808,14519,8445,14431,8145,15209,11449,15208,11451,15202,11451,15190,11438,15163,11384,15117,11274,15055,10979,14994,10648,14932,10343,14871,9936,14803,9532,14729,9218,14645,8742,14556,8381,14461,8020,14365,7603,15273,10603,15272,10607,15267,10619,15256,10631,15231,10614,15182,10535,15118,10389,15042,10167,14963,9787,14883,9447,14800,9115,14710,8665,14615,8318,14514,7911,14411,7507,14279,7198,15314,9675,15313,9683,15309,9712,15298,9759,15277,9797,15229,9773,15166,9668,15084,9487,14995,9274,14898,8910,14800,8539,14697,8234,14590,7790,14479,7409,14367,7067,14178,6621,15337,8619,15337,8631,15333,8677,15325,8769,15305,8871,15264,8940,15202,8909,15119,8775,15022,8565,14916,8328,14804,8009,14688,7614,14569,7287,14448,6888,14321,6483,14088,6171,15350,7402,15350,7419,15347,7480,15340,7613,15322,7804,15287,7973,15229,8057,15148,8012,15046,7846,14933,7611,14810,7357,14682,7069,14552,6656,14421,6316,14251,5948,14007,5528,15356,5942,15356,5977,15353,6119,15348,6294,15332,6551,15302,6824,15249,7044,15171,7122,15070,7050,14949,6861,14818,6611,14679,6349,14538,6067,14398,5651,14189,5311,13935,4958,15359,4123,15359,4153,15356,4296,15353,4646,15338,5160,15311,5508,15263,5829,15188,6042,15088,6094,14966,6001,14826,5796,14678,5543,14527,5287,14377,4985,14133,4586,13869,4257,15360,1563,15360,1642,15358,2076,15354,2636,15341,3350,15317,4019,15273,4429,15203,4732,15105,4911,14981,4932,14836,4818,14679,4621,14517,4386,14359,4156,14083,3795,13808,3437,15360,122,15360,137,15358,285,15355,636,15344,1274,15322,2177,15281,2765,15215,3223,15120,3451,14995,3569,14846,3567,14681,3466,14511,3305,14344,3121,14037,2800,13753,2467,15360,0,15360,1,15359,21,15355,89,15346,253,15325,479,15287,796,15225,1148,15133,1492,15008,1749,14856,1882,14685,1886,14506,1783,14324,1608,13996,1398,13702,1183]),Qc=null;function AJ(){return Qc===null&&(Qc=new As(MJ,16,16,td,$l),Qc.name="DFG_LUT",Qc.minFilter=Ji,Qc.magFilter=Ji,Qc.wrapS=Ms,Qc.wrapT=Ms,Qc.generateMipmaps=!1,Qc.needsUpdate=!0),Qc}var H1=class{constructor(e={}){let{canvas:t=QO(),context:i=null,depth:r=!0,stencil:a=!1,alpha:s=!1,antialias:l=!1,premultipliedAlpha:c=!0,preserveDrawingBuffer:f=!1,powerPreference:p="default",failIfMajorPerformanceCaveat:h=!1,reversedDepthBuffer:_=!1,outputBufferType:g=ja}=e;this.isWebGLRenderer=!0;let E;if(i!==null){if(typeof WebGLRenderingContext<"u"&&i instanceof WebGLRenderingContext)throw new Error("THREE.WebGLRenderer: WebGL 1 is not supported since r163.");E=i.getContextAttributes().alpha}else E=s;let x=g,S=new Set([n1,t1,Y0]),v=new Set([ja,il,M_,A_,$x,Jx]),M=new Uint32Array(4),O=new Int32Array(4),k=new ve,q=null,G=null,Q=[],H=[],Z=null;this.domElement=t,this.debug={checkShaderErrors:!0,diagnostics:{keywords:!1},onShaderError:null},this.autoClear=!0,this.autoClearColor=!0,this.autoClearDepth=!0,this.autoClearStencil=!0,this.sortObjects=!0,this.clippingPlanes=[],this.localClippingEnabled=!1,this.toneMapping=_o,this.toneMappingExposure=1,this.transmissionResolutionScale=1;let te=this,j=!1,he=null,ke=null,Me=null,ze=null;this._outputColorSpace=Yr;let Ne=0,Ve=0,Je=null,Qe=-1,st=null,We=new Ni,gt=new Ni,Et=null,jt=new Vt(0),zt=0,Mt=t.width,Xe=t.height,et=1,yt=null,Wt=null,Lt=new Ni(0,0,Mt,Xe),sn=new Ni(0,0,Mt,Xe),pn=!1,lt=new qc,_e=!1,Pe=!1,dt=new Cn,vt=new ve,Qt=new Ni,Ht={background:null,fog:null,environment:null,overrideMaterial:null,isScene:!0},qt=!1;function en(){return Je===null?et:1}let Le=i;function fn(ae,Fe){return t.getContext(ae,Fe)}let kt,ge,L,N,U,ee,ne,X,ie,le,be,tt,Oe,je,Ct,nn,ht,De,bt,at,we,Rt,ft;try{let ae={alpha:!0,depth:r,stencil:a,antialias:l,premultipliedAlpha:c,preserveDrawingBuffer:f,powerPreference:p,failIfMajorPerformanceCaveat:h};if("setAttribute"in t&&t.setAttribute("data-engine",`three.js r${"186"}`),t.addEventListener("webglcontextlost",Wn,!1),t.addEventListener("webglcontextrestored",Un,!1),t.addEventListener("webglcontextcreationerror",Ti,!1),Le===null){let Fe="webgl2";if(Le=fn(Fe,ae),Le===null)throw fn(Fe)?new Error("THREE.WebGLRenderer: Error creating WebGL context with your selected attributes."):new Error("THREE.WebGLRenderer: Error creating WebGL context.")}Yt()}catch(ae){throw t.removeEventListener("webglcontextlost",Wn,!1),t.removeEventListener("webglcontextrestored",Un,!1),t.removeEventListener("webglcontextcreationerror",Ti,!1),cn("WebGLRenderer: "+ae.message),ae}function Yt(){kt=new DZ(Le),kt.init(),we=new T8(Le,kt),ge=new TZ(Le,kt,e,we),L=new yJ(Le,kt),ge.reversedDepthBuffer&&_&&L.buffers.depth.setReversed(!0),ke=Le.createFramebuffer(),Me=Le.createFramebuffer(),ze=Le.createFramebuffer(),N=new UZ(Le),U=new aJ,ee=new bJ(Le,kt,L,U,ge,we,N),ne=new OZ(te),X=new qX(Le),Rt=new wZ(Le,X),ie=new FZ(Le,X,N,Rt),le=new qZ(Le,ie,X,Rt,N),De=new zZ(Le,ge,ee),Ct=new MZ(U),be=new rJ(te,ne,kt,ge,Rt,Ct),tt=new xJ(te,U),Oe=new oJ,je=new hJ(kt),ht=new EZ(te,ne,L,le,E,c),nn=new vJ(te,le,ge),ft=new TJ(Le,N,ge,L),bt=new xZ(Le,kt,N),at=new PZ(Le,kt,N),N.programs=be.programs,te.capabilities=ge,te.extensions=kt,te.properties=U,te.renderLists=Oe,te.shadowMap=nn,te.state=L,te.info=N}x!==ja&&(Z=new HZ(x,t.width,t.height,l,r,a));let $t=new mD(te,Le);this.xr=$t,this.getContext=function(){return Le},this.getContextAttributes=function(){return Le.getContextAttributes()},this.forceContextLoss=function(){let ae=kt.get("WEBGL_lose_context");ae&&ae.loseContext()},this.forceContextRestore=function(){let ae=kt.get("WEBGL_lose_context");ae&&ae.restoreContext()},this.getPixelRatio=function(){return et},this.setPixelRatio=function(ae){ae!==void 0&&(et=ae,this.setSize(Mt,Xe,!1))},this.getSize=function(ae){return ae.set(Mt,Xe)},this.setSize=function(ae,Fe,Ye=!0){if($t.isPresenting){Ft("WebGLRenderer: Can't change size while VR device is presenting.");return}Mt=ae,Xe=Fe,t.width=Math.floor(ae*et),t.height=Math.floor(Fe*et),Ye===!0&&(t.style.width=ae+"px",t.style.height=Fe+"px"),Z!==null&&Z.setSize(t.width,t.height),this.setViewport(0,0,ae,Fe)},this.getDrawingBufferSize=function(ae){return ae.set(Mt*et,Xe*et).floor()},this.setDrawingBufferSize=function(ae,Fe,Ye){Mt=ae,Xe=Fe,et=Ye,t.width=Math.floor(ae*Ye),t.height=Math.floor(Fe*Ye),this.setViewport(0,0,ae,Fe)},this.setEffects=function(ae){if(x===ja){cn("WebGLRenderer: setEffects() requires outputBufferType set to HalfFloatType or FloatType.");return}if(ae){for(let Fe=0;Fe<ae.length;Fe++)if(ae[Fe].isOutputPass===!0){Ft("WebGLRenderer: OutputPass is not needed in setEffects(). Tone mapping and color space conversion are applied automatically.");break}}Z.setEffects(ae||[])},this.getCurrentViewport=function(ae){return ae.copy(We)},this.getViewport=function(ae){return ae.copy(Lt)},this.setViewport=function(ae,Fe,Ye,Be){ae.isVector4?Lt.set(ae.x,ae.y,ae.z,ae.w):Lt.set(ae,Fe,Ye,Be),L.viewport(We.copy(Lt).multiplyScalar(et).round())},this.getScissor=function(ae){return ae.copy(sn)},this.setScissor=function(ae,Fe,Ye,Be){ae.isVector4?sn.set(ae.x,ae.y,ae.z,ae.w):sn.set(ae,Fe,Ye,Be),L.scissor(gt.copy(sn).multiplyScalar(et).round())},this.getScissorTest=function(){return pn},this.setScissorTest=function(ae){L.setScissorTest(pn=ae)},this.setOpaqueSort=function(ae){yt=ae},this.setTransparentSort=function(ae){Wt=ae},this.getClearColor=function(ae){return ae.copy(ht.getClearColor())},this.setClearColor=function(){ht.setClearColor(...arguments)},this.getClearAlpha=function(){return ht.getClearAlpha()},this.setClearAlpha=function(){ht.setClearAlpha(...arguments)},this.clear=function(ae=!0,Fe=!0,Ye=!0){let Be=0;if(ae){let He=!1;if(Je!==null){let It=Je.texture.format;He=S.has(It)}if(He){let It=Je.texture.type,Bt=v.has(It),wt=ht.getClearColor(),Nt=ht.getClearAlpha(),Kt=wt.r,yn=wt.g,Sn=wt.b;Bt?(M[0]=Kt,M[1]=yn,M[2]=Sn,M[3]=Nt,Le.clearBufferuiv(Le.COLOR,0,M)):(O[0]=Kt,O[1]=yn,O[2]=Sn,O[3]=Nt,Le.clearBufferiv(Le.COLOR,0,O))}else Be|=Le.COLOR_BUFFER_BIT}Fe&&(Be|=Le.DEPTH_BUFFER_BIT,this.state.buffers.depth.setMask(!0)),Ye&&(Be|=Le.STENCIL_BUFFER_BIT,this.state.buffers.stencil.setMask(4294967295)),Be!==0&&Le.clear(Be)},this.clearColor=function(){this.clear(!0,!1,!1)},this.clearDepth=function(){this.clear(!1,!0,!1)},this.clearStencil=function(){this.clear(!1,!1,!0)},this.setNodesHandler=function(ae){ae.setRenderer(this),he=ae},this.dispose=function(){t.removeEventListener("webglcontextlost",Wn,!1),t.removeEventListener("webglcontextrestored",Un,!1),t.removeEventListener("webglcontextcreationerror",Ti,!1),ht.dispose(),Oe.dispose(),je.dispose(),U.dispose(),ne.dispose(),le.dispose(),Rt.dispose(),ft.dispose(),be.dispose(),$t.dispose(),$t.removeEventListener("sessionstart",er),$t.removeEventListener("sessionend",cs),Pr.stop()};function Wn(ae){ae.preventDefault(),d0("WebGLRenderer: Context Lost."),j=!0}function Un(){d0("WebGLRenderer: Context Restored."),j=!1;let ae=N.autoReset,Fe=nn.enabled,Ye=nn.autoUpdate,Be=nn.needsUpdate,He=nn.type;Yt(),N.autoReset=ae,nn.enabled=Fe,nn.autoUpdate=Ye,nn.needsUpdate=Be,nn.type=He}function Ti(ae){cn("WebGLRenderer: A WebGL context could not be created. Reason: ",ae.statusMessage)}function d(ae){let Fe=ae.target;Fe.removeEventListener("dispose",d),Ke(Fe)}function Ke(ae){ul(ae),U.remove(ae)}function ul(ae){let Fe=U.get(ae).programs;Fe!==void 0&&(Fe.forEach(function(Ye){be.releaseProgram(Ye)}),ae.isShaderMaterial&&be.releaseShaderCache(ae))}this.renderBufferDirect=function(ae,Fe,Ye,Be,He,It){Fe===null&&(Fe=Ht);let Bt=He.isMesh&&He.matrixWorld.determinantAffine()<0,wt=bo(ae,Fe,Ye,Be,He);L.setMaterial(Be,Bt);let Nt=Ye.index,Kt=1;if(Be.wireframe===!0){if(Nt=ie.getWireframeAttribute(Ye),Nt===void 0)return;Kt=2}let yn=Ye.drawRange,Sn=Ye.attributes.position,_t=yn.start*Kt,En=(yn.start+yn.count)*Kt;It!==null&&(_t=Math.max(_t,It.start*Kt),En=Math.min(En,(It.start+It.count)*Kt)),Nt!==null?(_t=Math.max(_t,0),En=Math.min(En,Nt.count)):Sn!=null&&(_t=Math.max(_t,0),En=Math.min(En,Sn.count));let ri=En-_t;if(ri<0||ri===1/0)return;Rt.setup(He,Be,wt,Ye,Nt);let Hn,On=bt;if(Nt!==null&&(Hn=X.get(Nt),On=at,On.setIndex(Hn)),He.isMesh)Be.wireframe===!0?(L.setLineWidth(Be.wireframeLinewidth*en()),On.setMode(Le.LINES)):On.setMode(Le.TRIANGLES);else if(He.isLine){let Xi=Be.linewidth;Xi===void 0&&(Xi=1),L.setLineWidth(Xi*en()),He.isLineSegments?On.setMode(Le.LINES):He.isLineLoop?On.setMode(Le.LINE_LOOP):On.setMode(Le.LINE_STRIP)}else He.isPoints?On.setMode(Le.POINTS):He.isSprite&&On.setMode(Le.TRIANGLES);if(He.isBatchedMesh)if(kt.get("WEBGL_multi_draw"))On.renderMultiDraw(He._multiDrawStarts,He._multiDrawCounts,He._multiDrawCount);else{let Xi=He._multiDrawStarts,Pt=He._multiDrawCounts,Oi=He._multiDrawCount,xn=Nt?X.get(Nt).bytesPerElement:1,ai=U.get(Be).currentProgram.getUniforms();for(let Vn=0;Vn<Oi;Vn++)ai.setValue(Le,"_gl_DrawID",Vn),On.render(Xi[Vn]/xn,Pt[Vn])}else if(He.isInstancedMesh)On.renderInstances(_t,ri,He.count);else if(Ye.isInstancedBufferGeometry){let Xi=Ye._maxInstanceCount!==void 0?Ye._maxInstanceCount:1/0,Pt=Math.min(Ye.instanceCount,Xi);On.renderInstances(_t,ri,Pt)}else On.render(_t,ri)};function us(ae,Fe,Ye,Be){he!==null&&ae.isNodeMaterial&&he.setObject(Be,ae),_e===!0&&Ct.setState(ae,Ye,!1),ae.transparent===!0&&ae.side===ku&&ae.forceSinglePass===!1?(ae.side=ss,ae.needsUpdate=!0,Xa(ae,Fe,Be),ae.side=$f,ae.needsUpdate=!0,Xa(ae,Fe,Be),ae.side=ku):Xa(ae,Fe,Be)}this.compile=function(ae,Fe,Ye=null){Ye===null&&(Ye=ae),he!==null&&he.renderStart(ae,Fe,Ye),G=je.get(Ye),G.init(Fe),H.push(G),Ye.traverseVisible(function(He){He.isLight&&He.layers.test(Fe.layers)&&(G.pushLight(He),He.castShadow&&G.pushShadow(He))}),ae!==Ye&&ae.traverseVisible(function(He){He.isLight&&He.layers.test(Fe.layers)&&(G.pushLight(He),He.castShadow&&G.pushShadow(He))}),G.setupLights(),he!==null&&he.updateLights(G.state.lightsArray),Pe=this.localClippingEnabled,_e=Ct.init(this.clippingPlanes,Pe),_e===!0&&Ct.setGlobalState(this.clippingPlanes,Fe),he!==null&&nn.render(G.state.shadowsArray,Ye,Fe);let Be=new Set;return ae.traverse(function(He){if(!(He.isMesh||He.isPoints||He.isLine||He.isSprite))return;let It=He.material;if(It)if(Array.isArray(It))for(let Bt=0;Bt<It.length;Bt++){let wt=It[Bt];us(wt,Ye,Fe,He),Be.add(wt)}else us(It,Ye,Fe,He),Be.add(It)}),G=H.pop(),he!==null&&he.renderEnd(),Be},this.compileAsync=function(ae,Fe,Ye=null){let Be=this.compile(ae,Fe,Ye);return new Promise(He=>{function It(){if(Be.forEach(function(Bt){let Nt=U.get(Bt).currentProgram;(Nt===void 0||Nt.isReady())&&Be.delete(Bt)}),Be.size===0){He(ae);return}setTimeout(It,10)}kt.get("KHR_parallel_shader_compile")!==null?It():setTimeout(It,10)})};let Fr=null;function Ps(ae){Fr&&Fr(ae)}function er(){Pr.stop()}function cs(){Pr.start()}let Pr=new y8;Pr.setAnimationLoop(Ps),typeof self<"u"&&Pr.setContext(self),this.setAnimationLoop=function(ae){Fr=ae,$t.setAnimationLoop(ae),ae===null?Pr.stop():Pr.start()},$t.addEventListener("sessionstart",er),$t.addEventListener("sessionend",cs),this.render=function(ae,Fe){if(Fe!==void 0&&Fe.isCamera!==!0){cn("WebGLRenderer.render: camera is not an instance of THREE.Camera.");return}if(j===!0)return;he!==null&&he.renderStart(ae,Fe);let Ye=$t.enabled===!0&&$t.isPresenting===!0,Be=Z!==null&&(Je===null||Ye)&&Z.begin(te,Je);if(ae.matrixWorldAutoUpdate===!0&&ae.updateMatrixWorld(),Fe.parent===null&&Fe.matrixWorldAutoUpdate===!0&&Fe.updateMatrixWorld(),$t.enabled===!0&&$t.isPresenting===!0&&(Z===null||Z.isCompositing()===!1)&&($t.cameraAutoUpdate===!0&&$t.updateCamera(Fe),Fe=$t.getCamera()),ae.isScene===!0&&ae.onBeforeRender(te,ae,Fe,Je),G=je.get(ae,H.length),G.init(Fe),G.state.textureUnits=ee.getTextureUnits(),H.push(G),dt.multiplyMatrices(Fe.projectionMatrix,Fe.matrixWorldInverse),lt.setFromProjectionMatrix(dt,ho,Fe.reversedDepth),Pe=this.localClippingEnabled,_e=Ct.init(this.clippingPlanes,Pe),q=Oe.get(ae,Q.length),q.init(),Q.push(q),$t.enabled===!0&&$t.isPresenting===!0){let Bt=te.xr.getDepthSensingMesh();Bt!==null&&fs(Bt,Fe,-1/0,te.sortObjects)}fs(ae,Fe,0,te.sortObjects),q.finish(),he!==null&&he.updateLights(G.state.lightsArray),te.sortObjects===!0&&q.sort(yt,Wt),qt=$t.enabled===!1||$t.isPresenting===!1||$t.hasDepthSensing()===!1,qt&&ht.addToRenderList(q,ae),this.info.render.frame++,this.info.autoReset===!0&&this.info.reset(),_e===!0&&Ct.beginShadows();let He=G.state.shadowsArray;if(nn.render(He,ae,Fe),_e===!0&&Ct.endShadows(),(Be&&Z.hasRenderPass())===!1){let Bt=q.opaque,wt=q.transmissive;if(G.setupLights(),Fe.isArrayCamera){let Nt=Fe.cameras;if(wt.length>0)for(let Kt=0,yn=Nt.length;Kt<yn;Kt++){let Sn=Nt[Kt];yo(Bt,wt,ae,Sn)}qt&&ht.render(ae);for(let Kt=0,yn=Nt.length;Kt<yn;Kt++){let Sn=Nt[Kt];hi(q,ae,Sn,Sn.viewport)}}else wt.length>0&&yo(Bt,wt,ae,Fe),qt&&ht.render(ae),hi(q,ae,Fe)}Je!==null&&Ve===0&&(ee.updateMultisampleRenderTarget(Je),ee.updateRenderTargetMipmap(Je)),Be&&Z.end(te),ae.isScene===!0&&ae.onAfterRender(te,ae,Fe),Rt.resetDefaultState(),Qe=-1,st=null,H.pop(),H.length>0?(G=H[H.length-1],ee.setTextureUnits(G.state.textureUnits),_e===!0&&Ct.setGlobalState(te.clippingPlanes,G.state.camera)):G=null,Q.pop(),Q.length>0?q=Q[Q.length-1]:q=null,he!==null&&he.renderEnd()};function fs(ae,Fe,Ye,Be){if(ae.visible===!1)return;if(ae.layers.test(Fe.layers)){if(ae.isGroup)Ye=ae.renderOrder;else if(ae.isLOD)ae.autoUpdate===!0&&ae.update(Fe);else if(ae.isLightProbeGrid)G.pushLightProbeGrid(ae);else if(ae.isLight)G.pushLight(ae),ae.castShadow&&G.pushShadow(ae);else if(ae.isSprite){if(!ae.frustumCulled||ae.intersectsFrustum(lt)){Be&&Qt.setFromMatrixPosition(ae.matrixWorld).applyMatrix4(dt);let Bt=le.update(ae),wt=ae.material;wt.visible&&q.push(ae,Bt,wt,Ye,Qt.z,null,Fe)}}else if((ae.isMesh||ae.isLine||ae.isPoints)&&(!ae.frustumCulled||ae.intersectsFrustum(lt))){let Bt=le.update(ae),wt=ae.material;if(Be&&(ae.boundingSphere!==void 0?(ae.boundingSphere===null&&ae.computeBoundingSphere(),Qt.copy(ae.boundingSphere.center)):(Bt.boundingSphere===null&&Bt.computeBoundingSphere(),Qt.copy(Bt.boundingSphere.center)),Qt.applyMatrix4(ae.matrixWorld).applyMatrix4(dt)),Array.isArray(wt)){let Nt=Bt.groups;for(let Kt=0,yn=Nt.length;Kt<yn;Kt++){let Sn=Nt[Kt],_t=wt[Sn.materialIndex];_t&&_t.visible&&q.push(ae,Bt,_t,Ye,Qt.z,Sn,Fe)}}else wt.visible&&q.push(ae,Bt,wt,Ye,Qt.z,null,Fe)}}let It=ae.children;for(let Bt=0,wt=It.length;Bt<wt;Bt++)fs(It[Bt],Fe,Ye,Be)}function hi(ae,Fe,Ye,Be){let{opaque:He,transmissive:It,transparent:Bt}=ae;G.setupLightsView(Ye),_e===!0&&Ct.setGlobalState(te.clippingPlanes,Ye),Be&&L.viewport(We.copy(Be)),He.length>0&&wn(He,Fe,Ye),It.length>0&&wn(It,Fe,Ye),Bt.length>0&&wn(Bt,Fe,Ye),L.buffers.depth.setTest(!0),L.buffers.depth.setMask(!0),L.buffers.color.setMask(!0),L.setPolygonOffset(!1)}function yo(ae,Fe,Ye,Be){if((Ye.isScene===!0?Ye.overrideMaterial:null)!==null)return;if(G.state.transmissionRenderTarget[Be.id]===void 0){let _t=kt.has("EXT_color_buffer_half_float")||kt.has("EXT_color_buffer_float");G.state.transmissionRenderTarget[Be.id]=new Va(1,1,{generateMipmaps:!0,type:_t?$l:ja,minFilter:Fu,samples:Math.max(4,ge.samples),stencilBuffer:a,resolveDepthBuffer:!1,resolveStencilBuffer:!1,storeMultisampledDepthBuffer:!1,storeMultisampledStencilBuffer:!1,colorSpace:Gn.workingColorSpace})}let It=G.state.transmissionRenderTarget[Be.id],Bt=Be.viewport||We;It.setSize(Bt.z*te.transmissionResolutionScale,Bt.w*te.transmissionResolutionScale);let wt=te.getRenderTarget(),Nt=te.getActiveCubeFace(),Kt=te.getActiveMipmapLevel();te.setRenderTarget(It),te.getClearColor(jt),zt=te.getClearAlpha(),zt<1&&te.setClearColor(16777215,.5),te.clear(),qt&&ht.render(Ye);let yn=te.toneMapping;te.toneMapping=_o;let Sn=Be.viewport;if(Be.viewport!==void 0&&(Be.viewport=void 0),G.setupLightsView(Be),_e===!0&&Ct.setGlobalState(te.clippingPlanes,Be),wn(ae,Ye,Be),ee.updateMultisampleRenderTarget(It),ee.updateRenderTargetMipmap(It),kt.has("WEBGL_multisampled_render_to_texture")===!1){let _t=!1;for(let En=0,ri=Fe.length;En<ri;En++){let Hn=Fe[En],{object:On,geometry:Xi,material:Pt,group:Oi}=Hn;if(Pt.side===ku&&On.layers.test(Be.layers)){let xn=Pt.side;Pt.side=ss,Pt.needsUpdate=!0,Us(On,Ye,Be,Xi,Pt,Oi),Pt.side=xn,Pt.needsUpdate=!0,_t=!0}}_t===!0&&(ee.updateMultisampleRenderTarget(It),ee.updateRenderTargetMipmap(It))}te.setRenderTarget(wt,Nt,Kt),te.setClearColor(jt,zt),Sn!==void 0&&(Be.viewport=Sn),te.toneMapping=yn}function wn(ae,Fe,Ye){let Be=Fe.isScene===!0?Fe.overrideMaterial:null;for(let He=0,It=ae.length;He<It;He++){let Bt=ae[He],{object:wt,geometry:Nt,group:Kt}=Bt,yn=Bt.material;yn.allowOverride===!0&&Be!==null&&(yn=Be),wt.layers.test(Ye.layers)&&Us(wt,Fe,Ye,Nt,yn,Kt)}}function Us(ae,Fe,Ye,Be,He,It){he!==null&&He.isNodeMaterial&&he.setObject(ae,He),ae.onBeforeRender(te,Fe,Ye,Be,He,It),ae.modelViewMatrix.multiplyMatrices(Ye.matrixWorldInverse,ae.matrixWorld),ae.normalMatrix.getNormalMatrix(ae.modelViewMatrix),He.onBeforeRender(te,Fe,Ye,Be,ae,It),He.transparent===!0&&He.side===ku&&He.forceSinglePass===!1?(He.side=ss,He.needsUpdate=!0,te.renderBufferDirect(Ye,Fe,Be,He,ae,It),He.side=$f,He.needsUpdate=!0,te.renderBufferDirect(Ye,Fe,Be,He,ae,It),He.side=ku):te.renderBufferDirect(Ye,Fe,Be,He,ae,It),ae.onAfterRender(te,Fe,Ye,Be,He,It)}function Xa(ae,Fe,Ye){Fe.isScene!==!0&&(Fe=Ht);let Be=U.get(ae),He=G.state.lights,It=G.state.shadowsArray,Bt=He.state.version,wt=be.getParameters(ae,He.state,It,Fe,Ye,G.state.lightProbeGridArray),Nt=be.getProgramCacheKey(wt),Kt=Be.programs;Be.environment=ae.isMeshStandardMaterial||ae.isMeshLambertMaterial||ae.isMeshPhongMaterial?Fe.environment:null,Be.fog=Fe.fog;let yn=ae.isMeshStandardMaterial||ae.isMeshLambertMaterial&&!ae.envMap||ae.isMeshPhongMaterial&&!ae.envMap;Be.envMap=ne.get(ae.envMap||Be.environment,yn),Be.envMapRotation=Be.environment!==null&&ae.envMap===null?Fe.environmentRotation:ae.envMapRotation,Kt===void 0&&(ae.addEventListener("dispose",d),Kt=new Map,Be.programs=Kt);let Sn=Kt.get(Nt);if(Sn!==void 0){if(Be.currentProgram===Sn&&Be.lightsStateVersion===Bt)return Jr(ae,wt),Sn}else wt.uniforms=be.getUniforms(ae),he!==null&&ae.isNodeMaterial&&he.build(ae,Ye,wt),ae.onBeforeCompile(wt,te),Sn=be.acquireProgram(wt,Nt),Kt.set(Nt,Sn),Be.uniforms=wt.uniforms;let _t=Be.uniforms;return(!ae.isShaderMaterial&&!ae.isRawShaderMaterial||ae.clipping===!0)&&(_t.clippingPlanes=Ct.uniform),Jr(ae,wt),Be.needsLights=ps(ae),Be.lightsStateVersion=Bt,Be.needsLights&&(_t.ambientLightColor.value=He.state.ambient,_t.lightProbe.value=He.state.probe,_t.sunLights.value=He.state.sun,_t.sunLightShadows.value=He.state.sunShadow,_t.directionalLights.value=He.state.directional,_t.directionalLightShadows.value=He.state.directionalShadow,_t.spotLights.value=He.state.spot,_t.spotLightShadows.value=He.state.spotShadow,_t.rectAreaLights.value=He.state.rectArea,_t.ltc_1.value=He.state.rectAreaLTC1,_t.ltc_2.value=He.state.rectAreaLTC2,_t.pointLights.value=He.state.point,_t.pointLightShadows.value=He.state.pointShadow,_t.hemisphereLights.value=He.state.hemi,_t.sunShadowMatrix.value=He.state.sunShadowMatrix,_t.sunShadowCascade.value=He.state.sunShadowCascade,_t.directionalShadowMatrix.value=He.state.directionalShadowMatrix,_t.spotLightMatrix.value=He.state.spotLightMatrix,_t.spotLightMap.value=He.state.spotLightMap,_t.pointShadowMatrix.value=He.state.pointShadowMatrix),Be.lightProbeGrid=G.state.lightProbeGridArray.length>0,Be.currentProgram=Sn,Be.uniformsList=null,Sn}function $r(ae){if(ae.uniformsList===null){let Fe=ae.currentProgram.getUniforms();ae.uniformsList=rb.seqWithValue(Fe.seq,ae.uniforms)}return ae.uniformsList}function Jr(ae,Fe){let Ye=U.get(ae);Ye.outputColorSpace=Fe.outputColorSpace,Ye.batching=Fe.batching,Ye.batchingColor=Fe.batchingColor,Ye.instancing=Fe.instancing,Ye.instancingColor=Fe.instancingColor,Ye.instancingMorph=Fe.instancingMorph,Ye.skinning=Fe.skinning,Ye.morphTargets=Fe.morphTargets,Ye.morphNormals=Fe.morphNormals,Ye.morphColors=Fe.morphColors,Ye.morphTargetsCount=Fe.morphTargetsCount,Ye.numClippingPlanes=Fe.numClippingPlanes,Ye.numIntersection=Fe.numClipIntersection,Ye.vertexAlphas=Fe.vertexAlphas,Ye.vertexTangents=Fe.vertexTangents,Ye.toneMapping=Fe.toneMapping}function ds(ae,Fe){if(ae.length===0)return null;if(ae.length===1)return ae[0].texture!==null?ae[0]:null;k.setFromMatrixPosition(Fe.matrixWorld);for(let Ye=0,Be=ae.length;Ye<Be;Ye++){let He=ae[Ye];if(He.texture!==null&&He.boundingBox.containsPoint(k))return He}return null}function bo(ae,Fe,Ye,Be,He){Fe.isScene!==!0&&(Fe=Ht),ee.resetTextureUnits();let It=Fe.fog,Bt=Be.isMeshStandardMaterial||Be.isMeshLambertMaterial||Be.isMeshPhongMaterial?Fe.environment:null,wt=Je===null?te.outputColorSpace:Je.isXRRenderTarget===!0?Je.texture.colorSpace:Gn.workingColorSpace,Nt=Be.isMeshStandardMaterial||Be.isMeshLambertMaterial&&!Be.envMap||Be.isMeshPhongMaterial&&!Be.envMap,Kt=ne.get(Be.envMap||Bt,Nt),yn=Be.vertexColors===!0&&!!Ye.attributes.color&&Ye.attributes.color.itemSize===4,Sn=!!Ye.attributes.tangent&&(!!Be.normalMap||Be.anisotropy>0),_t=!!Ye.morphAttributes.position,En=!!Ye.morphAttributes.normal,ri=!!Ye.morphAttributes.color,Hn=_o;Be.toneMapped&&(Je===null||Je.isXRRenderTarget===!0)&&(Hn=te.toneMapping);let On=Ye.morphAttributes.position||Ye.morphAttributes.normal||Ye.morphAttributes.color,Xi=On!==void 0?On.length:0,Pt=U.get(Be),Oi=G.state.lights;if(_e===!0&&(Pe===!0||ae!==st)){let jn=ae===st&&Be.id===Qe;Ct.setState(Be,ae,jn)}let xn=!1;Be.version===Pt.__version?(Pt.needsLights&&Pt.lightsStateVersion!==Oi.state.version||Pt.outputColorSpace!==wt||He.isBatchedMesh&&Pt.batching===!1||!He.isBatchedMesh&&Pt.batching===!0||He.isBatchedMesh&&Pt.batchingColor===!0&&He._colorsTexture===null||He.isBatchedMesh&&Pt.batchingColor===!1&&He._colorsTexture!==null||He.isInstancedMesh&&Pt.instancing===!1||!He.isInstancedMesh&&Pt.instancing===!0||He.isSkinnedMesh&&Pt.skinning===!1||!He.isSkinnedMesh&&Pt.skinning===!0||He.isInstancedMesh&&Pt.instancingColor===!0&&He.instanceColor===null||He.isInstancedMesh&&Pt.instancingColor===!1&&He.instanceColor!==null||He.isInstancedMesh&&Pt.instancingMorph===!0&&He.morphTexture===null||He.isInstancedMesh&&Pt.instancingMorph===!1&&He.morphTexture!==null||Pt.envMap!==Kt||Be.fog===!0&&Pt.fog!==It||Pt.numClippingPlanes!==void 0&&(Pt.numClippingPlanes!==Ct.numPlanes||Pt.numIntersection!==Ct.numIntersection)||Pt.vertexAlphas!==yn||Pt.vertexTangents!==Sn||Pt.morphTargets!==_t||Pt.morphNormals!==En||Pt.morphColors!==ri||Pt.toneMapping!==Hn||Pt.morphTargetsCount!==Xi||!!Pt.lightProbeGrid!=G.state.lightProbeGridArray.length>0)&&(xn=!0):(xn=!0,Pt.__version=Be.version);let ai=Pt.currentProgram;xn===!0&&(ai=Xa(Be,Fe,He),he&&Be.isNodeMaterial&&he.onUpdateProgram(Be,ai,Pt));let Vn=!1,wr=!1,Ur=!1,zn=ai.getUniforms(),vi=Pt.uniforms;if(L.useProgram(ai.program)&&(Vn=!0,wr=!0,Ur=!0),Be.id!==Qe&&(Qe=Be.id,wr=!0),Pt.needsLights){let jn=ds(G.state.lightProbeGridArray,He);Pt.lightProbeGrid!==jn&&(Pt.lightProbeGrid=jn,wr=!0)}if(Vn||st!==ae){L.buffers.depth.getReversed()&&ae.reversedDepth!==!0&&(ae._reversedDepth=!0,ae.updateProjectionMatrix()),zn.setValue(Le,"projectionMatrix",ae.projectionMatrix),zn.setValue(Le,"viewMatrix",ae.matrixWorldInverse);let si=zn.map.cameraPosition;si!==void 0&&si.setValue(Le,vt.setFromMatrixPosition(ae.matrixWorld)),ge.logarithmicDepthBuffer&&zn.setValue(Le,"logDepthBufFC",2/(Math.log(ae.far+1)/Math.LN2)),(Be.isMeshPhongMaterial||Be.isMeshToonMaterial||Be.isMeshLambertMaterial||Be.isMeshBasicMaterial||Be.isMeshStandardMaterial||Be.isShaderMaterial)&&zn.setValue(Le,"isOrthographic",ae.isOrthographicCamera===!0),st!==ae&&(st=ae,wr=!0,Ur=!0)}if(Pt.needsLights&&(Oi.state.sunShadowMap.length>0&&zn.setValue(Le,"sunShadowMap",Oi.state.sunShadowMap,ee),Oi.state.directionalShadowMap.length>0&&zn.setValue(Le,"directionalShadowMap",Oi.state.directionalShadowMap,ee),Oi.state.spotShadowMap.length>0&&zn.setValue(Le,"spotShadowMap",Oi.state.spotShadowMap,ee),Oi.state.pointShadowMap.length>0&&zn.setValue(Le,"pointShadowMap",Oi.state.pointShadowMap,ee)),He.isSkinnedMesh){zn.setOptional(Le,He,"bindMatrix"),zn.setOptional(Le,He,"bindMatrixInverse");let jn=He.skeleton;jn&&(jn.boneTexture===null&&jn.computeBoneTexture(),zn.setValue(Le,"boneTexture",jn.boneTexture,ee))}He.isBatchedMesh&&(zn.setOptional(Le,He,"batchingTexture"),zn.setValue(Le,"batchingTexture",He._matricesTexture,ee),zn.setOptional(Le,He,"batchingIdTexture"),zn.setValue(Le,"batchingIdTexture",He._indirectTexture,ee),zn.setOptional(Le,He,"batchingColorTexture"),He._colorsTexture!==null&&zn.setValue(Le,"batchingColorTexture",He._colorsTexture,ee));let pi=Ye.morphAttributes;if((pi.position!==void 0||pi.normal!==void 0||pi.color!==void 0)&&De.update(He,Ye,ai),(wr||Pt.receiveShadow!==He.receiveShadow)&&(Pt.receiveShadow=He.receiveShadow,zn.setValue(Le,"receiveShadow",He.receiveShadow)),(Be.isMeshStandardMaterial||Be.isMeshLambertMaterial||Be.isMeshPhongMaterial)&&Be.envMap===null&&Fe.environment!==null&&(vi.envMapIntensity.value=Fe.environmentIntensity),vi.dfgLUT!==void 0&&(vi.dfgLUT.value=AJ()),wr){if(zn.setValue(Le,"toneMappingExposure",te.toneMappingExposure),Pt.needsLights&&hs(vi,Ur),It&&Be.fog===!0&&tt.refreshFogUniforms(vi,It),tt.refreshMaterialUniforms(vi,Be,et,Xe,G.state.transmissionRenderTarget[ae.id]),Pt.needsLights&&Pt.lightProbeGrid){let jn=Pt.lightProbeGrid;vi.probesSH.value=jn.texture,vi.probesMin.value.copy(jn.boundingBox.min),vi.probesMax.value.copy(jn.boundingBox.max),vi.probesResolution.value.copy(jn.resolution)}rb.upload(Le,$r(Pt),vi,ee)}if(Be.isShaderMaterial&&Be.uniformsNeedUpdate===!0&&(rb.upload(Le,$r(Pt),vi,ee),Be.uniformsNeedUpdate=!1),Be.isSpriteMaterial&&zn.setValue(Le,"center",He.center),zn.setValue(Le,"modelViewMatrix",He.modelViewMatrix),zn.setValue(Le,"normalMatrix",He.normalMatrix),zn.setValue(Le,"modelMatrix",He.matrixWorld),Be.uniformsGroups!==void 0){let jn=Be.uniformsGroups;for(let si=0,da=jn.length;si<da;si++){let Eo=jn[si];ft.update(Eo,ai),ft.bind(Eo,ai)}}return ai}function hs(ae,Fe){ae.ambientLightColor.needsUpdate=Fe,ae.lightProbe.needsUpdate=Fe,ae.sunLights.needsUpdate=Fe,ae.sunLightShadows.needsUpdate=Fe,ae.directionalLights.needsUpdate=Fe,ae.directionalLightShadows.needsUpdate=Fe,ae.pointLights.needsUpdate=Fe,ae.pointLightShadows.needsUpdate=Fe,ae.spotLights.needsUpdate=Fe,ae.spotLightShadows.needsUpdate=Fe,ae.rectAreaLights.needsUpdate=Fe,ae.hemisphereLights.needsUpdate=Fe}function ps(ae){return ae.isMeshLambertMaterial||ae.isMeshToonMaterial||ae.isMeshPhongMaterial||ae.isMeshStandardMaterial||ae.isShadowMaterial||ae.isShaderMaterial&&ae.lights===!0}this.getActiveCubeFace=function(){return Ne},this.getActiveMipmapLevel=function(){return Ve},this.getRenderTarget=function(){return Je},this.setRenderTargetTextures=function(ae,Fe,Ye){let Be=U.get(ae);Be.__autoAllocateDepthBuffer=ae.resolveDepthBuffer===!1,Be.__autoAllocateDepthBuffer===!1&&(Be.__useRenderToTexture=!1),U.get(ae.texture).__webglTexture=Fe,U.get(ae.depthTexture).__webglTexture=Be.__autoAllocateDepthBuffer?void 0:Ye,Be.__hasExternalTextures=!0},this.setRenderTargetFramebuffer=function(ae,Fe){let Ye=U.get(ae);Ye.__webglFramebuffer=Fe,Ye.__useDefaultFramebuffer=Fe===void 0},this.setRenderTarget=function(ae,Fe=0,Ye=0){Je=ae,Ne=Fe,Ve=Ye;let Be=null,He=!1,It=!1;if(ae){let wt=U.get(ae);if(wt.__useDefaultFramebuffer!==void 0){L.bindFramebuffer(Le.FRAMEBUFFER,wt.__webglFramebuffer),We.copy(ae.viewport),gt.copy(ae.scissor),Et=ae.scissorTest,L.viewport(We),L.scissor(gt),L.setScissorTest(Et),Qe=-1;return}else if(wt.__webglFramebuffer===void 0)ee.setupRenderTarget(ae);else if(wt.__hasExternalTextures)ee.rebindTextures(ae,U.get(ae.texture).__webglTexture,U.get(ae.depthTexture).__webglTexture);else if(ae.depthBuffer){let yn=ae.depthTexture;if(wt.__boundDepthTexture!==yn){if(yn!==null&&U.has(yn)&&(ae.width!==yn.image.width||ae.height!==yn.image.height))throw new Error("THREE.WebGLRenderer: Attached DepthTexture is initialized to the incorrect size.");ee.setupDepthRenderbuffer(ae)}}let Nt=ae.texture;(Nt.isData3DTexture||Nt.isDataArrayTexture||Nt.isCompressedArrayTexture)&&(It=!0);let Kt=U.get(ae).__webglFramebuffer;ae.isWebGLCubeRenderTarget?(Array.isArray(Kt[Fe])?Be=Kt[Fe][Ye]:Be=Kt[Fe],He=!0):ae.samples>0&&ee.useMultisampledRTT(ae)===!1?Be=U.get(ae).__webglMultisampledFramebuffer:Array.isArray(Kt)?Be=Kt[Ye]:Be=Kt,We.copy(ae.viewport),gt.copy(ae.scissor),Et=ae.scissorTest}else We.copy(Lt).multiplyScalar(et).floor(),gt.copy(sn).multiplyScalar(et).floor(),Et=pn;if(Ye!==0&&(Be=ke),L.bindFramebuffer(Le.FRAMEBUFFER,Be)&&L.drawBuffers(ae,Be),L.viewport(We),L.scissor(gt),L.setScissorTest(Et),He){let wt=U.get(ae.texture);Le.framebufferTexture2D(Le.FRAMEBUFFER,Le.COLOR_ATTACHMENT0,Le.TEXTURE_CUBE_MAP_POSITIVE_X+Fe,wt.__webglTexture,Ye)}else if(It){let wt=Fe;for(let Nt=0;Nt<ae.textures.length;Nt++){let Kt=U.get(ae.textures[Nt]);Le.framebufferTextureLayer(Le.FRAMEBUFFER,Le.COLOR_ATTACHMENT0+Nt,Kt.__webglTexture,Ye,wt)}}else if(ae!==null&&Ye!==0){let wt=U.get(ae.texture);Le.framebufferTexture2D(Le.FRAMEBUFFER,Le.COLOR_ATTACHMENT0,Le.TEXTURE_2D,wt.__webglTexture,Ye)}Qe=-1};function So(ae){let Fe=U.get(ae);return(Fe.__readFormat!==ae.format||Fe.__readType!==ae.type)&&(Fe.__readFormat=ae.format,Fe.__readType=ae.type,Fe.__formatReadable=ge.textureFormatReadable(ae.format),Fe.__typeReadable=ge.textureTypeReadable(ae.type)),Fe}this.readRenderTargetPixels=function(ae,Fe,Ye,Be,He,It,Bt,wt=0){if(!(ae&&ae.isWebGLRenderTarget)){cn("WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");return}let Nt=U.get(ae).__webglFramebuffer;if(ae.isWebGLCubeRenderTarget&&Bt!==void 0&&(Nt=Nt[Bt]),Nt){L.bindFramebuffer(Le.FRAMEBUFFER,Nt);try{let Kt=ae.textures[wt],yn=Kt.format,Sn=Kt.type;ae.textures.length>1&&Le.readBuffer(Le.COLOR_ATTACHMENT0+wt);let _t=So(Kt);if(_t.__formatReadable===!1){cn("WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");return}if(_t.__typeReadable===!1){cn("WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");return}Fe>=0&&Fe<=ae.width-Be&&Ye>=0&&Ye<=ae.height-He&&Le.readPixels(Fe,Ye,Be,He,we.convert(yn),we.convert(Sn),It)}finally{let Kt=Je!==null?U.get(Je).__webglFramebuffer:null;L.bindFramebuffer(Le.FRAMEBUFFER,Kt)}}},this.readRenderTargetPixelsAsync=async function(ae,Fe,Ye,Be,He,It,Bt,wt=0){if(!(ae&&ae.isWebGLRenderTarget))throw new Error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");let Nt=U.get(ae).__webglFramebuffer;if(ae.isWebGLCubeRenderTarget&&Bt!==void 0&&(Nt=Nt[Bt]),Nt)if(Fe>=0&&Fe<=ae.width-Be&&Ye>=0&&Ye<=ae.height-He){L.bindFramebuffer(Le.FRAMEBUFFER,Nt);let Kt=ae.textures[wt],yn=Kt.format,Sn=Kt.type;ae.textures.length>1&&Le.readBuffer(Le.COLOR_ATTACHMENT0+wt);let _t=So(Kt);if(_t.__formatReadable===!1)throw new Error("THREE.WebGLRenderer.readRenderTargetPixelsAsync: renderTarget is not in RGBA or implementation defined format.");if(_t.__typeReadable===!1)throw new Error("THREE.WebGLRenderer.readRenderTargetPixelsAsync: renderTarget is not in UnsignedByteType or implementation defined type.");let En=Le.createBuffer();Le.bindBuffer(Le.PIXEL_PACK_BUFFER,En),Le.bufferData(Le.PIXEL_PACK_BUFFER,It.byteLength,Le.STREAM_READ),Le.readPixels(Fe,Ye,Be,He,we.convert(yn),we.convert(Sn),0),Le.bindBuffer(Le.PIXEL_PACK_BUFFER,null);let ri=Je!==null?U.get(Je).__webglFramebuffer:null;L.bindFramebuffer(Le.FRAMEBUFFER,ri);let Hn=Le.fenceSync(Le.SYNC_GPU_COMMANDS_COMPLETE,0);return Le.flush(),await q5(Le,Hn,4),Le.bindBuffer(Le.PIXEL_PACK_BUFFER,En),Le.getBufferSubData(Le.PIXEL_PACK_BUFFER,0,It),Le.bindBuffer(Le.PIXEL_PACK_BUFFER,null),Le.deleteBuffer(En),Le.deleteSync(Hn),It}else throw new Error("THREE.WebGLRenderer.readRenderTargetPixelsAsync: requested read bounds are out of range.")},this.copyFramebufferToTexture=function(ae,Fe=null,Ye=0){let Be=Math.pow(2,-Ye),He=Math.floor(ae.image.width*Be),It=Math.floor(ae.image.height*Be),Bt=Fe!==null?Fe.x:0,wt=Fe!==null?Fe.y:0;ee.setTexture2D(ae,0),Le.copyTexSubImage2D(Le.TEXTURE_2D,Ye,0,0,Bt,wt,He,It),L.unbindTexture()},this.copyTextureToTexture=function(ae,Fe,Ye=null,Be=null,He=0,It=0){let Bt,wt,Nt,Kt,yn,Sn,_t,En,ri,Hn=ae.isCompressedTexture?ae.mipmaps[It]:ae.image;if(Ye!==null)Bt=Ye.max.x-Ye.min.x,wt=Ye.max.y-Ye.min.y,Nt=Ye.isBox3?Ye.max.z-Ye.min.z:1,Kt=Ye.min.x,yn=Ye.min.y,Sn=Ye.isBox3?Ye.min.z:0;else{let vi=Math.pow(2,-He);Bt=Math.floor(Hn.width*vi),wt=Math.floor(Hn.height*vi),ae.isDataArrayTexture?Nt=Hn.depth:ae.isData3DTexture?Nt=Math.floor(Hn.depth*vi):Nt=1,Kt=0,yn=0,Sn=0}Be!==null?(_t=Be.x,En=Be.y,ri=Be.z):(_t=0,En=0,ri=0);let On=we.convert(Fe.format),Xi=we.convert(Fe.type),Pt;Fe.isData3DTexture?(ee.setTexture3D(Fe,0),Pt=Le.TEXTURE_3D):Fe.isDataArrayTexture||Fe.isCompressedArrayTexture?(ee.setTexture2DArray(Fe,0),Pt=Le.TEXTURE_2D_ARRAY):(ee.setTexture2D(Fe,0),Pt=Le.TEXTURE_2D),L.activeTexture(Le.TEXTURE0),L.pixelStorei(Le.UNPACK_FLIP_Y_WEBGL,Fe.flipY),L.pixelStorei(Le.UNPACK_PREMULTIPLY_ALPHA_WEBGL,Fe.premultiplyAlpha),L.pixelStorei(Le.UNPACK_ALIGNMENT,Fe.unpackAlignment);let Oi=L.getParameter(Le.UNPACK_ROW_LENGTH),xn=L.getParameter(Le.UNPACK_IMAGE_HEIGHT),ai=L.getParameter(Le.UNPACK_SKIP_PIXELS),Vn=L.getParameter(Le.UNPACK_SKIP_ROWS),wr=L.getParameter(Le.UNPACK_SKIP_IMAGES);L.pixelStorei(Le.UNPACK_ROW_LENGTH,Hn.width),L.pixelStorei(Le.UNPACK_IMAGE_HEIGHT,Hn.height),L.pixelStorei(Le.UNPACK_SKIP_PIXELS,Kt),L.pixelStorei(Le.UNPACK_SKIP_ROWS,yn),L.pixelStorei(Le.UNPACK_SKIP_IMAGES,Sn);let Ur=ae.isDataArrayTexture||ae.isData3DTexture,zn=Fe.isDataArrayTexture||Fe.isData3DTexture;if(ae.isDepthTexture){let vi=U.get(ae),pi=U.get(Fe),jn=U.get(vi.__renderTarget),si=U.get(pi.__renderTarget);L.bindFramebuffer(Le.READ_FRAMEBUFFER,jn.__webglFramebuffer),L.bindFramebuffer(Le.DRAW_FRAMEBUFFER,si.__webglFramebuffer);for(let da=0;da<Nt;da++)Ur&&(Le.framebufferTextureLayer(Le.READ_FRAMEBUFFER,Le.COLOR_ATTACHMENT0,U.get(ae).__webglTexture,He,Sn+da),Le.framebufferTextureLayer(Le.DRAW_FRAMEBUFFER,Le.COLOR_ATTACHMENT0,U.get(Fe).__webglTexture,It,ri+da)),Le.blitFramebuffer(Kt,yn,Bt,wt,_t,En,Bt,wt,Le.DEPTH_BUFFER_BIT,Le.NEAREST);L.bindFramebuffer(Le.READ_FRAMEBUFFER,null),L.bindFramebuffer(Le.DRAW_FRAMEBUFFER,null)}else if(He!==0||ae.isRenderTargetTexture||U.has(ae)){let vi=U.get(ae),pi=U.get(Fe);L.bindFramebuffer(Le.READ_FRAMEBUFFER,Me),L.bindFramebuffer(Le.DRAW_FRAMEBUFFER,ze);for(let jn=0;jn<Nt;jn++)Ur?Le.framebufferTextureLayer(Le.READ_FRAMEBUFFER,Le.COLOR_ATTACHMENT0,vi.__webglTexture,He,Sn+jn):Le.framebufferTexture2D(Le.READ_FRAMEBUFFER,Le.COLOR_ATTACHMENT0,Le.TEXTURE_2D,vi.__webglTexture,He),zn?Le.framebufferTextureLayer(Le.DRAW_FRAMEBUFFER,Le.COLOR_ATTACHMENT0,pi.__webglTexture,It,ri+jn):Le.framebufferTexture2D(Le.DRAW_FRAMEBUFFER,Le.COLOR_ATTACHMENT0,Le.TEXTURE_2D,pi.__webglTexture,It),He!==0?Le.blitFramebuffer(Kt,yn,Bt,wt,_t,En,Bt,wt,Le.COLOR_BUFFER_BIT,Le.NEAREST):zn?Le.copyTexSubImage3D(Pt,It,_t,En,ri+jn,Kt,yn,Bt,wt):Le.copyTexSubImage2D(Pt,It,_t,En,Kt,yn,Bt,wt);L.bindFramebuffer(Le.READ_FRAMEBUFFER,null),L.bindFramebuffer(Le.DRAW_FRAMEBUFFER,null)}else zn?ae.isDataTexture||ae.isData3DTexture?Le.texSubImage3D(Pt,It,_t,En,ri,Bt,wt,Nt,On,Xi,Hn.data):Fe.isCompressedArrayTexture?Le.compressedTexSubImage3D(Pt,It,_t,En,ri,Bt,wt,Nt,On,Hn.data):Le.texSubImage3D(Pt,It,_t,En,ri,Bt,wt,Nt,On,Xi,Hn):ae.isDataTexture?Le.texSubImage2D(Le.TEXTURE_2D,It,_t,En,Bt,wt,On,Xi,Hn.data):ae.isCompressedTexture?Le.compressedTexSubImage2D(Le.TEXTURE_2D,It,_t,En,Hn.width,Hn.height,On,Hn.data):Le.texSubImage2D(Le.TEXTURE_2D,It,_t,En,Bt,wt,On,Xi,Hn);L.pixelStorei(Le.UNPACK_ROW_LENGTH,Oi),L.pixelStorei(Le.UNPACK_IMAGE_HEIGHT,xn),L.pixelStorei(Le.UNPACK_SKIP_PIXELS,ai),L.pixelStorei(Le.UNPACK_SKIP_ROWS,Vn),L.pixelStorei(Le.UNPACK_SKIP_IMAGES,wr),It===0&&Fe.generateMipmaps&&Le.generateMipmap(Pt),L.unbindTexture()},this.initRenderTarget=function(ae){U.get(ae).__webglFramebuffer===void 0&&ee.setupRenderTarget(ae)},this.initTexture=function(ae){ae.isCubeTexture?ee.setTextureCube(ae,0):ae.isData3DTexture?ee.setTexture3D(ae,0):ae.isDataArrayTexture||ae.isCompressedArrayTexture?ee.setTexture2DArray(ae,0):ee.setTexture2D(ae,0),L.unbindTexture()},this.resetState=function(){Ne=0,Ve=0,Je=null,L.reset(),Rt.reset()},typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}get coordinateSystem(){return ho}get outputColorSpace(){return this._outputColorSpace}set outputColorSpace(e){this._outputColorSpace=e;let t=this.getContext();t.drawingBufferColorSpace=Gn._getDrawingBufferColorSpace(e),t.unpackColorSpace=Gn._getUnpackColorSpace()}};var nd=ci($o());var U8=ci(tr(),1),z8=ci(O8(),1);var D8=n=>{let e,t=new Set,i=(f,p)=>{let h=typeof f=="function"?f(e):f;if(!Object.is(h,e)){let _=e;e=p??(typeof h!="object"||h===null)?h:Object.assign({},e,h),t.forEach(g=>g(e,_))}},r=()=>e,l={setState:i,getState:r,getInitialState:()=>c,subscribe:f=>(t.add(f),()=>t.delete(f))},c=e=n(i,r,l);return l},F8=(n=>n?D8(n):D8);var{useSyncExternalStoreWithSelector:WJ}=z8.default,jJ=n=>n;function QJ(n,e=jJ,t){let i=WJ(n.subscribe,n.getState,n.getInitialState,e,t);return U8.default.useDebugValue(i),i}var P8=(n,e)=>{let t=F8(n),i=(r,a=e)=>QJ(t,r,a);return Object.assign(i,t),i},q8=((n,e)=>n?P8(n,e):P8);var XJ=n=>typeof n=="object"&&typeof n.then=="function",I_=[];function B8(n,e,t=(i,r)=>i===r){if(n===e)return!0;if(!n||!e)return!1;let i=n.length;if(e.length!==i)return!1;for(let r=0;r<i;r++)if(!t(n[r],e[r]))return!1;return!0}function H8(n,e=null,t=!1,i={}){e===null&&(e=[n]);for(let a of I_)if(B8(e,a.keys,a.equal)){if(t)return;if(Object.prototype.hasOwnProperty.call(a,"error"))throw a.error;if(Object.prototype.hasOwnProperty.call(a,"response"))return i.lifespan&&i.lifespan>0&&(a.timeout&&clearTimeout(a.timeout),a.timeout=setTimeout(a.remove,i.lifespan)),a.response;if(!t)throw a.promise}let r={keys:e,equal:i.equal,remove:()=>{let a=I_.indexOf(r);a!==-1&&I_.splice(a,1)},promise:(XJ(n)?n:n(...e)).then(a=>{r.response=a,i.lifespan&&i.lifespan>0&&(r.timeout=setTimeout(r.remove,i.lifespan))}).catch(a=>r.error=a)};if(I_.push(r),!t)throw r.promise}var V8=(n,e,t)=>H8(n,e,!1,t),G8=(n,e,t)=>void H8(n,e,!0,t);var W8=n=>{if(n===void 0||n.length===0)I_.splice(0,I_.length);else{let e=I_.find(t=>B8(n,t.keys,t.equal));e&&e.remove()}};var ar=ci(tr(),1),Mse=(()=>{var n,e;return typeof window<"u"&&(((n=window.document)==null?void 0:n.createElement)||((e=window.navigator)==null?void 0:e.product)==="ReactNative")})()?ar.default.useLayoutEffect:ar.default.useEffect;function W1(n,e,t){if(!n)return;if(t(n)===!0)return n;let i=e?n.return:n.child;for(;i;){let r=W1(i,e,t);if(r)return r;i=e?null:i.sibling}}function j8(n){try{return Object.defineProperties(n,{_currentRenderer:{get(){return null},set(){}},_currentRenderer2:{get(){return null},set(){}}})}catch{return n}}var gD=j8(ar.default.createContext(null)),G1=class extends ar.default.Component{render(){return ar.default.createElement(gD.Provider,{value:this._reactInternals},this.props.children)}};function I2(){let n=ar.default.useContext(gD);if(n===null)throw new Error("its-fine: useFiber must be called within a <FiberProvider />!");let e=ar.default.useId();return ar.default.useMemo(()=>{for(let t of[n,n?.alternate]){if(!t)continue;let i=W1(t,!1,r=>{let a=r.memoizedState;for(;a;){if(a.memoizedState===e)return!0;a=a.next}});if(i)return i}},[n,e])}var YJ=Symbol.for("react.context"),KJ=n=>n!==null&&typeof n=="object"&&"$$typeof"in n&&n.$$typeof===YJ;function ZJ(){let n=I2(),[e]=ar.default.useState(()=>new Map);e.clear();let t=n;for(;t;){let i=t.type;KJ(i)&&i!==gD&&!e.has(i)&&e.set(i,ar.default.use(j8(i))),t=t.return}return e}function Q8(){let n=ZJ();return ar.default.useMemo(()=>Array.from(n.keys()).reduce((e,t)=>i=>ar.default.createElement(e,null,ar.default.createElement(t.Provider,{...i,value:n.get(t)})),e=>ar.default.createElement(G1,{...e})),[n])}function $J(n){if(typeof requestAnimationFrame=="function"){let t=requestAnimationFrame(n);return()=>cancelAnimationFrame(t)}let e=setTimeout(n,16);return()=>clearTimeout(e)}function X8(){if(!ar.default.Activity)throw new Error("its-fine: useActivityBridge requires React 19.2 or later!");let n=I2(),[e]=ar.default.useState(()=>{let t=[],i=!1;W1(n,!0,c=>{var f,p;if(c.elementType===ar.default.Activity){let h=((f=c.child)==null?void 0:f.tag)===22?c.child.stateNode:null;if(typeof h?._visibility!="number")throw new Error("its-fine: unsupported React Activity internals!");t.push(h)}else c.tag===22&&((p=c.return)==null?void 0:p.elementType)!==ar.default.Activity&&(i=!0)});let r="hidden",a=new Set,s,l={mounted:!1,connected:!1,subscribe(c){return a.add(c),()=>{a.delete(c)}},sync(c){l.mounted&&!l.connected&&i&&t.length>0?s||(s=$J(()=>{s=void 0,l.sync(!0)})):(s?.(),s=void 0);let f=r;if(l.mounted?l.connected?f="visible":c&&(f=t.every(p=>(p._visibility&1)!==0)?"visible":"hidden"):f="hidden",r!==f){r=f;for(let p of a)p()}},Bridge({children:c}){return ar.default.createElement(ar.default.Activity,{mode:ar.default.useSyncExternalStore(l.subscribe,()=>r,()=>"hidden")},c)}};return l});return ar.default.useInsertionEffect(()=>(e.mounted=!0,queueMicrotask(()=>e.sync(!1)),()=>{e.mounted=!1,queueMicrotask(()=>e.sync(!1))}),[e]),ar.default.useLayoutEffect(()=>(e.connected=!0,e.sync(!1),()=>{e.connected=!1,e.sync(!0)}),[e]),e.Bridge}var Qa=ci(S3());var k_=((n,e)=>typeof window<"u"&&(((n=window.document)==null?void 0:n.createElement)||((e=window.navigator)==null?void 0:e.product)==="ReactNative"))()?di.useLayoutEffect:di.useEffect;function LD(n){let e=di.useRef(n);return k_(()=>void(e.current=n),[n]),e}function JJ({promise:n,onSettled:e}){return di.use(n),k_(e,[e]),null}function lH(){let[n,e]=di.useState(null),t=di.useCallback(()=>e(null),[]),i=di.useCallback(a=>e(s=>s??Promise.resolve(a).then(()=>{},()=>{})),[]);return[n?(0,nd.jsx)(di.Suspense,{fallback:null,children:(0,nd.jsx)(JJ,{promise:n,onSettled:t})}):null,i]}var eee=di.Activity?X8:()=>di.Fragment;function uH(){let n=I2(),e=Q8(),t=eee();return di.useMemo(()=>({children:i})=>{let a=!!W1(n,!0,s=>s.type===di.StrictMode)?di.StrictMode:di.Fragment;return(0,nd.jsx)(a,{children:(0,nd.jsx)(t,{children:(0,nd.jsx)(e,{children:i})})})},[n,e,t])}function cH({set:n}){return k_(()=>(n(new Promise(()=>null)),()=>n(!1)),[n]),null}var fH=(n=>(n=class extends di.Component{constructor(...t){super(...t),this.state={error:!1}}componentDidCatch(t){this.props.set(t)}render(){return this.state.error?null:this.props.children}},n.getDerivedStateFromError=()=>({error:!0}),n))();function ND(n){let e=n.root;for(;e.getState().previousRoot;)e=e.getState().previousRoot;return e}var dH=n=>n&&n.isOrthographicCamera,hH=n=>n&&n.hasOwnProperty("current"),tee=n=>n!=null&&(typeof n=="string"||typeof n=="number"||n.isColor),Y8=()=>{};function kD(n){var e;let t=typeof window<"u"?(e=window.devicePixelRatio)!=null?e:2:1;return Array.isArray(n)?Math.min(Math.max(n[0],t),n[1]):n}function nee(n){if(typeof window>"u"||typeof window.matchMedia!="function"||!window.devicePixelRatio)return()=>{};let e,t=()=>{try{var a,s;e=window.matchMedia(`(resolution: ${window.devicePixelRatio}dppx)`),typeof((a=e)==null?void 0:a.addEventListener)=="function"?e.addEventListener("change",r):(s=e)==null||s.addListener==null||s.addListener(r)}catch{e=void 0}},i=()=>{var a,s;typeof((a=e)==null?void 0:a.removeEventListener)=="function"?e.removeEventListener("change",r):(s=e)==null||s.removeListener==null||s.removeListener(r),e=void 0},r=()=>{i(),t(),n()};return t(),i}function L_(n){var e;return(e=n.__r3f)==null?void 0:e.root.getState()}var Nr={obj:n=>n===Object(n)&&!Nr.arr(n)&&typeof n!="function",fun:n=>typeof n=="function",str:n=>typeof n=="string",num:n=>typeof n=="number",boo:n=>typeof n=="boolean",und:n=>n===void 0,nul:n=>n===null,arr:n=>Array.isArray(n),equ(n,e,{arrays:t="shallow",objects:i="reference",strict:r=!0}={}){if(typeof n!=typeof e||!!n!=!!e)return!1;if(Nr.str(n)||Nr.num(n)||Nr.boo(n))return n===e;let a=Nr.obj(n);if(a&&i==="reference")return n===e;let s=Nr.arr(n);if(s&&t==="reference")return n===e;if((s||a)&&n===e)return!0;let l;for(l in n)if(!(l in e))return!1;if(a&&t==="shallow"&&i==="shallow"){for(l in r?e:n)if(!Nr.equ(n[l],e[l],{strict:r,objects:"reference"}))return!1}else for(l in r?e:n)if(n[l]!==e[l])return!1;if(Nr.und(l)){if(s&&n.length===0&&e.length===0||a&&Object.keys(n).length===0&&Object.keys(e).length===0)return!0;if(n!==e)return!1}return!0}};function pH(n){let e={nodes:{},materials:{},meshes:{}};return n&&n.traverse(t=>{t.name&&(e.nodes[t.name]=t),t.material&&!e.materials[t.material.name]&&(e.materials[t.material.name]=t.material),t.isMesh&&!e.meshes[t.name]&&(e.meshes[t.name]=t)}),e}function mH(n){n.type!=="Scene"&&(n.dispose==null||n.dispose());for(let e in n){let t=n[e];t?.type!=="Scene"&&(t==null||t.dispose==null||t.dispose())}}var _H=["children","key","ref"];function TD(n){let e={};for(let t in n)_H.includes(t)||(e[t]=n[t]);return e}function k2(n,e,t,i){let r=n,a=r?.__r3f;return a||(a={root:e,type:t,parent:null,children:[],props:TD(i),object:r,eventCount:0,handlers:{},previousVisible:void 0,isHidden:!1},r&&(r.__r3f=a)),a}function Y1(n,e){if(!e.includes("-"))return{root:n,key:e,target:n[e]};if(e in n)return{root:n,key:e,target:n[e]};let t=n,i=e.split("-");for(let r of i){if(typeof t!="object"||t===null){if(t!==void 0){let a=i.slice(i.indexOf(r)).join("-");return{root:t,key:a,target:void 0}}return{root:n,key:e,target:void 0}}e=r,n=t,t=t[e]}return{root:n,key:e,target:t}}var K8=/-\d+$/;function O2(n,e){if(Nr.str(e.props.attach)){if(K8.test(e.props.attach)){let r=e.props.attach.replace(K8,""),{root:a,key:s}=Y1(n.object,r);Array.isArray(a[s])||(a[s]=[])}let{root:t,key:i}=Y1(n.object,e.props.attach);e.previousAttach=t[i],t[i]=e.object}else Nr.fun(e.props.attach)&&(e.previousAttach=e.props.attach(n.object,e.object))}function D2(n,e){if(Nr.str(e.props.attach)){let{root:t,key:i}=Y1(n.object,e.props.attach),r=e.previousAttach;r===void 0?delete t[i]:t[i]=r}else e.previousAttach==null||e.previousAttach(n.object,e.object);delete e.previousAttach}var MD=[..._H,"args","dispose","attach","object","onUpdate","dispose"],Z8=new Map;function iee(n){let e=Z8.get(n.constructor);try{e||(e=new n.constructor,Z8.set(n.constructor,e))}catch{}return e}function ree(n,e){let t={};for(let i in e)if(!MD.includes(i)&&!Nr.equ(e[i],n.props[i])){t[i]=e[i];for(let r in e)r.startsWith(`${i}-`)&&(t[r]=e[r])}for(let i in n.props){if(MD.includes(i)||e.hasOwnProperty(i))continue;let{root:r,key:a}=Y1(n.object,i);if(r.constructor&&r.constructor.length===0){let s=iee(r);Nr.und(s)||(t[i]=s[a])}else t[i]=0}return t}var aee=["map","emissiveMap","sheenColorMap","specularColorMap","envMap"],see=/^on(Pointer|Click|DoubleClick|ContextMenu|Wheel)/;function jh(n,e){var t;let i=n.__r3f,r=i&&ND(i).getState(),a=i?.eventCount;for(let l in e){let c=e[l];if(MD.includes(l))continue;if(i&&see.test(l)){typeof c=="function"?i.handlers[l]=c:delete i.handlers[l],i.eventCount=Object.keys(i.handlers).length;continue}if(c===void 0)continue;if(l==="visible"&&i!=null&&i.isHidden&&i.previousVisible!==void 0){i.previousVisible=c;continue}let{root:f,key:p,target:h}=Y1(n,l);if(h===void 0&&(typeof f!="object"||f===null))throw Error(`R3F: Cannot set "${l}". Ensure it is an object before setting "${p}".`);if(h instanceof zc&&c instanceof zc)h.mask=c.mask;else if(h instanceof Vt&&tee(c))h.set(c);else if(h!==null&&typeof h=="object"&&typeof h.set=="function"&&typeof h.copy=="function"&&c!=null&&c.constructor&&h.constructor===c.constructor)h.copy(c);else if(h!==null&&typeof h=="object"&&typeof h.set=="function"&&Array.isArray(c))typeof h.fromArray=="function"?h.fromArray(c):h.set(...c);else if(h!==null&&typeof h=="object"&&typeof h.set=="function"&&typeof c=="number")typeof h.setScalar=="function"?h.setScalar(c):h.set(c);else if(f instanceof Ga&&p==="uniforms"&&Nr.obj(c)){Nr.obj(f.uniforms)||(f.uniforms={});let _=f.uniforms,g=c;for(let E in g){let x=g[E],S=_[E];S?Object.assign(S,x):_[E]={...x}}}else{var s;f[p]=c,r&&!r.linear&&aee.includes(p)&&(s=f[p])!=null&&s.isTexture&&f[p].format===wa&&f[p].type===ja&&(f[p].colorSpace=Yr)}}if(i!=null&&i.parent&&r!=null&&r.internal&&(t=i.object)!=null&&t.isObject3D&&a!==i.eventCount){let l=i.object,c=r.internal.interaction.indexOf(l);c>-1&&r.internal.interaction.splice(c,1),i.eventCount&&l.raycast!==null&&r.internal.interaction.push(l)}return i&&i.props.attach===void 0&&(i.object.isBufferGeometry?i.props.attach="geometry":i.object.isMaterial&&(i.props.attach="material")),i&&Z1(i),n}function Z1(n){var e;if(!n.parent)return;n.props.onUpdate==null||n.props.onUpdate(n.object);let t=(e=n.root)==null||e.getState==null?void 0:e.getState();t&&t.internal.frames===0&&t.invalidate()}function oee(n,e){n.manual||(dH(n)?(n.left=e.width/-2,n.right=e.width/2,n.top=e.height/2,n.bottom=e.height/-2):n.aspect=e.width/e.height,n.updateProjectionMatrix())}var Rs=n=>n?.isObject3D;function Q1(n){return(n.eventObject||n.object).uuid+"/"+n.index+n.instanceId}function gH(n,e,t,i){let r=t.get(e);r&&(t.delete(e),t.size===0&&(n.delete(i),r.target.releasePointerCapture(i)))}function lee(n,e,t){let{internal:i}=n.getState();for(let r=0;r<i.interaction.length;r++)i.interaction[r]===e&&(i.interaction[r]=t);for(let r=0;r<i.initialHits.length;r++)i.initialHits[r]===e&&(i.initialHits[r]=t);i.hovered.forEach((r,a)=>{if(r.eventObject===e||r.object===e){i.hovered.delete(a);let s={...r,eventObject:r.eventObject===e?t:r.eventObject,object:r.object===e?t:r.object};i.hovered.set(Q1(s),s)}}),i.capturedMap.forEach(r=>{for(let[a,s]of Array.from(r)){let{intersection:l}=s;a!==e&&l.object!==e&&l.eventObject!==e||(a===e&&r.delete(a),r.set(a===e?t:a,{...s,intersection:{...l,object:l.object===e?t:l.object,eventObject:l.eventObject===e?t:l.eventObject}}))}})}function uee(n,e){let{internal:t}=n.getState();t.interaction=t.interaction.filter(i=>i!==e),t.initialHits=t.initialHits.filter(i=>i!==e),t.hovered.forEach((i,r)=>{(i.eventObject===e||i.object===e)&&t.hovered.delete(r)}),t.capturedMap.forEach((i,r)=>{gH(t.capturedMap,e,i,r)})}function vH(n){function e(c){let{internal:f}=n.getState(),p=c.offsetX-f.initialClick[0],h=c.offsetY-f.initialClick[1];return Math.round(Math.sqrt(p*p+h*h))}function t(c){return c.filter(f=>["Move","Over","Enter","Out","Leave"].some(p=>{var h;return(h=f.__r3f)==null?void 0:h.handlers["onPointer"+p]}))}function i(c,f){let p=n.getState(),h=new Set,_=[],g=f?f(p.internal.interaction):p.internal.interaction;for(let v=0;v<g.length;v++){let M=L_(g[v]);M&&(M.raycaster.camera=void 0)}p.previousRoot||p.events.compute==null||p.events.compute(c,p);function E(v){let M=L_(v);if(!M||!M.events.enabled||M.raycaster.camera===null)return[];if(M.raycaster.camera===void 0){var O;M.events.compute==null||M.events.compute(c,M,(O=M.previousRoot)==null?void 0:O.getState()),M.raycaster.camera===void 0&&(M.raycaster.camera=null)}return M.raycaster.camera?M.raycaster.intersectObject(v,!0):[]}let x=g.flatMap(E).sort((v,M)=>{let O=L_(v.object),k=L_(M.object);return!O||!k?v.distance-M.distance:k.events.priority-O.events.priority||v.distance-M.distance}).filter(v=>{let M=Q1(v);return h.has(M)?!1:(h.add(M),!0)});p.events.filter&&(x=p.events.filter(x,p));for(let v of x){let M=v.object;for(;M;){var S;(S=M.__r3f)!=null&&S.eventCount&&_.push({...v,eventObject:M}),M=M.parent}}if("pointerId"in c&&p.internal.capturedMap.has(c.pointerId))for(let v of p.internal.capturedMap.get(c.pointerId).values())h.has(Q1(v.intersection))||_.push(v.intersection);return _}function r(c,f,p,h){if(c.length){let _={stopped:!1};for(let g of c){let E=L_(g.object);if(E||g.object.traverseAncestors(x=>{let S=L_(x);if(S)return E=S,!1}),E){let{raycaster:x,pointer:S,camera:v,internal:M}=E,O=new ve(S.x,S.y,0).unproject(v),k=Z=>{var te,j;return(te=(j=M.capturedMap.get(Z))==null?void 0:j.has(g.eventObject))!=null?te:!1},q=Z=>{let te={intersection:g,target:f.target};M.capturedMap.has(Z)?M.capturedMap.get(Z).set(g.eventObject,te):M.capturedMap.set(Z,new Map([[g.eventObject,te]])),f.target.setPointerCapture(Z)},G=Z=>{let te=M.capturedMap.get(Z);te&&gH(M.capturedMap,g.eventObject,te,Z)},Q={};for(let Z in f){let te=f[Z];typeof te!="function"&&(Q[Z]=te)}let H={...g,...Q,pointer:S,intersections:c,stopped:_.stopped,delta:p,unprojectedPoint:O,ray:x.ray,camera:v,stopPropagation(){let Z="pointerId"in f&&M.capturedMap.get(f.pointerId);if((!Z||Z.has(g.eventObject))&&(H.stopped=_.stopped=!0,M.hovered.size&&Array.from(M.hovered.values()).find(te=>te.eventObject===g.eventObject))){let te=c.slice(0,c.indexOf(g));a([...te,g])}},target:{hasPointerCapture:k,setPointerCapture:q,releasePointerCapture:G},currentTarget:{hasPointerCapture:k,setPointerCapture:q,releasePointerCapture:G},nativeEvent:f};if(h(H),_.stopped===!0)break}}}return c}function a(c){let{internal:f}=n.getState();for(let p of f.hovered.values())if(!c.length||!c.find(h=>h.object===p.object&&h.index===p.index&&h.instanceId===p.instanceId)){let _=p.eventObject.__r3f;if(f.hovered.delete(Q1(p)),_!=null&&_.eventCount){let g=_.handlers,E={...p,intersections:c};g.onPointerOut==null||g.onPointerOut(E),g.onPointerLeave==null||g.onPointerLeave(E)}}}function s(c,f){for(let p=0;p<f.length;p++){let h=f[p].__r3f;h==null||h.handlers.onPointerMissed==null||h.handlers.onPointerMissed(c)}}function l(c){switch(c){case"onPointerLeave":case"onPointerCancel":return()=>a([]);case"onLostPointerCapture":return f=>{let{internal:p}=n.getState();"pointerId"in f&&p.capturedMap.has(f.pointerId)&&requestAnimationFrame(()=>{p.capturedMap.has(f.pointerId)&&(p.capturedMap.delete(f.pointerId),a([]))})}}return function(p){let{onPointerMissed:h,internal:_}=n.getState();_.lastEvent.current=p;let g=c==="onPointerMove",E=c==="onClick"||c==="onContextMenu"||c==="onDoubleClick",S=i(p,g?t:void 0),v=E?e(p):0;c==="onPointerDown"&&(_.initialClick=[p.offsetX,p.offsetY],_.initialHits=S.map(O=>O.eventObject)),E&&!S.length&&v<=2&&(s(p,_.interaction),h&&h(p)),g&&a(S);function M(O){let k=O.eventObject,q=k.__r3f;if(!(q!=null&&q.eventCount))return;let G=q.handlers;if(g){if(G.onPointerOver||G.onPointerEnter||G.onPointerOut||G.onPointerLeave){let Q=Q1(O),H=_.hovered.get(Q);H?H.stopped&&O.stopPropagation():(_.hovered.set(Q,O),G.onPointerOver==null||G.onPointerOver(O),G.onPointerEnter==null||G.onPointerEnter(O))}G.onPointerMove==null||G.onPointerMove(O)}else{let Q=G[c];Q?(!E||_.initialHits.includes(k))&&(s(p,_.interaction.filter(H=>!_.initialHits.includes(H))),Q(O)):E&&_.initialHits.includes(k)&&s(p,_.interaction.filter(H=>!_.initialHits.includes(H)))}}r(S,p,v,M)}}return{handlePointer:l}}var OD=n=>typeof n?.then=="function",cee=n=>Object.assign(Promise.resolve(n),{status:"fulfilled",value:n}),fee=n=>{let e=Promise.reject(n);return e.catch(()=>{}),Object.assign(e,{status:"rejected",reason:n})},dee=()=>{let n,e,t=new Promise((i,r)=>{n=a=>{Object.assign(t,{status:"fulfilled",value:a}),i(a)},e=a=>{Object.assign(t,{status:"rejected",reason:a}),r(a)}});return t.status="pending",t.catch(()=>{}),{promise:t,resolve:n,reject:e}},DD=n=>!!(n!=null&&n.render);function hee(n,e){let t={canvas:n,powerPreference:"high-performance",antialias:!0,alpha:!0};return typeof e=="function"?e(t):DD(e)?e:new H1({...t,...e})}function pee(n){if((n.hasInitialized==null?void 0:n.hasInitialized())===!1)return;let e=X1(()=>{var t;return n.dispose?n.dispose():(t=n.renderLists)==null||t.dispose==null?void 0:t.dispose()});if(OD(e))return Promise.resolve(e).catch(t=>console.warn("[R3F] Error disposing renderer",t)).then(()=>X1(()=>n.forceContextLoss==null?void 0:n.forceContextLoss()));X1(()=>n.forceContextLoss==null?void 0:n.forceContextLoss())}function mee(n,e){if(n){if(e)return pee(n);X1(()=>{var t;return(t=n.renderLists)==null||t.dispose==null?void 0:t.dispose()}),X1(()=>n.forceContextLoss==null?void 0:n.forceContextLoss())}}function X1(n){try{return n()}catch(e){console.warn("[R3F] Error while unmounting root; teardown may be incomplete:",e)}}var FD=di.createContext(null),_ee=(n,e)=>{let t=q8((l,c)=>{let f=new ve,p=new ve,h=new ve;function _(v=c().camera,M=p,O=c().size){let{width:k,height:q,top:G,left:Q}=O,H=k/q;M.isVector3?h.copy(M):h.set(...M);let Z=v.getWorldPosition(f).distanceTo(h);if(dH(v))return{width:k/v.zoom,height:q/v.zoom,top:G,left:Q,factor:1,distance:Z,aspect:H};{let te=v.fov*Math.PI/180,j=2*Math.tan(te/2)*Z,he=j*(k/q);return{width:he,height:j,top:G,left:Q,factor:k/he,distance:Z,aspect:H}}}let g,E=v=>l(M=>({performance:{...M.performance,current:v}})),x=new ut;return{set:l,get:c,gl:null,camera:null,raycaster:null,events:{priority:1,enabled:!0,connected:!1},scene:null,xr:null,invalidate:(v=1)=>n(c(),v),advance:(v,M)=>e(v,M,c()),legacy:!1,linear:!1,flat:!1,controls:null,clock:new H0,pointer:x,mouse:x,frameloop:"always",onPointerMissed:void 0,performance:{current:1,min:.5,max:1,debounce:200,regress:()=>{let v=c();g&&clearTimeout(g),v.performance.current!==v.performance.min&&E(v.performance.min),g=setTimeout(()=>E(c().performance.max),v.performance.debounce)}},size:{width:0,height:0,top:0,left:0},viewport:{initialDpr:0,dpr:0,width:0,height:0,top:0,left:0,aspect:0,distance:0,factor:0,getCurrentViewport:_},setEvents:v=>l(M=>({...M,events:{...M.events,...v}})),setSize:(v,M,O=0,k=0)=>{let q=c().camera,G={width:v,height:M,top:O,left:k};l(Q=>({size:G,viewport:{...Q.viewport,..._(q,p,G)}}))},setDpr:v=>l(M=>{let O=kD(v);return{viewport:{...M.viewport,dpr:O,initialDpr:M.viewport.initialDpr||O}}}),setFrameloop:(v="always")=>{let M=c().clock;M.stop(),M.elapsedTime=0,v!=="never"&&(M.start(),M.elapsedTime=0),l(()=>({frameloop:v}))},previousRoot:void 0,internal:{interaction:[],hovered:new Map,subscribers:[],initialClick:[0,0],initialHits:[],capturedMap:new Map,lastEvent:di.createRef(),active:!1,frames:0,priority:0,subscribe:(v,M,O)=>{let k=c().internal;return k.priority=k.priority+(M>0?1:0),k.subscribers.push({ref:v,priority:M,store:O}),k.subscribers=k.subscribers.sort((q,G)=>q.priority-G.priority),()=>{let q=c().internal;q!=null&&q.subscribers&&(q.priority=q.priority-(M>0?1:0),q.subscribers=q.subscribers.filter(G=>G.ref!==v))}}}}}),i=t.getState(),r=i.size,a=i.viewport.dpr,s=i.camera;return t.subscribe(()=>{let{camera:l,size:c,viewport:f,gl:p,set:h}=t.getState();if(c.width!==r.width||c.height!==r.height||f.dpr!==a){r=c,a=f.dpr,oee(l,c),f.dpr>0&&p.setPixelRatio(f.dpr);let _=typeof HTMLCanvasElement<"u"&&p.domElement instanceof HTMLCanvasElement;p.setSize(c.width,c.height,_)}l!==s&&(s=l,h(_=>({viewport:{..._.viewport,..._.viewport.getCurrentViewport(l)}})))}),t.subscribe(l=>n(l)),t};function PD(){let n=di.useContext(FD);if(!n)throw new Error("R3F: Hooks can only be used within the Canvas component!");return n}function UD(n=t=>t,e){return PD()(n,e)}function $1(n,e=0){let t=PD(),i=t.getState().internal.subscribe,r=LD(n);return k_(()=>i(r,e,t),[e,i,t]),null}var $8=new WeakMap,gee=n=>{var e;return typeof n=="function"&&(n==null||(e=n.prototype)==null?void 0:e.constructor)===n};function yH(n,e){return function(t,...i){let r;return gee(t)?(r=$8.get(t),r||(r=new t,$8.set(t,r))):r=t,n&&n(r),Promise.all(i.map(a=>new Promise((s,l)=>r.load(a,c=>{Rs(c?.scene)&&Object.assign(c,pH(c.scene)),s(c)},e,c=>l(new Error(`Could not load ${a}: ${c?.message}`))))))}}function zD(n,e,t,i){let r=Array.isArray(e)?e:[e],a=V8(yH(t,i),[n,...r],{equal:Nr.equ});return Array.isArray(e)?a:a[0]}zD.preload=function(n,e,t){let i=Array.isArray(e)?e:[e];return G8(yH(t),[n,...i])};zD.clear=function(n,e){let t=Array.isArray(e)?e:[e];return W8([n,...t])};var vee=1,J8=8,N2=32,eH=2,yee=268435456,bee={objects:"shallow"};function See(n,e){if(!e&&typeof HTMLCanvasElement<"u"&&n instanceof HTMLCanvasElement&&n.parentElement){let{width:t,height:i,top:r,left:a}=n.parentElement.getBoundingClientRect();return{width:t,height:i,top:r,left:a}}else if(!e&&typeof OffscreenCanvas<"u"&&n instanceof OffscreenCanvas)return{width:n.width,height:n.height,top:0,left:0};return{width:0,height:0,top:0,left:0,...e}}function Eee({store:n,configuration:e},t,i){let{gl:r,scene:a,camera:s,shadows:l=!1,linear:c=!1,flat:f=!1,legacy:p=!1,frameloop:h="always",dpr:_=[1,2],performance:g,onPointerMissed:E}=i,x=See(t,i.size),S={...i,shadows:l,linear:c,flat:f,legacy:p,frameloop:h,size:x},v=n.getState(),M=v.gl,O=e.previous,k=te=>!O||!Nr.equ(S[te],O[te],bee);e.previous=void 0;let q=v.raycaster;if(q||v.set({raycaster:q=new B0}),k("raycaster")){var G;let{params:te,...j}=(G=i.raycaster)!=null?G:{};jh(q,{...j,params:{...q.params,...te}})}if(!v.camera||v.camera===e.camera&&k("camera")){e.camera=s;let te=s?.isCamera,j=te?s:i.orthographic?new Gc(0,0,0,0,.1,1e3):new yr(75,0,.1,1e3);te||(j.position.z=5,s&&(jh(j,s),j.manual||("aspect"in s||"left"in s||"right"in s||"bottom"in s||"top"in s)&&(j.manual=!0,j.updateProjectionMatrix())),!v.camera&&!(s!=null&&s.rotation)&&j.lookAt(0,0,0)),v.set({camera:j}),q.camera=j}if(!v.scene){let te;a!=null&&a.isScene?(te=a,k2(te,n,"",{})):(te=new f_,k2(te,n,"",{}),a&&jh(te,a)),v.set({scene:te})}if(i.events&&!v.events.handlers&&v.set({events:i.events(n)}),k("size")&&v.setSize(x.width,x.height,x.top,x.left),v.viewport.dpr!==kD(_)&&v.setDpr(_),k("frameloop")&&v.setFrameloop(h),k("onPointerMissed")&&v.set({onPointerMissed:E}),g&&k("performance")&&v.set(te=>({performance:{...te.performance,...g}})),!v.xr){var Q;let te=(ke,Me)=>{let ze=n.getState();ze.frameloop!=="never"&&GD(ke,!0,ze,Me)},j=()=>{let ke=n.getState();ke.gl.xr.enabled=ke.gl.xr.isPresenting,ke.gl.xr.setAnimationLoop(ke.gl.xr.isPresenting?te:null),ke.gl.xr.isPresenting||q2(ke)},he={connect(){let ke=n.getState().gl;ke.xr.addEventListener("sessionstart",j),ke.xr.addEventListener("sessionend",j)},disconnect(){let ke=n.getState().gl;ke.xr.removeEventListener("sessionstart",j),ke.xr.removeEventListener("sessionend",j)}};typeof((Q=M.xr)==null?void 0:Q.addEventListener)=="function"&&he.connect(),v.set({xr:he})}if(M.shadowMap&&k("shadows")){let te=M.shadowMap.enabled,j=M.shadowMap.type;if(M.shadowMap.enabled=!!l,Nr.boo(l))M.shadowMap.type=E_;else if(Nr.str(l)){var H;let he={basic:n2,percentage:Gh,soft:E_,variance:Zf};M.shadowMap.type=(H=he[l])!=null?H:E_}else Nr.obj(l)&&Object.assign(M.shadowMap,l);(te!==M.shadowMap.enabled||j!==M.shadowMap.type)&&(M.shadowMap.needsUpdate=!0)}let Z=r&&!Nr.fun(r)&&!DD(r)?r:void 0;k("legacy")&&(Gn.enabled=!p,v.set({legacy:p})),k("linear")&&(Z?.outputColorSpace===void 0&&(M.outputColorSpace=c?Oh:Yr),v.set({linear:c})),k("flat")&&(Z?.toneMapping===void 0&&(M.toneMapping=f?_o:W0),v.set({flat:f})),Z&&k("gl")&&jh(M,Z),e.previous=S}function wee(n){let e=()=>{var r;return(r=n.store.getState().gl)==null?void 0:r.xr},t=()=>{var r,a,s,l;let c=n.store.getState();if((r=e())!=null&&r.isPresenting||(a=e())!=null&&a.getSession!=null&&a.getSession()){e().addEventListener("sessionend",t);return}(s=e())==null||s.removeEventListener==null||s.removeEventListener("sessionend",t);let f=n.configuration.previous;if(!f)return;let p=(l=f.dpr)!=null?l:[1,2];c.viewport.dpr!==kD(p)&&c.setDpr(p)},i=nee(t);return()=>{var r;i(),(r=e())==null||r.removeEventListener==null||r.removeEventListener("sessionend",t)}}var xee={name:"@react-three/fiber",version:"9.8.2",description:"A React renderer for Threejs",keywords:["react","renderer","fiber","three","threejs"],author:"Paul Henschel (https://github.com/drcmda)",license:"MIT",maintainers:["Josh Ellis (https://github.com/joshuaellis)","Cody Bennett (https://github.com/codyjasonbennett)","Kris Baumgarter (https://github.com/krispya)"],bugs:{url:"https://github.com/pmndrs/react-three-fiber/issues"},homepage:"https://github.com/pmndrs/react-three-fiber#readme",repository:{type:"git",url:"git+https://github.com/pmndrs/react-three-fiber.git"},collective:{type:"opencollective",url:"https://opencollective.com/react-three-fiber"},main:"dist/react-three-fiber.cjs.js",module:"dist/react-three-fiber.esm.js",types:"dist/react-three-fiber.cjs.d.ts","react-native":"native/dist/react-three-fiber-native.cjs.js",files:["dist","native","react-reconciler","CHANGELOG.md"],sideEffects:!1,preconstruct:{entrypoints:["index.tsx","native.tsx"]},scripts:{prebuild:"cp ../../readme.md readme.md"},devDependencies:{"@types/react-reconciler":"^0.33.0","react-reconciler":"^0.34.0"},dependencies:{"@babel/runtime":"^7.17.8","@types/webxr":"*","base64-js":"^1.5.1",buffer:"^6.0.3","its-fine":"^2.1.1","react-use-measure":"^2.1.7",scheduler:"^0.28.0","suspend-react":"^0.1.3","use-sync-external-store":"^1.4.0",zustand:"^5.0.3"},peerDependencies:{expo:">=43.0","expo-asset":">=8.4","expo-file-system":">=11.0","expo-gl":">=11.0",react:">=19 <19.4","react-dom":">=19 <19.4","react-native":">=0.78",three:">=0.156"},peerDependenciesMeta:{"react-dom":{optional:!0},"react-native":{optional:!0},expo:{optional:!0},"expo-asset":{optional:!0},"expo-file-system":{optional:!0},"expo-gl":{optional:!0}}};function Tee(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}var tH={exports:{}},AD={exports:{}};AD.exports;var nH;function Mee(){return nH||(nH=1,(function(n){n.exports=function(e){function t(o,u,m,y){return new Fb(o,u,m,y)}function i(){}function r(o){var u="https://react.dev/errors/"+o;if(1<arguments.length){u+="?args[]="+encodeURIComponent(arguments[1]);for(var m=2;m<arguments.length;m++)u+="&args[]="+encodeURIComponent(arguments[m])}return"Minified React error #"+o+"; visit "+u+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function a(o){for(var u=o,m=u;m&&!m.alternate;)u=m,(u.flags&4098)!==0&&(o=u.return),m=u.return;for(;u.return;)u=u.return;return u.tag===3?o:null}function s(o){if(a(o)!==o)throw Error(r(188))}function l(o){var u=o.alternate;if(!u){if(u=a(o),u===null)throw Error(r(188));return u!==o?null:o}for(var m=o,y=u;;){var C=m.return;if(C===null)break;var F=C.alternate;if(F===null){if(y=C.return,y!==null){m=y;continue}break}if(C.child===F.child){for(F=C.child;F;){if(F===m)return s(C),o;if(F===y)return s(C),u;F=F.sibling}throw Error(r(188))}if(m.return!==y.return)m=C,y=F;else{for(var re=!1,Re=C.child;Re;){if(Re===m){re=!0,m=C,y=F;break}if(Re===y){re=!0,y=C,m=F;break}Re=Re.sibling}if(!re){for(Re=F.child;Re;){if(Re===m){re=!0,m=F,y=C;break}if(Re===y){re=!0,y=F,m=C;break}Re=Re.sibling}if(!re)throw Error(r(189))}}if(m.alternate!==y)throw Error(r(190))}if(m.tag!==3)throw Error(r(188));return m.stateNode.current===m?o:u}function c(o){var u=o.tag;if(u===5||u===26||u===27||u===6)return o;for(o=o.child;o!==null;){if(u=c(o),u!==null)return u;o=o.sibling}return null}function f(o){var u=o.tag;if(u===5||u===26||u===27||u===6)return o;for(o=o.child;o!==null;){if(o.tag!==4&&(u=f(o),u!==null))return u;o=o.sibling}return null}function p(o){return o===null||typeof o!="object"?null:(o=Zg&&o[Zg]||o["@@iterator"],typeof o=="function"?o:null)}function h(o){if(o==null)return null;if(typeof o=="function")return o.$$typeof===Vb?null:o.displayName||o.name||null;if(typeof o=="string")return o;switch(o){case dc:return"Fragment";case Hp:return"Profiler";case Yg:return"StrictMode";case Gp:return"Suspense";case Wp:return"SuspenseList";case Qp:return"Activity";case Xp:return"ViewTransition"}if(typeof o=="object")switch(o.$$typeof){case fc:return"Portal";case No:return o.displayName||"Context";case Kg:return(o._context.displayName||"Context")+".Consumer";case Vp:var u=o.render;return o=o.displayName,o||(o=u.displayName||u.name||"",o=o!==""?"ForwardRef("+o+")":"ForwardRef"),o;case jp:return u=o.displayName||null,u!==null?u:h(o.type)||"Memo";case Il:u=o._payload,o=o._init;try{return h(o(u))}catch{}}return null}function _(o){return{current:o}}function g(o){0>ye||(o.current=se[ye],se[ye]=null,ye--)}function E(o,u){ye++,se[ye]=o.current,o.current=u}function x(o){return o>>>=0,o===0?32:31-(ot(o)/xt|0)|0}function S(o){var u=o&42;if(u!==0)return u;switch(o&-o){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return o&-o;case 262144:case 524288:case 1048576:case 2097152:return o&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return o&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return o}}function v(o,u,m){var y=o.pendingLanes;if(y===0)return 0;var C=0,F=o.suspendedLanes,re=o.pingedLanes;o=o.warmLanes;var Re=y&134217727;return Re!==0?(y=Re&~F,y!==0?C=S(y):(re&=Re,re!==0?C=S(re):m||(m=Re&~o,m!==0&&(C=S(m))))):(Re=y&~F,Re!==0?C=S(Re):re!==0?C=S(re):m||(m=y&~o,m!==0&&(C=S(m)))),C===0?0:u!==0&&u!==C&&(u&F)===0&&(F=C&-C,m=u&-u,F>=m||F===32&&(m&4194048)!==0)?u:C}function M(o,u){return(o.pendingLanes&~(o.suspendedLanes&~o.pingedLanes)&u)===0}function O(o,u){(u&8)!==0&&(u|=u&32);var m=o.entangledLanes;if(m!==0)for(o=o.entanglements,m&=u;0<m;){var y=31-Ce(m),C=1<<y;u|=o[y],m&=~C}return u}function k(o,u){switch(o){case 1:case 2:case 4:case 8:case 64:return u+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return u+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function q(){var o=mn;return mn<<=1,(mn&62914560)===0&&(mn=4194304),o}function G(o){for(var u=[],m=0;31>m;m++)u.push(o);return u}function Q(o,u){o.pendingLanes|=u,u!==268435456&&(o.suspendedLanes=0,o.pingedLanes=0,o.warmLanes=0)}function H(o,u,m,y,C,F){var re=o.pendingLanes;o.pendingLanes=m,o.suspendedLanes=0,o.pingedLanes=0,o.warmLanes=0,o.expiredLanes&=m,o.entangledLanes&=m,o.errorRecoveryDisabledLanes&=m,o.shellSuspendCounter=0;var Re=o.entanglements,$e=o.expirationTimes,pt=o.hiddenUpdates;for(m=re&~m;0<m;){var St=31-Ce(m),Ot=1<<St;Re[St]=0,$e[St]=-1;var rn=pt[St];if(rn!==null)for(pt[St]=null,St=0;St<rn.length;St++){var Zn=rn[St];Zn!==null&&(Zn.lane&=-536870913)}m&=~Ot}y!==0&&Z(o,y,0),F!==0&&C===0&&o.tag!==0&&(o.suspendedLanes|=F&~(re&~u))}function Z(o,u,m){o.pendingLanes|=u,o.suspendedLanes&=~u;var y=31-Ce(u);o.entangledLanes|=u,o.entanglements[y]=o.entanglements[y]|1073741824|m&261930}function te(o,u){var m=o.entangledLanes|=u;for(o=o.entanglements;m;){var y=31-Ce(m),C=1<<y;C&u|o[y]&u&&(o[y]|=u),m&=~C}}function j(o,u){var m=u&-u;return m=(m&42)!==0?1:he(m),(m&(o.suspendedLanes|u))!==0?0:m}function he(o){switch(o){case 2:o=1;break;case 8:o=4;break;case 32:o=16;break;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:o=128;break;case 268435456:o=134217728;break;default:o=0}return o}function ke(o){return o&=-o,2<o?8<o?(o&134217727)!==0?32:268435456:8:2}function Me(o){if(typeof Dd=="function"&&na(o),Fo&&typeof Fo.setStrictMode=="function")try{Fo.setStrictMode(VS,o)}catch{}}function ze(o,u){if(o.name!=null&&o.name!=="auto")return o.name;if(u.autoName!==null)return u.autoName;o=hu.identifierPrefix;var m=qG++;return o="_"+o+"t_"+m.toString(32)+"_",u.autoName=o}function Ne(o){var u;if(o==null||typeof o=="string")return o;var m=null,y=Iv;if(y!==null)for(var C=0;C<y.length;C++){var F=o[y[C]];if(F!=null){if(F==="none")return"none";m=m==null?F:m+(" "+F)}}return(u=m)!=null?u:o.default}function Ve(o,u){return o=Ne(o),u=Ne(u),u==null?o==="auto"?null:o:u==="auto"?null:u}function Je(o,u){return o===u&&(o!==0||1/o===1/u)||o!==o&&u!==u}function Qe(o){if(HR===void 0)try{throw Error()}catch(m){var u=m.stack.trim().match(/\n( *(at )?)/);HR=u&&u[1]||"",GF=-1<m.stack.indexOf(`
    at`)?" (<anonymous>)":-1<m.stack.indexOf("@")?"@unknown:0:0":""}return`
`+HR+o+GF}function st(o,u){if(!o||VR)return"";VR=!0;var m=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var y={DetermineComponentFrameRoot:function(){try{if(u){var Ot=function(){throw Error()};if(Object.defineProperty(Ot.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(Ot,[])}catch(yi){var rn=yi}Reflect.construct(o,[],Ot)}else{try{Ot.call()}catch(yi){rn=yi}Ot=!1;try{var Zn=Object.getOwnPropertyDescriptor(o.prototype,"props");Object.defineProperty(o.prototype,"props",{configurable:!0,set:function(){throw Error()}}),Ot=!0,new o}finally{Ot&&(Zn!==void 0?Object.defineProperty(o.prototype,"props",Zn):delete o.prototype.props)}}}else{try{throw Error()}catch(yi){rn=yi}(Ot=o())&&typeof Ot.catch=="function"&&Ot.catch(function(){})}}catch(yi){if(yi&&rn&&typeof yi.stack=="string")return[yi.stack,rn.stack]}return[null,null]}};y.DetermineComponentFrameRoot.displayName="DetermineComponentFrameRoot";var C=Object.getOwnPropertyDescriptor(y.DetermineComponentFrameRoot,"name");C&&C.configurable&&Object.defineProperty(y.DetermineComponentFrameRoot,"name",{value:"DetermineComponentFrameRoot"});var F=y.DetermineComponentFrameRoot(),re=F[0],Re=F[1];if(re&&Re){var $e=re.split(`
`),pt=Re.split(`
`);for(C=y=0;y<$e.length&&!$e[y].includes("DetermineComponentFrameRoot");)y++;for(;C<pt.length&&!pt[C].includes("DetermineComponentFrameRoot");)C++;if(y===$e.length||C===pt.length)for(y=$e.length-1,C=pt.length-1;1<=y&&0<=C&&$e[y]!==pt[C];)C--;for(;1<=y&&0<=C;y--,C--)if($e[y]!==pt[C]){if(y!==1||C!==1)do if(y--,C--,0>C||$e[y]!==pt[C]){var St=`
`+$e[y].replace(" at new "," at ");return o.displayName&&St.includes("<anonymous>")&&(St=St.replace("<anonymous>",o.displayName)),St}while(1<=y&&0<=C);break}}}finally{VR=!1,Error.prepareStackTrace=m}return(m=o?o.displayName||o.name:"")?Qe(m):""}function We(o,u){switch(o.tag){case 26:case 27:case 5:return Qe(o.type);case 16:return Qe("Lazy");case 13:return o.child!==u&&u!==null?Qe("Suspense Fallback"):Qe("Suspense");case 19:return Qe("SuspenseList");case 0:case 15:return st(o.type,!1);case 11:return st(o.type.render,!1);case 1:return st(o.type,!0);case 31:return Qe("Activity");case 30:return Qe("ViewTransition");default:return""}}function gt(o){try{var u="",m=null;do u+=We(o,m),m=o,o=o.return;while(o);return u}catch(y){return`
Error generating stack: `+y.message+`
`+y.stack}}function Et(o,u){if(typeof o=="object"&&o!==null){var m=WF.get(o);return m!==void 0?m:(u={value:o,source:u,stack:gt(u)},WF.set(o,u),u)}return{value:o,source:u,stack:gt(u)}}function jt(o,u){_v[gv++]=GS,_v[gv++]=zT,zT=o,GS=u}function zt(o,u,m){Nl[kl++]=mc,Nl[kl++]=_c,Nl[kl++]=Fd,Fd=o;var y=mc;o=_c;var C=32-Ce(y)-1;y&=~(1<<C),m+=1;var F=32-Ce(u)+C;if(30<F){var re=C-C%5;F=(y&(1<<re)-1).toString(32),y>>=re,C-=re,mc=1<<32-Ce(u)+C|m<<C|y,_c=F+o}else mc=1<<F|m<<C|y,_c=o}function Mt(o){o.return!==null&&(jt(o,1),zt(o,1,0))}function Xe(o){for(;o===zT;)zT=_v[--gv],_v[gv]=null,GS=_v[--gv],_v[gv]=null;for(;o===Fd;)Fd=Nl[--kl],Nl[kl]=null,_c=Nl[--kl],Nl[kl]=null,mc=Nl[--kl],Nl[kl]=null}function et(o,u){Nl[kl++]=mc,Nl[kl++]=_c,Nl[kl++]=Fd,mc=u.id,_c=u.overflow,Fd=o}function yt(o,u){E(Pd,u),E(WS,o),E(Na,null),o=jb(u),g(Na),E(Na,o)}function Wt(){g(Na),g(WS),g(Pd)}function Lt(o){var u=o.memoizedState;u!==null&&(u=u.memoizedState,Xs?Oo._currentValue=u:Oo._currentValue2=u,E(qT,o)),u=Na.current;var m=Qb(u,o.type);u!==m&&(E(WS,o),E(Na,m))}function sn(o){WS.current===o&&(g(Na),g(WS)),qT.current===o&&(g(qT),Xs?Oo._currentValue=hc:Oo._currentValue2=hc)}function pn(o){var u=Error(r(418,1<arguments.length&&arguments[1]!==void 0&&arguments[1]?"text":"HTML",""));throw Qt(Et(u,o)),GR}function lt(o,u){if(!Cr)throw Error(r(175));W(o.stateNode,o.type,o.memoizedProps,u,o)||pn(o,!0)}function _e(o){for(ma=o.return;ma;)switch(ma.tag){case 5:case 31:case 13:Ol=!1;return;case 27:case 3:Ol=!0;return;default:ma=ma.return}}function Pe(o){if(!Cr||o!==ma)return!1;if(!Xn)return _e(o),Xn=!0,!1;var u=o.tag;if(Ee?u!==3&&u!==27&&(u!==5||gn(o.type)&&!Cd(o.type,o.memoizedProps))&&nr&&pn(o):u!==3&&(u!==5||gn(o.type)&&!Cd(o.type,o.memoizedProps))&&nr&&pn(o),_e(o),u===13){if(!Cr)throw Error(r(316));if(o=o.memoizedState,o=o!==null?o.dehydrated:null,!o)throw Error(r(317));nr=w(o)}else if(u===31){if(o=o.memoizedState,o=o!==null?o.dehydrated:null,!o)throw Error(r(317));nr=qe(o)}else nr=Ee&&u===27?US(o.type,nr):ma?hv(o.stateNode):null;return!0}function dt(){Cr&&(nr=ma=null,Xn=!1)}function vt(){var o=Ud;return o!==null&&(eo===null?eo=o:eo.push.apply(eo,o),Ud=null),o}function Qt(o){Ud===null?Ud=[o]:Ud.push(o)}function Ht(o,u,m){Xs?(E(BT,u._currentValue),u._currentValue=m):(E(BT,u._currentValue2),u._currentValue2=m)}function qt(o){var u=BT.current;Xs?o._currentValue=u:o._currentValue2=u,g(BT)}function en(o,u,m){for(;o!==null;){var y=o.alternate;if((o.childLanes&u)!==u?(o.childLanes|=u,y!==null&&(y.childLanes|=u)):y!==null&&(y.childLanes&u)!==u&&(y.childLanes|=u),o===m)break;o=o.return}}function Le(o,u,m,y){var C=o.child;for(C!==null&&(C.return=o);C!==null;){var F=C.dependencies;if(F!==null){var re=C.child;F=F.firstContext;e:for(;F!==null;){var Re=F;F=C;for(var $e=0;$e<u.length;$e++)if(Re.context===u[$e]){F.lanes|=m,Re=F.alternate,Re!==null&&(Re.lanes|=m),en(F.return,m,o),y||(re=null);break e}F=Re.next}}else if(C.tag===18){if(re=C.return,re===null)throw Error(r(341));re.lanes|=m,F=re.alternate,F!==null&&(F.lanes|=m),en(re,m,o),re=null}else C.tag===13&&C.memoizedState!==null&&C.memoizedState.dehydrated===null?(C.lanes|=m,re=C.alternate,re!==null&&(re.lanes|=m),en(C.return,m,o),re=C.child,re=re!==null?re.sibling:null):re=C.child;if(re!==null)re.return=C;else for(re=C;re!==null;){if(re===o){re=null;break}if(C=re.sibling,C!==null){C.return=re.return,re=C;break}re=re.return}C=re}}function fn(o,u,m,y){o=null;for(var C=u,F=!1;C!==null;){if(!F){if((C.flags&524288)!==0)F=!0;else if((C.flags&262144)!==0)break}if(C.tag===10){var re=C.alternate;if(re===null)throw Error(r(387));if(re=re.memoizedProps,re!==null){var Re=C.type;Po(C.pendingProps.value,re.value)||(o!==null?o.push(Re):o=[Re])}}else if(C===qT.current){if(re=C.alternate,re===null)throw Error(r(387));re.memoizedState.memoizedState!==C.memoizedState.memoizedState&&(o!==null?o.push(Oo):o=[Oo])}C=C.return}return o!==null&&Le(u,o,m,y),u.flags|=262144,o!==null}function kt(o){for(o=o.firstContext;o!==null;){var u=o.context;if(!Po(Xs?u._currentValue:u._currentValue2,o.memoizedValue))return!0;o=o.next}return!1}function ge(o){lm=o,mf=null,o=o.dependencies,o!==null&&(o.firstContext=null)}function L(o){return U(lm,o)}function N(o,u){return lm===null&&ge(o),U(o,u)}function U(o,u){var m=Xs?u._currentValue:u._currentValue2;if(u={context:u,memoizedValue:m,next:null},mf===null){if(o===null)throw Error(r(308));mf=u,o.dependencies={lanes:0,firstContext:u},o.flags|=524288}else mf=mf.next=u;return m}function ee(){return{controller:new HG,data:new Map,refCount:0}}function ne(o){o.refCount--,o.refCount===0&&VG(GG,function(){o.controller.abort()})}function X(o,u){if((o.pendingLanes&4194048)!==0){var m=o.transitionTypes;for(m===null&&(m=o.transitionTypes=[]),o=0;o<u.length;o++){var y=u[o];m.indexOf(y)===-1&&m.push(y)}}}function ie(o){var u=o.transitionTypes;return o.transitionTypes=null,u}function le(){}function be(o){o!==yv&&o.next===null&&(yv===null?vv=yv=o:yv=yv.next=o),HT=!0,WR||(WR=!0,De())}function tt(o,u){if(!jR&&HT){jR=!0;do for(var m=!1,y=vv;y!==null;){if(!u)if(o!==0){var C=y.pendingLanes;if(C===0)var F=0;else{var re=y.suspendedLanes,Re=y.pingedLanes;F=(1<<31-Ce(42|o)+1)-1,F&=C&~(re&~Re),F=F&201326741?F&201326741|1:F?F|2:0}F!==0&&(m=!0,ht(y,F))}else F=ui,F=v(y,y===Wi?F:0,y.cancelPendingCommit!==null||y.timeoutHandle!==fu),(F&3)===0||M(y,F)||(m=!0,ht(y,F));y=y.next}while(m);jR=!1}}function Oe(){je()}function je(){HT=WR=!1;var o=0;um!==0&&nS()&&(o=um);for(var u=mi(),m=null,y=vv;y!==null;){var C=y.next,F=Ct(y,u);F===0?(y.next=null,m===null?vv=C:m.next=C,C===null&&(yv=m)):(m=y,(o!==0||(F&3)!==0)&&(HT=!0)),y=C}lr!==0&&lr!==5||tt(o,!1),um!==0&&(um=0)}function Ct(o,u){for(var m=o.suspendedLanes,y=o.pingedLanes,C=o.expirationTimes,F=o.pendingLanes&-62914561;0<F;){var re=31-Ce(F),Re=1<<re,$e=C[re];$e===-1?((Re&m)===0||(Re&y)!==0)&&(C[re]=k(Re,u)):$e<=u&&(o.expiredLanes|=Re),F&=~Re}if(u=Wi,m=ui,m=v(o,o===u?m:0,o.cancelPendingCommit!==null||o.timeoutHandle!==fu),y=o.callbackNode,m===0||o===u&&(Di===2||Di===9)||o.cancelPendingCommit!==null)return y!==null&&y!==null&&dn(y),o.callbackNode=null,o.callbackPriority=0;if((m&3)===0||M(o,m)){if(u=m&-m,u===o.callbackPriority)return u;switch(y!==null&&dn(y),ke(m)){case 2:case 8:m=Do;break;case 32:m=pf;break;case 268435456:m=Ll;break;default:m=pf}return y=nn.bind(null,o),m=on(m,y),o.callbackPriority=u,o.callbackNode=m,u}return y!==null&&y!==null&&dn(y),o.callbackPriority=2,o.callbackNode=null,2}function nn(o,u){if(lr!==0&&lr!==5)return o.callbackNode=null,o.callbackPriority=0,null;var m=o.callbackNode;if(uf()&&o.callbackNode!==m)return null;var y=ui;return y=v(o,o===Wi?y:0,o.cancelPendingCommit!==null||o.timeoutHandle!==fu),y===0?null:(Cg(o,y,u),Ct(o,mi()),o.callbackNode!=null&&o.callbackNode===m?nn.bind(null,o):null)}function ht(o,u){if(uf())return null;Cg(o,u,!0)}function De(){cS?fS(function(){(ei&6)!==0?on(Zs,Oe):je()}):on(Zs,Oe)}function bt(){if(um===0){var o=cm;o===0&&(o=tn,tn<<=1,(tn&261888)===0&&(tn=256)),um=o}return um}function at(o,u){if(QS===null){var m=QS=[];QR=0,cm=bt(),bv={status:"pending",value:void 0,then:function(y){m.push(y)}}}return QR++,u.then(we,we),u}function we(){if(--QR===0&&(jS=null,QS!==null)){bv!==null&&(bv.status="fulfilled");var o=QS;QS=null,cm=0,bv=null;for(var u=0;u<o.length;u++)(0,o[u])()}}function Rt(o,u){var m=[],y={status:"pending",value:null,reason:null,then:function(C){m.push(C)}};return o.then(function(){y.status="fulfilled",y.value=u;for(var C=0;C<m.length;C++)(0,m[C])(u)},function(C){for(y.status="rejected",y.reason=C,C=0;C<m.length;C++)(0,m[C])(void 0)}),y}function ft(){var o=fm.current;return o!==null?o:Wi.pooledCache}function Yt(o,u){u===null?E(fm,fm.current):E(fm,u.pool)}function $t(){var o=ft();return o===null?null:{parent:Xs?or._currentValue:or._currentValue2,pool:o}}function Wn(o,u){if(Po(o,u))return!0;if(typeof o!="object"||o===null||typeof u!="object"||u===null)return!1;var m=Object.keys(o),y=Object.keys(u);if(m.length!==y.length)return!1;for(y=0;y<m.length;y++){var C=m[y];if(!BG.call(u,C)||!Po(o[C],u[C]))return!1}return!0}function Un(o){return o=o.status,o==="fulfilled"||o==="rejected"}function Ti(o,u,m){switch(m=o[m],m===void 0?o.push(u):m!==u&&(u.then(le,le),u=m),u.status){case"fulfilled":return u.value;case"rejected":throw o=u.reason,ul(o),o===void 0&&!("reason"in u)?Error(r(600)):o;default:if(typeof u.status=="string")u.then(le,le);else{if(o=Wi,o!==null&&100<o.shellSuspendCounter)throw Error(r(482));o=u,o.status="pending",o.then(function(y){if(u.status==="pending"){var C=u;C.status="fulfilled",C.value=y}},function(y){if(u.status==="pending"){var C=u;C.status="rejected",C.reason=y}})}switch(u.status){case"fulfilled":return u.value;case"rejected":throw o=u.reason,ul(o),o}throw dm=u,Sv}}function d(o){try{var u=o._init;return u(o._payload)}catch(m){throw m!==null&&typeof m=="object"&&typeof m.then=="function"?(dm=m,Sv):m}}function Ke(){if(dm===null)throw Error(r(459));var o=dm;return dm=null,o}function ul(o){if(o===Sv||o===VT)throw Error(r(483))}function us(o){var u=XS;return XS+=1,Ev===null&&(Ev=[]),Ti(Ev,o,u)}function Fr(o,u){u=u.props.ref,o.ref=u!==void 0?u:null}function Ps(o,u){throw u.$$typeof===zb?Error(r(525)):(o=Object.prototype.toString.call(u),Error(r(31,o==="[object Object]"?"object with keys {"+Object.keys(u).join(", ")+"}":o)))}function er(o){function u(Ze,Ge){if(o){var nt=Ze.deletions;nt===null?(Ze.deletions=[Ge],Ze.flags|=16):nt.push(Ge)}}function m(Ze,Ge){if(!o)return null;for(;Ge!==null;)u(Ze,Ge),Ge=Ge.sibling;return null}function y(Ze){for(var Ge=new Map;Ze!==null;)Ze.key===null?Ge.set(Ze.index,Ze):Ge.set(Ze.key,Ze),Ze=Ze.sibling;return Ge}function C(Ze,Ge){return Ze=Lo(Ze,Ge),Ze.index=0,Ze.sibling=null,Ze}function F(Ze,Ge,nt){return Ze.index=nt,o?(nt=Ze.alternate,nt!==null?(nt=nt.index,nt<Ge?(Ze.flags|=2,Ge):nt):(Ze.flags|=134217730,Ge)):(Ze.flags|=1048576,Ge)}function re(Ze){return o&&Ze.alternate===null&&(Ze.flags|=134217730),Ze}function Re(Ze,Ge,nt,Tt){return Ge===null||Ge.tag!==6?(Ge=Up(nt,Ze.mode,Tt),Ge.return=Ze,Ge):(Ge=C(Ge,nt),Ge.return=Ze,Ge)}function $e(Ze,Ge,nt,Tt){var bn=nt.type;return bn===dc?(Ze=St(Ze,Ge,nt.props.children,Tt,nt.key),Fr(Ze,nt),Ze):Ge!==null&&(Ge.elementType===bn||typeof bn=="object"&&bn!==null&&bn.$$typeof===Il&&d(bn)===Ge.type)?(Ge=C(Ge,nt.props),Fr(Ge,nt),Ge.return=Ze,Ge):(Ge=Td(nt.type,nt.key,nt.props,null,Ze.mode,Tt),Fr(Ge,nt),Ge.return=Ze,Ge)}function pt(Ze,Ge,nt,Tt){return Ge===null||Ge.tag!==4||Ge.stateNode.containerInfo!==nt.containerInfo||Ge.stateNode.implementation!==nt.implementation?(Ge=zp(nt,Ze.mode,Tt),Ge.return=Ze,Ge):(Ge=C(Ge,nt.children||[]),Ge.return=Ze,Ge)}function St(Ze,Ge,nt,Tt,bn){return Ge===null||Ge.tag!==7?(Ge=cu(nt,Ze.mode,Tt,bn),Ge.return=Ze,Ge):(Ge=C(Ge,nt),Ge.return=Ze,Ge)}function Ot(Ze,Ge,nt){if(typeof Ge=="string"&&Ge!==""||typeof Ge=="number"||typeof Ge=="bigint")return Ge=Up(""+Ge,Ze.mode,nt),Ge.return=Ze,Ge;if(typeof Ge=="object"&&Ge!==null){switch(Ge.$$typeof){case Md:return nt=Td(Ge.type,Ge.key,Ge.props,null,Ze.mode,nt),Fr(nt,Ge),nt.return=Ze,nt;case fc:return Ge=zp(Ge,Ze.mode,nt),Ge.return=Ze,Ge;case Il:return Ge=d(Ge),Ot(Ze,Ge,nt)}if(Ad(Ge)||p(Ge))return Ge=cu(Ge,Ze.mode,nt,null),Ge.return=Ze,Ge;if(typeof Ge.then=="function")return Ot(Ze,us(Ge),nt);if(Ge.$$typeof===No)return Ot(Ze,N(Ze,Ge),nt);Ps(Ze,Ge)}return null}function rn(Ze,Ge,nt,Tt){var bn=Ge!==null?Ge.key:null;if(typeof nt=="string"&&nt!==""||typeof nt=="number"||typeof nt=="bigint")return bn!==null?null:Re(Ze,Ge,""+nt,Tt);if(typeof nt=="object"&&nt!==null){switch(nt.$$typeof){case Md:return nt.key===bn?$e(Ze,Ge,nt,Tt):null;case fc:return nt.key===bn?pt(Ze,Ge,nt,Tt):null;case Il:return nt=d(nt),rn(Ze,Ge,nt,Tt)}if(Ad(nt)||p(nt))return bn!==null?null:St(Ze,Ge,nt,Tt,null);if(typeof nt.then=="function")return rn(Ze,Ge,us(nt),Tt);if(nt.$$typeof===No)return rn(Ze,Ge,N(Ze,nt),Tt);Ps(Ze,nt)}return null}function Zn(Ze,Ge,nt,Tt,bn){if(typeof Tt=="string"&&Tt!==""||typeof Tt=="number"||typeof Tt=="bigint")return Ze=Ze.get(nt)||null,Re(Ge,Ze,""+Tt,bn);if(typeof Tt=="object"&&Tt!==null){switch(Tt.$$typeof){case Md:return Ze=Ze.get(Tt.key===null?nt:Tt.key)||null,$e(Ge,Ze,Tt,bn);case fc:return Ze=Ze.get(Tt.key===null?nt:Tt.key)||null,pt(Ge,Ze,Tt,bn);case Il:return Tt=d(Tt),Zn(Ze,Ge,nt,Tt,bn)}if(Ad(Tt)||p(Tt))return Ze=Ze.get(nt)||null,St(Ge,Ze,Tt,bn,null);if(typeof Tt.then=="function")return Zn(Ze,Ge,nt,us(Tt),bn);if(Tt.$$typeof===No)return Zn(Ze,Ge,nt,N(Ge,Tt),bn);Ps(Ge,Tt)}return null}function yi(Ze,Ge,nt,Tt){for(var bn=null,ur=null,Mn=Ge,bi=Ge=0,Vr=null;Mn!==null&&bi<nt.length;bi++){Mn.index>bi?(Vr=Mn,Mn=null):Vr=Mn.sibling;var _i=rn(Ze,Mn,nt[bi],Tt);if(_i===null){Mn===null&&(Mn=Vr);break}o&&Mn&&_i.alternate===null&&u(Ze,Mn),Ge=F(_i,Ge,bi),ur===null?bn=_i:ur.sibling=_i,ur=_i,Mn=Vr}if(bi===nt.length)return m(Ze,Mn),Xn&&jt(Ze,bi),bn;if(Mn===null){for(;bi<nt.length;bi++)Mn=Ot(Ze,nt[bi],Tt),Mn!==null&&(Ge=F(Mn,Ge,bi),ur===null?bn=Mn:ur.sibling=Mn,ur=Mn);return Xn&&jt(Ze,bi),bn}for(Mn=y(Mn);bi<nt.length;bi++)Vr=Zn(Mn,Ze,bi,nt[bi],Tt),Vr!==null&&(o&&(_i=Vr.alternate,_i!==null&&Mn.delete(_i.key===null?bi:_i.key)),Ge=F(Vr,Ge,bi),ur===null?bn=Vr:ur.sibling=Vr,ur=Vr);return o&&Mn.forEach(function(Wd){return u(Ze,Wd)}),Xn&&jt(Ze,bi),bn}function Gd(Ze,Ge,nt,Tt){if(nt==null)throw Error(r(151));for(var bn=null,ur=null,Mn=Ge,bi=Ge=0,Vr=null,_i=nt.next();Mn!==null&&!_i.done;bi++,_i=nt.next()){Mn.index>bi?(Vr=Mn,Mn=null):Vr=Mn.sibling;var Wd=rn(Ze,Mn,_i.value,Tt);if(Wd===null){Mn===null&&(Mn=Vr);break}o&&Mn&&Wd.alternate===null&&u(Ze,Mn),Ge=F(Wd,Ge,bi),ur===null?bn=Wd:ur.sibling=Wd,ur=Wd,Mn=Vr}if(_i.done)return m(Ze,Mn),Xn&&jt(Ze,bi),bn;if(Mn===null){for(;!_i.done;bi++,_i=nt.next())_i=Ot(Ze,_i.value,Tt),_i!==null&&(Ge=F(_i,Ge,bi),ur===null?bn=_i:ur.sibling=_i,ur=_i);return Xn&&jt(Ze,bi),bn}for(Mn=y(Mn);!_i.done;bi++,_i=nt.next())_i=Zn(Mn,Ze,bi,_i.value,Tt),_i!==null&&(o&&(Vr=_i.alternate,Vr!==null&&Mn.delete(Vr.key===null?bi:Vr.key)),Ge=F(_i,Ge,bi),ur===null?bn=_i:ur.sibling=_i,ur=_i);return o&&Mn.forEach(function(YG){return u(Ze,YG)}),Xn&&jt(Ze,bi),bn}function vm(Ze,Ge,nt,Tt){if(typeof nt=="object"&&nt!==null&&nt.type===dc&&nt.key===null&&nt.props.ref===void 0&&(nt=nt.props.children),typeof nt=="object"&&nt!==null){switch(nt.$$typeof){case Md:e:{for(var bn=nt.key;Ge!==null;){if(Ge.key===bn){if(bn=nt.type,bn===dc){if(Ge.tag===7){m(Ze,Ge.sibling),Tt=C(Ge,nt.props.children),Fr(Tt,nt),Tt.return=Ze,Ze=Tt;break e}}else if(Ge.elementType===bn||typeof bn=="object"&&bn!==null&&bn.$$typeof===Il&&d(bn)===Ge.type){m(Ze,Ge.sibling),Tt=C(Ge,nt.props),Fr(Tt,nt),Tt.return=Ze,Ze=Tt;break e}m(Ze,Ge);break}else u(Ze,Ge);Ge=Ge.sibling}nt.type===dc?(Tt=cu(nt.props.children,Ze.mode,Tt,nt.key),Fr(Tt,nt),Tt.return=Ze,Ze=Tt):(Tt=Td(nt.type,nt.key,nt.props,null,Ze.mode,Tt),Fr(Tt,nt),Tt.return=Ze,Ze=Tt)}return re(Ze);case fc:e:{for(bn=nt.key;Ge!==null;){if(Ge.key===bn)if(Ge.tag===4&&Ge.stateNode.containerInfo===nt.containerInfo&&Ge.stateNode.implementation===nt.implementation){m(Ze,Ge.sibling),Tt=C(Ge,nt.children||[]),Tt.return=Ze,Ze=Tt;break e}else{m(Ze,Ge);break}else u(Ze,Ge);Ge=Ge.sibling}Tt=zp(nt,Ze.mode,Tt),Tt.return=Ze,Ze=Tt}return re(Ze);case Il:return nt=d(nt),vm(Ze,Ge,nt,Tt)}if(Ad(nt))return yi(Ze,Ge,nt,Tt);if(p(nt)){if(bn=p(nt),typeof bn!="function")throw Error(r(150));return nt=bn.call(nt),Gd(Ze,Ge,nt,Tt)}if(typeof nt.then=="function")return vm(Ze,Ge,us(nt),Tt);if(nt.$$typeof===No)return vm(Ze,Ge,N(Ze,nt),Tt);Ps(Ze,nt)}return typeof nt=="string"&&nt!==""||typeof nt=="number"||typeof nt=="bigint"?(nt=""+nt,Ge!==null&&Ge.tag===6?(m(Ze,Ge.sibling),Tt=C(Ge,nt),Tt.return=Ze,Ze=Tt):(m(Ze,Ge),Tt=Up(nt,Ze.mode,Tt),Tt.return=Ze,Ze=Tt),re(Ze)):m(Ze,Ge)}return function(Ze,Ge,nt,Tt){try{XS=0;var bn=vm(Ze,Ge,nt,Tt);return Ev=null,bn}catch(Mn){if(Mn===Sv||Mn===VT)throw Mn;var ur=t(29,Mn,null,Ze.mode);return ur.lanes=Tt,ur.return=Ze,ur}finally{}}}function cs(){for(var o=wv,u=YR=wv=0;u<o;){var m=Dl[u];Dl[u++]=null;var y=Dl[u];Dl[u++]=null;var C=Dl[u];Dl[u++]=null;var F=Dl[u];if(Dl[u++]=null,y!==null&&C!==null){var re=y.pending;re===null?C.next=C:(C.next=re.next,re.next=C),y.pending=C}F!==0&&yo(m,C,F)}}function Pr(o,u,m,y){Dl[wv++]=o,Dl[wv++]=u,Dl[wv++]=m,Dl[wv++]=y,YR|=y,o.lanes|=y,o=o.alternate,o!==null&&(o.lanes|=y)}function fs(o,u,m,y){return Pr(o,u,m,y),wn(o)}function hi(o,u){return Pr(o,null,null,u),wn(o)}function yo(o,u,m){o.lanes|=m;var y=o.alternate;y!==null&&(y.lanes|=m);for(var C=!1,F=o.return;F!==null;)F.childLanes|=m,y=F.alternate,y!==null&&(y.childLanes|=m),F.tag===22&&(o=F.stateNode,o===null||o._visibility&1||(C=!0)),o=F,F=F.return;return o.tag===3?(F=o.stateNode,C&&u!==null&&(C=31-Ce(m),o=F.hiddenUpdates,y=o[C],y===null?o[C]=[u]:y.push(u),u.lane=m|536870912),F):null}function wn(o){if(50<eE)throw eE=0,r3=null,Error(r(185));for(var u=o.return;u!==null;)o=u,u=o.return;return o.tag===3?o.stateNode:null}function Us(o){o.updateQueue={baseState:o.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function Xa(o,u){o=o.updateQueue,u.updateQueue===o&&(u.updateQueue={baseState:o.baseState,firstBaseUpdate:o.firstBaseUpdate,lastBaseUpdate:o.lastBaseUpdate,shared:o.shared,callbacks:null})}function $r(o){return{lane:o,tag:0,payload:null,callback:null,next:null}}function Jr(o,u,m){var y=o.updateQueue;if(y===null)return null;if(y=y.shared,(ei&2)!==0){var C=y.pending;return C===null?u.next=u:(u.next=C.next,C.next=u),y.pending=u,u=wn(o),yo(o,null,m),u}return Pr(o,y,u,m),wn(o)}function ds(o,u,m){if(u=u.updateQueue,u!==null&&(u=u.shared,(m&4194048)!==0)){var y=u.lanes;y&=o.pendingLanes,m|=y,u.lanes=m,te(o,m)}}function bo(o,u){var m=o.updateQueue,y=o.alternate;if(y!==null&&(y=y.updateQueue,m===y)){var C=null,F=null;if(m=m.firstBaseUpdate,m!==null){do{var re={lane:m.lane,tag:m.tag,payload:m.payload,callback:null,next:null};F===null?C=F=re:F=F.next=re,m=m.next}while(m!==null);F===null?C=F=u:F=F.next=u}else C=F=u;m={baseState:y.baseState,firstBaseUpdate:C,lastBaseUpdate:F,shared:y.shared,callbacks:y.callbacks},o.updateQueue=m;return}o=m.lastBaseUpdate,o===null?m.firstBaseUpdate=u:o.next=u,m.lastBaseUpdate=u}function hs(){if(KR){var o=bv;if(o!==null)throw o}}function ps(o,u,m,y){KR=!1;var C=o.updateQueue;zd=!1;var F=C.firstBaseUpdate,re=C.lastBaseUpdate,Re=C.shared.pending;if(Re!==null){C.shared.pending=null;var $e=Re,pt=$e.next;$e.next=null,re===null?F=pt:re.next=pt,re=$e;var St=o.alternate;St!==null&&(St=St.updateQueue,Re=St.lastBaseUpdate,Re!==re&&(Re===null?St.firstBaseUpdate=pt:Re.next=pt,St.lastBaseUpdate=$e))}if(F!==null){var Ot=C.baseState;re=0,St=pt=$e=null,Re=F;do{var rn=Re.lane&-536870913,Zn=rn!==Re.lane;if(Zn?(ui&rn)===rn:(y&rn)===rn){rn!==0&&rn===cm&&(KR=!0),St!==null&&(St=St.next={lane:0,tag:Re.tag,payload:Re.payload,callback:null,next:null});e:{var yi=o,Gd=Re;rn=u;var vm=m;switch(Gd.tag){case 1:if(yi=Gd.payload,typeof yi=="function"){Ot=yi.call(vm,Ot,rn);break e}Ot=yi;break e;case 3:yi.flags=yi.flags&-65537|128;case 0:if(yi=Gd.payload,rn=typeof yi=="function"?yi.call(vm,Ot,rn):yi,rn==null)break e;Ot=Bp({},Ot,rn);break e;case 2:zd=!0}}rn=Re.callback,rn!==null&&(o.flags|=64,Zn&&(o.flags|=8192),Zn=C.callbacks,Zn===null?C.callbacks=[rn]:Zn.push(rn))}else Zn={lane:rn,tag:Re.tag,payload:Re.payload,callback:Re.callback,next:null},St===null?(pt=St=Zn,$e=Ot):St=St.next=Zn,re|=rn;if(Re=Re.next,Re===null){if(Re=C.shared.pending,Re===null)break;Zn=Re,Re=Zn.next,Zn.next=null,C.lastBaseUpdate=Zn,C.shared.pending=null}}while(!0);St===null&&($e=Ot),C.baseState=$e,C.firstBaseUpdate=pt,C.lastBaseUpdate=St,F===null&&(C.shared.lanes=0),Hd|=re,o.lanes=re,o.memoizedState=Ot}}function So(o,u){if(typeof o!="function")throw Error(r(191,o));o.call(u)}function ae(o,u){var m=o.callbacks;if(m!==null)for(o.callbacks=null,o=0;o<m.length;o++)So(m[o],u)}function Fe(o,u){o=gf,E(WT,o),E(qd,u),gf=o|u.baseLanes}function Ye(){E(WT,gf),E(qd,qd.current)}function Be(){gf=WT.current,g(qd),g(WT)}function He(o){var u=o.alternate;E(Oa,Oa.current&1),E(ka,o),vs===null&&(u===null||qd.current!==null||u.memoizedState!==null)&&(vs=o)}function It(o){E(Oa,Oa.current),E(ka,o),vs===null&&(vs=o)}function Bt(o){o.tag===22?(E(Oa,Oa.current),E(ka,o),vs===null&&(vs=o)):wt()}function wt(){E(Oa,Oa.current),E(ka,ka.current)}function Nt(o){g(ka),vs===o&&(vs=null),g(Oa)}function Kt(o,u){E(ka,ka.current),E(Oa,u)}function yn(o){g(Oa),g(ka),vs===o&&(vs=null)}function Sn(o){for(var u=o;u!==null;){if(u.tag===13){var m=u.memoizedState;if(m!==null&&(m=m.dehydrated,m===null||sm(m)||om(m)))return u}else if(u.tag===19&&u.memoizedProps.revealOrder!=="independent"){if((u.flags&128)!==0)return u}else if(u.child!==null){u.child.return=u,u=u.child;continue}if(u===o)break;for(;u.sibling===null;){if(u.return===null||u.return===o)return null;u=u.return}u.sibling.return=u.return,u=u.sibling}return null}function _t(){throw Error(r(321))}function En(o,u){if(u===null)return!1;for(var m=0;m<u.length&&m<o.length;m++)if(!Po(o[m],u[m]))return!1;return!0}function ri(o,u,m,y,C,F){return _f=F,Dn=u,u.memoizedState=null,u.updateQueue=null,u.lanes=0,_n.H=o===null||o.memoizedState===null?XF:YF,pm=!1,F=m(y,C),pm=!1,xv&&(F=On(u,m,y,C)),Hn(o),F}function Hn(o){_n.H=XT;var u=qi!==null&&qi.next!==null;if(_f=0,qr=qi=Dn=null,jT=!1,YS=0,Tv=null,u)throw Error(r(300));o===null||Br||(o=o.dependencies,o!==null&&kt(o)&&(Br=!0))}function On(o,u,m,y){Dn=o;var C=0;do{if(xv&&(Tv=null),YS=0,xv=!1,25<=C)throw Error(r(301));if(C+=1,qr=qi=null,o.updateQueue!=null){var F=o.updateQueue;F.lastEffect=null,F.events=null,F.stores=null,F.memoCache!=null&&(F.memoCache.index=0)}_n.H=jG,F=u(m,y)}while(xv);return F}function Xi(){var o=_n.H,u=o.useState()[0];return u=typeof u.then=="function"?Ur(u):u,o=o.useState()[0],(qi!==null?qi.memoizedState:null)!==o&&(Dn.flags|=1024),u}function Pt(){var o=QT!==0;return QT=0,o}function Oi(o,u,m){u.updateQueue=o.updateQueue,u.flags&=-2053,o.lanes&=~m}function xn(o){if(jT){for(o=o.memoizedState;o!==null;){var u=o.queue;u!==null&&(u.pending=null),o=o.next}jT=!1}_f=0,qr=qi=Dn=null,xv=!1,YS=QT=0,Tv=null}function ai(){var o={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return qr===null?Dn.memoizedState=qr=o:qr=qr.next=o,qr}function Vn(){if(qi===null){var o=Dn.alternate;o=o!==null?o.memoizedState:null}else o=qi.next;var u=qr===null?Dn.memoizedState:qr.next;if(u!==null)qr=u,qi=o;else{if(o===null)throw Dn.alternate===null?Error(r(467)):Error(r(310));qi=o,o={memoizedState:qi.memoizedState,baseState:qi.baseState,baseQueue:qi.baseQueue,queue:qi.queue,next:null},qr===null?Dn.memoizedState=qr=o:qr=qr.next=o}return qr}function wr(){return{lastEffect:null,events:null,stores:null,memoCache:null}}function Ur(o){var u=YS;return YS+=1,Tv===null&&(Tv=[]),o=Ti(Tv,o,u),u=Dn,(qr===null?u.memoizedState:qr.next)===null&&(u=u.alternate,_n.H=u===null||u.memoizedState===null?XF:YF),o}function zn(o){if(o!==null&&typeof o=="object"){if(typeof o.then=="function")return Ur(o);if(o.$$typeof===Hb)return;if(o.$$typeof===No)return L(o)}throw Error(r(438,String(o)))}function vi(o){var u=null,m=Dn.updateQueue;if(m!==null&&(u=m.memoCache),u==null){var y=Dn.alternate;y!==null&&(y=y.updateQueue,y!==null&&(y=y.memoCache,y!=null&&(u={data:y.data.map(function(C){return C.slice()}),index:0})))}if(u==null&&(u={data:[],index:0}),m===null&&(m=wr(),Dn.updateQueue=m),m.memoCache=u,m=u.data[u.index],m===void 0)for(m=u.data[u.index]=Array(o),y=0;y<o;y++)m[y]=Bb;return u.index++,m}function pi(o,u){return typeof u=="function"?u(o):u}function jn(o){var u=Vn();return si(u,qi,o)}function si(o,u,m){var y=o.queue;if(y===null)throw Error(r(311));y.lastRenderedReducer=m;var C=o.baseQueue,F=y.pending;if(F!==null){if(C!==null){var re=C.next;C.next=F.next,F.next=re}u.baseQueue=C=F,y.pending=null}if(F=o.baseState,C===null)o.memoizedState=F;else{u=C.next;var Re=re=null,$e=null,pt=u,St=!1;do{var Ot=pt.lane&-536870913;if(Ot!==pt.lane?(ui&Ot)===Ot:(_f&Ot)===Ot){var rn=pt.revertLane;if(rn===0)$e!==null&&($e=$e.next={lane:0,revertLane:0,gesture:null,action:pt.action,hasEagerState:pt.hasEagerState,eagerState:pt.eagerState,next:null}),Ot===cm&&(St=!0);else if((_f&rn)===rn){pt=pt.next,rn===cm&&(St=!0);continue}else Ot={lane:0,revertLane:pt.revertLane,gesture:null,action:pt.action,hasEagerState:pt.hasEagerState,eagerState:pt.eagerState,next:null},$e===null?(Re=$e=Ot,re=F):$e=$e.next=Ot,Dn.lanes|=rn,Hd|=rn;Ot=pt.action,pm&&m(F,Ot),F=pt.hasEagerState?pt.eagerState:m(F,Ot)}else rn={lane:Ot,revertLane:pt.revertLane,gesture:pt.gesture,action:pt.action,hasEagerState:pt.hasEagerState,eagerState:pt.eagerState,next:null},$e===null?(Re=$e=rn,re=F):$e=$e.next=rn,Dn.lanes|=Ot,Hd|=Ot;pt=pt.next}while(pt!==null&&pt!==u);if($e===null?re=F:$e.next=Re,!Po(F,o.memoizedState)&&(Br=!0,St&&(m=bv,m!==null)))throw m;o.memoizedState=F,o.baseState=re,o.baseQueue=$e,y.lastRenderedState=F}return C===null&&(y.lanes=0),[o.memoizedState,y.dispatch]}function da(o){var u=Vn(),m=u.queue;if(m===null)throw Error(r(311));m.lastRenderedReducer=o;var y=m.dispatch,C=m.pending,F=u.memoizedState;if(C!==null){m.pending=null;var re=C=C.next;do F=o(F,re.action),re=re.next;while(re!==C);Po(F,u.memoizedState)||(Br=!0),u.memoizedState=F,u.baseQueue===null&&(u.baseState=F),m.lastRenderedState=F}return[F,y]}function Eo(o,u,m){var y=Dn,C=Vn(),F=Xn;if(F){if(m===void 0)throw Error(r(407));m=m()}else m=u();var re=!Po((qi||C).memoizedState,m);if(re&&(C.memoizedState=m,Br=!0),C=C.queue,xo(Wu.bind(null,y,C,o),[o]),o=C.getSnapshot!==u||re||qr!==null&&(qr.memoizedState.tag&1)!==0,zs(o?9:8,{destroy:void 0},Gu.bind(null,y,C,m,u),null),o){if(y.flags|=2048,Wi===null)throw Error(r(349));F||(_f&127)!==0||Vu(y,u,m)}return m}function Vu(o,u,m){o.flags|=16384,o={getSnapshot:u,value:m},u=Dn.updateQueue,u===null?(u=wr(),Dn.updateQueue=u,u.stores=[o]):(m=u.stores,m===null?u.stores=[o]:m.push(o))}function Gu(o,u,m,y){u.value=m,u.getSnapshot=y,ju(u)&&Qu(o)}function Wu(o,u,m){return m(function(){ju(u)&&Qu(o)})}function ju(o){var u=o.getSnapshot;o=o.value;try{var m=u();return!Po(o,m)}catch{return!0}}function Qu(o){var u=hi(o,2);u!==null&&pa(u,o,2)}function wo(o){var u=ai();if(typeof o=="function"){var m=o;if(o=m(),pm){Me(!0);try{m()}finally{Me(!1)}}}return u.memoizedState=u.baseState=o,u.queue={pending:null,lanes:0,dispatch:null,lastRenderedReducer:pi,lastRenderedState:o},u}function Xu(o,u,m,y){return o.baseState=m,si(o,qi,typeof y=="function"?y:pi)}function $c(o,u,m,y,C){if(Xt(o))throw Error(r(485));if(o=u.action,o!==null){var F={payload:C,action:o,next:null,isTransition:!0,status:"pending",value:null,reason:null,listeners:[],then:function(re){F.listeners.push(re)}};_n.T!==null?m(!0):F.isTransition=!1,y(F),m=u.pending,m===null?(F.next=u.pending=F,it(u,F)):(F.next=m.next,u.pending=m.next=F)}}function it(o,u){var m=u.action,y=u.payload,C=o.state;if(u.isTransition){var F=_n.T,re={};re.types=F!==null?F.types:null,_n.T=re;try{var Re=m(C,y),$e=_n.S;$e!==null&&$e(re,Re),Yu(o,u,Re)}catch(pt){tu(o,u,pt)}finally{F!==null&&re.types!==null&&(F.types=re.types),_n.T=F}}else try{F=m(C,y),Yu(o,u,F)}catch(pt){tu(o,u,pt)}}function Yu(o,u,m){m!==null&&typeof m=="object"&&typeof m.then=="function"?m.then(function(y){cl(o,u,y)},function(y){return tu(o,u,y)}):cl(o,u,m)}function cl(o,u,m){u.status="fulfilled",u.value=m,fl(u),o.state=m,u=o.pending,u!==null&&(m=u.next,m===u?o.pending=null:(m=m.next,u.next=m,it(o,m)))}function tu(o,u,m){var y=o.pending;if(o.pending=null,y!==null){y=y.next;do u.status="rejected",u.reason=m,fl(u),u=u.next;while(u!==y)}o.action=null}function fl(o){o=o.listeners;for(var u=0;u<o.length;u++)(0,o[u])()}function Ku(o,u){return u}function dl(o,u){if(Xn){var m=Wi.formState;if(m!==null){e:{var y=Dn;if(Xn){if(nr){var C=FS(nr,Ol);if(C){nr=hv(C),y=PS(C);break e}}pn(y)}y=!1}y&&(u=m[0])}}m=ai(),m.memoizedState=m.baseState=u,y={pending:null,lanes:0,dispatch:null,lastRenderedReducer:Ku,lastRenderedState:u},m.queue=y,m=ic.bind(null,Dn,y),y.dispatch=m,y=wo(!1);var F=Zt.bind(null,Dn,!1,y.queue);return y=ai(),C={state:u,dispatch:null,action:o,pending:null},y.queue=C,m=$c.bind(null,Dn,C,F,m),C.dispatch=m,y.memoizedState=o,[u,m,!1]}function Zu(o){var u=Vn();return hl(u,qi,o)}function hl(o,u,m){if(u=si(o,u,Ku)[0],o=jn(pi)[0],typeof u=="object"&&u!==null&&typeof u.then=="function")try{var y=Ur(u)}catch(re){throw re===Sv?VT:re}else y=u;u=Vn();var C=u.queue,F=C.dispatch;return m!==u.memoizedState&&(Dn.flags|=2048,zs(9,{destroy:void 0},Jc.bind(null,C,m),null)),[y,F,o]}function Jc(o,u){o.action=u}function pl(o){var u=Vn(),m=qi;if(m!==null)return hl(u,m,o);Vn(),u=u.memoizedState,m=Vn();var y=m.queue.dispatch;return m.memoizedState=o,[u,y,!1]}function zs(o,u,m,y){return o={tag:o,create:m,deps:y,inst:u,next:null},u=Dn.updateQueue,u===null&&(u=wr(),Dn.updateQueue=u),m=u.lastEffect,m===null?u.lastEffect=o.next=o:(y=m.next,m.next=o,o.next=y,u.lastEffect=o),o}function ml(){return Vn().memoizedState}function _l(o,u,m,y){var C=ai();Dn.flags|=o,C.memoizedState=zs(1|u,{destroy:void 0},m,y===void 0?null:y)}function qs(o,u,m,y){var C=Vn();y=y===void 0?null:y;var F=C.memoizedState.inst;qi!==null&&y!==null&&En(y,qi.memoizedState.deps)?C.memoizedState=zs(u,F,m,y):(Dn.flags|=o,C.memoizedState=zs(1|u,F,m,y))}function $u(o,u){_l(8390656,8,o,u)}function xo(o,u){qs(2048,8,o,u)}function ef(o){Dn.flags|=4;var u=Dn.updateQueue;if(u===null)u=wr(),Dn.updateQueue=u,u.events=[o];else{var m=u.events;m===null?u.events=[o]:m.push(o)}}function gl(o){var u=Vn().memoizedState;return ef({ref:u,nextImpl:o}),function(){if((ei&2)!==0)throw Error(r(440));return u.impl.apply(void 0,arguments)}}function Ju(o,u){return qs(4,2,o,u)}function vl(o,u){return qs(4,4,o,u)}function ec(o,u){if(typeof u=="function"){o=o();var m=u(o);return function(){typeof m=="function"?m():u(null)}}if(u!=null)return o=o(),u.current=o,function(){u.current=null}}function yl(o,u,m){m=m!=null?m.concat([o]):null,qs(4,4,ec.bind(null,u,o),m)}function nu(){}function bl(o,u){var m=Vn();u=u===void 0?null:u;var y=m.memoizedState;return u!==null&&En(u,y[1])?y[0]:(m.memoizedState=[o,u],o)}function tc(o,u){var m=Vn();u=u===void 0?null:u;var y=m.memoizedState;if(u!==null&&En(u,y[1]))return y[0];if(y=o(),pm){Me(!0);try{o()}finally{Me(!1)}}return m.memoizedState=[y,u],y}function To(o,u,m){return m===void 0||(_f&1073741824)!==0&&(ui&261930)===0?o.memoizedState=u:(o.memoizedState=m,o=Ag(),Dn.lanes|=o,Hd|=o,m)}function nc(o,u,m,y){return Po(m,u)?m:qd.current!==null?(o=To(o,m,y),Po(o,u)||(Br=!0),o):(_f&106)===0||(_f&1073741824)!==0&&(ui&261930)===0?(Br=!0,o.memoizedState=m):(o=Ag(),Dn.lanes|=o,Hd|=o,u)}function iu(o,u,m,y,C){var F=ko();hr(F!==0&&8>F?F:8);var re=_n.T,Re={};Re.types=re!==null?re.types:null,_n.T=Re,Zt(o,!1,u,m);try{var $e=C(),pt=_n.S;if(pt!==null&&pt(Re,$e),$e!==null&&typeof $e=="object"&&typeof $e.then=="function"){var St=Rt($e,y);Ao(o,u,St,Ra(o))}else Ao(o,u,y,Ra(o))}catch(Ot){Ao(o,u,{then:function(){},status:"rejected",reason:Ot},Ra())}finally{hr(F),re!==null&&Re.types!==null&&(re.types=Re.types),_n.T=re}}function ru(o){var u=o.memoizedState;if(u!==null)return u;u={memoizedState:hc,baseState:hc,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:pi,lastRenderedState:hc},next:null};var m={};return u.next={memoizedState:m,baseState:m,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:pi,lastRenderedState:m},next:null},o.memoizedState=u,o=o.alternate,o!==null&&(o.memoizedState=u),u}function Sl(){return L(Oo)}function au(){return Vn().memoizedState}function su(){return Vn().memoizedState}function Bs(o){for(var u=o.return;u!==null;){switch(u.tag){case 24:case 3:var m=Ra();o=$r(m);var y=Jr(u,o,m);y!==null&&(pa(y,u,m),ds(y,u,m)),u={cache:ee()},o.payload=u;return}u=u.return}}function Mo(o,u,m){var y=Ra();m={lane:y,revertLane:0,gesture:null,action:m,hasEagerState:!1,eagerState:null,next:null},Xt(o)?ou(u,m):(m=fs(o,u,m,y),m!==null&&(pa(m,o,y),ms(m,u,y)))}function ic(o,u,m){var y=Ra();Ao(o,u,m,y)}function Ao(o,u,m,y){var C={lane:y,revertLane:0,gesture:null,action:m,hasEagerState:!1,eagerState:null,next:null};if(Xt(o))ou(u,C);else{var F=o.alternate;if(o.lanes===0&&(F===null||F.lanes===0)&&(F=u.lastRenderedReducer,F!==null))try{var re=u.lastRenderedState,Re=F(re,m);if(C.hasEagerState=!0,C.eagerState=Re,Po(Re,re))return Pr(o,u,C,0),Wi===null&&cs(),!1}catch{}finally{}if(m=fs(o,u,C,y),m!==null)return pa(m,o,y),ms(m,u,y),!0}return!1}function Zt(o,u,m,y){if(y={lane:2,revertLane:bt(),gesture:null,action:y,hasEagerState:!1,eagerState:null,next:null},Xt(o)){if(u)throw Error(r(479))}else u=fs(o,m,y,2),u!==null&&pa(u,o,2)}function Xt(o){var u=o.alternate;return o===Dn||u!==null&&u===Dn}function ou(o,u){xv=jT=!0;var m=o.pending;m===null?u.next=u:(u.next=m.next,m.next=u),o.pending=u}function ms(o,u,m){if((m&4194048)!==0){var y=u.lanes;y&=o.pendingLanes,m|=y,u.lanes=m,te(o,m)}}function xr(o,u,m,y){u=o.memoizedState,m=m(y,u),m=m==null?u:Bp({},u,m),o.memoizedState=m,o.lanes===0&&(o.updateQueue.baseState=m)}function Ya(o,u,m,y,C,F,re){return o=o.stateNode,typeof o.shouldComponentUpdate=="function"?o.shouldComponentUpdate(y,F,re):u.prototype&&u.prototype.isPureReactComponent?!Wn(m,y)||!Wn(C,F):!0}function lu(o,u,m,y){o=u.state,typeof u.componentWillReceiveProps=="function"&&u.componentWillReceiveProps(m,y),typeof u.UNSAFE_componentWillReceiveProps=="function"&&u.UNSAFE_componentWillReceiveProps(m,y),u.state!==o&&ZR.enqueueReplaceState(u,u.state,null)}function Tr(o,u){var m=u;if("ref"in u){m={};for(var y in u)y!=="ref"&&(m[y]=u[y])}if(o=o.defaultProps){m===u&&(m=Bp({},m));for(var C in o)m[C]===void 0&&(m[C]=o[C])}return m}function ha(o,u){try{var m=o.onUncaughtError;m(u.value,{componentStack:u.stack})}catch(y){setTimeout(function(){throw y})}}function El(o,u,m){try{var y=o.onCaughtError;y(m.value,{componentStack:m.stack,errorBoundary:u.tag===1?u.stateNode:null})}catch(C){setTimeout(function(){throw C})}}function Hs(o,u,m){return m=$r(m),m.tag=3,m.payload={element:null},m.callback=function(){ha(o,u)},m}function Co(o){return o=$r(o),o.tag=3,o}function wl(o,u,m,y){var C=m.type.getDerivedStateFromError;if(typeof C=="function"){var F=y.value;o.payload=function(){return C(F)},o.callback=function(){El(u,m,y)}}var re=m.stateNode;re!==null&&typeof re.componentDidCatch=="function"&&(o.callback=function(){El(u,m,y),typeof C!="function"&&(Vd===null?Vd=new Set([this]):Vd.add(this));var Re=y.stack;this.componentDidCatch(y.value,{componentStack:Re!==null?Re:""})})}function Ta(o,u,m,y,C){if(m.flags|=32768,y!==null&&typeof y=="object"&&typeof y.then=="function"){if(u=m.alternate,u!==null&&fn(u,m,C,!0),m=ka.current,m!==null){switch(m.tag){case 31:case 13:case 19:return vs===null?wd():m.alternate===null&&pr===0&&(pr=3),m.flags&=-257,m.flags|=65536,m.lanes=C,y===GT?m.flags|=16384:(u=m.updateQueue,u===null?m.updateQueue=new Set([y]):u.add(y),Fp(o,y,C)),!1;case 22:return m.flags|=65536,y===GT?m.flags|=16384:(u=m.updateQueue,u===null?(u={transitions:null,markerInstances:null,retryQueue:new Set([y])},m.updateQueue=u):(m=u.retryQueue,m===null?u.retryQueue=new Set([y]):m.add(y)),Fp(o,y,C)),!1}throw Error(r(435,m.tag))}return Fp(o,y,C),wd(),!1}if(Xn)return u=ka.current,u!==null?((u.flags&65536)===0&&(u.flags|=256),u.flags|=65536,u.lanes=C,y!==GR&&(o=Error(r(422),{cause:y}),Qt(Et(o,m)))):(y!==GR&&(u=Error(r(423),{cause:y}),Qt(Et(u,m))),o=o.current.alternate,o.flags|=65536,C&=-C,o.lanes|=C,y=Et(y,m),C=Hs(o.stateNode,y,C),bo(o,C),pr!==4&&(pr=2)),!1;var F=Error(r(520),{cause:y});if(F=Et(F,m),$S===null?$S=[F]:$S.push(F),pr!==4&&(pr=2),u===null)return!0;y=Et(y,m),m=u;do{switch(m.tag){case 3:return m.flags|=65536,o=C&-C,m.lanes|=o,o=Hs(m.stateNode,y,o),bo(m,o),!1;case 1:if(u=m.type,F=m.stateNode,(m.flags&128)===0&&(typeof u.getDerivedStateFromError=="function"||F!==null&&typeof F.componentDidCatch=="function"&&(Vd===null||!Vd.has(F))))return m.flags|=65536,C&=-C,m.lanes|=C,C=Co(C),wl(C,o,m,y),bo(m,C),!1;break;case 22:if(m.memoizedState!==null)return m.flags|=65536,!1}m=m.return}while(m!==null);return!1}function oi(o,u,m,y){u.child=o===null?QF(u,null,m,y):hm(u,o.child,m,y)}function Ro(o,u,m,y,C){m=m.render;var F=u.ref;if("ref"in y){var re={};for(var Re in y)Re!=="ref"&&(re[Re]=y[Re])}else re=y;return ge(u),y=ri(o,u,m,re,F,C),Re=Pt(),o!==null&&!Br?(Oi(o,u,C),Io(o,u,C)):(Xn&&Re&&Mt(u),u.flags|=1,oi(o,u,y,C),u.child)}function xl(o,u,m,y,C){if(o===null){var F=m.type;return typeof F=="function"&&!Pp(F)&&F.defaultProps===void 0&&m.compare===null?(u.tag=15,u.type=F,Ma(o,u,F,y,C)):(o=Td(m.type,null,y,u,u.mode,C),o.ref=u.ref,o.return=u,u.child=o)}if(F=o.child,!ap(o,C)){var re=F.memoizedProps;if(m=m.compare,m=m!==null?m:Wn,m(re,y)&&o.ref===u.ref)return Io(o,u,C)}return u.flags|=1,o=Lo(F,y),o.ref=u.ref,o.return=u,u.child=o}function Ma(o,u,m,y,C){if(o!==null){var F=o.memoizedProps;if(Wn(F,y)&&o.ref===u.ref)if(Br=!1,u.pendingProps=y=F,ap(o,C))(o.flags&131072)!==0&&(Br=!0);else return u.lanes=o.lanes,Io(o,u,C)}return me(o,u,m,y,C)}function Aa(o,u,m,y){var C=y.children,F=o!==null?o.memoizedState:null;if(o===null&&u.stateNode===null&&(u.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),y.mode==="hidden"){if((u.flags&128)!==0){if(F=F!==null?F.baseLanes|m:m,o!==null){for(y=u.child=o.child,C=0;y!==null;)C=C|y.lanes|y.childLanes,y=y.sibling;y=C&~F}else y=0,u.child=null;return uu(o,u,F,m,y)}if((m&536870912)!==0)u.memoizedState={baseLanes:0,cachePool:null},o!==null&&Yt(u,F!==null?F.cachePool:null),F!==null?Fe(u,F):Ye(),Bt(u);else return y=u.lanes=536870912,uu(o,u,F!==null?F.baseLanes|m:m,m,y)}else F!==null?(Yt(u,F.cachePool),Fe(u,F),wt(),u.memoizedState=null):(o!==null&&Yt(u,null),Ye(),wt());return oi(o,u,C,m),u.child}function Vs(o,u){return o!==null&&o.tag===22||u.stateNode!==null||(u.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),u.sibling}function uu(o,u,m,y,C){var F=ft();return F=F===null?null:{parent:Xs?or._currentValue:or._currentValue2,pool:F},u.memoizedState={baseLanes:m,cachePool:F},o!==null&&Yt(u,null),Ye(),Bt(u),o!==null&&fn(o,u,y,!0),u.childLanes=C,null}function Tl(o,u){return u=dd({mode:u.mode,children:u.children},o.mode),u.ref=o.ref,o.child=u,u.return=o,u}function rc(o,u,m){return hm(u,o.child,null,m),o=Tl(u,u.pendingProps),o.flags|=2,Nt(u),u.memoizedState=null,o}function tf(o,u,m){var y=u.pendingProps,C=(u.flags&128)!==0;if(u.flags&=-129,o===null){if(Xn){if(y.mode==="hidden")return o=Tl(u,y),u.lanes=536870912,o.memoizedState={baseLanes:0,cachePool:null},Vs(null,o);if(It(u),(o=nr)?(o=A(o,Ol),o!==null&&(u.memoizedState={dehydrated:o,treeContext:Fd!==null?{id:mc,overflow:_c}:null,retryLane:536870912,hydrationErrors:null},m=Vg(o),m.return=u,u.child=m,ma=u,nr=null)):o=null,o===null)throw pn(u);return u.lanes=536870912,null}return Tl(u,y)}var F=o.memoizedState;if(F!==null){var re=F.dehydrated;if(It(u),C)if(u.flags&256)u.flags&=-257,u=rc(o,u,m);else if(u.memoizedState!==null)u.child=o.child,u.flags|=128,u=null;else throw Error(r(558));else if(Br||fn(o,u,m,!1),C=(m&o.childLanes)!==0,Br||C){if(qd.current===null){if(y=Wi,y!==null&&(re=j(y,m),re!==0&&re!==F.retryLane))throw F.retryLane=re,hi(o,re),pa(y,o,re),$R;wd()}u=rc(o,u,m)}else o=F.treeContext,Cr&&(nr=BS(re),ma=u,Xn=!0,Ud=null,Ol=!1,o!==null&&et(u,o)),u=Tl(u,y),u.flags|=134221824;return u}return o=Lo(o.child,{mode:y.mode,children:y.children}),o.ref=u.ref,u.child=o,o.return=u,o}function Gs(o,u){var m=u.ref;if(m===null)o!==null&&o.ref!==null&&(u.flags|=4194816);else{if(typeof m!="function"&&typeof m!="object")throw Error(r(284));(o===null||o.ref!==m)&&(u.flags|=4194816)}}function me(o,u,m,y,C){return ge(u),m=ri(o,u,m,y,void 0,C),y=Pt(),o!==null&&!Br?(Oi(o,u,C),Io(o,u,C)):(Xn&&y&&Mt(u),u.flags|=1,oi(o,u,m,C),u.child)}function pe(o,u,m,y,C,F){return ge(u),u.updateQueue=null,m=On(u,y,m,C),Hn(o),y=Pt(),o!==null&&!Br?(Oi(o,u,F),Io(o,u,F)):(Xn&&y&&Mt(u),u.flags|=1,oi(o,u,m,F),u.child)}function cd(o,u,m,y,C){if(ge(u),u.stateNode===null){var F=xe,re=m.contextType;typeof re=="object"&&re!==null&&(F=L(re)),F=new m(y,F),u.memoizedState=F.state!==null&&F.state!==void 0?F.state:null,F.updater=ZR,u.stateNode=F,F._reactInternals=u,F=u.stateNode,F.props=y,F.state=u.memoizedState,F.refs={},Us(u),re=m.contextType,F.context=typeof re=="object"&&re!==null?L(re):xe,F.state=u.memoizedState,re=m.getDerivedStateFromProps,typeof re=="function"&&(xr(u,m,re,y),F.state=u.memoizedState),typeof m.getDerivedStateFromProps=="function"||typeof F.getSnapshotBeforeUpdate=="function"||typeof F.UNSAFE_componentWillMount!="function"&&typeof F.componentWillMount!="function"||(re=F.state,typeof F.componentWillMount=="function"&&F.componentWillMount(),typeof F.UNSAFE_componentWillMount=="function"&&F.UNSAFE_componentWillMount(),re!==F.state&&ZR.enqueueReplaceState(F,F.state,null),ps(u,y,F,C),hs(),F.state=u.memoizedState),typeof F.componentDidMount=="function"&&(u.flags|=4194308),y=!0}else if(o===null){F=u.stateNode;var Re=u.memoizedProps,$e=Tr(m,Re);F.props=$e;var pt=F.context,St=m.contextType;re=xe,typeof St=="object"&&St!==null&&(re=L(St));var Ot=m.getDerivedStateFromProps;St=typeof Ot=="function"||typeof F.getSnapshotBeforeUpdate=="function",Re=u.pendingProps!==Re,St||typeof F.UNSAFE_componentWillReceiveProps!="function"&&typeof F.componentWillReceiveProps!="function"||(Re||pt!==re)&&lu(u,F,y,re),zd=!1;var rn=u.memoizedState;F.state=rn,ps(u,y,F,C),hs(),pt=u.memoizedState,Re||rn!==pt||zd?(typeof Ot=="function"&&(xr(u,m,Ot,y),pt=u.memoizedState),($e=zd||Ya(u,m,$e,y,rn,pt,re))?(St||typeof F.UNSAFE_componentWillMount!="function"&&typeof F.componentWillMount!="function"||(typeof F.componentWillMount=="function"&&F.componentWillMount(),typeof F.UNSAFE_componentWillMount=="function"&&F.UNSAFE_componentWillMount()),typeof F.componentDidMount=="function"&&(u.flags|=4194308)):(typeof F.componentDidMount=="function"&&(u.flags|=4194308),u.memoizedProps=y,u.memoizedState=pt),F.props=y,F.state=pt,F.context=re,y=$e):(typeof F.componentDidMount=="function"&&(u.flags|=4194308),y=!1)}else{F=u.stateNode,Xa(o,u),re=u.memoizedProps,St=Tr(m,re),F.props=St,Ot=u.pendingProps,rn=F.context,pt=m.contextType,$e=xe,typeof pt=="object"&&pt!==null&&($e=L(pt)),Re=m.getDerivedStateFromProps,(pt=typeof Re=="function"||typeof F.getSnapshotBeforeUpdate=="function")||typeof F.UNSAFE_componentWillReceiveProps!="function"&&typeof F.componentWillReceiveProps!="function"||(re!==Ot||rn!==$e)&&lu(u,F,y,$e),zd=!1,rn=u.memoizedState,F.state=rn,ps(u,y,F,C),hs();var Zn=u.memoizedState;re!==Ot||rn!==Zn||zd||o!==null&&o.dependencies!==null&&kt(o.dependencies)?(typeof Re=="function"&&(xr(u,m,Re,y),Zn=u.memoizedState),(St=zd||Ya(u,m,St,y,rn,Zn,$e)||o!==null&&o.dependencies!==null&&kt(o.dependencies))?(pt||typeof F.UNSAFE_componentWillUpdate!="function"&&typeof F.componentWillUpdate!="function"||(typeof F.componentWillUpdate=="function"&&F.componentWillUpdate(y,Zn,$e),typeof F.UNSAFE_componentWillUpdate=="function"&&F.UNSAFE_componentWillUpdate(y,Zn,$e)),typeof F.componentDidUpdate=="function"&&(u.flags|=4),typeof F.getSnapshotBeforeUpdate=="function"&&(u.flags|=1024)):(typeof F.componentDidUpdate!="function"||re===o.memoizedProps&&rn===o.memoizedState||(u.flags|=4),typeof F.getSnapshotBeforeUpdate!="function"||re===o.memoizedProps&&rn===o.memoizedState||(u.flags|=1024),u.memoizedProps=y,u.memoizedState=Zn),F.props=y,F.state=Zn,F.context=$e,y=St):(typeof F.componentDidUpdate!="function"||re===o.memoizedProps&&rn===o.memoizedState||(u.flags|=4),typeof F.getSnapshotBeforeUpdate!="function"||re===o.memoizedProps&&rn===o.memoizedState||(u.flags|=1024),y=!1)}return F=y,Gs(o,u),y=(u.flags&128)!==0,F||y?(F=u.stateNode,m=y&&typeof m.getDerivedStateFromError!="function"?null:F.render(),u.flags|=1,o!==null&&y?(u.child=hm(u,o.child,null,C),u.child=hm(u,null,m,C)):oi(o,u,m,C),u.memoizedState=F.state,o=u.child):o=Io(o,u,C),o}function fd(o,u,m,y){return dt(),u.flags|=256,oi(o,u,m,y),u.child}function ce(o){return{baseLanes:o,cachePool:$t()}}function ue(o,u,m){return o=o!==null?o.childLanes&~m:0,u&&(o|=qo),o}function G_(o,u,m){var y=u.pendingProps,C=!1,F=(u.flags&128)!==0,re;if((re=F)||(re=o!==null&&o.memoizedState===null?!1:(Oa.current&2)!==0),re&&(C=!0,u.flags&=-129),re=(u.flags&32)!==0,u.flags&=-33,o===null){if(Xn){if(C?He(u):wt(),(o=nr)?(o=P(o,Ol),o!==null&&(u.memoizedState={dehydrated:o,treeContext:Fd!==null?{id:mc,overflow:_c}:null,retryLane:536870912,hydrationErrors:null},m=Vg(o),m.return=u,u.child=m,ma=u,nr=null)):o=null,o===null)throw pn(u);return om(o)?u.lanes=32:u.lanes=536870912,null}return F=y.children,y=y.fallback,C?(wt(),C=u.mode,F=dd({mode:"hidden",children:F},C),y=cu(y,C,m,null),F.return=u,y.return=u,F.sibling=y,u.child=F,y=u.child,y.memoizedState=ce(m),y.childLanes=ue(o,re,m),u.memoizedState=JR,Vs(null,y)):(He(u),np(u,F))}var Re=o.memoizedState;if(Re!==null){var $e=Re.dehydrated;if($e!==null)return yb(o,u,F,re,y,$e,Re,m)}return C?(wt(),C=y.fallback,F=u.mode,Re=o.child,$e=Re.sibling,y=Lo(Re,{mode:"hidden",children:y.children}),y.subtreeFlags=Re.subtreeFlags&1206910976,$e!==null?C=Lo($e,C):(C=cu(C,F,m,null),C.flags|=2),C.return=u,y.return=u,y.sibling=C,u.child=y,Vs(null,y),y=u.child,C=o.child.memoizedState,C===null?C=ce(m):(F=C.cachePool,F!==null?(Re=Xs?or._currentValue:or._currentValue2,F=F.parent!==Re?{parent:Re,pool:Re}:F):F=$t(),C={baseLanes:C.baseLanes|m,cachePool:F}),y.memoizedState=C,y.childLanes=ue(o,re,m),u.memoizedState=JR,Vs(o.child,y)):(He(u),m=o.child,o=m.sibling,m=Lo(m,{mode:"visible",children:y.children}),m.return=u,m.sibling=null,o!==null&&(re=u.deletions,re===null?(u.deletions=[o],u.flags|=16):re.push(o)),u.child=m,u.memoizedState=null,m)}function np(o,u){return u=dd({mode:"visible",children:u},o.mode),u.return=o,o.child=u}function dd(o,u){return o=t(22,o,null,u),o.lanes=0,o}function hd(o,u,m){return hm(u,o.child,null,m),o=np(u,u.pendingProps.children),o.flags|=2,u.memoizedState=null,o}function yb(o,u,m,y,C,F,re,Re){if(m)return u.flags&256?(He(u),u.flags&=-257,hd(o,u,Re)):u.memoizedState!==null?(wt(),u.child=o.child,u.flags|=128,null):(wt(),F=C.fallback,re=u.mode,C=dd({mode:"visible",children:C.children},re),F=cu(F,re,Re,null),F.flags|=2,C.return=u,F.return=u,C.sibling=F,u.child=C,hm(u,o.child,null,Re),C=u.child,C.memoizedState=ce(Re),C.childLanes=ue(o,y,Re),u.memoizedState=JR,Vs(null,C));if(He(u),om(F))return y=OS(F).digest,y!==""&&(C=Error(r(419)),C.stack="",C.digest=y,Qt({value:C,source:null,stack:null})),hd(o,u,Re);if(Br||fn(o,u,Re,!1),y=(Re&o.childLanes)!==0,Br||y){if(qd.current!==null)return hd(o,u,Re);if(y=Wi,y!==null&&(C=j(y,Re),C!==0&&C!==re.retryLane))throw re.retryLane=C,hi(o,C),pa(y,o,C),$R;return sm(F)||wd(),hd(o,u,Re)}return sm(F)?(u.flags|=192,u.child=o.child,null):(o=re.treeContext,Cr&&(nr=HS(F),ma=u,Xn=!0,Ud=null,Ol=!1,o!==null&&et(u,o)),u=np(u,C.children),u.flags|=134221824,u)}function W_(o,u,m){o.lanes|=u;var y=o.alternate;y!==null&&(y.lanes|=u),en(o.return,u,m)}function j_(o){for(var u=null;o!==null;){var m=o.alternate;m!==null&&Sn(m)===null&&(u=o),o=o.sibling}return u}function pd(o,u,m,y,C,F){var re=o.memoizedState;re===null?o.memoizedState={isBackwards:u,rendering:null,renderingStartTime:0,last:y,tail:m,tailMode:C,treeForkCount:F}:(re.isBackwards=u,re.rendering=null,re.renderingStartTime=0,re.last=y,re.tail=m,re.tailMode=C,re.treeForkCount=F)}function ip(o){var u=o.child;for(o.child=null;u!==null;){var m=u.sibling;u.sibling=o.child,o.child=u,u=m}}function rp(o,u,m){var y=u.pendingProps,C=y.revealOrder,F=y.tail;y=y.children;var re=Oa.current;if(u.flags&128)return Kt(u,re),null;var Re=(re&2)!==0;if(Re?(re=re&1|2,u.flags|=128):re&=1,Kt(u,re),C==="backwards"&&o!==null?(ip(o),oi(o,u,y,m),ip(o)):oi(o,u,y,m),y=Xn?GS:0,!Re&&o!==null&&(o.flags&128)!==0)e:for(o=u.child;o!==null;){if(o.tag===13)o.memoizedState!==null&&W_(o,m,u);else if(o.tag===19)W_(o,m,u);else if(o.child!==null){o.child.return=o,o=o.child;continue}if(o===u)break e;for(;o.sibling===null;){if(o.return===null||o.return===u)break e;o=o.return}o.sibling.return=o.return,o=o.sibling}switch(C){case"backwards":m=j_(u.child),m===null?(C=u.child,u.child=null):(C=m.sibling,m.sibling=null,ip(u)),pd(u,!0,C,null,F,y);break;case"unstable_legacy-backwards":for(m=null,C=u.child,u.child=null;C!==null;){if(o=C.alternate,o!==null&&Sn(o)===null){u.child=C;break}o=C.sibling,C.sibling=m,m=C,C=o}pd(u,!0,m,null,F,y);break;case"together":pd(u,!1,null,null,void 0,y);break;case"independent":u.memoizedState=null;break;default:m=j_(u.child),m===null?(C=u.child,u.child=null):(C=m.sibling,m.sibling=null),pd(u,!1,C,m,F,y)}return u.child}function Q_(o,u,m){var y=u.pendingProps;return Ht(u,u.type,y.value),oi(o,u,y.children,m),u.child}function Io(o,u,m){if(o!==null&&(u.dependencies=o.dependencies),Hd|=u.lanes,(m&u.childLanes)===0)if(o!==null){if(fn(o,u,m,!1),(m&u.childLanes)===0)return null}else return null;if(o!==null&&u.child!==o.child)throw Error(r(153));if(u.child!==null){for(o=u.child,m=Lo(o,o.pendingProps),u.child=m,m.return=u;o.sibling!==null;)o=o.sibling,m=m.sibling=Lo(o,o.pendingProps),m.return=u;m.sibling=null}return u.child}function ap(o,u){return(o.lanes&u)!==0?!0:(o=o.dependencies,!!(o!==null&&kt(o)))}function bb(o,u,m){switch(u.tag){case 3:yt(u,u.stateNode.containerInfo),Ht(u,or,o.memoizedState.cache),dt();break;case 27:case 5:Lt(u);break;case 4:yt(u,u.stateNode.containerInfo);break;case 10:Ht(u,u.type,u.memoizedProps.value);break;case 31:if(u.memoizedState!==null)return u.flags|=128,It(u),null;break;case 13:var y=u.memoizedState;if(y!==null){if(y.dehydrated!==null)return He(u),u.flags|=128,null;y=fn(o,u,m,!1);var C=u.child.childLanes;return y||(m&C)!==0?G_(o,u,m):(He(u),o=Io(o,u,m),o!==null?o.sibling:null)}He(u);break;case 19:if(u.flags&128)return rp(o,u,m);if(C=(o.flags&128)!==0,y=(m&u.childLanes)!==0,y||(fn(o,u,m,!1),y=(m&u.childLanes)!==0),C){if(y)return rp(o,u,m);u.flags|=128}if(C=u.memoizedState,C!==null&&(C.rendering=null,C.tail=null,C.lastEffect=null),Kt(u,Oa.current),y)break;return null;case 22:return u.lanes=0,Aa(o,u,m,u.pendingProps);case 24:Ht(u,or,o.memoizedState.cache)}return Io(o,u,m)}function X_(o,u,m){if(o!==null)if(o.memoizedProps!==u.pendingProps)Br=!0;else{if(!ap(o,m)&&(u.flags&128)===0)return Br=!1,bb(o,u,m);Br=(o.flags&131072)!==0}else Br=!1,Xn&&(u.flags&1048576)!==0&&zt(u,GS,u.index);switch(u.lanes=0,u.tag){case 16:e:{var y=u.pendingProps;if(o=d(u.elementType),u.type=o,typeof o=="function")Pp(o)?(y=Tr(o,y),u.tag=1,u=cd(null,u,o,y,m)):(u.tag=0,u=me(null,u,o,y,m));else{if(o!=null){var C=o.$$typeof;if(C===Vp){u.tag=11,u=Ro(null,u,o,y,m);break e}else if(C===jp){u.tag=14,u=xl(null,u,o,y,m);break e}else if(C===No){u.tag=10,u.type=o,u=Q_(null,u,m);break e}}throw u=h(o)||o,Error(r(306,u,""))}}return u;case 0:return me(o,u,u.type,u.pendingProps,m);case 1:return y=u.type,C=Tr(y,u.pendingProps),cd(o,u,y,C,m);case 3:e:{if(yt(u,u.stateNode.containerInfo),o===null)throw Error(r(387));var F=u.pendingProps;C=u.memoizedState,y=C.element,Xa(o,u),ps(u,F,null,m);var re=u.memoizedState;if(F=re.cache,Ht(u,or,F),F!==C.cache&&Le(u,[or],m,!0),hs(),F=re.element,Cr&&C.isDehydrated)if(C={element:F,isDehydrated:!1,cache:re.cache},u.updateQueue.baseState=C,u.memoizedState=C,u.flags&256){u=fd(o,u,F,m);break e}else if(F!==y){y=Et(Error(r(424)),u),Qt(y),u=fd(o,u,F,m);break e}else for(Cr&&(nr=qS(u.stateNode.containerInfo),ma=u,Xn=!0,Ud=null,Ol=!0),m=QF(u,null,F,m),u.child=m;m;)m.flags=m.flags&-3|134221824,m=m.sibling;else{if(dt(),F===y){u=Io(o,u,m);break e}oi(o,u,F,m)}u=u.child}return u;case 26:if(Dt)return Gs(o,u),o===null?(m=ea(u.type,null,u.pendingProps,null))?u.memoizedState=m:Xn||(u.stateNode=T(u.type,u.pendingProps,Pd.current,u)):u.memoizedState=ea(u.type,o.memoizedProps,u.pendingProps,o.memoizedState),null;case 27:if(Ee)return Lt(u),o===null&&Ee&&Xn&&(y=u.stateNode=Ue(u.type,u.pendingProps,Pd.current,Na.current,!1),ma=u,Ol=!0,nr=pv(u.type,y,nr)),oi(o,u,u.pendingProps.children,m),Gs(o,u),o===null&&(u.flags|=4194304),u.child;case 5:return o===null&&Xn&&(hn(u.type,u.pendingProps,Na.current),(C=y=nr)&&(y=Od(y,u.type,u.pendingProps,Ol),y!==null?(u.stateNode=y,ma=u,nr=zS(y),Ol=!1,C=!0):C=!1),C||pn(u)),Lt(u),C=u.type,F=u.pendingProps,re=o!==null?o.memoizedProps:null,y=F.children,Cd(C,F)?y=null:re!==null&&Cd(C,re)&&(u.flags|=32),u.memoizedState!==null&&(C=ri(o,u,Xi,null,null,m),Xs?Oo._currentValue=C:Oo._currentValue2=C),Gs(o,u),oi(o,u,y,m),u.child;case 6:return o===null&&Xn&&(un(u.pendingProps,Na.current),(o=m=nr)&&(m=mv(m,u.pendingProps,Ol),m!==null?(u.stateNode=m,ma=u,nr=null,o=!0):o=!1),o||pn(u)),null;case 13:return G_(o,u,m);case 4:return yt(u,u.stateNode.containerInfo),y=u.pendingProps,o===null?u.child=hm(u,null,y,m):oi(o,u,y,m),u.child;case 11:return Ro(o,u,u.type,u.pendingProps,m);case 7:return y=u.pendingProps,Gs(o,u),oi(o,u,y,m),u.child;case 8:return oi(o,u,u.pendingProps.children,m),u.child;case 12:return oi(o,u,u.pendingProps.children,m),u.child;case 10:return Q_(o,u,m);case 9:return C=u.type._context,y=u.pendingProps.children,ge(u),C=L(C),y=y(C),u.flags|=1,oi(o,u,y,m),u.child;case 14:return xl(o,u,u.type,u.pendingProps,m);case 15:return Ma(o,u,u.type,u.pendingProps,m);case 19:return rp(o,u,m);case 31:return tf(o,u,m);case 22:return Aa(o,u,m,u.pendingProps);case 24:return ge(u),y=L(or),o===null?(C=ft(),C===null&&(C=Wi,F=ee(),C.pooledCache=F,F.refCount++,F!==null&&(C.pooledCacheLanes|=m),C=F),u.memoizedState={parent:y,cache:C},Us(u),Ht(u,or,C)):((o.lanes&m)!==0&&(Xa(o,u),ps(u,null,null,m),hs()),C=o.memoizedState,F=u.memoizedState,C.parent!==y?(C={parent:y,cache:y},u.memoizedState=C,u.lanes===0&&(u.memoizedState=u.updateQueue.baseState=C),Ht(u,or,y)):(y=F.cache,Ht(u,or,y),y!==C.cache&&Le(u,[or],m,!0))),oi(o,u,u.pendingProps.children,m),u.child;case 30:return u.stateNode===null&&(u.stateNode={autoName:null,paired:null,clones:null,ref:null}),y=u.pendingProps,y.name!=null&&y.name!=="auto"?u.flags|=o===null?18882560:18874368:Xn&&Mt(u),o!==null&&o.memoizedProps.name!==y.name?u.flags|=4194816:Gs(o,u),oi(o,u,y.children,m),u.child;case 29:throw u.pendingProps}throw Error(r(156,u.tag))}function _s(o){o.flags|=4}function md(o){Ys&&(o.flags|=8)}function Y_(o,u){if(o!==null&&o.child===u.child)return!1;if((u.flags&16)!==0)return!0;for(o=u.child;o!==null;){if((o.flags&8218)!==0||(o.subtreeFlags&8218)!==0)return!0;o=o.sibling}return!1}function sp(o,u,m,y){if(Gi)for(m=u.child;m!==null;){if(m.tag===5||m.tag===6)Yp(o,m.stateNode);else if(!(m.tag===4||Ee&&m.tag===27)&&m.child!==null){m.child.return=m,m=m.child;continue}if(m===u)break;for(;m.sibling===null;){if(m.return===null||m.return===u)return;m=m.return}m.sibling.return=m.return,m=m.sibling}else if(Ys)for(var C=u.child;C!==null;){if(C.tag===5){var F=C.stateNode;m&&y&&(F=rm(F,C.type,C.memoizedProps)),Yp(o,F)}else if(C.tag===6)F=C.stateNode,m&&y&&(F=am(F,C.memoizedProps)),Yp(o,F);else if(C.tag!==4){if(C.tag===22&&C.memoizedState!==null)F=C.child,F!==null&&(F.return=C),sp(o,C,!0,!0);else if(C.child!==null){C.child.return=C,C=C.child;continue}}if(C===u)break;for(;C.sibling===null;){if(C.return===null||C.return===u)return;C=C.return}C.sibling.return=C.return,C=C.sibling}}function K_(o,u,m,y){var C=!1;if(Ys)for(var F=u.child;F!==null;){if(F.tag===5){var re=F.stateNode;m&&y&&(re=rm(re,F.type,F.memoizedProps)),kd(o,re)}else if(F.tag===6)re=F.stateNode,m&&y&&(re=am(re,F.memoizedProps)),kd(o,re);else if(F.tag!==4){if(F.tag===22&&F.memoizedState!==null)C=F.child,C!==null&&(C.return=F),K_(o,F,!0,!0),C=!0;else if(F.child!==null){F.child.return=F,F=F.child;continue}}if(F===u)break;for(;F.sibling===null;){if(F.return===null||F.return===u)return C;F=F.return}F.sibling.return=F.return,F=F.sibling}return C}function Z_(o,u){if(Ys&&Y_(o,u)){o=u.stateNode;var m=o.containerInfo,y=Nd();K_(y,u,!1,!1),o.pendingChildren=y,_s(u),dv(m,y)}}function op(o,u,m,y){if(Gi)o.memoizedProps!==y&&_s(u);else if(Ys){var C=o.stateNode,F=o.memoizedProps;if((o=Y_(o,u))||F!==y){var re=Na.current;F=fv(C,m,F,y,!o,null),F===C?u.stateNode=C:(md(u),ev(F,m,y,re)&&_s(u),u.stateNode=F,o&&sp(F,u,!1,!1))}else u.stateNode=C}}function lp(o,u,m,y,C){if((o.mode&32)!==0&&(m===null?rS(u,y):aS(u,m,y))){if(o.flags|=16777216,(C&335544128)===C||Kp(u,y))if(nv(o.stateNode,u,y))o.flags|=8192;else if(Ng())o.flags|=8192;else throw dm=GT,XR}else o.flags&=-16777217}function $_(o,u){if(V(u)){if(o.flags|=16777216,!$(u))if(Ng())o.flags|=8192;else throw dm=GT,XR}else o.flags&=-16777217}function _d(o,u){u!==null&&(o.flags|=4),o.flags&16384&&(u=o.tag!==22?q():536870912,o.lanes|=u,Av|=u)}function nf(o,u){if(!Xn)switch(o.tailMode){case"visible":break;case"collapsed":for(var m=o.tail,y=null;m!==null;)m.alternate!==null&&(y=m),m=m.sibling;y===null?u||o.tail===null?o.tail=null:o.tail.sibling=null:y.sibling=null;break;default:for(u=o.tail,m=null;u!==null;)u.alternate!==null&&(m=u),u=u.sibling;m===null?o.tail=null:m.sibling=null}}function Mi(o){var u=o.alternate!==null&&o.alternate.child===o.child,m=0,y=0;if(u)for(var C=o.child;C!==null;)m|=C.lanes|C.childLanes,y|=C.subtreeFlags&1206910976,y|=C.flags&1206910976,C.return=o,C=C.sibling;else for(C=o.child;C!==null;)m|=C.lanes|C.childLanes,y|=C.subtreeFlags,y|=C.flags,C.return=o,C=C.sibling;return o.subtreeFlags|=y,o.childLanes=m,u}function Sb(o,u,m){var y=u.pendingProps;switch(Xe(u),u.tag){case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Mi(u),null;case 1:return Mi(u),null;case 3:return m=u.stateNode,y=null,o!==null&&(y=o.memoizedState.cache),u.memoizedState.cache!==y&&(u.flags|=2048),qt(or),Wt(),m.pendingContext&&(m.context=m.pendingContext,m.pendingContext=null),(o===null||o.child===null)&&(Pe(u)?_s(u):o===null||o.memoizedState.isDehydrated&&(u.flags&256)===0||(u.flags|=1024,vt())),Z_(o,u),Mi(u),null;case 26:if(Dt){var C=u.type,F=u.memoizedState;return o===null?(_s(u),F!==null?(Mi(u),$_(u,F)):(Mi(u),lp(u,C,null,y,m))):F?F!==o.memoizedState?(_s(u),Mi(u),$_(u,F)):(Mi(u),u.flags&=-16777217):(F=o.memoizedProps,Gi?F!==y&&_s(u):op(o,u,C,y),Mi(u),lp(u,C,F,y,m)),null}case 27:if(Ee){if(sn(u),m=Pd.current,C=u.type,o!==null&&u.stateNode!=null)Gi?o.memoizedProps!==y&&_s(u):op(o,u,C,y);else{if(!y){if(u.stateNode===null)throw Error(r(166));return Mi(u),u.subtreeFlags&=-33554433,null}o=Na.current,Pe(u)?lt(u,o):(o=Ue(C,y,m,o,!0),u.stateNode=o,_s(u))}return Mi(u),u.subtreeFlags&=-33554433,null}case 5:if(sn(u),C=u.type,o!==null&&u.stateNode!=null)op(o,u,C,y);else{if(!y){if(u.stateNode===null)throw Error(r(166));return Mi(u),u.subtreeFlags&=-33554433,null}if(F=Na.current,Pe(u))lt(u,F),Se(u.stateNode,C,y,F)&&(u.flags|=64);else{var re=Kb(C,y,Pd.current,F,u);md(u),sp(re,u,!1,!1),u.stateNode=re,ev(re,C,y,F)&&_s(u)}}return Mi(u),u.subtreeFlags&=-33554433,lp(u,u.type,o===null?null:o.memoizedProps,u.pendingProps,m),null;case 6:if(o&&u.stateNode!=null)m=o.memoizedProps,Gi?m!==y&&_s(u):Ys&&(m!==y?(o=Pd.current,m=Na.current,md(u),u.stateNode=tv(y,o,m,u)):u.stateNode=o.stateNode);else{if(typeof y!="string"&&u.stateNode===null)throw Error(r(166));if(o=Pd.current,m=Na.current,Pe(u)){if(!Cr)throw Error(r(176));if(o=u.stateNode,m=u.memoizedProps,y=null,C=ma,C!==null)switch(C.tag){case 27:case 5:y=C.memoizedProps}J(o,m,u,y)||pn(u,!0)}else md(u),u.stateNode=tv(y,o,m,u)}return Mi(u),null;case 31:if(m=u.memoizedState,o===null||o.memoizedState!==null){if(y=Pe(u),m!==null){if(o===null){if(!y)throw Error(r(318));if(!Cr)throw Error(r(556));if(o=u.memoizedState,o=o!==null?o.dehydrated:null,!o)throw Error(r(557));de(o,u)}else dt(),(u.flags&128)===0&&(u.memoizedState=null),u.flags|=4;Mi(u),o=!1}else m=vt(),o!==null&&o.memoizedState!==null&&(o.memoizedState.hydrationErrors=m),o=!0;if(!o)return u.flags&256?(Nt(u),u):(Nt(u),null);if((u.flags&128)!==0)throw Error(r(558))}return Mi(u),null;case 13:if(y=u.memoizedState,o===null||o.memoizedState!==null&&o.memoizedState.dehydrated!==null){if(C=Pe(u),y!==null&&y.dehydrated!==null){if(o===null){if(!C)throw Error(r(318));if(!Cr)throw Error(r(344));if(C=u.memoizedState,C=C!==null?C.dehydrated:null,!C)throw Error(r(317));Ae(C,u)}else dt(),(u.flags&128)===0&&(u.memoizedState=null),u.flags|=4;Mi(u),C=!1}else C=vt(),o!==null&&o.memoizedState!==null&&(o.memoizedState.hydrationErrors=C),C=!0;if(!C)return u.flags&256?(Nt(u),u):(Nt(u),null)}return Nt(u),(u.flags&128)!==0?(u.lanes=m,u):(m=y!==null,o=o!==null&&o.memoizedState!==null,m&&(y=u.child,C=null,y.alternate!==null&&y.alternate.memoizedState!==null&&y.alternate.memoizedState.cachePool!==null&&(C=y.alternate.memoizedState.cachePool.pool),F=null,y.memoizedState!==null&&y.memoizedState.cachePool!==null&&(F=y.memoizedState.cachePool.pool),F!==C&&(y.flags|=2048)),m!==o&&m&&(u.child.flags|=8192),_d(u,u.updateQueue),Mi(u),null);case 4:return Wt(),Z_(o,u),o===null&&eS(u.stateNode.containerInfo),u.flags|=67108864,Mi(u),null;case 10:return qt(u.type),Mi(u),null;case 19:if(yn(u),y=u.memoizedState,y===null)return Mi(u),null;if(C=(u.flags&128)!==0,F=y.rendering,F===null)if(C)nf(y,!1);else{if(pr!==0||o!==null&&(o.flags&128)!==0)for(o=u.child;o!==null;){if(F=Sn(o),F!==null){for(u.flags|=128,nf(y,!1),o=F.updateQueue,u.updateQueue=o,_d(u,o),u.subtreeFlags=0,o=m,m=u.child;m!==null;)Hg(m,o),m=m.sibling;return Kt(u,Oa.current&1|2),Xn&&jt(u,y.treeForkCount),u.child}o=o.sibling}y.tail!==null&&mi()>JS&&(u.flags|=128,C=!0,nf(y,!1),u.lanes=4194304)}else{if(!C)if(o=Sn(F),o!==null){if(u.flags|=128,C=!0,o=o.updateQueue,u.updateQueue=o,_d(u,o),nf(y,!0),y.tail===null&&y.tailMode!=="collapsed"&&y.tailMode!=="visible"&&!F.alternate&&!Xn)return Mi(u),null}else 2*mi()-y.renderingStartTime>JS&&m!==536870912&&(u.flags|=128,C=!0,nf(y,!1),u.lanes=4194304);y.isBackwards?(F.sibling=u.child,u.child=F):(o=y.last,o!==null?o.sibling=F:u.child=F,y.last=F)}if(y.tail!==null){o=y.tail;e:{for(m=o;m!==null;){if(m.alternate!==null){m=!1;break e}m=m.sibling}m=!0}return y.rendering=o,y.tail=o.sibling,y.renderingStartTime=mi(),o.sibling=null,F=Oa.current,F=C?F&1|2:F&1,y.tailMode==="visible"||y.tailMode==="collapsed"||!m||Xn?Kt(u,F):(m=F,E(ka,u),E(Oa,m),vs===null&&(vs=u)),Xn&&jt(u,y.treeForkCount),o}return Mi(u),null;case 22:case 23:return Nt(u),Be(),y=u.memoizedState!==null,o!==null?o.memoizedState!==null!==y&&(u.flags|=8192):y&&(u.flags|=8192),y?(m&536870912)!==0&&(u.flags&128)===0&&(Mi(u),u.subtreeFlags&6&&(u.flags|=8192)):Mi(u),m=u.updateQueue,m!==null&&_d(u,m.retryQueue),m=null,o!==null&&o.memoizedState!==null&&o.memoizedState.cachePool!==null&&(m=o.memoizedState.cachePool.pool),y=null,u.memoizedState!==null&&u.memoizedState.cachePool!==null&&(y=u.memoizedState.cachePool.pool),y!==m&&(u.flags|=2048),o!==null&&g(fm),null;case 24:return m=null,o!==null&&(m=o.memoizedState.cache),u.memoizedState.cache!==m&&(u.flags|=2048),qt(or),Mi(u),null;case 25:return null;case 30:return u.flags|=33554432,Mi(u),null}throw Error(r(156,u.tag))}function Eb(o,u){switch(Xe(u),u.tag){case 1:return o=u.flags,o&65536?(u.flags=o&-65537|128,u):null;case 3:return qt(or),Wt(),o=u.flags,(o&65536)!==0&&(o&128)===0?(u.flags=o&-65537|128,u):null;case 26:case 27:case 5:return sn(u),null;case 31:if(u.memoizedState!==null){if(Nt(u),u.alternate===null)throw Error(r(340));dt()}return o=u.flags,o&65536?(u.flags=o&-65537|128,u):null;case 13:if(Nt(u),o=u.memoizedState,o!==null&&o.dehydrated!==null){if(u.alternate===null)throw Error(r(340));dt()}return o=u.flags,o&65536?(u.flags=o&-65537|128,u):null;case 19:return yn(u),o=u.flags,o&65536?(u.flags=o&-65537|128,o=u.memoizedState,o!==null&&(o.rendering=null,o.tail=null),u.flags|=4,u):null;case 4:return Wt(),null;case 10:return qt(u.type),null;case 22:case 23:return Nt(u),Be(),o!==null&&g(fm),o=u.flags,o&65536?(u.flags=o&-65537|128,u):null;case 24:return qt(or),null;case 25:return null;default:return null}}function J_(o,u){switch(Xe(u),u.tag){case 3:qt(or),Wt();break;case 26:case 27:case 5:sn(u);break;case 4:Wt();break;case 31:u.memoizedState!==null&&Nt(u);break;case 13:Nt(u);break;case 19:yn(u);break;case 10:qt(u.type);break;case 22:case 23:Nt(u),Be(),o!==null&&g(fm);break;case 24:qt(or)}}function rf(o,u){try{var m=u.updateQueue,y=m!==null?m.lastEffect:null;if(y!==null){var C=y.next;m=C;do{if((m.tag&o)===o){y=void 0;var F=m.create,re=m.inst;y=F(),re.destroy=y}m=m.next}while(m!==C)}}catch(Re){li(u,u.return,Re)}}function Ml(o,u,m){try{var y=u.updateQueue,C=y!==null?y.lastEffect:null;if(C!==null){var F=C.next;y=F;do{if((y.tag&o)===o){var re=y.inst,Re=re.destroy;if(Re!==void 0){re.destroy=void 0,C=u;var $e=m,pt=Re;try{pt()}catch(St){li(C,$e,St)}}}y=y.next}while(y!==F)}}catch(St){li(u,u.return,St)}}function eg(o){var u=o.updateQueue;if(u!==null){var m=o.stateNode;try{ae(u,m)}catch(y){li(o,o.return,y)}}}function tg(o,u,m){m.props=Tr(o.type,o.memoizedProps),m.state=o.memoizedState;try{m.componentWillUnmount()}catch(y){li(o,u,y)}}function Ws(o,u){try{var m=o.ref;if(m!==null){switch(o.tag){case 26:case 27:case 5:var y=cf(o.stateNode);break;case 30:var C=o.stateNode,F=ze(o.memoizedProps,C);(C.ref===null||C.ref.name!==F)&&(C.ref=hf(F)),y=C.ref;break;case 7:o.stateNode===null&&(o.stateNode=cv(o)),y=o.stateNode;break;default:y=o.stateNode}typeof m=="function"?o.refCleanup=m(y):m.current=y}}catch(re){li(o,u,re)}}function Mr(o,u){var m=o.ref,y=o.refCleanup;if(m!==null)if(typeof y=="function")try{y()}catch(C){li(o,u,C)}finally{o.refCleanup=null,o=o.alternate,o!=null&&(o.refCleanup=null)}else if(typeof m=="function")try{m(null)}catch(C){li(o,u,C)}else m.current=null}function ng(){var o=$a;return $a=!1,o}function af(o,u){if((o.tag===5||o.tag===27||o.tag===6)&&o.alternate===null&&u!==null)for(var m=0;m<u.length;m++)Ld(o.stateNode,u[m])}function ig(o){for(var u=o.return;u!==null&&(cp(u)&&Ld(o.stateNode,u.stateNode),!up(u));)u=u.return}function sf(o){for(var u=o.return;u!==null&&(cp(u)&&nm(o.stateNode,u.stateNode),!up(u));)u=u.return}function up(o){return o.tag===5||o.tag===3||(Ee?o.tag===27:!1)}function cp(o){return o&&o.tag===7&&o.stateNode!==null}function fp(o){var u=o.type,m=o.memoizedProps,y=o.stateNode;try{SS(y,u,m,o)}catch(C){li(o,o.return,C)}}function dp(o,u,m){try{ES(o.stateNode,o.type,m,u,o)}catch(y){li(o,o.return,y)}}function rg(o){return o.tag===5||o.tag===3||(Dt?o.tag===26:!1)||(Ee?o.tag===27&&Y(o.type):!1)||o.tag===4}function hp(o){e:for(;;){for(;o.sibling===null;){if(o.return===null||rg(o.return))return null;o=o.return}for(o.sibling.return=o.return,o=o.sibling;o.tag!==5&&o.tag!==6&&o.tag!==18;){if(Ee&&o.tag===27&&Y(o.type)||o.flags&2||o.child===null||o.tag===4)continue e;o.child.return=o,o=o.child}if(!(o.flags&2))return o.stateNode}}function pp(o,u,m,y){var C=o.tag;if(C===5||C===6)C=o.stateNode,u?xS(m,C,u):yS(m,C),af(o,y),$a=!0;else if(C!==4&&(Ee&&C===27&&(af(o,y),y=null,Y(o.type)&&(m=o.stateNode,u=null)),o=o.child,o!==null))for(pp(o,u,m,y),o=o.sibling;o!==null;)pp(o,u,m,y),o=o.sibling}function gd(o,u,m,y){var C=o.tag;if(C===5||C===6)C=o.stateNode,u?wS(m,C,u):vS(m,C),af(o,y),$a=!0;else if(C!==4&&(Ee&&C===27&&(af(o,y),y=null,Y(o.type)&&(m=o.stateNode)),o=o.child,o!==null))for(gd(o,u,m,y),o=o.sibling;o!==null;)gd(o,u,m,y),o=o.sibling}function mp(o,u){if(o.tag===5||Ee&&o.tag===27)af(o,u);else if(o.tag!==4&&(o=o.child,o!==null))for(mp(o,u),o=o.sibling;o!==null;)mp(o,u),o=o.sibling}function ag(o,u,m){o=o.containerInfo;try{im(o,m)}catch(y){li(u,u.return,y)}}function sg(o){var u=o.stateNode,m=o.memoizedProps;try{b(o.type,m,u,o)}catch(y){li(o,o.return,y)}}function og(o){(o.tag===30||(o.subtreeFlags&33554432)!==0)&&(YT=!0)}function lg(){var o=gc;return gc=null,o}function ac(o,u,m,y,C){return $s=0,ug(o.child,u,m,y,C)}function ug(o,u,m,y,C){if(!Gi)return!1;for(var F=!1;o!==null;){if(o.tag===5){var re=o.stateNode;if(y!==null){var Re=$p(re);y.push(Re),Rd(Re)&&(F=!0)}else F||Rd($p(re))&&(F=!0);YT=!0,av(re,$s===0?u:u+"_"+$s,m),$s++}else(o.tag!==22||o.memoizedState===null)&&(o.tag===30&&C||ug(o.child,u,m,y,C)&&(F=!0));o=o.sibling}return F}function js(o,u){if(Gi)for(;o!==null;)o.tag===5?LS(o.stateNode,o.memoizedProps):(o.tag!==22||o.memoizedState===null)&&(o.tag===30&&u||js(o.child,u)),o=o.sibling}function vd(o){if((o.subtreeFlags&18874368)!==0)for(o=o.child;o!==null;){if((o.tag!==22||o.memoizedState===null)&&(vd(o),o.tag===30&&(o.flags&18874368)!==0&&o.stateNode.paired)){var u=o.memoizedProps;if(u.name==null||u.name==="auto")throw Error(r(544));var m=u.name;u=Ve(u.default,u.share),u!=="none"&&(ac(o,m,u,null,!1)||js(o.child,!1))}o=o.sibling}}function _p(o,u){if(o.tag===30){var m=o.stateNode,y=o.memoizedProps,C=ze(y,m),F=Ve(y.default,m.paired?y.share:y.enter);F!=="none"?ac(o,C,F,null,!1)?(vd(o),m.paired||u||lc(o,y.onEnter)):js(o.child,!1):vd(o)}else if((o.subtreeFlags&33554432)!==0)for(o=o.child;o!==null;)_p(o,u),o=o.sibling;else vd(o)}function gp(o){if(Uo!==null&&Uo.size!==0){var u=Uo;if((o.subtreeFlags&18874368)!==0)for(o=o.child;o!==null;){if(o.tag!==22||o.memoizedState===null){if(o.tag===30&&(o.flags&18874368)!==0){var m=o.memoizedProps,y=m.name;if(y!=null&&y!=="auto"){var C=u.get(y);if(C!==void 0){var F=Ve(m.default,m.share);if(F!=="none"&&(ac(o,y,F,null,!1)?(F=o.stateNode,C.paired=F,F.paired=C,lc(o,m.onShare)):js(o.child,!1)),u.delete(y),u.size===0)break}}}gp(o)}o=o.sibling}}}function vp(o){if(o.tag===30){var u=o.memoizedProps,m=ze(u,o.stateNode),y=Uo!==null?Uo.get(m):void 0,C=Ve(u.default,y!==void 0?u.share:u.exit);C!=="none"&&(ac(o,m,C,null,!1)?y!==void 0?(C=o.stateNode,y.paired=C,C.paired=y,Uo.delete(m),lc(o,u.onShare)):lc(o,u.onExit):js(o.child,!1)),Uo!==null&&gp(o)}else if((o.subtreeFlags&33554432)!==0)for(o=o.child;o!==null;)vp(o),o=o.sibling;else Uo!==null&&gp(o)}function cg(o){for(o=o.child;o!==null;){if(o.tag===30){var u=o.memoizedProps,m=ze(u,o.stateNode);u=Ve(u.default,u.update),o.flags&=-5,u!=="none"&&ac(o,m,u,o.memoizedState=[],!1)}else(o.subtreeFlags&33554432)!==0&&cg(o);o=o.sibling}}function yp(o){if((o.subtreeFlags&18874368)!==0)for(o=o.child;o!==null;){if(o.tag!==22||o.memoizedState===null){if(o.tag===30&&(o.flags&18874368)!==0){var u=o.stateNode;u.paired!==null&&(u.paired=null,js(o.child,!1))}yp(o)}o=o.sibling}}function yd(o){if(o.tag===30)o.stateNode.paired=null,js(o.child,!1),yp(o);else if((o.subtreeFlags&33554432)!==0)for(o=o.child;o!==null;)yd(o),o=o.sibling;else yp(o)}function fg(o){for(o=o.child;o!==null;)o.tag===30?js(o.child,!1):(o.subtreeFlags&33554432)!==0&&fg(o),o=o.sibling}function bp(o,u,m,y,C,F,re){if(!Gi)return!1;for(var Re=!1;u!==null;){if(u.tag===5){var $e=u.stateNode;if(F!==null&&$s<F.length){var pt=F[$s],St=$p($e);(Rd(pt)||Rd(St))&&(Re=!0),(o.flags&4)===0&&kS(pt,St)&&(o.flags|=4),Id(pt,St)&&(o.flags|=32)}else o.flags|=32;(o.flags&4)!==0&&av($e,$s===0?m:m+"_"+$s,C),Re&&(o.flags&4)!==0||(gc===null&&(gc=[]),gc.push($e,$s===0?y:y+"_"+$s,u.memoizedProps)),$s++}else(u.tag!==22||u.memoizedState===null)&&(u.tag===30&&re?o.flags|=u.flags&32:bp(o,u.child,m,y,C,F,re)&&(Re=!0));u=u.sibling}return Re}function dg(o,u){for(o=o.child;o!==null;){if(o.tag===30){var m=o.memoizedProps,y=o.stateNode,C=ze(m,y),F=Ve(m.default,m.update);if(u){y=y.clones;var re=y===null?null:y.map(ov)}else re=o.memoizedState,o.memoizedState=null;y=o;var Re=o.child;$s=0,C=bp(y,Re,C,C,F,re,!1),(o.flags&4)!==0&&C&&(u||lc(o,m.onUpdate))}else(o.subtreeFlags&33554432)!==0&&dg(o,u);o=o.sibling}}function wb(o,u,m){for(Xb(o.containerInfo),o=(m&335544064)===m,ga=u,u=o?9270:1024;ga!==null;){if(m=ga,o){var y=m.deletions;if(y!==null)for(var C=0;C<y.length;C++)o&&vp(y[C])}if(m.alternate===null&&(m.flags&2)!==0)o&&og(m),bd(o);else{if(m.tag===22){if(y=m.alternate,m.memoizedState!==null){y!==null&&y.memoizedState===null&&o&&vp(y),bd(o);continue}else if(y!==null&&y.memoizedState!==null){o&&og(m),bd(o);continue}}y=m.child,(m.subtreeFlags&u)!==0&&y!==null?(y.return=m,ga=y):(o&&cg(m),bd(o))}}Uo=null}function bd(o){for(;ga!==null;){var u=ga,m=o,y=u.alternate,C=u.flags;switch(u.tag){case 0:case 11:case 15:break;case 1:if((C&1024)!==0&&y!==null){m=void 0,C=y.memoizedProps,y=y.memoizedState;var F=u.stateNode;try{var re=Tr(u.type,C);m=F.getSnapshotBeforeUpdate(re,y),F.__reactInternalSnapshotBeforeUpdate=m}catch(Re){li(u,u.return,Re)}}break;case 3:(C&1024)!==0&&Gi&&em(u.stateNode.containerInfo);break;case 5:case 26:case 27:case 6:case 4:case 17:break;case 30:m&&y!==null&&(m=ze(y.memoizedProps,y.stateNode),C=u.memoizedProps,C=Ve(C.default,C.update),C!=="none"&&ac(y,m,C,y.memoizedState=[],!0));break;default:if((C&1024)!==0)throw Error(r(163))}if(y=u.sibling,y!==null){y.return=u.return,ga=y;break}ga=u.return}}function hg(o,u,m){var y=m.flags;switch(m.tag){case 0:case 11:case 15:Qs(o,m),y&4&&rf(5,m);break;case 1:if(Qs(o,m),y&4)if(o=m.stateNode,u===null)try{o.componentDidMount()}catch(re){li(m,m.return,re)}else{var C=Tr(m.type,u.memoizedProps);u=u.memoizedState;try{o.componentDidUpdate(C,u,o.__reactInternalSnapshotBeforeUpdate)}catch(re){li(m,m.return,re)}}y&64&&eg(m),y&512&&Ws(m,m.return);break;case 3:if(Qs(o,m),y&64&&(y=m.updateQueue,y!==null)){if(o=null,m.child!==null)switch(m.child.tag){case 27:case 5:o=cf(m.child.stateNode);break;case 1:o=m.child.stateNode}try{ae(y,o)}catch(re){li(m,m.return,re)}}break;case 27:Ee&&u===null&&y&4&&sg(m);case 26:case 5:if(Qs(o,m),u===null){if(y&4)fp(m);else if(y&64){o=m.type,u=m.memoizedProps,C=m.stateNode;try{I(C,o,u,m)}catch(re){li(m,m.return,re)}}}y&512&&Ws(m,m.return);break;case 12:Qs(o,m);break;case 31:Qs(o,m),y&4&&_g(o,m);break;case 13:Qs(o,m),y&4&&gg(o,m),y&64&&(y=m.memoizedState,y!==null&&(y=y.dehydrated,y!==null&&(m=kb.bind(null,m),DS(y,m))));break;case 22:if(y=m.memoizedState!==null||_a,!y){var F=u!==null&&u.memoizedState!==null||Ci;u=_a,C=Ci,_a=y,(Ci=F)&&!C?(y=Ee?2:0,(m.subtreeFlags&8772)!==0&&(y|=1),gs(o,m,y)):Qs(o,m),_a=u,Ci=C}break;case 30:Qs(o,m),y&512&&Ws(m,m.return);break;case 7:y&512&&Ws(m,m.return);default:Qs(o,m)}}function Sp(o,u){if(Gi)for(o=o.child;o!==null;)pg(o,u),o=o.sibling}function pg(o,u){if(Gi)switch(o.tag){case 5:case 26:try{var m=o.stateNode;u?AS(m):RS(o.stateNode,o.memoizedProps)}catch(F){li(o,o.return,F)}Ep(o,u);break;case 6:try{var y=o.stateNode;u?CS(y):IS(y,o.memoizedProps),$a=!0}catch(F){li(o,o.return,F)}break;case 18:try{var C=o.stateNode;u?Ut(C):ln(o.stateNode)}catch(F){li(o,o.return,F)}break;case 22:case 23:o.memoizedState===null&&Sp(o,u);break;default:Sp(o,u)}}function Ep(o,u){if(Gi&&o.subtreeFlags&67108864)for(o=o.child;o!==null;){var m=o,y=u;if(Gi)switch(m.tag){case 4:pg(m,y);break;case 22:m.memoizedState===null&&Ep(m,y);break;default:Ep(m,y)}o=o.sibling}}function mg(o){var u=o.alternate;u!==null&&(o.alternate=null,mg(u)),o.child=null,o.deletions=null,o.sibling=null,o.tag===5&&(u=o.stateNode,u!==null&&iS(u)),o.stateNode=null,o.return=null,o.dependencies=null,o.memoizedProps=null,o.memoizedState=null,o.pendingProps=null,o.stateNode=null,o.updateQueue=null}function Ca(o,u,m){for(m=m.child;m!==null;)wp(o,u,m),m=m.sibling}function wp(o,u,m){if(Fo&&typeof Fo.onCommitFiberUnmount=="function")try{Fo.onCommitFiberUnmount(VS,m)}catch{}switch(m.tag){case 26:if(Dt){Ci||Mr(m,u),Ca(o,u,m),m.memoizedState?Za(m.memoizedState):m.stateNode&&(Ci||Ks(m.stateNode));break}case 27:if(Ee){Ci||Mr(m,u),sf(m);var y=Hr,C=Js;Y(m.type)&&(Hr=m.stateNode,Js=!1),Ca(o,u,m),R(m.stateNode,m.type,m.memoizedProps),Hr=y,Js=C;break}case 5:Ci||Mr(m,u),sf(m);case 6:if(m.tag===6&&sf(m),Gi){if(y=Hr,C=Js,Hr=null,Ca(o,u,m),Hr=y,Js=C,Hr!==null)if(Js)try{MS(Hr,m.stateNode),$a=!0}catch(F){li(m,u,F)}else try{TS(Hr,m.stateNode),$a=!0}catch(F){li(m,u,F)}}else Ca(o,u,m);break;case 18:Gi&&Hr!==null&&(Js?rt(Hr,m.stateNode):Ie(Hr,m.stateNode));break;case 4:Gi?(y=Hr,C=Js,Hr=m.stateNode.containerInfo,Js=!0,Ca(o,u,m),Hr=y,Js=C):(Ys&&ag(m.stateNode,m,Nd()),Ca(o,u,m));break;case 0:case 11:case 14:case 15:Ml(2,m,u),Ci||Ml(4,m,u),Ca(o,u,m);break;case 1:Ci||(Mr(m,u),y=m.stateNode,typeof y.componentWillUnmount=="function"&&tg(m,u,y)),Ca(o,u,m);break;case 21:Ca(o,u,m);break;case 22:Ci=(y=Ci)||m.memoizedState!==null,Ca(o,u,m),Ci=y;break;case 30:Mr(m,u),Ca(o,u,m);break;case 7:Ci||Mr(m,u),Ca(o,u,m);break;default:Ca(o,u,m)}}function _g(o,u){if(Cr&&u.memoizedState===null&&(o=u.alternate,o!==null&&(o=o.memoizedState,o!==null))){o=o.dehydrated;try{K(o)}catch(m){li(u,u.return,m)}}}function gg(o,u){if(Cr&&u.memoizedState===null&&(o=u.alternate,o!==null&&(o=o.memoizedState,o!==null&&(o=o.dehydrated,o!==null))))try{oe(o)}catch(m){li(u,u.return,m)}}function xb(o){switch(o.tag){case 31:case 13:case 19:var u=o.stateNode;return u===null&&(u=o.stateNode=new KF),u;case 22:return o=o.stateNode,u=o._retryCache,u===null&&(u=o._retryCache=new KF),u;default:throw Error(r(435,o.tag))}}function Sd(o,u){var m=xb(o);u.forEach(function(y){if(!m.has(y)){m.add(y);var C=Ob.bind(null,o,y);y.then(C,C)}})}function Ar(o,u,m){var y=u.deletions;if(y!==null)for(var C=0;C<y.length;C++){var F=y[C],re=o,Re=u;if(Gi){var $e=Re;e:for(;$e!==null;){switch($e.tag){case 27:if(Ee){if(Y($e.type)){Hr=$e.stateNode,Js=!1;break e}break}case 5:Hr=$e.stateNode,Js=!1;break e;case 3:case 4:Hr=$e.stateNode.containerInfo,Js=!0;break e}$e=$e.return}if(Hr===null)throw Error(r(160));wp(re,Re,F),Hr=null,Js=!1}else wp(re,Re,F);re=F.alternate,re!==null&&(re.return=null),F.return=null}if(u.subtreeFlags&13886)for(u=u.child;u!==null;)vg(u,o,m),u=u.sibling}function vg(o,u,m){var y=o.alternate,C=o.flags;switch(o.tag){case 0:case 11:case 14:case 15:if(C&4&&(y=o.updateQueue,y=y!==null?y.events:null,y!==null))for(var F=0;F<y.length;F++){var re=y[F];re.ref.impl=re.nextImpl}Ar(u,o,m),zr(o),C&4&&(Ml(3,o,o.return),rf(3,o),Ml(5,o,o.return));break;case 1:Ar(u,o,m),zr(o),C&512&&(Ci||y===null||Mr(y,y.return)),C&64&&_a&&(o=o.updateQueue,o!==null&&(u=o.callbacks,u!==null&&(C=o.shared.hiddenCallbacks,o.shared.hiddenCallbacks=C===null?u:C.concat(u))));break;case 26:if(Dt){F=du,Ar(u,o,m),zr(o),C&512&&(Ci||y===null||Mr(y,y.return)),C&4&&(m=y!==null?y.memoizedState:null,C=o.memoizedState,y===null?C===null?o.stateNode===null?o.stateNode=_a?T(o.type,o.memoizedProps,u.containerInfo,o):pc(F,o.type,o.memoizedProps,o):_a||ta(F,o.type,o.stateNode):o.stateNode=La(F,C,o.memoizedProps):m!==C?(m===null?(u=y.stateNode,u===null||Ci||Ks(u)):Za(m),C===null?_a||ta(F,o.type,o.stateNode):La(F,C,o.memoizedProps)):C===null&&o.stateNode!==null&&dp(o,o.memoizedProps,y.memoizedProps));break}case 27:if(Ee){Ar(u,o,m),zr(o),C&512&&(Ci||y===null||Mr(y,y.return)),y!==null&&C&4&&dp(o,o.memoizedProps,y.memoizedProps);break}case 5:if(F=vc,vc=!1,Ar(u,o,m),vc=F,zr(o),C&512&&(Ci||y===null||Mr(y,y.return)),Gi){if(o.flags&32){u=o.stateNode;try{rv(u),$a=!0}catch(St){li(o,o.return,St)}}C&4&&o.stateNode!=null&&(u=o.memoizedProps,dp(o,u,y!==null?y.memoizedProps:u)),C&1024&&(eI=!0)}else Ys&&o.alternate!==null&&(o.alternate.stateNode=o.stateNode);break;case 6:if(Ar(u,o,m),zr(o),C&4&&Gi){if(o.stateNode===null)throw Error(r(162));u=o.memoizedProps,C=y!==null?y.memoizedProps:u,m=o.stateNode;try{bS(m,C,u),$a=!0}catch(St){li(o,o.return,St)}}break;case 3:if($a=!1,Dt?(D(),F=du,du=Qn(u.containerInfo),Ar(u,o,m),du=F):Ar(u,o,m),zr(o),C&4){if(Gi&&Cr&&y!==null&&y.memoizedState.isDehydrated)try{B(u.containerInfo)}catch(St){li(o,o.return,St)}if(Ys){C=u.containerInfo,u=u.pendingChildren;try{im(C,u),$a=!0}catch(St){li(o,o.return,St)}}}eI&&(eI=!1,yg(o)),$a=!1;break;case 4:y=vc,vc=_a,F=ng(),Dt?(re=du,du=Qn(o.stateNode.containerInfo),Ar(u,o,m),zr(o),du=re):(Ar(u,o,m),zr(o)),$a&&KS&&(KT=!0),$a=F,vc=y,C&4&&Ys&&ag(o.stateNode,o,o.stateNode.pendingChildren);break;case 12:Ar(u,o,m),zr(o);break;case 31:Ar(u,o,m),zr(o),C&4&&(u=o.updateQueue,u!==null&&(o.updateQueue=null,Sd(o,u)));break;case 13:Ar(u,o,m),zr(o),o.child.flags&8192&&o.memoizedState!==null!=(y!==null&&y.memoizedState!==null)&&(n3=mi()),C&4&&(u=o.updateQueue,u!==null&&(o.updateQueue=null,Sd(o,u)));break;case 22:F=o.memoizedState!==null,re=y!==null&&y.memoizedState!==null;var Re=_a,$e=Ci,pt=vc;_a=Re||F,vc=pt||F,Ci=$e||re,Ar(u,o,m),Ci=$e,vc=pt,_a=Re,zr(o),C&8192&&(u=o.stateNode,u._visibility=F?u._visibility&-2:u._visibility|1,!F||y===null||re||_a||Ci||(u=Ee?2:0,m=re||Ci,y=_a,re=Ci,_a=F||_a,Ci=m,Al(o,u),_a=y,Ci=re),Gi&&(F||!vc)&&Sp(o,F)),C&4&&(u=o.updateQueue,u!==null&&(C=u.retryQueue,C!==null&&(u.retryQueue=null,Sd(o,C))));break;case 19:Ar(u,o,m),zr(o),C&4&&(u=o.updateQueue,u!==null&&(o.updateQueue=null,Sd(o,u)));break;case 30:C&512&&(Ci||y===null||Mr(y,y.return)),C=ng(),F=KS,re=(m&335544064)===m,Re=o.memoizedProps,KS=re&&Ve(Re.default,Re.update)!=="none",Ar(u,o,m),zr(o),re&&y!==null&&$a&&(o.flags|=4),KS=F,$a=C;break;case 21:break;case 7:C&512&&(Ci||y===null||Mr(y,y.return)),y&&y.stateNode!==null&&tm(o,y.stateNode);default:Ar(u,o,m),zr(o)}}function zr(o){var u=o.flags;if(u&2){try{for(var m,y=o.return;y!==null;){if(rg(y)){m=y;break}y=y.return}y=null;for(var C=o.return;C!==null;){if(cp(C)){var F=C.stateNode;y===null?y=[F]:y.push(F)}if(up(C))break;C=C.return}var re=y;if(Gi){if(m==null)throw Error(r(160));switch(m.tag){case 27:if(Ee){var Re=m.stateNode,$e=hp(o);gd(o,$e,Re,re);break}case 5:var pt=m.stateNode;m.flags&32&&(rv(pt),m.flags&=-33);var St=hp(o);gd(o,St,pt,re);break;case 3:case 4:var Ot=m.stateNode.containerInfo,rn=hp(o);pp(o,rn,Ot,re);break;default:throw Error(r(161))}}else mp(o,re)}catch(Zn){li(o,o.return,Zn)}o.flags&=-3}u&4096&&(o.flags&=-4097)}function yg(o){if(o.subtreeFlags&1024)for(o=o.child;o!==null;){var u=o;yg(u),u.tag===5&&u.flags&1024&&uS(u.stateNode),o=o.sibling}}function sc(o,u){if(u.subtreeFlags&9270)for(u=u.child;u!==null;)bg(u,o),u=u.sibling;else dg(u,!1)}function bg(o,u){var m=o.alternate;if(m===null)_p(o,!1);else switch(o.tag){case 3:if(tI=yc=!1,lg(),sc(u,o),!yc&&!KT){if(o=gc,o!==null)for(var y=0;y<o.length;y+=3)Zp(o[y],o[y+1],o[y+2]);sv(u.containerInfo),tI=!0}gc=null;break;case 5:sc(u,o);break;case 4:y=yc,yc=!1,sc(u,o),yc&&(KT=!0),yc=y;break;case 22:o.memoizedState===null&&(m.memoizedState!==null?_p(o,!1):sc(u,o));break;case 30:y=yc;var C=lg();yc=!1,sc(u,o),yc&&(o.flags|=4);var F=o.memoizedProps,re=o.stateNode;u=ze(F,re),re=ze(m.memoizedProps,re);var Re=Ve(F.default,F.update);Re==="none"?m=!1:(F=m.memoizedState,m.memoizedState=null,m=o.child,$s=0,m=bp(o,m,u,re,Re,F,!0),$s!==(F===null?0:F.length)&&(o.flags|=32)),(o.flags&4)!==0&&m?(lc(o,o.memoizedProps.onUpdate),gc=C):C!==null&&(C.push.apply(C,gc),gc=C),yc=(o.flags&32)!==0?!0:y;break;default:sc(u,o)}}function Qs(o,u){if(u.subtreeFlags&8772)for(u=u.child;u!==null;)hg(o,u.alternate,u),u=u.sibling}function Al(o,u){for(o=o.child;o!==null;){var m=o,y=u;switch(m.tag){case 0:case 11:case 14:case 15:Ml(4,m,m.return),Al(m,y);break;case 1:Mr(m,m.return);var C=m.stateNode;typeof C.componentWillUnmount=="function"&&tg(m,m.return,C),Al(m,y);break;case 27:Ee&&(y&2)!==0&&R(m.stateNode,m.type,m.memoizedProps);case 5:Mr(m,m.return),m.tag!==5&&m.tag!==27||sf(m),Al(m,y);break;case 6:sf(m);break;case 26:Mr(m,m.return),Dt&&(C=m.stateNode,m.memoizedState!==null||C===null||Ci||Ks(C)),Al(m,y);break;case 22:m.memoizedState===null&&Al(m,y);break;case 30:Mr(m,m.return),Al(m,y);break;case 7:Mr(m,m.return);default:Al(m,y)}o=o.sibling}}function gs(o,u,m){for(m=(u.subtreeFlags&8772)!==0?m:m&-2,u=u.child;u!==null;){var y=u.alternate,C=o,F=u,re=F.flags,Re=(m&1)!==0;switch(F.tag){case 0:case 11:case 15:gs(C,F,m),rf(4,F);break;case 1:if(gs(C,F,m),y=F,C=y.stateNode,typeof C.componentDidMount=="function")try{C.componentDidMount()}catch(St){li(y,y.return,St)}if(y=F,C=y.updateQueue,C!==null){var $e=y.stateNode;try{var pt=C.shared.hiddenCallbacks;if(pt!==null)for(C.shared.hiddenCallbacks=null,C=0;C<pt.length;C++)So(pt[C],$e)}catch(St){li(y,y.return,St)}}Re&&re&64&&eg(F),Ws(F,F.return);break;case 27:Ee&&(m&2)!==0&&sg(F);case 5:F.tag!==5&&F.tag!==27||ig(F),gs(C,F,m),Re&&y===null&&re&4&&fp(F),Ws(F,F.return);break;case 6:ig(F);break;case 26:Dt&&($e=F.stateNode,F.memoizedState!==null||$e===null||_a||ta(Qn($e.ownerDocument),F.type,$e)),gs(C,F,m),Re&&y===null&&re&4&&fp(F),Ws(F,F.return);break;case 12:gs(C,F,m);break;case 31:gs(C,F,m),Re&&re&4&&_g(C,F);break;case 13:gs(C,F,m),Re&&re&4&&gg(C,F);break;case 22:F.memoizedState===null&&gs(C,F,m),Ws(F,F.return);break;case 30:gs(C,F,m),Ws(F,F.return);break;case 7:Ws(F,F.return);default:gs(C,F,m)}u=u.sibling}}function xp(o,u){var m=null;o!==null&&o.memoizedState!==null&&o.memoizedState.cachePool!==null&&(m=o.memoizedState.cachePool.pool),o=null,u.memoizedState!==null&&u.memoizedState.cachePool!==null&&(o=u.memoizedState.cachePool.pool),o!==m&&(o!=null&&o.refCount++,m!=null&&ne(m))}function Tp(o,u){o=null,u.alternate!==null&&(o=u.alternate.memoizedState.cache),u=u.memoizedState.cache,u!==o&&(u.refCount++,o!=null&&ne(o))}function Ka(o,u,m,y){var C=(m&335544064)===m;if(u.subtreeFlags&(C?10262:10256))for(u=u.child;u!==null;)Sg(o,u,m,y),u=u.sibling;else C&&fg(u)}function Sg(o,u,m,y){var C=(m&335544064)===m;C&&u.alternate===null&&u.return!==null&&u.return.alternate!==null&&yd(u);var F=u.flags;switch(u.tag){case 0:case 11:case 15:Ka(o,u,m,y),F&2048&&rf(9,u);break;case 1:Ka(o,u,m,y);break;case 3:Ka(o,u,m,y),C&&Gi&&tI&&NS(o.containerInfo),F&2048&&(o=null,u.alternate!==null&&(o=u.alternate.memoizedState.cache),u=u.memoizedState.cache,u!==o&&(u.refCount++,o!=null&&ne(o)));break;case 12:if(F&2048){Ka(o,u,m,y),o=u.stateNode;try{var re=u.memoizedProps,Re=re.id,$e=re.onPostCommit;typeof $e=="function"&&$e(Re,u.alternate===null?"mount":"update",o.passiveEffectDuration,-0)}catch(pt){li(u,u.return,pt)}}else Ka(o,u,m,y);break;case 31:Ka(o,u,m,y);break;case 13:Ka(o,u,m,y);break;case 23:break;case 22:re=u.stateNode,Re=u.alternate,u.memoizedState!==null?(C&&Re!==null&&Re.memoizedState===null&&yd(Re),re._visibility&2?Ka(o,u,m,y):of(o,u)):(C&&Re!==null&&Re.memoizedState!==null&&yd(u),re._visibility&2?Ka(o,u,m,y):(re._visibility|=2,oc(o,u,m,y,(u.subtreeFlags&10256)!==0||!1))),F&2048&&xp(Re,u);break;case 24:Ka(o,u,m,y),F&2048&&Tp(u.alternate,u);break;case 30:C&&(C=u.alternate,C!==null&&(js(C.child,!0),js(u.child,!0))),Ka(o,u,m,y);break;default:Ka(o,u,m,y)}}function oc(o,u,m,y,C){for(C=C&&((u.subtreeFlags&10256)!==0||!1),u=u.child;u!==null;){var F=o,re=u,Re=m,$e=y,pt=re.flags;switch(re.tag){case 0:case 11:case 15:oc(F,re,Re,$e,C),rf(8,re);break;case 23:break;case 22:var St=re.stateNode;re.memoizedState!==null?St._visibility&2?oc(F,re,Re,$e,C):of(F,re):(St._visibility|=2,oc(F,re,Re,$e,C)),C&&pt&2048&&xp(re.alternate,re);break;case 24:oc(F,re,Re,$e,C),C&&pt&2048&&Tp(re.alternate,re);break;default:oc(F,re,Re,$e,C)}u=u.sibling}}function of(o,u){if(u.subtreeFlags&10256)for(u=u.child;u!==null;){var m=o,y=u,C=y.flags;switch(y.tag){case 22:of(m,y),C&2048&&xp(y.alternate,y);break;case 24:of(m,y),C&2048&&Tp(y.alternate,y);break;default:of(m,y)}u=u.sibling}}function Cl(o,u,m){if(o.subtreeFlags&mm)for(o=o.child;o!==null;)Eg(o,u,m),o=o.sibling}function Eg(o,u,m){switch(o.tag){case 26:if(Cl(o,u,m),o.flags&mm)if(o.memoizedState!==null)fe(m,du,o.memoizedState,o.memoizedProps);else{var y=o.stateNode,C=o.type;o=o.memoizedProps,((u&335544128)===u||Kp(C,o))&&iv(m,y,C,o)}break;case 5:Cl(o,u,m),o.flags&mm&&(y=o.stateNode,C=o.type,o=o.memoizedProps,((u&335544128)===u||Kp(C,o))&&iv(m,y,C,o));break;case 3:case 4:Dt?(y=du,du=Qn(o.stateNode.containerInfo),Cl(o,u,m),du=y):Cl(o,u,m);break;case 22:o.memoizedState===null&&(y=o.alternate,y!==null&&y.memoizedState!==null?(y=mm,mm=16777216,Cl(o,u,m),mm=y):Cl(o,u,m));break;case 30:(o.flags&mm)!==0&&(y=o.memoizedProps.name,y!=null&&y!=="auto"&&(C=o.stateNode,C.paired=null,Uo===null&&(Uo=new Map),Uo.set(y,C))),Cl(o,u,m);break;default:Cl(o,u,m)}}function wg(o){var u=o.alternate;if(u!==null&&(o=u.child,o!==null)){u.child=null;do u=o.sibling,o.sibling=null,o=u;while(o!==null)}}function lf(o){var u=o.deletions;if((o.flags&16)!==0){if(u!==null)for(var m=0;m<u.length;m++){var y=u[m];ga=y,Tg(y,o)}wg(o)}if(o.subtreeFlags&10256)for(o=o.child;o!==null;)xg(o),o=o.sibling}function xg(o){switch(o.tag){case 0:case 11:case 15:lf(o),o.flags&2048&&Ml(9,o,o.return);break;case 3:lf(o);break;case 12:lf(o);break;case 22:var u=o.stateNode;o.memoizedState!==null&&u._visibility&2&&(o.return===null||o.return.tag!==13)?(u._visibility&=-3,Ed(o)):lf(o);break;default:lf(o)}}function Ed(o){var u=o.deletions;if((o.flags&16)!==0){if(u!==null)for(var m=0;m<u.length;m++){var y=u[m];ga=y,Tg(y,o)}wg(o)}for(o=o.child;o!==null;){switch(u=o,u.tag){case 0:case 11:case 15:Ml(8,u,u.return),Ed(u);break;case 22:m=u.stateNode,m._visibility&2&&(m._visibility&=-3,Ed(u));break;default:Ed(u)}o=o.sibling}}function Tg(o,u){for(;ga!==null;){var m=ga;switch(m.tag){case 0:case 11:case 15:Ml(8,m,u);break;case 23:case 22:if(m.memoizedState!==null&&m.memoizedState.cachePool!==null){var y=m.memoizedState.cachePool.pool;y!=null&&y.refCount++}break;case 24:ne(m.memoizedState.cache)}if(y=m.child,y!==null)y.return=m,ga=y;else e:for(m=o;ga!==null;){y=ga;var C=y.sibling,F=y.return;if(mg(y),y===m){ga=null;break e}if(C!==null){C.return=F,ga=C;break e}ga=F}}}function Mp(o){var u=Jb(o);if(u!=null){if(typeof u.memoizedProps["data-testname"]!="string")throw Error(r(364));return u}if(o=dS(o),o===null)throw Error(r(362));return o.stateNode.current}function Ap(o,u){var m=o.tag;switch(u.$$typeof){case ZT:if(o.type===u.value)return!0;break;case $T:e:{for(u=u.value,o=[o,0],m=0;m<o.length;){var y=o[m++],C=y.tag,F=o[m++],re=u[F];if(C!==5&&C!==26&&C!==27||!df(y)){for(;re!=null&&Ap(y,re);)F++,re=u[F];if(F===u.length){u=!0;break e}else for(y=y.child;y!==null;)o.push(y,F),y=y.sibling}}u=!1}return u;case JT:if((m===5||m===26||m===27)&&mS(o.stateNode,u.value))return!0;break;case t3:if((m===5||m===6||m===26||m===27)&&(o=pS(o),o!==null&&0<=o.indexOf(u.value)))return!0;break;case e3:if((m===5||m===26||m===27)&&(o=o.memoizedProps["data-testname"],typeof o=="string"&&o.toLowerCase()===u.value.toLowerCase()))return!0;break;default:throw Error(r(365))}return!1}function Cp(o){switch(o.$$typeof){case ZT:return"<"+(h(o.value)||"Unknown")+">";case $T:return":has("+(Cp(o)||"")+")";case JT:return'[role="'+o.value+'"]';case t3:return'"'+o.value+'"';case e3:return'[data-testname="'+o.value+'"]';default:throw Error(r(365))}}function Mg(o,u){var m=[];o=[o,0];for(var y=0;y<o.length;){var C=o[y++],F=C.tag,re=o[y++],Re=u[re];if(F!==5&&F!==26&&F!==27||!df(C)){for(;Re!=null&&Ap(C,Re);)re++,Re=u[re];if(re===u.length)m.push(C);else for(C=C.child;C!==null;)o.push(C,re),C=C.sibling}}return m}function Rp(o,u){if(!ff)throw Error(r(363));o=Mp(o),o=Mg(o,u),u=[],o=Array.from(o);for(var m=0;m<o.length;){var y=o[m++],C=y.tag;if(C===5||C===26||C===27)df(y)||u.push(y.stateNode);else for(y=y.child;y!==null;)o.push(y),y=y.sibling}return u}function Ra(){return(ei&2)!==0&&ui!==0?ui&-ui:_n.T!==null?bt():tS()}function Ag(){if(qo===0)if((ui&536870912)===0||Xn){var o=vn;vn<<=1,(vn&3932160)===0&&(vn=262144),qo=o}else qo=536870912;return o=ka.current,o!==null&&(o.flags|=32),qo}function lc(o,u){if(u!=null){var m=o.stateNode,y=m.ref;y===null&&(y=m.ref=hf(ze(o.memoizedProps,m))),Rv===null&&(Rv=[]),Rv.push(u.bind(null,y))}}function pa(o,u,m){(o===Wi&&(Di===2||Di===9)||o.cancelPendingCommit!==null)&&(uc(o,0),Rl(o,ui,qo,!1)),Q(o,m),((ei&2)===0||o!==Wi)&&(o===Wi&&((ei&2)===0&&(_m|=m),pr===4&&Rl(o,ui,qo,!1)),be(o))}function Cg(o,u,m){if((ei&6)!==0)throw Error(r(327));var y=!m&&(u&127)===0&&(u&o.expiredLanes)===0||M(o,u),C=y?Ab(o,u):Lp(o,u,!0),F=y;do{if(C===0){Mv&&!y&&Rl(o,u,0,!1);break}else{if(m=o.current.alternate,F&&!Tb(m)){C=Lp(o,u,!1),F=!1;continue}if(C===2){if(F=u,o.errorRecoveryDisabledLanes&F)var re=0;else re=o.pendingLanes&-536870913,re=re!==0?re:re&536870912?536870912:0;if(re!==0){u=re;e:{var Re=o;C=$S;var $e=Cr&&Re.current.memoizedState.isDehydrated;if($e&&(uc(Re,re).flags|=256),re=Lp(Re,re,!1),re!==2&&re!==6){if(nI&&!$e){Re.errorRecoveryDisabledLanes|=F,_m|=F,C=4;break e}F=eo,eo=C,F!==null&&(eo===null?eo=F:eo.push.apply(eo,F))}C=re}if(F=!1,C!==2)continue}}if(C===1){uc(o,0),Rl(o,u,0,!0);break}e:{switch(y=o,F=C,F){case 0:case 1:throw Error(r(345));case 4:if((u&4194048)!==u&&(u&62914560)!==u)break;case 6:Rl(y,u,qo,!Bd);break e;case 2:eo=null;break;case 3:case 5:break;default:throw Error(r(329))}if((u&62914560)===u&&(C=n3+300-mi(),10<C)){if(Rl(y,u,qo,!Bd),v(y,0,!0)!==0)break e;bc=u,y.timeoutHandle=Zb(Rg.bind(null,y,m,eo,i3,rI,u,qo,_m,Av,Bd,F,"Throttled",-0,0),C);break e}Rg(y,m,eo,i3,rI,u,qo,_m,Av,Bd,F,null,-0,0)}}break}while(!0);be(o)}function Rg(o,u,m,y,C,F,re,Re,$e,pt,St,Ot,rn,Zn){o.timeoutHandle=fu;var yi=u.subtreeFlags,Gd=(F&335544064)===F;if(Ot=null,(Gd||yi&8192||(yi&16785408)===16785408)&&(Ot=sS(),Uo=null,Eg(u,F,Ot),Gd&&oS(Ot,o.containerInfo),yi=(F&62914560)===F?n3-mi():(F&4194048)===F?ZF-mi():0,yi=lS(Ot,yi),yi!==null)){bc=F,o.cancelPendingCommit=yi(Ug.bind(null,o,u,F,m,y,C,re,Re,$e,pt,St,Ot,null,rn,Zn)),Rl(o,F,re,!pt);return}Ug(o,u,F,m,y,C,re,Re,$e,pt,St,Ot)}function Tb(o){for(var u=o;;){var m=u.tag;if((m===0||m===11||m===15)&&u.flags&16384&&(m=u.updateQueue,m!==null&&(m=m.stores,m!==null)))for(var y=0;y<m.length;y++){var C=m[y],F=C.getSnapshot;C=C.value;try{if(!Po(F(),C))return!1}catch{return!1}}if(m=u.child,u.subtreeFlags&16384&&m!==null)m.return=u,u=m;else{if(u===o)break;for(;u.sibling===null;){if(u.return===null||u.return===o)return!0;u=u.return}u.sibling.return=u.return,u=u.sibling}}return!0}function Rl(o,u,m,y){u=O(o,u),u&=~iI,u&=~_m,o.suspendedLanes|=u,o.pingedLanes&=~u,y&&(o.warmLanes|=u),y=o.expirationTimes;for(var C=u;0<C;){var F=31-Ce(C),re=1<<F;y[F]=-1,C&=~re}m!==0&&Z(o,m,u)}function Ig(){return(ei&6)===0?(tt(0,!1),!1):!0}function Ip(){if(ti!==null){if(Di===0)var o=ti.return;else o=ti,mf=lm=null,xn(o),Ev=null,XS=0,o=ti;for(;o!==null;)J_(o.alternate,o),o=o.return;ti=null}}function uc(o,u){var m=o.timeoutHandle;return m!==fu&&(o.timeoutHandle=fu,$b(m)),m=o.cancelPendingCommit,m!==null&&(o.cancelPendingCommit=null,m()),bc=0,Ip(),Wi=o,ti=m=Lo(o.current,null),ui=u,Di=0,zo=null,Bd=!1,Mv=M(o,u),nI=!1,Av=qo=iI=_m=Hd=pr=0,eo=$S=null,rI=!1,gf=O(o,u),cs(),m}function Lg(o,u){Dn=null,_n.H=XT,u===Sv||u===VT?(u=Ke(),Di=3):u===XR?(u=Ke(),Di=4):Di=u===$R?8:u!==null&&typeof u=="object"&&typeof u.then=="function"?6:1,zo=u,ti===null&&(pr=1,ha(o,Et(u,o.current)))}function Ng(){var o=ka.current;return o===null?!0:(ui&4194048)===ui?vs===null:(ui&62914560)===ui||(ui&536870912)!==0?o===vs:!1}function kg(){var o=_n.H;return _n.H=XT,o===null?XT:o}function Og(){var o=_n.A;return _n.A=QG,o}function wd(){pr=4,Bd||(ui&4194048)!==ui&&ka.current!==null||(Mv=!0),(Hd&134217727)===0&&(_m&134217727)===0||Wi===null||Rl(Wi,ui,qo,!1)}function Lp(o,u,m){var y=ei;ei|=2;var C=kg(),F=Og();(Wi!==o||ui!==u)&&(i3=null,uc(o,u)),u=!1;var re=pr;e:do try{if(Di!==0&&ti!==null){var Re=ti,$e=zo;switch(Di){case 8:Ip(),re=6;break e;case 3:case 2:case 9:case 6:ka.current===null&&(u=!0);var pt=Di;if(Di=0,zo=null,cc(o,Re,$e,pt),m&&Mv){re=0;break e}break;default:pt=Di,Di=0,zo=null,cc(o,Re,$e,pt)}}Mb(),re=pr;break}catch(St){Lg(o,St)}while(!0);return u&&o.shellSuspendCounter++,mf=lm=null,ei=y,_n.H=C,_n.A=F,ti===null&&(Wi=null,ui=0,cs()),re}function Mb(){for(;ti!==null;)Dg(ti)}function Ab(o,u){var m=ei;ei|=2;var y=kg(),C=Og();Wi!==o||ui!==u?(i3=null,JS=mi()+500,uc(o,u)):Mv=M(o,u);e:do try{if(Di!==0&&ti!==null){u=ti;var F=zo;t:switch(Di){case 1:Di=0,zo=null,cc(o,u,F,1);break;case 2:case 9:if(Un(F)){Di=0,zo=null,Fg(u);break}u=function(){Di!==2&&Di!==9||Wi!==o||(Di=7),be(o)},F.then(u,u);break e;case 3:Di=7;break e;case 4:Di=5;break e;case 7:Un(F)?(Di=0,zo=null,Fg(u)):(Di=0,zo=null,cc(o,u,F,7));break;case 5:var re=null;switch(ti.tag){case 26:re=ti.memoizedState;case 5:case 27:var Re=ti,$e=Re.type,pt=Re.pendingProps;if(re?$(re):nv(Re.stateNode,$e,pt)){Di=0,zo=null;var St=Re.sibling;if(St!==null)ti=St;else{var Ot=Re.return;Ot!==null?(ti=Ot,xd(Ot)):ti=null}break t}}Di=0,zo=null,cc(o,u,F,5);break;case 6:Di=0,zo=null,cc(o,u,F,6);break;case 8:Ip(),pr=6;break e;default:throw Error(r(462))}}Cb();break}catch(rn){Lg(o,rn)}while(!0);return mf=lm=null,_n.H=y,_n.A=C,ei=m,ti!==null?0:(Wi=null,ui=0,cs(),pr)}function Cb(){for(;ti!==null&&!Ai();)Dg(ti)}function Dg(o){var u=X_(o.alternate,o,gf);o.memoizedProps=o.pendingProps,u===null?xd(o):ti=u}function Fg(o){var u=o,m=u.alternate;switch(u.tag){case 15:case 0:u=pe(m,u,u.pendingProps,u.type,void 0,ui);break;case 11:u=pe(m,u,u.pendingProps,u.type.render,u.ref,ui);break;case 5:xn(u);var y=u;Cr&&y===ma&&(Xn?(_e(y),y.tag===5&&y.stateNode!=null&&(nr=y.stateNode)):(_e(y),Xn=!0));default:J_(m,u),u=ti=Hg(u,gf),u=X_(m,u,gf)}o.memoizedProps=o.pendingProps,u===null?xd(o):ti=u}function cc(o,u,m,y){mf=lm=null,xn(u),Ev=null,XS=0;var C=u.return;try{if(Ta(o,C,u,m,ui)){pr=1,ha(o,Et(m,o.current)),ti=null;return}}catch(F){if(C!==null)throw ti=C,F;pr=1,ha(o,Et(m,o.current)),ti=null;return}u.flags&32768?(Xn||y===1?o=!0:Mv||(ui&536870912)!==0?o=!1:(Bd=o=!0,(y===2||y===9||y===3||y===6)&&(y=ka.current,y!==null&&y.tag===13&&(y.flags|=16384))),Pg(u,o)):xd(u)}function xd(o){var u=o;do{if((u.flags&32768)!==0){Pg(u,Bd);return}o=u.return;var m=Sb(u.alternate,u,gf);if(m!==null){ti=m;return}if(u=u.sibling,u!==null){ti=u;return}ti=u=o}while(u!==null);pr===0&&(pr=5)}function Pg(o,u){do{var m=Eb(o.alternate,o);if(m!==null){m.flags&=32767,ti=m;return}if(m=o.return,m!==null&&(m.flags|=32768,m.subtreeFlags=0,m.deletions=null),!u&&(o=o.sibling,o!==null)){ti=o;return}ti=o=m}while(o!==null);pr=6,ti=null}function Ug(o,u,m,y,C,F,re,Re,$e,pt,St,Ot){o.cancelPendingCommit=null;do uf();while(lr!==0);if((ei&6)!==0)throw Error(r(327));if(u!==null){if(u===o.current)throw Error(r(177));o===Wi&&(ti=Wi=null,ui=0),gm=u,hu=o,bc=m,sI=C,$F=y,Rb(o,u,m,re,Re,$e,Ot)}}function Rb(o,u,m,y,C,F,re){var Re=u.lanes|u.childLanes;if(aI=Re,Re|=YR,H(o,m,Re,y,C,F),Rv=null,(m&335544064)===m?(Iv=ie(o),y=10262):(Iv=null,y=10256),(u.subtreeFlags&y)!==0||(u.flags&y)!==0?(o.callbackNode=null,o.callbackPriority=0,Db(pf,function(){return Dp(),null})):(o.callbackNode=null,o.callbackPriority=0),YT=!1,y=(u.flags&13878)!==0,(u.subtreeFlags&13878)!==0||y){y=_n.T,_n.T=null,C=ko(),hr(2),F=ei,ei|=4;try{wb(o,u,m)}finally{ei=F,hr(C),_n.T=y}}lr=1,YT?Cv=Jp(re,o.containerInfo,Iv,Np,kp,Lb,Op,Dp,Ib,null,null):(Np(),kp(),Op())}function Ib(o){if(lr!==0){var u=hu.onRecoverableError;u(o,{componentStack:null})}}function Lb(){lr===3&&(lr=0,bg(gm,hu),lr=4)}function Np(){if(lr===1){lr=0;var o=hu,u=gm,m=bc,y=(u.flags&13878)!==0;if((u.subtreeFlags&13878)!==0||y){y=_n.T,_n.T=null;var C=ko();hr(2);var F=ei;ei|=4;try{KS=KT=!1,vg(u,o,m),Yb(o.containerInfo)}finally{ei=F,hr(C),_n.T=y}}o.current=u,lr=2}}function kp(){if(lr===2){lr=0;var o=hu,u=gm,m=(u.flags&8772)!==0;if((u.subtreeFlags&8772)!==0||m){m=_n.T,_n.T=null;var y=ko();hr(2);var C=ei;ei|=4;try{hg(o,u.alternate,u)}finally{ei=C,hr(y),_n.T=m}}lr=3}}function Op(){if(lr===4||lr===3){lr=0;var o=Cv;Cv=null,Rn();var u=hu,m=gm,y=bc,C=$F,F=(y&335544064)===y?10262:10256;if((m.subtreeFlags&F)!==0||(m.flags&F)!==0?lr=5:(lr=0,gm=hu=null,zg(u,u.pendingLanes)),F=u.pendingLanes,F===0&&(Vd=null),ke(y),m=m.stateNode,Fo&&typeof Fo.onCommitFiberRoot=="function")try{Fo.onCommitFiberRoot(VS,m,void 0,(m.current.flags&128)===128)}catch{}if(C!==null){m=_n.T,F=ko(),hr(2),_n.T=null;try{for(var re=u.onRecoverableError,Re=0;Re<C.length;Re++){var $e=C[Re];re($e.value,{componentStack:$e.stack})}}finally{_n.T=m,hr(F)}}if(C=Rv,re=Iv,Iv=null,C!==null&&(Rv=null,re===null&&(re=[]),o!==null))for($e=0;$e<C.length;$e++)m=(0,C[$e])(re),m!==void 0&&uv(o,m);(bc&3)!==0&&uf(),be(u),F=u.pendingLanes,(y&261930)!==0&&(F&42)!==0?u===r3?eE++:(eE=0,r3=u):(eE=0,r3=null),Cr&&Te(),tt(0,!1)}}function zg(o,u){(o.pooledCacheLanes&=u)===0&&(u=o.pooledCache,u!=null&&(o.pooledCache=null,ne(u)))}function uf(){return Cv!==null&&(lv(Cv),Cv=null),Np(),kp(),Op(),Dp()}function Dp(){if(lr!==5)return!1;var o=hu,u=aI;aI=0;var m=ke(bc),y=32>m?32:m;m=_n.T;var C=ko();try{hr(y),_n.T=null,y=sI,sI=null;var F=hu,re=bc;if(lr=0,gm=hu=null,bc=0,(ei&6)!==0)throw Error(r(331));var Re=ei;if(ei|=4,xg(F.current),Sg(F,F.current,re,y),ei=Re,tt(0,!1),Fo&&typeof Fo.onPostCommitFiberRoot=="function")try{Fo.onPostCommitFiberRoot(VS,F)}catch{}return!0}finally{hr(C),_n.T=m,zg(o,u)}}function qg(o,u,m){u=Et(m,u),u=Hs(o.stateNode,u,2),o=Jr(o,u,2),o!==null&&(Q(o,2),be(o))}function li(o,u,m){if(o.tag===3)qg(o,o,m);else for(;u!==null;){if(u.tag===3){qg(u,o,m);break}else if(u.tag===1){var y=u.stateNode;if(typeof u.type.getDerivedStateFromError=="function"||typeof y.componentDidCatch=="function"&&(Vd===null||!Vd.has(y))){o=Et(m,o),m=Co(2),y=Jr(u,m,2),y!==null&&(wl(m,y,u,o),Q(y,2),be(y));break}}u=u.return}}function Fp(o,u,m){var y=o.pingCache;if(y===null){y=o.pingCache=new XG;var C=new Set;y.set(u,C)}else C=y.get(u),C===void 0&&(C=new Set,y.set(u,C));C.has(m)||(nI=!0,C.add(m),o=Nb.bind(null,o,u,m),u.then(o,o))}function Nb(o,u,m){var y=o.pingCache;y!==null&&y.delete(u),o.pingedLanes|=o.suspendedLanes&m,o.warmLanes&=~m,Wi===o&&(ui&m)===m&&((pr===4||pr===3&&(ui&62914560)===ui&&300>mi()-n3)&&(ei&2)===0?uc(o,0):iI|=m,Av===ui&&(Av=0)),be(o)}function Bg(o,u){u===0&&(u=q()),o=hi(o,u),o!==null&&(Q(o,u),be(o))}function kb(o){var u=o.memoizedState,m=0;u!==null&&(m=u.retryLane),Bg(o,m)}function Ob(o,u){var m=0;switch(o.tag){case 31:case 13:var y=o.stateNode,C=o.memoizedState;C!==null&&(m=C.retryLane);break;case 19:y=o.stateNode;break;case 22:y=o.stateNode._retryCache;break;default:throw Error(r(314))}y!==null&&y.delete(u),Bg(o,m)}function Db(o,u){return on(o,u)}function Fb(o,u,m,y){this.tag=o,this.key=m,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.refCleanup=this.ref=null,this.pendingProps=u,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=y,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Pp(o){return o=o.prototype,!(!o||!o.isReactComponent)}function Lo(o,u){var m=o.alternate;return m===null?(m=t(o.tag,u,o.key,o.mode),m.elementType=o.elementType,m.type=o.type,m.stateNode=o.stateNode,m.alternate=o,o.alternate=m):(m.pendingProps=u,m.type=o.type,m.flags=0,m.subtreeFlags=0,m.deletions=null),m.flags=o.flags&1206910976,m.childLanes=o.childLanes,m.lanes=o.lanes,m.child=o.child,m.memoizedProps=o.memoizedProps,m.memoizedState=o.memoizedState,m.updateQueue=o.updateQueue,u=o.dependencies,m.dependencies=u===null?null:{lanes:u.lanes,firstContext:u.firstContext},m.sibling=o.sibling,m.index=o.index,m.ref=o.ref,m.refCleanup=o.refCleanup,m}function Hg(o,u){o.flags&=1206910978;var m=o.alternate;return m===null?(o.childLanes=0,o.lanes=u,o.child=null,o.subtreeFlags=0,o.memoizedProps=null,o.memoizedState=null,o.updateQueue=null,o.dependencies=null,o.stateNode=null):(o.childLanes=m.childLanes,o.lanes=m.lanes,o.child=m.child,o.subtreeFlags=0,o.deletions=null,o.memoizedProps=m.memoizedProps,o.memoizedState=m.memoizedState,o.updateQueue=m.updateQueue,o.type=m.type,u=m.dependencies,o.dependencies=u===null?null:{lanes:u.lanes,firstContext:u.firstContext}),o}function Td(o,u,m,y,C,F){var re=0;if(y=o,typeof y=="function")Pp(y)&&(re=1);else if(typeof y=="string")re=Dt&&Ee?Kn(o,m,Na.current)?26:z(o)?27:5:Dt?Kn(o,m,Na.current)?26:5:Ee&&z(o)?27:5;else e:switch(y){case Qp:return o=t(31,m,u,C),o.elementType=Qp,o.lanes=F,o;case dc:return cu(m.children,C,F,u);case Yg:re=8,C|=24;break;case Hp:return o=t(12,m,u,C|2),o.elementType=Hp,o.lanes=F,o;case Gp:return o=t(13,m,u,C),o.elementType=Gp,o.lanes=F,o;case Wp:return o=t(19,m,u,C),o.elementType=Wp,o.lanes=F,o;case qb:case Xp:return o=C|32,o=t(30,m,u,o),o.elementType=Xp,o.lanes=F,o.stateNode={autoName:null,paired:null,clones:null,ref:null},o;default:if(typeof y=="object"&&y!==null)switch(y.$$typeof){case No:re=10;break e;case Kg:re=9;break e;case Vp:re=11;break e;case jp:re=14;break e;case Il:re=16,y=null;break e}re=29,m=Error(r(130,o===null?"null":typeof o,"")),y=null}return u=t(re,m,u,C),u.elementType=o,u.type=y,u.lanes=F,u}function cu(o,u,m,y){return o=t(7,o,y,u),o.lanes=m,o}function Up(o,u,m){return o=t(6,o,null,u),o.lanes=m,o}function Vg(o){var u=t(18,null,null,0);return u.stateNode=o,u}function zp(o,u,m){return u=t(4,o.children!==null?o.children:[],o.key,u),u.lanes=m,u.stateNode={containerInfo:o.containerInfo,pendingChildren:null,implementation:o.implementation},u}function Pb(o,u,m,y,C,F,re,Re,$e){this.tag=1,this.containerInfo=o,this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=fu,this.callbackNode=this.next=this.pendingContext=this.context=this.cancelPendingCommit=null,this.callbackPriority=0,this.expirationTimes=G(-1),this.entangledLanes=this.shellSuspendCounter=this.errorRecoveryDisabledLanes=this.expiredLanes=this.warmLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=G(0),this.hiddenUpdates=G(null),this.identifierPrefix=y,this.onUncaughtError=C,this.onCaughtError=F,this.onRecoverableError=re,this.pooledCache=null,this.pooledCacheLanes=0,this.formState=$e,this.transitionTypes=null,this.incompleteTransitions=new Map}function Gg(o,u,m,y,C,F,re,Re,$e,pt,St,Ot){return o=new Pb(o,u,m,re,$e,pt,St,Ot,Re),u=1,F===!0&&(u|=24),F=t(3,null,null,u),o.current=F,F.stateNode=o,u=ee(),u.refCount++,o.pooledCache=u,u.refCount++,F.memoizedState={element:y,isDehydrated:m,cache:u},Us(F),o}function Wg(o){return o?(o=xe,o):xe}function jg(o){var u=o._reactInternals;if(u===void 0)throw typeof o.render=="function"?Error(r(188)):(o=Object.keys(o).join(","),Error(r(268,o)));return o=l(u),o=o!==null?c(o):null,o===null?null:cf(o.stateNode)}function Qg(o,u,m,y,C,F){C=Wg(C),y.context===null?y.context=C:y.pendingContext=C,y=$r(u),y.payload={element:m},F=F===void 0?null:F,F!==null&&(y.callback=F),m=Jr(o,y,u),m!==null&&(pa(m,o,u),ds(m,o,u))}function Xg(o,u){if(o=o.memoizedState,o!==null&&o.dehydrated!==null){var m=o.retryLane;o.retryLane=m!==0&&m<u?m:u}}function qp(o,u){Xg(o,u),(o=o.alternate)&&Xg(o,u)}var qn={},Ub=oH.default,Ia=Qa.default,Bp=Object.assign,zb=Symbol.for("react.element"),Md=Symbol.for("react.transitional.element"),fc=Symbol.for("react.portal"),dc=Symbol.for("react.fragment"),Yg=Symbol.for("react.strict_mode"),Hp=Symbol.for("react.profiler"),Kg=Symbol.for("react.consumer"),No=Symbol.for("react.context"),Vp=Symbol.for("react.forward_ref"),Gp=Symbol.for("react.suspense"),Wp=Symbol.for("react.suspense_list"),jp=Symbol.for("react.memo"),Il=Symbol.for("react.lazy"),Qp=Symbol.for("react.activity"),qb=Symbol.for("react.legacy_hidden"),Bb=Symbol.for("react.memo_cache_sentinel"),Xp=Symbol.for("react.view_transition"),Hb=Symbol.for("react.recoverable"),Zg=Symbol.iterator,$g=Symbol.for("react.optimistic_key"),Vb=Symbol.for("react.client.reference"),Ad=Array.isArray,_n=Ub.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,Gb=e.rendererVersion,Wb=e.rendererPackageName,Jg=e.extraDevToolsConfig,cf=e.getPublicInstance,jb=e.getRootHostContext,Qb=e.getChildHostContext,Xb=e.prepareForCommit,Yb=e.resetAfterCommit,Kb=e.createInstance;e.cloneMutableInstance;var Yp=e.appendInitialChild,ev=e.finalizeInitialChildren,Cd=e.shouldSetTextContent,tv=e.createTextInstance;e.cloneMutableTextInstance;var Zb=e.scheduleTimeout,$b=e.cancelTimeout,fu=e.noTimeout,Xs=e.isPrimaryRenderer;e.warnsIfNotActing;var Gi=e.supportsMutation,Ys=e.supportsPersistence,Cr=e.supportsHydration,Jb=e.getInstanceFromNode;e.beforeActiveInstanceBlur;var eS=e.preparePortalMount;e.prepareScopeUpdate,e.getInstanceFromScope;var hr=e.setCurrentUpdatePriority,ko=e.getCurrentUpdatePriority,tS=e.resolveUpdatePriority;e.trackSchedulerEvent,e.resolveEventType,e.resolveEventTimeStamp;var nS=e.shouldAttemptEagerTransition,iS=e.detachDeletedInstance;e.requestPostPaintCallback;var rS=e.maySuspendCommit,aS=e.maySuspendCommitOnUpdate,Kp=e.maySuspendCommitInSyncRender,nv=e.preloadInstance,sS=e.startSuspendingCommit,iv=e.suspendInstance,oS=e.suspendOnActiveViewTransition,lS=e.waitForCommitToBeReady;e.getSuspendedCommitReason;var hc=e.NotPendingTransition,Oo=e.HostTransitionContext,uS=e.resetFormInstance;e.bindToConsole;var cS=e.supportsMicrotasks,fS=e.scheduleMicrotask,ff=e.supportsTestSelectors,dS=e.findFiberRoot,hS=e.getBoundingRect,pS=e.getTextContent,df=e.isHiddenSubtree,mS=e.matchAccessibilityRole,_S=e.setFocusIfFocusable,gS=e.setupIntersectionObserver,vS=e.appendChild,yS=e.appendChildToContainer,bS=e.commitTextUpdate,SS=e.commitMount,ES=e.commitUpdate,wS=e.insertBefore,xS=e.insertInContainerBefore,TS=e.removeChild,MS=e.removeChildFromContainer,rv=e.resetTextContent,AS=e.hideInstance,CS=e.hideTextInstance,RS=e.unhideInstance,IS=e.unhideTextInstance,av=e.applyViewTransitionName,LS=e.restoreViewTransitionName,Zp=e.cancelViewTransitionName,sv=e.cancelRootViewTransitionName,NS=e.restoreRootViewTransitionName;e.cloneRootViewTransitionContainer,e.removeRootViewTransitionClone;var $p=e.measureInstance,ov=e.measureClonedInstance,Rd=e.wasInstanceInViewport,kS=e.hasInstanceChanged,Id=e.hasInstanceAffectedParent,Jp=e.startViewTransition;e.startGestureTransition;var lv=e.stopViewTransition,uv=e.addViewTransitionFinishedListener;e.getCurrentGestureOffset;var hf=e.createViewTransitionInstance,em=e.clearContainer,cv=e.createFragmentInstance,tm=e.updateFragmentInstanceFiber,Ld=e.commitNewChildToFragmentInstance,nm=e.deleteChildFromFragmentInstance,fv=e.cloneInstance,Nd=e.createContainerChildSet,kd=e.appendChildToContainerChildSet,dv=e.finalizeContainerChildren,im=e.replaceContainerChildren,rm=e.cloneHiddenInstance,am=e.cloneHiddenTextInstance,sm=e.isSuspenseInstancePending,om=e.isSuspenseInstanceFallback,OS=e.getSuspenseInstanceFallbackErrorDetails,DS=e.registerSuspenseInstanceRetry,FS=e.canHydrateFormStateMarker,PS=e.isFormStateMarkerMatching,hv=e.getNextHydratableSibling,US=e.getNextHydratableSiblingAfterSingleton,zS=e.getFirstHydratableChild,qS=e.getFirstHydratableChildWithinContainer,BS=e.getFirstHydratableChildWithinActivityInstance,HS=e.getFirstHydratableChildWithinSuspenseInstance,pv=e.getFirstHydratableChildWithinSingleton,Od=e.canHydrateInstance,mv=e.canHydrateTextInstance,A=e.canHydrateActivityInstance,P=e.canHydrateSuspenseInstance,W=e.hydrateInstance,J=e.hydrateTextInstance,de=e.hydrateActivityInstance,Ae=e.hydrateSuspenseInstance,qe=e.getNextHydratableInstanceAfterActivityInstance,w=e.getNextHydratableInstanceAfterSuspenseInstance,I=e.commitHydratedInstance,B=e.commitHydratedContainer,K=e.commitHydratedActivityInstance,oe=e.commitHydratedSuspenseInstance,Se=e.finalizeHydratedChildren,Te=e.flushHydrationEvents;e.clearActivityBoundary;var Ie=e.clearSuspenseBoundary;e.clearActivityBoundaryFromContainer;var rt=e.clearSuspenseBoundaryFromContainer,Ut=e.hideDehydratedBoundary,ln=e.unhideDehydratedBoundary,gn=e.shouldDeleteUnhydratedTailInstances;e.diffHydratedPropsForDevWarnings,e.diffHydratedTextForDevWarnings,e.describeHydratableInstanceForDevWarnings;var hn=e.validateHydratableInstance,un=e.validateHydratableTextInstance,Dt=e.supportsResources,Kn=e.isHostHoistableType,Qn=e.getHoistableRoot,ea=e.getResource,La=e.acquireResource,Za=e.releaseResource,pc=e.hydrateHoistable,ta=e.mountHoistable,Ks=e.unmountHoistable,T=e.createHoistableInstance,D=e.prepareToCommitHoistables,V=e.mayResourceSuspendCommit,$=e.preloadResource,fe=e.suspendResource,Ee=e.supportsSingletons,Ue=e.resolveSingletonInstance,b=e.acquireSingletonInstance,R=e.releaseSingletonInstance,z=e.isHostSingletonType,Y=e.isSingletonScope,se=[],ye=-1,xe={},Ce=Math.clz32?Math.clz32:x,ot=Math.log,xt=Math.LN2,tn=256,vn=262144,mn=4194304,on=Ia.unstable_scheduleCallback,dn=Ia.unstable_cancelCallback,Ai=Ia.unstable_shouldYield,Rn=Ia.unstable_requestPaint,mi=Ia.unstable_now,Zs=Ia.unstable_ImmediatePriority,Do=Ia.unstable_UserBlockingPriority,pf=Ia.unstable_NormalPriority,Ll=Ia.unstable_IdlePriority,Dd=Ia.log,na=Ia.unstable_setDisableYieldValue,VS=null,Fo=null,qG=0,Po=typeof Object.is=="function"?Object.is:Je,VF=typeof reportError=="function"?reportError:function(o){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var u=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof o=="object"&&o!==null&&typeof o.message=="string"?String(o.message):String(o),error:o});if(!window.dispatchEvent(u))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",o);return}console.error(o)},BG=Object.prototype.hasOwnProperty,HR,GF,VR=!1,WF=new WeakMap,_v=[],gv=0,zT=null,GS=0,Nl=[],kl=0,Fd=null,mc=1,_c="",Na=_(null),WS=_(null),Pd=_(null),qT=_(null),ma=null,nr=null,Xn=!1,Ud=null,Ol=!1,GR=Error(r(519)),BT=_(null),lm=null,mf=null,HG=typeof AbortController<"u"?AbortController:function(){var o=[],u=this.signal={aborted:!1,addEventListener:function(m,y){o.push(y)}};this.abort=function(){u.aborted=!0,o.forEach(function(m){return m()})}},VG=Ia.unstable_scheduleCallback,GG=Ia.unstable_NormalPriority,or={$$typeof:No,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0},jS=null,vv=null,yv=null,WR=!1,HT=!1,jR=!1,um=0,QS=null,QR=0,cm=0,bv=null,jF=_n.S;_n.S=function(o,u){if(ZF=mi(),typeof u=="object"&&u!==null&&typeof u.then=="function"&&at(o,u),jS!==null)for(var m=vv;m!==null;)X(m,jS),m=m.next;if(m=o.types,m!=null){for(var y=vv;y!==null;)X(y,m),y=y.next;if(cm!==0){y=jS,y===null&&(y=jS=[]);for(var C=0;C<m.length;C++){var F=m[C];y.indexOf(F)===-1&&y.push(F)}}}jF!==null&&jF(o,u)};var fm=_(null),Sv=Error(r(460)),XR=Error(r(474)),VT=Error(r(542)),GT={then:function(){}},dm=null,Ev=null,XS=0,hm=er(!0),QF=er(!1),Dl=[],wv=0,YR=0,zd=!1,KR=!1,qd=_(null),WT=_(0),ka=_(null),vs=null,Oa=_(0),_f=0,Dn=null,qi=null,qr=null,jT=!1,xv=!1,pm=!1,QT=0,YS=0,Tv=null,WG=0,XT={readContext:L,use:zn,useCallback:_t,useContext:_t,useEffect:_t,useImperativeHandle:_t,useLayoutEffect:_t,useInsertionEffect:_t,useMemo:_t,useReducer:_t,useRef:_t,useState:_t,useDebugValue:_t,useDeferredValue:_t,useTransition:_t,useSyncExternalStore:_t,useId:_t,useHostTransitionStatus:_t,useFormState:_t,useActionState:_t,useOptimistic:_t,useMemoCache:_t,useCacheRefresh:_t,useEffectEvent:_t},XF={readContext:L,use:zn,useCallback:function(o,u){return ai().memoizedState=[o,u===void 0?null:u],o},useContext:L,useEffect:$u,useImperativeHandle:function(o,u,m){m=m!=null?m.concat([o]):null,_l(4194308,4,ec.bind(null,u,o),m)},useLayoutEffect:function(o,u){return _l(4194308,4,o,u)},useInsertionEffect:function(o,u){_l(4,2,o,u)},useMemo:function(o,u){var m=ai();u=u===void 0?null:u;var y=o();if(pm){Me(!0);try{o()}finally{Me(!1)}}return m.memoizedState=[y,u],y},useReducer:function(o,u,m){var y=ai();if(m!==void 0){var C=m(u);if(pm){Me(!0);try{m(u)}finally{Me(!1)}}}else C=u;return y.memoizedState=y.baseState=C,o={pending:null,lanes:0,dispatch:null,lastRenderedReducer:o,lastRenderedState:C},y.queue=o,o=o.dispatch=Mo.bind(null,Dn,o),[y.memoizedState,o]},useRef:function(o){var u=ai();return o={current:o},u.memoizedState=o},useState:function(o){o=wo(o);var u=o.queue,m=ic.bind(null,Dn,u);return u.dispatch=m,[o.memoizedState,m]},useDebugValue:nu,useDeferredValue:function(o,u){var m=ai();return To(m,o,u)},useTransition:function(){var o=wo(!1);return o=iu.bind(null,Dn,o.queue,!0,!1),ai().memoizedState=o,[!1,o]},useSyncExternalStore:function(o,u,m){var y=Dn,C=ai();if(Xn){if(m===void 0)throw Error(r(407));m=m()}else{if(m=u(),Wi===null)throw Error(r(349));(ui&127)!==0||Vu(y,u,m)}C.memoizedState=m;var F={value:m,getSnapshot:u};return C.queue=F,$u(Wu.bind(null,y,F,o),[o]),y.flags|=2048,zs(9,{destroy:void 0},Gu.bind(null,y,F,m,u),null),m},useId:function(){var o=ai(),u=Wi.identifierPrefix;if(Xn){var m=_c,y=mc;m=(y&~(1<<32-Ce(y)-1)).toString(32)+m,u="_"+u+"R_"+m,m=QT++,0<m&&(u+="H"+m.toString(32)),u+="_"}else m=WG++,u="_"+u+"r_"+m.toString(32)+"_";return o.memoizedState=u},useHostTransitionStatus:Sl,useFormState:dl,useActionState:dl,useOptimistic:function(o){var u=ai();u.memoizedState=u.baseState=o;var m={pending:null,lanes:0,dispatch:null,lastRenderedReducer:null,lastRenderedState:null};return u.queue=m,u=Zt.bind(null,Dn,!0,m),m.dispatch=u,[o,u]},useMemoCache:vi,useCacheRefresh:function(){return ai().memoizedState=Bs.bind(null,Dn)},useEffectEvent:function(o){var u=ai(),m={impl:o};return u.memoizedState=m,function(){if((ei&2)!==0)throw Error(r(440));return m.impl.apply(void 0,arguments)}}},YF={readContext:L,use:zn,useCallback:bl,useContext:L,useEffect:xo,useImperativeHandle:yl,useInsertionEffect:Ju,useLayoutEffect:vl,useMemo:tc,useReducer:jn,useRef:ml,useState:function(){return jn(pi)},useDebugValue:nu,useDeferredValue:function(o,u){var m=Vn();return nc(m,qi.memoizedState,o,u)},useTransition:function(){var o=jn(pi)[0],u=Vn().memoizedState;return[typeof o=="boolean"?o:Ur(o),u]},useSyncExternalStore:Eo,useId:au,useHostTransitionStatus:Sl,useFormState:Zu,useActionState:Zu,useOptimistic:function(o,u){var m=Vn();return Xu(m,qi,o,u)},useMemoCache:vi,useCacheRefresh:su,useEffectEvent:gl},jG={readContext:L,use:zn,useCallback:bl,useContext:L,useEffect:xo,useImperativeHandle:yl,useInsertionEffect:Ju,useLayoutEffect:vl,useMemo:tc,useReducer:da,useRef:ml,useState:function(){return da(pi)},useDebugValue:nu,useDeferredValue:function(o,u){var m=Vn();return qi===null?To(m,o,u):nc(m,qi.memoizedState,o,u)},useTransition:function(){var o=da(pi)[0],u=Vn().memoizedState;return[typeof o=="boolean"?o:Ur(o),u]},useSyncExternalStore:Eo,useId:au,useHostTransitionStatus:Sl,useFormState:pl,useActionState:pl,useOptimistic:function(o,u){var m=Vn();return qi!==null?Xu(m,qi,o,u):(m.baseState=o,[o,m.queue.dispatch])},useMemoCache:vi,useCacheRefresh:su,useEffectEvent:gl},ZR={enqueueSetState:function(o,u,m){o=o._reactInternals;var y=Ra(),C=$r(y);C.payload=u,m!=null&&(C.callback=m),u=Jr(o,C,y),u!==null&&(pa(u,o,y),ds(u,o,y))},enqueueReplaceState:function(o,u,m){o=o._reactInternals;var y=Ra(),C=$r(y);C.tag=1,C.payload=u,m!=null&&(C.callback=m),u=Jr(o,C,y),u!==null&&(pa(u,o,y),ds(u,o,y))},enqueueForceUpdate:function(o,u){o=o._reactInternals;var m=Ra(),y=$r(m);y.tag=2,u!=null&&(y.callback=u),u=Jr(o,y,m),u!==null&&(pa(u,o,m),ds(u,o,m))}},$R=Error(r(461)),Br=!1,JR={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null},$a=!1,YT=!1,Uo=null,gc=null,$s=0,_a=!1,Ci=!1,vc=!1,eI=!1,KF=typeof WeakSet=="function"?WeakSet:Set,ga=null,yc=!1,KS=!1,KT=!1,tI=!1,Hr=null,Js=!1,du=null,mm=8192,QG={getCacheForType:function(o){var u=L(or),m=u.data.get(o);return m===void 0&&(m=o(),u.data.set(o,m)),m},cacheSignal:function(){return L(or).controller.signal}},ZT=0,$T=1,JT=2,e3=3,t3=4;if(typeof Symbol=="function"&&Symbol.for){var ZS=Symbol.for;ZT=ZS("selector.component"),$T=ZS("selector.has_pseudo_class"),JT=ZS("selector.role"),e3=ZS("selector.test_id"),t3=ZS("selector.text")}var XG=typeof WeakMap=="function"?WeakMap:Map,ei=0,Wi=null,ti=null,ui=0,Di=0,zo=null,Bd=!1,Mv=!1,nI=!1,gf=0,pr=0,Hd=0,_m=0,iI=0,qo=0,Av=0,$S=null,eo=null,rI=!1,n3=0,ZF=0,JS=1/0,i3=null,Vd=null,lr=0,hu=null,gm=null,bc=0,aI=0,sI=null,$F=null,Cv=null,Rv=null,Iv=null,eE=0,r3=null;return qn.attemptContinuousHydration=function(o){if(o.tag===13||o.tag===31){var u=hi(o,67108864);u!==null&&pa(u,o,67108864),qp(o,67108864)}},qn.attemptHydrationAtCurrentPriority=function(o){if(o.tag===13||o.tag===31){var u=Ra();u=he(u);var m=hi(o,u);m!==null&&pa(m,o,u),qp(o,u)}},qn.attemptSynchronousHydration=function(o){switch(o.tag){case 3:if(o=o.stateNode,o.current.memoizedState.isDehydrated){var u=S(o.pendingLanes);if(u!==0){for(o.pendingLanes|=2,o.entangledLanes|=2;u;){var m=1<<31-Ce(u);o.entanglements[1]|=m,u&=~m}be(o),(ei&6)===0&&(JS=mi()+500,tt(0,!1))}}break;case 31:case 13:u=hi(o,2),u!==null&&pa(u,o,2),Ig(),qp(o,2)}},qn.batchedUpdates=function(o,u){return o(u)},qn.createComponentSelector=function(o){return{$$typeof:ZT,value:o}},qn.createContainer=function(o,u,m,y,C,F,re,Re,$e,pt){return Gg(o,u,!1,null,m,y,F,null,re,Re,$e,pt)},qn.createHasPseudoClassSelector=function(o){return{$$typeof:$T,value:o}},qn.createHydrationContainer=function(o,u,m,y,C,F,re,Re,$e,pt,St,Ot,rn,Zn){var yi;return o=Gg(m,y,!0,o,C,F,Re,Zn,$e,pt,St,Ot),o.context=Wg(null),m=o.current,y=Ra(),y=he(y),C=$r(y),C.callback=(yi=u)!=null?yi:null,Jr(m,C,y),u=y,o.current.lanes=u,Q(o,u),be(o),o},qn.createPortal=function(o,u,m){var y=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:fc,key:y==null?null:y===$g?$g:""+y,children:o,containerInfo:u,implementation:m}},qn.createRoleSelector=function(o){return{$$typeof:JT,value:o}},qn.createTestNameSelector=function(o){return{$$typeof:e3,value:o}},qn.createTextSelector=function(o){return{$$typeof:t3,value:o}},qn.defaultOnCaughtError=function(o){console.error(o)},qn.defaultOnRecoverableError=function(o){VF(o)},qn.defaultOnUncaughtError=function(o){VF(o)},qn.deferredUpdates=function(o){var u=_n.T,m=ko();try{return hr(32),_n.T=null,o()}finally{hr(m),_n.T=u}},qn.discreteUpdates=function(o,u,m,y,C){var F=_n.T,re=ko();try{return hr(2),_n.T=null,o(u,m,y,C)}finally{hr(re),_n.T=F,ei===0&&(JS=mi()+500)}},qn.findAllNodes=Rp,qn.findBoundingRects=function(o,u){if(!ff)throw Error(r(363));u=Rp(o,u),o=[];for(var m=0;m<u.length;m++)o.push(hS(u[m]));for(u=o.length-1;0<u;u--){m=o[u];for(var y=m.x,C=y+m.width,F=m.y,re=F+m.height,Re=u-1;0<=Re;Re--)if(u!==Re){var $e=o[Re],pt=$e.x,St=pt+$e.width,Ot=$e.y,rn=Ot+$e.height;if(y>=pt&&F>=Ot&&C<=St&&re<=rn){o.splice(u,1);break}else if(y!==pt||m.width!==$e.width||rn<F||Ot>re){if(!(F!==Ot||m.height!==$e.height||St<y||pt>C)){pt>y&&($e.width+=pt-y,$e.x=y),St<C&&($e.width=C-pt),o.splice(u,1);break}}else{Ot>F&&($e.height+=Ot-F,$e.y=F),rn<re&&($e.height=re-Ot),o.splice(u,1);break}}}return o},qn.findHostInstance=jg,qn.findHostInstanceWithNoPortals=function(o){return o=l(o),o=o!==null?f(o):null,o===null?null:cf(o.stateNode)},qn.findHostInstanceWithWarning=function(o){return jg(o)},qn.flushPassiveEffects=uf,qn.flushSyncFromReconciler=function(o){var u=ei;ei|=1;var m=_n.T,y=ko();try{if(hr(2),_n.T=null,o)return o()}finally{hr(y),_n.T=m,ei=u,(ei&6)===0&&tt(0,!1)}},qn.flushSyncWork=Ig,qn.focusWithin=function(o,u){if(!ff)throw Error(r(363));for(o=Mp(o),u=Mg(o,u),u=Array.from(u),o=0;o<u.length;){var m=u[o++],y=m.tag;if(!df(m)){if((y===5||y===26||y===27)&&_S(m.stateNode))return!0;for(m=m.child;m!==null;)u.push(m),m=m.sibling}}return!1},qn.getFindAllNodesFailureDescription=function(o,u){if(!ff)throw Error(r(363));var m=0,y=[];o=[Mp(o),0];for(var C=0;C<o.length;){var F=o[C++],re=F.tag,Re=o[C++],$e=u[Re];if((re!==5&&re!==26&&re!==27||!df(F))&&(Ap(F,$e)&&(y.push(Cp($e)),Re++,Re>m&&(m=Re)),Re<u.length))for(F=F.child;F!==null;)o.push(F,Re),F=F.sibling}if(m<u.length){for(o=[];m<u.length;m++)o.push(Cp(u[m]));return`findAllNodes was able to match part of the selector:
  `+(y.join(" > ")+`

No matching component was found for:
  `)+o.join(" > ")}return null},qn.getPublicRootInstance=function(o){if(o=o.current,!o.child)return null;switch(o.child.tag){case 27:case 5:return cf(o.child.stateNode);default:return o.child.stateNode}},qn.injectIntoDevTools=function(){var o={bundleType:0,version:Gb,rendererPackageName:Wb,currentDispatcherRef:_n,reconcilerVersion:"19.3.0"};if(Jg!==null&&(o.rendererConfig=Jg),typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u")o=!1;else{var u=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(u.isDisabled||!u.supportsFiber)o=!0;else{try{VS=u.inject(o),Fo=u}catch{}o=!!u.checkDCE}}return o},qn.isAlreadyRendering=function(){return(ei&6)!==0},qn.observeVisibleRects=function(o,u,m,y){if(!ff)throw Error(r(363));o=Rp(o,u);var C=gS(o,m,y).disconnect;return{disconnect:function(){C()}}},qn.shouldError=function(){return null},qn.shouldSuspend=function(){return!1},qn.startHostTransition=function(o,u,m,y){if(o.tag!==5)throw Error(r(476));var C=ru(o).queue;iu(o,C,u,hc,m===null?i:function(){var F=ru(o);return F.next===null&&(F=o.alternate.memoizedState),Ao(o,F.next.queue,{},Ra()),m(y)})},qn.updateContainer=function(o,u,m,y){var C=u.current,F=Ra();return Qg(C,F,o,u,m,y),F},qn.updateContainerSync=function(o,u,m,y){return Qg(u.current,2,o,u,m,y),2},qn},n.exports.default=n.exports,Object.defineProperty(n.exports,"__esModule",{value:!0})})(AD)),AD.exports}var Aee={exports:{}};Aee.exports;var iH;function Cee(){return iH||(iH=1,tH.exports=Mee()),tH.exports}var Ree=Cee(),Iee=Tee(Ree),F2={},Lee=0,z2=n=>`${n[0].toUpperCase()}${n.slice(1)}`;function Nee(n){return n in F2}function qD(n){return F2[n]}function BD(n){if(typeof n=="function"){let e=`${Lee++}`;return F2[e]=n,e}else Object.assign(F2,n)}function kee(n){let e=Iee(n);return e.injectIntoDevTools(),e}var bH=0,Oee=/^three(?=[A-Z])/;function SH(n,e){let t=z2(n),i=qD(t);if(n!=="primitive"&&!i)throw new Error(`R3F: ${t} is not part of the THREE namespace! Did you forget to extend? See: https://docs.pmnd.rs/react-three-fiber/api/objects#using-3rd-party-objects-declaratively`);if(n==="primitive"&&!e.object)throw new Error("R3F: Primitives without 'object' are invalid!");if(e.args!==void 0&&!Array.isArray(e.args))throw new Error("R3F: The args prop must be an array!")}function Dee(n,e,t){var i;return n=Nee(z2(n))?n:n.replace(Oee,""),SH(n,e),n==="primitive"&&(i=e.object)!=null&&i.__r3f&&delete e.object.__r3f,k2(e.object,t,n,e)}function Fee(n){if(!n.isHidden){var e;n.props.attach&&(e=n.parent)!=null&&e.object?D2(n.parent,n):Rs(n.object)&&(n.previousVisible=n.object.visible,n.object.visible=!1),n.isHidden=!0,Z1(n)}}function EH(n){if(n.isHidden){var e;if(n.props.attach&&(e=n.parent)!=null&&e.object)O2(n.parent,n);else if(Rs(n.object)){var t;n.object.visible=(t=n.previousVisible)!=null?t:!0}n.previousVisible=void 0,n.isHidden=!1,Z1(n)}}function HD(n,e,t){let i=e.root.getState();if(!(!n.parent&&n.object!==i.scene)){if(!e.object){var r,a;let s=qD(z2(e.type));e.object=(r=e.props.object)!=null?r:new s(...(a=e.props.args)!=null?a:[]),e.object.__r3f=e}if(jh(e.object,e.props),e.props.attach)O2(n,e);else if(Rs(e.object)&&Rs(n.object)){let s=n.object.children.indexOf(t?.object);if(t&&s!==-1){let l=n.object.children.indexOf(e.object);if(l!==-1){n.object.children.splice(l,1);let c=l<s?s-1:s;n.object.children.splice(c,0,e.object)}else e.object.parent=n.object,n.object.children.splice(s,0,e.object),e.object.dispatchEvent({type:"added"}),n.object.dispatchEvent({type:"childadded",child:e.object})}else n.object.add(e.object)}for(let s of e.children)HD(e,s);Z1(e)}}function vD(n,e){if(e){if(e.parent===n){let t=n.children.indexOf(e);t!==-1&&n.children.splice(t,1)}e.parent=n,n.children.push(e),HD(n,e)}}function rH(n,e,t){if(!e||!t)return;if(e.parent===n){let r=n.children.indexOf(e);r!==-1&&n.children.splice(r,1)}e.parent=n;let i=n.children.indexOf(t);i!==-1?n.children.splice(i,0,e):n.children.push(e),HD(n,e,t)}function wH(n){if(typeof n.dispose=="function"){let e=()=>{try{n.dispose()}catch{}};typeof IS_REACT_ACT_ENVIRONMENT<"u"?e():(0,Qa.unstable_scheduleCallback)(Qa.unstable_IdlePriority,e)}}function CD(n,e,t){if(!e)return;let i=!!e.parent;e.parent=null;let r=n.children.indexOf(e);r!==-1&&n.children.splice(r,1),e.props.attach?D2(n,e):Rs(e.object)&&Rs(n.object)&&(n.object.remove(e.object),uee(ND(e),e.object));let a=e.props.dispose!==null&&t!==!1;for(let l=e.children.length-1;l>=0;l--){let c=e.children[l];CD(e,c,a)}if(e.children.length=0,delete e.object.__r3f,a&&e.type!=="primitive"&&e.object.type!=="Scene"&&wH(e.object),t===void 0&&i){var s;let l=(s=e.root)==null||s.getState==null?void 0:s.getState();l&&l.internal.frames===0&&l.invalidate()}}function Pee(n,e){for(let t of[n,n.alternate])if(t!==null)if(typeof t.ref=="function"){t.refCleanup==null||t.refCleanup();let i=t.ref(e);typeof i=="function"&&(t.refCleanup=i)}else t.ref&&(t.ref.current=e)}var K1=[];function Uee(){if(K1.length!==0)try{zee()}finally{K1.length=0}}function zee(){for(let[t]of K1){let i=t.parent;if(i){t.props.attach?D2(i,t):Rs(t.object)&&Rs(i.object)&&i.object.remove(t.object);for(let r of t.children)r.props.attach?D2(t,r):Rs(r.object)&&Rs(t.object)&&t.object.remove(r.object)}t.isHidden&&EH(t),t.object.__r3f&&delete t.object.__r3f,t.type!=="primitive"&&wH(t.object)}for(let[t,i,r]of K1){t.props=i;let a=t.parent;if(a){var n,e;let s=qD(z2(t.type)),l=t.object;t.object=(n=t.props.object)!=null?n:new s(...(e=t.props.args)!=null?e:[]),t.object.__r3f=t,Pee(r,t.object),lee(ND(t),l,t.object),jh(t.object,t.props),t.props.attach?O2(a,t):Rs(t.object)&&Rs(a.object)&&a.object.add(t.object);for(let c of t.children)c.props.attach?O2(t,c):Rs(c.object)&&Rs(t.object)&&t.object.add(c.object);Z1(t)}}}var yD=()=>{},aH={},L2=bH;function qee(n){switch(n){case"beforetoggle":case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"resize":case"seeked":case"submit":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeinput":case"blur":case"fullscreenchange":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return eH;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"scroll":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return J8;case"message":switch((0,Qa.unstable_getCurrentPriorityLevel)()){case Qa.unstable_ImmediatePriority:return eH;case Qa.unstable_UserBlockingPriority:return J8;case Qa.unstable_NormalPriority:case Qa.unstable_LowPriority:return N2;case Qa.unstable_IdlePriority:return yee;default:return N2}default:return N2}}function Bee(n){typeof queueMicrotask=="function"?queueMicrotask(n):typeof Promise<"u"?Promise.resolve().then(n).catch(e=>{setTimeout(()=>{throw e})}):setTimeout(n)}var N_=kee({isPrimaryRenderer:!1,warnsIfNotActing:!1,supportsMutation:!0,supportsPersistence:!1,supportsHydration:!1,createInstance:Dee,removeChild:CD,appendChild:vD,appendInitialChild:vD,insertBefore:rH,appendChildToContainer(n,e){let t=n.getState().scene.__r3f;!e||!t||vD(t,e)},removeChildFromContainer(n,e){let t=n.getState().scene.__r3f;!e||!t||CD(t,e)},insertInContainerBefore(n,e,t){let i=n.getState().scene.__r3f;!e||!t||!i||rH(i,e,t)},getRootHostContext:()=>aH,getChildHostContext:()=>aH,commitUpdate(n,e,t,i,r){var a,s,l;SH(e,i);let c=!1;if((n.type==="primitive"&&t.object!==i.object||((a=i.args)==null?void 0:a.length)!==((s=t.args)==null?void 0:s.length)||(l=i.args)!=null&&l.some((f,p)=>{var h;return f!==((h=t.args)==null?void 0:h[p])}))&&(c=!0),c)K1.push([n,TD(i),r]);else{let f=ree(n,i),p=n.props.attach;n.props=TD(i),p!==void 0?n.props.attach=p:delete n.props.attach,Object.keys(f).length&&jh(n.object,f)}},finalizeInitialChildren:()=>!1,commitMount(){},getPublicInstance:n=>n?.object,prepareForCommit:()=>null,preparePortalMount:n=>k2(n.getState().scene,n,"",{}),resetAfterCommit:Uee,shouldSetTextContent:()=>!1,clearContainer:()=>!1,hideInstance:Fee,unhideInstance:EH,createTextInstance:yD,hideTextInstance:yD,unhideTextInstance:yD,supportsMicrotasks:!0,scheduleMicrotask:Bee,scheduleTimeout:typeof setTimeout=="function"?setTimeout:void 0,cancelTimeout:typeof clearTimeout=="function"?clearTimeout:void 0,noTimeout:-1,getInstanceFromNode:()=>null,beforeActiveInstanceBlur(){},afterActiveInstanceBlur(){},detachDeletedInstance(){},prepareScopeUpdate(){},getInstanceFromScope:()=>null,shouldAttemptEagerTransition:()=>!1,trackSchedulerEvent:()=>{},resolveEventType:()=>null,resolveEventTimeStamp:()=>-1.1,requestPostPaintCallback(){},maySuspendCommit:()=>!1,preloadInstance:()=>!0,suspendInstance(){},waitForCommitToBeReady:()=>null,NotPendingTransition:null,HostTransitionContext:di.createContext(null),setCurrentUpdatePriority(n){L2=n},getCurrentUpdatePriority(){return L2},resolveUpdatePriority(){var n;if(L2!==bH)return L2;let e=typeof window<"u"?(n=window.event)==null?void 0:n.type:void 0;return e===void 0?N2:qee(e)},resetFormInstance(){},rendererPackageName:"@react-three/fiber",rendererVersion:xee.version,applyViewTransitionName(n,e,t){},restoreViewTransitionName(n,e){},cancelViewTransitionName(n,e,t){},cancelRootViewTransitionName(n){},restoreRootViewTransitionName(n){},InstanceMeasurement:null,measureInstance:n=>null,wasInstanceInViewport:n=>!0,hasInstanceChanged:(n,e)=>!1,hasInstanceAffectedParent:(n,e)=>!1,suspendOnActiveViewTransition(n,e){},startViewTransition(n,e,t,i,r,a,s,l,c,f,p){return i(),r(),p?.(),s(),null},startGestureTransition(n,e,t,i,r,a,s,l,c,f){return s(),l(),f?.(),null},stopViewTransition(n){},addViewTransitionFinishedListener(n,e){e()},createViewTransitionInstance:n=>null,getCurrentGestureOffset(n){throw new Error("startGestureTransition is not yet supported in react-three-fiber.")},cloneMutableInstance(n,e){return n},cloneMutableTextInstance(n){return n},cloneRootViewTransitionContainer(n){throw new Error("Not implemented.")},removeRootViewTransitionClone(n,e){throw new Error("Not implemented.")},createFragmentInstance:n=>null,updateFragmentInstanceFiber(n,e){},commitNewChildToFragmentInstance(n,e){},deleteChildFromFragmentInstance(n,e){},measureClonedInstance:n=>null,maySuspendCommitOnUpdate:(n,e,t)=>!1,maySuspendCommitInSyncRender:(n,e)=>!1,startSuspendingCommit:()=>null,getSuspendedCommitReason:(n,e)=>null});var id=new Map;function P2(n,e){let t=n.state;switch(e.type){case"use":return t.status==="disposed"?!1:(n.state={status:"open"},!0);case"unmount":return t.status==="disposed"?!1:(n.state={status:"closing",token:e.token},!0);case"dispose":return t.status!=="closing"||t.token!==e.token?!1:(n.state={status:"disposed"},!0)}}function VD(n){let e=id.get(n),t=e?.fiber,i=e?.store;e&&console.warn("R3F.createRoot should only be called once!");let r=typeof reportError=="function"?reportError:console.error,a=i||_ee(q2,GD),s=t||N_.createContainer(a,vee,null,!1,null,"",r,r,r,null),l=e||{fiber:s,store:a,state:{status:"open"},ready:cee(void 0),configuration:{},ownsRenderer:!1};e||id.set(n,l);let c=!1;return{get ready(){return l.ready},configure(f={}){if(!P2(l,{type:"use"}))return fee(new Error("R3F: Cannot configure a root after disposal has started."));let p=l.ready,{promise:h,resolve:_,reject:g}=dee();l.ready=h;let E=S=>{let v=a.getState();v.gl||(l.ownsRenderer=!DD(f.gl),v.set({gl:S})),Eee(l,n,f),!l.unwatchDpr&&(f.dpr===void 0||Array.isArray(f.dpr))&&(l.unwatchDpr=wee(l)),_(this)},x=()=>{try{var S;let v=(S=a.getState().gl)!=null?S:hee(n,f.gl);OD(v)?Promise.resolve(v).then(E).catch(g):E(v)}catch(v){g(v)}};return p.status==="pending"?p.then(x,g):x(),h},render(f){if(!P2(l,{type:"use"}))return a;if(!a.getState().gl&&l.ready.status==="fulfilled"&&this.configure(),l.ready.status==="rejected")throw l.ready.reason;let p=()=>{var h;if(l.state.status!=="open"||l.ready.status==="rejected")return;if(l.ready.status==="pending"){l.ready.then(p,r);return}let _=(h=l.configuration.previous)==null?void 0:h.onCreated,g=(0,nd.jsx)(Hee,{store:a,children:f,onCreated:_,rootElement:n});if(c){N_.updateContainer(g,s,null,Y8);return}c=!0,N_.updateContainerSync(g,s,null,Y8),N_.flushSyncWork()};return p(),a},unmount(){id.get(n)===l&&xH(n)}}}function Hee({store:n,children:e,onCreated:t,rootElement:i}){return k_(()=>{let r=n.getState();r.set(a=>({internal:{...a.internal,active:!0}})),t&&t(r),n.getState().events.connected||r.events.connect==null||r.events.connect(i)},[]),(0,nd.jsx)(FD.Provider,{value:n,children:e})}function j1(n){try{return n()}catch(e){console.warn("[R3F] Error while unmounting root; teardown may be incomplete:",e)}}function xH(n,e){let t=id.get(n),i=Symbol("unmount");if(!t||!P2(t,{type:"unmount",token:i}))return;let r=()=>{var a;if(t.ready.status==="pending"){t.ready.then(r,r);return}if(!P2(t,{type:"dispose",token:i}))return;id.delete(n);let s=t.store.getState();s.internal.active=!1,j1(()=>t.unwatchDpr==null?void 0:t.unwatchDpr()),j1(()=>s.events.disconnect==null?void 0:s.events.disconnect()),(a=s.gl)!=null&&a.xr&&j1(()=>s.xr.disconnect()),s.scene&&j1(()=>mH(s.scene));let l=j1(()=>mee(s.gl,t.ownsRenderer));OD(l)?l.then(()=>e?.(n)):e?.(n)};N_.updateContainer(null,t.fiber,null,()=>{t.state.status!=="closing"||t.state.token!==i||N_.updateContainer(null,t.fiber,null,r)})}var Vee=new Set,Gee=new Set,Wee=new Set;function bD(n,e){if(n.size)for(let{callback:t}of n.values())t(e)}function lb(n,e){switch(n){case"before":return bD(Vee,e);case"after":return bD(Gee,e);case"tail":return bD(Wee,e)}}var SD,ED;function RD(n,e,t){let i=e.clock.getDelta();e.frameloop==="never"&&typeof n=="number"&&(i=n-e.clock.elapsedTime,e.clock.oldTime=e.clock.elapsedTime,e.clock.elapsedTime=n),SD=e.internal.subscribers;for(let r=0;r<SD.length;r++)ED=SD[r],ED.ref.current(ED.store.getState(),i,t);return!e.internal.priority&&e.gl.render&&e.gl.render(e.scene,e.camera),e.internal.frames=Math.max(0,e.internal.frames-1),e.frameloop==="always"?1:e.internal.frames}var U2=!1,ID=!1,wD,sH,ob;function TH(n){sH=requestAnimationFrame(TH),U2=!0,wD=0,lb("before",n),ID=!0;for(let t of id.values()){var e;ob=t.store.getState(),ob.internal.active&&(ob.frameloop==="always"||ob.internal.frames>0)&&!((e=ob.gl.xr)!=null&&e.isPresenting)&&(wD+=RD(n,ob))}if(ID=!1,lb("after",n),wD===0)return lb("tail",n),U2=!1,cancelAnimationFrame(sH)}function q2(n,e=1){var t;if(!n)return id.forEach(i=>q2(i.store.getState(),e));(t=n.gl.xr)!=null&&t.isPresenting||!n.internal.active||n.frameloop==="never"||(e>1?n.internal.frames=Math.min(60,n.internal.frames+e):ID?n.internal.frames=2:n.internal.frames=1,U2||(U2=!0,requestAnimationFrame(TH)))}function GD(n,e=!0,t,i){if(e&&lb("before",n),t)RD(n,t,i);else for(let r of id.values())RD(n,r.store.getState());e&&lb("after",n)}var xD={onClick:["click",!1],onContextMenu:["contextmenu",!1],onDoubleClick:["dblclick",!1],onWheel:["wheel",!0],onPointerDown:["pointerdown",!0],onPointerUp:["pointerup",!0],onPointerLeave:["pointerleave",!0],onPointerMove:["pointermove",!0],onPointerCancel:["pointercancel",!0],onLostPointerCapture:["lostpointercapture",!0]};function WD(n){let{handlePointer:e}=vH(n);return{priority:1,enabled:!0,compute(t,i,r){i.pointer.set(t.offsetX/i.size.width*2-1,-(t.offsetY/i.size.height)*2+1),i.raycaster.setFromCamera(i.pointer,i.camera)},connected:void 0,handlers:Object.keys(xD).reduce((t,i)=>({...t,[i]:e(i)}),{}),update:()=>{var t;let{events:i,internal:r}=n.getState();(t=r.lastEvent)!=null&&t.current&&i.handlers&&i.handlers.onPointerMove(r.lastEvent.current)},connect:t=>{let{set:i,events:r}=n.getState();if(r.disconnect==null||r.disconnect(),i(a=>({events:{...a.events,connected:t}})),r.handlers)for(let a in r.handlers){let s=r.handlers[a],[l,c]=xD[a];t.addEventListener(l,s,{passive:c})}},disconnect:()=>{let{set:t,events:i}=n.getState();if(i.connected){if(i.handlers)for(let r in i.handlers){let a=i.handlers[r],[s]=xD[r];i.connected.removeEventListener(s,a)}t(r=>({events:{...r.events,connected:void 0}}))}}}}var kr=ci(tr());var rl=ci(tr(),1);function MH(n,e){let t;return(...i)=>{window.clearTimeout(t),t=window.setTimeout(()=>n(...i),e)}}function AH({debounce:n,scroll:e,polyfill:t,offsetSize:i}={debounce:0,scroll:!1,offsetSize:!1}){let r=t||(typeof window>"u"?class{}:window.ResizeObserver);if(!r)throw new Error("This browser does not support ResizeObserver out of the box. See: https://github.com/react-spring/react-use-measure/#resize-observer-polyfills");let[a,s]=(0,rl.useState)({left:0,top:0,width:0,height:0,bottom:0,right:0,x:0,y:0}),l=(0,rl.useRef)({element:null,scrollContainers:null,resizeObserver:null,lastBounds:a,orientationHandler:null}),c=n?typeof n=="number"?n:n.scroll:null,f=n?typeof n=="number"?n:n.resize:null,p=(0,rl.useRef)(!1);(0,rl.useEffect)(()=>(p.current=!0,()=>void(p.current=!1)));let[h,_,g]=(0,rl.useMemo)(()=>{let v=()=>{if(!l.current.element)return;let{left:M,top:O,width:k,height:q,bottom:G,right:Q,x:H,y:Z}=l.current.element.getBoundingClientRect(),te={left:M,top:O,width:k,height:q,bottom:G,right:Q,x:H,y:Z};l.current.element instanceof HTMLElement&&i&&(te.height=l.current.element.offsetHeight,te.width=l.current.element.offsetWidth),Object.freeze(te),p.current&&!Yee(l.current.lastBounds,te)&&s(l.current.lastBounds=te)};return[v,f?MH(v,f):v,c?MH(v,c):v]},[s,i,c,f]);function E(){l.current.scrollContainers&&(l.current.scrollContainers.forEach(v=>v.removeEventListener("scroll",g,!0)),l.current.scrollContainers=null),l.current.resizeObserver&&(l.current.resizeObserver.disconnect(),l.current.resizeObserver=null),l.current.orientationHandler&&("orientation"in screen&&"removeEventListener"in screen.orientation?screen.orientation.removeEventListener("change",l.current.orientationHandler):"onorientationchange"in window&&window.removeEventListener("orientationchange",l.current.orientationHandler))}function x(){l.current.element&&(l.current.resizeObserver=new r(g),l.current.resizeObserver.observe(l.current.element),e&&l.current.scrollContainers&&l.current.scrollContainers.forEach(v=>v.addEventListener("scroll",g,{capture:!0,passive:!0})),l.current.orientationHandler=()=>{g()},"orientation"in screen&&"addEventListener"in screen.orientation?screen.orientation.addEventListener("change",l.current.orientationHandler):"onorientationchange"in window&&window.addEventListener("orientationchange",l.current.orientationHandler))}let S=v=>{!v||v===l.current.element||(E(),l.current.element=v,l.current.scrollContainers=CH(v),x())};return Qee(g,!!e),jee(_),(0,rl.useEffect)(()=>{E(),x()},[e,g,_]),(0,rl.useEffect)(()=>E,[]),[S,a,h]}function jee(n){(0,rl.useEffect)(()=>{let e=n;return window.addEventListener("resize",e),()=>void window.removeEventListener("resize",e)},[n])}function Qee(n,e){(0,rl.useEffect)(()=>{if(e){let t=n;return window.addEventListener("scroll",t,{capture:!0,passive:!0}),()=>void window.removeEventListener("scroll",t,!0)}},[n,e])}function CH(n){let e=[];if(!n||n===document.body)return e;let{overflow:t,overflowX:i,overflowY:r}=window.getComputedStyle(n);return[t,i,r].some(a=>a==="auto"||a==="scroll")&&e.push(n),[...e,...CH(n.parentElement)]}var Xee=["x","y","top","bottom","left","right","width","height"],Yee=(n,e)=>Xee.every(t=>n[t]===e[t]);var Uu=ci($o());var Qse=ci(S3());function Kee({ref:n,children:e,fallback:t,resize:i,style:r,gl:a,events:s=WD,eventSource:l,eventPrefix:c,shadows:f,linear:p,flat:h,legacy:_,orthographic:g,frameloop:E,dpr:x,performance:S,raycaster:v,camera:M,scene:O,onPointerMissed:k,onCreated:q,...G}){kr.useMemo(()=>BD(V1),[]);let Q=uH(),[H,Z]=AH({scroll:!0,debounce:{scroll:50,resize:0},...i}),te=kr.useRef(null),j=kr.useRef(null);kr.useImperativeHandle(n,()=>te.current);let he=LD(k),ke=kr.useCallback(jt=>he.current==null?void 0:he.current(jt),[he]),[Me,ze]=kr.useState(!1),[Ne,Ve]=kr.useState(!1);if(Me)throw Me;if(Ne)throw Ne;let Je=kr.useRef(null),[Qe,st]=lH(),We=kr.useRef(null),gt=()=>l?hH(l)?l.current:l:j.current;return kr.useInsertionEffect(()=>()=>{let jt=Je.current;Je.current=null,jt?.unmount()},[]),k_(()=>{let jt=te.current;Z.width>0&&Z.height>0&&jt&&(Je.current||(Je.current=VD(jt)),Je.current.configure({gl:a,scene:O,events:s,shadows:f,linear:p,flat:h,legacy:_,orthographic:g,frameloop:E,dpr:x,performance:S,raycaster:v,camera:M,size:Z,onPointerMissed:ke,onCreated:zt=>{var Mt;We.current=zt,zt.events.connect==null||zt.events.connect((Mt=gt())!=null?Mt:j.current),c&&zt.setEvents({compute:(Xe,et)=>{let yt=Xe[c+"X"],Wt=Xe[c+"Y"];et.pointer.set(yt/et.size.width*2-1,-(Wt/et.size.height)*2+1),et.raycaster.setFromCamera(et.pointer,et.camera)}}),q?.(zt)}}).catch(Ve),Je.current.ready.status==="fulfilled"?Je.current.render((0,Uu.jsx)(Q,{children:(0,Uu.jsx)(fH,{set:Ve,children:(0,Uu.jsx)(kr.Suspense,{fallback:(0,Uu.jsx)(cH,{set:ze}),children:e??null})})})):Je.current.ready.status==="pending"&&st(Je.current.ready))}),kr.useEffect(()=>{var jt;let zt=(jt=We.current)==null?void 0:jt.get(),Mt=gt();zt&&Mt&&zt.events.connected!==Mt&&(zt.events.connect==null||zt.events.connect(Mt))}),kr.useEffect(()=>{let jt=te.current;return()=>{var zt;jt.isConnected||(zt=Je.current)==null||zt.unmount()}},[]),(0,Uu.jsxs)("div",{ref:j,style:{position:"relative",width:"100%",height:"100%",overflow:"hidden",pointerEvents:l?"none":"auto",...r},...G,children:[(0,Uu.jsx)("div",{ref:H,style:{width:"100%",height:"100%"},children:(0,Uu.jsx)("canvas",{ref:te,style:{display:"block"},children:t})}),Qe]})}function RH(n){return(0,Uu.jsx)(G1,{children:(0,Uu.jsx)(Kee,{...n})})}var ca=ci(tr(),1);var IH={type:"change"},QD={type:"start"},NH={type:"end"},B2=new Ru,LH=new fo,Zee=Math.cos(70*w2.DEG2RAD),ua=new ve,go=2*Math.PI,zi={NONE:-1,ROTATE:0,DOLLY:1,PAN:2,TOUCH_ROTATE:3,TOUCH_PAN:4,TOUCH_DOLLY_PAN:5,TOUCH_DOLLY_ROTATE:6},jD=1e-6,H2=class extends V0{constructor(e,t=null){super(e,t),this.state=zi.NONE,this.target=new ve,this.cursor=new ve,this.minDistance=0,this.maxDistance=1/0,this.minZoom=0,this.maxZoom=1/0,this.minTargetRadius=0,this.maxTargetRadius=1/0,this.minPolarAngle=0,this.maxPolarAngle=Math.PI,this.minAzimuthAngle=-1/0,this.maxAzimuthAngle=1/0,this.enableDamping=!1,this.dampingFactor=.05,this.enableZoom=!0,this.zoomSpeed=1,this.enableRotate=!0,this.rotateSpeed=1,this.keyRotateSpeed=1,this.enablePan=!0,this.panSpeed=1,this.screenSpacePanning=!0,this.keyPanSpeed=7,this.zoomToCursor=!1,this.autoRotate=!1,this.autoRotateSpeed=2,this.keys={LEFT:"ArrowLeft",UP:"ArrowUp",RIGHT:"ArrowRight",BOTTOM:"ArrowDown"},this.mouseButtons={LEFT:Yf.ROTATE,MIDDLE:Yf.DOLLY,RIGHT:Yf.PAN},this.touches={ONE:Kf.ROTATE,TWO:Kf.DOLLY_PAN},this.target0=this.target.clone(),this.position0=this.object.position.clone(),this.zoom0=this.object.zoom,this._cursorStyle="auto",this._domElementKeyEvents=null,this._lastPosition=new ve,this._lastQuaternion=new Lr,this._lastTargetPosition=new ve,this._quat=new Lr().setFromUnitVectors(e.up,new ve(0,1,0)),this._quatInverse=this._quat.clone().invert(),this._spherical=new S_,this._sphericalDelta=new S_,this._scale=1,this._panOffset=new ve,this._rotateStart=new ut,this._rotateEnd=new ut,this._rotateDelta=new ut,this._panStart=new ut,this._panEnd=new ut,this._panDelta=new ut,this._dollyStart=new ut,this._dollyEnd=new ut,this._dollyDelta=new ut,this._dollyDirection=new ve,this._mouse=new ut,this._performCursorZoom=!1,this._pointers=[],this._pointerPositions={},this._controlActive=!1,this._onPointerMove=Jee.bind(this),this._onPointerDown=$ee.bind(this),this._onPointerUp=ete.bind(this),this._onContextMenu=ote.bind(this),this._onMouseWheel=ite.bind(this),this._onKeyDown=rte.bind(this),this._onTouchStart=ate.bind(this),this._onTouchMove=ste.bind(this),this._onMouseDown=tte.bind(this),this._onMouseMove=nte.bind(this),this._interceptControlDown=lte.bind(this),this._interceptControlUp=ute.bind(this),this.domElement!==null&&this.connect(this.domElement),this.update()}set cursorStyle(e){this._cursorStyle=e,e==="grab"?this.domElement.style.cursor="grab":this.domElement.style.cursor="auto"}get cursorStyle(){return this._cursorStyle}connect(e){super.connect(e),this.domElement.addEventListener("pointerdown",this._onPointerDown),this.domElement.addEventListener("pointercancel",this._onPointerUp),this.domElement.addEventListener("contextmenu",this._onContextMenu),this.domElement.addEventListener("wheel",this._onMouseWheel,{passive:!1}),this.domElement.getRootNode().addEventListener("keydown",this._interceptControlDown,{passive:!0,capture:!0}),this.domElement.style.touchAction="none"}disconnect(){this.state=zi.NONE,this.domElement.removeEventListener("pointerdown",this._onPointerDown),this.domElement.ownerDocument.removeEventListener("pointermove",this._onPointerMove),this.domElement.ownerDocument.removeEventListener("pointerup",this._onPointerUp),this.domElement.removeEventListener("pointercancel",this._onPointerUp),this.domElement.removeEventListener("wheel",this._onMouseWheel),this.domElement.removeEventListener("contextmenu",this._onContextMenu),this.stopListenToKeyEvents();let e=this.domElement.getRootNode();e.removeEventListener("keydown",this._interceptControlDown,{capture:!0}),e.removeEventListener("keyup",this._interceptControlUp,{capture:!0}),this._controlActive=!1,this._pointers.length=0,this._pointerPositions={},this.domElement.style.touchAction="",this.domElement.style.cursor="auto"}dispose(){this.disconnect()}getPolarAngle(){return this._spherical.phi}getAzimuthalAngle(){return this._spherical.theta}getDistance(){return this.object.position.distanceTo(this.target)}listenToKeyEvents(e){e.addEventListener("keydown",this._onKeyDown),this._domElementKeyEvents=e}stopListenToKeyEvents(){this._domElementKeyEvents!==null&&(this._domElementKeyEvents.removeEventListener("keydown",this._onKeyDown),this._domElementKeyEvents=null)}saveState(){this.target0.copy(this.target),this.position0.copy(this.object.position),this.zoom0=this.object.zoom}reset(){this.target.copy(this.target0),this.object.position.copy(this.position0),this.object.zoom=this.zoom0,this.object.updateProjectionMatrix(),this.dispatchEvent(IH),this.update(),this.state=zi.NONE}pan(e,t){this._pan(e,t),this.update()}dollyIn(e){this._dollyIn(e),this.update()}dollyOut(e){this._dollyOut(e),this.update()}rotateLeft(e){this._rotateLeft(e),this.update()}rotateUp(e){this._rotateUp(e),this.update()}update(e=null){let t=this.object.position;ua.copy(t).sub(this.target),ua.applyQuaternion(this._quat),this._spherical.setFromVector3(ua),this.autoRotate&&this.state===zi.NONE&&this._rotateLeft(this._getAutoRotationAngle(e)),this.enableDamping?(this._spherical.theta+=this._sphericalDelta.theta*this.dampingFactor,this._spherical.phi+=this._sphericalDelta.phi*this.dampingFactor):(this._spherical.theta+=this._sphericalDelta.theta,this._spherical.phi+=this._sphericalDelta.phi);let i=this.minAzimuthAngle,r=this.maxAzimuthAngle;isFinite(i)&&isFinite(r)&&(i<-Math.PI?i+=go:i>Math.PI&&(i-=go),r<-Math.PI?r+=go:r>Math.PI&&(r-=go),i<=r?this._spherical.theta=Math.max(i,Math.min(r,this._spherical.theta)):this._spherical.theta=this._spherical.theta>(i+r)/2?Math.max(i,this._spherical.theta):Math.min(r,this._spherical.theta)),this._spherical.phi=Math.max(this.minPolarAngle,Math.min(this.maxPolarAngle,this._spherical.phi)),this._spherical.makeSafe(),this.enableDamping===!0?this.target.addScaledVector(this._panOffset,this.dampingFactor):this.target.add(this._panOffset),this.target.sub(this.cursor),this.target.clampLength(this.minTargetRadius,this.maxTargetRadius),this.target.add(this.cursor);let a=!1;if(this.zoomToCursor&&this._performCursorZoom||this.object.isOrthographicCamera)this._spherical.radius=this._clampDistance(this._spherical.radius);else{let s=this._spherical.radius;this._spherical.radius=this._clampDistance(this._spherical.radius*this._scale),a=s!=this._spherical.radius}if(ua.setFromSpherical(this._spherical),ua.applyQuaternion(this._quatInverse),t.copy(this.target).add(ua),this.object.lookAt(this.target),this.enableDamping===!0?(this._sphericalDelta.theta*=1-this.dampingFactor,this._sphericalDelta.phi*=1-this.dampingFactor,this._panOffset.multiplyScalar(1-this.dampingFactor)):(this._sphericalDelta.set(0,0,0),this._panOffset.set(0,0,0)),this.zoomToCursor&&this._performCursorZoom){let s=null;if(this.object.isPerspectiveCamera){let l=ua.length();s=this._clampDistance(l*this._scale);let c=l-s;this.object.position.addScaledVector(this._dollyDirection,c),this.object.updateMatrixWorld(),a=!!c}else if(this.object.isOrthographicCamera){let l=new ve(this._mouse.x,this._mouse.y,0);l.unproject(this.object);let c=this.object.zoom;this.object.zoom=Math.max(this.minZoom,Math.min(this.maxZoom,this.object.zoom/this._scale)),this.object.updateProjectionMatrix(),a=c!==this.object.zoom;let f=new ve(this._mouse.x,this._mouse.y,0);f.unproject(this.object),this.object.position.sub(f).add(l),this.object.updateMatrixWorld(),s=ua.length()}else console.warn("WARNING: OrbitControls.js encountered an unknown camera type - zoom to cursor disabled."),this.zoomToCursor=!1;s!==null&&(this.screenSpacePanning?this.target.set(0,0,-1).transformDirection(this.object.matrix).multiplyScalar(s).add(this.object.position):(B2.origin.copy(this.object.position),B2.direction.set(0,0,-1).transformDirection(this.object.matrix),Math.abs(this.object.up.dot(B2.direction))<Zee?this.object.lookAt(this.target):(LH.setFromNormalAndCoplanarPoint(this.object.up,this.target),B2.intersectPlane(LH,this.target))))}else if(this.object.isOrthographicCamera){let s=this.object.zoom;this.object.zoom=Math.max(this.minZoom,Math.min(this.maxZoom,this.object.zoom/this._scale)),s!==this.object.zoom&&(this.object.updateProjectionMatrix(),a=!0)}return this._scale=1,this._performCursorZoom=!1,a||this._lastPosition.distanceToSquared(this.object.position)>jD||8*(1-this._lastQuaternion.dot(this.object.quaternion))>jD||this._lastTargetPosition.distanceToSquared(this.target)>jD?(this.dispatchEvent(IH),this._lastPosition.copy(this.object.position),this._lastQuaternion.copy(this.object.quaternion),this._lastTargetPosition.copy(this.target),!0):!1}_getAutoRotationAngle(e){return e!==null?go/60*this.autoRotateSpeed*e:go/60/60*this.autoRotateSpeed}_getZoomScale(e){let t=Math.abs(e*.01);return Math.pow(.95,this.zoomSpeed*t)}_rotateLeft(e){this._sphericalDelta.theta-=e}_rotateUp(e){this._sphericalDelta.phi-=e}_panLeft(e,t){ua.setFromMatrixColumn(t,0),ua.multiplyScalar(-e),this._panOffset.add(ua)}_panUp(e,t){this.screenSpacePanning===!0?ua.setFromMatrixColumn(t,1):(ua.setFromMatrixColumn(t,0),ua.crossVectors(this.object.up,ua)),ua.multiplyScalar(e),this._panOffset.add(ua)}_pan(e,t){let i=this.domElement;if(this.object.isPerspectiveCamera){let r=this.object.position;ua.copy(r).sub(this.target);let a=ua.length();a*=Math.tan(this.object.fov/2*Math.PI/180),this._panLeft(2*e*a/i.clientHeight,this.object.matrix),this._panUp(2*t*a/i.clientHeight,this.object.matrix)}else this.object.isOrthographicCamera?(this._panLeft(e*(this.object.right-this.object.left)/this.object.zoom/i.clientWidth,this.object.matrix),this._panUp(t*(this.object.top-this.object.bottom)/this.object.zoom/i.clientHeight,this.object.matrix)):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - pan disabled."),this.enablePan=!1)}_dollyOut(e){this.object.isPerspectiveCamera||this.object.isOrthographicCamera?this._scale/=e:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),this.enableZoom=!1)}_dollyIn(e){this.object.isPerspectiveCamera||this.object.isOrthographicCamera?this._scale*=e:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),this.enableZoom=!1)}_updateZoomParameters(e,t){if(!this.zoomToCursor)return;this._performCursorZoom=!0;let i=this.domElement.getBoundingClientRect(),r=e-i.left,a=t-i.top,s=i.width,l=i.height;this._mouse.x=r/s*2-1,this._mouse.y=-(a/l)*2+1,this._dollyDirection.set(this._mouse.x,this._mouse.y,1).unproject(this.object).sub(this.object.position).normalize()}_clampDistance(e){return Math.max(this.minDistance,Math.min(this.maxDistance,e))}_handleMouseDownRotate(e){this._rotateStart.set(e.clientX,e.clientY)}_handleMouseDownDolly(e){this._updateZoomParameters(e.clientX,e.clientX),this._dollyStart.set(e.clientX,e.clientY)}_handleMouseDownPan(e){this._panStart.set(e.clientX,e.clientY)}_handleMouseMoveRotate(e){this._rotateEnd.set(e.clientX,e.clientY),this._rotateDelta.subVectors(this._rotateEnd,this._rotateStart).multiplyScalar(this.rotateSpeed);let t=this.domElement;this._rotateLeft(go*this._rotateDelta.x/t.clientHeight),this._rotateUp(go*this._rotateDelta.y/t.clientHeight),this._rotateStart.copy(this._rotateEnd),this.update()}_handleMouseMoveDolly(e){this._dollyEnd.set(e.clientX,e.clientY),this._dollyDelta.subVectors(this._dollyEnd,this._dollyStart),this._dollyDelta.y>0?this._dollyOut(this._getZoomScale(this._dollyDelta.y)):this._dollyDelta.y<0&&this._dollyIn(this._getZoomScale(this._dollyDelta.y)),this._dollyStart.copy(this._dollyEnd),this.update()}_handleMouseMovePan(e){this._panEnd.set(e.clientX,e.clientY),this._panDelta.subVectors(this._panEnd,this._panStart).multiplyScalar(this.panSpeed),this._pan(this._panDelta.x,this._panDelta.y),this._panStart.copy(this._panEnd),this.update()}_handleMouseWheel(e){this._updateZoomParameters(e.clientX,e.clientY),e.deltaY<0?this._dollyIn(this._getZoomScale(e.deltaY)):e.deltaY>0&&this._dollyOut(this._getZoomScale(e.deltaY)),this.update()}_handleKeyDown(e){let t=!1;switch(e.code){case this.keys.UP:e.ctrlKey||e.metaKey||e.shiftKey?this.enableRotate&&this._rotateUp(go*this.keyRotateSpeed/this.domElement.clientHeight):this.enablePan&&this._pan(0,this.keyPanSpeed),t=!0;break;case this.keys.BOTTOM:e.ctrlKey||e.metaKey||e.shiftKey?this.enableRotate&&this._rotateUp(-go*this.keyRotateSpeed/this.domElement.clientHeight):this.enablePan&&this._pan(0,-this.keyPanSpeed),t=!0;break;case this.keys.LEFT:e.ctrlKey||e.metaKey||e.shiftKey?this.enableRotate&&this._rotateLeft(go*this.keyRotateSpeed/this.domElement.clientHeight):this.enablePan&&this._pan(this.keyPanSpeed,0),t=!0;break;case this.keys.RIGHT:e.ctrlKey||e.metaKey||e.shiftKey?this.enableRotate&&this._rotateLeft(-go*this.keyRotateSpeed/this.domElement.clientHeight):this.enablePan&&this._pan(-this.keyPanSpeed,0),t=!0;break}t&&(e.preventDefault(),this.update())}_handleTouchStartRotate(e){if(this._pointers.length===1)this._rotateStart.set(e.pageX,e.pageY);else{let t=this._getSecondPointerPosition(e),i=.5*(e.pageX+t.x),r=.5*(e.pageY+t.y);this._rotateStart.set(i,r)}}_handleTouchStartPan(e){if(this._pointers.length===1)this._panStart.set(e.pageX,e.pageY);else{let t=this._getSecondPointerPosition(e),i=.5*(e.pageX+t.x),r=.5*(e.pageY+t.y);this._panStart.set(i,r)}}_handleTouchStartDolly(e){let t=this._getSecondPointerPosition(e),i=e.pageX-t.x,r=e.pageY-t.y,a=Math.sqrt(i*i+r*r);this._dollyStart.set(0,a)}_handleTouchStartDollyPan(e){this.enableZoom&&this._handleTouchStartDolly(e),this.enablePan&&this._handleTouchStartPan(e)}_handleTouchStartDollyRotate(e){this.enableZoom&&this._handleTouchStartDolly(e),this.enableRotate&&this._handleTouchStartRotate(e)}_handleTouchMoveRotate(e){if(this._pointers.length==1)this._rotateEnd.set(e.pageX,e.pageY);else{let i=this._getSecondPointerPosition(e),r=.5*(e.pageX+i.x),a=.5*(e.pageY+i.y);this._rotateEnd.set(r,a)}this._rotateDelta.subVectors(this._rotateEnd,this._rotateStart).multiplyScalar(this.rotateSpeed);let t=this.domElement;this._rotateLeft(go*this._rotateDelta.x/t.clientHeight),this._rotateUp(go*this._rotateDelta.y/t.clientHeight),this._rotateStart.copy(this._rotateEnd)}_handleTouchMovePan(e){if(this._pointers.length===1)this._panEnd.set(e.pageX,e.pageY);else{let t=this._getSecondPointerPosition(e),i=.5*(e.pageX+t.x),r=.5*(e.pageY+t.y);this._panEnd.set(i,r)}this._panDelta.subVectors(this._panEnd,this._panStart).multiplyScalar(this.panSpeed),this._pan(this._panDelta.x,this._panDelta.y),this._panStart.copy(this._panEnd)}_handleTouchMoveDolly(e){let t=this._getSecondPointerPosition(e),i=e.pageX-t.x,r=e.pageY-t.y,a=Math.sqrt(i*i+r*r);this._dollyEnd.set(0,a),this._dollyDelta.set(0,Math.pow(this._dollyEnd.y/this._dollyStart.y,this.zoomSpeed)),this._dollyOut(this._dollyDelta.y),this._dollyStart.copy(this._dollyEnd);let s=(e.pageX+t.x)*.5,l=(e.pageY+t.y)*.5;this._updateZoomParameters(s,l)}_handleTouchMoveDollyPan(e){this.enableZoom&&this._handleTouchMoveDolly(e),this.enablePan&&this._handleTouchMovePan(e)}_handleTouchMoveDollyRotate(e){this.enableZoom&&this._handleTouchMoveDolly(e),this.enableRotate&&this._handleTouchMoveRotate(e)}_addPointer(e){this._pointers.push(e.pointerId)}_removePointer(e){delete this._pointerPositions[e.pointerId];for(let t=0;t<this._pointers.length;t++)if(this._pointers[t]==e.pointerId){this._pointers.splice(t,1);return}}_isTrackingPointer(e){for(let t=0;t<this._pointers.length;t++)if(this._pointers[t]==e.pointerId)return!0;return!1}_trackPointer(e){let t=this._pointerPositions[e.pointerId];t===void 0&&(t=new ut,this._pointerPositions[e.pointerId]=t),t.set(e.pageX,e.pageY)}_getSecondPointerPosition(e){let t=e.pointerId===this._pointers[0]?this._pointers[1]:this._pointers[0];return this._pointerPositions[t]}_customWheelEvent(e){let t=e.deltaMode,i={clientX:e.clientX,clientY:e.clientY,deltaY:e.deltaY};switch(t){case 1:i.deltaY*=16;break;case 2:i.deltaY*=100;break}return e.ctrlKey&&!this._controlActive&&(i.deltaY*=10),i}};function $ee(n){this.enabled!==!1&&(this._pointers.length===0&&(this.domElement.setPointerCapture(n.pointerId),this.domElement.ownerDocument.addEventListener("pointermove",this._onPointerMove),this.domElement.ownerDocument.addEventListener("pointerup",this._onPointerUp)),!this._isTrackingPointer(n)&&(this._addPointer(n),n.pointerType==="touch"?this._onTouchStart(n):this._onMouseDown(n),this._cursorStyle==="grab"&&(this.domElement.style.cursor="grabbing")))}function Jee(n){this.enabled!==!1&&(n.pointerType==="touch"?this._onTouchMove(n):this._onMouseMove(n))}function ete(n){switch(this._removePointer(n),this._pointers.length){case 0:this.domElement.releasePointerCapture(n.pointerId),this.domElement.ownerDocument.removeEventListener("pointermove",this._onPointerMove),this.domElement.ownerDocument.removeEventListener("pointerup",this._onPointerUp),this.dispatchEvent(NH),this.state=zi.NONE,this._cursorStyle==="grab"&&(this.domElement.style.cursor="grab");break;case 1:let e=this._pointers[0],t=this._pointerPositions[e];this._onTouchStart({pointerId:e,pageX:t.x,pageY:t.y});break}}function tte(n){let e;switch(n.button){case 0:e=this.mouseButtons.LEFT;break;case 1:e=this.mouseButtons.MIDDLE;break;case 2:e=this.mouseButtons.RIGHT;break;default:e=-1}switch(e){case Yf.DOLLY:if(this.enableZoom===!1)return;this._handleMouseDownDolly(n),this.state=zi.DOLLY;break;case Yf.ROTATE:if(n.ctrlKey||n.metaKey||n.shiftKey){if(this.enablePan===!1)return;this._handleMouseDownPan(n),this.state=zi.PAN}else{if(this.enableRotate===!1)return;this._handleMouseDownRotate(n),this.state=zi.ROTATE}break;case Yf.PAN:if(n.ctrlKey||n.metaKey||n.shiftKey){if(this.enableRotate===!1)return;this._handleMouseDownRotate(n),this.state=zi.ROTATE}else{if(this.enablePan===!1)return;this._handleMouseDownPan(n),this.state=zi.PAN}break;default:this.state=zi.NONE}this.state!==zi.NONE&&this.dispatchEvent(QD)}function nte(n){switch(this.state){case zi.ROTATE:if(this.enableRotate===!1)return;this._handleMouseMoveRotate(n);break;case zi.DOLLY:if(this.enableZoom===!1)return;this._handleMouseMoveDolly(n);break;case zi.PAN:if(this.enablePan===!1)return;this._handleMouseMovePan(n);break}}function ite(n){this.enabled===!1||this.enableZoom===!1||this.state!==zi.NONE||(n.preventDefault(),this.dispatchEvent(QD),this._handleMouseWheel(this._customWheelEvent(n)),this.dispatchEvent(NH))}function rte(n){this.enabled!==!1&&this._handleKeyDown(n)}function ate(n){switch(this._trackPointer(n),this._pointers.length){case 1:switch(this.touches.ONE){case Kf.ROTATE:if(this.enableRotate===!1)return;this._handleTouchStartRotate(n),this.state=zi.TOUCH_ROTATE;break;case Kf.PAN:if(this.enablePan===!1)return;this._handleTouchStartPan(n),this.state=zi.TOUCH_PAN;break;default:this.state=zi.NONE}break;case 2:switch(this.touches.TWO){case Kf.DOLLY_PAN:if(this.enableZoom===!1&&this.enablePan===!1)return;this._handleTouchStartDollyPan(n),this.state=zi.TOUCH_DOLLY_PAN;break;case Kf.DOLLY_ROTATE:if(this.enableZoom===!1&&this.enableRotate===!1)return;this._handleTouchStartDollyRotate(n),this.state=zi.TOUCH_DOLLY_ROTATE;break;default:this.state=zi.NONE}break;default:this.state=zi.NONE}this.state!==zi.NONE&&this.dispatchEvent(QD)}function ste(n){switch(this._trackPointer(n),this.state){case zi.TOUCH_ROTATE:if(this.enableRotate===!1)return;this._handleTouchMoveRotate(n),this.update();break;case zi.TOUCH_PAN:if(this.enablePan===!1)return;this._handleTouchMovePan(n),this.update();break;case zi.TOUCH_DOLLY_PAN:if(this.enableZoom===!1&&this.enablePan===!1)return;this._handleTouchMoveDollyPan(n),this.update();break;case zi.TOUCH_DOLLY_ROTATE:if(this.enableZoom===!1&&this.enableRotate===!1)return;this._handleTouchMoveDollyRotate(n),this.update();break;default:this.state=zi.NONE}}function ote(n){this.enabled!==!1&&n.preventDefault()}function lte(n){n.key==="Control"&&(this._controlActive=!0,this.domElement.getRootNode().addEventListener("keyup",this._interceptControlUp,{passive:!0,capture:!0}))}function ute(n){n.key==="Control"&&(this._controlActive=!1,this.domElement.getRootNode().removeEventListener("keyup",this._interceptControlUp,{passive:!0,capture:!0}))}var ki=ci($o(),1),cte=new Bc(1,1,1),kH=new Map(jm.map(n=>[n.key,new Bh({color:n.color,roughness:.85,metalness:n.key==="gold"?.4:0,transparent:n.opacity!=null,opacity:n.opacity??1,emissive:n.emissive??"#000000",depthWrite:n.opacity==null})]));function fte(n){let e=0;for(let t=0;t<n.length;t++)e=e*33+n.charCodeAt(t)|0;return .9+Math.abs(e)%100/100*.12}var OH=380;function dte({material:n,blocks:e,bornAt:t,onPointer:i}){let r=(0,ca.useRef)(null),a=Math.max(64,2**Math.ceil(Math.log2(e.length+1))),s=(0,ca.useMemo)(()=>new gi,[]),l=(0,ca.useMemo)(()=>new Vt,[]);(0,ca.useLayoutEffect)(()=>{let f=r.current;if(!f)return;let p=performance.now();e.forEach((h,_)=>{let g=t.get(h.id),E=g?Math.min(1,(p-g)/OH):1;s.position.set(h.x,h.y+(1-E)*1.5,h.z),s.scale.setScalar(.3+.7*E),s.updateMatrix(),f.setMatrixAt(_,s.matrix),l.setScalar(fte(h.id)),f.setColorAt(_,l)}),f.count=e.length,f.instanceMatrix.needsUpdate=!0,f.instanceColor&&(f.instanceColor.needsUpdate=!0),f.computeBoundingSphere()},[e,t,s,l]),$1(()=>{let f=r.current;if(!f||t.size===0)return;let p=performance.now(),h=!1;e.forEach((_,g)=>{let E=t.get(_.id);if(!E)return;let x=Math.min(1,(p-E)/OH),S=1-Math.pow(1-x,3);s.position.set(_.x,_.y+(1-S)*1.5,_.z),s.scale.setScalar(.3+.7*S),s.updateMatrix(),f.setMatrixAt(g,s.matrix),h=!0,x>=1&&t.delete(_.id)}),h&&(f.instanceMatrix.needsUpdate=!0)});let c=kH.get(n)??kH.get("stone");return(0,ki.jsx)("instancedMesh",{ref:r,args:[cte,c,a],frustumCulled:!1,onPointerMove:f=>i(f,f.instanceId!=null?e[f.instanceId]??null:null,"move"),onClick:f=>i(f,f.instanceId!=null?e[f.instanceId]??null:null,"click"),onContextMenu:f=>i(f,f.instanceId!=null?e[f.instanceId]??null:null,"context")})}function hte(){let{camera:n,gl:e}=UD(),t=(0,ca.useMemo)(()=>new H2(n,e.domElement),[n,e]);return(0,ca.useEffect)(()=>(t.target.set(0,3,0),e.domElement.clientWidth/Math.max(1,e.domElement.clientHeight)<.9&&n.position.multiplyScalar(1.7),t.enableDamping=!0,t.dampingFactor=.08,t.maxPolarAngle=Math.PI*.47,t.minDistance=6,t.maxDistance=140,t.update(),()=>t.dispose()),[t,n,e]),$1(()=>t.update()),null}function pte(n,e){let t=document.createElement("canvas"),i=t.getContext("2d");i.font="600 44px system-ui, sans-serif";let r=Math.ceil(i.measureText(n).width)+48;t.width=r,t.height=76,i.font="600 44px system-ui, sans-serif",i.fillStyle="rgba(12,16,26,0.82)",i.beginPath(),i.roundRect(0,0,r,76,38),i.fill(),i.fillStyle=e,i.beginPath(),i.arc(30,38,11,0,Math.PI*2),i.fill(),i.fillStyle="#fff",i.fillText(n,50,53);let a=new y0(t);return a.colorSpace=Yr,{tex:a,aspect:r/76}}function DH({text:n,color:e,position:t}){let{tex:i,aspect:r}=(0,ca.useMemo)(()=>pte(n,e),[n,e]);return(0,ca.useEffect)(()=>()=>i.dispose(),[i]),(0,ki.jsx)("sprite",{position:t,scale:[.9*r,.9,1],renderOrder:10,children:(0,ki.jsx)("spriteMaterial",{map:i,depthTest:!1,transparent:!0})})}function mte({player:n,at:e}){let t=(0,ca.useRef)(null);return $1(({clock:i})=>{t.current&&(t.current.position.y=e.y+1.6+Math.sin(i.elapsedTime*3)*.15)}),(0,ki.jsxs)("group",{ref:t,position:[e.x,e.y+1.6,e.z],children:[(0,ki.jsxs)("mesh",{rotation:[0,0,Math.PI/4],children:[(0,ki.jsx)("octahedronGeometry",{args:[.35]}),(0,ki.jsx)("meshStandardMaterial",{color:n.color,emissive:n.color,emissiveIntensity:.6})]}),(0,ki.jsx)(DH,{text:n.display_name,color:n.color,position:[0,.9,0]})]})}function V2(n){let{blocks:e,players:t,builds:i,meId:r,mode:a,canEdit:s}=n,l=(0,ca.useRef)(new Map).current,c=(0,ca.useRef)(null),[f,p]=(0,ca.useState)(null),h=c.current;if(h===null)c.current=new Set(e.map(q=>q.id));else{let q=performance.now(),G=new Set;for(let Q of e)G.add(Q.id),h.has(Q.id)||l.set(Q.id,q);c.current=G}let _=(0,ca.useMemo)(()=>{let q=new Map;for(let G of e){let Q=q.get(G.material)??[];Q.push(G),q.set(G.material,Q)}return q},[e]),g=(0,ca.useMemo)(()=>{let q=new Set(i.filter(Q=>Q.status==="building"||Q.status==="planning").map(Q=>Q.author_id)),G=new Map;for(let Q of e){if(!Q.placed_by||!q.has(Q.placed_by))continue;let H=G.get(Q.placed_by);(!H||(Q.seq??0)>(H.seq??0))&&G.set(Q.placed_by,Q)}return t.filter(Q=>Q.kind==="agent"&&G.has(Q.id)).map(Q=>({player:Q,at:G.get(Q.id)}))},[e,i,t]),E=t.filter(q=>q.id!==r&&q.kind==="human"&&q.cursor_x!=null&&q.last_seen!=null&&Date.now()-Date.parse(q.last_seen.replace(" ","T")+(q.last_seen.endsWith("Z")||/[+-]\d\d(:?\d\d)?$/.test(q.last_seen)?"":"Z"))<9e4),x=(q,G,Q)=>{if(G){if(Q)return{cell:{x:G.x,y:G.y,z:G.z},block:G};let Z=q.face?.normal;if(!Z)return null;let te={x:G.x+Math.round(Z.x),y:G.y+Math.round(Z.y),z:G.z+Math.round(Z.z)};return cw(te.x,te.y,te.z)?{cell:te,block:null}:null}if(Q)return null;let H={x:Math.round(q.point.x),y:0,z:Math.round(q.point.z)};return cw(H.x,H.y,H.z)?{cell:H,block:null}:null},S=(q,G,Q)=>{if(q.stopPropagation(),!s)return;let H=q.nativeEvent,Z=Q==="context"||a==="remove"||H.shiftKey||H.altKey,te=x(q,G,Z);if(Q==="move"){p(te?{cell:te.cell,remove:Z}:null),n.onHover(te?.cell??null);return}Q==="context"&&H.preventDefault?.(),!(q.delta>6)&&te&&(Z&&te.block?n.onRemove(te.block):Z||n.onPlace(te.cell))},v=gr.maxX-gr.minX+1,M=gr.maxZ-gr.minZ+1,O=(gr.maxX+gr.minX)/2,k=(gr.maxZ+gr.minZ)/2;return(0,ki.jsxs)(RH,{camera:{position:[26,24,30],fov:50,near:.1,far:600},dpr:[1,2],onContextMenu:q=>q.preventDefault(),onPointerMissed:()=>{p(null),n.onHover(null)},children:[(0,ki.jsx)("color",{attach:"background",args:["#9fc9ee"]}),(0,ki.jsx)("fog",{attach:"fog",args:["#9fc9ee",90,220]}),(0,ki.jsx)("hemisphereLight",{args:["#ffffff","#5b6b4a",1.1]}),(0,ki.jsx)("directionalLight",{position:[30,50,20],intensity:1.4}),(0,ki.jsx)(hte,{}),(0,ki.jsxs)("mesh",{rotation:[-Math.PI/2,0,0],position:[O,-.5,k],onPointerMove:q=>S(q,null,"move"),onClick:q=>S(q,null,"click"),children:[(0,ki.jsx)("planeGeometry",{args:[v,M]}),(0,ki.jsx)("meshStandardMaterial",{color:"#6fae5a",roughness:1})]}),(0,ki.jsx)("gridHelper",{args:[v,v,"#64a252","#64a252"],position:[O,-.49,k]}),[..._.entries()].map(([q,G])=>(0,ki.jsx)(dte,{material:q,blocks:G,bornAt:l,onPointer:S},q)),f?(0,ki.jsxs)("mesh",{position:[f.cell.x,f.cell.y,f.cell.z],raycast:()=>null,children:[(0,ki.jsx)("boxGeometry",{args:[1.04,1.04,1.04]}),(0,ki.jsx)("meshBasicMaterial",{color:f.remove?"#ff4d4f":"#ffffff",transparent:!0,opacity:.35,depthWrite:!1})]}):null,E.map(q=>(0,ki.jsxs)("group",{position:[q.cursor_x,q.cursor_y,q.cursor_z],children:[(0,ki.jsxs)("mesh",{raycast:()=>null,children:[(0,ki.jsx)("boxGeometry",{args:[1.06,1.06,1.06]}),(0,ki.jsx)("meshBasicMaterial",{color:q.color,wireframe:!0})]}),(0,ki.jsx)(DH,{text:q.display_name,color:q.color,position:[0,1.2,0]})]},q.id)),g.map(q=>(0,ki.jsx)(mte,{player:q.player,at:q.at},q.player.id))]})}var At=ci($o(),1),PH=document.documentElement.dataset.appBase??"";function _te({room:n,name:e}){let[t,i]=(0,Or.useState)(!1),[r,a]=(0,Or.useState)(e),[s,l]=(0,Or.useState)(!1);if(!n.isOwner)return(0,At.jsx)("span",{className:"world-name",children:e});if(!t)return(0,At.jsxs)("button",{type:"button",className:"world-name editable",title:"Rename room",onClick:()=>(a(e),i(!0)),children:[e,(0,At.jsx)("span",{className:"edit-hint","aria-hidden":"true",children:"\u270E"})]});async function c(){let f=r.trim();if(!f||f===e)return i(!1);l(!0),await fetch(`${PH}/api/rooms/${n.slug}`,{method:"PATCH",credentials:"same-origin",headers:{"content-type":"application/json"},body:JSON.stringify({name:f})}).catch(()=>null),l(!1),i(!1)}return(0,At.jsx)("form",{className:"rename",onSubmit:f=>{f.preventDefault(),c()},children:(0,At.jsx)("input",{autoFocus:!0,"aria-label":"Room name",value:r,maxLength:40,disabled:s,onChange:f=>a(f.target.value),onBlur:()=>void c(),onKeyDown:f=>f.key==="Escape"&&i(!1)})})}async function FH(n){try{return await navigator.clipboard.writeText(n),!0}catch{let e=document.createElement("textarea");e.value=n,e.setAttribute("readonly",""),e.style.position="fixed",e.style.opacity="0",document.body.appendChild(e),e.select();let t=document.execCommand("copy");return e.remove(),t}}function gte(){let[n,e]=(0,Or.useState)(null);return(0,Or.useEffect)(()=>{if(!n)return;let t=setTimeout(()=>e(null),2200);return()=>clearTimeout(t)},[n]),[n,e]}function vte(n){let[e,t]=(0,Or.useState)(()=>Date.now());return(0,Or.useEffect)(()=>{let i=setInterval(()=>t(Date.now()),n);return()=>clearInterval(i)},[n]),e}var yte=n=>{if(!n)return 0;let e=n.includes("T")?n:n.replace(" ","T");return Date.parse(/[zZ]|[+-]\d\d(:?\d\d)?$/.test(e)?e:e+"Z")};function UH({session:n,initialRoom:e}){let t=Sc(),i=aE(),r=e.worldId,a=n.player??null,s=n.signedIn&&!!a,[l,c]=(0,Or.useState)("place"),[f,p]=(0,Or.useState)("stone"),[h,_]=(0,Or.useState)(()=>window.matchMedia("(min-width: 900px)").matches),g=vte(5e3),{data:E}=zv("SELECT id, world_id, x, y, z, material, build_id, placed_by, seq FROM blocks WHERE world_id = ?",[r]),{data:x}=zv("SELECT * FROM players WHERE world_id = ? ORDER BY display_name",[r]),{data:S}=zv("SELECT * FROM builds WHERE world_id = ? ORDER BY created_at DESC LIMIT 20",[r]),{data:v}=zv("SELECT id, name FROM worlds WHERE id = ?",[r]),M=v[0]?.name??e.name,O=`${location.origin}${PH}/r/${e.slug}`,[k,q]=gte(),G=async()=>{let Ne=CB({roomUrl:O,roomCode:e.slug,roomName:M,userName:a?.displayName??"Me"});window.__wbPrompt=Ne,await FH(Ne)&&q("prompt")},Q=async()=>{await FH(O)&&q("link")},H=(0,Or.useMemo)(()=>new Map(x.map(Ne=>[Ne.id,Ne])),[x]),Z=x.filter(Ne=>{let Ve=yte(Ne.last_seen),Je=S.some(Qe=>Qe.author_id===Ne.id&&(Qe.status==="building"||Qe.status==="planning"));return Ne.id===a?.id||Je||g-Ve<12e4}),te=(0,Or.useCallback)(async Ne=>{if(!a)return;let Ve=AB(r,Ne.x,Ne.y,Ne.z);await t.writeTransaction(async Je=>{await Je.getOptional("SELECT id FROM blocks WHERE id = ?",[Ve])?await Je.execute("UPDATE blocks SET material = ?, placed_by = ?, build_id = NULL WHERE id = ?",[f,a.id,Ve]):await Je.execute("INSERT INTO blocks (id, world_id, x, y, z, material, placed_by) VALUES (?, ?, ?, ?, ?, ?, ?)",[Ve,r,Ne.x,Ne.y,Ne.z,f,a.id])})},[t,a,r,f]),j=(0,Or.useCallback)(async Ne=>{await t.execute("DELETE FROM blocks WHERE id = ?",[Ne.id])},[t]),he=(0,Or.useRef)(void 0);(0,Or.useEffect)(()=>{if(!a)return;let Ne="",Ve=setInterval(()=>{let Je=he.current;if(Je===void 0)return;let Qe=Je?`${Je.x}:${Je.y}:${Je.z}`:"none";Qe!==Ne&&(Ne=Qe,t.execute("UPDATE players SET cursor_x = ?, cursor_y = ?, cursor_z = ?, world_id = ? WHERE id = ?",[Je?.x??null,Je?.y??null,Je?.z??null,r,a.id]))},350);return()=>clearInterval(Ve)},[t,a,r]);let ke=(0,Or.useCallback)(Ne=>{he.current=Ne},[]),Me=i.connected?i.dataFlowStatus?.uploading||i.dataFlowStatus?.downloading||!i.hasSynced?"syncing":"synced":"offline",ze={synced:"Live",syncing:"Syncing",offline:"Offline"}[Me];return(0,At.jsxs)("div",{className:`app ${h?"panel-open":""}`,children:[(0,At.jsxs)("header",{className:"topbar",children:[(0,At.jsxs)("div",{className:"brand",children:[(0,At.jsx)("img",{src:`${document.documentElement.dataset.assetBase}/icon.png`,alt:"",width:28,height:28}),(0,At.jsxs)("div",{className:"brand-text",children:[(0,At.jsx)("strong",{children:"World Builder"}),(0,At.jsx)(_te,{room:e,name:M})]})]}),(0,At.jsxs)("div",{className:"top-right",children:[(0,At.jsx)("button",{type:"button",className:"chip",onClick:Q,title:"Copy the room link to share it",children:k==="link"?"Link copied!":"Share"}),s?(0,At.jsxs)("button",{type:"button",className:"chip primary",onClick:G,title:"Copy a prompt that teaches your agent to build in this room",children:[(0,At.jsx)(Py,{}),(0,At.jsx)("span",{className:"chip-label",children:k==="prompt"?"Copied!":"Copy prompt for your agent"})]}):(0,At.jsx)("a",{className:"chip primary",href:Df(),children:"Sign in to build"}),(0,At.jsxs)("div",{className:"avatars","aria-label":`${Z.length} builders online`,children:[Z.slice(0,5).map(Ne=>(0,At.jsx)("span",{className:"avatar",style:{background:Ne.color},title:Ne.display_name,children:Ne.kind==="agent"?(0,At.jsx)(Py,{}):bte(Ne.display_name)},Ne.id)),Z.length>5?(0,At.jsxs)("span",{className:"avatar more",children:["+",Z.length-5]}):null]}),(0,At.jsx)("span",{className:`sync ${Me}`,title:`Sync: ${ze}`,"aria-label":`Sync status: ${ze}`,children:(0,At.jsx)(oA,{state:Me})}),n.signedIn?(0,At.jsx)("a",{className:"chip",href:rA(),title:"Sign out of Kody on this site",children:"Sign out"}):null,(0,At.jsx)("button",{type:"button",className:"icon-btn",onClick:()=>_(Ne=>!Ne),"aria-label":"Toggle side panel","aria-pressed":h,children:(0,At.jsx)(OB,{})})]})]}),(0,At.jsxs)("main",{className:"stage",children:[(0,At.jsx)(V2,{blocks:E,players:x,builds:S,meId:a?.id??null,mode:l,canEdit:s,onPlace:te,onRemove:j,onHover:ke}),i.hasSynced?null:(0,At.jsx)("div",{className:"stage-overlay","aria-hidden":"true",children:(0,At.jsx)("div",{className:"boot-cube"})}),s?null:(0,At.jsxs)("div",{className:"banner",children:["You're watching. ",(0,At.jsx)("a",{href:Df(),children:"Sign in to build"})]}),k==="prompt"?(0,At.jsx)("div",{className:"toast",role:"status",children:"Copied! Paste it into Claude, ChatGPT or Grok, then ask for a castle."}):null]}),s?(0,At.jsxs)("nav",{className:"toolbar","aria-label":"Build tools",children:[(0,At.jsxs)("div",{className:"modes",role:"radiogroup","aria-label":"Mode",children:[(0,At.jsx)("button",{type:"button",role:"radio","aria-checked":l==="place",className:l==="place"?"on":"",onClick:()=>c("place"),title:"Place blocks",children:(0,At.jsx)(NB,{})}),(0,At.jsx)("button",{type:"button",role:"radio","aria-checked":l==="remove",className:l==="remove"?"on":"",onClick:()=>c("remove"),title:"Remove blocks (or right-click / shift-click)",children:(0,At.jsx)(kB,{})})]}),(0,At.jsx)("div",{className:"palette",role:"radiogroup","aria-label":"Block",children:jm.map(Ne=>(0,At.jsx)("button",{type:"button",role:"radio","aria-checked":f===Ne.key,"aria-label":Ne.label,title:Ne.label,className:`swatch ${f===Ne.key?"on":""}`,style:{background:Ne.color,opacity:Ne.opacity?.75:1},onClick:()=>{p(Ne.key),c("place")}},Ne.key))})]}):null,(0,At.jsxs)("aside",{className:"panel","aria-label":"World activity",children:[(0,At.jsxs)("section",{children:[(0,At.jsxs)("h2",{children:["Builders ",(0,At.jsx)("span",{className:"count",children:Z.length})]}),(0,At.jsxs)("ul",{className:"people",children:[Z.length===0?(0,At.jsx)("li",{className:"muted",children:"Nobody here yet."}):null,Z.map(Ne=>(0,At.jsxs)("li",{children:[(0,At.jsx)("span",{className:"dot",style:{background:Ne.color}}),(0,At.jsx)("span",{className:"kind",children:Ne.kind==="agent"?(0,At.jsx)(Py,{}):(0,At.jsx)(sA,{})}),(0,At.jsx)("span",{className:"name",children:Ne.display_name}),Ne.id===a?.id?(0,At.jsx)("span",{className:"pill",children:"you"}):null]},Ne.id))]})]}),(0,At.jsxs)("section",{children:[(0,At.jsx)("h2",{children:"Build feed"}),(0,At.jsxs)("ul",{className:"feed",children:[S.length===0?(0,At.jsx)("li",{className:"muted",children:"No agent builds yet. Ask your agent to build something!"}):null,S.map(Ne=>{let Ve=H.get(Ne.author_id),Je=Ne.status==="building"||Ne.status==="planning";return(0,At.jsxs)("li",{className:Je?"active":"",children:[(0,At.jsxs)("div",{className:"feed-head",children:[(0,At.jsx)("span",{className:"dot",style:{background:Ve?.color??"#888"}}),(0,At.jsx)("span",{className:"name",children:Ve?.display_name??"An agent"}),(0,At.jsx)("span",{className:`status ${Ne.status}`,children:Je?"building":Ne.status})]}),Ne.prompt?(0,At.jsx)("p",{className:"prompt",children:Ne.prompt}):null,(0,At.jsxs)("div",{className:"feed-meta",children:[Ne.block_count.toLocaleString()," blocks"]})]},Ne.id)})]})]}),(0,At.jsxs)("section",{className:"howto",children:[(0,At.jsx)("h2",{children:"Bring your agent"}),(0,At.jsxs)("p",{children:["Connect Claude, ChatGPT or Grok to Kody. Copy the prompt, paste it into your agent, then ask: ",(0,At.jsx)("em",{children:'"Build me a castle."'})," Its blocks stream in here live."]}),s?(0,At.jsx)("button",{type:"button",className:"cta small",onClick:G,children:k==="prompt"?"Copied!":"Copy prompt for your agent"}):(0,At.jsx)("a",{className:"cta small",href:Df(),children:"Sign in to build"})]}),(0,At.jsxs)("details",{className:"details",children:[(0,At.jsx)("summary",{children:"Details"}),(0,At.jsxs)("dl",{children:[(0,At.jsx)("dt",{children:"Blocks"}),(0,At.jsx)("dd",{children:E.length.toLocaleString()}),(0,At.jsx)("dt",{children:"Room code"}),(0,At.jsx)("dd",{className:"mono",children:e.slug}),(0,At.jsx)("dt",{children:"World id"}),(0,At.jsx)("dd",{className:"mono",children:r}),(0,At.jsx)("dt",{children:"Your player"}),(0,At.jsx)("dd",{className:"mono",children:a?.id??"spectator"}),(0,At.jsx)("dt",{children:"Sync"}),(0,At.jsxs)("dd",{children:[ze,i.lastSyncedAt?` \xB7 ${i.lastSyncedAt.toLocaleTimeString()}`:""]}),(0,At.jsx)("dt",{children:"PowerSync"}),(0,At.jsx)("dd",{className:"mono",children:new URL(n.powersyncUrl).host})]})]})]})]})}function bte(n){return n.split(/\s+/).map(e=>e[0]).join("").slice(0,2).toUpperCase()}var zu=ci(tr(),1);function zH(n,e,t=7){let i=new Map,r=(s,l,c,f)=>{cw(s,l,c)&&i.set(`${s}:${l}:${c}`,{x:s,y:l,z:c,material:f})},a=5;for(let s=-t;s<=t;s++)for(let l=-t;l<=t;l++)r(n+s,0,e+l,(s+l)%2===0?"cobble":"stone");for(let s=1;s<=a;s++)for(let l=-t;l<=t;l++)for(let[c,f]of[[l,-t],[l,t],[-t,l],[t,l]])f===t&&Math.abs(c)<=1&&s<=3||r(n+c,s,e+f,"stone");for(let s=-t;s<=t;s+=2)for(let[l,c]of[[s,-t],[s,t],[-t,s],[t,s]])r(n+l,a+1,e+c,"cobble");for(let[s,l]of[[-t,-t],[t,-t],[-t,t],[t,t]]){let c=a+4;for(let f=1;f<=c;f++)for(let p=-1;p<=1;p++)for(let h=-1;h<=1;h++)(p!==0||h!==0||f===c)&&r(n+s+p,f,e+l+h,"brick");for(let f=-2;f<=2;f++)for(let p=-2;p<=2;p++)(Math.abs(f)===2||Math.abs(p)===2)&&r(n+s+f,c+1,e+l+p,"obsidian");r(n+s,c+1,e+l,"gold")}for(let s=1;s<=7;s++)for(let l=-2;l<=2;l++)for(let c=-2;c<=2;c++)if(Math.abs(l)===2||Math.abs(c)===2){let f=s===4&&(l===0||c===0);r(n+l,s,e+c,f?"glass":"plank")}for(let s=-2;s<=2;s++)for(let l=-2;l<=2;l++)r(n+s,8,e+l,"wood");for(let s=9;s<=12;s++)r(n,s,e,"wood");return r(n+1,12,e,"banner"),r(n+2,12,e,"banner"),r(n+1,11,e,"banner"),[...i.values()].sort((s,l)=>s.y-l.y||s.z-l.z||s.x-l.x)}var Jn=ci($o(),1),Ste="preview",XD=()=>{};function Ete(){let n=(0,zu.useMemo)(()=>zH(0,0),[]),[e,t]=(0,zu.useState)(0);return(0,zu.useEffect)(()=>{if(window.matchMedia("(prefers-reduced-motion: reduce)").matches){t(n.length);return}let r=setInterval(()=>t(a=>a>=n.length+60?0:a+12),120);return()=>clearInterval(r)},[n]),(0,zu.useMemo)(()=>n.slice(0,Math.min(e,n.length)).map(i=>({id:`${i.x}:${i.y}:${i.z}`,world_id:Ste,x:i.x,y:i.y,z:i.z,material:i.material,build_id:null,placed_by:null,seq:null})),[n,e])}function qH({appBase:n}){let e=Ete(),[t,i]=(0,zu.useState)(null),[r,a]=(0,zu.useState)(!1),[s,l]=(0,zu.useState)(null);(0,zu.useEffect)(()=>{fetch(`${n}/api/me`,{credentials:"same-origin"}).then(p=>p.json()).then(i,()=>i({signedIn:!1}))},[n]);async function c(){a(!0),l(null);try{let p=await fetch(`${n}/api/rooms`,{method:"POST",credentials:"same-origin"}),h=await p.json().catch(()=>({}));if(!p.ok||!h.room)throw new Error(h.error??"Could not create a room. Try again.");lw(`/r/${h.room.slug}`)}catch(p){l(p instanceof Error?p.message:"Could not create a room. Try again."),a(!1)}}let f=t!==null&&!t.signedIn;return(0,Jn.jsxs)("div",{className:"landing",children:[(0,Jn.jsx)("div",{className:"landing-preview","aria-hidden":"true",children:(0,Jn.jsx)(V2,{blocks:e,players:[],builds:[],meId:null,mode:"place",canEdit:!1,onPlace:XD,onRemove:XD,onHover:XD})}),(0,Jn.jsxs)("header",{className:"landing-top",children:[(0,Jn.jsxs)("div",{className:"brand",children:[(0,Jn.jsx)("img",{src:`${document.documentElement.dataset.assetBase}/icon.png`,alt:"",width:30,height:30}),(0,Jn.jsx)("strong",{children:"World Builder"})]}),t?.signedIn?(0,Jn.jsx)("a",{className:"chip",href:rA(),title:"Sign out of Kody on this site",children:"Sign out"}):f?(0,Jn.jsx)("a",{className:"chip",href:Df(),children:"Sign in to build"}):null]}),(0,Jn.jsxs)("main",{className:"hero",children:[(0,Jn.jsxs)("p",{className:"eyebrow",children:[(0,Jn.jsx)("span",{className:"live-dot"})," Live multiplayer \xB7 humans + agents"]}),(0,Jn.jsx)("h1",{children:"Build a 3D world together, with your friends and your AI agents."}),(0,Jn.jsx)("p",{className:"lede",children:"Open a room, share the link, and place blocks together. Then paste one prompt into Claude, ChatGPT or Grok and ask for a castle. Everyone in the room watches it go up block by block."}),(0,Jn.jsxs)("div",{className:"hero-actions",children:[(0,Jn.jsx)("button",{type:"button",className:"cta",onClick:c,disabled:r||f||t===null,children:r?"Creating\u2026":"Create a room"}),(0,Jn.jsx)("button",{type:"button",className:"cta ghost",onClick:()=>lw("/r/main"),children:"Watch the main world"}),f?(0,Jn.jsxs)("p",{className:"hint",children:[(0,Jn.jsx)("a",{href:Df(),children:"Sign in to build"})," and create your own room, or watch the main world."]}):null,s?(0,Jn.jsx)("p",{className:"hint error",role:"alert",children:s}):null]}),(0,Jn.jsxs)("ul",{className:"features",children:[(0,Jn.jsxs)("li",{children:[(0,Jn.jsx)(sA,{}),(0,Jn.jsxs)("span",{children:[(0,Jn.jsx)("strong",{children:"One-click rooms"})," with a private share link"]})]}),(0,Jn.jsxs)("li",{children:[(0,Jn.jsx)(Py,{}),(0,Jn.jsxs)("span",{children:[(0,Jn.jsx)("strong",{children:"Bring your own agent"})," over Kody MCP or the CLI"]})]}),(0,Jn.jsxs)("li",{children:[(0,Jn.jsx)(oA,{state:"synced"}),(0,Jn.jsxs)("span",{children:[(0,Jn.jsx)("strong",{children:"Live sync"})," for every block, powered by PowerSync"]})]})]})]}),(0,Jn.jsxs)("footer",{className:"landing-foot",children:["Powered by ",(0,Jn.jsx)("a",{href:"https://www.powersync.com",target:"_blank",rel:"noreferrer",children:"PowerSync"})," and"," ",(0,Jn.jsx)("a",{href:"https://kody.codes",target:"_blank",rel:"noreferrer",children:"Kody"})]})]})}var ls;(function(n){n.IDBBatchAtomicVFS="IDBBatchAtomicVFS",n.OPFSCoopSyncVFS="OPFSCoopSyncVFS",n.AccessHandlePoolVFS="AccessHandlePoolVFS",n.OPFSWriteAheadVFS="OPFSWriteAheadVFS",n.InMemoryVfs="InMemoryVFS"})(ls||(ls={}));function mT(n){return n!=ls.IDBBatchAtomicVFS&&n!=ls.InMemoryVfs}async function ene(n){if(n){let{default:e}=await Promise.resolve().then(()=>(HH(),BH));return e()}else{let{default:e}=await Promise.resolve().then(()=>(GH(),VH));return e()}}async function tne(n){if(n){let{default:e}=await Promise.resolve().then(()=>(jH(),WH));return e()}else{let{default:e}=await Promise.resolve().then(()=>(XH(),QH));return e()}}async function bV({vfs:n,filename:e,encryptionKey:t}){let i=tne,r;switch(n){case ls.IDBBatchAtomicVFS:{i=ene;let{IDBBatchAtomicVFS:s}=await Promise.resolve().then(()=>(eV(),JH));r=l=>s.create(e,l,{lockPolicy:"exclusive"});break}case ls.AccessHandlePoolVFS:{let{AccessHandlePoolVFS:s}=await Promise.resolve().then(()=>(aV(),rV));r=l=>s.create(e,l);break}case ls.OPFSCoopSyncVFS:{let{OPFSCoopSyncVFS:s}=await Promise.resolve().then(()=>(lV(),oV));r=l=>s.create(e,l);break}case ls.OPFSWriteAheadVFS:{let{OPFSWriteAheadVFS:s}=await Promise.resolve().then(()=>(gV(),_V));r=l=>s.create(e,l,{});break}case ls.InMemoryVfs:{let{MemoryVFS:s}=await Promise.resolve().then(()=>(yV(),vV));r=l=>s.create(e,l);break}}let a=await i(t);return{module:a,vfs:await r(a)}}var EV=Symbol("Comlink.proxy"),wF=Symbol("Comlink.endpoint"),_T=Symbol("Comlink.releaseProxy"),SF=Symbol("Comlink.finalizer"),Z2=Symbol("Comlink.thrown"),wV=n=>typeof n=="object"&&n!==null||typeof n=="function",nne={canHandle:n=>wV(n)&&n[EV],serialize(n){let{port1:e,port2:t}=new MessageChannel;return tR(n,e),[t,[t]]},deserialize(n){return n.start(),gT(n)}},ine={canHandle:n=>wV(n)&&Z2 in n,serialize({value:n}){let e;return n instanceof Error?e={isError:!0,value:{message:n.message,name:n.name,stack:n.stack}}:e={isError:!1,value:n},[e,[]]},deserialize(n){throw n.isError?Object.assign(new Error(n.value.message),n.value):n.value}},xV=new Map([["proxy",nne],["throw",ine]]);function rne(n,e){for(let t of n)if(e===t||t==="*"||t instanceof RegExp&&t.test(e))return!0;return!1}function tR(n,e=globalThis,t=["*"]){e.addEventListener("message",function i(r){if(!r||!r.data)return;if(!rne(t,r.origin)){console.warn(`Invalid origin '${r.origin}' for comlink proxy`);return}let{id:a,type:s,path:l}=Object.assign({path:[]},r.data),c=(r.data.argumentList||[]).map(F_),f;try{let p=l.slice(0,-1).reduce((_,g)=>_[g],n),h=l.reduce((_,g)=>_[g],n);switch(s){case"GET":f=h;break;case"SET":p[l.slice(-1)[0]]=F_(r.data.value),f=!0;break;case"APPLY":f=h.apply(p,c);break;case"CONSTRUCT":{let _=new h(...c);f=nR(_)}break;case"ENDPOINT":{let{port1:_,port2:g}=new MessageChannel;tR(n,g),f=vT(_,[_])}break;case"RELEASE":f=void 0;break;default:return}}catch(p){f={value:p,[Z2]:0}}Promise.resolve(f).catch(p=>({value:p,[Z2]:0})).then(p=>{let[h,_]=eR(p);e.postMessage(Object.assign(Object.assign({},h),{id:a}),_),s==="RELEASE"&&(e.removeEventListener("message",i),TV(e),SF in n&&typeof n[SF]=="function"&&n[SF]())}).catch(p=>{let[h,_]=eR({value:new TypeError("Unserializable return value"),[Z2]:0});e.postMessage(Object.assign(Object.assign({},h),{id:a}),_)})}),e.start&&e.start()}function ane(n){return n.constructor.name==="MessagePort"}function TV(n){ane(n)&&n.close()}function gT(n,e){let t=new Map;return n.addEventListener("message",function(r){let{data:a}=r;if(!a||!a.id)return;let s=t.get(a.id);if(s)try{s(a)}finally{t.delete(a.id)}}),EF(n,t,[],e)}function K2(n){if(n)throw new Error("Proxy has been released and is not useable")}function MV(n){return hb(n,new Map,{type:"RELEASE"}).then(()=>{TV(n)})}var $2=new WeakMap,J2="FinalizationRegistry"in globalThis&&new FinalizationRegistry(n=>{let e=($2.get(n)||0)-1;$2.set(n,e),e===0&&MV(n)});function sne(n,e){let t=($2.get(e)||0)+1;$2.set(e,t),J2&&J2.register(n,e,n)}function one(n){J2&&J2.unregister(n)}function EF(n,e,t=[],i=function(){}){let r=!1,a=new Proxy(i,{get(s,l){if(K2(r),l===_T)return()=>{one(a),MV(n),e.clear(),r=!0};if(l==="then"){if(t.length===0)return{then:()=>a};let c=hb(n,e,{type:"GET",path:t.map(f=>f.toString())}).then(F_);return c.then.bind(c)}return EF(n,e,[...t,l])},set(s,l,c){K2(r);let[f,p]=eR(c);return hb(n,e,{type:"SET",path:[...t,l].map(h=>h.toString()),value:f},p).then(F_)},apply(s,l,c){K2(r);let f=t[t.length-1];if(f===wF)return hb(n,e,{type:"ENDPOINT"}).then(F_);if(f==="bind")return EF(n,e,t.slice(0,-1));let[p,h]=SV(c);return hb(n,e,{type:"APPLY",path:t.map(_=>_.toString()),argumentList:p},h).then(F_)},construct(s,l){K2(r);let[c,f]=SV(l);return hb(n,e,{type:"CONSTRUCT",path:t.map(p=>p.toString()),argumentList:c},f).then(F_)}});return sne(a,n),a}function lne(n){return Array.prototype.concat.apply([],n)}function SV(n){let e=n.map(eR);return[e.map(t=>t[0]),lne(e.map(t=>t[1]))]}var AV=new WeakMap;function vT(n,e){return AV.set(n,e),n}function nR(n){return Object.assign(n,{[EV]:!0})}function eR(n){for(let[e,t]of xV)if(t.canHandle(n)){let[i,r]=t.serialize(n);return[{type:"HANDLER",name:e,value:i},r]}return[{type:"RAW",value:n},AV.get(n)||[]]}function F_(n){switch(n.type){case"HANDLER":return xV.get(n.name).deserialize(n.value);case"RAW":return n.value}}function hb(n,e,t,i){return new Promise(r=>{let a=une();e.set(a,r),n.start&&n.start(),n.postMessage(Object.assign({id:a},t),i)})}function une(){return new Array(4).fill(0).map(()=>Math.floor(Math.random()*Number.MAX_SAFE_INTEGER).toString(16)).join("-")}var Kh;(function(n){n.DATA="ps_data",n.CRUD="ps_crud",n.BUCKETS="ps_buckets",n.OPLOG="ps_oplog",n.UNTYPED="ps_untyped"})(Kh||(Kh={}));var Is;(function(n){n.PROCESS_TEXT_LINE="line_text",n.PROCESS_BSON_LINE="line_binary",n.STOP="stop",n.START="start",n.NOTIFY_TOKEN_REFRESHED="refreshed_token",n.NOTIFY_CRUD_UPLOAD_COMPLETED="completed_upload",n.UPDATE_SUBSCRIPTIONS="update_subscriptions",n.CONNECTION_STATE="connection"})(Is||(Is={}));async function rR(n,e,t){let{rawRows:i}=await n.executeRaw("SELECT CAST(powersync_control(?, ?) AS TEXT)",[e,t]);return i[0][0]}function yT(n,e=null){return rR(n,"target_checkpoint_request_id",e)}var xF="9223372036854775807";var aR=class{internal;totalOperations;downloadedOperations;downloadedFraction;constructor(e){this.internal=e;let t=this.untilPriority(2147483647);this.totalOperations=t.totalOperations,this.downloadedOperations=t.downloadedOperations,this.downloadedFraction=t.downloadedFraction}untilPriority(e){let t=0,i=0;for(let a of Object.values(this.internal.buckets))a.priority<=e&&(i+=a.since_last,t+=a.target_count-a.at_last);let r=t==0?0:i/t;return{totalOperations:t,downloadedOperations:i,downloadedFraction:r}}};var Kc=class{core;jsState;constructor(e,t){this.core=e,this.jsState=t}get connected(){return this.core?.connected??!1}get connecting(){return this.core?.connecting??!1}get downloading(){return this.core?.downloading!=null}get uploading(){return this.jsState.uploading??!1}get downloadError(){return this.jsState.downloadError}get uploadError(){return this.jsState.uploadError}get dataFlowStatus(){return{downloading:this.downloading,uploading:this.uploading,downloadError:this.downloadError,uploadError:this.uploadError}}get lastSyncedAt(){return this.statusForPriority(2147483647)?.lastSyncedAt}get hasSynced(){return this.statusForPriority(2147483647)?.hasSynced}get syncStreams(){return this.core?.streams.map(e=>new oR(this,e))}forStream(e){let t=JSON.stringify(e.parameters),i=this.core?.streams?.find(r=>r.name==e.name&&t==JSON.stringify(r.parameters));return i&&new oR(this,i)}get priorityStatusEntries(){return this.core?.priority_status.map(CV)}get downloadProgress(){let e=this.core?.downloading;return e==null?null:new aR(e)}statusForPriority(e){let t=this.core?.priority_status;if(t!=null){for(let i of t)if(i.priority>=e)return CV(i);return{priority:e,lastSyncedAt:void 0,hasSynced:!1}}}isEqual(e){let t=(s,l)=>l instanceof Error?this.serializeError(l):l,i={core:this.core,jsState:this.jsState},r=e,a={core:r.core,jsState:r.jsState};return JSON.stringify(i,t)==JSON.stringify(a,t)}getMessage(){return`SyncStatus<connected: ${this.connected} connecting: ${this.connecting} lastSyncedAt: ${this.lastSyncedAt} hasSynced: ${this.hasSynced}. Downloading: ${this.downloading}. Uploading: ${this.uploading}. UploadError: ${this.uploadError}, DownloadError?: ${this.downloadError}>`}toJSON(){return{core:this.core,dataFlow:{uploading:this.uploading,uploadError:this.serializeError(this.uploadError),downloadError:this.serializeError(this.downloadError)}}}serializeError(e){if(typeof e>"u")return;let t={name:e.name,message:e.message,stack:e.stack};return typeof e.cause<"u"&&(t.cause=e.cause instanceof Error?this.serializeError(e.cause):e.cause),t}};function cne(n){return n==null?void 0:new Date(n/1e3)}function CV(n){return{priority:n.priority,hasSynced:n.has_synced??void 0,lastSyncedAt:cne(n.last_synced_at)}}var oR=class{status;core;subscription;constructor(e,t){this.status=e,this.core=t,this.subscription={name:t.name,parameters:t.parameters,active:t.active,isDefault:t.is_default,hasExplicitSubscription:t.has_explicit_subscription,expiresAt:t.expires_at!=null?new Date(t.expires_at*1e3):null,hasSynced:t.last_synced_at!=null,lastSyncedAt:t.last_synced_at!=null?new Date(t.last_synced_at*1e3):null}}get progress(){if(this.status.core?.downloading==null)return null;let{total:e,downloaded:t}=this.core.progress,i=e==0?0:t/e;return{totalOperations:e,downloadedOperations:t,downloadedFraction:i}}get priority(){return this.core.priority}};function RV(n,e){return{appMetadata:n.appMetadata??{},connectionMethod:n.connectionMethod??e,fetchStrategy:n.fetchStrategy??Xd.Buffered,params:n.params??{},includeDefaultStreams:n.includeDefaultStreams??!0,retryDelayMs:n.retryDelayMs??5e3,crudUploadThrottleMs:n.crudUploadThrottleMs??1e3,checkpointMode:n.checkpointMode??"legacy"}}var bT=class extends Gr{options;connectingPromise;syncStreamInitPromise;disconnectingPromise;pendingConnectionOptions;currentOptions;syncStreamImplementation;syncDisposer;locallyActiveSubscriptions=new Map;constructor(e){super(),this.options=e,this.connectingPromise=null,this.syncStreamInitPromise=null,this.disconnectingPromise=null,this.pendingConnectionOptions=null,this.syncStreamImplementation=null,this.currentOptions=null,this.syncDisposer=null}get connector(){return this.pendingConnectionOptions?.connector??null}get connectionOptions(){return this.currentOptions??this.pendingConnectionOptions?.options??null}get logger(){return this.options.logger}async close(){await this.syncStreamImplementation?.dispose(),await this.syncDisposer?.()}async connect(e,t,i){let r=!!this.pendingConnectionOptions,a=RV(t,this.options.defaultConnectionMethod);this.pendingConnectionOptions={connector:e,options:a,schema:i},e.postCheckpointRequest&&a.checkpointMode=="legacy"&&this.logger.log({level:Jt.warn,message:"The backend connector implements postCheckpointRequest, but connect() was called without checkpoint requests enabled."}),(!r||this.syncStreamImplementation)&&await this.disconnectInternal();let s=async()=>{if(this.pendingConnectionOptions)return this.connectingPromise=this.connectInternal().catch(()=>{}).finally(s),this.connectingPromise;this.connectingPromise=null};return this.connectingPromise??=this.connectInternal().catch(()=>{}).finally(s),this.connectingPromise}async connectInternal(){let e=null;await this.disconnectInternal(),this.syncStreamInitPromise=new Promise(async(t,i)=>{try{if(!this.pendingConnectionOptions){this.logger.log({level:Jt.debug,message:"No pending connection options found, not creating sync stream implementation"}),t();return}if(this.disconnectingPromise){t();return}let{connector:r,options:a,schema:s}=this.pendingConnectionOptions;e=a,this.currentOptions=a,this.pendingConnectionOptions=null;let l=this.subscriptionIdentity,{sync:c,onDispose:f}=await this.options.createSyncImplementation(r,{subscriptions:this.activeStreams,serializedSchema:s});this.iterateListeners(p=>p.syncStreamCreated?.(c)),this.syncStreamImplementation=c,this.syncDisposer=f,await this.syncStreamImplementation.waitForReady(),this.subscriptionIdentity!==l&&this.syncStreamImplementation.updateSubscriptions(this.activeStreams),t()}catch(r){i(r)}}),await this.syncStreamInitPromise,this.syncStreamInitPromise=null,e&&(await this.disconnectingPromise,this.logger.log({level:Jt.debug,message:"Attempting to connect to PowerSync instance"}),await this.syncStreamImplementation?.connect(e))}async disconnect(){this.pendingConnectionOptions=null,this.currentOptions=null,await this.disconnectInternal()}async disconnectInternal(){if(this.disconnectingPromise)return this.disconnectingPromise;this.disconnectingPromise=this.performDisconnect(),await this.disconnectingPromise,this.disconnectingPromise=null}async performDisconnect(){await this.syncStreamInitPromise;let e=this.syncStreamImplementation;this.syncStreamImplementation=null;let t=this.syncDisposer;this.syncDisposer=null,await e?.disconnect(),await e?.dispose(),await t?.()}stream(e,t,i){let r={name:t,parameters:i},a=s=>e.firstStatusMatching(l=>l.forStream(r)?.subscription.hasSynced,s);return{...r,subscribe:async s=>{await e.rustSubscriptionsCommand({subscribe:{stream:{name:t,params:i},ttl:s?.ttl,priority:s?.priority}}),this.syncStreamImplementation||await e.resolveOfflineSyncStatus();let l=`${t}|${JSON.stringify(i)}`,c=this.locallyActiveSubscriptions.get(l);if(c==null){let f=()=>{this.locallyActiveSubscriptions.delete(l),this.subscriptionsMayHaveChanged()};c=new TF(t,i,this.logger,a,f),this.locallyActiveSubscriptions.set(l,c),this.subscriptionsMayHaveChanged()}return new MF(c)},unsubscribeAll:async()=>{await e.rustSubscriptionsCommand({unsubscribe:{name:t,params:i}}),this.subscriptionsMayHaveChanged()}}}get activeStreams(){return[...this.locallyActiveSubscriptions.values()].map(e=>({name:e.name,params:e.parameters}))}get subscriptionIdentity(){return[...this.locallyActiveSubscriptions.keys()].join(`
`)}subscriptionsMayHaveChanged(){this.syncStreamImplementation?.updateSubscriptions(this.activeStreams)}},TF=class{name;parameters;logger;waitForFirstSync;clearSubscription;refcount=0;constructor(e,t,i,r,a){this.name=e,this.parameters=t,this.logger=i,this.waitForFirstSync=r,this.clearSubscription=a}decrementRefCount(){this.refcount--,this.refcount==0&&this.clearSubscription()}},MF=class{subscription;active=!0;constructor(e){this.subscription=e,e.refcount++,IV?.register(this,e,this)}get name(){return this.subscription.name}get parameters(){return this.subscription.parameters}waitForFirstSync(e){return this.subscription.waitForFirstSync(e)}unsubscribe(){this.active&&(this.active=!1,IV?.unregister(this),this.subscription.decrementRefCount())}},IV="FinalizationRegistry"in globalThis?new FinalizationRegistry(n=>{n.logger.log({level:Jt.warn,message:`A subscription to ${n.name} with params ${JSON.stringify(n.parameters)} leaked! Please ensure calling unsubscribe() when you don't need a subscription anymore. For global subscriptions, consider storing them in global fields to avoid this warning.`})}):null;var lR=class{table;head;_length;constructor(e){this.table=[...e],this.head=0,this._length=this.table.length}get isEmpty(){return this.length==0}get length(){return this._length}removeFirst(){if(this.isEmpty)throw new Error("Queue is empty");let e=this.table[this.head];return this._length--,this.table[this.head]=void 0,this.head=(this.head+1)%this.table.length,e}addLast(e){if(this.length==this.table.length)throw new Error("Queue is full");this.table[(this.head+this._length)%this.table.length]=e,this._length++}};var ST=class{available;size;firstWaiter;lastWaiter;constructor(e){this.available=new lR(e),this.size=this.available.length}addWaiter(e,t){let i={isActive:!0,acquiredItems:[],remainingItems:e,onAcquire:t,prev:this.lastWaiter};return this.lastWaiter?(this.lastWaiter.next=i,this.lastWaiter=i):this.lastWaiter=this.firstWaiter=i,i}deactivateWaiter(e){let{prev:t,next:i}=e;e.isActive=!1,t&&(t.next=i),i&&(i.prev=t),e==this.firstWaiter&&(this.firstWaiter=i),e==this.lastWaiter&&(this.lastWaiter=t)}requestPermits(e,t){if(e<=0||e>this.size)throw new Error(`Invalid amount of items requested (${e}), must be between 1 and ${this.size}`);return new Promise((i,r)=>{function a(){r(t?.reason??new Error("Semaphore acquire aborted"))}if(t?.aborted)return a();let s,l=()=>{let p=s.acquiredItems;s.acquiredItems=[];for(let h of p){let _=this.firstWaiter;_?(_.acquiredItems.push(h),_.remainingItems--,_.remainingItems==0&&_.onAcquire()):this.available.addLast(h)}},c=()=>{t?.removeEventListener("abort",c),s.isActive&&(this.deactivateWaiter(s),a())},f=()=>{this.deactivateWaiter(s),t?.removeEventListener("abort",c);let p=s.acquiredItems;i({items:p,release:l})};for(s=this.addWaiter(e,f);!this.available.isEmpty&&s.remainingItems>0;)s.acquiredItems.push(this.available.removeFirst()),s.remainingItems--;if(s.remainingItems==0)return f();t?.addEventListener("abort",c)})}async requestOne(e){let{items:t,release:i}=await this.requestPermits(1,e);return{release:i,item:t[0]}}requestAll(e){return this.requestPermits(this.size,e)}},Dr=class{inner=new ST([null]);async acquire(e){let{release:t}=await this.inner.requestOne(e);return t}async runExclusive(e,t){let i=await this.acquire(t);try{return await e()}finally{i()}}};var AF={throttleMs:30,reportFetching:!0};var fne={useStorageByDefault:!1},LV=12e4,uR=class{options;schema;defaultConfig;cleanupTimeout;isDisposed;constructor(e){this.options=e,this.schema=e.schema,e.db.registerListener({schemaChanged:i=>{this.schema=i}}),this.isDisposed=!1,this.defaultConfig=fne;let t=async()=>{if(this.cleanupTimeout=null,!this.isDisposed)try{await this.cleanupResources()}catch(i){this.db.logger.log({level:Jt.error,error:i,message:"Caught error while attempting to cleanup triggers"})}finally{if(this.isDisposed)return;this.cleanupTimeout=setTimeout(t,LV)}};this.cleanupTimeout=setTimeout(t,LV)}get db(){return this.options.db}async getUUID(e){let{id:t}=await(e??this.db).get(`
      SELECT
        uuid () as id
    `);return t.replace(/-/g,"_")}async removeTriggers(e,t){for(let i of t)await e.execute(`DROP TRIGGER IF EXISTS ${i}; `)}dispose(){this.isDisposed=!0,this.cleanupTimeout&&clearTimeout(this.cleanupTimeout)}updateDefaults(e){this.defaultConfig={...this.defaultConfig,...e}}generateTriggerName(e,t,i){return`__ps_temp_trigger_${e.toLowerCase()}__${t}__${i}`}async cleanupResources(){await this.db.database.writeLock(async e=>{let t=await e.getAll(`
        SELECT
          name
        FROM
          sqlite_master
        WHERE
          type = 'trigger'
          AND name LIKE '__ps_temp_trigger_%'
      `),i=/^__ps_temp_trigger_(?:insert|update|delete)__(.+)__([a-f0-9_]{36})$/i,r=new Map;for(let a of t){let s=a.name.match(i);if(s){let[,l,c]=s,f=r.get(c);f?f.triggerNames.push(a.name):r.set(c,{table:l,id:c,triggerNames:[a.name]})}}for(let a of r.values())if(!await this.options.claimManager.checkClaim(a.id)){this.db.logger.log({level:Jt.debug,message:`Clearing resources for trigger ${a.id} with table ${a.table}`});for(let l of a.triggerNames)await e.execute(`DROP TRIGGER IF EXISTS ${l}`);await e.execute(`DROP TABLE IF EXISTS ${a.table}`)}})}async createDiffTrigger(e){await this.db.waitForReady();let{source:t,destination:i,columns:r,when:a,hooks:s,setupContext:l,useStorage:c=this.defaultConfig.useStorageByDefault}=e,f=Object.keys(a);if(f.length==0)throw new Error("At least one WHEN operation must be specified for the trigger.");let p=c?"":"TEMP",h=Object.fromEntries(Object.entries(a).map(([G,Q])=>[G,`WHEN ${Q}`])),_=this.schema.tables.find(G=>G.viewName==t);if(!_)throw new Error(`Source table or view "${t}" not found in the schema.`);let g=r??_.columns.map(G=>G.name),E=_.internalName,x=[],S=await this.getUUID(l),v=c?await this.options.claimManager.obtainClaim(S):null,M=(G="NEW")=>r==null?`${G}.data`:r.length==0?"'{}'":`json_object(${g.map(Q=>`'${Q}', json_extract(${G}.data, '$.${Q}')`).join(", ")})`,O=this.db.registerListener({schemaChanged:()=>{this.db.logger.log({level:Jt.warn,message:"The PowerSync schema has changed while previously configured triggers are still operational. This might cause unexpected results."})}}),k=async G=>{let{context:Q}=G??{};O();let H=async Z=>{await this.removeTriggers(Z,x),await Z.execute(`DROP TABLE IF EXISTS ${i};`),await v?.()};Q?await H(Q):await this.db.writeLock(H)},q=async G=>{if(await s?.beforeCreate?.(G),await G.execute(`
        CREATE ${p} TABLE ${i} (
          operation_id INTEGER PRIMARY KEY AUTOINCREMENT,
          id TEXT,
          operation TEXT,
          timestamp TEXT,
          value TEXT,
          previous_value TEXT
        )
      `),f.includes(Fl.INSERT)){let Q=this.generateTriggerName(Fl.INSERT,i,S);x.push(Q),await G.execute(`
          CREATE ${p} TRIGGER ${Q} AFTER INSERT ON ${E} ${h[Fl.INSERT]} BEGIN
          INSERT INTO
            ${i} (id, operation, timestamp, value)
          VALUES
            (
              NEW.id,
              'INSERT',
              strftime ('%Y-%m-%dT%H:%M:%fZ', 'now'),
              ${M("NEW")}
            );

          END
        `)}if(f.includes(Fl.UPDATE)){let Q=this.generateTriggerName(Fl.UPDATE,i,S);x.push(Q),await G.execute(`
          CREATE ${p} TRIGGER ${Q} AFTER
          UPDATE ON ${E} ${h[Fl.UPDATE]} BEGIN
          INSERT INTO
            ${i} (id, operation, timestamp, value, previous_value)
          VALUES
            (
              NEW.id,
              'UPDATE',
              strftime ('%Y-%m-%dT%H:%M:%fZ', 'now'),
              ${M("NEW")},
              ${M("OLD")}
            );

          END;
        `)}if(f.includes(Fl.DELETE)){let Q=this.generateTriggerName(Fl.DELETE,i,S);x.push(Q),await G.execute(`
          CREATE ${p} TRIGGER ${Q} AFTER DELETE ON ${E} ${h[Fl.DELETE]} BEGIN
          INSERT INTO
            ${i} (id, operation, timestamp, value)
          VALUES
            (
              OLD.id,
              'DELETE',
              strftime ('%Y-%m-%dT%H:%M:%fZ', 'now'),
              ${M("OLD")}
            );

          END;
        `)}};try{return l?await q(l):await this.db.writeLock(q),k}catch(G){try{await k(l?{context:l}:void 0)}catch(Q){throw new AggregateError([G,Q],"Error during operation and cleanup")}throw G}}async trackTableDiff(e){let{source:t,when:i,columns:r,hooks:a,throttleMs:s=30}=e;await this.db.waitForReady();let l=this.schema.tables.find(g=>g.viewName==t);if(!l)throw new Error(`Source table or view "${t}" not found in the schema.`);let c=r??l.columns.map(g=>g.name),f=await this.getUUID(),p=`__ps_temp_track_${t}_${f}`,h=new AbortController,_=()=>h.abort();this.db.onChange({onChange:async()=>{h.signal.aborted||await this.db.writeTransaction(async g=>{let E=await e.onChange({context:g,destinationTable:p,withDiff:async(x,S,v)=>{let O=`
                  WITH
                    DIFF AS (
                      SELECT
                        ${v?.castOperationIdAsText?"id, operation, CAST(operation_id AS TEXT) as operation_id, timestamp, value, previous_value":"*"}
                      FROM
                        ${p}
                      ORDER BY
                        operation_id ASC
                    ) ${x}
                `;return g.getAll(O,S)},withExtractedDiff:async(x,S)=>{let v=`
                  WITH
                    DIFF AS (
                      SELECT
                        id,
                        ${c.length>0?`${c.map(M=>`json_extract(value, '$.${M}') as ${M}`).join(", ")},`:""} operation_id as __operation_id,
                        operation as __operation,
                        timestamp as __timestamp,
                        previous_value as __previous_value
                      FROM
                        ${p}
                      ORDER BY
                        __operation_id ASC
                    ) ${x}
                `;return g.getAll(v,S)}});return await g.execute(`DELETE FROM ${p};`),E})}},{tables:[p],signal:h.signal,throttleMs:s});try{let g=await this.createDiffTrigger({source:t,destination:p,columns:c,when:i,hooks:a});return async()=>{_(),await g()}}catch(g){try{_()}catch(E){throw new AggregateError([g,E],"Error during operation and cleanup")}throw g}}};var Zh=class n{clientId;id;op;opData;previousValues;table;transactionId;metadata;static fromRow(e){let t=JSON.parse(e.data);return new n(parseInt(e.id),t.op,t.type,t.id,e.tx_id,t.data,t.old,t.metadata)}constructor(e,t,i,r,a,s,l,c){this.clientId=e,this.id=r,this.op=t,this.opData=s,this.table=i,this.transactionId=a,this.previousValues=l,this.metadata=c}toJSON(){return{op_id:this.clientId,op:this.op,type:this.table,id:this.id,tx_id:this.transactionId,data:this.opData,old:this.previousValues,metadata:this.metadata}}equals(e){return JSON.stringify(this.toComparisonArray())==JSON.stringify(e.toComparisonArray())}toComparisonArray(){return[this.transactionId,this.clientId,this.op,this.table,this.id,this.opData,this.previousValues,this.metadata]}};var fR=class extends Gr{get listenerCounts(){let e={},t=0;for(let i of this.listeners)for(let r in i)i[r]&&(e[r]=(e[r]??0)+1,t++);return{...e,total:t}}get listenerMeta(){return{counts:this.listenerCounts,registerListener:e=>this.metaListener.registerListener(e)}}metaListener;constructor(){super(),this.metaListener=new Gr}registerListener(e){let t=super.registerListener(e),i=this.listenerCounts;return this.metaListener.iterateListeners(r=>{r.listenersChanged?.(i)}),()=>{t();let r=this.listenerCounts;this.metaListener.iterateListeners(a=>{a.listenersChanged?.(r)})}}};var pb=class extends fR{options;state;abortController;initialized;_closed;disposeListeners;get closed(){return this._closed}constructor(e){super(),this.options=e,this.abortController=new AbortController,this._closed=!1,this.state=this.constructInitialState(),this.disposeListeners=null,this.initialized=this.init(this.abortController.signal)}constructInitialState(){return{isLoading:!0,isFetching:this.reportFetching,error:null,lastUpdated:null,data:this.options.placeholderData}}get reportFetching(){return this.options.watchOptions.reportFetching??!0}async updateSettingsInternal(e,t){this._closed||t.aborted||(this.options.watchOptions=e,this.iterateListeners(i=>i[rE.SETTINGS_WILL_UPDATE]?.()),!this.state.isFetching&&this.reportFetching&&await this.updateState({isFetching:!0}),await this.runWithReporting(()=>this.linkQuery({abortSignal:t,settings:e})))}async updateSettings(e){this.abortController.abort();let t=new AbortController;return this.abortController=t,await this.initialized,this.updateSettingsInternal(e,t.signal)}async updateState(e){this._closed||(typeof e.error<"u"&&(await this.iterateAsyncListenersWithError(async t=>t.onError?.(e.error)),e.isFetching=!1,e.isLoading=!1),Object.assign(this.state,{lastUpdated:new Date},e),typeof e.data<"u"&&await this.iterateAsyncListenersWithError(async t=>t.onData?.(this.state.data)),await this.iterateAsyncListenersWithError(async t=>t.onStateChange?.(this.state)))}async init(e){let{db:t}=this.options,i=t.registerListener({closing:async()=>{await this.close()}});await t.waitForReady();let r=t.registerListener({schemaChanged:async()=>{await this.runWithReporting(async()=>{await this.updateSettings(this.options.watchOptions)})}}),a=()=>{i(),r()};if(this._closed){a();return}this.disposeListeners=a,await this.runWithReporting(async()=>{await this.updateSettingsInternal(this.options.watchOptions,e)})}async close(){this._closed=!0,this.abortController.abort(),this.disposeListeners?.(),this.disposeListeners=null,this.iterateListeners(e=>e.closed?.()),this.listeners.clear()}async runWithReporting(e){try{await e()}catch(t){await this.updateState({error:t})}}async iterateAsyncListenersWithError(e){try{await this.iterateAsyncListeners(async t=>e(t))}catch(t){try{await this.iterateAsyncListeners(async i=>i.onError?.(t))}catch(i){this.options.db.logger.log({level:Jt.error,message:"Watched query error handler threw an Error",error:i})}}}};var mb=class extends pb{options;constructor(e){super(e),this.options=e}checkEquality(e,t){return this.options.comparator?.checkEquality?.(e,t)??!1}async linkQuery(e){let{db:t,watchOptions:i}=this.options,{abortSignal:r}=e,a=i.query.compile(),s=await t.resolveTables(a.sql,a.parameters,{tables:e.settings.triggerOnTables});t.onChangeWithCallback({onChange:async()=>{if(!(this.closed||r.aborted))try{this.reportFetching&&!this.state.isFetching&&await this.updateState({isFetching:!0});let l={},c=await i.query.execute({sql:a.sql,parameters:[...a.parameters],db:this.options.db});if(r.aborted)return;this.reportFetching&&(l.isFetching=!1),this.state.isLoading&&(l.isLoading=!1),this.checkEquality(c,this.state.data)||Object.assign(l,{data:c}),this.state.error&&(l.error=null),Object.keys(l).length>0&&await this.updateState(l)}catch(l){await this.updateState({error:l})}}},{signal:r,tables:s,throttleMs:i.throttleMs,triggerImmediate:!0})}};var ET=Symbol.asyncIterator??Symbol.for("Symbol.asyncIterator");var ol={done:!0,value:void 0};function ad(n){return{done:!1,value:n}}function NV(n){let e=!1,t,i=null,r=!1,a=[],s=()=>{let c=t;return t=void 0,c},l=()=>{let c=p=>{r=!1;let h=s();h?p(h):i=p};r=!0,n.next().then(p=>{e=p.done==!0,c(h=>h.resolve(p))},p=>{c(h=>h.reject(p))})};return{next:()=>new Promise((c,f)=>{if(e)return c(ol);if(i){i({resolve:c,reject:f}),i=null;return}if(a.length){let p=a.shift();p.status==="fulfilled"?c(ad(p.value)):f(p.reason);return}t={resolve:c,reject:f},r||l()}),inject:c=>{let f=s();f!=null?f.resolve(ad(c)):a.push({status:"fulfilled",value:c})},injectError(c){let f=s();f!=null?f.reject(c):a.push({status:"rejected",reason:c})}}}function kV(n,e){let t="",i=[],r=!1;return{next:async()=>{for(;;){if(r)return ol;{let f=i.shift();if(f)return{done:!1,value:f}}let{done:a,value:s}=await n.next();if(a){let f=t.trim();return f.length!=0?(r=!0,{done:!1,value:f}):ol}let l=e.decode(s,{stream:!0});t+=l;let c=t.split(`
`);for(let f=0;f<c.length-1;f++){let p=c[f].trim();p.length>0&&i.push(p)}t=c[c.length-1]}}}}function OV(n){let e=[],t=!1,i=new DataView(new ArrayBuffer(4)),r=null,a=4;return{async next(){for(;;){if(e.length)return ad(e.shift());if(t)return ol;let s=await n.next();if(s.done){if(t=!0,r||a!=4)throw new Error("illegal end of stream in BSON object");return ol}let l=s.value;for(let c=0;c<l.length;){let f=l.length-c;if(r){let p=Math.min(f,a),h=new Uint8Array(l.buffer,l.byteOffset+c,p);r.set(h,r.length-a),c+=p,a-=p,a==0&&(e.push(r),r=null,a=4)}else{let p=Math.min(f,a);for(let h=0;h<p;h++)i.setUint8(4-a+h,l[c+h]);if(c+=p,a-=p,a==0){let h=i.getInt32(0,!0);if(a=h-4,a<1)throw new Error(`invalid length for bson: ${h}`);r=new Uint8Array(h),new DataView(r.buffer).setInt32(0,h,!0)}}}}}}}function DV(n,e){let t=null,i=()=>{n(),t=null};return function(){t==null&&(t=setTimeout(i,e))}}function wT(){let n=new $h;return{notify(){n.countOutstandingEvents>0||n.notify()},waitForNotification(e){return n.waitForEvent(e)}}}var $h=class n{options;waitingConsumer;outstandingEvents;constructor(e={}){this.options=e,this.outstandingEvents=[]}get countOutstandingEvents(){return this.outstandingEvents.length}notifyInner(e){let t=this.waitingConsumer;this.waitingConsumer=void 0;let i=r=>{e(r),this.options.eventDelivered?.()};t?i(t):this.outstandingEvents.push(i)}notify(e){this.notifyInner(t=>t.resolve(e))}notifyError(e){this.notifyInner(t=>t.reject(e))}waitForEvent(e){return new Promise((t,i)=>{if(this.waitingConsumer!=null)throw new Error("Illegal call to waitForEvent, already has a waiter.");let r=()=>{e?.removeEventListener("abort",a)},a=()=>{r(),this.waitingConsumer=void 0,t(void 0)},s={resolve:l=>{r(),t(l)},reject:l=>{r(),i(l)}};if(e.aborted)t(void 0);else if(this.countOutstandingEvents>0){let[l]=this.outstandingEvents.splice(0,1);l(s)}else this.waitingConsumer=s,e.addEventListener("abort",a)})}static queueBasedAsyncIterable(e,t){return{[ET]:()=>{let i=new n,r=new AbortController;function a(){r.abort(),t?.removeEventListener("abort",a)}return t&&(t.aborted?r.abort():t.addEventListener("abort",a)),e(i,r.signal),{async next(){let s=await i.waitForEvent(r.signal);return s==null?ol:ad(s)},async return(){return a(),ol}}}}}};var dR=class{task;runningTask;pendingTaskParam;isThrottling;closed;constructor(e,t){this.task=e;let{throttleEnabled:i=!0}=t??{};this.isThrottling=i,this.closed=!1}schedule(e){if(!this.closed){if(!this.isThrottling){this.task(e);return}if(this.runningTask){this.pendingTaskParam=e;return}this.execute(e)}}dispose(){this.closed=!0,this.runningTask&&(this.runningTask=void 0)}async execute(e){this.runningTask=this.task(e);try{await this.runningTask}finally{if(this.runningTask=void 0,this.pendingTaskParam){let t=this.pendingTaskParam;this.pendingTaskParam=void 0,this.execute(t)}}}};var dne={keyBy:n=>n&&typeof n=="object"&&typeof n.id=="string"?n.id:JSON.stringify(n),compareBy:n=>JSON.stringify(n)},hR=class extends pb{options;comparator;constructor(e){super(e),this.options=e,this.comparator=e.rowComparator??dne}differentiate(e,t){let{keyBy:i,compareBy:r}=this.comparator,a=!1,s=new Map,l=new Set(t.keys()),c={all:[],added:[],removed:[],updated:[],unchanged:[]};for(let f of e){let p=i(f),h=r(f);s.set(p,{hash:h,item:f});let _=t.get(p);_?h==_.hash?(c.unchanged.push(_.item),c.all.push(_.item),s.set(p,_)):(a=!0,c.updated.push({current:f,previous:_.item}),c.all.push(f)):(a=!0,c.added.push(f),c.all.push(f)),l.delete(p)}return c.removed=Array.from(l).map(f=>t.get(f).item),a=a||c.removed.length>0,{diff:c,hasChanged:a,map:s}}async linkQuery(e){let{db:t,watchOptions:i}=this.options,{abortSignal:r}=e,a=i.query.compile(),s=await t.resolveTables(a.sql,a.parameters,{tables:e.settings.triggerOnTables}),l=new Map;this.state.data.forEach(c=>{l.set(this.comparator.keyBy(c),{hash:this.comparator.compareBy(c),item:c})}),t.onChangeWithCallback({onChange:async()=>{if(!(this.closed||r.aborted))try{this.reportFetching&&!this.state.isFetching&&await this.updateState({isFetching:!0});let c={},f=await i.query.execute({sql:a.sql,parameters:[...a.parameters],db:this.options.db});if(r.aborted)return;this.reportFetching&&(c.isFetching=!1),this.state.isLoading&&(c.isLoading=!1);let{diff:p,hasChanged:h,map:_}=this.differentiate(f,l);l=_,h&&(await this.iterateAsyncListenersWithError(g=>g.onDiff?.(p)),Object.assign(c,{data:p.all})),this.state.error&&(c.error=null),Object.keys(c).length>0&&await this.updateState(c)}catch(c){await this.updateState({error:c})}}},{signal:r,tables:s,throttleMs:i.throttleMs,triggerImmediate:!0})}};var pR=class{options;constructor(e){this.options=e}resolveOptions(e){return{reportFetching:e?.reportFetching??AF.reportFetching,throttleMs:e?.throttleMs??AF.throttleMs,triggerOnTables:e?.triggerOnTables}}watch(e){return new mb({db:this.options.db,comparator:e?.comparator??gP,placeholderData:e?.placeholderData??[],watchOptions:{...this.resolveOptions(e),query:this.options.query}})}differentialWatch(e){return new hR({db:this.options.db,rowComparator:e?.rowComparator,placeholderData:e?.placeholderData??[],watchOptions:{...this.resolveOptions(e),query:this.options.query}})}};var mR=new Map,CF={async obtainClaim(n){if(mR.has(n))throw new Error(`A claim is already present for ${n}`);let e=async()=>{mR.delete(n)};return mR.set(n,e),e},async checkClaim(n){return mR.has(n)}};var xT=class n extends Gr{db;logger;updateListener;_clientId;constructor(e,t){super(),this.db=e,this.logger=t,this.updateListener=e.registerListener({tablesUpdated:({tables:i})=>{i.includes(Kh.CRUD)&&this.iterateListeners(r=>r.crudUpdate?.())}})}async dispose(){this.updateListener?.()}async _getClientId(){return(await this.db.get("SELECT powersync_client_id() as client_id")).client_id}getClientId(){return this._clientId==null&&(this._clientId=this._getClientId()),this._clientId}async updateLocalTarget(e){let t=await this.db.readTransaction(async r=>await yT(r)!=xF?void 0:(await r.getOptional("SELECT seq FROM main.sqlite_sequence WHERE name = 'ps_crud'"))?.seq);if(t==null)return!1;let i=await e();return this.writeTransaction(async r=>{if((await r.execute("SELECT 1 FROM ps_crud LIMIT 1")).rows?.length)return this.logger.log({level:Jt.debug,message:`New data uploaded since write checkpoint ${i} - need new write checkpoint`}),!1;let{seq:s}=await r.get("SELECT seq FROM main.sqlite_sequence WHERE name = 'ps_crud'");return s!=t?(this.logger.log({level:Jt.debug,message:`New data uploaded since write checpoint ${i} - need new write checkpoint (sequence updated)`}),!1):(this.logger.log({level:Jt.debug,message:`Updating target write checkpoint to ${i}`}),await yT(r,i),!0)})}readCheckpointRequestId(e,t=null){return this.db.writeTransaction(async i=>await rR(i,`${e}_checkpoint_request_id`,t))}async nextCrudItem(){let e=await this.db.getOptional("SELECT * FROM ps_crud ORDER BY id ASC LIMIT 1");if(e)return Zh.fromRow(e)}async hasCrud(){return!!await this.db.getOptional("SELECT 1 FROM ps_crud LIMIT 1")}async getCrudBatch(e=100){if(!await this.hasCrud())return null;let t=await this.db.getAll("SELECT * FROM ps_crud ORDER BY id ASC LIMIT ?",[e]),i=[];for(let a of t)i.push(Zh.fromRow(a));if(i.length===0)return null;let r=i[i.length-1];return{crud:i,haveMore:!0,complete:async a=>this.handleCrudCheckpoint(r.clientId,a)}}handleCrudCheckpoint(e,t){return this.writeTransaction(async i=>{await i.execute("DELETE FROM ps_crud WHERE id <= ?",[e]),t?(await i.execute("SELECT 1 FROM ps_crud LIMIT 1")).rows?.length&&await yT(i,t):await yT(i,xF)})}async writeTransaction(e,t){return this.db.writeTransaction(e,t)}async control(e,t){return await this.writeTransaction(async i=>await rR(i,e,t))}async hasMigratedSubkeys(){let{r:e}=await this.db.get("SELECT EXISTS(SELECT * FROM ps_kv WHERE key = ?) as r",[n._subkeyMigrationKey]);return e!=0}async migrateToFixedSubkeys(){await this.writeTransaction(async e=>{await e.execute("UPDATE ps_oplog SET key = powersync_remove_duplicate_key_encoding(key);"),await e.execute("INSERT OR REPLACE INTO ps_kv (key, value) VALUES (?, ?);",[n._subkeyMigrationKey,"1"])})}static _subkeyMigrationKey="powersync_js_migrated_subkeys"};var FV={state:"pending"},_R=class{currentState=FV;stateChanged=new Gr;waitingForCheckpointsReady=wT();updateState(e){this.currentState=e,this.stateChanged.iterateListeners(t=>t.stateChanged?.())}downloadIterationEnded(){this.updateState(FV),this.waitingForCheckpointsReady=wT()}disconnected(){this.updateState({state:"disconnected"})}waitForCheckpointWaiter(e){return this.waitingForCheckpointsReady.waitForNotification(e)}markCheckpointsReady(e){return e.then(t=>this.updateState({state:"ready"}),t=>{throw this.updateState({state:"error",error:t}),t})}async waitForCheckpointRequestsReady(e,t=!0){return new Promise((i,r)=>{if(e.aborted){i(!1);return}let a=()=>{let f=this.currentState;switch(f.state){case"disconnected":return r(_b()),!0;case"ready":return i(!0),!0;case"error":return r(f.error),!0;case"pending":return t&&this.waitingForCheckpointsReady.notify(),!1}};if(a())return;let s,l;function c(){s(),e.removeEventListener("abort",l)}l=()=>{i(!1),c()},s=this.stateChanged.registerListener({stateChanged(){a()&&c()}}),e.addEventListener("abort",l)})}};function _b(){return new Error("Cannot request checkpoints, sync client is disconnected.")}function gR(){return new Error("Connected with legacy checkpoint mode, cannot request checkpoints.")}function TT(n,e){let t=n?.internal_last_applied_checkpoint_request_id;return t!=null&&BigInt(t)>=e}var vR=class{requestId;database;constructor(e,t){this.requestId=e,this.database=t}get hasSynced(){let e=this.database.currentStatus.core;return TT(e,this.requestId)}async waitForSync(e){if(this.hasSynced)return;let t=e?.signal,i=this.database.connectionManager;if(i.syncStreamImplementation==null)throw _b();if(i.connectionOptions?.checkpointMode=="legacy")throw gR();if(await this.database.waitForStatus(r=>{if(TT(r.core,this.requestId))return!0;let a=r.downloadError??r.uploadError;if(a)throw new Error("Sync error while waiting for checkpoint request",{cause:a});if(!r.connected&&!r.connecting)throw _b();return!1},t),t?.aborted)throw t.reason}};var hne=/(^ps_data__|^ps_data_local__)/,pne={clearLocal:!0,soft:!1},mne={disconnect:!0},_ne=100,PV=12e4,yR=class extends Gr{options;closed;ready;currentStatus;sdkVersion;bucketStorageAdapter;_isReadyPromise;connectionManager;subscriptions;get syncStreamImplementation(){return this.connectionManager.syncStreamImplementation}get connector(){return this.connectionManager.connector}get connectionOptions(){return this.connectionManager.connectionOptions}_schema;_database;runExclusiveMutex;triggers;triggersImpl;logger;constructor(e){super(),this.options=e,this.logger=e.logger??_I();let{schema:t}=e;if(typeof t?.toJSON!="function")throw new Error("The `schema` option should be provided and should be an instance of `Schema`.");this._database=this.openDBAdapter(),this.bucketStorageAdapter=this.generateBucketStorageAdapter(),this.closed=!1,this.currentStatus=new Kc(null,{}),this.options={...e},this._schema=t,this.ready=!1,this.sdkVersion="",this.runExclusiveMutex=new Dr,this.subscriptions={firstStatusMatching:(i,r)=>this.waitForStatus(i,r),resolveOfflineSyncStatus:()=>this.resolveOfflineSyncStatus(),rustSubscriptionsCommand:async i=>{await this.writeTransaction(r=>r.execute("select powersync_control(?,?)",["subscriptions",JSON.stringify(i)]))}},this.connectionManager=new bT({createSyncImplementation:async(i,r)=>(await this.waitForReady(),this.runExclusive(async()=>{let a=this.generateSyncStreamImplementation(i,r),s=a.registerListener({statusChanged:l=>{let c=l.core==null&&this.currentStatus.core!=null?new Kc(this.currentStatus.core,l.jsState):l;this.currentStatus=c,this.iterateListeners(f=>f.statusChanged?.(c))}});return await a.waitForReady(),{sync:a,onDispose:s}})),logger:this.logger,defaultConnectionMethod:this.defaultConnectionMethod}),this._isReadyPromise=this.initialize(),this.triggers=this.triggersImpl=new uR({db:this,schema:this.schema,...this.generateTriggerManagerConfig()})}get defaultConnectionMethod(){return Qd.HTTP}get schema(){return this._schema}get database(){return this._database}get connected(){return this.currentStatus?.connected||!1}get connecting(){return this.currentStatus?.connecting||!1}generateTriggerManagerConfig(){return{claimManager:CF}}commonSyncOptions(e,t){return{...t,adapter:this.bucketStorageAdapter,uploadCrud:async()=>{await this.waitForReady(),await e.uploadData(this)},postCheckpointRequest:(i,r)=>e.postCheckpointRequest?this.waitForReady().then(a=>e.postCheckpointRequest(i,r)):null,identifier:this.database.name,logger:this.logger}}generateBucketStorageAdapter(){return new xT(this.database,this.logger)}async waitForReady(){this.ready||await this._isReadyPromise}async waitForFirstSync(e){let t=e instanceof AbortSignal?e:e?.signal,i=e&&"priority"in e?e.priority:void 0,r=i===void 0?a=>a.hasSynced:a=>a.statusForPriority(i)?.hasSynced==!0;return this.waitForStatus(r,t)}async waitForStatus(e,t){if(!e(this.currentStatus))return new Promise((i,r)=>{let a=this.registerListener({statusChanged:l=>{let c=!1;try{c=e(l)}catch(f){r(f),c=!0}c&&s()}});function s(){a(),i(),t?.removeEventListener("abort",s)}t?.aborted?s():t?.addEventListener("abort",s)})}async initialize(){await this._initialize(),await this.loadVersion(),await this.updateSchema(this.options.schema),await this.resolveOfflineSyncStatus(),await this.database.execute("PRAGMA RECURSIVE_TRIGGERS=TRUE"),await this.triggersImpl.cleanupResources(),this.ready=!0,this.iterateListeners(e=>e.initialized?.())}async loadVersion(){try{let{version:r}=await this.database.get("SELECT powersync_rs_version() as version");this.sdkVersion=r}catch(r){throw new Error(`The powersync extension is not loaded correctly. Details: ${r.message}`)}let e,t,i;try{[e,t,i]=this.sdkVersion.split(/[.\/]/).slice(0,3).map(r=>parseInt(r))}catch(r){throw new Error(`Unsupported powersync extension version. Need >=0.5.2 <0.6.0, got: ${this.sdkVersion}. Details: ${r.message}`)}if(e!=0||t!=5||i<2)throw new Error(`Unsupported powersync extension version. Need >=0.5.2 <0.6.0, got: ${this.sdkVersion}`)}async resolveOfflineSyncStatus(){let e=await this.database.get("SELECT powersync_offline_sync_status() as r"),t=JSON.parse(e.r),i=new Kc(t,this.currentStatus.jsState);i.isEqual(this.currentStatus)||(this.currentStatus=i,this.iterateListeners(r=>r.statusChanged?.(this.currentStatus)))}async updateSchema(e){if(this.syncStreamImplementation)throw new Error("Cannot update schema while connected");try{e.validate()}catch(t){this.logger.log({level:Jt.warn,message:"Schema validation failed. Unexpected behaviour could occur",error:t})}this._schema=e,await this.database.writeTransaction(t=>t.execute("SELECT powersync_replace_schema(?)",[JSON.stringify(this.schema.toJSON())])),await this.database.refreshSchema(),this.iterateListeners(async t=>t.schemaChanged?.(e))}async init(){return this.waitForReady()}runExclusive(e){return this.runExclusiveMutex.runExclusive(e)}async connect(e,t){return this.connectionManager.connect(e,t??{},this.schema.toJSON())}async disconnect(){return this.connectionManager.disconnect()}async disconnectAndClear(e=pne){await this.disconnect(),await this.waitForReady();let t=0;e.clearLocal&&(t|=1),e.soft&&(t|=2),await this.database.writeTransaction(async i=>{await i.execute("SELECT powersync_clear(?)",[t])}),await this.resolveOfflineSyncStatus()}syncStream(e,t){return this.connectionManager.stream(this.subscriptions,e,t??null)}async requestCheckpoint(){await this.waitForReady();let e=this.connectionManager.syncStreamImplementation;if(e==null)throw _b();if(this.connectionManager.connectionOptions?.checkpointMode=="legacy")throw gR();let t=await e.requestCheckpoint();return new vR(t,this)}async close(e=mne){if(await this.waitForReady(),this.closed)return;this.triggersImpl.dispose(),await this.iterateAsyncListeners(async i=>i.closing?.());let{disconnect:t}=e;t&&await this.disconnect(),await this.connectionManager.close(),await this.database.close(),this.closed=!0,await this.iterateAsyncListeners(async i=>i.closed?.()),super.dispose()}async getUploadQueueStats(e){return this.readTransaction(async t=>{if(e){let i=await t.get(`SELECT SUM(cast(data as blob) + 20) as size, count(*) as count FROM ${Kh.CRUD}`);return new iE(i.count??0,i.size??0)}else{let{count:i}=await t.get(`SELECT count(*) as count FROM ${Kh.CRUD}`);return new iE(i??0)}})}async getCrudBatch(e=_ne){let i=(await this.getAll(`SELECT id, tx_id, data FROM ${Kh.CRUD} ORDER BY id ASC LIMIT ?`,[e+1])).map(s=>Zh.fromRow(s))??[],r=!1;if(i.length>e&&(i.pop(),r=!0),i.length==0)return null;let a=i[i.length-1];return new Fv(i,r,async s=>this.bucketStorageAdapter.handleCrudCheckpoint(a.clientId,s))}async getNextCrudTransaction(){return(await this.getCrudTransactions()[ET]().next()).value}getCrudTransactions(){return{[ET]:()=>{let e=-1,t=`
WITH RECURSIVE crud_entries AS (
  SELECT id, tx_id, data FROM ps_crud WHERE id = (SELECT min(id) FROM ps_crud WHERE id > ?)
  UNION ALL
  SELECT ps_crud.id, ps_crud.tx_id, ps_crud.data FROM ps_crud
    INNER JOIN crud_entries ON crud_entries.id + 1 = rowid
  WHERE crud_entries.tx_id = ps_crud.tx_id
)
SELECT * FROM crud_entries;
    `;return{next:async()=>{let i=await this.database.getAll(t,[e]);if(i.length==0)return{done:!0,value:null};let r=i.map(l=>Zh.fromRow(l)),a=r[r.length-1],s=a.transactionId;return e=a.clientId,{done:!1,value:new c3(r,async l=>this.bucketStorageAdapter.handleCrudCheckpoint(a.clientId,l),s)}}}}}}async getClientId(){return this.bucketStorageAdapter.getClientId()}async execute(e,t){return this.writeLock(i=>i.execute(e,t))}async executeRaw(e,t){return await this.waitForReady(),this.database.executeRaw(e,t)}async executeBatch(e,t){return await this.waitForReady(),this.database.executeBatch(e,t)}async getAll(e,t){return await this.waitForReady(),this.database.getAll(e,t)}async getOptional(e,t){return await this.waitForReady(),this.database.getOptional(e,t)}async get(e,t){return await this.waitForReady(),this.database.get(e,t)}async readLock(e){return await this.waitForReady(),this.database.readLock(e)}async writeLock(e){return await this.waitForReady(),this.database.writeLock(e)}async readTransaction(e,t=PV){return await this.waitForReady(),this.database.readTransaction(async i=>{let r=await e(i);return await i.rollback(),r},{timeoutMs:t})}async writeTransaction(e,t=PV){return await this.waitForReady(),this.database.writeTransaction(async i=>{let r=await e(i);return await i.commit(),r},{timeoutMs:t})}watch(e,t,i,r){if(i&&typeof i=="object"&&"onResult"in i){let s=i,l=r;return this.watchWithCallback(e,t,s,l)}let a=i;return this.watchWithAsyncGenerator(e,t,a)}query(e){let{sql:t,parameters:i=[],mapper:r}=e,a={compile:()=>({sql:t,parameters:i}),execute:async({sql:s,parameters:l})=>{let c=await this.getAll(s,l);return r?c.map(r):c}};return this.customQuery(a)}customQuery(e){return new pR({db:this,query:e})}watchWithCallback(e,t,i,r){let{onResult:a,onError:s=h=>this.logger.log({level:Jt.error,message:"Error in watch",error:h})}=i??{};if(!a)throw new Error("onResult is required");let{comparator:l,signal:c}=r??{};if(c?.aborted)return;let f=new mb({db:this,comparator:l,placeholderData:null,watchOptions:{query:{compile:()=>({sql:e,parameters:t??[]}),execute:()=>this.executeReadOnly(e,t)},reportFetching:!1,throttleMs:r?.throttleMs??30,triggerOnTables:r?.tables}}),p=f.registerListener({onData:h=>{h&&a(h)},onError:h=>{s(h)}});c?.addEventListener("abort",()=>{p(),f.close()})}watchWithAsyncGenerator(e,t,i){return $h.queueBasedAsyncIterable((r,a)=>{let s={onResult:l=>{r.notify(l)},onError:l=>{r.notifyError(l)}};this.watchWithCallback(e,t,s,{...i,signal:a})},i?.signal)}async resolveTables(e,t,i){let r=i?.tables?[...i.tables]:[];if(!i?.tables){let s=(await this.getAll(`EXPLAIN ${e}`,t)).filter(c=>c.opcode=="OpenRead"&&c.p3==0&&typeof c.p2=="number").map(c=>c.p2),l=await this.getAll("SELECT DISTINCT tbl_name FROM sqlite_master WHERE rootpage IN (SELECT json_each.value FROM json_each(?))",[JSON.stringify(s)]);for(let c of l)r.push(c.tbl_name.replace(hne,""))}return r}onChange(e,t){if(e&&typeof e=="object"&&"onChange"in e){let r=e,a=t;return this.onChangeWithCallback(r,a)}let i=e;return this.onChangeWithAsyncGenerator(i)}onChangeWithCallback(e,t){let{onChange:i}=e??{};if(!i)throw new Error("onChange is required");let{signal:r,tables:a,throttleMs:s=30}=t??{};if(r?.aborted)return()=>{};let l=new Set((a??[]).flatMap(g=>[g,`ps_data__${g}`,`ps_data_local__${g}`])),c=new Set,f=new dR(i),p=DV(()=>this.handleTableChanges(c,l,g=>{r?.aborted||f.schedule({changedTables:g})}),s);t?.triggerImmediate&&f.schedule({changedTables:[]});let h=this.database.registerListener({tablesUpdated:async g=>{this.processTableUpdates(g,c),p()}}),_=()=>{f.dispose(),h(),r?.removeEventListener("abort",_)};return r?.addEventListener("abort",_),_}onChangeWithAsyncGenerator(e){return $h.queueBasedAsyncIterable((t,i)=>{this.onChangeWithCallback({onChange:r=>{t.notify(r)}},{...e,signal:i})},e?.signal)}createMutex(){return new Dr}handleTableChanges(e,t,i){if(e.size>0){let r=Array.from(e.values()).filter(a=>t.has(a));r.length&&i(r)}e.clear()}processTableUpdates({tables:e},t){for(let i of e)t.add(i)}async executeReadOnly(e,t){return await this.waitForReady(),this.database.readLock(i=>i.execute(e,t))}};var ll=class n extends Error{reason;constructor(e){super(e),this.reason=e,Object.setPrototypeOf(this,n.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,n)}};var UV="1.3.1";var gne=/\/+$/,vne={LogLevels:Jt,EventQueue:$h,AbortOperation:ll};var bR=class{connector;logger;credentials=null;constructor(e,t){this.connector=e,this.logger=t}async getCredentials(e){return this.credentials?this.credentials:this.prefetchCredentials(e)}async prefetchCredentials(e){return this.credentials=await this.fetchCredentials(e),this.credentials}async fetchCredentials(e){let t=await this.connector.fetchCredentials(e);if(t?.endpoint.match(gne))throw new Error(`A trailing forward slash "/" was found in the fetchCredentials endpoint: "${t.endpoint}". Remove the trailing forward slash "/" to fix this error.`);return t}invalidateCredentials(){this.credentials=null,this.connector.invalidateCredentials?.()}getUserAgent(){return`powersync-js/${UV}`}async buildRequest(e,t){let i=await this.getCredentials(t);if(i!=null&&(i.endpoint==null||i.endpoint==""))throw new Error("PowerSync endpoint not configured");if(i?.token==null||i?.token==""){let a=new Error("Not signed in");throw a.status=401,a}let r=this.getUserAgent();return{url:i.endpoint+e,headers:{"content-type":"application/json",Authorization:`Token ${i.token}`,"x-user-agent":r},userAgent:r,path:e}}async fetchAndDecodeJson({path:e,method:t="GET",headers:i,body:r,signal:a}){let s=await this.buildRequest(e,a),l=await this.fetch({resource:s.url,request:{method:t,headers:{...i,...s.headers},body:r,signal:a},expectStreamingResponse:!1});if(l.status===401&&this.invalidateCredentials(),!l.ok)throw new Error(`Received ${l.status} - ${l.statusText} when getting from ${e}: ${await l.text()}}`);return l.json()}createTextDecoder(){return new TextDecoder}createSocket(e){return new WebSocket(e)}async socketStreamRaw(e){let t=await this.loadWebSocketSupport(vne),i=await this.buildRequest(e.path,e.abortSignal);i.url=i.url.replace(/^https?:\/\//,function(l){return l==="https://"?"wss://":"ws://"});let{fetchStrategy:r=Xd.Buffered,abortSignal:a,data:s}=e;return await t.webSocketSyncStream({remote:this,buffered:r==Xd.Buffered,abortSignal:a,requestPayload:s,request:i})}async fetchStreamRaw(e){let{data:t,path:i,abortSignal:r}=e,a=await this.buildRequest(i,r);if(r.aborted)throw new ll("Abort request received before making fetchStreamRaw request");let s=new AbortController,l=null;r.addEventListener("abort",()=>{let h=r.reason??new ll("Cancelling network request before it resolves. Abort signal has been received.");l==null?s.abort(h):l.cancel(h).catch(()=>{})});let c,f=!1;try{let h="application/x-ndjson",_="application/vnd.powersync.bson-stream";if(c=await this.fetch({resource:a.url,request:{method:"POST",headers:{...a.headers,accept:`${_};q=0.9,${h};q=0.8`},body:JSON.stringify(t),signal:s.signal,cache:"no-store"},expectStreamingResponse:!0}),!c.ok||!c.body){let E=await c.text(),x=new Error(`HTTP ${c.statusText}: ${E}`);throw x.status=c.status,this.logger.log({level:Jt.error,message:`Could not POST streaming to ${i} - ${c.status} - ${c.statusText}: ${E}`,error:x}),c.status===401&&this.invalidateCredentials(),x}f=c.headers.get("content-type")==_}catch(h){throw h.name=="AbortError"?new ll(`Pending fetch request to ${a.url} has been aborted.`):h}return l=c.body.getReader(),{isBson:f,stream:{next:async()=>{if(s.signal.aborted)return ol;try{return await l.read()}catch(h){if(s.signal.aborted)return ol;throw h}}}}}async fetchStream(e){let{isBson:t,stream:i}=await this.fetchStreamRaw(e);return t?OV(i):kV(i,this.createTextDecoder())}};function zV(n){return"EstablishSyncStream"in n||"CloseSyncStream"in n}var Zc;(function(n){n.CRUD="crud",n.SYNC="sync"})(Zc||(Zc={}));var SR=class extends Gr{options;abortController;crudUpdateListener;streamingSyncPromise;logger;activeStreams;connectionMayHaveChanged=!1;crudUploadNotifier=wT();checkpoints=new _R;notifyCompletedUploads;handleActiveStreamsChange;syncStatus;constructor(e){super(),this.options=e,this.activeStreams=e.subscriptions,this.logger=e.logger,this.syncStatus=new Kc(null,{}),this.abortController=null}triggerCrudUpload(){this.crudUploadNotifier.notify()}async waitForReady(){}waitUntilStatusMatches(e){return new Promise(t=>{if(e(this.syncStatus)){t();return}let i=this.registerListener({statusChanged:()=>{e(this.syncStatus)&&(t(),i?.())}})})}get lastSyncedAt(){let e=this.syncStatus.lastSyncedAt;return e&&new Date(e)}get isConnected(){return this.syncStatus.connected}async dispose(){super.dispose(),this.crudUpdateListener?.(),this.crudUpdateListener=void 0}async requestNextCheckpointFromService(e){if(!await this.checkpoints.waitForCheckpointRequestsReady(e))throw e.reason;let t=await this.options.adapter.readCheckpointRequestId("next"),i=await this.options.adapter.getClientId();return await this.requestCheckpointFromService(e,{client_id:i,checkpoint_request_id:t})}async requestCheckpointFromService(e,t){{let r=await this.options.postCheckpointRequest(t.client_id,t.checkpoint_request_id,e);if(r!=null)return r}return(await this.options.remote.fetchAndDecodeJson({method:"POST",path:"/sync/checkpoint-request",body:JSON.stringify(t),signal:e})).data.checkpoint_request_id}async getLegacyWriteCheckpoint(){let t=`/write-checkpoint2.json?client_id=${await this.options.adapter.getClientId()}`,r=(await this.options.remote.fetchAndDecodeJson({path:t})).data.write_checkpoint;return this.logger.log({level:Jt.debug,message:`Created write checkpoint: ${r}`}),r}async crudUploadLoop(e,t){for(;!e.aborted;)await Promise.all([this._uploadAllCrud(e,t),this.delayRetry(e,t.crudUploadThrottleMs)]),await this.crudUploadNotifier.waitForNotification(e)}async _uploadAllCrud(e,t){return this.obtainLock({type:Zc.CRUD,signal:e,callback:async()=>{let i;for(;!e.aborted;)try{let r=await this.options.adapter.nextCrudItem();if(r){if(this.updateJsSyncState({uploading:!0}),r.clientId==i?.clientId)throw this.logger.log({level:Jt.warn,message:`Potentially previously uploaded CRUD entries are still present in the upload queue.
Make sure to handle uploads and complete CRUD transactions or batches by calling and awaiting their [.complete()] method.
The next upload iteration will be delayed.`}),new Error("Delaying due to previously encountered CRUD item.");i=r,await this.options.uploadCrud(e),this.updateJsSyncState({uploadError:void 0})}else{await this.options.adapter.updateLocalTarget(()=>t.checkpointMode==="legacy"?this.getLegacyWriteCheckpoint():this.requestNextCheckpointFromService(e))?this.notifyCompletedUploads?.():i!=null&&this.logger.log({level:Jt.debug,message:"Upload complete, no write checkpoint needed."});break}}catch(r){if(i=void 0,this.updateJsSyncState({uploading:!1,uploadError:r}),await this.delayRetry(e,t.retryDelayMs),!this.isConnected)break;this.logger.log({level:Jt.debug,message:"Caught exception when uploading. Upload will retry after a delay.",error:r})}finally{this.updateJsSyncState({uploading:!1})}}})}async connect(e){this.abortController&&await this.disconnect();let t=new AbortController;this.abortController=t;let i=t.signal;return this.streamingSyncPromise=Promise.all([this.crudUploadLoop(i,e).catch(r=>{i.reason!==r&&this.logger.log({level:Jt.error,message:"Error in crud upload loop",error:r})}),this.streamingSync(i,e),this.repostUnacknowledgedCheckpointRequests(i,e)]).finally(()=>{this.checkpoints.disconnected()}),new Promise(r=>{let a=!1,s=!1,l=()=>{s||(s=!0,c(),i.removeEventListener("abort",l),r())},c=this.registerListener({statusChanged:f=>{if(f.connecting&&(a=!0),f.downloadError!=null)this.logger.log({level:Jt.warn,message:"Initial connect attempt did not successfully connect to server"});else if(!a||f.connecting)return;l()}});i.addEventListener("abort",l,{once:!0})})}async requestCheckpoint(){let e=new AbortController().signal;return BigInt(await this.requestNextCheckpointFromService(e))}async disconnect(){if(this.abortController){this.abortController.signal.aborted||this.abortController.abort(new ll("Disconnect has been requested"));try{await this.streamingSyncPromise}catch(e){this.logger.log({level:Jt.warn,message:"Error in sync while disconnecting",error:e})}this.streamingSyncPromise=void 0,this.abortController=null,this.markAsDisconnected()}}markAsDisconnected(){let e=this.syncStatus.core;e!=null&&this.updateSyncStatus({...e,connected:!1,connecting:!1,downloading:null})}async streamingSync(e,t){this.crudUpdateListener=this.options.adapter.registerListener({crudUpdate:()=>this.triggerCrudUpload()});let i=new AbortController;for(e.addEventListener("abort",()=>{i.abort(e?.reason??new ll("Received command to disconnect from upstream")),this.crudUpdateListener?.(),this.crudUpdateListener=void 0,this.markAsDisconnected()});;){let r=!0,a=null;try{if(e?.aborted)break;a=await this.streamingSyncIteration(i.signal,t)}catch(s){let l=e.aborted;l?(this.logger.log({level:Jt.warn,message:"Sync aborted",error:s}),r=!1):this.connectionMayHaveChanged&&s.message?.indexOf("No iteration is active")>=0?(this.connectionMayHaveChanged=!1,this.logger.log({level:Jt.info,message:"Sync error after changed connection, retrying immediately"}),r=!1):this.logger.log({level:Jt.error,message:"Sync error",error:s}),l||this.updateJsSyncState({downloadError:s})}finally{this.checkpoints.downloadIterationEnded(),this.notifyCompletedUploads=void 0,e.aborted||(i.abort(new ll("Closing sync stream network requests before retry.")),i=new AbortController),a?.immediateRestart!=!0&&(this.markAsDisconnected(),r&&await this.delayRetry(i.signal,t.retryDelayMs,!0))}}this.markAsDisconnected()}markConnectionMayHaveChanged(){this.connectionMayHaveChanged=!0,this.handleActiveStreamsChange?.()}async requireKeyFormat(e){let t=await this.options.adapter.hasMigratedSubkeys();return e&&!t?(await this.options.adapter.migrateToFixedSubkeys(),!0):t}streamingSyncIteration(e,t){return this.obtainLock({type:Zc.SYNC,signal:e,callback:async()=>{let i=Object.entries(t.appMetadata).filter(([r,a])=>typeof a!="string");if(i.length>0)throw new Error(`Invalid appMetadata provided. Only string values are allowed. Invalid values: ${i.map(([r,a])=>`${r}: ${a}`).join(", ")}`);return await this.requireKeyFormat(!0),await this.rustSyncIteration(e,t)}})}receiveSyncLines(e){let{options:t,connection:i}=e,r=this.options.remote,a=async()=>i.connectionMethod==Qd.HTTP?await r.fetchStream(t):await this.options.remote.socketStreamRaw({...t,fetchStrategy:i.fetchStrategy}),s,l=!1;return{async next(){if(l)return ol;if(s==null)return s=await a(),ad({command:Is.CONNECTION_STATE,payload:"established"});{let c=await s.next();return c.done?(l=!0,ad({command:Is.CONNECTION_STATE,payload:"end"})):ad({command:typeof c.value=="string"?Is.PROCESS_TEXT_LINE:Is.PROCESS_BSON_LINE,payload:c.value})}}}}async repostUnacknowledgedCheckpointRequests(e,t){let i,r=t.checkpointMode;if(r!="legacy")for(r=="requests"?i=1e4:i=Math.max(r.requests.retryDelay,1e4);!e.aborted;)try{if(!await this.checkpoints.waitForCheckpointRequestsReady(e,!1))return;let a=await this.options.adapter.readCheckpointRequestId("current");if(await this.delayRetry(e,i),a!=await this.options.adapter.readCheckpointRequestId("current")||TT(this.syncStatus?.core,BigInt(a)))continue;if(!await this.checkpoints.waitForCheckpointRequestsReady(e,!1))return;this.logger.log({level:Jt.debug,message:`Retry checkpoint request ${a}`}),await this.requestCheckpointFromService(e,{client_id:await this.options.adapter.getClientId(),checkpoint_request_id:a})}catch(a){if(e.aborted)return;this.logger.log({level:Jt.warn,error:a,message:"Error retrying checkpoint request."}),await this.delayRetry(e,i)}}async seedCheckpointRequestState(e,t){let i=await this.requestCheckpointFromService(e,t);await this.options.adapter.readCheckpointRequestId("seed",i)}async rustSyncIteration(e,t){let i=this,r=this.options.adapter,a=this.options.remote,s=!1,l;if(e.aborted)throw new ll("Connection request has been aborted");let c=this.options.serializedSchema;function f(){let g={parameters:t.params,app_metadata:t.appMetadata,active_streams:i.activeStreams,include_defaults:t.includeDefaultStreams,checkpoint_mode:t.checkpointMode==="legacy"?"legacy":"requests"};return c&&(g.schema=c),h(Is.START,JSON.stringify(g))}async function p(){let g=await h(Is.STOP);for(let E of g)zV(E)||await _(E)}async function h(g,E){let x=await r.control(g,E??null),S=E==null||typeof E=="string"?E:"<bytes>";return i.logger.log({level:Jt.trace,message:`powersync_control(${g}, ${S}) -> ${x}`}),g!=Is.STOP&&(i.connectionMayHaveChanged=!1),JSON.parse(x)}async function _(g){if("LogLine"in g){let{severity:E,line:x}=g.LogLine;switch(E){case"DEBUG":i.logger.log({level:Jt.debug,message:x});break;case"INFO":i.logger.log({level:Jt.info,message:x});break;case"WARNING":i.logger.log({level:Jt.warn,message:x});break}}else"UpdateSyncStatus"in g?i.updateSyncStatus(g.UpdateSyncStatus.status):"FetchCredentials"in g?g.FetchCredentials.did_expire?a.invalidateCredentials():(a.invalidateCredentials(),a.fetchCredentials().then(E=>{l?.()},E=>{i.logger.log({level:Jt.warn,message:"Could not prefetch credentials",error:E})})):"FlushFileSystem"in g||"DidCompleteSync"in g&&i.updateJsSyncState({downloadError:void 0})}try{let g={immediateRestart:!1},E=null;for(let S of await f())if("EstablishSyncStream"in S){let v=S.EstablishSyncStream,M={path:"/sync/stream",abortSignal:e,data:v.request};E=NV(i.receiveSyncLines({options:M,connection:t})),v.checkpoint_request&&this.checkpoints.markCheckpointsReady(this.seedCheckpointRequestState(e,v.checkpoint_request)).catch(k=>{e.aborted||E?.injectError(k)})}else{if("CloseSyncStream"in S)return g;await _(S)}if(E==null)return g;this.notifyCompletedUploads=()=>{E.inject({command:Is.NOTIFY_CRUD_UPLOAD_COMPLETED})},this.handleActiveStreamsChange=()=>{E.inject({command:Is.UPDATE_SUBSCRIPTIONS,payload:JSON.stringify(this.activeStreams)})},l=()=>{E.inject({command:Is.NOTIFY_TOKEN_REFRESHED})};let x=!1;e:for(;;){let{done:S,value:v}=await E.next();if(S)break;x||(v.command==Is.PROCESS_TEXT_LINE||v.command==Is.PROCESS_BSON_LINE)&&(x=!0,this.triggerCrudUpload?.());let M=await h(v.command,v.payload);for(let O of M){if("EstablishSyncStream"in O)throw new Error("Received EstablishSyncStream while already connected.");if("CloseSyncStream"in O){s=O.CloseSyncStream.hide_disconnect;break e}else await _(O)}}}finally{this.notifyCompletedUploads=this.handleActiveStreamsChange=void 0,l=void 0,await p()}return{immediateRestart:s}}updateSyncStatus(e,t){let i=new Kc(e,{...this.syncStatus.jsState,...t});this.syncStatus.isEqual(i)||(this.syncStatus=i,this.iterateListeners(r=>r.statusChanged?.(i)))}updateJsSyncState(e){this.updateSyncStatus(this.syncStatus.core,e)}async delayRetry(e,t,i=!1){return new Promise(r=>{if(e.aborted){r();return}let a=null,s,l=()=>{r(),s&&(clearTimeout(s),s=void 0),a&&(a.abort(),a=null),e.removeEventListener("abort",l)};e.addEventListener("abort",l,{once:!0});let c=t*(.9+Math.random()*.2);s=setTimeout(l,c),i&&(a=new AbortController,this.checkpoints.waitForCheckpointWaiter(a.signal).finally(l))})}updateSubscriptions(e){this.activeStreams=e,this.handleActiveStreamsChange?.()}};var MT=class n extends Error{static NAME="ConnectionClosedError";static MATCHES(e){return e instanceof n||e instanceof Error&&e.name==n.NAME}constructor(e){super(e),this.name=n.NAME}};function qV(n,e){if("opened"in n)return n.opened;if("factory"in n)return n.factory.openDB();if("database"in n&&n.database?.dbFilename)return e(n.database);throw new Error("The provided `database` option is invalid.")}var yne={rowsAffected:0,columnNames:[],rawRows:[]},ER=class extends vf{name;readMutex;writeMutex;constructor(){super(),this.name="SSR DB",this.readMutex=new Dr,this.writeMutex=new Dr}close(){}async readLock(e,t){return e(new wR)}async writeLock(e,t){return e(new wR)}async refreshSchema(){}},wR=class extends bm{async executeRaw(){return yne}};var xR=class{#n;#e=0;#t=new Set;#i;#r=new Set;constructor(e){this.#n=e;let t=e.inner;this.#i=new BroadcastChannel(`${t.options.filename}-table-updates`),this.#i.onmessage=({data:i})=>{this.#s(i)}}#s(e){for(let t of this.#r)t.postMessage(e)}get#o(){return this.#n.inner}get#a(){return this.#n.logger}async connect(e){let t=!0,i=this.#e++;this.#t.add(i);let r=new Map,a;function s(){if(!t)throw new Error("Client has already been closed")}function l(f){s();let p=r.get(f);if(!p)throw new Error("Attempted to use a connection lease that has already been returned.");return p}let c=async()=>{if(t){t=!1,a&&this.#r.delete(a);for(let{lease:f}of r.values())this.#a.log({level:Jt.debug,message:"Closing connection lease that hasn't been returned."}),await f.returnLease();this.#t.delete(i),this.#t.size==0?await this.forceClose():this.#a.log({level:Jt.debug,message:"Keeping underlying connection active since its used by other clients."})}};return e&&navigator.locks.request(e,{},()=>{c()}),{close:c,debugIsAutoCommit:async()=>this.#o.unsafeUseInner().isAutoCommit(),requestAccess:async(f,p)=>{s();let h=await this.#o.acquireConnection(p!=null?AbortSignal.timeout(p):void 0);if(!t)return await h.returnLease(),s();let _=crypto.randomUUID();return r.set(_,{lease:h,write:f}),_},completeAccess:async f=>{let p=l(f);r.delete(f);try{if(p.write){let{rawRows:h}=await p.lease.use(_=>_.execute("SELECT powersync_update_hooks('get')"));if(h.length){let _=JSON.parse(h[0][0]);_.length&&(this.#i.postMessage(_),this.#s(_))}}}finally{await p.lease.returnLease()}},execute:async(f,p,h)=>{let{lease:_}=l(f);return await _.use(g=>g.execute(p,h))},executeBatch:async(f,p,h)=>{let{lease:_}=l(f);return await _.use(g=>g.executeBatch(p,h))},setUpdateListener:async f=>{s(),a&&this.#r.delete(a),a=f,f&&this.#r.add(f)}}}async forceClose(){this.#a.log({level:Jt.debug,message:`Closing connection to ${JSON.stringify(this.#o.options)}.`});let e=this.#o;this.#n.onClose(),this.#i.close(),await e.close()}};var eu=()=>{if("locks"in navigator&&navigator.locks)return navigator.locks;throw new Error("Navigator locks are not available in an insecure context. Use a secure context such as HTTPS or http://localhost.")};J1();J1();typeof BigInt.prototype.toJSON>"u"&&(BigInt.prototype.toJSON=function(){return this.toString()});var QV=0x7fffffffffffffffn,XV=-0x8000000000000000n,IF=Object.getPrototypeOf(async function(){}).constructor,Jh=class extends Error{constructor(e,t){super(e),this.code=t}},AT=!0;function YV(n){let e={};n.retryOps=[],n.pendingOps=[];let t=n._getSqliteFree(),i=n._malloc(8),r=[i,i+4],a=new TextEncoder;function s(x){if(typeof x!="string")return 0;let S=a.encode(x),v=n._sqlite3_malloc(S.byteLength+1);return n.HEAPU8.set(S,v),n.HEAPU8[v+S.byteLength]=0,v}function l(x,S){return BigInt(S)<<32n|BigInt(x)&0xffffffffn}let c=(function(){let x=BigInt(Number.MAX_SAFE_INTEGER)>>32n,S=BigInt(Number.MIN_SAFE_INTEGER)>>32n;return function(v,M){return M>x||M<S?l(v,M):M*4294967296+(v&2147483647)-(v&2147483648)}})(),f=new Set;function p(x){if(!f.has(x))throw new Jh("not a database",21)}let h=new Map;function _(x){if(!h.has(x))throw new Jh("not a statement",21)}e.bind_collection=function(x,S){_(x);let v=Array.isArray(S),M=e.bind_parameter_count(x);for(let O=1;O<=M;++O){let k=v?O-1:e.bind_parameter_name(x,O),q=S[k];q!==void 0&&e.bind(x,O,q)}return 0},e.bind=function(x,S,v){switch(_(x),typeof v){case"number":return v===(v|0)?e.bind_int(x,S,v):e.bind_double(x,S,v);case"string":return e.bind_text(x,S,v);case"boolean":return e.bind_int(x,S,v?1:0);default:return v instanceof Uint8Array||Array.isArray(v)?e.bind_blob(x,S,v):v===null?e.bind_null(x,S):typeof v=="bigint"?e.bind_int64(x,S,v):v===void 0?27:(console.warn("unknown binding converted to null",v),e.bind_null(x,S))}},e.bind_blob=(function(){let x="sqlite3_bind_blob",S=n.cwrap(x,...kn("nnnnn:n"));return function(v,M,O){_(v);let k=O.byteLength??O.length,q=n._sqlite3_malloc(k);n.HEAPU8.subarray(q).set(O);let G=S(v,M,q,k,t);return g(x,G,h.get(v))}})(),e.bind_parameter_count=(function(){let S=n.cwrap("sqlite3_bind_parameter_count",...kn("n:n"));return function(v){return _(v),S(v)}})(),e.bind_double=(function(){let x="sqlite3_bind_double",S=n.cwrap(x,...kn("nnn:n"));return function(v,M,O){_(v);let k=S(v,M,O);return g(x,k,h.get(v))}})(),e.bind_int=(function(){let x="sqlite3_bind_int",S=n.cwrap(x,...kn("nnn:n"));return function(v,M,O){if(_(v),O>2147483647||O<-2147483648)return 25;let k=S(v,M,O);return g(x,k,h.get(v))}})(),e.bind_int64=(function(){let x="sqlite3_bind_int64",S=n.cwrap(x,...kn("nnnn:n"));return function(v,M,O){if(_(v),O>QV||O<XV)return 25;let k=O&0xffffffffn,q=O>>32n,G=S(v,M,Number(k),Number(q));return g(x,G,h.get(v))}})(),e.bind_null=(function(){let x="sqlite3_bind_null",S=n.cwrap(x,...kn("nn:n"));return function(v,M){_(v);let O=S(v,M);return g(x,O,h.get(v))}})(),e.bind_parameter_name=(function(){let S=n.cwrap("sqlite3_bind_parameter_name",...kn("n:s"));return function(v,M){return _(v),S(v,M)}})(),e.bind_text=(function(){let x="sqlite3_bind_text",S=n.cwrap(x,...kn("nnnnn:n"));return function(v,M,O){_(v);let k=s(O),q=S(v,M,k,-1,t);return g(x,q,h.get(v))}})(),e.changes=(function(){let S=n.cwrap("sqlite3_changes",...kn("n:n"));return function(v){return p(v),S(v)}})(),e.clear_bindings=(function(){let x="sqlite3_clear_bindings",S=n.cwrap(x,...kn("n:n"));return function(v){_(v);let M=S(v);return g(x,M,h.get(v))}})(),e.last_insert_id=(function(){let S=n.cwrap("sqlite3_last_insert_rowid",...kn("n:n"));return function(v){return p(v),S(v)}})(),e.close=(function(){let x="sqlite3_close",S=n.cwrap(x,...kn("n:n"),{async:AT});return async function(v){p(v);let M=await S(v);return f.delete(v),g(x,M,v)}})(),e.column=function(x,S){_(x);let v=e.column_type(x,S);switch(v){case 4:return e.column_blob(x,S);case 2:return e.column_double(x,S);case 1:let M=e.column_int(x,S),O=n.getTempRet0();return c(M,O);case 5:return null;case 3:return e.column_text(x,S);default:throw new Jh("unknown type",v)}},e.column_blob=(function(){let S=n.cwrap("sqlite3_column_blob",...kn("nn:n"));return function(v,M){_(v);let O=e.column_bytes(v,M),k=S(v,M);return n.HEAPU8.subarray(k,k+O)}})(),e.column_bytes=(function(){let S=n.cwrap("sqlite3_column_bytes",...kn("nn:n"));return function(v,M){return _(v),S(v,M)}})(),e.column_count=(function(){let S=n.cwrap("sqlite3_column_count",...kn("n:n"));return function(v){return _(v),S(v)}})(),e.column_double=(function(){let S=n.cwrap("sqlite3_column_double",...kn("nn:n"));return function(v,M){return _(v),S(v,M)}})(),e.column_int=(function(){let S=n.cwrap("sqlite3_column_int64",...kn("nn:n"));return function(v,M){return _(v),S(v,M)}})(),e.column_int64=(function(){let S=n.cwrap("sqlite3_column_int64",...kn("nn:n"));return function(v,M){_(v);let O=S(v,M),k=n.getTempRet0();return l(O,k)}})(),e.column_name=(function(){let S=n.cwrap("sqlite3_column_name",...kn("nn:s"));return function(v,M){return _(v),S(v,M)}})(),e.column_names=function(x){let S=[],v=e.column_count(x);for(let M=0;M<v;++M)S.push(e.column_name(x,M));return S},e.column_text=(function(){let S=n.cwrap("sqlite3_column_text",...kn("nn:s"));return function(v,M){return _(v),S(v,M)}})(),e.column_type=(function(){let S=n.cwrap("sqlite3_column_type",...kn("nn:n"));return function(v,M){return _(v),S(v,M)}})(),e.create_function=function(x,S,v,M,O,k,q,G){p(x);function Q(Z){return Z instanceof IF?(async(te,j,he)=>Z(te,n.HEAP32.subarray(he/4,he/4+j))):((te,j,he)=>Z(te,n.HEAP32.subarray(he/4,he/4+j)))}let H=n.create_function(x,S,v,M,O,k&&Q(k),q&&Q(q),G);return g("sqlite3_create_function",H,x)},e.data_count=(function(){let S=n.cwrap("sqlite3_data_count",...kn("n:n"));return function(v){return _(v),S(v)}})(),e.exec=async function(x,S,v){for await(let M of e.statements(x,S)){let O;for(;await e.step(M)===100;)if(v){O=O??e.column_names(M);let k=e.row(M);await v(k,O)}}return 0},e.finalize=(function(){let S=n.cwrap("sqlite3_finalize",...kn("n:n"),{async:AT});return async function(v){let M=await S(v);return h.delete(v),M}})(),e.get_autocommit=(function(){let S=n.cwrap("sqlite3_get_autocommit",...kn("n:n"));return function(v){return S(v)}})(),e.libversion=(function(){let S=n.cwrap("sqlite3_libversion",...kn(":s"));return function(){return S()}})(),e.libversion_number=(function(){let S=n.cwrap("sqlite3_libversion_number",...kn(":n"));return function(){return S()}})(),e.limit=(function(){let S=n.cwrap("sqlite3_limit",...kn("nnn:n"));return function(v,M,O){return S(v,M,O)}})(),e.open_v2=(function(){let x="sqlite3_open_v2",S=n.cwrap(x,...kn("snnn:n"),{async:AT});return async function(v,M,O){M=M||6,O=s(O);try{let k=await E(()=>S(v,r[0],M,O)),q=n.getValue(r[0],"*");if(k!==0){let G=q?n.ccall("sqlite3_errmsg","string",["number"],[q]):x,Q=new Jh(G,k);if(q){f.add(q);try{await e.close(q)}catch{}finally{f.delete(q)}}throw Q}return f.add(q),n.ccall("RegisterExtensionFunctions","void",["number"],[q]),q}finally{n._sqlite3_free(O)}}})(),e.progress_handler=function(x,S,v,M){p(x),n.progress_handler(x,S,v,M)},e.reset=(function(){let x="sqlite3_reset",S=n.cwrap(x,...kn("n:n"),{async:AT});return async function(v){_(v);let M=await S(v);return g(x,M,h.get(v))}})(),e.result=function(x,S){switch(typeof S){case"number":S===(S|0)?e.result_int(x,S):e.result_double(x,S);break;case"string":e.result_text(x,S);break;default:if(S instanceof Uint8Array||Array.isArray(S))e.result_blob(x,S);else if(S===null)e.result_null(x);else{if(typeof S=="bigint")return e.result_int64(x,S);console.warn("unknown result converted to null",S),e.result_null(x)}break}},e.result_blob=(function(){let S=n.cwrap("sqlite3_result_blob",...kn("nnnn:n"));return function(v,M){let O=M.byteLength??M.length,k=n._sqlite3_malloc(O);n.HEAPU8.subarray(k).set(M),S(v,k,O,t)}})(),e.result_double=(function(){let S=n.cwrap("sqlite3_result_double",...kn("nn:n"));return function(v,M){S(v,M)}})(),e.result_int=(function(){let S=n.cwrap("sqlite3_result_int",...kn("nn:n"));return function(v,M){S(v,M)}})(),e.result_int64=(function(){let S=n.cwrap("sqlite3_result_int64",...kn("nnn:n"));return function(v,M){if(M>QV||M<XV)return 25;let O=M&0xffffffffn,k=M>>32n;S(v,Number(O),Number(k))}})(),e.result_null=(function(){let S=n.cwrap("sqlite3_result_null",...kn("n:n"));return function(v){S(v)}})(),e.result_text=(function(){let S=n.cwrap("sqlite3_result_text",...kn("nnnn:n"));return function(v,M){let O=s(M);S(v,O,-1,t)}})(),e.row=function(x){let S=[],v=e.data_count(x);for(let M=0;M<v;++M){let O=e.column(x,M);S.push(O?.buffer===n.HEAPU8.buffer?O.slice():O)}return S},e.set_authorizer=function(x,S,v){p(x);function M(q,G,Q,H,Z,te){return[q,G,n.UTF8ToString(Q),n.UTF8ToString(H),n.UTF8ToString(Z),n.UTF8ToString(te)]}function O(q){return q instanceof IF?(async(G,Q,H,Z,te,j)=>q(...M(G,Q,H,Z,te,j))):((G,Q,H,Z,te,j)=>q(...M(G,Q,H,Z,te,j)))}let k=n.set_authorizer(x,O(S),v);return g("sqlite3_set_authorizer",k,x)},e.sql=(function(){let S=n.cwrap("sqlite3_sql",...kn("n:s"));return function(v){return _(v),S(v)}})(),e.statements=function(x,S,v={}){let M=n.cwrap("sqlite3_prepare_v3","number",["number","number","number","number","number","number"],{async:!0});return(async function*(){let O=[];try{let j=function(){te&&!v.unscoped&&e.finalize(te),te=0},k=a.encode(S),q=k.byteLength-k.byteLength%4+12,G=n._sqlite3_malloc(q),Q=G+k.byteLength+1;O.push(()=>n._sqlite3_free(G)),n.HEAPU8.set(k,G),n.HEAPU8[Q-1]=0;let H=G+q-8,Z=G+q-4,te;O.push(j),n.setValue(Z,G,"*");do{j();let he=n.getValue(Z,"*"),ke=await E(()=>M(x,he,Q-Z,v.flags||0,H,Z));ke!==0&&g("sqlite3_prepare_v3",ke,x),te=n.getValue(H,"*"),te&&(h.set(te,x),yield te)}while(te)}finally{for(;O.length;)O.pop()()}})()},e.step=(function(){let x="sqlite3_step",S=n.cwrap(x,...kn("n:n"),{async:AT});return async function(v){_(v);let M=await E(()=>S(v));return g(x,M,h.get(v),[100,101])}})(),e.commit_hook=function(x,S){p(x),n.commit_hook(x,S)},e.update_hook=function(x,S){p(x);function v(O,k,q,G,Q){return[O,n.UTF8ToString(k),n.UTF8ToString(q),l(G,Q)]}function M(O){return O instanceof IF?(async(k,q,G,Q,H)=>O(...v(k,q,G,Q,H))):((k,q,G,Q,H)=>O(...v(k,q,G,Q,H)))}n.update_hook(x,M(S))},e.value=function(x){let S=e.value_type(x);switch(S){case 4:return e.value_blob(x);case 2:return e.value_double(x);case 1:let v=e.value_int(x),M=n.getTempRet0();return c(v,M);case 5:return null;case 3:return e.value_text(x);default:throw new Jh("unknown type",S)}},e.value_blob=(function(){let S=n.cwrap("sqlite3_value_blob",...kn("n:n"));return function(v){let M=e.value_bytes(v),O=S(v);return n.HEAPU8.subarray(O,O+M)}})(),e.value_bytes=(function(){let S=n.cwrap("sqlite3_value_bytes",...kn("n:n"));return function(v){return S(v)}})(),e.value_double=(function(){let S=n.cwrap("sqlite3_value_double",...kn("n:n"));return function(v){return S(v)}})(),e.value_int=(function(){let S=n.cwrap("sqlite3_value_int64",...kn("n:n"));return function(v){return S(v)}})(),e.value_int64=(function(){let S=n.cwrap("sqlite3_value_int64",...kn("n:n"));return function(v){let M=S(v),O=n.getTempRet0();return l(M,O)}})(),e.value_text=(function(){let S=n.cwrap("sqlite3_value_text",...kn("n:s"));return function(v){return S(v)}})(),e.value_type=(function(){let S=n.cwrap("sqlite3_value_type",...kn("n:n"));return function(v){return S(v)}})(),e.vfs_register=function(x,S){let v=n.vfs_register(x,S);return g("sqlite3_vfs_register",v)};function g(x,S,v=null,M=[0]){if(M.includes(S))return S;let O=v?n.ccall("sqlite3_errmsg","string",["number"],[v]):x;throw new Jh(O,S)}async function E(x){let S;for(let v=0;v<2;++v){if(n.retryOps.length)try{await Promise.all(n.retryOps)}finally{n.retryOps=[]}if(S=await x(),S===0||n.retryOps.length===0){if(n.pendingOps.length)try{await Promise.all(n.pendingOps)}catch(M){return console.error("Error in pendingOps:",M),M.code||1}finally{n.pendingOps=[]}return S}}return S}return e}function kn(n){let e=[],t=n.match(/([ns@]*):([nsv@])/);switch(t[2]){case"n":e.push("number");break;case"s":e.push("string");break;case"v":e.push(null);break}let i=[];for(let r of t[1])switch(r){case"n":i.push("number");break;case"s":i.push("string");break}return e.push(i),e}var MR;(function(n){n.MEMORY="memory",n.FILESYSTEM="file"})(MR||(MR={}));var AR=128;function CR(n){let e={disableSSRWarning:!1,ssrMode:!("window"in globalThis),enableMultiTabs:typeof globalThis.navigator<"u"&&typeof SharedWorker<"u"&&!navigator.userAgent.match(/(Android|iPhone|iPod|iPad)/i)&&!window.safari,useWebWorker:!0,databaseWorkerLogLevel:Jt.info,temporaryStorage:MR.MEMORY,cacheSizeKb:51200,encryptionKey:void 0,vfs:ls.IDBBatchAtomicVFS,additionalReaders:1},t=Object.assign(e,n);if(mT(t.vfs)&&!t.useWebWorker)throw new Error(`Invalid configuration: The 'useWebWorker' flag must be true when using an OPFS-based VFS (${t.vfs}).`);return t}var RR=class{#n;#e=new Map;constructor(e){this.#n=e}lookup(e){let t=this.#e.get(e);return t!=null?(this.#e.delete(e),this.#e.set(e,t),t):null}addStatement(e,t){if(this.#e.set(e,t),this.#e.size>this.#n)for(let[i,r]of this.#e.entries())return this.#e.delete(i),r;return null}drain(){let e=[...this.#e.values()];return this.#e.clear(),e}};var IR=class{options;_sqliteAPI=null;sqlite3_stmt_isexplain;db=0;statementCache;constructor(e){this.options=e,this.statementCache=e.preparedStatementsCache>0?new RR(e.preparedStatementsCache):null}get isOpen(){return this.db!=0}async init(){let{module:e,vfs:t}=await bV(this.options);await this.initWithModule(e,t)}async initWithModule(e,t){let i=this._sqliteAPI=await this.openSQLiteAPI(e,t);if(this.db=await i.open_v2(this.options.filename,this.options.readonly?1:6),await this.executeRaw(`PRAGMA temp_store = ${this.options.temporaryStorage};`),this.options.encryptionKey){let r=this.options.encryptionKey.replaceAll("'","''");await this.executeRaw(`PRAGMA key = '${r}';`)}await this.executeRaw(`PRAGMA cache_size = -${this.options.cacheSizeKb};`),await this.executeRaw("SELECT powersync_update_hooks('install');")}async openSQLiteAPI(e,t){t.mxPathname=AR,this.sqlite3_stmt_isexplain=e.cwrap("sqlite3_stmt_isexplain","int",["int"]);let i=YV(e);if(i.vfs_register(t,!0),e.ccall("powersync_init_static","int",[]),this.options.encryptionKey&&e.ccall("sqlite3mc_vfs_create","int",["string","int"],[this.options.filename,1])!==0)throw new Error("Failed to create multiple cipher vfs, Database encryption will not work");return i}requireSqlite(){if(!this._sqliteAPI)throw new Error("Initialization has not completed");return this._sqliteAPI}isAutoCommit(){return this.requireSqlite().get_autocommit(this.db)!=0}async execute(e,t){let i=await this.executeSingleStatementRaw(e,t);return this.wrapQueryResults(this.requireSqlite(),i)}async executeBatch(e,t){let i=[],r=this.requireSqlite();for await(let a of r.statements(this.db,e)){let s;for(let l of t){let c=await this.stepThroughStatement(r,a,l,s,!1);i.push(this.wrapQueryResults(r,c))}break}return i}wrapQueryResults(e,{rawRows:t,columnNames:i}){return{rowsAffected:e.changes(this.db),insertId:e.last_insert_id(this.db),autocommit:e.get_autocommit(this.db)!=0,rawRows:t,columnNames:i}}async executeSingleStatementRaw(e,t){let i=await this.executeRaw(e,t);return i.length?i[0]:{columnNames:[],rawRows:[]}}async executeRaw(e,t){let i=[],r=this.requireSqlite();for await(let a of this.cachedStatements(r,e)){let s,l=await this.stepThroughStatement(r,a,t??[],s);if(s=l.columnNames,s.length&&i.push(l),t)break}return i}async stepThroughStatement(e,t,i,r,a=!0){i.forEach((l,c,f)=>{typeof l=="boolean"&&(f[c]=l?1:0)}),e.reset(t),i&&e.bind_collection(t,i);let s=[];for(;await e.step(t)===100;)if(a){let l=e.row(t);s.push(l)}return r??=e.column_names(t),{columnNames:r,rawRows:s}}async close(){if(this.isOpen){let e=this.requireSqlite();if(this.statementCache)for(let t of this.statementCache.drain())await e.finalize(t);await e.close(this.db),this.db=0}}async*cachedStatements(e,t){{let a=this.statementCache?.lookup(t);if(a!=null){yield a;return}}let i=e.statements(this.db,t,{unscoped:!0}),r=[];try{for await(let a of i)r.push(a),yield a}finally{if(r.length===1&&this.statementCache){let a=r[0];if(this.sqlite3_stmt_isexplain(a)==0){let s=this.statementCache.addStatement(t,a);s!=null&&await e.finalize(s);return}}for(let a of r)await e.finalize(a)}}};var LR=class{inner;leaseMutex;constructor(e,t){this.inner=e,this.leaseMutex=t?null:new Dr}get options(){return this.inner.options}acquireMutex(e){return this.leaseMutex?this.leaseMutex.acquire(e):new Promise((t,i)=>{let r={signal:e};navigator.locks.request(`db-lock-${this.options.filename}`,r,a=>new Promise(s=>t(()=>{s()}))).catch(i)})}unsafeUseInner(){return this.inner}async acquireConnection(e){let t=await this.acquireMutex(e),i=new LF(t,this.inner);try{this.inner.requireSqlite(),this.inner.isAutoCommit()||await this.inner.executeRaw("ROLLBACK")}catch(r){throw t(),r}return i}async close(){let e=await this.acquireMutex();try{await this.inner.close()}finally{e()}}},LF=class{returnMutex;connection;useMutex=new Dr;closed=!1;constructor(e,t){this.returnMutex=e,this.connection=t}async returnLease(){await this.useMutex.runExclusive(async()=>{this.closed||(this.closed=!0,this.returnMutex())})}async use(e){return await this.useMutex.runExclusive(async()=>{if(this.closed)throw new Error("lease token has already been closed");return await e(this.connection)})}};var KV="open-wasqlite-db",NR=class{logger;#n=new Map;#e=new Dr;constructor(e){this.logger=e}async handleConnection({logLevel:e,database:t,lockName:i}){let r={log:a=>{a.level>=e&&this.logger.log(a)}};return nR(await this.openConnectionLocally(r,t,i))}async connectToExisting(e,t){return eu().request(KV,async()=>{let i=this.#n.get(e);if(i==null)throw new Error(`connectToExisting(${e}) failed because the worker doesn't own a database with that name.`);return nR(await i.connect(t))})}async openConnectionLocally(e,t,i){let a;for(let s=0;s<2;s++)try{a=await this.#t(e,t)}catch(l){this.logger.log({level:Jt.warn,message:`Attempt ${s+1} of 3 to open database failed, retrying in 1 second...`,error:l}),await new Promise(c=>setTimeout(c,1e3))}return a??=await this.#t(e,t),a.connect(i)}async#t(e,t){let{filename:i,readonly:r,vfs:a}=t,s=!(wne||r||a==ls.InMemoryVfs),l=this.#n;async function c(){let f=l.get(i);if(f==null){let p=new IR(t),h=new LR(p,s),_=await h.acquireMutex();try{await p.init()}catch(E){throw _(),await p.close(),E}_();let g=()=>l.delete(i);f=new xR({inner:h,logger:e,onClose:g}),l.set(i,f)}return f}return s?eu().request(KV,c):this.#e.runExclusive(c)}closeAll(){let e=[...this.#n.values()];return Promise.all(e.map(t=>{t.forceClose()}))}},wne="SharedWorkerGlobalScope"in globalThis;var gb=class extends vf{options;config;#n;#e=new AbortController;#t;constructor(e,t){super(),this.options=e,this.config=t,this.#n={connection:e.connection,notifyRemoteClosed:e.remoteCanCloseUnexpectedly?new AbortController:void 0,traceQueries:t.debugMode===!0};let{port1:i,port2:r}=new MessageChannel;e.connection.setUpdateListener(vT(i,[i])),this.#t=r,r.onmessage=a=>{let l={tables:a.data};this.iterateListeners(c=>{c.tablesUpdated&&c.tablesUpdated(l)})}}get name(){return this.config.dbFilename}markRemoteClosed(){this.#n.notifyRemoteClosed.abort()}async close(){this.#e.abort(),this.#t.close(),await CT(this.#n,e=>e.close(),!0),this.options.onClose?.(),this.options.source?.[_T]()}readLock(e,t){return this.#i(!1,e,t)}writeLock(e,t){return this.#i(!0,e,t)}async#i(e,t,i){let r=await CT(this.#n,a=>a.requestAccess(e,i?.timeoutMs));try{return await t(new NF(this.#n,r))}finally{await CT(this.#n,a=>a.completeAccess(r))}}async refreshSchema(){}async shareConnection(){let e=this.#e,t=this.options.source;if(t==null)throw new Error("shareConnection() is only available for connections based by workers.");return await new Promise((r,a)=>navigator.locks.request(`shared-connection-${this.name}-${Date.now()}-${Math.round(Math.random()*1e4)}`,{signal:e.signal},async()=>{r(),!e.signal.aborted&&await new Promise(s=>{e.signal.addEventListener("abort",()=>{s()})})}).catch(s=>{s.name=="AbortError"?r():a(s)})),{port:await t[wF](),identifier:this.name}}getConfiguration(){return this.config}},NF=class extends bm{#n;#e;constructor(e,t){super(),this.#n=e,this.#e=t}async maybeTrace(e,t){if(this.#n.traceQueries){let i=performance.now(),r=t();try{let a=await CT(this.#n,e);return performance.measure(`[SQL] ${r}`,{start:i}),a}catch(a){throw performance.measure(`[SQL] [ERROR: ${a.message}] ${r}`,{start:i}),a}}else return CT(this.#n,e)}async executeRaw(e,t){return await this.#t(e,t)}async#t(e,t){return this.maybeTrace(i=>i.execute(this.#e,e,t),()=>e)}async executeBatch(e,t=[]){let i=await this.maybeTrace(a=>a.executeBatch(this.#e,e,t),()=>`${e} (batch of ${t.length})`),r={insertId:void 0,rowsAffected:0};for(let a of i)r.insertId=a.insertId,r.rowsAffected=(r.rowsAffected??0)+a.rowsAffected;return f3(r)}};async function CT(n,e,t=!1){let i=n.notifyRemoteClosed;return i?new Promise((r,a)=>{if(i.signal.aborted&&(a(new MT("Called operation on closed remote")),!t))return;function s(){a(new MT("Remote peer closed with request in flight"))}function l(c){i.signal.removeEventListener("abort",s),c()}i.signal.addEventListener("abort",s),e(n.connection).then(c=>l(()=>r(c))).catch(c=>l(()=>a(c)))}):e(n.connection)}function RT(n){return new Promise((e,t)=>{let i={signal:n};eu().request(`tab-close-signal-${crypto.randomUUID()}`,i,r=>(e(r.name),new Promise(a=>{n&&n.addEventListener("abort",()=>a())}))).catch(t)})}async function ZV(n,e,t,i,r,a){let s=new AbortController,l=s.signal,c=null,f;r?.timeoutMs&&(c=setTimeout(()=>s.abort("requesting database timed out"),r.timeoutMs));try{if(a){let p;return[p,f]=await new Promise((h,_)=>{let g=!1;function E(){g=!0,s.abort()}function x(v,M){g?M():(E(),h([v,M]))}function S(v){g||(E(),_(v))}n.acquire(l).then(v=>x(e,v),S),t?.requestOne(l).then(({item:v,release:M})=>x(v,M),S)}),await i(p)}else return await n.runExclusive(()=>i(e),l)}finally{c!=null&&clearTimeout(c),f?.()}}var vb=class extends vf{name;state;resolvedWriter;pendingListeners=new Set;constructor(e,t){super(),this.name=t,this.state=e.then(i=>{for(let r of this.pendingListeners)r.closeAfterRegisteredOnResolvedPool=i.writer.registerListener(r.listener);return this.pendingListeners.clear(),this.resolvedWriter=i.writer,i.additionalReaders.length?Tne(i.writer,i.additionalReaders):xne(i.writer)})}async init(){await this.state}async close(){await(await this.state).close()}async readLock(e,t){return(await this.state).withConnection(!0,e,t)}async writeLock(e,t){return(await this.state).withConnection(!1,e,t)}async refreshSchema(){await(await this.state).refreshSchema()}registerListener(e){if(this.resolvedWriter)return this.resolvedWriter.registerListener(e);{let t={listener:e};return this.pendingListeners.add(t),()=>{if(t.closeAfterRegisteredOnResolvedPool)return t.closeAfterRegisteredOnResolvedPool();this.pendingListeners.delete(t)}}}async shareConnection(){return(await this.state).writer.shareConnection()}getConfiguration(){if(this.resolvedWriter)return this.resolvedWriter.getConfiguration();throw new Error("AsyncDbAdapter.getConfiguration() can only be called after initializing it.")}};function xne(n){return{writer:n,withConnection:(e,t,i)=>e?n.readLock(t,i):n.writeLock(t,i),close:()=>n.close(),refreshSchema:()=>n.refreshSchema()}}function Tne(n,e){let t=new Dr,i=new ST(e);return{writer:n,async withConnection(r,a,s){return ZV(t,n,i,l=>r?l.readLock(a):l.writeLock(a),s,r)},async close(){await n.close(),await Promise.all(e.map(r=>r.close()))},async refreshSchema(){await n.refreshSchema(),await Promise.all(e.map(r=>r.refreshSchema()))}}}function kR({service:n,databaseIdentifier:e,customWorker:t,shared:i,loggerForErrors:r}){let a=`${i?"shared-":""}powersync-${e}`,s;return t?s=i?new SharedWorker(t,{name:a,type:"module"}):new Worker(t,{name:a,type:"module"}):s=Mne(i,a),IT(s,r,n)}function Mne(n,e){return n?new SharedWorker(new URL("./worker.js",import.meta.url),{name:e,type:"module"}):new Worker(new URL("./worker.js",import.meta.url),{name:e,type:"module"})}function IT(n,e,t){function i(a){e.log({level:Jt.error,error:a.error,message:"Error in database or sync worker, this likely disrupts PowerSync."})}if(n.addEventListener("error",i),Ane(n)){let{port1:a,port2:s}=new MessageChannel,l=n.port;return l.start(),l.postMessage({port:a,service:t},[a]),s.start(),{endpoint:s,worker:n,close(){n.removeEventListener("error",i),s.close()}}}else return{endpoint:n,worker:n,close(){n.removeEventListener("error",i),n.terminate()}}}function Ane(n){return"port"in n}var OR=class{options;logger;constructor(e){this.options=CR(e.open);let t=AR-16;if(this.options.dbFilename.length>t)throw new Error(`dbFilename too long (max length is ${t})`);this.logger=e.logger}openAdapter(){return new vb(this.openConnection(),this.options.dbFilename)}openDB(){let{disableSSRWarning:e,enableMultiTabs:t,ssrMode:i}=this.options;return i?(e||this.logger.log({level:Jt.warn,message:`
      Running PowerSync in SSR mode.
      Only empty query results will be returned.
      Disable this warning by setting 'disableSSRWarning: true' in options.`}),new ER):(t||this.logger.log({level:Jt.warn,message:"Multiple tab support is not enabled. Using this site across multiple tabs may not function correctly."}),this.openAdapter())}async openConnection(){let{enableMultiTabs:e,useWebWorker:t,vfs:i,dbFilename:r,encryptionKey:a,temporaryStorage:s,cacheSizeKb:l,preparedStatementsCache:c}=this.options;e||this.logger.log({level:Jt.warn,message:"Multiple tabs are not enabled in this browser"});let f,p=[],h=mT(i);function _(g){return{filename:r,readonly:g,vfs:i,encryptionKey:a,temporaryStorage:s,cacheSizeKb:l,preparedStatementsCache:c??0}}if(t){let g=this.options.worker,E=async x=>{let S;if(typeof g=="function"){let q=g(this.options);S=IT(q,this.logger,"database")}else{let G=!mT(i)&&e;S=kR({service:"database",databaseIdentifier:this.options.dbFilename,shared:G,customWorker:g,loggerForErrors:this.logger})}let v=gT(S.endpoint),M=new AbortController,k={connection:await v.connect({database:_(x),logLevel:this.options.databaseWorkerLogLevel,lockName:await RT(M.signal)}),source:v,remoteCanCloseUnexpectedly:!1,onClose:()=>{M.abort(),S.close()}};return new gb(k,{...this.options,requiresPersistentTriggers:h})};if(f=await E(!1),i==ls.OPFSWriteAheadVFS){let x=this.options.additionalReaders??1,S=[];for(let v=0;v<x;v++)S.push(E(!0));p.push(...await Promise.all(S))}}else{let g=new NR(this.logger);h=!0;let E=await g.openConnectionLocally(this.logger,_(!1));f=new gb({connection:E,source:null,remoteCanCloseUnexpectedly:!1},{...this.options,requiresPersistentTriggers:h})}return{writer:f,additionalReaders:p}}};var $V={async obtainClaim(n){return new Promise(e=>{eu().request(n,async()=>{await new Promise(t=>{e(async()=>t())})})})},async checkClaim(n){return(await eu().query()).held?.find(t=>t.name==n)!=null}};var DR=class extends Gr{syncMutex;crudMutex;isConnected;lastSyncedAt;constructor(){super(),this.syncMutex=new Dr,this.crudMutex=new Dr,this.isConnected=!1}obtainLock(e){return(e.type==Zc.CRUD?this.crudMutex:this.syncMutex).runExclusive(e.callback,e.signal)}async connect(){}async dispose(){}async disconnect(){}async waitForReady(){}waitUntilStatusMatches(e){return new Promise(()=>{})}triggerCrudUpload(){}updateSubscriptions(){}markConnectionMayHaveChanged(){}requestCheckpoint(){throw new Error("Sub sync implementation does not support request checkpoints")}};var FR=class{};function JV(n){n??=navigator;let e=Cne(n),t=Rne(n);return[e,t].filter(i=>i!=null)}function Cne(n){let e=n.userAgentData?.brands;if(e!=null){let r=[{name:"Google Chrome",value:"Chrome"},{name:"Opera",value:"Opera"},{name:"Edge",value:"Edge"},{name:"Chromium",value:"Chromium"}];for(let{name:a,value:s}of r){let l=e.find(c=>c.brand==a);if(l!=null)return`${s}/${l.version}`}}let t=n.userAgent,i=[{re:/(?:firefox|fxios)\/(\d+)/i,value:"Firefox"},{re:/(?:edg|edge|edga|edgios)\/(\d+)/i,value:"Edge"},{re:/opr\/(\d+)/i,value:"Opera"},{re:/(?:chrome|chromium|crios)\/(\d+)/i,value:"Chrome"},{re:/version\/(\d+).*safari/i,value:"Safari"}];for(let{re:r,value:a}of i){let s=r.exec(t);if(s!=null)return`${a}/${s[1]}`}return null}function Rne(n){if(n.userAgentData?.platform!=null)return n.userAgentData.platform.toLowerCase();let e=n.userAgent,t=[{re:/windows/i,value:"windows"},{re:/android/i,value:"android"},{re:/linux/i,value:"linux"},{re:/iphone|ipad|ipod/i,value:"ios"},{re:/macintosh|mac os x/i,value:"macos"}];for(let{re:i,value:r}of t)if(i.test(e))return r;return null}var FT=class extends bR{connector;constructor(e,t){super(e,t),this.connector=e}fetch({resource:e,request:t}){return fetch(e,t)}async loadWebSocketSupport(e){if(!zF){let t=await Promise.resolve().then(()=>(kG(),NG));zF=new t.WebSocketSupport(e)}return zF}getUserAgent(){let e=[super.getUserAgent(),"powersync-web"];try{e.push(...JV())}catch(t){this.logger.log({level:Jt.warn,message:"Failed to get user agent info",error:t})}return e.join(" ")}},zF;var H_=class extends SR{constructor(e){super(e)}get webOptions(){return this.options}async obtainLock(e){let t=`streaming-sync-${e.type}-${this.webOptions.identifier}`;return e.type==Zc.SYNC&&this.logger.log({level:Jt.debug,message:`requesting lock for ${t}`}),eu().request(t,{signal:e.signal},e.callback)}};var PT;(function(n){n.CLOSE_CLIENT="close-client",n.CLOSE_ACK="close-ack"})(PT||(PT={}));var qF=class extends FR{options;statusChanged;webDB;constructor(e,t,i){super(),this.options=e,this.statusChanged=t,this.webDB=i}async getDBWorkerPort(){let{port:e}=await this.webDB.shareConnection();return vT(e,[e])}invalidateCredentials(){this.options.remote.invalidateCredentials()}async fetchCredentials(){let e=await this.options.remote.getCredentials();return e==null?null:{endpoint:e.endpoint,token:e.token}}async uploadCrud(){await this.options.uploadCrud()}async postCheckpointRequest(e,t){return await this.options.postCheckpointRequest(e,t)}get logger(){return this.options.logger}log(e){this.logger.log(e)}},qR=class extends H_{syncManager;clientProvider;worker;isInitialized;dbAdapter;abortOnClose=new AbortController;logLevel;enableBroadcastLogs;constructor(e){super(e),this.dbAdapter=e.db,this.logLevel=e.logLevel,this.enableBroadcastLogs=e.enableBroadcastLogs;let t=e.sync?.worker;typeof t=="function"?this.worker=IT(t(),e.logger,"sync"):this.worker=kR({service:"sync",databaseIdentifier:this.webOptions.identifier,shared:!0,customWorker:t,loggerForErrors:e.logger}),this.clientProvider=new qF(this.webOptions,({core:i,dataFlow:r})=>{this.updateSyncStatus(i,r)},e.db),this.syncManager=gT(this.worker.endpoint),tR(this.clientProvider,this.worker.endpoint),this.syncManager.setLogLevel(this.logLevel),this.triggerCrudUpload=this.syncManager.triggerCrudUpload,this.isInitialized=this._init()}async _init(){let e=await RT(this.abortOnClose.signal);await this.syncManager.addLockBasedCloseSignal(e);let{identifier:t}=this.options;await this.syncManager.setParams({dbParams:this.dbAdapter.getConfiguration(),streamOptions:{identifier:t,serializedSchema:this.options.serializedSchema},enableBroadcastLogs:this.enableBroadcastLogs},this.options.subscriptions)}async connect(e){return await this.waitForReady(),this.syncManager.connect(e,this.options.serializedSchema)}async disconnect(){return await this.waitForReady(),this.syncManager.disconnect()}async dispose(){await this.waitForReady(),await new Promise(e=>{let t=this.worker.endpoint;t.addEventListener("message",r=>{r.data?.event===PT.CLOSE_ACK&&e()});let i={event:PT.CLOSE_CLIENT,data:{}};t.postMessage(i)}),await super.dispose(),this.abortOnClose.abort(),this.syncManager[_T](),this.worker.close()}async waitForReady(){return this.isInitialized}requestCheckpoint(){return this.syncManager.requestCheckpoint()}updateSubscriptions(e){this.syncManager.updateSubscriptions(e)}};var BR=class extends H_{#n;#e;#t=!1;constructor(e){super(e);let t=e.identifier;this.#n=new BroadcastChannel(`sync-status-${t}`),this.#e=new BroadcastChannel(`subscription-change-${t}`),this.#n.onmessage=i=>{if(i.data=="ping"){this.#i(this.syncStatus);return}let{core:r,dataFlow:a}=i.data;this.updateSyncStatus(r,a)},this.#n.postMessage("ping"),this.#e.onmessage=()=>{super.updateSubscriptions(this.activeStreams)},this.registerListener({statusChanged:i=>this.#i(i)})}#i(e){this.#t&&this.#n.postMessage(e.toJSON())}updateSubscriptions(e){super.updateSubscriptions(e),this.#e.postMessage("")}obtainLock({callback:e,type:t,signal:i}){let r=async()=>{this.#t=!0;try{return await e()}finally{this.#t=!1}};return super.obtainLock({callback:t==Zc.SYNC?r:e,type:t,signal:i})}async dispose(){this.#n.close(),this.#e.close(),await super.dispose()}};var BF=class n extends yR{static SHARED_MUTEX=new Dr;resolvedOpenOptions;enableBroadcastLogs;constructor(e){let t=CR("database"in e?e.database:{});super(e),this.resolvedOpenOptions=t,this.enableBroadcastLogs=e.broadcastLogs??!0}async _initialize(){this.database instanceof vb&&await this.database.init(),typeof this.database.getConfiguration=="function"&&this.database.getConfiguration().requiresPersistentTriggers&&this.triggersImpl.updateDefaults({useStorageByDefault:!0})}generateTriggerManagerConfig(){return{claimManager:$V}}openDBAdapter(){return qV(this.options,e=>new OR({logger:this.logger,open:e}).openDB())}close(e){return super.close({disconnect:e?.disconnect??!this.resolvedOpenOptions.enableMultiTabs})}async loadVersion(){if(!this.resolvedOpenOptions.ssrMode)return super.loadVersion()}async resolveOfflineSyncStatus(){if(!this.resolvedOpenOptions.ssrMode)return super.resolveOfflineSyncStatus()}async runExclusive(e){return this.resolvedOpenOptions.ssrMode?n.SHARED_MUTEX.runExclusive(e):eu().request(`lock-${this.database.name}`,e)}generateSyncStreamImplementation(e,t){let i=new FT(e,this.logger),r={...this.options,...this.commonSyncOptions(e,t),remote:i};if(this.resolvedOpenOptions.ssrMode)return new DR;if(this.resolvedOpenOptions.enableMultiTabs){if(!this.enableBroadcastLogs){let a=`
            Multiple tabs are enabled, but broadcasting of logs is disabled.
            Logs for shared sync worker will only be available in the shared worker context
          `,s=this.options.logger;s?s.log({level:Jt.warn,message:a}):console.warn(a)}if("shareConnection"in this.database)return new qR({...r,db:this.database,logLevel:this.options.sync?.logLevel??Jt.info,enableBroadcastLogs:this.enableBroadcastLogs});this.logger.log({level:Jt.warn,message:"Not using a shared sync worker because the database adapter doesn't support it."})}return new BR(r)}},OG=BF;var $ne=new jd({name:$n.text,slug:$n.text,created_by:$n.text,created_at:$n.text}),Jne=new jd({world_id:$n.text,kind:$n.text,owner_id:$n.text,display_name:$n.text,color:$n.text,cursor_x:$n.integer,cursor_y:$n.integer,cursor_z:$n.integer,last_seen:$n.text},{indexes:{world:["world_id"]}}),eie=new jd({world_id:$n.text,author_id:$n.text,prompt:$n.text,status:$n.text,block_count:$n.integer,created_at:$n.text},{indexes:{world:["world_id"]}}),tie=new jd({world_id:$n.text,x:$n.integer,y:$n.integer,z:$n.integer,material:$n.text,build_id:$n.text,placed_by:$n.text,placed_at:$n.text,seq:$n.integer},{indexes:{world:["world_id"]}}),nie=new h3({worlds:$ne,players:Jne,builds:eie,blocks:tie}),HF=class extends Error{};function DG(n){return{async fetchCredentials(){let e=await fetch(`${n}/api/token`,{credentials:"same-origin"});if(!e.ok)throw new Error(`token ${e.status}`);let t=await e.json();return{endpoint:t.endpoint,token:t.token,expiresAt:new Date(t.expiresAt)}},async uploadData(e){let t=await e.getCrudBatch(150);if(!t)return;let i=t.crud.map(a=>({op:a.op,type:a.table,id:a.id,data:a.opData??{}})),r=await fetch(`${n}/api/upload`,{method:"POST",credentials:"same-origin",headers:{"content-type":"application/json"},body:JSON.stringify({ops:i})});if(r.status===429||r.status>=500||r.status===401)throw new HF(`upload ${r.status}`);await t.complete()}}}function FG(n){let e=`${n}/powersync/worker.js`;return new OG({schema:nie,database:{dbFilename:"kody-world-builder.sqlite",worker:e},sync:{worker:e}})}var Fs=ci($o(),1),tp=document.documentElement.dataset.appBase??"",iie=document.documentElement.dataset.assetBase??`${tp}/_assets`,UT=FG(iie);function PG(){let n=location.pathname;tp&&n.startsWith(tp)&&(n=n.slice(tp.length));let e=/^\/r\/([a-z0-9]{4,24})\/?$/i.exec(n);return e?{room:e[1].toLowerCase()}:{room:null}}async function UG(n,e){let t=await fetch(n,{credentials:"same-origin",...e});return{ok:t.ok,status:t.status,body:await t.json().catch(()=>({}))}}function rie({slug:n}){let[e,t]=(0,V_.useState)({kind:"loading"});return(0,V_.useEffect)(()=>{let i=!1;return(async()=>{let r=await UG(`${tp}/api/rooms/${n}`);if(!r.ok||!r.body.room){i||t({kind:"missing",message:r.body.error??"That room does not exist."});return}let a=r.body.room,s=await UG(`${tp}/api/session?world=${a.worldId}`);if(i)return;let l=s.ok?s.body:{signedIn:!1,worldId:a.worldId,powersyncUrl:"https://powersync.invalid"};await UT.disconnect(),UT.connect(DG(tp),{params:{world_id:a.worldId}}),window.__wb={db:UT,session:l,room:a},t({kind:"ready",room:a,session:l})})(),()=>{i=!0}},[n]),e.kind==="loading"?(0,Fs.jsx)("div",{className:"boot",children:(0,Fs.jsx)("div",{className:"boot-cube"})}):e.kind==="missing"?(0,Fs.jsxs)("div",{className:"missing",children:[(0,Fs.jsx)("h1",{children:"Room not found"}),(0,Fs.jsx)("p",{children:e.message}),(0,Fs.jsx)("p",{children:(0,Fs.jsx)("a",{href:Df(),children:"Sign in to build"})}),(0,Fs.jsx)("button",{type:"button",className:"cta",onClick:()=>lw("/"),children:"Go to the start page"})]}):(0,Fs.jsx)(UH,{session:e.session,initialRoom:e.room},e.room.worldId)}function aie(){let[n,e]=(0,V_.useState)(PG);return(0,V_.useEffect)(()=>{let t=()=>e(PG());return addEventListener("popstate",t),()=>removeEventListener("popstate",t)},[]),(0,V_.useEffect)(()=>{n.room||UT.disconnect()},[n.room]),n.room?(0,Fs.jsx)(rie,{slug:n.room}):(0,Fs.jsx)(qH,{appBase:tp})}(0,zG.createRoot)(document.getElementById("root")).render((0,Fs.jsx)(tE.Provider,{value:UT,children:(0,Fs.jsx)(aie,{})}));
/*! Bundled license information:

react/cjs/react.production.js:
  (**
   * @license React
   * react.production.js
   *
   * Copyright (c) Meta Platforms, Inc. and affiliates.
   *
   * This source code is licensed under the MIT license found in the
   * LICENSE file in the root directory of this source tree.
   *)

scheduler/cjs/scheduler.production.js:
  (**
   * @license React
   * scheduler.production.js
   *
   * Copyright (c) Meta Platforms, Inc. and affiliates.
   *
   * This source code is licensed under the MIT license found in the
   * LICENSE file in the root directory of this source tree.
   *)

react-dom/cjs/react-dom.production.js:
  (**
   * @license React
   * react-dom.production.js
   *
   * Copyright (c) Meta Platforms, Inc. and affiliates.
   *
   * This source code is licensed under the MIT license found in the
   * LICENSE file in the root directory of this source tree.
   *)

react-dom/cjs/react-dom-client.production.js:
  (**
   * @license React
   * react-dom-client.production.js
   *
   * Copyright (c) Meta Platforms, Inc. and affiliates.
   *
   * This source code is licensed under the MIT license found in the
   * LICENSE file in the root directory of this source tree.
   *)

react/cjs/react-jsx-runtime.production.js:
  (**
   * @license React
   * react-jsx-runtime.production.js
   *
   * Copyright (c) Meta Platforms, Inc. and affiliates.
   *
   * This source code is licensed under the MIT license found in the
   * LICENSE file in the root directory of this source tree.
   *)

use-sync-external-store/cjs/use-sync-external-store-shim.production.js:
  (**
   * @license React
   * use-sync-external-store-shim.production.js
   *
   * Copyright (c) Meta Platforms, Inc. and affiliates.
   *
   * This source code is licensed under the MIT license found in the
   * LICENSE file in the root directory of this source tree.
   *)

use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.js:
  (**
   * @license React
   * use-sync-external-store-shim/with-selector.production.js
   *
   * Copyright (c) Meta Platforms, Inc. and affiliates.
   *
   * This source code is licensed under the MIT license found in the
   * LICENSE file in the root directory of this source tree.
   *)

@powersync/shared-internals/dist/websockets.mjs:
  (*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> *)
  (*!
   * The buffer module from node.js, for the browser.
   *
   * @author   Feross Aboukhadijeh <https://feross.org>
   * @license  MIT
   *)

three/build/three.core.js:
three/build/three.module.js:
  (**
   * @license
   * Copyright 2010-2026 Three.js Authors
   * SPDX-License-Identifier: MIT
   *)

@react-three/fiber/dist/events-e51d7528.esm.js:
  (**
   * @license React
   * react-reconciler-constants.production.js
   *
   * Copyright (c) Meta Platforms, Inc. and affiliates.
   *
   * This source code is licensed under the MIT license found in the
   * LICENSE file in the root directory of this source tree.
   *)
  (**
  * @license React
  * react-reconciler.production.js
  *
  * Copyright (c) Meta Platforms, Inc. and affiliates.
  *
  * This source code is licensed under the MIT license found in the
  * LICENSE file in the root directory of this source tree.
  *)
  (**
  * @license React
  * react-reconciler.development.js
  *
  * Copyright (c) Meta Platforms, Inc. and affiliates.
  *
  * This source code is licensed under the MIT license found in the
  * LICENSE file in the root directory of this source tree.
  *)

comlink/dist/esm/comlink.mjs:
  (**
   * @license
   * Copyright 2019 Google LLC
   * SPDX-License-Identifier: Apache-2.0
   *)
*/