@splinetool/runtime 0.9.152 → 0.9.153

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/build/runtime.js CHANGED
@@ -3134,9 +3134,9 @@ void main() {
3134
3134
  squared_mean = squared_mean / samples;
3135
3135
  float std_dev = sqrt( squared_mean - mean * mean );
3136
3136
  gl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) );
3137
- }`;function d3(n,e,t){let A=new nu,r=new G,i=new G,s=new Ve,o=new ru({depthPacking:Iy}),a=new iy,c={},l=t.maxTextureSize,u={0:hA,1:Wn,2:An},h=new gt({defines:{VSM_SAMPLES:8},uniforms:{shadow_pass:{value:null},resolution:{value:new G},radius:{value:4}},vertexShader:u3,fragmentShader:h3}),d=h.clone();d.defines.HORIZONTAL_PASS=1;let p=new Ie;p.setAttribute("position",new Ge(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));let f=new sA(p,h),m=this;this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=$d,this.render=function(x,w,T){if(m.enabled===!1||m.autoUpdate===!1&&m.needsUpdate===!1||x.length===0)return;let M=n.getRenderTarget(),v=n.getActiveCubeFace(),E=n.getActiveMipmapLevel(),C=n.state;C.setBlending(Nt),C.buffers.color.setClear(1,1,1,1),C.buffers.depth.setTest(!0),C.setScissorTest(!1);for(let P=0,D=x.length;P<D;P++){let _=x[P],I=_.shadow;if(I===void 0){console.warn("THREE.WebGLShadowMap:",_,"has no shadow.");continue}if(I.autoUpdate===!1&&I.needsUpdate===!1)continue;r.copy(I.mapSize);let B=I.getFrameExtents();if(r.multiply(B),i.copy(I.mapSize),(r.x>l||r.y>l)&&(r.x>l&&(i.x=Math.floor(l/B.x),r.x=i.x*B.x,I.mapSize.x=i.x),r.y>l&&(i.y=Math.floor(l/B.y),r.y=i.y*B.y,I.mapSize.y=i.y)),I.map===null){let W=this.type!==Yc?{minFilter:Gt,magFilter:Gt}:{};I.map=new ft(r.x,r.y,W),I.map.texture.name=_.name+".shadowMap",I.camera.updateProjectionMatrix()}n.setRenderTarget(I.map),n.clear();let N=I.getViewportCount();for(let W=0;W<N;W++){let X=I.getViewport(W);s.set(i.x*X.x,i.y*X.y,i.x*X.z,i.y*X.w),C.viewport(s),I.updateMatrices(_,W),A=I.getFrustum(),b(w,T,I.camera,_,this.type)}I.isPointLightShadow!==!0&&this.type===Yc&&y(I,T),I.needsUpdate=!1}m.needsUpdate=!1,n.setRenderTarget(M,v,E)};function y(x,w){let T=e.update(f);h.defines.VSM_SAMPLES!==x.blurSamples&&(h.defines.VSM_SAMPLES=x.blurSamples,d.defines.VSM_SAMPLES=x.blurSamples,h.needsUpdate=!0,d.needsUpdate=!0),x.mapPass===null&&(x.mapPass=new ft(r.x,r.y)),h.uniforms.shadow_pass.value=x.map.texture,h.uniforms.resolution.value=x.mapSize,h.uniforms.radius.value=x.radius,n.setRenderTarget(x.mapPass),n.clear(),n.renderBufferDirect(w,null,T,h,f,null),d.uniforms.shadow_pass.value=x.mapPass.texture,d.uniforms.resolution.value=x.mapSize,d.uniforms.radius.value=x.radius,n.setRenderTarget(x.map),n.clear(),n.renderBufferDirect(w,null,T,d,f,null)}function g(x,w,T,M,v,E){let C=null,P=T.isPointLight===!0?x.customDistanceMaterial:x.customDepthMaterial;if(P!==void 0?C=P:C=T.isPointLight===!0?a:o,n.localClippingEnabled&&w.clipShadows===!0&&Array.isArray(w.clippingPlanes)&&w.clippingPlanes.length!==0||w.displacementMap&&w.displacementScale!==0||w.alphaMap&&w.alphaTest>0){let D=C.uuid,_=w.uuid,I=c[D];I===void 0&&(I={},c[D]=I);let B=I[_];B===void 0&&(B=C.clone(),I[_]=B),C=B}return C.visible=w.visible,C.wireframe=w.wireframe,E===Yc?C.side=w.shadowSide!==null?w.shadowSide:w.side:C.side=w.shadowSide!==null?w.shadowSide:u[w.side],C.alphaMap=w.alphaMap,C.alphaTest=w.alphaTest,C.clipShadows=w.clipShadows,C.clippingPlanes=w.clippingPlanes,C.clipIntersection=w.clipIntersection,C.displacementMap=w.displacementMap,C.displacementScale=w.displacementScale,C.displacementBias=w.displacementBias,C.wireframeLinewidth=w.wireframeLinewidth,C.linewidth=w.linewidth,T.isPointLight===!0&&C.isMeshDistanceMaterial===!0&&(C.referencePosition.setFromMatrixPosition(T.matrixWorld),C.nearDistance=M,C.farDistance=v),C}function b(x,w,T,M,v){if(x.visible===!1)return;if(x.layers.test(w.layers)&&(x.isMesh||x.isLine||x.isPoints)&&(x.castShadow||x.receiveShadow&&v===Yc)&&(!x.frustumCulled||A.intersectsObject(x))){x.modelViewMatrix.multiplyMatrices(T.matrixWorldInverse,x.matrixWorld);let P=e.update(x),D=x.material;if(Array.isArray(D)){let _=P.groups;for(let I=0,B=_.length;I<B;I++){let N=_[I],W=D[N.materialIndex];if(W&&W.visible){let X=g(x,W,M,T.near,T.far,v);n.renderBufferDirect(T,null,P,X,x,N)}}}else if(D.visible){let _=g(x,D,M,T.near,T.far,v);n.renderBufferDirect(T,null,P,_,x,null)}}let C=x.children;for(let P=0,D=C.length;P<D;P++)b(C[P],w,T,M,v)}}function f3(n,e,t){let A=t.isWebGL2;function r(){let H=!1,xe=new Ve,Te=null,Qe=new Ve(0,0,0,0);return{setMask:function(Re){Te!==Re&&!H&&(n.colorMask(Re,Re,Re,Re),Te=Re)},setLocked:function(Re){H=Re},setClear:function(Re,Je,be,$e,st){st===!0&&(Re*=$e,Je*=$e,be*=$e),xe.set(Re,Je,be,$e),Qe.equals(xe)===!1&&(n.clearColor(Re,Je,be,$e),Qe.copy(xe))},reset:function(){H=!1,Te=null,Qe.set(-1,0,0,0)}}}function i(){let H=!1,xe=null,Te=null,Qe=null;return{setTest:function(Re){Re?q(2929):V(2929)},setMask:function(Re){xe!==Re&&!H&&(n.depthMask(Re),xe=Re)},setFunc:function(Re){if(Te!==Re){if(Re)switch(Re){case HD:n.depthFunc(512);break;case WD:n.depthFunc(519);break;case jD:n.depthFunc(513);break;case Hg:n.depthFunc(515);break;case YD:n.depthFunc(514);break;case qD:n.depthFunc(518);break;case XD:n.depthFunc(516);break;case QD:n.depthFunc(517);break;default:n.depthFunc(515)}else n.depthFunc(515);Te=Re}},setLocked:function(Re){H=Re},setClear:function(Re){Qe!==Re&&(n.clearDepth(Re),Qe=Re)},reset:function(){H=!1,xe=null,Te=null,Qe=null}}}function s(){let H=!1,xe=null,Te=null,Qe=null,Re=null,Je=null,be=null,$e=null,st=null;return{setTest:function(vt){H||(vt?q(2960):V(2960))},setMask:function(vt){xe!==vt&&!H&&(n.stencilMask(vt),xe=vt)},setFunc:function(vt,Tt,dn){(Te!==vt||Qe!==Tt||Re!==dn)&&(n.stencilFunc(vt,Tt,dn),Te=vt,Qe=Tt,Re=dn)},setOp:function(vt,Tt,dn){(Je!==vt||be!==Tt||$e!==dn)&&(n.stencilOp(vt,Tt,dn),Je=vt,be=Tt,$e=dn)},setLocked:function(vt){H=vt},setClear:function(vt){st!==vt&&(n.clearStencil(vt),st=vt)},reset:function(){H=!1,xe=null,Te=null,Qe=null,Re=null,Je=null,be=null,$e=null,st=null}}}let o=new r,a=new i,c=new s,l={},u={},h=new WeakMap,d=[],p=null,f=!1,m=null,y=null,g=null,b=null,x=null,w=null,T=null,M=!1,v=null,E=null,C=null,P=null,D=null,_=n.getParameter(35661),I=!1,B=0,N=n.getParameter(7938);N.indexOf("WebGL")!==-1?(B=parseFloat(/^WebGL (\d)/.exec(N)[1]),I=B>=1):N.indexOf("OpenGL ES")!==-1&&(B=parseFloat(/^OpenGL ES (\d)/.exec(N)[1]),I=B>=2);let W=null,X={},F=n.getParameter(3088),k=n.getParameter(2978),Q=new Ve().fromArray(F),z=new Ve().fromArray(k);function U(H,xe,Te){let Qe=new Uint8Array(4),Re=n.createTexture();n.bindTexture(H,Re),n.texParameteri(H,10241,9728),n.texParameteri(H,10240,9728);for(let Je=0;Je<Te;Je++)n.texImage2D(xe+Je,0,6408,1,1,0,6408,5121,Qe);return Re}let j={};j[3553]=U(3553,3553,1),j[34067]=U(34067,34069,6),o.setClear(0,0,0,1),a.setClear(1),c.setClear(0),q(2929),a.setFunc(Hg),Me(!1),me(Jx),q(2884),le(Nt);function q(H){l[H]!==!0&&(n.enable(H),l[H]=!0)}function V(H){l[H]!==!1&&(n.disable(H),l[H]=!1)}function ue(H,xe){return u[H]!==xe?(n.bindFramebuffer(H,xe),u[H]=xe,A&&(H===36009&&(u[36160]=xe),H===36160&&(u[36009]=xe)),!0):!1}function Ae(H,xe){let Te=d,Qe=!1;if(H)if(Te=h.get(xe),Te===void 0&&(Te=[],h.set(xe,Te)),H.isWebGLMultipleRenderTargets){let Re=H.texture;if(Te.length!==Re.length||Te[0]!==36064){for(let Je=0,be=Re.length;Je<be;Je++)Te[Je]=36064+Je;Te.length=Re.length,Qe=!0}}else Te[0]!==36064&&(Te[0]=36064,Qe=!0);else Te[0]!==1029&&(Te[0]=1029,Qe=!0);Qe&&(t.isWebGL2?n.drawBuffers(Te):e.get("WEBGL_draw_buffers").drawBuffersWEBGL(Te))}function K(H){return p!==H?(n.useProgram(H),p=H,!0):!1}let Y={[ca]:32774,[_D]:32778,[OD]:32779};if(A)Y[Ab]=32775,Y[nb]=32776;else{let H=e.get("EXT_blend_minmax");H!==null&&(Y[Ab]=H.MIN_EXT,Y[nb]=H.MAX_EXT)}let ne={[RD]:0,[BD]:1,[ND]:768,[Lw]:770,[zD]:776,[UD]:774,[GD]:772,[FD]:769,[_w]:771,[VD]:775,[kD]:773};function le(H,xe,Te,Qe,Re,Je,be,$e){if(H===Nt){f===!0&&(V(3042),f=!1);return}if(f===!1&&(q(3042),f=!0),H!==LD){if(H!==m||$e!==M){if((y!==ca||x!==ca)&&(n.blendEquation(32774),y=ca,x=ca),$e)switch(H){case da:n.blendFuncSeparate(1,771,1,771);break;case $x:n.blendFunc(1,1);break;case eb:n.blendFuncSeparate(0,769,0,1);break;case tb:n.blendFuncSeparate(0,768,0,770);break;default:console.error("THREE.WebGLState: Invalid blending: ",H);break}else switch(H){case da:n.blendFuncSeparate(770,771,1,771);break;case $x:n.blendFunc(770,1);break;case eb:n.blendFuncSeparate(0,769,0,1);break;case tb:n.blendFunc(0,768);break;default:console.error("THREE.WebGLState: Invalid blending: ",H);break}g=null,b=null,w=null,T=null,m=H,M=$e}return}Re=Re||xe,Je=Je||Te,be=be||Qe,(xe!==y||Re!==x)&&(n.blendEquationSeparate(Y[xe],Y[Re]),y=xe,x=Re),(Te!==g||Qe!==b||Je!==w||be!==T)&&(n.blendFuncSeparate(ne[Te],ne[Qe],ne[Je],ne[be]),g=Te,b=Qe,w=Je,T=be),m=H,M=null}function se(H,xe){H.side===An?V(2884):q(2884);let Te=H.side===hA;xe&&(Te=!Te),Me(Te),H.blending===da&&H.transparent===!1?le(Nt):le(H.blending,H.blendEquation,H.blendSrc,H.blendDst,H.blendEquationAlpha,H.blendSrcAlpha,H.blendDstAlpha,H.premultipliedAlpha),a.setFunc(H.depthFunc),a.setTest(H.depthTest),a.setMask(H.depthWrite),o.setMask(H.colorWrite);let Qe=H.stencilWrite;c.setTest(Qe),Qe&&(c.setMask(H.stencilWriteMask),c.setFunc(H.stencilFunc,H.stencilRef,H.stencilFuncMask),c.setOp(H.stencilFail,H.stencilZFail,H.stencilZPass)),ye(H.polygonOffset,H.polygonOffsetFactor,H.polygonOffsetUnits),H.alphaToCoverage===!0?q(32926):V(32926)}function Me(H){v!==H&&(H?n.frontFace(2304):n.frontFace(2305),v=H)}function me(H){H!==PD?(q(2884),H!==E&&(H===Jx?n.cullFace(1029):H===DD?n.cullFace(1028):n.cullFace(1032))):V(2884),E=H}function ge(H){H!==C&&(I&&n.lineWidth(H),C=H)}function ye(H,xe,Te){H?(q(32823),(P!==xe||D!==Te)&&(n.polygonOffset(xe,Te),P=xe,D=Te)):V(32823)}function de(H){H?q(3089):V(3089)}function De(H){H===void 0&&(H=33984+_-1),W!==H&&(n.activeTexture(H),W=H)}function Be(H,xe){W===null&&De();let Te=X[W];Te===void 0&&(Te={type:void 0,texture:void 0},X[W]=Te),(Te.type!==H||Te.texture!==xe)&&(n.bindTexture(H,xe||j[H]),Te.type=H,Te.texture=xe)}function Ze(){let H=X[W];H!==void 0&&H.type!==void 0&&(n.bindTexture(H.type,null),H.type=void 0,H.texture=void 0)}function R(){try{n.compressedTexImage2D.apply(n,arguments)}catch(H){console.error("THREE.WebGLState:",H)}}function L(){try{n.texSubImage2D.apply(n,arguments)}catch(H){console.error("THREE.WebGLState:",H)}}function J(){try{n.texSubImage3D.apply(n,arguments)}catch(H){console.error("THREE.WebGLState:",H)}}function ae(){try{n.compressedTexSubImage2D.apply(n,arguments)}catch(H){console.error("THREE.WebGLState:",H)}}function fe(){try{n.texStorage2D.apply(n,arguments)}catch(H){console.error("THREE.WebGLState:",H)}}function Ce(){try{n.texStorage3D.apply(n,arguments)}catch(H){console.error("THREE.WebGLState:",H)}}function Fe(){try{n.texImage2D.apply(n,arguments)}catch(H){console.error("THREE.WebGLState:",H)}}function re(){try{n.texImage3D.apply(n,arguments)}catch(H){console.error("THREE.WebGLState:",H)}}function Ne(H){Q.equals(H)===!1&&(n.scissor(H.x,H.y,H.z,H.w),Q.copy(H))}function Oe(H){z.equals(H)===!1&&(n.viewport(H.x,H.y,H.z,H.w),z.copy(H))}function ve(){n.disable(3042),n.disable(2884),n.disable(2929),n.disable(32823),n.disable(3089),n.disable(2960),n.disable(32926),n.blendEquation(32774),n.blendFunc(1,0),n.blendFuncSeparate(1,0,1,0),n.colorMask(!0,!0,!0,!0),n.clearColor(0,0,0,0),n.depthMask(!0),n.depthFunc(513),n.clearDepth(1),n.stencilMask(4294967295),n.stencilFunc(519,0,4294967295),n.stencilOp(7680,7680,7680),n.clearStencil(0),n.cullFace(1029),n.frontFace(2305),n.polygonOffset(0,0),n.activeTexture(33984),n.bindFramebuffer(36160,null),A===!0&&(n.bindFramebuffer(36009,null),n.bindFramebuffer(36008,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),l={},W=null,X={},u={},h=new WeakMap,d=[],p=null,f=!1,m=null,y=null,g=null,b=null,x=null,w=null,T=null,M=!1,v=null,E=null,C=null,P=null,D=null,Q.set(0,0,n.canvas.width,n.canvas.height),z.set(0,0,n.canvas.width,n.canvas.height),o.reset(),a.reset(),c.reset()}return{buffers:{color:o,depth:a,stencil:c},enable:q,disable:V,bindFramebuffer:ue,drawBuffers:Ae,useProgram:K,setBlending:le,setMaterial:se,setFlipSided:Me,setCullFace:me,setLineWidth:ge,setPolygonOffset:ye,setScissorTest:de,activeTexture:De,bindTexture:Be,unbindTexture:Ze,compressedTexImage2D:R,texImage2D:Fe,texImage3D:re,texStorage2D:fe,texStorage3D:Ce,texSubImage2D:L,texSubImage3D:J,compressedTexSubImage2D:ae,scissor:Ne,viewport:Oe,reset:ve}}function p3(n,e,t,A,r,i,s){let o=r.isWebGL2,a=r.maxTextures,c=r.maxCubemapSize,l=r.maxTextureSize,u=r.maxSamples,h=e.has("WEBGL_multisampled_render_to_texture")?e.get("WEBGL_multisampled_render_to_texture"):null,d=/OculusBrowser/g.test(navigator.userAgent),p=new WeakMap,f,m=new WeakMap,y=!1;try{y=typeof OffscreenCanvas<"u"&&new OffscreenCanvas(1,1).getContext("2d")!==null}catch{}function g(R,L){return y?new OffscreenCanvas(R,L):Rd("canvas")}function b(R,L,J,ae){let fe=1;if((R.width>ae||R.height>ae)&&(fe=ae/Math.max(R.width,R.height)),fe<1||L===!0)if(typeof HTMLImageElement<"u"&&R instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&R instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&R instanceof ImageBitmap){let Ce=L?Od:Math.floor,Fe=Ce(fe*R.width),re=Ce(fe*R.height);f===void 0&&(f=g(Fe,re));let Ne=J?g(Fe,re):f;return Ne.width=Fe,Ne.height=re,Ne.getContext("2d").drawImage(R,0,0,Fe,re),console.warn("THREE.WebGLRenderer: Texture has been resized from ("+R.width+"x"+R.height+") to ("+Fe+"x"+re+")."),Ne}else return"data"in R&&console.warn("THREE.WebGLRenderer: Image in DataTexture is too big ("+R.width+"x"+R.height+")."),R;return R}function x(R){return Qg(R.width)&&Qg(R.height)}function w(R){return o?!1:R.wrapS!==tn||R.wrapT!==tn||R.minFilter!==Gt&&R.minFilter!==it}function T(R,L){return R.generateMipmaps&&L&&R.minFilter!==Gt&&R.minFilter!==it}function M(R){n.generateMipmap(R)}function v(R,L,J,ae,fe=!1){if(o===!1)return L;if(R!==null){if(n[R]!==void 0)return n[R];console.warn("THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '"+R+"'")}let Ce=L;return L===6403&&(J===5126&&(Ce=33326),J===5131&&(Ce=33325),J===5121&&(Ce=33321)),L===33319&&(J===5126&&(Ce=33328),J===5131&&(Ce=33327),J===5121&&(Ce=33323)),L===6408&&(J===5126&&(Ce=34836),J===5131&&(Ce=34842),J===5121&&(Ce=ae===qe&&fe===!1?35907:32856),J===32819&&(Ce=32854),J===32820&&(Ce=32855)),(Ce===33325||Ce===33326||Ce===33327||Ce===33328||Ce===34842||Ce===34836)&&e.get("EXT_color_buffer_float"),Ce}function E(R,L,J){return T(R,J)===!0||R.isFramebufferTexture&&R.minFilter!==Gt&&R.minFilter!==it?Math.log2(Math.max(L.width,L.height))+1:R.mipmaps!==void 0&&R.mipmaps.length>0?R.mipmaps.length:R.isCompressedTexture&&Array.isArray(R.image)?L.mipmaps.length:1}function C(R){return R===Gt||R===rb||R===ib?9728:9729}function P(R){let L=R.target;L.removeEventListener("dispose",P),_(L),L.isVideoTexture&&p.delete(L)}function D(R){let L=R.target;L.removeEventListener("dispose",D),B(L)}function _(R){let L=A.get(R);if(L.__webglInit===void 0)return;let J=R.source,ae=m.get(J);if(ae){let fe=ae[L.__cacheKey];fe.usedTimes--,fe.usedTimes===0&&I(R),Object.keys(ae).length===0&&m.delete(J)}A.remove(R)}function I(R){let L=A.get(R);n.deleteTexture(L.__webglTexture);let J=R.source,ae=m.get(J);delete ae[L.__cacheKey],s.memory.textures--}function B(R){let L=R.texture,J=A.get(R),ae=A.get(L);if(ae.__webglTexture!==void 0&&(n.deleteTexture(ae.__webglTexture),s.memory.textures--),R.depthTexture&&R.depthTexture.dispose(),R.isWebGLCubeRenderTarget)for(let fe=0;fe<6;fe++)n.deleteFramebuffer(J.__webglFramebuffer[fe]),J.__webglDepthbuffer&&n.deleteRenderbuffer(J.__webglDepthbuffer[fe]);else{if(n.deleteFramebuffer(J.__webglFramebuffer),J.__webglDepthbuffer&&n.deleteRenderbuffer(J.__webglDepthbuffer),J.__webglMultisampledFramebuffer&&n.deleteFramebuffer(J.__webglMultisampledFramebuffer),J.__webglColorRenderbuffer)for(let fe=0;fe<J.__webglColorRenderbuffer.length;fe++)J.__webglColorRenderbuffer[fe]&&n.deleteRenderbuffer(J.__webglColorRenderbuffer[fe]);J.__webglDepthRenderbuffer&&n.deleteRenderbuffer(J.__webglDepthRenderbuffer)}if(R.isWebGLMultipleRenderTargets)for(let fe=0,Ce=L.length;fe<Ce;fe++){let Fe=A.get(L[fe]);Fe.__webglTexture&&(n.deleteTexture(Fe.__webglTexture),s.memory.textures--),A.remove(L[fe])}A.remove(L),A.remove(R)}let N=0;function W(){N=0}function X(){let R=N;return R>=a&&console.warn("THREE.WebGLTextures: Trying to use "+R+" texture units while this GPU supports only "+a),N+=1,R}function F(R){let L=[];return L.push(R.wrapS),L.push(R.wrapT),L.push(R.magFilter),L.push(R.minFilter),L.push(R.anisotropy),L.push(R.internalFormat),L.push(R.format),L.push(R.type),L.push(R.generateMipmaps),L.push(R.premultiplyAlpha),L.push(R.flipY),L.push(R.unpackAlignment),L.push(R.encoding),L.join()}function k(R,L){let J=A.get(R);if(R.isVideoTexture&&Be(R),R.isRenderTargetTexture===!1&&R.version>0&&J.__version!==R.version){let ae=R.image;if(ae===null)console.warn("THREE.WebGLRenderer: Texture marked for update but no image data found.");else if(ae.complete===!1)console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete");else{Ae(J,R,L);return}}t.activeTexture(33984+L),t.bindTexture(3553,J.__webglTexture)}function Q(R,L){let J=A.get(R);if(R.version>0&&J.__version!==R.version){Ae(J,R,L);return}t.activeTexture(33984+L),t.bindTexture(35866,J.__webglTexture)}function z(R,L){let J=A.get(R);if(R.version>0&&J.__version!==R.version){Ae(J,R,L);return}t.activeTexture(33984+L),t.bindTexture(32879,J.__webglTexture)}function U(R,L){let J=A.get(R);if(R.version>0&&J.__version!==R.version){K(J,R,L);return}t.activeTexture(33984+L),t.bindTexture(34067,J.__webglTexture)}let j={[pa]:10497,[tn]:33071,[Yg]:33648},q={[Gt]:9728,[rb]:9984,[ib]:9986,[it]:9729,[nI]:9985,[Ba]:9987};function V(R,L,J){if(J?(n.texParameteri(R,10242,j[L.wrapS]),n.texParameteri(R,10243,j[L.wrapT]),(R===32879||R===35866)&&n.texParameteri(R,32882,j[L.wrapR]),n.texParameteri(R,10240,q[L.magFilter]),n.texParameteri(R,10241,q[L.minFilter])):(n.texParameteri(R,10242,33071),n.texParameteri(R,10243,33071),(R===32879||R===35866)&&n.texParameteri(R,32882,33071),(L.wrapS!==tn||L.wrapT!==tn)&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping."),n.texParameteri(R,10240,C(L.magFilter)),n.texParameteri(R,10241,C(L.minFilter)),L.minFilter!==Gt&&L.minFilter!==it&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter.")),e.has("EXT_texture_filter_anisotropic")===!0){let ae=e.get("EXT_texture_filter_anisotropic");if(L.type===Rr&&e.has("OES_texture_float_linear")===!1||o===!1&&L.type===$c&&e.has("OES_texture_half_float_linear")===!1)return;(L.anisotropy>1||A.get(L).__currentAnisotropy)&&(n.texParameterf(R,ae.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(L.anisotropy,r.getMaxAnisotropy())),A.get(L).__currentAnisotropy=L.anisotropy)}}function ue(R,L){let J=!1;R.__webglInit===void 0&&(R.__webglInit=!0,L.addEventListener("dispose",P));let ae=L.source,fe=m.get(ae);fe===void 0&&(fe={},m.set(ae,fe));let Ce=F(L);if(Ce!==R.__cacheKey){fe[Ce]===void 0&&(fe[Ce]={texture:n.createTexture(),usedTimes:0},s.memory.textures++,J=!0),fe[Ce].usedTimes++;let Fe=fe[R.__cacheKey];Fe!==void 0&&(fe[R.__cacheKey].usedTimes--,Fe.usedTimes===0&&I(L)),R.__cacheKey=Ce,R.__webglTexture=fe[Ce].texture}return J}function Ae(R,L,J){let ae=3553;L.isDataArrayTexture&&(ae=35866),L.isData3DTexture&&(ae=32879);let fe=ue(R,L),Ce=L.source;if(t.activeTexture(33984+J),t.bindTexture(ae,R.__webglTexture),Ce.version!==Ce.__currentVersion||fe===!0){n.pixelStorei(37440,L.flipY),n.pixelStorei(37441,L.premultiplyAlpha),n.pixelStorei(3317,L.unpackAlignment),n.pixelStorei(37443,0);let Fe=w(L)&&x(L.image)===!1,re=b(L.image,Fe,!1,l);re=Ze(L,re);let Ne=x(re)||o,Oe=i.convert(L.format,L.encoding),ve=i.convert(L.type),H=v(L.internalFormat,Oe,ve,L.encoding,L.isVideoTexture);V(ae,L,Ne);let xe,Te=L.mipmaps,Qe=o&&L.isVideoTexture!==!0,Re=Ce.__currentVersion===void 0||fe===!0,Je=E(L,re,Ne);if(L.isDepthTexture)H=6402,o?L.type===Rr?H=36012:L.type===wi?H=33190:L.type===Ji?H=35056:H=33189:L.type===Rr&&console.error("WebGLRenderer: Floating point depth texture requires WebGL2."),L.format===Ao&&H===6402&&L.type!==Bw&&L.type!==wi&&(console.warn("THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture."),L.type=wi,ve=i.convert(L.type)),L.format===ts&&H===6402&&(H=34041,L.type!==Ji&&(console.warn("THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture."),L.type=Ji,ve=i.convert(L.type))),Re&&(Qe?t.texStorage2D(3553,1,H,re.width,re.height):t.texImage2D(3553,0,H,re.width,re.height,0,Oe,ve,null));else if(L.isDataTexture)if(Te.length>0&&Ne){Qe&&Re&&t.texStorage2D(3553,Je,H,Te[0].width,Te[0].height);for(let be=0,$e=Te.length;be<$e;be++)xe=Te[be],Qe?t.texSubImage2D(3553,be,0,0,xe.width,xe.height,Oe,ve,xe.data):t.texImage2D(3553,be,H,xe.width,xe.height,0,Oe,ve,xe.data);L.generateMipmaps=!1}else Qe?(Re&&t.texStorage2D(3553,Je,H,re.width,re.height),t.texSubImage2D(3553,0,0,0,re.width,re.height,Oe,ve,re.data)):t.texImage2D(3553,0,H,re.width,re.height,0,Oe,ve,re.data);else if(L.isCompressedTexture){Qe&&Re&&t.texStorage2D(3553,Je,H,Te[0].width,Te[0].height);for(let be=0,$e=Te.length;be<$e;be++)xe=Te[be],L.format!==hr?Oe!==null?Qe?t.compressedTexSubImage2D(3553,be,0,0,xe.width,xe.height,Oe,xe.data):t.compressedTexImage2D(3553,be,H,xe.width,xe.height,0,xe.data):console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()"):Qe?t.texSubImage2D(3553,be,0,0,xe.width,xe.height,Oe,ve,xe.data):t.texImage2D(3553,be,H,xe.width,xe.height,0,Oe,ve,xe.data)}else if(L.isDataArrayTexture)Qe?(Re&&t.texStorage3D(35866,Je,H,re.width,re.height,re.depth),t.texSubImage3D(35866,0,0,0,0,re.width,re.height,re.depth,Oe,ve,re.data)):t.texImage3D(35866,0,H,re.width,re.height,re.depth,0,Oe,ve,re.data);else if(L.isData3DTexture)Qe?(Re&&t.texStorage3D(32879,Je,H,re.width,re.height,re.depth),t.texSubImage3D(32879,0,0,0,0,re.width,re.height,re.depth,Oe,ve,re.data)):t.texImage3D(32879,0,H,re.width,re.height,re.depth,0,Oe,ve,re.data);else if(L.isFramebufferTexture){if(Re)if(Qe)t.texStorage2D(3553,Je,H,re.width,re.height);else{let be=re.width,$e=re.height;for(let st=0;st<Je;st++)t.texImage2D(3553,st,H,be,$e,0,Oe,ve,null),be>>=1,$e>>=1}}else if(Te.length>0&&Ne){Qe&&Re&&t.texStorage2D(3553,Je,H,Te[0].width,Te[0].height);for(let be=0,$e=Te.length;be<$e;be++)xe=Te[be],Qe?t.texSubImage2D(3553,be,0,0,Oe,ve,xe):t.texImage2D(3553,be,H,Oe,ve,xe);L.generateMipmaps=!1}else Qe?(Re&&t.texStorage2D(3553,Je,H,re.width,re.height),t.texSubImage2D(3553,0,0,0,Oe,ve,re)):t.texImage2D(3553,0,H,Oe,ve,re);T(L,Ne)&&M(ae),Ce.__currentVersion=Ce.version,L.onUpdate&&L.onUpdate(L)}R.__version=L.version}function K(R,L,J){if(L.image.length!==6)return;let ae=ue(R,L),fe=L.source;if(t.activeTexture(33984+J),t.bindTexture(34067,R.__webglTexture),fe.version!==fe.__currentVersion||ae===!0){n.pixelStorei(37440,L.flipY),n.pixelStorei(37441,L.premultiplyAlpha),n.pixelStorei(3317,L.unpackAlignment),n.pixelStorei(37443,0);let Ce=L.isCompressedTexture||L.image[0].isCompressedTexture,Fe=L.image[0]&&L.image[0].isDataTexture,re=[];for(let be=0;be<6;be++)!Ce&&!Fe?re[be]=b(L.image[be],!1,!0,c):re[be]=Fe?L.image[be].image:L.image[be],re[be]=Ze(L,re[be]);let Ne=re[0],Oe=x(Ne)||o,ve=i.convert(L.format,L.encoding),H=i.convert(L.type),xe=v(L.internalFormat,ve,H,L.encoding),Te=o&&L.isVideoTexture!==!0,Qe=fe.__currentVersion===void 0||ae===!0,Re=E(L,Ne,Oe);V(34067,L,Oe);let Je;if(Ce){Te&&Qe&&t.texStorage2D(34067,Re,xe,Ne.width,Ne.height);for(let be=0;be<6;be++){Je=re[be].mipmaps;for(let $e=0;$e<Je.length;$e++){let st=Je[$e];L.format!==hr?ve!==null?Te?t.compressedTexSubImage2D(34069+be,$e,0,0,st.width,st.height,ve,st.data):t.compressedTexImage2D(34069+be,$e,xe,st.width,st.height,0,st.data):console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .setTextureCube()"):Te?t.texSubImage2D(34069+be,$e,0,0,st.width,st.height,ve,H,st.data):t.texImage2D(34069+be,$e,xe,st.width,st.height,0,ve,H,st.data)}}}else{Je=L.mipmaps,Te&&Qe&&(Je.length>0&&Re++,t.texStorage2D(34067,Re,xe,re[0].width,re[0].height));for(let be=0;be<6;be++)if(Fe){Te?t.texSubImage2D(34069+be,0,0,0,re[be].width,re[be].height,ve,H,re[be].data):t.texImage2D(34069+be,0,xe,re[be].width,re[be].height,0,ve,H,re[be].data);for(let $e=0;$e<Je.length;$e++){let vt=Je[$e].image[be].image;Te?t.texSubImage2D(34069+be,$e+1,0,0,vt.width,vt.height,ve,H,vt.data):t.texImage2D(34069+be,$e+1,xe,vt.width,vt.height,0,ve,H,vt.data)}}else{Te?t.texSubImage2D(34069+be,0,0,0,ve,H,re[be]):t.texImage2D(34069+be,0,xe,ve,H,re[be]);for(let $e=0;$e<Je.length;$e++){let st=Je[$e];Te?t.texSubImage2D(34069+be,$e+1,0,0,ve,H,st.image[be]):t.texImage2D(34069+be,$e+1,xe,ve,H,st.image[be])}}}T(L,Oe)&&M(34067),fe.__currentVersion=fe.version,L.onUpdate&&L.onUpdate(L)}R.__version=L.version}function Y(R,L,J,ae,fe){let Ce=i.convert(J.format,J.encoding),Fe=i.convert(J.type),re=v(J.internalFormat,Ce,Fe,J.encoding);A.get(L).__hasExternalTextures||(fe===32879||fe===35866?t.texImage3D(fe,0,re,L.width,L.height,L.depth,0,Ce,Fe,null):t.texImage2D(fe,0,re,L.width,L.height,0,Ce,Fe,null)),t.bindFramebuffer(36160,R),De(L)?h.framebufferTexture2DMultisampleEXT(36160,ae,fe,A.get(J).__webglTexture,0,de(L)):n.framebufferTexture2D(36160,ae,fe,A.get(J).__webglTexture,0),t.bindFramebuffer(36160,null)}function ne(R,L,J){if(n.bindRenderbuffer(36161,R),L.depthBuffer&&!L.stencilBuffer){let ae=33189;if(J||De(L)){let fe=L.depthTexture;fe&&fe.isDepthTexture&&(fe.type===Rr?ae=36012:fe.type===wi&&(ae=33190));let Ce=de(L);De(L)?h.renderbufferStorageMultisampleEXT(36161,Ce,ae,L.width,L.height):n.renderbufferStorageMultisample(36161,Ce,ae,L.width,L.height)}else n.renderbufferStorage(36161,ae,L.width,L.height);n.framebufferRenderbuffer(36160,36096,36161,R)}else if(L.depthBuffer&&L.stencilBuffer){let ae=de(L);J&&De(L)===!1?n.renderbufferStorageMultisample(36161,ae,35056,L.width,L.height):De(L)?h.renderbufferStorageMultisampleEXT(36161,ae,35056,L.width,L.height):n.renderbufferStorage(36161,34041,L.width,L.height),n.framebufferRenderbuffer(36160,33306,36161,R)}else{let ae=L.isWebGLMultipleRenderTargets===!0?L.texture:[L.texture];for(let fe=0;fe<ae.length;fe++){let Ce=ae[fe],Fe=i.convert(Ce.format,Ce.encoding),re=i.convert(Ce.type),Ne=v(Ce.internalFormat,Fe,re,Ce.encoding),Oe=de(L);J&&De(L)===!1?n.renderbufferStorageMultisample(36161,Oe,Ne,L.width,L.height):De(L)?h.renderbufferStorageMultisampleEXT(36161,Oe,Ne,L.width,L.height):n.renderbufferStorage(36161,Ne,L.width,L.height)}}n.bindRenderbuffer(36161,null)}function le(R,L){if(L&&L.isWebGLCubeRenderTarget)throw new Error("Depth Texture with cube render targets is not supported");if(t.bindFramebuffer(36160,R),!(L.depthTexture&&L.depthTexture.isDepthTexture))throw new Error("renderTarget.depthTexture must be an instance of THREE.DepthTexture");(!A.get(L.depthTexture).__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),k(L.depthTexture,0);let ae=A.get(L.depthTexture).__webglTexture,fe=de(L);if(L.depthTexture.format===Ao)De(L)?h.framebufferTexture2DMultisampleEXT(36160,36096,3553,ae,0,fe):n.framebufferTexture2D(36160,36096,3553,ae,0);else if(L.depthTexture.format===ts)De(L)?h.framebufferTexture2DMultisampleEXT(36160,33306,3553,ae,0,fe):n.framebufferTexture2D(36160,33306,3553,ae,0);else throw new Error("Unknown depthTexture format")}function se(R){let L=A.get(R),J=R.isWebGLCubeRenderTarget===!0;if(R.depthTexture&&!L.__autoAllocateDepthBuffer){if(J)throw new Error("target.depthTexture not supported in Cube render targets");le(L.__webglFramebuffer,R)}else if(J){L.__webglDepthbuffer=[];for(let ae=0;ae<6;ae++)t.bindFramebuffer(36160,L.__webglFramebuffer[ae]),L.__webglDepthbuffer[ae]=n.createRenderbuffer(),ne(L.__webglDepthbuffer[ae],R,!1)}else t.bindFramebuffer(36160,L.__webglFramebuffer),L.__webglDepthbuffer=n.createRenderbuffer(),ne(L.__webglDepthbuffer,R,!1);t.bindFramebuffer(36160,null)}function Me(R,L,J){let ae=A.get(R);L!==void 0&&Y(ae.__webglFramebuffer,R,R.texture,36064,3553),J!==void 0&&se(R)}function me(R){let L=R.texture,J=A.get(R),ae=A.get(L);R.addEventListener("dispose",D),R.isWebGLMultipleRenderTargets!==!0&&(ae.__webglTexture===void 0&&(ae.__webglTexture=n.createTexture()),ae.__version=L.version,s.memory.textures++);let fe=R.isWebGLCubeRenderTarget===!0,Ce=R.isWebGLMultipleRenderTargets===!0,Fe=x(R)||o;if(fe){J.__webglFramebuffer=[];for(let re=0;re<6;re++)J.__webglFramebuffer[re]=n.createFramebuffer()}else{if(J.__webglFramebuffer=n.createFramebuffer(),Ce)if(r.drawBuffers){let re=R.texture;for(let Ne=0,Oe=re.length;Ne<Oe;Ne++){let ve=A.get(re[Ne]);ve.__webglTexture===void 0&&(ve.__webglTexture=n.createTexture(),s.memory.textures++)}}else console.warn("THREE.WebGLRenderer: WebGLMultipleRenderTargets can only be used with WebGL2 or WEBGL_draw_buffers extension.");if(o&&R.samples>0&&De(R)===!1){let re=Ce?L:[L];J.__webglMultisampledFramebuffer=n.createFramebuffer(),J.__webglColorRenderbuffer=[],t.bindFramebuffer(36160,J.__webglMultisampledFramebuffer);for(let Ne=0;Ne<re.length;Ne++){let Oe=re[Ne];J.__webglColorRenderbuffer[Ne]=n.createRenderbuffer(),n.bindRenderbuffer(36161,J.__webglColorRenderbuffer[Ne]);let ve=i.convert(Oe.format,Oe.encoding),H=i.convert(Oe.type),xe=v(Oe.internalFormat,ve,H,Oe.encoding),Te=de(R);n.renderbufferStorageMultisample(36161,Te,xe,R.width,R.height),n.framebufferRenderbuffer(36160,36064+Ne,36161,J.__webglColorRenderbuffer[Ne])}n.bindRenderbuffer(36161,null),R.depthBuffer&&(J.__webglDepthRenderbuffer=n.createRenderbuffer(),ne(J.__webglDepthRenderbuffer,R,!0)),t.bindFramebuffer(36160,null)}}if(fe){t.bindTexture(34067,ae.__webglTexture),V(34067,L,Fe);for(let re=0;re<6;re++)Y(J.__webglFramebuffer[re],R,L,36064,34069+re);T(L,Fe)&&M(34067),t.unbindTexture()}else if(Ce){let re=R.texture;for(let Ne=0,Oe=re.length;Ne<Oe;Ne++){let ve=re[Ne],H=A.get(ve);t.bindTexture(3553,H.__webglTexture),V(3553,ve,Fe),Y(J.__webglFramebuffer,R,ve,36064+Ne,3553),T(ve,Fe)&&M(3553)}t.unbindTexture()}else{let re=3553;(R.isWebGL3DRenderTarget||R.isWebGLArrayRenderTarget)&&(o?re=R.isWebGL3DRenderTarget?32879:35866:console.error("THREE.WebGLTextures: THREE.Data3DTexture and THREE.DataArrayTexture only supported with WebGL2.")),t.bindTexture(re,ae.__webglTexture),V(re,L,Fe),Y(J.__webglFramebuffer,R,L,36064,re),T(L,Fe)&&M(re),t.unbindTexture()}R.depthBuffer&&se(R)}function ge(R){let L=x(R)||o,J=R.isWebGLMultipleRenderTargets===!0?R.texture:[R.texture];for(let ae=0,fe=J.length;ae<fe;ae++){let Ce=J[ae];if(T(Ce,L)){let Fe=R.isWebGLCubeRenderTarget?34067:3553,re=A.get(Ce).__webglTexture;t.bindTexture(Fe,re),M(Fe),t.unbindTexture()}}}function ye(R){if(o&&R.samples>0&&De(R)===!1){let L=R.isWebGLMultipleRenderTargets?R.texture:[R.texture],J=R.width,ae=R.height,fe=16384,Ce=[],Fe=R.stencilBuffer?33306:36096,re=A.get(R),Ne=R.isWebGLMultipleRenderTargets===!0;if(Ne)for(let Oe=0;Oe<L.length;Oe++)t.bindFramebuffer(36160,re.__webglMultisampledFramebuffer),n.framebufferRenderbuffer(36160,36064+Oe,36161,null),t.bindFramebuffer(36160,re.__webglFramebuffer),n.framebufferTexture2D(36009,36064+Oe,3553,null,0);t.bindFramebuffer(36008,re.__webglMultisampledFramebuffer),t.bindFramebuffer(36009,re.__webglFramebuffer);for(let Oe=0;Oe<L.length;Oe++){Ce.push(36064+Oe),R.depthBuffer&&Ce.push(Fe);let ve=re.__ignoreDepthValues!==void 0?re.__ignoreDepthValues:!1;if(ve===!1&&(R.depthBuffer&&(fe|=256),R.stencilBuffer&&(fe|=1024)),Ne&&n.framebufferRenderbuffer(36008,36064,36161,re.__webglColorRenderbuffer[Oe]),ve===!0&&(n.invalidateFramebuffer(36008,[Fe]),n.invalidateFramebuffer(36009,[Fe])),Ne){let H=A.get(L[Oe]).__webglTexture;n.framebufferTexture2D(36009,36064,3553,H,0)}n.blitFramebuffer(0,0,J,ae,0,0,J,ae,fe,9728),d&&n.invalidateFramebuffer(36008,Ce)}if(t.bindFramebuffer(36008,null),t.bindFramebuffer(36009,null),Ne)for(let Oe=0;Oe<L.length;Oe++){t.bindFramebuffer(36160,re.__webglMultisampledFramebuffer),n.framebufferRenderbuffer(36160,36064+Oe,36161,re.__webglColorRenderbuffer[Oe]);let ve=A.get(L[Oe]).__webglTexture;t.bindFramebuffer(36160,re.__webglFramebuffer),n.framebufferTexture2D(36009,36064+Oe,3553,ve,0)}t.bindFramebuffer(36009,re.__webglMultisampledFramebuffer)}}function de(R){return Math.min(u,R.samples)}function De(R){let L=A.get(R);return o&&R.samples>0&&e.has("WEBGL_multisampled_render_to_texture")===!0&&L.__useRenderToTexture!==!1}function Be(R){let L=s.render.frame;p.get(R)!==L&&(p.set(R,L),R.update())}function Ze(R,L){let J=R.encoding,ae=R.format,fe=R.type;return R.isCompressedTexture===!0||R.isVideoTexture===!0||R.format===Xg||J!==Ln&&(J===qe?o===!1?e.has("EXT_sRGB")===!0&&ae===hr?(R.format=Xg,R.minFilter=it,R.generateMipmaps=!1):L=Bd.sRGBToLinear(L):(ae!==hr||fe!==kt)&&console.warn("THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType."):console.error("THREE.WebGLTextures: Unsupported texture encoding:",J)),L}this.allocateTextureUnit=X,this.resetTextureUnits=W,this.setTexture2D=k,this.setTexture2DArray=Q,this.setTexture3D=z,this.setTextureCube=U,this.rebindTextures=Me,this.setupRenderTarget=me,this.updateRenderTargetMipmap=ge,this.updateMultisampleRenderTarget=ye,this.setupDepthRenderbuffer=se,this.setupFrameBufferTexture=Y,this.useMultisampledRTT=De}function m3(n,e,t){let A=t.isWebGL2;function r(i,s=null){let o;if(i===kt)return 5121;if(i===oI)return 32819;if(i===aI)return 32820;if(i===rI)return 5120;if(i===iI)return 5122;if(i===Bw)return 5123;if(i===sI)return 5124;if(i===wi)return 5125;if(i===Rr)return 5126;if(i===$c)return A?5131:(o=e.get("OES_texture_half_float"),o!==null?o.HALF_FLOAT_OES:null);if(i===lI)return 6406;if(i===hr)return 6408;if(i===uI)return 6409;if(i===hI)return 6410;if(i===Ao)return 6402;if(i===ts)return 34041;if(i===dI)return 6403;if(i===cI)return console.warn("THREE.WebGLRenderer: THREE.RGBFormat has been removed. Use THREE.RGBAFormat instead. https://github.com/mrdoob/three.js/pull/23228"),6408;if(i===Xg)return o=e.get("EXT_sRGB"),o!==null?o.SRGB_ALPHA_EXT:null;if(i===fI)return 36244;if(i===pI)return 33319;if(i===mI)return 33320;if(i===gI)return 36249;if(i===og||i===ag||i===lg||i===cg)if(s===qe)if(o=e.get("WEBGL_compressed_texture_s3tc_srgb"),o!==null){if(i===og)return o.COMPRESSED_SRGB_S3TC_DXT1_EXT;if(i===ag)return o.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT;if(i===lg)return o.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT;if(i===cg)return o.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT}else return null;else if(o=e.get("WEBGL_compressed_texture_s3tc"),o!==null){if(i===og)return o.COMPRESSED_RGB_S3TC_DXT1_EXT;if(i===ag)return o.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(i===lg)return o.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(i===cg)return o.COMPRESSED_RGBA_S3TC_DXT5_EXT}else return null;if(i===sb||i===ob||i===ab||i===lb)if(o=e.get("WEBGL_compressed_texture_pvrtc"),o!==null){if(i===sb)return o.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(i===ob)return o.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(i===ab)return o.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(i===lb)return o.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}else return null;if(i===yI)return o=e.get("WEBGL_compressed_texture_etc1"),o!==null?o.COMPRESSED_RGB_ETC1_WEBGL:null;if(i===cb||i===ub)if(o=e.get("WEBGL_compressed_texture_etc"),o!==null){if(i===cb)return s===qe?o.COMPRESSED_SRGB8_ETC2:o.COMPRESSED_RGB8_ETC2;if(i===ub)return s===qe?o.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:o.COMPRESSED_RGBA8_ETC2_EAC}else return null;if(i===hb||i===db||i===fb||i===pb||i===mb||i===gb||i===yb||i===vb||i===xb||i===bb||i===wb||i===Sb||i===Tb||i===Mb)if(o=e.get("WEBGL_compressed_texture_astc"),o!==null){if(i===hb)return s===qe?o.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR:o.COMPRESSED_RGBA_ASTC_4x4_KHR;if(i===db)return s===qe?o.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR:o.COMPRESSED_RGBA_ASTC_5x4_KHR;if(i===fb)return s===qe?o.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR:o.COMPRESSED_RGBA_ASTC_5x5_KHR;if(i===pb)return s===qe?o.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR:o.COMPRESSED_RGBA_ASTC_6x5_KHR;if(i===mb)return s===qe?o.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR:o.COMPRESSED_RGBA_ASTC_6x6_KHR;if(i===gb)return s===qe?o.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR:o.COMPRESSED_RGBA_ASTC_8x5_KHR;if(i===yb)return s===qe?o.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR:o.COMPRESSED_RGBA_ASTC_8x6_KHR;if(i===vb)return s===qe?o.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR:o.COMPRESSED_RGBA_ASTC_8x8_KHR;if(i===xb)return s===qe?o.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR:o.COMPRESSED_RGBA_ASTC_10x5_KHR;if(i===bb)return s===qe?o.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR:o.COMPRESSED_RGBA_ASTC_10x6_KHR;if(i===wb)return s===qe?o.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR:o.COMPRESSED_RGBA_ASTC_10x8_KHR;if(i===Sb)return s===qe?o.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR:o.COMPRESSED_RGBA_ASTC_10x10_KHR;if(i===Tb)return s===qe?o.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR:o.COMPRESSED_RGBA_ASTC_12x10_KHR;if(i===Mb)return s===qe?o.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR:o.COMPRESSED_RGBA_ASTC_12x12_KHR}else return null;if(i===Eb)if(o=e.get("EXT_texture_compression_bptc"),o!==null){if(i===Eb)return s===qe?o.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT:o.COMPRESSED_RGBA_BPTC_UNORM_EXT}else return null;return i===Ji?A?34042:(o=e.get("WEBGL_depth_texture"),o!==null?o.UNSIGNED_INT_24_8_WEBGL:null):n[i]!==void 0?n[i]:null}return{convert:r}}var sy=class extends iA{constructor(e=[]){super(),this.isArrayCamera=!0,this.cameras=e}},Ki=class extends ht{constructor(){super(),this.isGroup=!0,this.type="Group"}},g3={type:"move"},Zc=class{constructor(){this._targetRay=null,this._grip=null,this._hand=null}getHandSpace(){return this._hand===null&&(this._hand=new Ki,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 Ki,this._targetRay.matrixAutoUpdate=!1,this._targetRay.visible=!1,this._targetRay.hasLinearVelocity=!1,this._targetRay.linearVelocity=new S,this._targetRay.hasAngularVelocity=!1,this._targetRay.angularVelocity=new S),this._targetRay}getGripSpace(){return this._grip===null&&(this._grip=new Ki,this._grip.matrixAutoUpdate=!1,this._grip.visible=!1,this._grip.hasLinearVelocity=!1,this._grip.linearVelocity=new S,this._grip.hasAngularVelocity=!1,this._grip.angularVelocity=new S),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}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,A){let r=null,i=null,s=null,o=this._targetRay,a=this._grip,c=this._hand;if(e&&t.session.visibilityState!=="visible-blurred"){if(c&&e.hand){s=!0;for(let f of e.hand.values()){let m=t.getJointPose(f,A);if(c.joints[f.jointName]===void 0){let g=new Ki;g.matrixAutoUpdate=!1,g.visible=!1,c.joints[f.jointName]=g,c.add(g)}let y=c.joints[f.jointName];m!==null&&(y.matrix.fromArray(m.transform.matrix),y.matrix.decompose(y.position,y.rotation,y.scale),y.jointRadius=m.radius),y.visible=m!==null}let l=c.joints["index-finger-tip"],u=c.joints["thumb-tip"],h=l.position.distanceTo(u.position),d=.02,p=.005;c.inputState.pinching&&h>d+p?(c.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:e.handedness,target:this})):!c.inputState.pinching&&h<=d-p&&(c.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:e.handedness,target:this}))}else a!==null&&e.gripSpace&&(i=t.getPose(e.gripSpace,A),i!==null&&(a.matrix.fromArray(i.transform.matrix),a.matrix.decompose(a.position,a.rotation,a.scale),i.linearVelocity?(a.hasLinearVelocity=!0,a.linearVelocity.copy(i.linearVelocity)):a.hasLinearVelocity=!1,i.angularVelocity?(a.hasAngularVelocity=!0,a.angularVelocity.copy(i.angularVelocity)):a.hasAngularVelocity=!1));o!==null&&(r=t.getPose(e.targetRaySpace,A),r===null&&i!==null&&(r=i),r!==null&&(o.matrix.fromArray(r.transform.matrix),o.matrix.decompose(o.position,o.rotation,o.scale),r.linearVelocity?(o.hasLinearVelocity=!0,o.linearVelocity.copy(r.linearVelocity)):o.hasLinearVelocity=!1,r.angularVelocity?(o.hasAngularVelocity=!0,o.angularVelocity.copy(r.angularVelocity)):o.hasAngularVelocity=!1,this.dispatchEvent(g3)))}return o!==null&&(o.visible=r!==null),a!==null&&(a.visible=i!==null),c!==null&&(c.visible=s!==null),this}},ns=class extends jt{constructor(e,t,A,r,i,s,o,a,c,l){if(l=l!==void 0?l:Ao,l!==Ao&&l!==ts)throw new Error("DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat");A===void 0&&l===Ao&&(A=wi),A===void 0&&l===ts&&(A=Ji),super(null,r,i,s,o,a,l,A,c),this.isDepthTexture=!0,this.image={width:e,height:t},this.magFilter=o!==void 0?o:Gt,this.minFilter=a!==void 0?a:Gt,this.flipY=!1,this.generateMipmaps=!1}},oy=class extends Ot{constructor(e,t){super();let A=this,r=null,i=1,s=null,o="local-floor",a=null,c=null,l=null,u=null,h=null,d=null,p=t.getContextAttributes(),f=null,m=null,y=[],g=[],b=new iA;b.layers.enable(1),b.viewport=new Ve;let x=new iA;x.layers.enable(2),x.viewport=new Ve;let w=[b,x],T=new sy;T.layers.enable(1),T.layers.enable(2);let M=null,v=null;this.cameraAutoUpdate=!0,this.enabled=!1,this.isPresenting=!1,this.getController=function(F){let k=y[F];return k===void 0&&(k=new Zc,y[F]=k),k.getTargetRaySpace()},this.getControllerGrip=function(F){let k=y[F];return k===void 0&&(k=new Zc,y[F]=k),k.getGripSpace()},this.getHand=function(F){let k=y[F];return k===void 0&&(k=new Zc,y[F]=k),k.getHandSpace()};function E(F){let k=g.indexOf(F.inputSource);if(k===-1)return;let Q=y[k];Q!==void 0&&Q.dispatchEvent({type:F.type,data:F.inputSource})}function C(){r.removeEventListener("select",E),r.removeEventListener("selectstart",E),r.removeEventListener("selectend",E),r.removeEventListener("squeeze",E),r.removeEventListener("squeezestart",E),r.removeEventListener("squeezeend",E),r.removeEventListener("end",C),r.removeEventListener("inputsourceschange",P);for(let F=0;F<y.length;F++){let k=g[F];k!==null&&(g[F]=null,y[F].disconnect(k))}M=null,v=null,e.setRenderTarget(f),h=null,u=null,l=null,r=null,m=null,X.stop(),A.isPresenting=!1,A.dispatchEvent({type:"sessionend"})}this.setFramebufferScaleFactor=function(F){i=F,A.isPresenting===!0&&console.warn("THREE.WebXRManager: Cannot change framebuffer scale while presenting.")},this.setReferenceSpaceType=function(F){o=F,A.isPresenting===!0&&console.warn("THREE.WebXRManager: Cannot change reference space type while presenting.")},this.getReferenceSpace=function(){return a||s},this.setReferenceSpace=function(F){a=F},this.getBaseLayer=function(){return u!==null?u:h},this.getBinding=function(){return l},this.getFrame=function(){return d},this.getSession=function(){return r},this.setSession=async function(F){if(r=F,r!==null){if(f=e.getRenderTarget(),r.addEventListener("select",E),r.addEventListener("selectstart",E),r.addEventListener("selectend",E),r.addEventListener("squeeze",E),r.addEventListener("squeezestart",E),r.addEventListener("squeezeend",E),r.addEventListener("end",C),r.addEventListener("inputsourceschange",P),p.xrCompatible!==!0&&await t.makeXRCompatible(),r.renderState.layers===void 0||e.capabilities.isWebGL2===!1){let k={antialias:r.renderState.layers===void 0?p.antialias:!0,alpha:p.alpha,depth:p.depth,stencil:p.stencil,framebufferScaleFactor:i};h=new XRWebGLLayer(r,t,k),r.updateRenderState({baseLayer:h}),m=new ft(h.framebufferWidth,h.framebufferHeight,{format:hr,type:kt,encoding:e.outputEncoding})}else{let k=null,Q=null,z=null;p.depth&&(z=p.stencil?35056:33190,k=p.stencil?ts:Ao,Q=p.stencil?Ji:wi);let U={colorFormat:32856,depthFormat:z,scaleFactor:i};l=new XRWebGLBinding(r,t),u=l.createProjectionLayer(U),r.updateRenderState({layers:[u]}),m=new ft(u.textureWidth,u.textureHeight,{format:hr,type:kt,depthTexture:new ns(u.textureWidth,u.textureHeight,Q,void 0,void 0,void 0,void 0,void 0,void 0,k),stencilBuffer:p.stencil,encoding:e.outputEncoding,samples:p.antialias?4:0});let j=e.properties.get(m);j.__ignoreDepthValues=u.ignoreDepthValues}m.isXRRenderTarget=!0,this.setFoveation(1),a=null,s=await r.requestReferenceSpace(o),X.setContext(r),X.start(),A.isPresenting=!0,A.dispatchEvent({type:"sessionstart"})}};function P(F){for(let k=0;k<F.removed.length;k++){let Q=F.removed[k],z=g.indexOf(Q);z>=0&&(g[z]=null,y[z].dispatchEvent({type:"disconnected",data:Q}))}for(let k=0;k<F.added.length;k++){let Q=F.added[k],z=g.indexOf(Q);if(z===-1){for(let j=0;j<y.length;j++)if(j>=g.length){g.push(Q),z=j;break}else if(g[j]===null){g[j]=Q,z=j;break}if(z===-1)break}let U=y[z];U&&U.dispatchEvent({type:"connected",data:Q})}}let D=new S,_=new S;function I(F,k,Q){D.setFromMatrixPosition(k.matrixWorld),_.setFromMatrixPosition(Q.matrixWorld);let z=D.distanceTo(_),U=k.projectionMatrix.elements,j=Q.projectionMatrix.elements,q=U[14]/(U[10]-1),V=U[14]/(U[10]+1),ue=(U[9]+1)/U[5],Ae=(U[9]-1)/U[5],K=(U[8]-1)/U[0],Y=(j[8]+1)/j[0],ne=q*K,le=q*Y,se=z/(-K+Y),Me=se*-K;k.matrixWorld.decompose(F.position,F.quaternion,F.scale),F.translateX(Me),F.translateZ(se),F.matrixWorld.compose(F.position,F.quaternion,F.scale),F.matrixWorldInverse.copy(F.matrixWorld).invert();let me=q+se,ge=V+se,ye=ne-Me,de=le+(z-Me),De=ue*V/ge*me,Be=Ae*V/ge*me;F.projectionMatrix.makePerspective(ye,de,De,Be,me,ge)}function B(F,k){k===null?F.matrixWorld.copy(F.matrix):F.matrixWorld.multiplyMatrices(k.matrixWorld,F.matrix),F.matrixWorldInverse.copy(F.matrixWorld).invert()}this.updateCamera=function(F){if(r===null)return;T.near=x.near=b.near=F.near,T.far=x.far=b.far=F.far,(M!==T.near||v!==T.far)&&(r.updateRenderState({depthNear:T.near,depthFar:T.far}),M=T.near,v=T.far);let k=F.parent,Q=T.cameras;B(T,k);for(let U=0;U<Q.length;U++)B(Q[U],k);T.matrixWorld.decompose(T.position,T.quaternion,T.scale),F.position.copy(T.position),F.quaternion.copy(T.quaternion),F.scale.copy(T.scale),F.matrix.copy(T.matrix),F.matrixWorld.copy(T.matrixWorld);let z=F.children;for(let U=0,j=z.length;U<j;U++)z[U].updateMatrixWorld(!0);Q.length===2?I(T,b,x):T.projectionMatrix.copy(b.projectionMatrix)},this.getCamera=function(){return T},this.getFoveation=function(){if(u!==null)return u.fixedFoveation;if(h!==null)return h.fixedFoveation},this.setFoveation=function(F){u!==null&&(u.fixedFoveation=F),h!==null&&h.fixedFoveation!==void 0&&(h.fixedFoveation=F)};let N=null;function W(F,k){if(c=k.getViewerPose(a||s),d=k,c!==null){let Q=c.views;h!==null&&(e.setRenderTargetFramebuffer(m,h.framebuffer),e.setRenderTarget(m));let z=!1;Q.length!==T.cameras.length&&(T.cameras.length=0,z=!0);for(let U=0;U<Q.length;U++){let j=Q[U],q=null;if(h!==null)q=h.getViewport(j);else{let ue=l.getViewSubImage(u,j);q=ue.viewport,U===0&&(e.setRenderTargetTextures(m,ue.colorTexture,u.ignoreDepthValues?void 0:ue.depthStencilTexture),e.setRenderTarget(m))}let V=w[U];V===void 0&&(V=new iA,V.layers.enable(U),V.viewport=new Ve,w[U]=V),V.matrix.fromArray(j.transform.matrix),V.projectionMatrix.fromArray(j.projectionMatrix),V.viewport.set(q.x,q.y,q.width,q.height),U===0&&T.matrix.copy(V.matrix),z===!0&&T.cameras.push(V)}}for(let Q=0;Q<y.length;Q++){let z=g[Q],U=y[Q];z!==null&&U!==void 0&&U.update(z,k,a||s)}N&&N(F,k),d=null}let X=new Gw;X.setAnimationLoop(W),this.setAnimationLoop=function(F){N=F},this.dispose=function(){}}};function y3(n,e){function t(f,m){f.fogColor.value.copy(m.color),m.isFog?(f.fogNear.value=m.near,f.fogFar.value=m.far):m.isFogExp2&&(f.fogDensity.value=m.density)}function A(f,m,y,g,b){m.isMeshBasicMaterial||m.isMeshLambertMaterial?r(f,m):m.isMeshToonMaterial?(r(f,m),l(f,m)):m.isMeshPhongMaterial?(r(f,m),c(f,m)):m.isMeshStandardMaterial?(r(f,m),u(f,m),m.isMeshPhysicalMaterial&&h(f,m,b)):m.isMeshMatcapMaterial?(r(f,m),d(f,m)):m.isMeshDepthMaterial?r(f,m):m.isMeshDistanceMaterial?(r(f,m),p(f,m)):m.isMeshNormalMaterial?r(f,m):m.isLineBasicMaterial?(i(f,m),m.isLineDashedMaterial&&s(f,m)):m.isPointsMaterial?o(f,m,y,g):m.isSpriteMaterial?a(f,m):m.isShadowMaterial?(f.color.value.copy(m.color),f.opacity.value=m.opacity):m.isShaderMaterial&&(m.uniformsNeedUpdate=!1)}function r(f,m){f.opacity.value=m.opacity,m.color&&f.diffuse.value.copy(m.color),m.emissive&&f.emissive.value.copy(m.emissive).multiplyScalar(m.emissiveIntensity),m.map&&(f.map.value=m.map),m.alphaMap&&(f.alphaMap.value=m.alphaMap),m.bumpMap&&(f.bumpMap.value=m.bumpMap,f.bumpScale.value=m.bumpScale,m.side===hA&&(f.bumpScale.value*=-1)),m.displacementMap&&(f.displacementMap.value=m.displacementMap,f.displacementScale.value=m.displacementScale,f.displacementBias.value=m.displacementBias),m.emissiveMap&&(f.emissiveMap.value=m.emissiveMap),m.normalMap&&(f.normalMap.value=m.normalMap,f.normalScale.value.copy(m.normalScale),m.side===hA&&f.normalScale.value.negate()),m.specularMap&&(f.specularMap.value=m.specularMap),m.alphaTest>0&&(f.alphaTest.value=m.alphaTest);let y=e.get(m).envMap;if(y&&(f.envMap.value=y,f.flipEnvMap.value=y.isCubeTexture&&y.isRenderTargetTexture===!1?-1:1,f.reflectivity.value=m.reflectivity,f.ior.value=m.ior,f.refractionRatio.value=m.refractionRatio),m.lightMap){f.lightMap.value=m.lightMap;let x=n.physicallyCorrectLights!==!0?Math.PI:1;f.lightMapIntensity.value=m.lightMapIntensity*x}m.aoMap&&(f.aoMap.value=m.aoMap,f.aoMapIntensity.value=m.aoMapIntensity);let g;m.map?g=m.map:m.specularMap?g=m.specularMap:m.displacementMap?g=m.displacementMap:m.normalMap?g=m.normalMap:m.bumpMap?g=m.bumpMap:m.roughnessMap?g=m.roughnessMap:m.metalnessMap?g=m.metalnessMap:m.alphaMap?g=m.alphaMap:m.emissiveMap?g=m.emissiveMap:m.clearcoatMap?g=m.clearcoatMap:m.clearcoatNormalMap?g=m.clearcoatNormalMap:m.clearcoatRoughnessMap?g=m.clearcoatRoughnessMap:m.iridescenceMap?g=m.iridescenceMap:m.iridescenceThicknessMap?g=m.iridescenceThicknessMap:m.specularIntensityMap?g=m.specularIntensityMap:m.specularColorMap?g=m.specularColorMap:m.transmissionMap?g=m.transmissionMap:m.thicknessMap?g=m.thicknessMap:m.sheenColorMap?g=m.sheenColorMap:m.sheenRoughnessMap&&(g=m.sheenRoughnessMap),g!==void 0&&(g.isWebGLRenderTarget&&(g=g.texture),g.matrixAutoUpdate===!0&&g.updateMatrix(),f.uvTransform.value.copy(g.matrix));let b;m.aoMap?b=m.aoMap:m.lightMap&&(b=m.lightMap),b!==void 0&&(b.isWebGLRenderTarget&&(b=b.texture),b.matrixAutoUpdate===!0&&b.updateMatrix(),f.uv2Transform.value.copy(b.matrix))}function i(f,m){f.diffuse.value.copy(m.color),f.opacity.value=m.opacity}function s(f,m){f.dashSize.value=m.dashSize,f.totalSize.value=m.dashSize+m.gapSize,f.scale.value=m.scale}function o(f,m,y,g){f.diffuse.value.copy(m.color),f.opacity.value=m.opacity,f.size.value=m.size*y,f.scale.value=g*.5,m.map&&(f.map.value=m.map),m.alphaMap&&(f.alphaMap.value=m.alphaMap),m.alphaTest>0&&(f.alphaTest.value=m.alphaTest);let b;m.map?b=m.map:m.alphaMap&&(b=m.alphaMap),b!==void 0&&(b.matrixAutoUpdate===!0&&b.updateMatrix(),f.uvTransform.value.copy(b.matrix))}function a(f,m){f.diffuse.value.copy(m.color),f.opacity.value=m.opacity,f.rotation.value=m.rotation,m.map&&(f.map.value=m.map),m.alphaMap&&(f.alphaMap.value=m.alphaMap),m.alphaTest>0&&(f.alphaTest.value=m.alphaTest);let y;m.map?y=m.map:m.alphaMap&&(y=m.alphaMap),y!==void 0&&(y.matrixAutoUpdate===!0&&y.updateMatrix(),f.uvTransform.value.copy(y.matrix))}function c(f,m){f.specular.value.copy(m.specular),f.shininess.value=Math.max(m.shininess,1e-4)}function l(f,m){m.gradientMap&&(f.gradientMap.value=m.gradientMap)}function u(f,m){f.roughness.value=m.roughness,f.metalness.value=m.metalness,m.roughnessMap&&(f.roughnessMap.value=m.roughnessMap),m.metalnessMap&&(f.metalnessMap.value=m.metalnessMap),e.get(m).envMap&&(f.envMapIntensity.value=m.envMapIntensity)}function h(f,m,y){f.ior.value=m.ior,m.sheen>0&&(f.sheenColor.value.copy(m.sheenColor).multiplyScalar(m.sheen),f.sheenRoughness.value=m.sheenRoughness,m.sheenColorMap&&(f.sheenColorMap.value=m.sheenColorMap),m.sheenRoughnessMap&&(f.sheenRoughnessMap.value=m.sheenRoughnessMap)),m.clearcoat>0&&(f.clearcoat.value=m.clearcoat,f.clearcoatRoughness.value=m.clearcoatRoughness,m.clearcoatMap&&(f.clearcoatMap.value=m.clearcoatMap),m.clearcoatRoughnessMap&&(f.clearcoatRoughnessMap.value=m.clearcoatRoughnessMap),m.clearcoatNormalMap&&(f.clearcoatNormalScale.value.copy(m.clearcoatNormalScale),f.clearcoatNormalMap.value=m.clearcoatNormalMap,m.side===hA&&f.clearcoatNormalScale.value.negate())),m.iridescence>0&&(f.iridescence.value=m.iridescence,f.iridescenceIOR.value=m.iridescenceIOR,f.iridescenceThicknessMinimum.value=m.iridescenceThicknessRange[0],f.iridescenceThicknessMaximum.value=m.iridescenceThicknessRange[1],m.iridescenceMap&&(f.iridescenceMap.value=m.iridescenceMap),m.iridescenceThicknessMap&&(f.iridescenceThicknessMap.value=m.iridescenceThicknessMap)),m.transmission>0&&(f.transmission.value=m.transmission,f.transmissionSamplerMap.value=y.texture,f.transmissionSamplerSize.value.set(y.width,y.height),m.transmissionMap&&(f.transmissionMap.value=m.transmissionMap),f.thickness.value=m.thickness,m.thicknessMap&&(f.thicknessMap.value=m.thicknessMap),f.attenuationDistance.value=m.attenuationDistance,f.attenuationColor.value.copy(m.attenuationColor)),f.specularIntensity.value=m.specularIntensity,f.specularColor.value.copy(m.specularColor),m.specularIntensityMap&&(f.specularIntensityMap.value=m.specularIntensityMap),m.specularColorMap&&(f.specularColorMap.value=m.specularColorMap)}function d(f,m){m.matcap&&(f.matcap.value=m.matcap)}function p(f,m){f.referencePosition.value.copy(m.referencePosition),f.nearDistance.value=m.nearDistance,f.farDistance.value=m.farDistance}return{refreshFogUniforms:t,refreshMaterialUniforms:A}}function v3(){let n=Rd("canvas");return n.style.display="block",n}function Oy(n={}){this.isWebGLRenderer=!0;let e=n.canvas!==void 0?n.canvas:v3(),t=n.context!==void 0?n.context:null,A=n.depth!==void 0?n.depth:!0,r=n.stencil!==void 0?n.stencil:!0,i=n.antialias!==void 0?n.antialias:!1,s=n.premultipliedAlpha!==void 0?n.premultipliedAlpha:!0,o=n.preserveDrawingBuffer!==void 0?n.preserveDrawingBuffer:!1,a=n.powerPreference!==void 0?n.powerPreference:"default",c=n.failIfMajorPerformanceCaveat!==void 0?n.failIfMajorPerformanceCaveat:!1,l;t!==null?l=t.getContextAttributes().alpha:l=n.alpha!==void 0?n.alpha:!1;let u=null,h=null,d=[],p=[];this.domElement=e,this.debug={checkShaderErrors:!0},this.autoClear=!0,this.autoClearColor=!0,this.autoClearDepth=!0,this.autoClearStencil=!0,this.sortObjects=!0,this.clippingPlanes=[],this.localClippingEnabled=!1,this.outputEncoding=Ln,this.physicallyCorrectLights=!1,this.toneMapping=Si,this.toneMappingExposure=1,Object.defineProperties(this,{gammaFactor:{get:function(){return console.warn("THREE.WebGLRenderer: .gammaFactor has been removed."),2},set:function(){console.warn("THREE.WebGLRenderer: .gammaFactor has been removed.")}}});let f=this,m=!1,y=0,g=0,b=null,x=-1,w=null,T=new Ve,M=new Ve,v=null,E=e.width,C=e.height,P=1,D=null,_=null,I=new Ve(0,0,E,C),B=new Ve(0,0,E,C),N=!1,W=new nu,X=!1,F=!1,k=null,Q=new he,z=new G,U=new S,j={background:null,fog:null,environment:null,overrideMaterial:null,isScene:!0};function q(){return b===null?P:1}let V=t;function ue(O,$){for(let ie=0;ie<O.length;ie++){let te=O[ie],ce=e.getContext(te,$);if(ce!==null)return ce}return null}try{let O={alpha:!0,depth:A,stencil:r,antialias:i,premultipliedAlpha:s,preserveDrawingBuffer:o,powerPreference:a,failIfMajorPerformanceCaveat:c};if("setAttribute"in e&&e.setAttribute("data-engine",`three.js r${mo}`),e.addEventListener("webglcontextlost",H,!1),e.addEventListener("webglcontextrestored",xe,!1),e.addEventListener("webglcontextcreationerror",Te,!1),V===null){let $=["webgl2","webgl","experimental-webgl"];if(f.isWebGL1Renderer===!0&&$.shift(),V=ue($,O),V===null)throw ue($)?new Error("Error creating WebGL context with your selected attributes."):new Error("Error creating WebGL context.")}V.getShaderPrecisionFormat===void 0&&(V.getShaderPrecisionFormat=function(){return{rangeMin:1,rangeMax:1,precision:1}})}catch(O){throw console.error("THREE.WebGLRenderer: "+O.message),O}let Ae,K,Y,ne,le,se,Me,me,ge,ye,de,De,Be,Ze,R,L,J,ae,fe,Ce,Fe,re,Ne;function Oe(){Ae=new UO(V),K=new RO(V,Ae,n),Ae.init(K),re=new m3(V,Ae,K),Y=new f3(V,Ae,K),ne=new HO,le=new A3,se=new p3(V,Ae,Y,le,K,re,ne),Me=new NO(f),me=new kO(f),ge=new tL(V,K),Ne=new _O(V,Ae,ge,K),ye=new VO(V,ge,ne,Ne),de=new qO(V,ye,ge,ne),fe=new YO(V,K,se),L=new BO(le),De=new t3(f,Me,me,Ae,K,Ne,L),Be=new y3(f,le),Ze=new r3,R=new c3(Ae,K),ae=new LO(f,Me,Y,de,l,s),J=new d3(f,de,K),Ce=new OO(V,Ae,ne,K),Fe=new zO(V,Ae,ne,K),ne.programs=De.programs,f.capabilities=K,f.extensions=Ae,f.properties=le,f.renderLists=Ze,f.shadowMap=J,f.state=Y,f.info=ne}Oe();let ve=new oy(f,V);this.xr=ve,this.getContext=function(){return V},this.getContextAttributes=function(){return V.getContextAttributes()},this.forceContextLoss=function(){let O=Ae.get("WEBGL_lose_context");O&&O.loseContext()},this.forceContextRestore=function(){let O=Ae.get("WEBGL_lose_context");O&&O.restoreContext()},this.getPixelRatio=function(){return P},this.setPixelRatio=function(O){O!==void 0&&(P=O,this.setSize(E,C,!1))},this.getSize=function(O){return O.set(E,C)},this.setSize=function(O,$,ie){if(ve.isPresenting){console.warn("THREE.WebGLRenderer: Can't change size while VR device is presenting.");return}E=O,C=$,e.width=Math.floor(O*P),e.height=Math.floor($*P),ie!==!1&&(e.style.width=O+"px",e.style.height=$+"px"),this.setViewport(0,0,O,$)},this.getDrawingBufferSize=function(O){return O.set(E*P,C*P).floor()},this.setDrawingBufferSize=function(O,$,ie){E=O,C=$,P=ie,e.width=Math.floor(O*ie),e.height=Math.floor($*ie),this.setViewport(0,0,O,$)},this.getCurrentViewport=function(O){return O.copy(T)},this.getViewport=function(O){return O.copy(I)},this.setViewport=function(O,$,ie,te){O.isVector4?I.set(O.x,O.y,O.z,O.w):I.set(O,$,ie,te),Y.viewport(T.copy(I).multiplyScalar(P).floor())},this.getScissor=function(O){return O.copy(B)},this.setScissor=function(O,$,ie,te){O.isVector4?B.set(O.x,O.y,O.z,O.w):B.set(O,$,ie,te),Y.scissor(M.copy(B).multiplyScalar(P).floor())},this.getScissorTest=function(){return N},this.setScissorTest=function(O){Y.setScissorTest(N=O)},this.setOpaqueSort=function(O){D=O},this.setTransparentSort=function(O){_=O},this.getClearColor=function(O){return O.copy(ae.getClearColor())},this.setClearColor=function(){ae.setClearColor.apply(ae,arguments)},this.getClearAlpha=function(){return ae.getClearAlpha()},this.setClearAlpha=function(){ae.setClearAlpha.apply(ae,arguments)},this.clear=function(O=!0,$=!0,ie=!0){let te=0;O&&(te|=16384),$&&(te|=256),ie&&(te|=1024),V.clear(te)},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.dispose=function(){e.removeEventListener("webglcontextlost",H,!1),e.removeEventListener("webglcontextrestored",xe,!1),e.removeEventListener("webglcontextcreationerror",Te,!1),Ze.dispose(),R.dispose(),le.dispose(),Me.dispose(),me.dispose(),de.dispose(),Ne.dispose(),De.dispose(),ve.dispose(),ve.removeEventListener("sessionstart",st),ve.removeEventListener("sessionend",vt),k&&(k.dispose(),k=null),Tt.stop()};function H(O){O.preventDefault(),console.log("THREE.WebGLRenderer: Context Lost."),m=!0}function xe(){console.log("THREE.WebGLRenderer: Context Restored."),m=!1;let O=ne.autoReset,$=J.enabled,ie=J.autoUpdate,te=J.needsUpdate,ce=J.type;Oe(),ne.autoReset=O,J.enabled=$,J.autoUpdate=ie,J.needsUpdate=te,J.type=ce}function Te(O){console.error("THREE.WebGLRenderer: A WebGL context could not be created. Reason: ",O.statusMessage)}function Qe(O){let $=O.target;$.removeEventListener("dispose",Qe),Re($)}function Re(O){Je(O),le.remove(O)}function Je(O){let $=le.get(O).programs;$!==void 0&&($.forEach(function(ie){De.releaseProgram(ie)}),O.isShaderMaterial&&De.releaseShaderCache(O))}this.renderBufferDirect=function(O,$,ie,te,ce,At){$===null&&($=j);let rt=ce.isMesh&&ce.matrixWorld.determinant()<0,at=yD(O,$,ie,te,ce);Y.setMaterial(te,rt);let ot=ie.index,Lt=ie.attributes.position;if(ot===null){if(Lt===void 0||Lt.count===0)return}else if(ot.count===0)return;let mt=1;te.wireframe===!0&&(ot=ye.getWireframeAttribute(ie),mt=2),Ne.setup(ce,te,at,ie,ot);let xt,Xt=Ce;ot!==null&&(xt=ge.get(ot),Xt=Fe,Xt.setIndex(xt));let Qs=ot!==null?ot.count:Lt.count,qo=ie.drawRange.start*mt,Xo=ie.drawRange.count*mt,Ir=At!==null?At.start*mt:0,Mt=At!==null?At.count*mt:1/0,Qo=Math.max(qo,Ir),cA=Math.min(Qs,qo+Xo,Ir+Mt)-1,Lr=Math.max(0,cA-Qo+1);if(Lr!==0){if(ce.isMesh)te.wireframe===!0?(Y.setLineWidth(te.wireframeLinewidth*q()),Xt.setMode(1)):Xt.setMode(4);else if(ce.isLine){let Hi=te.linewidth;Hi===void 0&&(Hi=1),Y.setLineWidth(Hi*q()),ce.isLineSegments?Xt.setMode(1):ce.isLineLoop?Xt.setMode(2):Xt.setMode(3)}else ce.isPoints?Xt.setMode(0):ce.isSprite&&Xt.setMode(4);if(ce.isInstancedMesh)Xt.renderInstances(Qo,Lr,ce.count);else if(ie.isInstancedBufferGeometry){let Hi=Math.min(ie.instanceCount,ie._maxInstanceCount);Xt.renderInstances(Qo,Lr,Hi)}else Xt.render(Qo,Lr)}},this.compile=function(O,$){h=R.get(O),h.init(),p.push(h),O.traverseVisible(function(ie){ie.isLight&&ie.layers.test($.layers)&&(h.pushLight(ie),ie.castShadow&&h.pushShadow(ie))}),h.setupLights(f.physicallyCorrectLights),O.traverse(function(ie){let te=ie.material;if(te)if(Array.isArray(te))for(let ce=0;ce<te.length;ce++){let At=te[ce];tg(At,O,ie)}else tg(te,O,ie)}),p.pop(),h=null};let be=null;function $e(O){be&&be(O)}function st(){Tt.stop()}function vt(){Tt.start()}let Tt=new Gw;Tt.setAnimationLoop($e),typeof self<"u"&&Tt.setContext(self),this.setAnimationLoop=function(O){be=O,ve.setAnimationLoop(O),O===null?Tt.stop():Tt.start()},ve.addEventListener("sessionstart",st),ve.addEventListener("sessionend",vt),this.render=function(O,$){if($!==void 0&&$.isCamera!==!0){console.error("THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.");return}if(m===!0)return;O.autoUpdate===!0&&O.updateMatrixWorld(),$.parent===null&&$.updateMatrixWorld(),ve.enabled===!0&&ve.isPresenting===!0&&(ve.cameraAutoUpdate===!0&&ve.updateCamera($),$=ve.getCamera()),O.isScene===!0&&O.onBeforeRender(f,O,$,b),h=R.get(O,p.length),h.init(),p.push(h),Q.multiplyMatrices($.projectionMatrix,$.matrixWorldInverse),W.setFromProjectionMatrix(Q),F=this.localClippingEnabled,X=L.init(this.clippingPlanes,F,$),u=Ze.get(O,d.length),u.init(),d.push(u),dn(O,$,0,f.sortObjects),u.finish(),f.sortObjects===!0&&u.sort(D,_),X===!0&&L.beginShadows();let ie=h.state.shadowsArray;if(J.render(ie,O,$),X===!0&&L.endShadows(),this.info.autoReset===!0&&this.info.reset(),ae.render(u,O),h.setupLights(f.physicallyCorrectLights),$.isArrayCamera){let te=$.cameras;for(let ce=0,At=te.length;ce<At;ce++){let rt=te[ce];ed(u,O,rt,rt.viewport)}}else ed(u,O,$);b!==null&&(se.updateMultisampleRenderTarget(b),se.updateRenderTargetMipmap(b)),O.isScene===!0&&O.onAfterRender(f,O,$),Ne.resetDefaultState(),x=-1,w=null,p.pop(),p.length>0?h=p[p.length-1]:h=null,d.pop(),d.length>0?u=d[d.length-1]:u=null};function dn(O,$,ie,te){if(O.visible===!1)return;if(O.layers.test($.layers)){if(O.isGroup)ie=O.renderOrder;else if(O.isLOD)O.autoUpdate===!0&&O.update($);else if(O.isLight)h.pushLight(O),O.castShadow&&h.pushShadow(O);else if(O.isSprite){if(!O.frustumCulled||W.intersectsSprite(O)){te&&U.setFromMatrixPosition(O.matrixWorld).applyMatrix4(Q);let rt=de.update(O),at=O.material;at.visible&&u.push(O,rt,at,ie,U.z,null)}}else if((O.isMesh||O.isLine||O.isPoints)&&(O.isSkinnedMesh&&O.skeleton.frame!==ne.render.frame&&(O.skeleton.update(),O.skeleton.frame=ne.render.frame),!O.frustumCulled||W.intersectsObject(O))){te&&U.setFromMatrixPosition(O.matrixWorld).applyMatrix4(Q);let rt=de.update(O),at=O.material;if(Array.isArray(at)){let ot=rt.groups;for(let Lt=0,mt=ot.length;Lt<mt;Lt++){let xt=ot[Lt],Xt=at[xt.materialIndex];Xt&&Xt.visible&&u.push(O,rt,Xt,ie,U.z,xt)}}else at.visible&&u.push(O,rt,at,ie,U.z,null)}}let At=O.children;for(let rt=0,at=At.length;rt<at;rt++)dn(At[rt],$,ie,te)}function ed(O,$,ie,te){let ce=O.opaque,At=O.transmissive,rt=O.transparent;h.setupLightsView(ie),At.length>0&&Yo(ce,$,ie),te&&Y.viewport(T.copy(te)),ce.length>0&&td(ce,$,ie),At.length>0&&td(At,$,ie),rt.length>0&&td(rt,$,ie),Y.buffers.depth.setTest(!0),Y.buffers.depth.setMask(!0),Y.buffers.color.setMask(!0),Y.setPolygonOffset(!1)}function Yo(O,$,ie){let te=K.isWebGL2;k===null&&(k=new ft(1,1,{generateMipmaps:!0,type:Ae.has("EXT_color_buffer_half_float")?$c:kt,minFilter:Ba,samples:te&&i===!0?4:0})),f.getDrawingBufferSize(z),te?k.setSize(z.x,z.y):k.setSize(Od(z.x),Od(z.y));let ce=f.getRenderTarget();f.setRenderTarget(k),f.clear();let At=f.toneMapping;f.toneMapping=Si,td(O,$,ie),f.toneMapping=At,se.updateMultisampleRenderTarget(k),se.updateRenderTargetMipmap(k),f.setRenderTarget(ce)}function td(O,$,ie){let te=$.isScene===!0?$.overrideMaterial:null;for(let ce=0,At=O.length;ce<At;ce++){let rt=O[ce],at=rt.object,ot=rt.geometry,Lt=te===null?rt.material:te,mt=rt.group;at.layers.test(ie.layers)&&gD(at,$,ie,ot,Lt,mt)}}function gD(O,$,ie,te,ce,At){O.onBeforeRender(f,$,ie,te,ce,At),O.modelViewMatrix.multiplyMatrices(ie.matrixWorldInverse,O.matrixWorld),O.normalMatrix.getNormalMatrix(O.modelViewMatrix),ce.onBeforeRender(f,$,ie,te,O,At),ce.transparent===!0&&ce.side===An?(ce.side=hA,ce.needsUpdate=!0,f.renderBufferDirect(ie,$,te,ce,O,At),ce.side=Wn,ce.needsUpdate=!0,f.renderBufferDirect(ie,$,te,ce,O,At),ce.side=An):f.renderBufferDirect(ie,$,te,ce,O,At),O.onAfterRender(f,$,ie,te,ce,At)}function tg(O,$,ie){$.isScene!==!0&&($=j);let te=le.get(O),ce=h.state.lights,At=h.state.shadowsArray,rt=ce.state.version,at=De.getParameters(O,ce.state,At,$,ie),ot=De.getProgramCacheKey(at),Lt=te.programs;te.environment=O.isMeshStandardMaterial?$.environment:null,te.fog=$.fog,te.envMap=(O.isMeshStandardMaterial?me:Me).get(O.envMap||te.environment),Lt===void 0&&(O.addEventListener("dispose",Qe),Lt=new Map,te.programs=Lt);let mt=Lt.get(ot);if(mt!==void 0){if(te.currentProgram===mt&&te.lightsStateVersion===rt)return Kx(O,at),mt}else at.uniforms=De.getUniforms(O),O.onBuild(ie,at,f),O.onBeforeCompile(at,f),mt=De.acquireProgram(at,ot),Lt.set(ot,mt),te.uniforms=at.uniforms;let xt=te.uniforms;(!O.isShaderMaterial&&!O.isRawShaderMaterial||O.clipping===!0)&&(xt.clippingPlanes=L.uniform),Kx(O,at),te.needsLights=xD(O),te.lightsStateVersion=rt,te.needsLights&&(xt.ambientLightColor.value=ce.state.ambient,xt.lightProbe.value=ce.state.probe,xt.directionalLights.value=ce.state.directional,xt.directionalLightShadows.value=ce.state.directionalShadow,xt.spotLights.value=ce.state.spot,xt.spotLightShadows.value=ce.state.spotShadow,xt.rectAreaLights.value=ce.state.rectArea,xt.ltc_1.value=ce.state.rectAreaLTC1,xt.ltc_2.value=ce.state.rectAreaLTC2,xt.pointLights.value=ce.state.point,xt.pointLightShadows.value=ce.state.pointShadow,xt.hemisphereLights.value=ce.state.hemi,xt.directionalShadowMap.value=ce.state.directionalShadowMap,xt.directionalShadowMatrix.value=ce.state.directionalShadowMatrix,xt.spotShadowMap.value=ce.state.spotShadowMap,xt.spotShadowMatrix.value=ce.state.spotShadowMatrix,xt.pointShadowMap.value=ce.state.pointShadowMap,xt.pointShadowMatrix.value=ce.state.pointShadowMatrix);let Xt=mt.getUniforms(),Qs=fa.seqWithValue(Xt.seq,xt);return te.currentProgram=mt,te.uniformsList=Qs,mt}function Kx(O,$){let ie=le.get(O);ie.outputEncoding=$.outputEncoding,ie.instancing=$.instancing,ie.skinning=$.skinning,ie.morphTargets=$.morphTargets,ie.morphNormals=$.morphNormals,ie.morphColors=$.morphColors,ie.morphTargetsCount=$.morphTargetsCount,ie.numClippingPlanes=$.numClippingPlanes,ie.numIntersection=$.numClipIntersection,ie.vertexAlphas=$.vertexAlphas,ie.vertexTangents=$.vertexTangents,ie.toneMapping=$.toneMapping}function yD(O,$,ie,te,ce){$.isScene!==!0&&($=j),se.resetTextureUnits();let At=$.fog,rt=te.isMeshStandardMaterial?$.environment:null,at=b===null?f.outputEncoding:b.isXRRenderTarget===!0?b.texture.encoding:Ln,ot=(te.isMeshStandardMaterial?me:Me).get(te.envMap||rt),Lt=te.vertexColors===!0&&!!ie.attributes.color&&ie.attributes.color.itemSize===4,mt=!!te.normalMap&&!!ie.attributes.tangent,xt=!!ie.morphAttributes.position,Xt=!!ie.morphAttributes.normal,Qs=!!ie.morphAttributes.color,qo=te.toneMapped?f.toneMapping:Si,Xo=ie.morphAttributes.position||ie.morphAttributes.normal||ie.morphAttributes.color,Ir=Xo!==void 0?Xo.length:0,Mt=le.get(te),Qo=h.state.lights;if(X===!0&&(F===!0||O!==w)){let _r=O===w&&te.id===x;L.setState(te,O,_r)}let cA=!1;te.version===Mt.__version?(Mt.needsLights&&Mt.lightsStateVersion!==Qo.state.version||Mt.outputEncoding!==at||ce.isInstancedMesh&&Mt.instancing===!1||!ce.isInstancedMesh&&Mt.instancing===!0||ce.isSkinnedMesh&&Mt.skinning===!1||!ce.isSkinnedMesh&&Mt.skinning===!0||Mt.envMap!==ot||te.fog===!0&&Mt.fog!==At||Mt.numClippingPlanes!==void 0&&(Mt.numClippingPlanes!==L.numPlanes||Mt.numIntersection!==L.numIntersection)||Mt.vertexAlphas!==Lt||Mt.vertexTangents!==mt||Mt.morphTargets!==xt||Mt.morphNormals!==Xt||Mt.morphColors!==Qs||Mt.toneMapping!==qo||K.isWebGL2===!0&&Mt.morphTargetsCount!==Ir)&&(cA=!0):(cA=!0,Mt.__version=te.version);let Lr=Mt.currentProgram;cA===!0&&(Lr=tg(te,$,ce));let Hi=!1,Uc=!1,Ag=!1,$A=Lr.getUniforms(),Vc=Mt.uniforms;if(Y.useProgram(Lr.program)&&(Hi=!0,Uc=!0,Ag=!0),te.id!==x&&(x=te.id,Uc=!0),Hi||w!==O){if($A.setValue(V,"projectionMatrix",O.projectionMatrix),K.logarithmicDepthBuffer&&$A.setValue(V,"logDepthBufFC",2/(Math.log(O.far+1)/Math.LN2)),w!==O&&(w=O,Uc=!0,Ag=!0),te.isShaderMaterial||te.isMeshPhongMaterial||te.isMeshToonMaterial||te.isMeshStandardMaterial||te.envMap){let _r=$A.map.cameraPosition;_r!==void 0&&_r.setValue(V,U.setFromMatrixPosition(O.matrixWorld))}(te.isMeshPhongMaterial||te.isMeshToonMaterial||te.isMeshLambertMaterial||te.isMeshBasicMaterial||te.isMeshStandardMaterial||te.isShaderMaterial)&&$A.setValue(V,"isOrthographic",O.isOrthographicCamera===!0),(te.isMeshPhongMaterial||te.isMeshToonMaterial||te.isMeshLambertMaterial||te.isMeshBasicMaterial||te.isMeshStandardMaterial||te.isShaderMaterial||te.isShadowMaterial||ce.isSkinnedMesh)&&$A.setValue(V,"viewMatrix",O.matrixWorldInverse)}if(ce.isSkinnedMesh){$A.setOptional(V,ce,"bindMatrix"),$A.setOptional(V,ce,"bindMatrixInverse");let _r=ce.skeleton;_r&&(K.floatVertexTextures?(_r.boneTexture===null&&_r.computeBoneTexture(),$A.setValue(V,"boneTexture",_r.boneTexture,se),$A.setValue(V,"boneTextureSize",_r.boneTextureSize)):console.warn("THREE.WebGLRenderer: SkinnedMesh can only be used with WebGL 2. With WebGL 1 OES_texture_float and vertex textures support is required."))}let ng=ie.morphAttributes;return(ng.position!==void 0||ng.normal!==void 0||ng.color!==void 0&&K.isWebGL2===!0)&&fe.update(ce,ie,te,Lr),(Uc||Mt.receiveShadow!==ce.receiveShadow)&&(Mt.receiveShadow=ce.receiveShadow,$A.setValue(V,"receiveShadow",ce.receiveShadow)),Uc&&($A.setValue(V,"toneMappingExposure",f.toneMappingExposure),Mt.needsLights&&vD(Vc,Ag),At&&te.fog===!0&&Be.refreshFogUniforms(Vc,At),Be.refreshMaterialUniforms(Vc,te,P,C,k),fa.upload(V,Mt.uniformsList,Vc,se)),te.isShaderMaterial&&te.uniformsNeedUpdate===!0&&(fa.upload(V,Mt.uniformsList,Vc,se),te.uniformsNeedUpdate=!1),te.isSpriteMaterial&&$A.setValue(V,"center",ce.center),$A.setValue(V,"modelViewMatrix",ce.modelViewMatrix),$A.setValue(V,"normalMatrix",ce.normalMatrix),$A.setValue(V,"modelMatrix",ce.matrixWorld),Lr}function vD(O,$){O.ambientLightColor.needsUpdate=$,O.lightProbe.needsUpdate=$,O.directionalLights.needsUpdate=$,O.directionalLightShadows.needsUpdate=$,O.pointLights.needsUpdate=$,O.pointLightShadows.needsUpdate=$,O.spotLights.needsUpdate=$,O.spotLightShadows.needsUpdate=$,O.rectAreaLights.needsUpdate=$,O.hemisphereLights.needsUpdate=$}function xD(O){return O.isMeshLambertMaterial||O.isMeshToonMaterial||O.isMeshPhongMaterial||O.isMeshStandardMaterial||O.isShadowMaterial||O.isShaderMaterial&&O.lights===!0}this.getActiveCubeFace=function(){return y},this.getActiveMipmapLevel=function(){return g},this.getRenderTarget=function(){return b},this.setRenderTargetTextures=function(O,$,ie){le.get(O.texture).__webglTexture=$,le.get(O.depthTexture).__webglTexture=ie;let te=le.get(O);te.__hasExternalTextures=!0,te.__hasExternalTextures&&(te.__autoAllocateDepthBuffer=ie===void 0,te.__autoAllocateDepthBuffer||Ae.has("WEBGL_multisampled_render_to_texture")===!0&&(console.warn("THREE.WebGLRenderer: Render-to-texture extension was disabled because an external texture was provided"),te.__useRenderToTexture=!1))},this.setRenderTargetFramebuffer=function(O,$){let ie=le.get(O);ie.__webglFramebuffer=$,ie.__useDefaultFramebuffer=$===void 0},this.setRenderTarget=function(O,$=0,ie=0){b=O,y=$,g=ie;let te=!0;if(O){let ot=le.get(O);ot.__useDefaultFramebuffer!==void 0?(Y.bindFramebuffer(36160,null),te=!1):ot.__webglFramebuffer===void 0?se.setupRenderTarget(O):ot.__hasExternalTextures&&se.rebindTextures(O,le.get(O.texture).__webglTexture,le.get(O.depthTexture).__webglTexture)}let ce=null,At=!1,rt=!1;if(O){let ot=O.texture;(ot.isData3DTexture||ot.isDataArrayTexture)&&(rt=!0);let Lt=le.get(O).__webglFramebuffer;O.isWebGLCubeRenderTarget?(ce=Lt[$],At=!0):K.isWebGL2&&O.samples>0&&se.useMultisampledRTT(O)===!1?ce=le.get(O).__webglMultisampledFramebuffer:ce=Lt,T.copy(O.viewport),M.copy(O.scissor),v=O.scissorTest}else T.copy(I).multiplyScalar(P).floor(),M.copy(B).multiplyScalar(P).floor(),v=N;if(Y.bindFramebuffer(36160,ce)&&K.drawBuffers&&te&&Y.drawBuffers(O,ce),Y.viewport(T),Y.scissor(M),Y.setScissorTest(v),At){let ot=le.get(O.texture);V.framebufferTexture2D(36160,36064,34069+$,ot.__webglTexture,ie)}else if(rt){let ot=le.get(O.texture),Lt=$||0;V.framebufferTextureLayer(36160,36064,ot.__webglTexture,ie||0,Lt)}x=-1},this.readRenderTargetPixels=function(O,$,ie,te,ce,At,rt){if(!(O&&O.isWebGLRenderTarget)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");return}let at=le.get(O).__webglFramebuffer;if(O.isWebGLCubeRenderTarget&&rt!==void 0&&(at=at[rt]),at){Y.bindFramebuffer(36160,at);try{let ot=O.texture,Lt=ot.format,mt=ot.type;if(Lt!==hr&&re.convert(Lt)!==V.getParameter(35739)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");return}let xt=mt===$c&&(Ae.has("EXT_color_buffer_half_float")||K.isWebGL2&&Ae.has("EXT_color_buffer_float"));if(mt!==kt&&re.convert(mt)!==V.getParameter(35738)&&!(mt===Rr&&(K.isWebGL2||Ae.has("OES_texture_float")||Ae.has("WEBGL_color_buffer_float")))&&!xt){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");return}$>=0&&$<=O.width-te&&ie>=0&&ie<=O.height-ce&&V.readPixels($,ie,te,ce,re.convert(Lt),re.convert(mt),At)}finally{let ot=b!==null?le.get(b).__webglFramebuffer:null;Y.bindFramebuffer(36160,ot)}}},this.copyFramebufferToTexture=function(O,$,ie=0){let te=Math.pow(2,-ie),ce=Math.floor($.image.width*te),At=Math.floor($.image.height*te);se.setTexture2D($,0),V.copyTexSubImage2D(3553,ie,0,0,O.x,O.y,ce,At),Y.unbindTexture()},this.copyTextureToTexture=function(O,$,ie,te=0){let ce=$.image.width,At=$.image.height,rt=re.convert(ie.format),at=re.convert(ie.type);se.setTexture2D(ie,0),V.pixelStorei(37440,ie.flipY),V.pixelStorei(37441,ie.premultiplyAlpha),V.pixelStorei(3317,ie.unpackAlignment),$.isDataTexture?V.texSubImage2D(3553,te,O.x,O.y,ce,At,rt,at,$.image.data):$.isCompressedTexture?V.compressedTexSubImage2D(3553,te,O.x,O.y,$.mipmaps[0].width,$.mipmaps[0].height,rt,$.mipmaps[0].data):V.texSubImage2D(3553,te,O.x,O.y,rt,at,$.image),te===0&&ie.generateMipmaps&&V.generateMipmap(3553),Y.unbindTexture()},this.copyTextureToTexture3D=function(O,$,ie,te,ce=0){if(f.isWebGL1Renderer){console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: can only be used with WebGL2.");return}let At=O.max.x-O.min.x+1,rt=O.max.y-O.min.y+1,at=O.max.z-O.min.z+1,ot=re.convert(te.format),Lt=re.convert(te.type),mt;if(te.isData3DTexture)se.setTexture3D(te,0),mt=32879;else if(te.isDataArrayTexture)se.setTexture2DArray(te,0),mt=35866;else{console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.");return}V.pixelStorei(37440,te.flipY),V.pixelStorei(37441,te.premultiplyAlpha),V.pixelStorei(3317,te.unpackAlignment);let xt=V.getParameter(3314),Xt=V.getParameter(32878),Qs=V.getParameter(3316),qo=V.getParameter(3315),Xo=V.getParameter(32877),Ir=ie.isCompressedTexture?ie.mipmaps[0]:ie.image;V.pixelStorei(3314,Ir.width),V.pixelStorei(32878,Ir.height),V.pixelStorei(3316,O.min.x),V.pixelStorei(3315,O.min.y),V.pixelStorei(32877,O.min.z),ie.isDataTexture||ie.isData3DTexture?V.texSubImage3D(mt,ce,$.x,$.y,$.z,At,rt,at,ot,Lt,Ir.data):ie.isCompressedTexture?(console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: untested support for compressed srcTexture."),V.compressedTexSubImage3D(mt,ce,$.x,$.y,$.z,At,rt,at,ot,Ir.data)):V.texSubImage3D(mt,ce,$.x,$.y,$.z,At,rt,at,ot,Lt,Ir),V.pixelStorei(3314,xt),V.pixelStorei(32878,Xt),V.pixelStorei(3316,Qs),V.pixelStorei(3315,qo),V.pixelStorei(32877,Xo),ce===0&&te.generateMipmaps&&V.generateMipmap(mt),Y.unbindTexture()},this.initTexture=function(O){O.isCubeTexture?se.setTextureCube(O,0):O.isData3DTexture?se.setTexture3D(O,0):O.isDataArrayTexture?se.setTexture2DArray(O,0):se.setTexture2D(O,0),Y.unbindTexture()},this.resetState=function(){y=0,g=0,b=null,Y.reset(),Ne.reset()},typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}var ay=class extends Oy{};ay.prototype.isWebGL1Renderer=!0;var va=class{constructor(e,t=1,A=1e3){this.isFog=!0,this.name="",this.color=new _e(e),this.near=t,this.far=A}clone(){return new va(this.color,this.near,this.far)}toJSON(){return{type:"Fog",color:this.color.getHex(),near:this.near,far:this.far}}},sn=class extends ht{constructor(){super(),this.isScene=!0,this.type="Scene",this.background=null,this.environment=null,this.fog=null,this.overrideMaterial=null,this.autoUpdate=!0,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()),e.overrideMaterial!==null&&(this.overrideMaterial=e.overrideMaterial.clone()),this.autoUpdate=e.autoUpdate,this.matrixAutoUpdate=e.matrixAutoUpdate,this}toJSON(e){let t=super.toJSON(e);return this.fog!==null&&(t.object.fog=this.fog.toJSON()),t}},Ud=class{constructor(e,t){this.isInterleavedBuffer=!0,this.array=e,this.stride=t,this.count=e!==void 0?e.length/t:0,this.usage=qg,this.updateRange={offset:0,count:-1},this.version=0,this.uuid=Br()}onUploadCallback(){}set needsUpdate(e){e===!0&&this.version++}setUsage(e){return this.usage=e,this}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,A){e*=this.stride,A*=t.stride;for(let r=0,i=this.stride;r<i;r++)this.array[e+r]=t.array[A+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=Br()),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]),A=new this.constructor(t,this.stride);return A.setUsage(this.usage),A}onUpload(e){return this.onUploadCallback=e,this}toJSON(e){return e.arrayBuffers===void 0&&(e.arrayBuffers={}),this.array.buffer._uuid===void 0&&(this.array.buffer._uuid=Br()),e.arrayBuffers[this.array.buffer._uuid]===void 0&&(e.arrayBuffers[this.array.buffer._uuid]=Array.from(new Uint32Array(this.array.buffer))),{uuid:this.uuid,buffer:this.array.buffer._uuid,type:this.array.constructor.name,stride:this.stride}}},en=new S,io=class{constructor(e,t,A,r=!1){this.isInterleavedBufferAttribute=!0,this.name="",this.data=e,this.itemSize=t,this.offset=A,this.normalized=r===!0}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,A=this.data.count;t<A;t++)en.fromBufferAttribute(this,t),en.applyMatrix4(e),this.setXYZ(t,en.x,en.y,en.z);return this}applyNormalMatrix(e){for(let t=0,A=this.count;t<A;t++)en.fromBufferAttribute(this,t),en.applyNormalMatrix(e),this.setXYZ(t,en.x,en.y,en.z);return this}transformDirection(e){for(let t=0,A=this.count;t<A;t++)en.fromBufferAttribute(this,t),en.transformDirection(e),this.setXYZ(t,en.x,en.y,en.z);return this}setX(e,t){return this.data.array[e*this.data.stride+this.offset]=t,this}setY(e,t){return this.data.array[e*this.data.stride+this.offset+1]=t,this}setZ(e,t){return this.data.array[e*this.data.stride+this.offset+2]=t,this}setW(e,t){return this.data.array[e*this.data.stride+this.offset+3]=t,this}getX(e){return this.data.array[e*this.data.stride+this.offset]}getY(e){return this.data.array[e*this.data.stride+this.offset+1]}getZ(e){return this.data.array[e*this.data.stride+this.offset+2]}getW(e){return this.data.array[e*this.data.stride+this.offset+3]}setXY(e,t,A){return e=e*this.data.stride+this.offset,this.data.array[e+0]=t,this.data.array[e+1]=A,this}setXYZ(e,t,A,r){return e=e*this.data.stride+this.offset,this.data.array[e+0]=t,this.data.array[e+1]=A,this.data.array[e+2]=r,this}setXYZW(e,t,A,r,i){return e=e*this.data.stride+this.offset,this.data.array[e+0]=t,this.data.array[e+1]=A,this.data.array[e+2]=r,this.data.array[e+3]=i,this}clone(e){if(e===void 0){console.log("THREE.InterleavedBufferAttribute.clone(): Cloning an interleaved buffer attribute will deinterleave buffer data.");let t=[];for(let A=0;A<this.count;A++){let r=A*this.data.stride+this.offset;for(let i=0;i<this.itemSize;i++)t.push(this.data.array[r+i])}return new Ge(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 io(e.interleavedBuffers[this.data.uuid],this.itemSize,this.offset,this.normalized)}toJSON(e){if(e===void 0){console.log("THREE.InterleavedBufferAttribute.toJSON(): Serializing an interleaved buffer attribute will deinterleave buffer data.");let t=[];for(let A=0;A<this.count;A++){let r=A*this.data.stride+this.offset;for(let i=0;i<this.itemSize;i++)t.push(this.data.array[r+i])}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}}};var Vd=class extends Ge{constructor(e,t,A,r=1){typeof A=="number"&&(r=A,A=!1,console.error("THREE.InstancedBufferAttribute: The constructor now expects normalized as the third argument.")),super(e,t,A),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}};var jn=class extends ro{constructor(e){super(),this.isLineBasicMaterial=!0,this.type="LineBasicMaterial",this.color=new _e(16777215),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.linewidth=e.linewidth,this.linecap=e.linecap,this.linejoin=e.linejoin,this.fog=e.fog,this}},cw=new S,uw=new S,hw=new he,Gg=new dr,Sd=new DA,so=class extends ht{constructor(e=new Ie,t=new jn){super(),this.isLine=!0,this.type="Line",this.geometry=e,this.material=t,this.updateMorphTargets()}copy(e,t){return super.copy(e,t),this.material=e.material,this.geometry=e.geometry,this}computeLineDistances(){let e=this.geometry;if(e.index===null){let t=e.attributes.position,A=[0];for(let r=1,i=t.count;r<i;r++)cw.fromBufferAttribute(t,r-1),uw.fromBufferAttribute(t,r),A[r]=A[r-1],A[r]+=cw.distanceTo(uw);e.setAttribute("lineDistance",new Se(A,1))}else console.warn("THREE.Line.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.");return this}raycast(e,t){let A=this.geometry,r=this.matrixWorld,i=e.params.Line.threshold,s=A.drawRange;if(A.boundingSphere===null&&A.computeBoundingSphere(),Sd.copy(A.boundingSphere),Sd.applyMatrix4(r),Sd.radius+=i,e.ray.intersectsSphere(Sd)===!1)return;hw.copy(r).invert(),Gg.copy(e.ray).applyMatrix4(hw);let o=i/((this.scale.x+this.scale.y+this.scale.z)/3),a=o*o,c=new S,l=new S,u=new S,h=new S,d=this.isLineSegments?2:1,p=A.index,m=A.attributes.position;if(p!==null){let y=Math.max(0,s.start),g=Math.min(p.count,s.start+s.count);for(let b=y,x=g-1;b<x;b+=d){let w=p.getX(b),T=p.getX(b+1);if(c.fromBufferAttribute(m,w),l.fromBufferAttribute(m,T),Gg.distanceSqToSegment(c,l,h,u)>a)continue;h.applyMatrix4(this.matrixWorld);let v=e.ray.origin.distanceTo(h);v<e.near||v>e.far||t.push({distance:v,point:u.clone().applyMatrix4(this.matrixWorld),index:b,face:null,faceIndex:null,object:this})}}else{let y=Math.max(0,s.start),g=Math.min(m.count,s.start+s.count);for(let b=y,x=g-1;b<x;b+=d){if(c.fromBufferAttribute(m,b),l.fromBufferAttribute(m,b+1),Gg.distanceSqToSegment(c,l,h,u)>a)continue;h.applyMatrix4(this.matrixWorld);let T=e.ray.origin.distanceTo(h);T<e.near||T>e.far||t.push({distance:T,point:u.clone().applyMatrix4(this.matrixWorld),index:b,face:null,faceIndex:null,object:this})}}}updateMorphTargets(){let t=this.geometry.morphAttributes,A=Object.keys(t);if(A.length>0){let r=t[A[0]];if(r!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let i=0,s=r.length;i<s;i++){let o=r[i].name||String(i);this.morphTargetInfluences.push(0),this.morphTargetDictionary[o]=i}}}}},dw=new S,fw=new S,rs=class extends so{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,A=[];for(let r=0,i=t.count;r<i;r+=2)dw.fromBufferAttribute(t,r),fw.fromBufferAttribute(t,r+1),A[r]=r===0?0:A[r-1],A[r+1]=A[r]+dw.distanceTo(fw);e.setAttribute("lineDistance",new Se(A,1))}else console.warn("THREE.LineSegments.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.");return this}};var zd=class extends jt{constructor(e,t,A,r,i,s,o,a,c){super(e,t,A,r,i,s,o,a,c),this.isVideoTexture=!0,this.minFilter=s!==void 0?s:it,this.magFilter=i!==void 0?i:it,this.generateMipmaps=!1;let l=this;function u(){l.needsUpdate=!0,e.requestVideoFrameCallback(u)}"requestVideoFrameCallback"in e&&e.requestVideoFrameCallback(u)}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)}};var Yn=class{constructor(){this.type="Curve",this.arcLengthDivisions=200}getPoint(){return console.warn("THREE.Curve: .getPoint() not implemented."),null}getPointAt(e,t){let A=this.getUtoTmapping(e);return this.getPoint(A,t)}getPoints(e=5){let t=[];for(let A=0;A<=e;A++)t.push(this.getPoint(A/e));return t}getSpacedPoints(e=5){let t=[];for(let A=0;A<=e;A++)t.push(this.getPointAt(A/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=[],A,r=this.getPoint(0),i=0;t.push(0);for(let s=1;s<=e;s++)A=this.getPoint(s/e),i+=A.distanceTo(r),t.push(i),r=A;return this.cacheArcLengths=t,t}updateArcLengths(){this.needsUpdate=!0,this.getLengths()}getUtoTmapping(e,t){let A=this.getLengths(),r=0,i=A.length,s;t?s=t:s=e*A[i-1];let o=0,a=i-1,c;for(;o<=a;)if(r=Math.floor(o+(a-o)/2),c=A[r]-s,c<0)o=r+1;else if(c>0)a=r-1;else{a=r;break}if(r=a,A[r]===s)return r/(i-1);let l=A[r],h=A[r+1]-l,d=(s-l)/h;return(r+d)/(i-1)}getTangent(e,t){let r=e-1e-4,i=e+1e-4;r<0&&(r=0),i>1&&(i=1);let s=this.getPoint(r),o=this.getPoint(i),a=t||(s.isVector2?new G:new S);return a.copy(o).sub(s).normalize(),a}getTangentAt(e,t){let A=this.getUtoTmapping(e);return this.getTangent(A,t)}computeFrenetFrames(e,t){let A=new S,r=[],i=[],s=[],o=new S,a=new he;for(let d=0;d<=e;d++){let p=d/e;r[d]=this.getTangentAt(p,new S)}i[0]=new S,s[0]=new S;let c=Number.MAX_VALUE,l=Math.abs(r[0].x),u=Math.abs(r[0].y),h=Math.abs(r[0].z);l<=c&&(c=l,A.set(1,0,0)),u<=c&&(c=u,A.set(0,1,0)),h<=c&&A.set(0,0,1),o.crossVectors(r[0],A).normalize(),i[0].crossVectors(r[0],o),s[0].crossVectors(r[0],i[0]);for(let d=1;d<=e;d++){if(i[d]=i[d-1].clone(),s[d]=s[d-1].clone(),o.crossVectors(r[d-1],r[d]),o.length()>Number.EPSILON){o.normalize();let p=Math.acos(gA(r[d-1].dot(r[d]),-1,1));i[d].applyMatrix4(a.makeRotationAxis(o,p))}s[d].crossVectors(r[d],i[d])}if(t===!0){let d=Math.acos(gA(i[0].dot(i[e]),-1,1));d/=e,r[0].dot(o.crossVectors(i[0],i[e]))>0&&(d=-d);for(let p=1;p<=e;p++)i[p].applyMatrix4(a.makeRotationAxis(r[p],d*p)),s[p].crossVectors(r[p],i[p])}return{tangents:r,normals:i,binormals:s}}clone(){return new this.constructor().copy(this)}copy(e){return this.arcLengthDivisions=e.arcLengthDivisions,this}toJSON(){let e={metadata:{version:4.5,type:"Curve",generator:"Curve.toJSON"}};return e.arcLengthDivisions=this.arcLengthDivisions,e.type=this.type,e}fromJSON(e){return this.arcLengthDivisions=e.arcLengthDivisions,this}},oo=class extends Yn{constructor(e=0,t=0,A=1,r=1,i=0,s=Math.PI*2,o=!1,a=0){super(),this.isEllipseCurve=!0,this.type="EllipseCurve",this.aX=e,this.aY=t,this.xRadius=A,this.yRadius=r,this.aStartAngle=i,this.aEndAngle=s,this.aClockwise=o,this.aRotation=a}getPoint(e,t){let A=t||new G,r=Math.PI*2,i=this.aEndAngle-this.aStartAngle,s=Math.abs(i)<Number.EPSILON;for(;i<0;)i+=r;for(;i>r;)i-=r;i<Number.EPSILON&&(s?i=0:i=r),this.aClockwise===!0&&!s&&(i===r?i=-r:i=i-r);let o=this.aStartAngle+e*i,a=this.aX+this.xRadius*Math.cos(o),c=this.aY+this.yRadius*Math.sin(o);if(this.aRotation!==0){let l=Math.cos(this.aRotation),u=Math.sin(this.aRotation),h=a-this.aX,d=c-this.aY;a=h*l-d*u+this.aX,c=h*u+d*l+this.aY}return A.set(a,c)}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}},ly=class extends oo{constructor(e,t,A,r,i,s){super(e,t,A,A,r,i,s),this.isArcCurve=!0,this.type="ArcCurve"}};function Ry(){let n=0,e=0,t=0,A=0;function r(i,s,o,a){n=i,e=o,t=-3*i+3*s-2*o-a,A=2*i-2*s+o+a}return{initCatmullRom:function(i,s,o,a,c){r(s,o,c*(o-i),c*(a-s))},initNonuniformCatmullRom:function(i,s,o,a,c,l,u){let h=(s-i)/c-(o-i)/(c+l)+(o-s)/l,d=(o-s)/l-(a-s)/(l+u)+(a-o)/u;h*=l,d*=l,r(s,o,h,d)},calc:function(i){let s=i*i,o=s*i;return n+e*i+t*s+A*o}}}var Td=new S,kg=new Ry,Ug=new Ry,Vg=new Ry,cy=class extends Yn{constructor(e=[],t=!1,A="centripetal",r=.5){super(),this.isCatmullRomCurve3=!0,this.type="CatmullRomCurve3",this.points=e,this.closed=t,this.curveType=A,this.tension=r}getPoint(e,t=new S){let A=t,r=this.points,i=r.length,s=(i-(this.closed?0:1))*e,o=Math.floor(s),a=s-o;this.closed?o+=o>0?0:(Math.floor(Math.abs(o)/i)+1)*i:a===0&&o===i-1&&(o=i-2,a=1);let c,l;this.closed||o>0?c=r[(o-1)%i]:(Td.subVectors(r[0],r[1]).add(r[0]),c=Td);let u=r[o%i],h=r[(o+1)%i];if(this.closed||o+2<i?l=r[(o+2)%i]:(Td.subVectors(r[i-1],r[i-2]).add(r[i-1]),l=Td),this.curveType==="centripetal"||this.curveType==="chordal"){let d=this.curveType==="chordal"?.5:.25,p=Math.pow(c.distanceToSquared(u),d),f=Math.pow(u.distanceToSquared(h),d),m=Math.pow(h.distanceToSquared(l),d);f<1e-4&&(f=1),p<1e-4&&(p=f),m<1e-4&&(m=f),kg.initNonuniformCatmullRom(c.x,u.x,h.x,l.x,p,f,m),Ug.initNonuniformCatmullRom(c.y,u.y,h.y,l.y,p,f,m),Vg.initNonuniformCatmullRom(c.z,u.z,h.z,l.z,p,f,m)}else this.curveType==="catmullrom"&&(kg.initCatmullRom(c.x,u.x,h.x,l.x,this.tension),Ug.initCatmullRom(c.y,u.y,h.y,l.y,this.tension),Vg.initCatmullRom(c.z,u.z,h.z,l.z,this.tension));return A.set(kg.calc(a),Ug.calc(a),Vg.calc(a)),A}copy(e){super.copy(e),this.points=[];for(let t=0,A=e.points.length;t<A;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,A=this.points.length;t<A;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,A=e.points.length;t<A;t++){let r=e.points[t];this.points.push(new S().fromArray(r))}return this.closed=e.closed,this.curveType=e.curveType,this.tension=e.tension,this}};function pw(n,e,t,A,r){let i=(A-e)*.5,s=(r-t)*.5,o=n*n,a=n*o;return(2*t-2*A+i+s)*a+(-3*t+3*A-2*i-s)*o+i*n+t}function x3(n,e){let t=1-n;return t*t*e}function b3(n,e){return 2*(1-n)*n*e}function w3(n,e){return n*n*e}function Kc(n,e,t,A){return x3(n,e)+b3(n,t)+w3(n,A)}function S3(n,e){let t=1-n;return t*t*t*e}function T3(n,e){let t=1-n;return 3*t*t*n*e}function M3(n,e){return 3*(1-n)*n*n*e}function E3(n,e){return n*n*n*e}function Jc(n,e,t,A,r){return S3(n,e)+T3(n,t)+M3(n,A)+E3(n,r)}var qA=class extends Yn{constructor(e=new G,t=new G,A=new G,r=new G){super(),this.isCubicBezierCurve=!0,this.type="CubicBezierCurve",this.v0=e,this.v1=t,this.v2=A,this.v3=r}getPoint(e,t=new G){let A=t,r=this.v0,i=this.v1,s=this.v2,o=this.v3;return A.set(Jc(e,r.x,i.x,s.x,o.x),Jc(e,r.y,i.y,s.y,o.y)),A}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}},uy=class extends Yn{constructor(e=new S,t=new S,A=new S,r=new S){super(),this.isCubicBezierCurve3=!0,this.type="CubicBezierCurve3",this.v0=e,this.v1=t,this.v2=A,this.v3=r}getPoint(e,t=new S){let A=t,r=this.v0,i=this.v1,s=this.v2,o=this.v3;return A.set(Jc(e,r.x,i.x,s.x,o.x),Jc(e,r.y,i.y,s.y,o.y),Jc(e,r.z,i.z,s.z,o.z)),A}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}},XA=class extends Yn{constructor(e=new G,t=new G){super(),this.isLineCurve=!0,this.type="LineCurve",this.v1=e,this.v2=t}getPoint(e,t=new G){let A=t;return e===1?A.copy(this.v2):(A.copy(this.v2).sub(this.v1),A.multiplyScalar(e).add(this.v1)),A}getPointAt(e,t){return this.getPoint(e,t)}getTangent(e,t){let A=t||new G;return A.copy(this.v2).sub(this.v1).normalize(),A}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}},iu=class extends Yn{constructor(e=new S,t=new S){super(),this.isLineCurve3=!0,this.type="LineCurve3",this.v1=e,this.v2=t}getPoint(e,t=new S){let A=t;return e===1?A.copy(this.v2):(A.copy(this.v2).sub(this.v1),A.multiplyScalar(e).add(this.v1)),A}getPointAt(e,t){return this.getPoint(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}},_n=class extends Yn{constructor(e=new G,t=new G,A=new G){super(),this.isQuadraticBezierCurve=!0,this.type="QuadraticBezierCurve",this.v0=e,this.v1=t,this.v2=A}getPoint(e,t=new G){let A=t,r=this.v0,i=this.v1,s=this.v2;return A.set(Kc(e,r.x,i.x,s.x),Kc(e,r.y,i.y,s.y)),A}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}},hy=class extends Yn{constructor(e=new S,t=new S,A=new S){super(),this.isQuadraticBezierCurve3=!0,this.type="QuadraticBezierCurve3",this.v0=e,this.v1=t,this.v2=A}getPoint(e,t=new S){let A=t,r=this.v0,i=this.v1,s=this.v2;return A.set(Kc(e,r.x,i.x,s.x),Kc(e,r.y,i.y,s.y),Kc(e,r.z,i.z,s.z)),A}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}},xa=class extends Yn{constructor(e=[]){super(),this.isSplineCurve=!0,this.type="SplineCurve",this.points=e}getPoint(e,t=new G){let A=t,r=this.points,i=(r.length-1)*e,s=Math.floor(i),o=i-s,a=r[s===0?s:s-1],c=r[s],l=r[s>r.length-2?r.length-1:s+1],u=r[s>r.length-3?r.length-1:s+2];return A.set(pw(o,a.x,c.x,l.x,u.x),pw(o,a.y,c.y,l.y,u.y)),A}copy(e){super.copy(e),this.points=[];for(let t=0,A=e.points.length;t<A;t++){let r=e.points[t];this.points.push(r.clone())}return this}toJSON(){let e=super.toJSON();e.points=[];for(let t=0,A=this.points.length;t<A;t++){let r=this.points[t];e.points.push(r.toArray())}return e}fromJSON(e){super.fromJSON(e),this.points=[];for(let t=0,A=e.points.length;t<A;t++){let r=e.points[t];this.points.push(new G().fromArray(r))}return this}},C3=Object.freeze({__proto__:null,ArcCurve:ly,CatmullRomCurve3:cy,CubicBezierCurve:qA,CubicBezierCurve3:uy,EllipseCurve:oo,LineCurve:XA,LineCurve3:iu,QuadraticBezierCurve:_n,QuadraticBezierCurve3:hy,SplineCurve:xa}),dy=class extends Yn{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);e.equals(t)||this.curves.push(new XA(t,e))}getPoint(e,t){let A=e*this.getLength(),r=this.getCurveLengths(),i=0;for(;i<r.length;){if(r[i]>=A){let s=r[i]-A,o=this.curves[i],a=o.getLength(),c=a===0?0:1-s/a;return o.getPointAt(c,t)}i++}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 A=0,r=this.curves.length;A<r;A++)t+=this.curves[A].getLength(),e.push(t);return this.cacheLengths=e,e}getSpacedPoints(e=40){let t=[];for(let A=0;A<=e;A++)t.push(this.getPoint(A/e));return this.autoClose&&t.push(t[0]),t}getPoints(e=12){let t=[],A;for(let r=0,i=this.curves;r<i.length;r++){let s=i[r],o=s.isEllipseCurve?e*2:s.isLineCurve||s.isLineCurve3?1:s.isSplineCurve?e*s.points.length:e,a=s.getPoints(o);for(let c=0;c<a.length;c++){let l=a[c];A&&A.equals(l)||(t.push(l),A=l)}}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,A=e.curves.length;t<A;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,A=this.curves.length;t<A;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,A=e.curves.length;t<A;t++){let r=e.curves[t];this.curves.push(new C3[r.type]().fromJSON(r))}return this}},ao=class extends dy{constructor(e){super(),this.type="Path",this.currentPoint=new G,e&&this.setFromPoints(e)}setFromPoints(e){this.moveTo(e[0].x,e[0].y);for(let t=1,A=e.length;t<A;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 A=new XA(this.currentPoint.clone(),new G(e,t));return this.curves.push(A),this.currentPoint.set(e,t),this}quadraticCurveTo(e,t,A,r){let i=new _n(this.currentPoint.clone(),new G(e,t),new G(A,r));return this.curves.push(i),this.currentPoint.set(A,r),this}bezierCurveTo(e,t,A,r,i,s){let o=new qA(this.currentPoint.clone(),new G(e,t),new G(A,r),new G(i,s));return this.curves.push(o),this.currentPoint.set(i,s),this}splineThru(e){let t=[this.currentPoint.clone()].concat(e),A=new xa(t);return this.curves.push(A),this.currentPoint.copy(e[e.length-1]),this}arc(e,t,A,r,i,s){let o=this.currentPoint.x,a=this.currentPoint.y;return this.absarc(e+o,t+a,A,r,i,s),this}absarc(e,t,A,r,i,s){return this.absellipse(e,t,A,A,r,i,s),this}ellipse(e,t,A,r,i,s,o,a){let c=this.currentPoint.x,l=this.currentPoint.y;return this.absellipse(e+c,t+l,A,r,i,s,o,a),this}absellipse(e,t,A,r,i,s,o,a){let c=new oo(e,t,A,r,i,s,o,a);if(this.curves.length>0){let u=c.getPoint(0);u.equals(this.currentPoint)||this.lineTo(u.x,u.y)}this.curves.push(c);let l=c.getPoint(1);return this.currentPoint.copy(l),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}},ba=class extends Ie{constructor(e=[new G(0,.5),new G(.5,0),new G(0,-.5)],t=12,A=0,r=Math.PI*2){super(),this.type="LatheGeometry",this.parameters={points:e,segments:t,phiStart:A,phiLength:r},t=Math.floor(t),r=gA(r,0,Math.PI*2);let i=[],s=[],o=[],a=[],c=[],l=1/t,u=new S,h=new G,d=new S,p=new S,f=new S,m=0,y=0;for(let g=0;g<=e.length-1;g++)switch(g){case 0:m=e[g+1].x-e[g].x,y=e[g+1].y-e[g].y,d.x=y*1,d.y=-m,d.z=y*0,f.copy(d),d.normalize(),a.push(d.x,d.y,d.z);break;case e.length-1:a.push(f.x,f.y,f.z);break;default:m=e[g+1].x-e[g].x,y=e[g+1].y-e[g].y,d.x=y*1,d.y=-m,d.z=y*0,p.copy(d),d.x+=f.x,d.y+=f.y,d.z+=f.z,d.normalize(),a.push(d.x,d.y,d.z),f.copy(p)}for(let g=0;g<=t;g++){let b=A+g*l*r,x=Math.sin(b),w=Math.cos(b);for(let T=0;T<=e.length-1;T++){u.x=e[T].x*x,u.y=e[T].y,u.z=e[T].x*w,s.push(u.x,u.y,u.z),h.x=g/t,h.y=T/(e.length-1),o.push(h.x,h.y);let M=a[3*T+0]*x,v=a[3*T+1],E=a[3*T+0]*w;c.push(M,v,E)}}for(let g=0;g<t;g++)for(let b=0;b<e.length-1;b++){let x=b+g*e.length,w=x,T=x+e.length,M=x+e.length+1,v=x+1;i.push(w,T,v),i.push(M,v,T)}this.setIndex(i),this.setAttribute("position",new Se(s,3)),this.setAttribute("uv",new Se(o,2)),this.setAttribute("normal",new Se(c,3))}static fromJSON(e){return new ba(e.points,e.segments,e.phiStart,e.phiLength)}};var lo=class extends Ie{constructor(e=1,t=1,A=1,r=8,i=1,s=!1,o=0,a=Math.PI*2){super(),this.type="CylinderGeometry",this.parameters={radiusTop:e,radiusBottom:t,height:A,radialSegments:r,heightSegments:i,openEnded:s,thetaStart:o,thetaLength:a};let c=this;r=Math.floor(r),i=Math.floor(i);let l=[],u=[],h=[],d=[],p=0,f=[],m=A/2,y=0;g(),s===!1&&(e>0&&b(!0),t>0&&b(!1)),this.setIndex(l),this.setAttribute("position",new Se(u,3)),this.setAttribute("normal",new Se(h,3)),this.setAttribute("uv",new Se(d,2));function g(){let x=new S,w=new S,T=0,M=(t-e)/A;for(let v=0;v<=i;v++){let E=[],C=v/i,P=C*(t-e)+e;for(let D=0;D<=r;D++){let _=D/r,I=_*a+o,B=Math.sin(I),N=Math.cos(I);w.x=P*B,w.y=-C*A+m,w.z=P*N,u.push(w.x,w.y,w.z),x.set(B,M,N).normalize(),h.push(x.x,x.y,x.z),d.push(_,1-C),E.push(p++)}f.push(E)}for(let v=0;v<r;v++)for(let E=0;E<i;E++){let C=f[E][v],P=f[E+1][v],D=f[E+1][v+1],_=f[E][v+1];l.push(C,P,_),l.push(P,D,_),T+=6}c.addGroup(y,T,0),y+=T}function b(x){let w=p,T=new G,M=new S,v=0,E=x===!0?e:t,C=x===!0?1:-1;for(let D=1;D<=r;D++)u.push(0,m*C,0),h.push(0,C,0),d.push(.5,.5),p++;let P=p;for(let D=0;D<=r;D++){let I=D/r*a+o,B=Math.cos(I),N=Math.sin(I);M.x=E*N,M.y=m*C,M.z=E*B,u.push(M.x,M.y,M.z),h.push(0,C,0),T.x=B*.5+.5,T.y=N*.5*C+.5,d.push(T.x,T.y),p++}for(let D=0;D<r;D++){let _=w+D,I=P+D;x===!0?l.push(I,I+1,_):l.push(I+1,I,_),v+=3}c.addGroup(y,v,x===!0?1:2),y+=v}}static fromJSON(e){return new lo(e.radiusTop,e.radiusBottom,e.height,e.radialSegments,e.heightSegments,e.openEnded,e.thetaStart,e.thetaLength)}},wa=class extends lo{constructor(e=1,t=1,A=8,r=1,i=!1,s=0,o=Math.PI*2){super(0,e,t,A,r,i,s,o),this.type="ConeGeometry",this.parameters={radius:e,height:t,radialSegments:A,heightSegments:r,openEnded:i,thetaStart:s,thetaLength:o}}static fromJSON(e){return new wa(e.radius,e.height,e.radialSegments,e.heightSegments,e.openEnded,e.thetaStart,e.thetaLength)}},Sa=class extends Ie{constructor(e=[],t=[],A=1,r=0){super(),this.type="PolyhedronGeometry",this.parameters={vertices:e,indices:t,radius:A,detail:r};let i=[],s=[];o(r),c(A),l(),this.setAttribute("position",new Se(i,3)),this.setAttribute("normal",new Se(i.slice(),3)),this.setAttribute("uv",new Se(s,2)),r===0?this.computeVertexNormals():this.normalizeNormals();function o(g){let b=new S,x=new S,w=new S;for(let T=0;T<t.length;T+=3)d(t[T+0],b),d(t[T+1],x),d(t[T+2],w),a(b,x,w,g)}function a(g,b,x,w){let T=w+1,M=[];for(let v=0;v<=T;v++){M[v]=[];let E=g.clone().lerp(x,v/T),C=b.clone().lerp(x,v/T),P=T-v;for(let D=0;D<=P;D++)D===0&&v===T?M[v][D]=E:M[v][D]=E.clone().lerp(C,D/P)}for(let v=0;v<T;v++)for(let E=0;E<2*(T-v)-1;E++){let C=Math.floor(E/2);E%2===0?(h(M[v][C+1]),h(M[v+1][C]),h(M[v][C])):(h(M[v][C+1]),h(M[v+1][C+1]),h(M[v+1][C]))}}function c(g){let b=new S;for(let x=0;x<i.length;x+=3)b.x=i[x+0],b.y=i[x+1],b.z=i[x+2],b.normalize().multiplyScalar(g),i[x+0]=b.x,i[x+1]=b.y,i[x+2]=b.z}function l(){let g=new S;for(let b=0;b<i.length;b+=3){g.x=i[b+0],g.y=i[b+1],g.z=i[b+2];let x=m(g)/2/Math.PI+.5,w=y(g)/Math.PI+.5;s.push(x,1-w)}p(),u()}function u(){for(let g=0;g<s.length;g+=6){let b=s[g+0],x=s[g+2],w=s[g+4],T=Math.max(b,x,w),M=Math.min(b,x,w);T>.9&&M<.1&&(b<.2&&(s[g+0]+=1),x<.2&&(s[g+2]+=1),w<.2&&(s[g+4]+=1))}}function h(g){i.push(g.x,g.y,g.z)}function d(g,b){let x=g*3;b.x=e[x+0],b.y=e[x+1],b.z=e[x+2]}function p(){let g=new S,b=new S,x=new S,w=new S,T=new G,M=new G,v=new G;for(let E=0,C=0;E<i.length;E+=9,C+=6){g.set(i[E+0],i[E+1],i[E+2]),b.set(i[E+3],i[E+4],i[E+5]),x.set(i[E+6],i[E+7],i[E+8]),T.set(s[C+0],s[C+1]),M.set(s[C+2],s[C+3]),v.set(s[C+4],s[C+5]),w.copy(g).add(b).add(x).divideScalar(3);let P=m(w);f(T,C+0,g,P),f(M,C+2,b,P),f(v,C+4,x,P)}}function f(g,b,x,w){w<0&&g.x===1&&(s[b]=g.x-1),x.x===0&&x.z===0&&(s[b]=w/2/Math.PI+.5)}function m(g){return Math.atan2(g.z,-g.x)}function y(g){return Math.atan2(-g.y,Math.sqrt(g.x*g.x+g.z*g.z))}}static fromJSON(e){return new Sa(e.vertices,e.indices,e.radius,e.details)}},Ta=class extends Sa{constructor(e=1,t=0){let A=(1+Math.sqrt(5))/2,r=1/A,i=[-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,-A,0,-r,A,0,r,-A,0,r,A,-r,-A,0,-r,A,0,r,-A,0,r,A,0,-A,0,-r,A,0,-r,-A,0,r,A,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(i,s,e,t),this.type="DodecahedronGeometry",this.parameters={radius:e,detail:t}}static fromJSON(e){return new Ta(e.radius,e.detail)}};var Mi=class extends ao{constructor(e){super(e),this.uuid=Br(),this.type="Shape",this.holes=[]}getPointsHoles(e){let t=[];for(let A=0,r=this.holes.length;A<r;A++)t[A]=this.holes[A].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,A=e.holes.length;t<A;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,A=this.holes.length;t<A;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,A=e.holes.length;t<A;t++){let r=e.holes[t];this.holes.push(new ao().fromJSON(r))}return this}},P3={triangulate:function(n,e,t=2){let A=e&&e.length,r=A?e[0]*t:n.length,i=Ww(n,0,r,t,!0),s=[];if(!i||i.next===i.prev)return s;let o,a,c,l,u,h,d;if(A&&(i=O3(n,e,i,t)),n.length>80*t){o=c=n[0],a=l=n[1];for(let p=t;p<r;p+=t)u=n[p],h=n[p+1],u<o&&(o=u),h<a&&(a=h),u>c&&(c=u),h>l&&(l=h);d=Math.max(c-o,l-a),d=d!==0?1/d:0}return su(i,s,t,o,a,d),s}};function Ww(n,e,t,A,r){let i,s;if(r===W3(n,e,t,A)>0)for(i=e;i<t;i+=A)s=mw(i,n[i],n[i+1],s);else for(i=t-A;i>=e;i-=A)s=mw(i,n[i],n[i+1],s);return s&&tf(s,s.next)&&(au(s),s=s.next),s}function is(n,e){if(!n)return n;e||(e=n);let t=n,A;do if(A=!1,!t.steiner&&(tf(t,t.next)||Ht(t.prev,t,t.next)===0)){if(au(t),t=e=t.prev,t===t.next)break;A=!0}else t=t.next;while(A||t!==e);return e}function su(n,e,t,A,r,i,s){if(!n)return;!s&&i&&G3(n,A,r,i);let o=n,a,c;for(;n.prev!==n.next;){if(a=n.prev,c=n.next,i?I3(n,A,r,i):D3(n)){e.push(a.i/t),e.push(n.i/t),e.push(c.i/t),au(n),n=c.next,o=c.next;continue}if(n=c,n===o){s?s===1?(n=L3(is(n),e,t),su(n,e,t,A,r,i,2)):s===2&&_3(n,e,t,A,r,i):su(is(n),e,t,A,r,i,1);break}}}function D3(n){let e=n.prev,t=n,A=n.next;if(Ht(e,t,A)>=0)return!1;let r=n.next.next;for(;r!==n.prev;){if(ha(e.x,e.y,t.x,t.y,A.x,A.y,r.x,r.y)&&Ht(r.prev,r,r.next)>=0)return!1;r=r.next}return!0}function I3(n,e,t,A){let r=n.prev,i=n,s=n.next;if(Ht(r,i,s)>=0)return!1;let o=r.x<i.x?r.x<s.x?r.x:s.x:i.x<s.x?i.x:s.x,a=r.y<i.y?r.y<s.y?r.y:s.y:i.y<s.y?i.y:s.y,c=r.x>i.x?r.x>s.x?r.x:s.x:i.x>s.x?i.x:s.x,l=r.y>i.y?r.y>s.y?r.y:s.y:i.y>s.y?i.y:s.y,u=fy(o,a,e,t,A),h=fy(c,l,e,t,A),d=n.prevZ,p=n.nextZ;for(;d&&d.z>=u&&p&&p.z<=h;){if(d!==n.prev&&d!==n.next&&ha(r.x,r.y,i.x,i.y,s.x,s.y,d.x,d.y)&&Ht(d.prev,d,d.next)>=0||(d=d.prevZ,p!==n.prev&&p!==n.next&&ha(r.x,r.y,i.x,i.y,s.x,s.y,p.x,p.y)&&Ht(p.prev,p,p.next)>=0))return!1;p=p.nextZ}for(;d&&d.z>=u;){if(d!==n.prev&&d!==n.next&&ha(r.x,r.y,i.x,i.y,s.x,s.y,d.x,d.y)&&Ht(d.prev,d,d.next)>=0)return!1;d=d.prevZ}for(;p&&p.z<=h;){if(p!==n.prev&&p!==n.next&&ha(r.x,r.y,i.x,i.y,s.x,s.y,p.x,p.y)&&Ht(p.prev,p,p.next)>=0)return!1;p=p.nextZ}return!0}function L3(n,e,t){let A=n;do{let r=A.prev,i=A.next.next;!tf(r,i)&&jw(r,A,A.next,i)&&ou(r,i)&&ou(i,r)&&(e.push(r.i/t),e.push(A.i/t),e.push(i.i/t),au(A),au(A.next),A=n=i),A=A.next}while(A!==n);return is(A)}function _3(n,e,t,A,r,i){let s=n;do{let o=s.next.next;for(;o!==s.prev;){if(s.i!==o.i&&V3(s,o)){let a=Yw(s,o);s=is(s,s.next),a=is(a,a.next),su(s,e,t,A,r,i),su(a,e,t,A,r,i);return}o=o.next}s=s.next}while(s!==n)}function O3(n,e,t,A){let r=[],i,s,o,a,c;for(i=0,s=e.length;i<s;i++)o=e[i]*A,a=i<s-1?e[i+1]*A:n.length,c=Ww(n,o,a,A,!1),c===c.next&&(c.steiner=!0),r.push(U3(c));for(r.sort(R3),i=0;i<r.length;i++)B3(r[i],t),t=is(t,t.next);return t}function R3(n,e){return n.x-e.x}function B3(n,e){if(e=N3(n,e),e){let t=Yw(e,n);is(e,e.next),is(t,t.next)}}function N3(n,e){let t=e,A=n.x,r=n.y,i=-1/0,s;do{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<=A&&h>i){if(i=h,h===A){if(r===t.y)return t;if(r===t.next.y)return t.next}s=t.x<t.next.x?t:t.next}}t=t.next}while(t!==e);if(!s)return null;if(A===i)return s;let o=s,a=s.x,c=s.y,l=1/0,u;t=s;do A>=t.x&&t.x>=a&&A!==t.x&&ha(r<c?A:i,r,a,c,r<c?i:A,r,t.x,t.y)&&(u=Math.abs(r-t.y)/(A-t.x),ou(t,n)&&(u<l||u===l&&(t.x>s.x||t.x===s.x&&F3(s,t)))&&(s=t,l=u)),t=t.next;while(t!==o);return s}function F3(n,e){return Ht(n.prev,n,e.prev)<0&&Ht(e.next,n,n.next)<0}function G3(n,e,t,A){let r=n;do r.z===null&&(r.z=fy(r.x,r.y,e,t,A)),r.prevZ=r.prev,r.nextZ=r.next,r=r.next;while(r!==n);r.prevZ.nextZ=null,r.prevZ=null,k3(r)}function k3(n){let e,t,A,r,i,s,o,a,c=1;do{for(t=n,n=null,i=null,s=0;t;){for(s++,A=t,o=0,e=0;e<c&&(o++,A=A.nextZ,!!A);e++);for(a=c;o>0||a>0&&A;)o!==0&&(a===0||!A||t.z<=A.z)?(r=t,t=t.nextZ,o--):(r=A,A=A.nextZ,a--),i?i.nextZ=r:n=r,r.prevZ=i,i=r;t=A}i.nextZ=null,c*=2}while(s>1);return n}function fy(n,e,t,A,r){return n=32767*(n-t)*r,e=32767*(e-A)*r,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 U3(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 ha(n,e,t,A,r,i,s,o){return(r-s)*(e-o)-(n-s)*(i-o)>=0&&(n-s)*(A-o)-(t-s)*(e-o)>=0&&(t-s)*(i-o)-(r-s)*(A-o)>=0}function V3(n,e){return n.next.i!==e.i&&n.prev.i!==e.i&&!z3(n,e)&&(ou(n,e)&&ou(e,n)&&H3(n,e)&&(Ht(n.prev,n,e.prev)||Ht(n,e.prev,e))||tf(n,e)&&Ht(n.prev,n,n.next)>0&&Ht(e.prev,e,e.next)>0)}function Ht(n,e,t){return(e.y-n.y)*(t.x-e.x)-(e.x-n.x)*(t.y-e.y)}function tf(n,e){return n.x===e.x&&n.y===e.y}function jw(n,e,t,A){let r=Ed(Ht(n,e,t)),i=Ed(Ht(n,e,A)),s=Ed(Ht(t,A,n)),o=Ed(Ht(t,A,e));return!!(r!==i&&s!==o||r===0&&Md(n,t,e)||i===0&&Md(n,A,e)||s===0&&Md(t,n,A)||o===0&&Md(t,e,A))}function Md(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 Ed(n){return n>0?1:n<0?-1:0}function z3(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&&jw(t,t.next,n,e))return!0;t=t.next}while(t!==n);return!1}function ou(n,e){return Ht(n.prev,n,n.next)<0?Ht(n,e,n.next)>=0&&Ht(n,n.prev,e)>=0:Ht(n,e,n.prev)<0||Ht(n,n.next,e)<0}function H3(n,e){let t=n,A=!1,r=(n.x+e.x)/2,i=(n.y+e.y)/2;do t.y>i!=t.next.y>i&&t.next.y!==t.y&&r<(t.next.x-t.x)*(i-t.y)/(t.next.y-t.y)+t.x&&(A=!A),t=t.next;while(t!==n);return A}function Yw(n,e){let t=new py(n.i,n.x,n.y),A=new py(e.i,e.x,e.y),r=n.next,i=e.prev;return n.next=e,e.prev=n,t.next=r,r.prev=t,A.next=t,t.prev=A,i.next=A,A.prev=i,A}function mw(n,e,t,A){let r=new py(n,e,t);return A?(r.next=A.next,r.prev=A,A.next.prev=r,A.next=r):(r.prev=r,r.next=r),r}function au(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 py(n,e,t){this.i=n,this.x=e,this.y=t,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}function W3(n,e,t,A){let r=0;for(let i=e,s=t-A;i<t;i+=A)r+=(n[s]-n[i])*(n[i+1]+n[s+1]),s=i;return r}var Ma=class{static area(e){let t=e.length,A=0;for(let r=t-1,i=0;i<t;r=i++)A+=e[r].x*e[i].y-e[i].x*e[r].y;return A*.5}static isClockWise(e){return Ma.area(e)<0}static triangulateShape(e,t){let A=[],r=[],i=[];gw(e),yw(A,e);let s=e.length;t.forEach(gw);for(let a=0;a<t.length;a++)r.push(s),s+=t[a].length,yw(A,t[a]);let o=P3.triangulate(A,r);for(let a=0;a<o.length;a+=3)i.push(o.slice(a,a+3));return i}};function gw(n){let e=n.length;e>2&&n[e-1].equals(n[0])&&n.pop()}function yw(n,e){for(let t=0;t<e.length;t++)n.push(e[t].x),n.push(e[t].y)}var Ea=class extends Sa{constructor(e=1,t=0){let A=(1+Math.sqrt(5))/2,r=[-1,A,0,1,A,0,-1,-A,0,1,-A,0,0,-1,A,0,1,A,0,-1,-A,0,1,-A,A,0,-1,A,0,1,-A,0,-1,-A,0,1],i=[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,i,e,t),this.type="IcosahedronGeometry",this.parameters={radius:e,detail:t}}static fromJSON(e){return new Ea(e.radius,e.detail)}};var co=class extends Ie{constructor(e=1,t=32,A=16,r=0,i=Math.PI*2,s=0,o=Math.PI){super(),this.type="SphereGeometry",this.parameters={radius:e,widthSegments:t,heightSegments:A,phiStart:r,phiLength:i,thetaStart:s,thetaLength:o},t=Math.max(3,Math.floor(t)),A=Math.max(2,Math.floor(A));let a=Math.min(s+o,Math.PI),c=0,l=[],u=new S,h=new S,d=[],p=[],f=[],m=[];for(let y=0;y<=A;y++){let g=[],b=y/A,x=0;y==0&&s==0?x=.5/t:y==A&&a==Math.PI&&(x=-.5/t);for(let w=0;w<=t;w++){let T=w/t;u.x=-e*Math.cos(r+T*i)*Math.sin(s+b*o),u.y=e*Math.cos(s+b*o),u.z=e*Math.sin(r+T*i)*Math.sin(s+b*o),p.push(u.x,u.y,u.z),h.copy(u).normalize(),f.push(h.x,h.y,h.z),m.push(T+x,1-b),g.push(c++)}l.push(g)}for(let y=0;y<A;y++)for(let g=0;g<t;g++){let b=l[y][g+1],x=l[y][g],w=l[y+1][g],T=l[y+1][g+1];(y!==0||s>0)&&d.push(b,x,T),(y!==A-1||a<Math.PI)&&d.push(x,w,T)}this.setIndex(d),this.setAttribute("position",new Se(p,3)),this.setAttribute("normal",new Se(f,3)),this.setAttribute("uv",new Se(m,2))}static fromJSON(e){return new co(e.radius,e.widthSegments,e.heightSegments,e.phiStart,e.phiLength,e.thetaStart,e.thetaLength)}};var Ca=class extends Ie{constructor(e=1,t=.4,A=64,r=8,i=2,s=3){super(),this.type="TorusKnotGeometry",this.parameters={radius:e,tube:t,tubularSegments:A,radialSegments:r,p:i,q:s},A=Math.floor(A),r=Math.floor(r);let o=[],a=[],c=[],l=[],u=new S,h=new S,d=new S,p=new S,f=new S,m=new S,y=new S;for(let b=0;b<=A;++b){let x=b/A*i*Math.PI*2;g(x,i,s,e,d),g(x+.01,i,s,e,p),m.subVectors(p,d),y.addVectors(p,d),f.crossVectors(m,y),y.crossVectors(f,m),f.normalize(),y.normalize();for(let w=0;w<=r;++w){let T=w/r*Math.PI*2,M=-t*Math.cos(T),v=t*Math.sin(T);u.x=d.x+(M*y.x+v*f.x),u.y=d.y+(M*y.y+v*f.y),u.z=d.z+(M*y.z+v*f.z),a.push(u.x,u.y,u.z),h.subVectors(u,d).normalize(),c.push(h.x,h.y,h.z),l.push(b/A),l.push(w/r)}}for(let b=1;b<=A;b++)for(let x=1;x<=r;x++){let w=(r+1)*(b-1)+(x-1),T=(r+1)*b+(x-1),M=(r+1)*b+x,v=(r+1)*(b-1)+x;o.push(w,T,v),o.push(T,M,v)}this.setIndex(o),this.setAttribute("position",new Se(a,3)),this.setAttribute("normal",new Se(c,3)),this.setAttribute("uv",new Se(l,2));function g(b,x,w,T,M){let v=Math.cos(b),E=Math.sin(b),C=w/x*b,P=Math.cos(C);M.x=T*(2+P)*.5*v,M.y=T*(2+P)*E*.5,M.z=T*Math.sin(C)*.5}}static fromJSON(e){return new Ca(e.radius,e.tube,e.tubularSegments,e.radialSegments,e.p,e.q)}};var mA={arraySlice:function(n,e,t){return mA.isTypedArray(n)?new n.constructor(n.subarray(e,t!==void 0?t:n.length)):n.slice(e,t)},convertArray:function(n,e,t){return!n||!t&&n.constructor===e?n:typeof e.BYTES_PER_ELEMENT=="number"?new e(n):Array.prototype.slice.call(n)},isTypedArray:function(n){return ArrayBuffer.isView(n)&&!(n instanceof DataView)},getKeyframeOrder:function(n){function e(r,i){return n[r]-n[i]}let t=n.length,A=new Array(t);for(let r=0;r!==t;++r)A[r]=r;return A.sort(e),A},sortedArray:function(n,e,t){let A=n.length,r=new n.constructor(A);for(let i=0,s=0;s!==A;++i){let o=t[i]*e;for(let a=0;a!==e;++a)r[s++]=n[o+a]}return r},flattenJSON:function(n,e,t,A){let r=1,i=n[0];for(;i!==void 0&&i[A]===void 0;)i=n[r++];if(i===void 0)return;let s=i[A];if(s!==void 0)if(Array.isArray(s))do s=i[A],s!==void 0&&(e.push(i.time),t.push.apply(t,s)),i=n[r++];while(i!==void 0);else if(s.toArray!==void 0)do s=i[A],s!==void 0&&(e.push(i.time),s.toArray(t,t.length)),i=n[r++];while(i!==void 0);else do s=i[A],s!==void 0&&(e.push(i.time),t.push(s)),i=n[r++];while(i!==void 0)},subclip:function(n,e,t,A,r=30){let i=n.clone();i.name=e;let s=[];for(let a=0;a<i.tracks.length;++a){let c=i.tracks[a],l=c.getValueSize(),u=[],h=[];for(let d=0;d<c.times.length;++d){let p=c.times[d]*r;if(!(p<t||p>=A)){u.push(c.times[d]);for(let f=0;f<l;++f)h.push(c.values[d*l+f])}}u.length!==0&&(c.times=mA.convertArray(u,c.times.constructor),c.values=mA.convertArray(h,c.values.constructor),s.push(c))}i.tracks=s;let o=1/0;for(let a=0;a<i.tracks.length;++a)o>i.tracks[a].times[0]&&(o=i.tracks[a].times[0]);for(let a=0;a<i.tracks.length;++a)i.tracks[a].shift(-1*o);return i.resetDuration(),i},makeClipAdditive:function(n,e=0,t=n,A=30){A<=0&&(A=30);let r=t.tracks.length,i=e/A;for(let s=0;s<r;++s){let o=t.tracks[s],a=o.ValueTypeName;if(a==="bool"||a==="string")continue;let c=n.tracks.find(function(y){return y.name===o.name&&y.ValueTypeName===a});if(c===void 0)continue;let l=0,u=o.getValueSize();o.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline&&(l=u/3);let h=0,d=c.getValueSize();c.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline&&(h=d/3);let p=o.times.length-1,f;if(i<=o.times[0]){let y=l,g=u-l;f=mA.arraySlice(o.values,y,g)}else if(i>=o.times[p]){let y=p*u+l,g=y+u-l;f=mA.arraySlice(o.values,y,g)}else{let y=o.createInterpolant(),g=l,b=u-l;y.evaluate(i),f=mA.arraySlice(y.resultBuffer,g,b)}a==="quaternion"&&new Ke().fromArray(f).normalize().conjugate().toArray(f);let m=c.times.length;for(let y=0;y<m;++y){let g=y*d+h;if(a==="quaternion")Ke.multiplyQuaternionsFlat(c.values,g,f,0,c.values,g);else{let b=d-h*2;for(let x=0;x<b;++x)c.values[g+x]-=f[x]}}}return n.blendMode=vI,n}},Pa=class{constructor(e,t,A,r){this.parameterPositions=e,this._cachedIndex=0,this.resultBuffer=r!==void 0?r:new t.constructor(A),this.sampleValues=t,this.valueSize=A,this.settings=null,this.DefaultSettings_={}}evaluate(e){let t=this.parameterPositions,A=this._cachedIndex,r=t[A],i=t[A-1];A:{e:{let s;t:{n:if(!(e<r)){for(let o=A+2;;){if(r===void 0){if(e<i)break n;return A=t.length,this._cachedIndex=A,this.copySampleValue_(A-1)}if(A===o)break;if(i=r,r=t[++A],e<r)break e}s=t.length;break t}if(!(e>=i)){let o=t[1];e<o&&(A=2,i=o);for(let a=A-2;;){if(i===void 0)return this._cachedIndex=0,this.copySampleValue_(0);if(A===a)break;if(r=i,i=t[--A-1],e>=i)break e}s=A,A=0;break t}break A}for(;A<s;){let o=A+s>>>1;e<t[o]?s=o:A=o+1}if(r=t[A],i=t[A-1],i===void 0)return this._cachedIndex=0,this.copySampleValue_(0);if(r===void 0)return A=t.length,this._cachedIndex=A,this.copySampleValue_(A-1)}this._cachedIndex=A,this.intervalChanged_(A,i,r)}return this.interpolate_(A,i,e,r)}getSettings_(){return this.settings||this.DefaultSettings_}copySampleValue_(e){let t=this.resultBuffer,A=this.sampleValues,r=this.valueSize,i=e*r;for(let s=0;s!==r;++s)t[s]=A[i+s];return t}interpolate_(){throw new Error("call to abstract method")}intervalChanged_(){}},my=class extends Pa{constructor(e,t,A,r){super(e,t,A,r),this._weightPrev=-0,this._offsetPrev=-0,this._weightNext=-0,this._offsetNext=-0,this.DefaultSettings_={endingStart:Cb,endingEnd:Cb}}intervalChanged_(e,t,A){let r=this.parameterPositions,i=e-2,s=e+1,o=r[i],a=r[s];if(o===void 0)switch(this.getSettings_().endingStart){case Pb:i=e,o=2*t-A;break;case Db:i=r.length-2,o=t+r[i]-r[i+1];break;default:i=e,o=A}if(a===void 0)switch(this.getSettings_().endingEnd){case Pb:s=e,a=2*A-t;break;case Db:s=1,a=A+r[1]-r[0];break;default:s=e-1,a=t}let c=(A-t)*.5,l=this.valueSize;this._weightPrev=c/(t-o),this._weightNext=c/(a-A),this._offsetPrev=i*l,this._offsetNext=s*l}interpolate_(e,t,A,r){let i=this.resultBuffer,s=this.sampleValues,o=this.valueSize,a=e*o,c=a-o,l=this._offsetPrev,u=this._offsetNext,h=this._weightPrev,d=this._weightNext,p=(A-t)/(r-t),f=p*p,m=f*p,y=-h*m+2*h*f-h*p,g=(1+h)*m+(-1.5-2*h)*f+(-.5+h)*p+1,b=(-1-d)*m+(1.5+d)*f+.5*p,x=d*m-d*f;for(let w=0;w!==o;++w)i[w]=y*s[l+w]+g*s[c+w]+b*s[a+w]+x*s[u+w];return i}},gy=class extends Pa{constructor(e,t,A,r){super(e,t,A,r)}interpolate_(e,t,A,r){let i=this.resultBuffer,s=this.sampleValues,o=this.valueSize,a=e*o,c=a-o,l=(A-t)/(r-t),u=1-l;for(let h=0;h!==o;++h)i[h]=s[c+h]*u+s[a+h]*l;return i}},yy=class extends Pa{constructor(e,t,A,r){super(e,t,A,r)}interpolate_(e){return this.copySampleValue_(e-1)}},pr=class{constructor(e,t,A,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=mA.convertArray(t,this.TimeBufferType),this.values=mA.convertArray(A,this.ValueBufferType),this.setInterpolation(r||this.DefaultInterpolation)}static toJSON(e){let t=e.constructor,A;if(t.toJSON!==this.toJSON)A=t.toJSON(e);else{A={name:e.name,times:mA.convertArray(e.times,Array),values:mA.convertArray(e.values,Array)};let r=e.getInterpolation();r!==e.DefaultInterpolation&&(A.interpolation=r)}return A.type=e.ValueTypeName,A}InterpolantFactoryMethodDiscrete(e){return new yy(this.times,this.values,this.getValueSize(),e)}InterpolantFactoryMethodLinear(e){return new gy(this.times,this.values,this.getValueSize(),e)}InterpolantFactoryMethodSmooth(e){return new my(this.times,this.values,this.getValueSize(),e)}setInterpolation(e){let t;switch(e){case Ld:t=this.InterpolantFactoryMethodDiscrete;break;case _d:t=this.InterpolantFactoryMethodLinear;break;case ug:t=this.InterpolantFactoryMethodSmooth;break}if(t===void 0){let A="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(A);return console.warn("THREE.KeyframeTrack:",A),this}return this.createInterpolant=t,this}getInterpolation(){switch(this.createInterpolant){case this.InterpolantFactoryMethodDiscrete:return Ld;case this.InterpolantFactoryMethodLinear:return _d;case this.InterpolantFactoryMethodSmooth:return ug}}getValueSize(){return this.values.length/this.times.length}shift(e){if(e!==0){let t=this.times;for(let A=0,r=t.length;A!==r;++A)t[A]+=e}return this}scale(e){if(e!==1){let t=this.times;for(let A=0,r=t.length;A!==r;++A)t[A]*=e}return this}trim(e,t){let A=this.times,r=A.length,i=0,s=r-1;for(;i!==r&&A[i]<e;)++i;for(;s!==-1&&A[s]>t;)--s;if(++s,i!==0||s!==r){i>=s&&(s=Math.max(s,1),i=s-1);let o=this.getValueSize();this.times=mA.arraySlice(A,i,s),this.values=mA.arraySlice(this.values,i*o,s*o)}return this}validate(){let e=!0,t=this.getValueSize();t-Math.floor(t)!==0&&(console.error("THREE.KeyframeTrack: Invalid value size in track.",this),e=!1);let A=this.times,r=this.values,i=A.length;i===0&&(console.error("THREE.KeyframeTrack: Track is empty.",this),e=!1);let s=null;for(let o=0;o!==i;o++){let a=A[o];if(typeof a=="number"&&isNaN(a)){console.error("THREE.KeyframeTrack: Time is not a valid number.",this,o,a),e=!1;break}if(s!==null&&s>a){console.error("THREE.KeyframeTrack: Out of order keys.",this,o,a,s),e=!1;break}s=a}if(r!==void 0&&mA.isTypedArray(r))for(let o=0,a=r.length;o!==a;++o){let c=r[o];if(isNaN(c)){console.error("THREE.KeyframeTrack: Value is not a valid number.",this,o,c),e=!1;break}}return e}optimize(){let e=mA.arraySlice(this.times),t=mA.arraySlice(this.values),A=this.getValueSize(),r=this.getInterpolation()===ug,i=e.length-1,s=1;for(let o=1;o<i;++o){let a=!1,c=e[o],l=e[o+1];if(c!==l&&(o!==1||c!==e[0]))if(r)a=!0;else{let u=o*A,h=u-A,d=u+A;for(let p=0;p!==A;++p){let f=t[u+p];if(f!==t[h+p]||f!==t[d+p]){a=!0;break}}}if(a){if(o!==s){e[s]=e[o];let u=o*A,h=s*A;for(let d=0;d!==A;++d)t[h+d]=t[u+d]}++s}}if(i>0){e[s]=e[i];for(let o=i*A,a=s*A,c=0;c!==A;++c)t[a+c]=t[o+c];++s}return s!==e.length?(this.times=mA.arraySlice(e,0,s),this.values=mA.arraySlice(t,0,s*A)):(this.times=e,this.values=t),this}clone(){let e=mA.arraySlice(this.times,0),t=mA.arraySlice(this.values,0),A=this.constructor,r=new A(this.name,e,t);return r.createInterpolant=this.createInterpolant,r}};pr.prototype.TimeBufferType=Float32Array;pr.prototype.ValueBufferType=Float32Array;pr.prototype.DefaultInterpolation=_d;var uo=class extends pr{};uo.prototype.ValueTypeName="bool";uo.prototype.ValueBufferType=Array;uo.prototype.DefaultInterpolation=Ld;uo.prototype.InterpolantFactoryMethodLinear=void 0;uo.prototype.InterpolantFactoryMethodSmooth=void 0;var vy=class extends pr{};vy.prototype.ValueTypeName="color";var xy=class extends pr{};xy.prototype.ValueTypeName="number";var by=class extends Pa{constructor(e,t,A,r){super(e,t,A,r)}interpolate_(e,t,A,r){let i=this.resultBuffer,s=this.sampleValues,o=this.valueSize,a=(A-t)/(r-t),c=e*o;for(let l=c+o;c!==l;c+=4)Ke.slerpFlat(i,0,s,c-o,s,c,a);return i}},lu=class extends pr{InterpolantFactoryMethodLinear(e){return new by(this.times,this.values,this.getValueSize(),e)}};lu.prototype.ValueTypeName="quaternion";lu.prototype.DefaultInterpolation=_d;lu.prototype.InterpolantFactoryMethodSmooth=void 0;var ho=class extends pr{};ho.prototype.ValueTypeName="string";ho.prototype.ValueBufferType=Array;ho.prototype.DefaultInterpolation=Ld;ho.prototype.InterpolantFactoryMethodLinear=void 0;ho.prototype.InterpolantFactoryMethodSmooth=void 0;var wy=class extends pr{};wy.prototype.ValueTypeName="vector";var vw={enabled:!1,files:{},add:function(n,e){this.enabled!==!1&&(this.files[n]=e)},get:function(n){if(this.enabled!==!1)return this.files[n]},remove:function(n){delete this.files[n]},clear:function(){this.files={}}},cu=class{constructor(e,t,A){let r=this,i=!1,s=0,o=0,a,c=[];this.onStart=void 0,this.onLoad=e,this.onProgress=t,this.onError=A,this.itemStart=function(l){o++,i===!1&&r.onStart!==void 0&&r.onStart(l,s,o),i=!0},this.itemEnd=function(l){s++,r.onProgress!==void 0&&r.onProgress(l,s,o),s===o&&(i=!1,r.onLoad!==void 0&&r.onLoad())},this.itemError=function(l){r.onError!==void 0&&r.onError(l)},this.resolveURL=function(l){return a?a(l):l},this.setURLModifier=function(l){return a=l,this},this.addHandler=function(l,u){return c.push(l,u),this},this.removeHandler=function(l){let u=c.indexOf(l);return u!==-1&&c.splice(u,2),this},this.getHandler=function(l){for(let u=0,h=c.length;u<h;u+=2){let d=c[u],p=c[u+1];if(d.global&&(d.lastIndex=0),d.test(l))return p}return null}}},j3=new cu,Da=class{constructor(e){this.manager=e!==void 0?e:j3,this.crossOrigin="anonymous",this.withCredentials=!1,this.path="",this.resourcePath="",this.requestHeader={}}load(){}loadAsync(e,t){let A=this;return new Promise(function(r,i){A.load(e,r,t,i)})}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}},xi={},Ia=class extends Da{constructor(e){super(e)}load(e,t,A,r){e===void 0&&(e=""),this.path!==void 0&&(e=this.path+e),e=this.manager.resolveURL(e);let i=vw.get(e);if(i!==void 0)return this.manager.itemStart(e),setTimeout(()=>{t&&t(i),this.manager.itemEnd(e)},0),i;if(xi[e]!==void 0){xi[e].push({onLoad:t,onProgress:A,onError:r});return}xi[e]=[],xi[e].push({onLoad:t,onProgress:A,onError:r});let s=new Request(e,{headers:new Headers(this.requestHeader),credentials:this.withCredentials?"include":"same-origin"}),o=this.mimeType,a=this.responseType;fetch(s).then(c=>{if(c.status===200||c.status===0){if(c.status===0&&console.warn("THREE.FileLoader: HTTP Status 0 received."),typeof ReadableStream>"u"||c.body===void 0||c.body.getReader===void 0)return c;let l=xi[e],u=c.body.getReader(),h=c.headers.get("Content-Length"),d=h?parseInt(h):0,p=d!==0,f=0,m=new ReadableStream({start(y){g();function g(){u.read().then(({done:b,value:x})=>{if(b)y.close();else{f+=x.byteLength;let w=new ProgressEvent("progress",{lengthComputable:p,loaded:f,total:d});for(let T=0,M=l.length;T<M;T++){let v=l[T];v.onProgress&&v.onProgress(w)}y.enqueue(x),g()}})}}});return new Response(m)}else throw Error(`fetch for "${c.url}" responded with ${c.status}: ${c.statusText}`)}).then(c=>{switch(a){case"arraybuffer":return c.arrayBuffer();case"blob":return c.blob();case"document":return c.text().then(l=>new DOMParser().parseFromString(l,o));case"json":return c.json();default:if(o===void 0)return c.text();{let u=/charset="?([^;"\s]*)"?/i.exec(o),h=u&&u[1]?u[1].toLowerCase():void 0,d=new TextDecoder(h);return c.arrayBuffer().then(p=>d.decode(p))}}}).then(c=>{vw.add(e,c);let l=xi[e];delete xi[e];for(let u=0,h=l.length;u<h;u++){let d=l[u];d.onLoad&&d.onLoad(c)}}).catch(c=>{let l=xi[e];if(l===void 0)throw this.manager.itemError(e),c;delete xi[e];for(let u=0,h=l.length;u<h;u++){let d=l[u];d.onError&&d.onError(c)}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}};var La=class extends ht{constructor(e,t=1){super(),this.isLight=!0,this.type="Light",this.color=new _e(e),this.intensity=t}dispose(){}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,this.groundColor!==void 0&&(t.object.groundColor=this.groundColor.getHex()),this.distance!==void 0&&(t.object.distance=this.distance),this.angle!==void 0&&(t.object.angle=this.angle),this.decay!==void 0&&(t.object.decay=this.decay),this.penumbra!==void 0&&(t.object.penumbra=this.penumbra),this.shadow!==void 0&&(t.object.shadow=this.shadow.toJSON()),t}},fo=class extends La{constructor(e,t,A){super(e,A),this.isHemisphereLight=!0,this.type="HemisphereLight",this.position.copy(ht.DefaultUp),this.updateMatrix(),this.groundColor=new _e(t)}copy(e,t){return super.copy(e,t),this.groundColor.copy(e.groundColor),this}},xw=new he,bw=new S,ww=new S,uu=class{constructor(e){this.camera=e,this.bias=0,this.normalBias=0,this.radius=1,this.blurSamples=8,this.mapSize=new G(512,512),this.map=null,this.mapPass=null,this.matrix=new he,this.autoUpdate=!0,this.needsUpdate=!1,this._frustum=new nu,this._frameExtents=new G(1,1),this._viewportCount=1,this._viewports=[new Ve(0,0,1,1)]}getViewportCount(){return this._viewportCount}getFrustum(){return this._frustum}updateMatrices(e){let t=this.camera,A=this.matrix;bw.setFromMatrixPosition(e.matrixWorld),t.position.copy(bw),ww.setFromMatrixPosition(e.target.matrixWorld),t.lookAt(ww),t.updateMatrixWorld(),xw.multiplyMatrices(t.projectionMatrix,t.matrixWorldInverse),this._frustum.setFromProjectionMatrix(xw),A.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),A.multiply(t.projectionMatrix),A.multiply(t.matrixWorldInverse)}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.bias=e.bias,this.radius=e.radius,this.mapSize.copy(e.mapSize),this}clone(){return new this.constructor().copy(this)}toJSON(){let e={};return this.bias!==0&&(e.bias=this.bias),this.normalBias!==0&&(e.normalBias=this.normalBias),this.radius!==1&&(e.radius=this.radius),(this.mapSize.x!==512||this.mapSize.y!==512)&&(e.mapSize=this.mapSize.toArray()),e.camera=this.camera.toJSON(!1).object,delete e.camera.matrix,e}},Sy=class extends uu{constructor(){super(new iA(50,1,.5,500)),this.isSpotLightShadow=!0,this.focus=1}updateMatrices(e){let t=this.camera,A=eu*2*e.angle*this.focus,r=this.mapSize.width/this.mapSize.height,i=e.distance||t.far;(A!==t.fov||r!==t.aspect||i!==t.far)&&(t.fov=A,t.aspect=r,t.far=i,t.updateProjectionMatrix()),super.updateMatrices(e)}copy(e){return super.copy(e),this.focus=e.focus,this}},Hd=class extends La{constructor(e,t,A=0,r=Math.PI/3,i=0,s=1){super(e,t),this.isSpotLight=!0,this.type="SpotLight",this.position.copy(ht.DefaultUp),this.updateMatrix(),this.target=new ht,this.distance=A,this.angle=r,this.penumbra=i,this.decay=s,this.shadow=new Sy}get power(){return this.intensity*Math.PI}set power(e){this.intensity=e/Math.PI}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.shadow=e.shadow.clone(),this}},Sw=new he,jc=new S,zg=new S,Ty=class extends uu{constructor(){super(new iA(90,1,.5,500)),this.isPointLightShadow=!0,this._frameExtents=new G(4,2),this._viewportCount=6,this._viewports=[new Ve(2,1,1,1),new Ve(0,1,1,1),new Ve(3,1,1,1),new Ve(1,1,1,1),new Ve(3,0,1,1),new Ve(1,0,1,1)],this._cubeDirections=[new S(1,0,0),new S(-1,0,0),new S(0,0,1),new S(0,0,-1),new S(0,1,0),new S(0,-1,0)],this._cubeUps=[new S(0,1,0),new S(0,1,0),new S(0,1,0),new S(0,1,0),new S(0,0,1),new S(0,0,-1)]}updateMatrices(e,t=0){let A=this.camera,r=this.matrix,i=e.distance||A.far;i!==A.far&&(A.far=i,A.updateProjectionMatrix()),jc.setFromMatrixPosition(e.matrixWorld),A.position.copy(jc),zg.copy(A.position),zg.add(this._cubeDirections[t]),A.up.copy(this._cubeUps[t]),A.lookAt(zg),A.updateMatrixWorld(),r.makeTranslation(-jc.x,-jc.y,-jc.z),Sw.multiplyMatrices(A.projectionMatrix,A.matrixWorldInverse),this._frustum.setFromProjectionMatrix(Sw)}},Wd=class extends La{constructor(e,t,A=0,r=1){super(e,t),this.isPointLight=!0,this.type="PointLight",this.distance=A,this.decay=r,this.shadow=new Ty}get power(){return this.intensity*4*Math.PI}set power(e){this.intensity=e/(4*Math.PI)}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}},My=class extends uu{constructor(){super(new ya(-5,5,5,-5,.5,500)),this.isDirectionalLightShadow=!0}},jd=class extends La{constructor(e,t){super(e,t),this.isDirectionalLight=!0,this.type="DirectionalLight",this.position.copy(ht.DefaultUp),this.updateMatrix(),this.target=new ht,this.shadow=new My}dispose(){this.shadow.dispose()}copy(e){return super.copy(e),this.target=e.target.clone(),this.shadow=e.shadow.clone(),this}};var Ey=class extends Ie{constructor(){super(),this.isInstancedBufferGeometry=!0,this.type="InstancedBufferGeometry",this.instanceCount=1/0}copy(e){return super.copy(e),this.instanceCount=e.instanceCount,this}clone(){return new this.constructor().copy(this)}toJSON(){let e=super.toJSON(this);return e.instanceCount=this.instanceCount,e.isInstancedBufferGeometry=!0,e}},_a=class extends Da{constructor(e){super(e)}load(e,t,A,r){let i=this,s=new Ia(i.manager);s.setPath(i.path),s.setRequestHeader(i.requestHeader),s.setWithCredentials(i.withCredentials),s.load(e,function(o){try{t(i.parse(JSON.parse(o)))}catch(a){r?r(a):console.error(a),i.manager.itemError(e)}},A,r)}parse(e){let t={},A={};function r(d,p){if(t[p]!==void 0)return t[p];let m=d.interleavedBuffers[p],y=i(d,m.buffer),g=Ad(m.type,y),b=new Ud(g,m.stride);return b.uuid=m.uuid,t[p]=b,b}function i(d,p){if(A[p]!==void 0)return A[p];let m=d.arrayBuffers[p],y=new Uint32Array(m).buffer;return A[p]=y,y}let s=e.isInstancedBufferGeometry?new Ey:new Ie,o=e.data.index;if(o!==void 0){let d=Ad(o.type,o.array);s.setIndex(new Ge(d,1))}let a=e.data.attributes;for(let d in a){let p=a[d],f;if(p.isInterleavedBufferAttribute){let m=r(e.data,p.data);f=new io(m,p.itemSize,p.offset,p.normalized)}else{let m=Ad(p.type,p.array),y=p.isInstancedBufferAttribute?Vd:Ge;f=new y(m,p.itemSize,p.normalized)}p.name!==void 0&&(f.name=p.name),p.usage!==void 0&&f.setUsage(p.usage),p.updateRange!==void 0&&(f.updateRange.offset=p.updateRange.offset,f.updateRange.count=p.updateRange.count),s.setAttribute(d,f)}let c=e.data.morphAttributes;if(c)for(let d in c){let p=c[d],f=[];for(let m=0,y=p.length;m<y;m++){let g=p[m],b;if(g.isInterleavedBufferAttribute){let x=r(e.data,g.data);b=new io(x,g.itemSize,g.offset,g.normalized)}else{let x=Ad(g.type,g.array);b=new Ge(x,g.itemSize,g.normalized)}g.name!==void 0&&(b.name=g.name),f.push(b)}s.morphAttributes[d]=f}e.data.morphTargetsRelative&&(s.morphTargetsRelative=!0);let u=e.data.groups||e.data.drawcalls||e.data.offsets;if(u!==void 0)for(let d=0,p=u.length;d!==p;++d){let f=u[d];s.addGroup(f.start,f.count,f.materialIndex)}let h=e.data.boundingSphere;if(h!==void 0){let d=new S;h.center!==void 0&&d.fromArray(h.center),s.boundingSphere=new DA(d,h.radius)}return e.name&&(s.name=e.name),e.userData&&(s.userData=e.userData),s}};var Yd=class{constructor(e=!0){this.autoStart=e,this.startTime=0,this.oldTime=0,this.elapsedTime=0,this.running=!1}start(){this.startTime=Tw(),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=Tw();e=(t-this.oldTime)/1e3,this.oldTime=t,this.elapsedTime+=e}return e}};function Tw(){return(typeof performance>"u"?Date:performance).now()}var By="\\[\\]\\.:\\/",Y3=new RegExp("["+By+"]","g"),Ny="[^"+By+"]",q3="[^"+By.replace("\\.","")+"]",X3=/((?:WC+[\/:])*)/.source.replace("WC",Ny),Q3=/(WCOD+)?/.source.replace("WCOD",q3),Z3=/(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC",Ny),K3=/\.(WC+)(?:\[(.+)\])?/.source.replace("WC",Ny),J3=new RegExp("^"+X3+Q3+Z3+K3+"$"),$3=["material","materials","bones"],Cy=class{constructor(e,t,A){let r=A||Et.parseTrackName(t);this._targetGroup=e,this._bindings=e.subscribe_(t,r)}getValue(e,t){this.bind();let A=this._targetGroup.nCachedObjects_,r=this._bindings[A];r!==void 0&&r.getValue(e,t)}setValue(e,t){let A=this._bindings;for(let r=this._targetGroup.nCachedObjects_,i=A.length;r!==i;++r)A[r].setValue(e,t)}bind(){let e=this._bindings;for(let t=this._targetGroup.nCachedObjects_,A=e.length;t!==A;++t)e[t].bind()}unbind(){let e=this._bindings;for(let t=this._targetGroup.nCachedObjects_,A=e.length;t!==A;++t)e[t].unbind()}},Et=class{constructor(e,t,A){this.path=t,this.parsedPath=A||Et.parseTrackName(t),this.node=Et.findNode(e,this.parsedPath.nodeName)||e,this.rootNode=e,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}static create(e,t,A){return e&&e.isAnimationObjectGroup?new Et.Composite(e,t,A):new Et(e,t,A)}static sanitizeNodeName(e){return e.replace(/\s/g,"_").replace(Y3,"")}static parseTrackName(e){let t=J3.exec(e);if(t===null)throw new Error("PropertyBinding: Cannot parse trackName: "+e);let A={nodeName:t[2],objectName:t[3],objectIndex:t[4],propertyName:t[5],propertyIndex:t[6]},r=A.nodeName&&A.nodeName.lastIndexOf(".");if(r!==void 0&&r!==-1){let i=A.nodeName.substring(r+1);$3.indexOf(i)!==-1&&(A.nodeName=A.nodeName.substring(0,r),A.objectName=i)}if(A.propertyName===null||A.propertyName.length===0)throw new Error("PropertyBinding: can not parse propertyName from trackName: "+e);return A}static findNode(e,t){if(t===void 0||t===""||t==="."||t===-1||t===e.name||t===e.uuid)return e;if(e.skeleton){let A=e.skeleton.getBoneByName(t);if(A!==void 0)return A}if(e.children){let A=function(i){for(let s=0;s<i.length;s++){let o=i[s];if(o.name===t||o.uuid===t)return o;let a=A(o.children);if(a)return a}return null},r=A(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 A=this.resolvedProperty;for(let r=0,i=A.length;r!==i;++r)e[t++]=A[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 A=this.resolvedProperty;for(let r=0,i=A.length;r!==i;++r)A[r]=e[t++]}_setValue_array_setNeedsUpdate(e,t){let A=this.resolvedProperty;for(let r=0,i=A.length;r!==i;++r)A[r]=e[t++];this.targetObject.needsUpdate=!0}_setValue_array_setMatrixWorldNeedsUpdate(e,t){let A=this.resolvedProperty;for(let r=0,i=A.length;r!==i;++r)A[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,A=t.objectName,r=t.propertyName,i=t.propertyIndex;if(e||(e=Et.findNode(this.rootNode,t.nodeName)||this.rootNode,this.node=e),this.getValue=this._getValue_unavailable,this.setValue=this._setValue_unavailable,!e){console.error("THREE.PropertyBinding: Trying to update node for track: "+this.path+" but it wasn't found.");return}if(A){let c=t.objectIndex;switch(A){case"materials":if(!e.material){console.error("THREE.PropertyBinding: Can not bind to material as node does not have a material.",this);return}if(!e.material.materials){console.error("THREE.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){console.error("THREE.PropertyBinding: Can not bind to bones as node does not have a skeleton.",this);return}e=e.skeleton.bones;for(let l=0;l<e.length;l++)if(e[l].name===c){c=l;break}break;default:if(e[A]===void 0){console.error("THREE.PropertyBinding: Can not bind to objectName of node undefined.",this);return}e=e[A]}if(c!==void 0){if(e[c]===void 0){console.error("THREE.PropertyBinding: Trying to bind to objectIndex of objectName, but is undefined.",this,e);return}e=e[c]}}let s=e[r];if(s===void 0){let c=t.nodeName;console.error("THREE.PropertyBinding: Trying to update property for track: "+c+"."+r+" but it wasn't found.",e);return}let o=this.Versioning.None;this.targetObject=e,e.needsUpdate!==void 0?o=this.Versioning.NeedsUpdate:e.matrixWorldNeedsUpdate!==void 0&&(o=this.Versioning.MatrixWorldNeedsUpdate);let a=this.BindingType.Direct;if(i!==void 0){if(r==="morphTargetInfluences"){if(!e.geometry){console.error("THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.",this);return}if(!e.geometry.morphAttributes){console.error("THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.morphAttributes.",this);return}e.morphTargetDictionary[i]!==void 0&&(i=e.morphTargetDictionary[i])}a=this.BindingType.ArrayElement,this.resolvedProperty=s,this.propertyIndex=i}else s.fromArray!==void 0&&s.toArray!==void 0?(a=this.BindingType.HasFromToArray,this.resolvedProperty=s):Array.isArray(s)?(a=this.BindingType.EntireArray,this.resolvedProperty=s):this.propertyName=r;this.getValue=this.GetterByBindingType[a],this.setValue=this.SetterByBindingTypeAndVersioning[a][o]}unbind(){this.node=null,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}};Et.Composite=Cy;Et.prototype.BindingType={Direct:0,EntireArray:1,ArrayElement:2,HasFromToArray:3};Et.prototype.Versioning={None:0,NeedsUpdate:1,MatrixWorldNeedsUpdate:2};Et.prototype.GetterByBindingType=[Et.prototype._getValue_direct,Et.prototype._getValue_array,Et.prototype._getValue_arrayElement,Et.prototype._getValue_toArray];Et.prototype.SetterByBindingTypeAndVersioning=[[Et.prototype._setValue_direct,Et.prototype._setValue_direct_setNeedsUpdate,Et.prototype._setValue_direct_setMatrixWorldNeedsUpdate],[Et.prototype._setValue_array,Et.prototype._setValue_array_setNeedsUpdate,Et.prototype._setValue_array_setMatrixWorldNeedsUpdate],[Et.prototype._setValue_arrayElement,Et.prototype._setValue_arrayElement_setNeedsUpdate,Et.prototype._setValue_arrayElement_setMatrixWorldNeedsUpdate],[Et.prototype._setValue_fromArray,Et.prototype._setValue_fromArray_setNeedsUpdate,Et.prototype._setValue_fromArray_setMatrixWorldNeedsUpdate]];var we=class{constructor(e){typeof e=="string"&&(console.warn("THREE.Uniform: Type parameter is no longer needed."),e=arguments[1]),this.value=e}clone(){return new we(this.value.clone===void 0?this.value:this.value.clone())}};var Oa=class{constructor(e,t,A=0,r=1/0){this.ray=new dr(e,t),this.near=A,this.far=r,this.camera=null,this.layers=new tu,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.near+t.far)/(t.near-t.far)).unproject(t),this.ray.direction.set(0,0,-1).transformDirection(t.matrixWorld),this.camera=t):console.error("THREE.Raycaster: Unsupported camera type: "+t.type)}intersectObject(e,t=!0,A=[]){return Py(e,this,A,t),A.sort(Mw),A}intersectObjects(e,t=!0,A=[]){for(let r=0,i=e.length;r<i;r++)Py(e[r],this,A,t);return A.sort(Mw),A}};function Mw(n,e){return n.distance-e.distance}function Py(n,e,t,A){if(n.layers.test(e.layers)&&n.raycast(e,t),A===!0){let r=n.children;for(let i=0,s=r.length;i<s;i++)Py(r[i],e,t,!0)}}var hu=class{constructor(e=1,t=0,A=0){return this.radius=e,this.phi=t,this.theta=A,this}set(e,t,A){return this.radius=e,this.phi=t,this.theta=A,this}copy(e){return this.radius=e.radius,this.phi=e.phi,this.theta=e.theta,this}makeSafe(){return this.phi=Math.max(1e-6,Math.min(Math.PI-1e-6,this.phi)),this}setFromVector3(e){return this.setFromCartesianCoords(e.x,e.y,e.z)}setFromCartesianCoords(e,t,A){return this.radius=Math.sqrt(e*e+t*t+A*A),this.radius===0?(this.theta=0,this.phi=0):(this.theta=Math.atan2(e,A),this.phi=Math.acos(gA(t/this.radius,-1,1))),this}clone(){return new this.constructor().copy(this)}};var Ew=new G,qd=class{constructor(e=new G(1/0,1/0),t=new G(-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,A=e.length;t<A;t++)this.expandByPoint(e[t]);return this}setFromCenterAndSize(e,t){let A=Ew.copy(t).multiplyScalar(.5);return this.min.copy(e).sub(A),this.max.copy(e).add(A),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 Ew.copy(e).clamp(this.min,this.max).sub(e).length()}intersect(e){return this.min.max(e.min),this.max.min(e.max),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)}},Cw=new S,Cd=new S,vA=class{constructor(e=new S,t=new S){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){Cw.subVectors(e,this.start),Cd.subVectors(this.end,this.start);let A=Cd.dot(Cd),i=Cd.dot(Cw)/A;return t&&(i=gA(i,0,1)),i}closestPointToPoint(e,t,A){let r=this.closestPointToPointParameter(e,t);return this.delta(A).multiplyScalar(r).add(this.start)}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)}},Pw=new S,Xd=class extends ht{constructor(e,t){super(),this.light=e,this.light.updateMatrixWorld(),this.matrix=e.matrixWorld,this.matrixAutoUpdate=!1,this.color=t;let A=new Ie,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,o=1,a=32;s<a;s++,o++){let c=s/a*Math.PI*2,l=o/a*Math.PI*2;r.push(Math.cos(c),Math.sin(c),1,Math.cos(l),Math.sin(l),1)}A.setAttribute("position",new Se(r,3));let i=new jn({fog:!1,toneMapped:!1});this.cone=new rs(A,i),this.add(this.cone),this.update()}dispose(){this.cone.geometry.dispose(),this.cone.material.dispose()}update(){this.light.updateMatrixWorld();let e=this.light.distance?this.light.distance:1e3,t=e*Math.tan(this.light.angle);this.cone.scale.set(t,t,e),Pw.setFromMatrixPosition(this.light.target.matrixWorld),this.cone.lookAt(Pw),this.color!==void 0?this.cone.material.color.set(this.color):this.cone.material.color.copy(this.light.color)}};var Qd=class extends sA{constructor(e,t,A){let r=new co(t,4,2),i=new Au({wireframe:!0,fog:!1,toneMapped:!1});super(r,i),this.light=e,this.light.updateMatrixWorld(),this.color=A,this.type="PointLightHelper",this.matrix=this.light.matrixWorld,this.matrixAutoUpdate=!1,this.update()}dispose(){this.geometry.dispose(),this.material.dispose()}update(){this.color!==void 0?this.material.color.set(this.color):this.material.color.copy(this.light.color)}};var Dw=new S,Pd=new S,Iw=new S,Zd=class extends ht{constructor(e,t,A){super(),this.light=e,this.light.updateMatrixWorld(),this.matrix=e.matrixWorld,this.matrixAutoUpdate=!1,this.color=A,t===void 0&&(t=1);let r=new Ie;r.setAttribute("position",new Se([-t,t,0,t,t,0,t,-t,0,-t,-t,0,-t,t,0],3));let i=new jn({fog:!1,toneMapped:!1});this.lightPlane=new so(r,i),this.add(this.lightPlane),r=new Ie,r.setAttribute("position",new Se([0,0,0,0,0,1],3)),this.targetLine=new so(r,i),this.add(this.targetLine),this.update()}dispose(){this.lightPlane.geometry.dispose(),this.lightPlane.material.dispose(),this.targetLine.geometry.dispose(),this.targetLine.material.dispose()}update(){Dw.setFromMatrixPosition(this.light.matrixWorld),Pd.setFromMatrixPosition(this.light.target.matrixWorld),Iw.subVectors(Pd,Dw),this.lightPlane.lookAt(Pd),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(Pd),this.targetLine.scale.z=Iw.length()}},Dd=new S,Qt=new fr,qn=class extends rs{constructor(e){let t=new Ie,A=new jn({color:16777215,vertexColors:!0,toneMapped:!1}),r=[],i=[],s={};o("n1","n2"),o("n2","n4"),o("n4","n3"),o("n3","n1"),o("f1","f2"),o("f2","f4"),o("f4","f3"),o("f3","f1"),o("n1","f1"),o("n2","f2"),o("n3","f3"),o("n4","f4"),o("p","n1"),o("p","n2"),o("p","n3"),o("p","n4"),o("u1","u2"),o("u2","u3"),o("u3","u1"),o("c","t"),o("p","c"),o("cn1","cn2"),o("cn3","cn4"),o("cf1","cf2"),o("cf3","cf4");function o(p,f){a(p),a(f)}function a(p){r.push(0,0,0),i.push(0,0,0),s[p]===void 0&&(s[p]=[]),s[p].push(r.length/3-1)}t.setAttribute("position",new Se(r,3)),t.setAttribute("color",new Se(i,3)),super(t,A),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 c=new _e(16755200),l=new _e(16711680),u=new _e(43775),h=new _e(16777215),d=new _e(3355443);this.setColors(c,l,u,h,d)}setColors(e,t,A,r,i){let o=this.geometry.getAttribute("color");o.setXYZ(0,e.r,e.g,e.b),o.setXYZ(1,e.r,e.g,e.b),o.setXYZ(2,e.r,e.g,e.b),o.setXYZ(3,e.r,e.g,e.b),o.setXYZ(4,e.r,e.g,e.b),o.setXYZ(5,e.r,e.g,e.b),o.setXYZ(6,e.r,e.g,e.b),o.setXYZ(7,e.r,e.g,e.b),o.setXYZ(8,e.r,e.g,e.b),o.setXYZ(9,e.r,e.g,e.b),o.setXYZ(10,e.r,e.g,e.b),o.setXYZ(11,e.r,e.g,e.b),o.setXYZ(12,e.r,e.g,e.b),o.setXYZ(13,e.r,e.g,e.b),o.setXYZ(14,e.r,e.g,e.b),o.setXYZ(15,e.r,e.g,e.b),o.setXYZ(16,e.r,e.g,e.b),o.setXYZ(17,e.r,e.g,e.b),o.setXYZ(18,e.r,e.g,e.b),o.setXYZ(19,e.r,e.g,e.b),o.setXYZ(20,e.r,e.g,e.b),o.setXYZ(21,e.r,e.g,e.b),o.setXYZ(22,e.r,e.g,e.b),o.setXYZ(23,e.r,e.g,e.b),o.setXYZ(24,t.r,t.g,t.b),o.setXYZ(25,t.r,t.g,t.b),o.setXYZ(26,t.r,t.g,t.b),o.setXYZ(27,t.r,t.g,t.b),o.setXYZ(28,t.r,t.g,t.b),o.setXYZ(29,t.r,t.g,t.b),o.setXYZ(30,t.r,t.g,t.b),o.setXYZ(31,t.r,t.g,t.b),o.setXYZ(32,A.r,A.g,A.b),o.setXYZ(33,A.r,A.g,A.b),o.setXYZ(34,A.r,A.g,A.b),o.setXYZ(35,A.r,A.g,A.b),o.setXYZ(36,A.r,A.g,A.b),o.setXYZ(37,A.r,A.g,A.b),o.setXYZ(38,r.r,r.g,r.b),o.setXYZ(39,r.r,r.g,r.b),o.setXYZ(40,i.r,i.g,i.b),o.setXYZ(41,i.r,i.g,i.b),o.setXYZ(42,i.r,i.g,i.b),o.setXYZ(43,i.r,i.g,i.b),o.setXYZ(44,i.r,i.g,i.b),o.setXYZ(45,i.r,i.g,i.b),o.setXYZ(46,i.r,i.g,i.b),o.setXYZ(47,i.r,i.g,i.b),o.setXYZ(48,i.r,i.g,i.b),o.setXYZ(49,i.r,i.g,i.b),o.needsUpdate=!0}update(){let e=this.geometry,t=this.pointMap,A=1,r=1;Qt.projectionMatrixInverse.copy(this.camera.projectionMatrixInverse),rA("c",t,e,Qt,0,0,-1),rA("t",t,e,Qt,0,0,1),rA("n1",t,e,Qt,-A,-r,-1),rA("n2",t,e,Qt,A,-r,-1),rA("n3",t,e,Qt,-A,r,-1),rA("n4",t,e,Qt,A,r,-1),rA("f1",t,e,Qt,-A,-r,1),rA("f2",t,e,Qt,A,-r,1),rA("f3",t,e,Qt,-A,r,1),rA("f4",t,e,Qt,A,r,1),rA("u1",t,e,Qt,A*.7,r*1.1,-1),rA("u2",t,e,Qt,-A*.7,r*1.1,-1),rA("u3",t,e,Qt,0,r*2,-1),rA("cf1",t,e,Qt,-A,0,1),rA("cf2",t,e,Qt,A,0,1),rA("cf3",t,e,Qt,0,-r,1),rA("cf4",t,e,Qt,0,r,1),rA("cn1",t,e,Qt,-A,0,-1),rA("cn2",t,e,Qt,A,0,-1),rA("cn3",t,e,Qt,0,-r,-1),rA("cn4",t,e,Qt,0,r,-1),e.getAttribute("position").needsUpdate=!0}dispose(){this.geometry.dispose(),this.material.dispose()}};function rA(n,e,t,A,r,i,s){Dd.set(r,i,s).unproject(A);let o=e[n];if(o!==void 0){let a=t.getAttribute("position");for(let c=0,l=o.length;c<l;c++)a.setXYZ(o[c],Dd.x,Dd.y,Dd.z)}}var po=class extends rs{constructor(e,t=16776960){let A=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],i=new Ie;i.setIndex(new Ge(A,1)),i.setAttribute("position",new Se(r,3)),super(i,new jn({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))}};var Kd=class extends rs{constructor(e=1){let t=[0,0,0,e,0,0,0,0,0,0,e,0,0,0,0,0,0,e],A=[1,0,0,1,.6,0,0,1,0,.6,1,0,0,0,1,0,.6,1],r=new Ie;r.setAttribute("position",new Se(t,3)),r.setAttribute("color",new Se(A,3));let i=new jn({vertexColors:!0,toneMapped:!1});super(r,i),this.type="AxesHelper"}setColors(e,t,A){let r=new _e,i=this.geometry.attributes.color.array;return r.set(e),r.toArray(i,0),r.toArray(i,3),r.set(t),r.toArray(i,6),r.toArray(i,9),r.set(A),r.toArray(i,12),r.toArray(i,15),this.geometry.attributes.color.needsUpdate=!0,this}dispose(){this.geometry.dispose(),this.material.dispose()}};var{floatView:Pj,uint32View:Dj,baseTable:Ij,shiftTable:Lj,mantissaTable:_j,exponentTable:Oj,offsetTable:Rj}=eB();function eB(){let n=new ArrayBuffer(4),e=new Float32Array(n),t=new Uint32Array(n),A=new Uint32Array(512),r=new Uint32Array(512);for(let a=0;a<256;++a){let c=a-127;c<-27?(A[a]=0,A[a|256]=32768,r[a]=24,r[a|256]=24):c<-14?(A[a]=1024>>-c-14,A[a|256]=1024>>-c-14|32768,r[a]=-c-1,r[a|256]=-c-1):c<=15?(A[a]=c+15<<10,A[a|256]=c+15<<10|32768,r[a]=13,r[a|256]=13):c<128?(A[a]=31744,A[a|256]=64512,r[a]=24,r[a|256]=24):(A[a]=31744,A[a|256]=64512,r[a]=13,r[a|256]=13)}let i=new Uint32Array(2048),s=new Uint32Array(64),o=new Uint32Array(64);for(let a=1;a<1024;++a){let c=a<<13,l=0;for(;(c&8388608)===0;)c<<=1,l-=8388608;c&=-8388609,l+=947912704,i[a]=c|l}for(let a=1024;a<2048;++a)i[a]=939524096+(a-1024<<13);for(let a=1;a<31;++a)s[a]=a<<23;s[31]=1199570944,s[32]=2147483648;for(let a=33;a<63;++a)s[a]=2147483648+(a-32<<23);s[63]=3347054592;for(let a=1;a<64;++a)a!==32&&(o[a]=1024);return{floatView:e,uint32View:t,baseTable:A,shiftTable:r,mantissaTable:i,exponentTable:s,offsetTable:o}}var Jd=class extends ft{constructor(e,t,A){console.error('THREE.WebGLMultisampleRenderTarget has been removed. Use a normal render target and set the "samples" property to greater 0 to enable multisampling.'),super(e,t,A),this.samples=4}};typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("register",{detail:{revision:mo}}));typeof window<"u"&&(window.__THREE__?console.warn("WARNING: Multiple instances of Three.js being imported."):window.__THREE__=mo);var Fa=".",du=Symbol("target"),Fy=Symbol("unsubscribe");function fu(n){return n instanceof Date||n instanceof Set||n instanceof Map||n instanceof WeakSet||n instanceof WeakMap||ArrayBuffer.isView(n)}function qw(n){return(typeof n=="object"?n===null:typeof n!="function")||n instanceof RegExp}var Rn=Array.isArray;function go(n){return typeof n=="symbol"}var tB={after:(n,e)=>Rn(n)?n.slice(e.length):e===""?n:n.slice(e.length+1),concat:(n,e)=>Rn(n)?(n=[...n],e&&n.push(e),n):e&&e.toString!==void 0?(n!==""&&(n+=Fa),go(e)?n+e.toString():n+e):n,initial:n=>{if(Rn(n))return n.slice(0,-1);if(n==="")return n;let e=n.lastIndexOf(Fa);return e===-1?"":n.slice(0,e)},last:n=>{if(Rn(n))return n[n.length-1]||"";if(n==="")return n;let e=n.lastIndexOf(Fa);return e===-1?n:n.slice(e+1)},walk:(n,e)=>{if(Rn(n))for(let t of n)e(t);else if(n!==""){let t=0,A=n.indexOf(Fa);if(A===-1)e(n);else for(;t<n.length;)A===-1&&(A=n.length),e(n.slice(t,A)),t=A+1,A=n.indexOf(Fa,t)}},get(n,e){return this.walk(e,t=>{n&&(n=n[t])}),n}},on=tB;function Gy(n){return typeof n=="object"&&typeof n.next=="function"}function ky(n,e,t,A,r){let i=n.next;if(e.name==="entries")n.next=function(){let s=i.call(this);return s.done===!1&&(s.value[0]=r(s.value[0],e,s.value[0],A),s.value[1]=r(s.value[1],e,s.value[0],A)),s};else if(e.name==="values"){let s=t[du].keys();n.next=function(){let o=i.call(this);return o.done===!1&&(o.value=r(o.value,e,s.next().value,A)),o}}else n.next=function(){let s=i.call(this);return s.done===!1&&(s.value=r(s.value,e,s.value,A)),s};return n}function Af(n,e,t){return n.isUnsubscribed||e.ignoreSymbols&&go(t)||e.ignoreUnderscores&&t.charAt(0)==="_"||"ignoreKeys"in e&&e.ignoreKeys.includes(t)}var pu=class{constructor(e){this._equals=e,this._proxyCache=new WeakMap,this._pathCache=new WeakMap,this.isUnsubscribed=!1}_getDescriptorCache(){return this._descriptorCache===void 0&&(this._descriptorCache=new WeakMap),this._descriptorCache}_getProperties(e){let t=this._getDescriptorCache(),A=t.get(e);return A===void 0&&(A={},t.set(e,A)),A}_getOwnPropertyDescriptor(e,t){if(this.isUnsubscribed)return Reflect.getOwnPropertyDescriptor(e,t);let A=this._getProperties(e),r=A[t];return r===void 0&&(r=Reflect.getOwnPropertyDescriptor(e,t),A[t]=r),r}getProxy(e,t,A,r){if(this.isUnsubscribed)return e;let i=e[r],s=i||e;this._pathCache.set(s,t);let o=this._proxyCache.get(s);return o===void 0&&(o=i===void 0?new Proxy(e,A):e,this._proxyCache.set(s,o)),o}getPath(e){return this.isUnsubscribed?void 0:this._pathCache.get(e)}isDetached(e,t){return!Object.is(e,on.get(t,this.getPath(e)))}defineProperty(e,t,A){return Reflect.defineProperty(e,t,A)?(this.isUnsubscribed||(this._getProperties(e)[t]=A),!0):!1}setProperty(e,t,A,r,i){if(!this._equals(i,A)||!(t in e)){let s=this._getOwnPropertyDescriptor(e,t);return s!==void 0&&"set"in s?Reflect.set(e,t,A,r):Reflect.set(e,t,A)}return!0}deleteProperty(e,t,A){if(Reflect.deleteProperty(e,t)){if(!this.isUnsubscribed){let r=this._getDescriptorCache().get(e);r&&(delete r[t],this._pathCache.delete(A))}return!0}return!1}isSameDescriptor(e,t,A){let r=this._getOwnPropertyDescriptor(t,A);return e!==void 0&&r!==void 0&&Object.is(e.value,r.value)&&(e.writable||!1)===(r.writable||!1)&&(e.enumerable||!1)===(r.enumerable||!1)&&(e.configurable||!1)===(r.configurable||!1)&&e.get===r.get&&e.set===r.set}isGetInvariant(e,t){let A=this._getOwnPropertyDescriptor(e,t);return A!==void 0&&A.configurable!==!0&&A.writable!==!0}unsubscribe(){this._descriptorCache=null,this._pathCache=null,this._proxyCache=null,this.isUnsubscribed=!0}};function Ga(n){return toString.call(n)==="[object Object]"}function ka(){return!0}function ss(n,e){return n.length!==e.length||n.some((t,A)=>e[A]!==t)}var nf=new Set(["hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]);var AB=new Set(["concat","includes","indexOf","join","keys","lastIndexOf"]),Uy={push:ka,pop:ka,shift:ka,unshift:ka,copyWithin:ss,reverse:ss,sort:ss,splice:ss,flat:ss,fill:ss},Xw=new Set([...nf,...AB,...Object.keys(Uy)]);function Ua(n,e){if(n.size!==e.size)return!0;for(let t of n)if(!e.has(t))return!0;return!1}var Vy=["keys","values","entries"],zy=new Set(["has","toString"]),Hy={add:Ua,clear:Ua,delete:Ua,forEach:Ua},Qw=new Set([...zy,...Object.keys(Hy),...Vy]);function Va(n,e){if(n.size!==e.size)return!0;let t;for(let[A,r]of n)if(t=e.get(A),t!==r||t===void 0&&!e.has(A))return!0;return!1}var nB=new Set([...zy,"get"]),Wy={set:Va,clear:Va,delete:Va,forEach:Va},Zw=new Set([...nB,...Object.keys(Wy),...Vy]);var LA=class{constructor(e,t,A,r){this._path=t,this._isChanged=!1,this._clonedCache=new Set,this._hasOnValidate=r,this._changes=r?[]:null,this.clone=t===void 0?e:this._shallowClone(e)}static isHandledMethod(e){return nf.has(e)}_shallowClone(e){let t=e;if(Ga(e))t={...e};else if(Rn(e))t=[...e];else if(e instanceof Date)t=new Date(e);else if(e instanceof Set)t=new Set([...e].map(A=>this._shallowClone(A)));else if(e instanceof Map){t=new Map;for(let[A,r]of e.entries())t.set(A,this._shallowClone(r))}return this._clonedCache.add(t),t}preferredThisArg(e,t,A,r){return e?(Rn(r)?this._onIsChanged=Uy[t]:r instanceof Set?this._onIsChanged=Hy[t]:r instanceof Map&&(this._onIsChanged=Wy[t]),r):A}update(e,t,A){let r=on.after(e,this._path);if(t!=="length"){let i=this.clone;on.walk(r,s=>{i&&i[s]&&(this._clonedCache.has(i[s])||(i[s]=this._shallowClone(i[s])),i=i[s])}),this._hasOnValidate&&this._changes.push({path:r,property:t,previous:A}),i&&i[t]&&(i[t]=A)}this._isChanged=!0}undo(e){let t;for(let A=this._changes.length-1;A!==-1;A--)t=this._changes[A],on.get(e,t.path)[t.property]=t.previous}isChanged(e){return this._onIsChanged===void 0?this._isChanged:this._onIsChanged(this.clone,e)}};var za=class extends LA{static isHandledMethod(e){return Xw.has(e)}};var mu=class extends LA{undo(e){e.setTime(this.clone.getTime())}isChanged(e,t){return!t(this.clone.valueOf(),e.valueOf())}};var Ha=class extends LA{static isHandledMethod(e){return Qw.has(e)}undo(e){for(let t of this.clone)e.add(t);for(let t of e)this.clone.has(t)||e.delete(t)}};var Wa=class extends LA{static isHandledMethod(e){return Zw.has(e)}undo(e){for(let[t,A]of this.clone.entries())e.set(t,A);for(let t of e.keys())this.clone.has(t)||e.delete(t)}};var gu=class extends LA{constructor(e,t,A,r){super(void 0,t,A,r),this._arg1=A[0],this._weakValue=e.has(this._arg1)}isChanged(e){return this._weakValue!==e.has(this._arg1)}undo(e){this._weakValue&&!e.has(this._arg1)?e.add(this._arg1):e.delete(this._arg1)}};var yu=class extends LA{constructor(e,t,A,r){super(void 0,t,A,r),this._weakKey=A[0],this._weakHas=e.has(this._weakKey),this._weakValue=e.get(this._weakKey)}isChanged(e){return this._weakValue!==e.get(this._weakKey)}undo(e){let t=e.has(this._weakKey);this._weakHas&&!t?e.set(this._weakKey,this._weakValue):!this._weakHas&&t?e.delete(this._weakKey):this._weakValue!==e.get(this._weakKey)&&e.set(this._weakKey,this._weakValue)}};var gr=class{constructor(e){this._stack=[],this._hasOnValidate=e}static isHandledType(e){return Ga(e)||Rn(e)||fu(e)}static isHandledMethod(e,t){return Ga(e)?LA.isHandledMethod(t):Rn(e)?za.isHandledMethod(t):e instanceof Set?Ha.isHandledMethod(t):e instanceof Map?Wa.isHandledMethod(t):fu(e)}get isCloning(){return this._stack.length>0}start(e,t,A){let r=LA;Rn(e)?r=za:e instanceof Date?r=mu:e instanceof Set?r=Ha:e instanceof Map?r=Wa:e instanceof WeakSet?r=gu:e instanceof WeakMap&&(r=yu),this._stack.push(new r(e,t,A,this._hasOnValidate))}update(e,t,A){this._stack[this._stack.length-1].update(e,t,A)}preferredThisArg(e,t,A){let{name:r}=e,i=gr.isHandledMethod(A,r);return this._stack[this._stack.length-1].preferredThisArg(i,r,t,A)}isChanged(e,t,A){return this._stack[this._stack.length-1].isChanged(e,t,A)}undo(e){this._previousClone!==void 0&&this._previousClone.undo(e)}stop(){return this._previousClone=this._stack.pop(),this._previousClone.clone}};var rB={equals:Object.is,isShallow:!1,pathAsArray:!1,ignoreSymbols:!1,ignoreUnderscores:!1,ignoreDetached:!1,details:!1},jy=(n,e,t={})=>{t={...rB,...t};let A=Symbol("ProxyTarget"),{equals:r,isShallow:i,ignoreDetached:s,details:o}=t,a=new pu(r),c=typeof t.onValidate=="function",l=new gr(c),u=(g,b,x,w,T)=>!c||l.isCloning||t.onValidate(on.concat(a.getPath(g),b),x,w,T)===!0,h=(g,b,x,w)=>{!Af(a,t,b)&&!(s&&a.isDetached(g,n))&&d(a.getPath(g),b,x,w)},d=(g,b,x,w,T)=>{l.isCloning?l.update(g,b,w):e(on.concat(g,b),x,w,T)},p=g=>g&&(g[A]||g),f=(g,b,x,w)=>qw(g)||x==="constructor"||i&&!gr.isHandledMethod(b,x)||Af(a,t,x)||a.isGetInvariant(b,x)||s&&a.isDetached(b,n)?g:(w===void 0&&(w=a.getPath(b)),a.getProxy(g,on.concat(w,x),m,A)),m={get(g,b,x){if(go(b)){if(b===A||b===du)return g;if(b===Fy&&!a.isUnsubscribed&&a.getPath(g).length===0)return a.unsubscribe(),g}let w=fu(g)?Reflect.get(g,b):Reflect.get(g,b,x);return f(w,g,b)},set(g,b,x,w){x=p(x);let T=g[A]||g,M=T[b];if(r(M,x)&&b in g)return!0;let v=u(g,b,x,M);return v&&a.setProperty(T,b,x,w,M)?(h(g,b,g[b],M),!0):!v},defineProperty(g,b,x){if(!a.isSameDescriptor(x,g,b)){let w=g[b];u(g,b,x.value,w)&&a.defineProperty(g,b,x,w)&&h(g,b,x.value,w)}return!0},deleteProperty(g,b){if(!Reflect.has(g,b))return!0;let x=Reflect.get(g,b),w=u(g,b,void 0,x);return w&&a.deleteProperty(g,b,x)?(h(g,b,void 0,x),!0):!w},apply(g,b,x){let w=b[A]||b;if(a.isUnsubscribed)return Reflect.apply(g,w,x);if((o===!1||o!==!0&&!o.includes(g.name))&&gr.isHandledType(w)){let T=on.initial(a.getPath(g)),M=gr.isHandledMethod(w,g.name);l.start(w,T,x);let v=Reflect.apply(g,l.preferredThisArg(g,b,w),M?x.map(P=>p(P)):x),E=l.isChanged(w,r),C=l.stop();if(gr.isHandledType(v)&&M&&(b instanceof Map&&g.name==="get"&&(T=on.concat(T,x[0])),v=a.getProxy(v,T,m)),E){let P={name:g.name,args:x,result:v},D=l.isCloning?on.initial(T):T,_=l.isCloning?on.last(T):"";u(on.get(n,D),_,w,C,P)?d(D,_,w,C,P):l.undo(w)}return(b instanceof Map||b instanceof Set)&&Gy(v)?ky(v,g,b,T,f):v}return Reflect.apply(g,b,x)}},y=a.getProxy(n,t.pathAsArray?[]:"",m);return e=e.bind(y),c&&(t.onValidate=t.onValidate.bind(y)),y};jy.target=n=>n&&n[du]||n;jy.unsubscribe=n=>n[Fy]||n;var Yy=jy;var iB=typeof global=="object"&&global&&global.Object===Object&&global,rf=iB;var sB=typeof self=="object"&&self&&self.Object===Object&&self,oB=rf||sB||Function("return this")(),Kt=oB;var aB=Kt.Symbol,_A=aB;var Kw=Object.prototype,lB=Kw.hasOwnProperty,cB=Kw.toString,vu=_A?_A.toStringTag:void 0;function uB(n){var e=lB.call(n,vu),t=n[vu];try{n[vu]=void 0;var A=!0}catch{}var r=cB.call(n);return A&&(e?n[vu]=t:delete n[vu]),r}var Jw=uB;var hB=Object.prototype,dB=hB.toString;function fB(n){return dB.call(n)}var $w=fB;var pB="[object Null]",mB="[object Undefined]",eS=_A?_A.toStringTag:void 0;function gB(n){return n==null?n===void 0?mB:pB:eS&&eS in Object(n)?Jw(n):$w(n)}var Bn=gB;function yB(n){return n!=null&&typeof n=="object"}var xA=yB;var vB="[object Symbol]";function xB(n){return typeof n=="symbol"||xA(n)&&Bn(n)==vB}var os=xB;function bB(n,e){for(var t=-1,A=n==null?0:n.length,r=Array(A);++t<A;)r[t]=e(n[t],t,n);return r}var sf=bB;var wB=Array.isArray,Jt=wB;var SB=1/0,tS=_A?_A.prototype:void 0,AS=tS?tS.toString:void 0;function nS(n){if(typeof n=="string")return n;if(Jt(n))return sf(n,nS)+"";if(os(n))return AS?AS.call(n):"";var e=n+"";return e=="0"&&1/n==-SB?"-0":e}var rS=nS;var TB=/\s/;function MB(n){for(var e=n.length;e--&&TB.test(n.charAt(e)););return e}var iS=MB;var EB=/^\s+/;function CB(n){return n&&n.slice(0,iS(n)+1).replace(EB,"")}var sS=CB;function PB(n){var e=typeof n;return n!=null&&(e=="object"||e=="function")}var zt=PB;var oS=0/0,DB=/^[-+]0x[0-9a-f]+$/i,IB=/^0b[01]+$/i,LB=/^0o[0-7]+$/i,_B=parseInt;function OB(n){if(typeof n=="number")return n;if(os(n))return oS;if(zt(n)){var e=typeof n.valueOf=="function"?n.valueOf():n;n=zt(e)?e+"":e}if(typeof n!="string")return n===0?n:+n;n=sS(n);var t=IB.test(n);return t||LB.test(n)?_B(n.slice(2),t?2:8):DB.test(n)?oS:+n}var qy=OB;function RB(n){return n}var of=RB;var BB="[object AsyncFunction]",NB="[object Function]",FB="[object GeneratorFunction]",GB="[object Proxy]";function kB(n){if(!zt(n))return!1;var e=Bn(n);return e==NB||e==FB||e==BB||e==GB}var ja=kB;var UB=Kt["__core-js_shared__"],af=UB;var aS=function(){var n=/[^.]+$/.exec(af&&af.keys&&af.keys.IE_PROTO||"");return n?"Symbol(src)_1."+n:""}();function VB(n){return!!aS&&aS in n}var lS=VB;var zB=Function.prototype,HB=zB.toString;function WB(n){if(n!=null){try{return HB.call(n)}catch{}try{return n+""}catch{}}return""}var Ei=WB;var jB=/[\\^$.*+?()[\]{}|]/g,YB=/^\[object .+?Constructor\]$/,qB=Function.prototype,XB=Object.prototype,QB=qB.toString,ZB=XB.hasOwnProperty,KB=RegExp("^"+QB.call(ZB).replace(jB,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function JB(n){if(!zt(n)||lS(n))return!1;var e=ja(n)?KB:YB;return e.test(Ei(n))}var cS=JB;function $B(n,e){return n?.[e]}var uS=$B;function eN(n,e){var t=uS(n,e);return cS(t)?t:void 0}var pn=eN;var tN=pn(Kt,"WeakMap"),lf=tN;var hS=Object.create,AN=function(){function n(){}return function(e){if(!zt(e))return{};if(hS)return hS(e);n.prototype=e;var t=new n;return n.prototype=void 0,t}}(),dS=AN;function nN(n,e,t){switch(t.length){case 0:return n.call(e);case 1:return n.call(e,t[0]);case 2:return n.call(e,t[0],t[1]);case 3:return n.call(e,t[0],t[1],t[2])}return n.apply(e,t)}var fS=nN;function rN(n,e){var t=-1,A=n.length;for(e||(e=Array(A));++t<A;)e[t]=n[t];return e}var cf=rN;var iN=800,sN=16,oN=Date.now;function aN(n){var e=0,t=0;return function(){var A=oN(),r=sN-(A-t);if(t=A,r>0){if(++e>=iN)return arguments[0]}else e=0;return n.apply(void 0,arguments)}}var pS=aN;function lN(n){return function(){return n}}var mS=lN;var cN=function(){try{var n=pn(Object,"defineProperty");return n({},"",{}),n}catch{}}(),Ya=cN;var uN=Ya?function(n,e){return Ya(n,"toString",{configurable:!0,enumerable:!1,value:mS(e),writable:!0})}:of,gS=uN;var hN=pS(gS),uf=hN;function dN(n,e){for(var t=-1,A=n==null?0:n.length;++t<A&&e(n[t],t,n)!==!1;);return n}var yS=dN;var fN=9007199254740991,pN=/^(?:0|[1-9]\d*)$/;function mN(n,e){var t=typeof n;return e=e??fN,!!e&&(t=="number"||t!="symbol"&&pN.test(n))&&n>-1&&n%1==0&&n<e}var as=mN;function gN(n,e,t){e=="__proto__"&&Ya?Ya(n,e,{configurable:!0,enumerable:!0,value:t,writable:!0}):n[e]=t}var qa=gN;function yN(n,e){return n===e||n!==n&&e!==e}var Nr=yN;var vN=Object.prototype,xN=vN.hasOwnProperty;function bN(n,e,t){var A=n[e];(!(xN.call(n,e)&&Nr(A,t))||t===void 0&&!(e in n))&&qa(n,e,t)}var Xa=bN;function wN(n,e,t,A){var r=!t;t||(t={});for(var i=-1,s=e.length;++i<s;){var o=e[i],a=A?A(t[o],n[o],o,t,n):void 0;a===void 0&&(a=n[o]),r?qa(t,o,a):Xa(t,o,a)}return t}var Xn=wN;var vS=Math.max;function SN(n,e,t){return e=vS(e===void 0?n.length-1:e,0),function(){for(var A=arguments,r=-1,i=vS(A.length-e,0),s=Array(i);++r<i;)s[r]=A[e+r];r=-1;for(var o=Array(e+1);++r<e;)o[r]=A[r];return o[e]=t(s),fS(n,this,o)}}var hf=SN;function TN(n,e){return uf(hf(n,e,of),n+"")}var xS=TN;var MN=9007199254740991;function EN(n){return typeof n=="number"&&n>-1&&n%1==0&&n<=MN}var Qa=EN;function CN(n){return n!=null&&Qa(n.length)&&!ja(n)}var ls=CN;function PN(n,e,t){if(!zt(t))return!1;var A=typeof e;return(A=="number"?ls(t)&&as(e,t.length):A=="string"&&e in t)?Nr(t[e],n):!1}var bS=PN;function DN(n){return xS(function(e,t){var A=-1,r=t.length,i=r>1?t[r-1]:void 0,s=r>2?t[2]:void 0;for(i=n.length>3&&typeof i=="function"?(r--,i):void 0,s&&bS(t[0],t[1],s)&&(i=r<3?void 0:i,r=1),e=Object(e);++A<r;){var o=t[A];o&&n(e,o,A,i)}return e})}var wS=DN;var IN=Object.prototype;function LN(n){var e=n&&n.constructor,t=typeof e=="function"&&e.prototype||IN;return n===t}var Za=LN;function _N(n,e){for(var t=-1,A=Array(n);++t<n;)A[t]=e(t);return A}var SS=_N;var ON="[object Arguments]";function RN(n){return xA(n)&&Bn(n)==ON}var Xy=RN;var TS=Object.prototype,BN=TS.hasOwnProperty,NN=TS.propertyIsEnumerable,FN=Xy(function(){return arguments}())?Xy:function(n){return xA(n)&&BN.call(n,"callee")&&!NN.call(n,"callee")},Ci=FN;function GN(){return!1}var MS=GN;var PS=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ES=PS&&typeof module=="object"&&module&&!module.nodeType&&module,kN=ES&&ES.exports===PS,CS=kN?Kt.Buffer:void 0,UN=CS?CS.isBuffer:void 0,VN=UN||MS,Pi=VN;var zN="[object Arguments]",HN="[object Array]",WN="[object Boolean]",jN="[object Date]",YN="[object Error]",qN="[object Function]",XN="[object Map]",QN="[object Number]",ZN="[object Object]",KN="[object RegExp]",JN="[object Set]",$N="[object String]",eF="[object WeakMap]",tF="[object ArrayBuffer]",AF="[object DataView]",nF="[object Float32Array]",rF="[object Float64Array]",iF="[object Int8Array]",sF="[object Int16Array]",oF="[object Int32Array]",aF="[object Uint8Array]",lF="[object Uint8ClampedArray]",cF="[object Uint16Array]",uF="[object Uint32Array]",Ut={};Ut[nF]=Ut[rF]=Ut[iF]=Ut[sF]=Ut[oF]=Ut[aF]=Ut[lF]=Ut[cF]=Ut[uF]=!0;Ut[zN]=Ut[HN]=Ut[tF]=Ut[WN]=Ut[AF]=Ut[jN]=Ut[YN]=Ut[qN]=Ut[XN]=Ut[QN]=Ut[ZN]=Ut[KN]=Ut[JN]=Ut[$N]=Ut[eF]=!1;function hF(n){return xA(n)&&Qa(n.length)&&!!Ut[Bn(n)]}var DS=hF;function dF(n){return function(e){return n(e)}}var Ka=dF;var IS=typeof exports=="object"&&exports&&!exports.nodeType&&exports,xu=IS&&typeof module=="object"&&module&&!module.nodeType&&module,fF=xu&&xu.exports===IS,Qy=fF&&rf.process,pF=function(){try{var n=xu&&xu.require&&xu.require("util").types;return n||Qy&&Qy.binding&&Qy.binding("util")}catch{}}(),Di=pF;var LS=Di&&Di.isTypedArray,mF=LS?Ka(LS):DS,Ja=mF;var gF=Object.prototype,yF=gF.hasOwnProperty;function vF(n,e){var t=Jt(n),A=!t&&Ci(n),r=!t&&!A&&Pi(n),i=!t&&!A&&!r&&Ja(n),s=t||A||r||i,o=s?SS(n.length,String):[],a=o.length;for(var c in n)(e||yF.call(n,c))&&!(s&&(c=="length"||r&&(c=="offset"||c=="parent")||i&&(c=="buffer"||c=="byteLength"||c=="byteOffset")||as(c,a)))&&o.push(c);return o}var df=vF;function xF(n,e){return function(t){return n(e(t))}}var ff=xF;var bF=ff(Object.keys,Object),_S=bF;var wF=Object.prototype,SF=wF.hasOwnProperty;function TF(n){if(!Za(n))return _S(n);var e=[];for(var t in Object(n))SF.call(n,t)&&t!="constructor"&&e.push(t);return e}var OS=TF;function MF(n){return ls(n)?df(n):OS(n)}var $a=MF;function EF(n){var e=[];if(n!=null)for(var t in Object(n))e.push(t);return e}var RS=EF;var CF=Object.prototype,PF=CF.hasOwnProperty;function DF(n){if(!zt(n))return RS(n);var e=Za(n),t=[];for(var A in n)A=="constructor"&&(e||!PF.call(n,A))||t.push(A);return t}var BS=DF;function IF(n){return ls(n)?df(n,!0):BS(n)}var Fr=IF;var LF=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,_F=/^\w*$/;function OF(n,e){if(Jt(n))return!1;var t=typeof n;return t=="number"||t=="symbol"||t=="boolean"||n==null||os(n)?!0:_F.test(n)||!LF.test(n)||e!=null&&n in Object(e)}var NS=OF;var RF=pn(Object,"create"),Ii=RF;function BF(){this.__data__=Ii?Ii(null):{},this.size=0}var FS=BF;function NF(n){var e=this.has(n)&&delete this.__data__[n];return this.size-=e?1:0,e}var GS=NF;var FF="__lodash_hash_undefined__",GF=Object.prototype,kF=GF.hasOwnProperty;function UF(n){var e=this.__data__;if(Ii){var t=e[n];return t===FF?void 0:t}return kF.call(e,n)?e[n]:void 0}var kS=UF;var VF=Object.prototype,zF=VF.hasOwnProperty;function HF(n){var e=this.__data__;return Ii?e[n]!==void 0:zF.call(e,n)}var US=HF;var WF="__lodash_hash_undefined__";function jF(n,e){var t=this.__data__;return this.size+=this.has(n)?0:1,t[n]=Ii&&e===void 0?WF:e,this}var VS=jF;function el(n){var e=-1,t=n==null?0:n.length;for(this.clear();++e<t;){var A=n[e];this.set(A[0],A[1])}}el.prototype.clear=FS;el.prototype.delete=GS;el.prototype.get=kS;el.prototype.has=US;el.prototype.set=VS;var Zy=el;function YF(){this.__data__=[],this.size=0}var zS=YF;function qF(n,e){for(var t=n.length;t--;)if(Nr(n[t][0],e))return t;return-1}var cs=qF;var XF=Array.prototype,QF=XF.splice;function ZF(n){var e=this.__data__,t=cs(e,n);if(t<0)return!1;var A=e.length-1;return t==A?e.pop():QF.call(e,t,1),--this.size,!0}var HS=ZF;function KF(n){var e=this.__data__,t=cs(e,n);return t<0?void 0:e[t][1]}var WS=KF;function JF(n){return cs(this.__data__,n)>-1}var jS=JF;function $F(n,e){var t=this.__data__,A=cs(t,n);return A<0?(++this.size,t.push([n,e])):t[A][1]=e,this}var YS=$F;function tl(n){var e=-1,t=n==null?0:n.length;for(this.clear();++e<t;){var A=n[e];this.set(A[0],A[1])}}tl.prototype.clear=zS;tl.prototype.delete=HS;tl.prototype.get=WS;tl.prototype.has=jS;tl.prototype.set=YS;var us=tl;var eG=pn(Kt,"Map"),hs=eG;function tG(){this.size=0,this.__data__={hash:new Zy,map:new(hs||us),string:new Zy}}var qS=tG;function AG(n){var e=typeof n;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?n!=="__proto__":n===null}var XS=AG;function nG(n,e){var t=n.__data__;return XS(e)?t[typeof e=="string"?"string":"hash"]:t.map}var ds=nG;function rG(n){var e=ds(this,n).delete(n);return this.size-=e?1:0,e}var QS=rG;function iG(n){return ds(this,n).get(n)}var ZS=iG;function sG(n){return ds(this,n).has(n)}var KS=sG;function oG(n,e){var t=ds(this,n),A=t.size;return t.set(n,e),this.size+=t.size==A?0:1,this}var JS=oG;function Al(n){var e=-1,t=n==null?0:n.length;for(this.clear();++e<t;){var A=n[e];this.set(A[0],A[1])}}Al.prototype.clear=qS;Al.prototype.delete=QS;Al.prototype.get=ZS;Al.prototype.has=KS;Al.prototype.set=JS;var yo=Al;var aG="Expected a function";function Ky(n,e){if(typeof n!="function"||e!=null&&typeof e!="function")throw new TypeError(aG);var t=function(){var A=arguments,r=e?e.apply(this,A):A[0],i=t.cache;if(i.has(r))return i.get(r);var s=n.apply(this,A);return t.cache=i.set(r,s)||i,s};return t.cache=new(Ky.Cache||yo),t}Ky.Cache=yo;var $S=Ky;var lG=500;function cG(n){var e=$S(n,function(A){return t.size===lG&&t.clear(),A}),t=e.cache;return e}var e1=cG;var uG=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,hG=/\\(\\)?/g,dG=e1(function(n){var e=[];return n.charCodeAt(0)===46&&e.push(""),n.replace(uG,function(t,A,r,i){e.push(r?i.replace(hG,"$1"):A||t)}),e}),t1=dG;function fG(n){return n==null?"":rS(n)}var A1=fG;function pG(n,e){return Jt(n)?n:NS(n,e)?[n]:t1(A1(n))}var Qn=pG;var mG=1/0;function gG(n){if(typeof n=="string"||os(n))return n;var e=n+"";return e=="0"&&1/n==-mG?"-0":e}var fs=gG;function yG(n,e){e=Qn(e,n);for(var t=0,A=e.length;n!=null&&t<A;)n=n[fs(e[t++])];return t&&t==A?n:void 0}var pf=yG;function vG(n,e){for(var t=-1,A=e.length,r=n.length;++t<A;)n[r+t]=e[t];return n}var nl=vG;var n1=_A?_A.isConcatSpreadable:void 0;function xG(n){return Jt(n)||Ci(n)||!!(n1&&n&&n[n1])}var r1=xG;function i1(n,e,t,A,r){var i=-1,s=n.length;for(t||(t=r1),r||(r=[]);++i<s;){var o=n[i];e>0&&t(o)?e>1?i1(o,e-1,t,A,r):nl(r,o):A||(r[r.length]=o)}return r}var s1=i1;function bG(n){var e=n==null?0:n.length;return e?s1(n,1):[]}var o1=bG;function wG(n){return uf(hf(n,void 0,o1),n+"")}var mf=wG;var SG=ff(Object.getPrototypeOf,Object),rl=SG;var TG="[object Object]",MG=Function.prototype,EG=Object.prototype,a1=MG.toString,CG=EG.hasOwnProperty,PG=a1.call(Object);function DG(n){if(!xA(n)||Bn(n)!=TG)return!1;var e=rl(n);if(e===null)return!0;var t=CG.call(e,"constructor")&&e.constructor;return typeof t=="function"&&t instanceof t&&a1.call(t)==PG}var gf=DG;function IG(n,e,t){var A=-1,r=n.length;e<0&&(e=-e>r?0:r+e),t=t>r?r:t,t<0&&(t+=r),r=e>t?0:t-e>>>0,e>>>=0;for(var i=Array(r);++A<r;)i[A]=n[A+e];return i}var l1=IG;function LG(){this.__data__=new us,this.size=0}var c1=LG;function _G(n){var e=this.__data__,t=e.delete(n);return this.size=e.size,t}var u1=_G;function OG(n){return this.__data__.get(n)}var h1=OG;function RG(n){return this.__data__.has(n)}var d1=RG;var BG=200;function NG(n,e){var t=this.__data__;if(t instanceof us){var A=t.__data__;if(!hs||A.length<BG-1)return A.push([n,e]),this.size=++t.size,this;t=this.__data__=new yo(A)}return t.set(n,e),this.size=t.size,this}var f1=NG;function il(n){var e=this.__data__=new us(n);this.size=e.size}il.prototype.clear=c1;il.prototype.delete=u1;il.prototype.get=h1;il.prototype.has=d1;il.prototype.set=f1;var ps=il;function FG(n,e){return n&&Xn(e,$a(e),n)}var p1=FG;function GG(n,e){return n&&Xn(e,Fr(e),n)}var m1=GG;var x1=typeof exports=="object"&&exports&&!exports.nodeType&&exports,g1=x1&&typeof module=="object"&&module&&!module.nodeType&&module,kG=g1&&g1.exports===x1,y1=kG?Kt.Buffer:void 0,v1=y1?y1.allocUnsafe:void 0;function UG(n,e){if(e)return n.slice();var t=n.length,A=v1?v1(t):new n.constructor(t);return n.copy(A),A}var yf=UG;function VG(n,e){for(var t=-1,A=n==null?0:n.length,r=0,i=[];++t<A;){var s=n[t];e(s,t,n)&&(i[r++]=s)}return i}var b1=VG;function zG(){return[]}var vf=zG;var HG=Object.prototype,WG=HG.propertyIsEnumerable,w1=Object.getOwnPropertySymbols,jG=w1?function(n){return n==null?[]:(n=Object(n),b1(w1(n),function(e){return WG.call(n,e)}))}:vf,sl=jG;function YG(n,e){return Xn(n,sl(n),e)}var S1=YG;var qG=Object.getOwnPropertySymbols,XG=qG?function(n){for(var e=[];n;)nl(e,sl(n)),n=rl(n);return e}:vf,xf=XG;function QG(n,e){return Xn(n,xf(n),e)}var T1=QG;function ZG(n,e,t){var A=e(n);return Jt(n)?A:nl(A,t(n))}var bf=ZG;function KG(n){return bf(n,$a,sl)}var bu=KG;function JG(n){return bf(n,Fr,xf)}var wf=JG;var $G=pn(Kt,"DataView"),Sf=$G;var ek=pn(Kt,"Promise"),Tf=ek;var tk=pn(Kt,"Set"),Mf=tk;var M1="[object Map]",Ak="[object Object]",E1="[object Promise]",C1="[object Set]",P1="[object WeakMap]",D1="[object DataView]",nk=Ei(Sf),rk=Ei(hs),ik=Ei(Tf),sk=Ei(Mf),ok=Ei(lf),vo=Bn;(Sf&&vo(new Sf(new ArrayBuffer(1)))!=D1||hs&&vo(new hs)!=M1||Tf&&vo(Tf.resolve())!=E1||Mf&&vo(new Mf)!=C1||lf&&vo(new lf)!=P1)&&(vo=function(n){var e=Bn(n),t=e==Ak?n.constructor:void 0,A=t?Ei(t):"";if(A)switch(A){case nk:return D1;case rk:return M1;case ik:return E1;case sk:return C1;case ok:return P1}return e});var Li=vo;var ak=Object.prototype,lk=ak.hasOwnProperty;function ck(n){var e=n.length,t=new n.constructor(e);return e&&typeof n[0]=="string"&&lk.call(n,"index")&&(t.index=n.index,t.input=n.input),t}var I1=ck;var uk=Kt.Uint8Array,ol=uk;function hk(n){var e=new n.constructor(n.byteLength);return new ol(e).set(new ol(n)),e}var al=hk;function dk(n,e){var t=e?al(n.buffer):n.buffer;return new n.constructor(t,n.byteOffset,n.byteLength)}var L1=dk;var fk=/\w*$/;function pk(n){var e=new n.constructor(n.source,fk.exec(n));return e.lastIndex=n.lastIndex,e}var _1=pk;var O1=_A?_A.prototype:void 0,R1=O1?O1.valueOf:void 0;function mk(n){return R1?Object(R1.call(n)):{}}var B1=mk;function gk(n,e){var t=e?al(n.buffer):n.buffer;return new n.constructor(t,n.byteOffset,n.length)}var Ef=gk;var yk="[object Boolean]",vk="[object Date]",xk="[object Map]",bk="[object Number]",wk="[object RegExp]",Sk="[object Set]",Tk="[object String]",Mk="[object Symbol]",Ek="[object ArrayBuffer]",Ck="[object DataView]",Pk="[object Float32Array]",Dk="[object Float64Array]",Ik="[object Int8Array]",Lk="[object Int16Array]",_k="[object Int32Array]",Ok="[object Uint8Array]",Rk="[object Uint8ClampedArray]",Bk="[object Uint16Array]",Nk="[object Uint32Array]";function Fk(n,e,t){var A=n.constructor;switch(e){case Ek:return al(n);case yk:case vk:return new A(+n);case Ck:return L1(n,t);case Pk:case Dk:case Ik:case Lk:case _k:case Ok:case Rk:case Bk:case Nk:return Ef(n,t);case xk:return new A;case bk:case Tk:return new A(n);case wk:return _1(n);case Sk:return new A;case Mk:return B1(n)}}var N1=Fk;function Gk(n){return typeof n.constructor=="function"&&!Za(n)?dS(rl(n)):{}}var Cf=Gk;var kk="[object Map]";function Uk(n){return xA(n)&&Li(n)==kk}var F1=Uk;var G1=Di&&Di.isMap,Vk=G1?Ka(G1):F1,k1=Vk;var zk="[object Set]";function Hk(n){return xA(n)&&Li(n)==zk}var U1=Hk;var V1=Di&&Di.isSet,Wk=V1?Ka(V1):U1,z1=Wk;var jk=1,Yk=2,qk=4,H1="[object Arguments]",Xk="[object Array]",Qk="[object Boolean]",Zk="[object Date]",Kk="[object Error]",W1="[object Function]",Jk="[object GeneratorFunction]",$k="[object Map]",eU="[object Number]",j1="[object Object]",tU="[object RegExp]",AU="[object Set]",nU="[object String]",rU="[object Symbol]",iU="[object WeakMap]",sU="[object ArrayBuffer]",oU="[object DataView]",aU="[object Float32Array]",lU="[object Float64Array]",cU="[object Int8Array]",uU="[object Int16Array]",hU="[object Int32Array]",dU="[object Uint8Array]",fU="[object Uint8ClampedArray]",pU="[object Uint16Array]",mU="[object Uint32Array]",Ft={};Ft[H1]=Ft[Xk]=Ft[sU]=Ft[oU]=Ft[Qk]=Ft[Zk]=Ft[aU]=Ft[lU]=Ft[cU]=Ft[uU]=Ft[hU]=Ft[$k]=Ft[eU]=Ft[j1]=Ft[tU]=Ft[AU]=Ft[nU]=Ft[rU]=Ft[dU]=Ft[fU]=Ft[pU]=Ft[mU]=!0;Ft[Kk]=Ft[W1]=Ft[iU]=!1;function Pf(n,e,t,A,r,i){var s,o=e&jk,a=e&Yk,c=e&qk;if(t&&(s=r?t(n,A,r,i):t(n)),s!==void 0)return s;if(!zt(n))return n;var l=Jt(n);if(l){if(s=I1(n),!o)return cf(n,s)}else{var u=Li(n),h=u==W1||u==Jk;if(Pi(n))return yf(n,o);if(u==j1||u==H1||h&&!r){if(s=a||h?{}:Cf(n),!o)return a?T1(n,m1(s,n)):S1(n,p1(s,n))}else{if(!Ft[u])return r?n:{};s=N1(n,u,o)}}i||(i=new ps);var d=i.get(n);if(d)return d;i.set(n,s),z1(n)?n.forEach(function(m){s.add(Pf(m,e,t,m,n,i))}):k1(n)&&n.forEach(function(m,y){s.set(y,Pf(m,e,t,y,n,i))});var p=c?a?wf:bu:a?Fr:$a,f=l?void 0:p(n);return yS(f||n,function(m,y){f&&(y=m,m=n[y]),Xa(s,y,Pf(m,e,t,y,n,i))}),s}var Df=Pf;var gU=1,yU=4;function vU(n){return Df(n,gU|yU)}var wu=vU;var xU="__lodash_hash_undefined__";function bU(n){return this.__data__.set(n,xU),this}var Y1=bU;function wU(n){return this.__data__.has(n)}var q1=wU;function If(n){var e=-1,t=n==null?0:n.length;for(this.__data__=new yo;++e<t;)this.add(n[e])}If.prototype.add=If.prototype.push=Y1;If.prototype.has=q1;var X1=If;function SU(n,e){for(var t=-1,A=n==null?0:n.length;++t<A;)if(e(n[t],t,n))return!0;return!1}var Q1=SU;function TU(n,e){return n.has(e)}var Z1=TU;var MU=1,EU=2;function CU(n,e,t,A,r,i){var s=t&MU,o=n.length,a=e.length;if(o!=a&&!(s&&a>o))return!1;var c=i.get(n),l=i.get(e);if(c&&l)return c==e&&l==n;var u=-1,h=!0,d=t&EU?new X1:void 0;for(i.set(n,e),i.set(e,n);++u<o;){var p=n[u],f=e[u];if(A)var m=s?A(f,p,u,e,n,i):A(p,f,u,n,e,i);if(m!==void 0){if(m)continue;h=!1;break}if(d){if(!Q1(e,function(y,g){if(!Z1(d,g)&&(p===y||r(p,y,t,A,i)))return d.push(g)})){h=!1;break}}else if(!(p===f||r(p,f,t,A,i))){h=!1;break}}return i.delete(n),i.delete(e),h}var Lf=CU;function PU(n){var e=-1,t=Array(n.size);return n.forEach(function(A,r){t[++e]=[r,A]}),t}var K1=PU;function DU(n){var e=-1,t=Array(n.size);return n.forEach(function(A){t[++e]=A}),t}var J1=DU;var IU=1,LU=2,_U="[object Boolean]",OU="[object Date]",RU="[object Error]",BU="[object Map]",NU="[object Number]",FU="[object RegExp]",GU="[object Set]",kU="[object String]",UU="[object Symbol]",VU="[object ArrayBuffer]",zU="[object DataView]",$1=_A?_A.prototype:void 0,Jy=$1?$1.valueOf:void 0;function HU(n,e,t,A,r,i,s){switch(t){case zU:if(n.byteLength!=e.byteLength||n.byteOffset!=e.byteOffset)return!1;n=n.buffer,e=e.buffer;case VU:return!(n.byteLength!=e.byteLength||!i(new ol(n),new ol(e)));case _U:case OU:case NU:return Nr(+n,+e);case RU:return n.name==e.name&&n.message==e.message;case FU:case kU:return n==e+"";case BU:var o=K1;case GU:var a=A&IU;if(o||(o=J1),n.size!=e.size&&!a)return!1;var c=s.get(n);if(c)return c==e;A|=LU,s.set(n,e);var l=Lf(o(n),o(e),A,r,i,s);return s.delete(n),l;case UU:if(Jy)return Jy.call(n)==Jy.call(e)}return!1}var eT=HU;var WU=1,jU=Object.prototype,YU=jU.hasOwnProperty;function qU(n,e,t,A,r,i){var s=t&WU,o=bu(n),a=o.length,c=bu(e),l=c.length;if(a!=l&&!s)return!1;for(var u=a;u--;){var h=o[u];if(!(s?h in e:YU.call(e,h)))return!1}var d=i.get(n),p=i.get(e);if(d&&p)return d==e&&p==n;var f=!0;i.set(n,e),i.set(e,n);for(var m=s;++u<a;){h=o[u];var y=n[h],g=e[h];if(A)var b=s?A(g,y,h,e,n,i):A(y,g,h,n,e,i);if(!(b===void 0?y===g||r(y,g,t,A,i):b)){f=!1;break}m||(m=h=="constructor")}if(f&&!m){var x=n.constructor,w=e.constructor;x!=w&&"constructor"in n&&"constructor"in e&&!(typeof x=="function"&&x instanceof x&&typeof w=="function"&&w instanceof w)&&(f=!1)}return i.delete(n),i.delete(e),f}var tT=qU;var XU=1,AT="[object Arguments]",nT="[object Array]",_f="[object Object]",QU=Object.prototype,rT=QU.hasOwnProperty;function ZU(n,e,t,A,r,i){var s=Jt(n),o=Jt(e),a=s?nT:Li(n),c=o?nT:Li(e);a=a==AT?_f:a,c=c==AT?_f:c;var l=a==_f,u=c==_f,h=a==c;if(h&&Pi(n)){if(!Pi(e))return!1;s=!0,l=!1}if(h&&!l)return i||(i=new ps),s||Ja(n)?Lf(n,e,t,A,r,i):eT(n,e,a,t,A,r,i);if(!(t&XU)){var d=l&&rT.call(n,"__wrapped__"),p=u&&rT.call(e,"__wrapped__");if(d||p){var f=d?n.value():n,m=p?e.value():e;return i||(i=new ps),r(f,m,t,A,i)}}return h?(i||(i=new ps),tT(n,e,t,A,r,i)):!1}var iT=ZU;function sT(n,e,t,A,r){return n===e?!0:n==null||e==null||!xA(n)&&!xA(e)?n!==n&&e!==e:iT(n,e,t,A,sT,r)}var oT=sT;function KU(n,e){return n!=null&&e in Object(n)}var aT=KU;function JU(n,e,t){e=Qn(e,n);for(var A=-1,r=e.length,i=!1;++A<r;){var s=fs(e[A]);if(!(i=n!=null&&t(n,s)))break;n=n[s]}return i||++A!=r?i:(r=n==null?0:n.length,!!r&&Qa(r)&&as(s,r)&&(Jt(n)||Ci(n)))}var lT=JU;function $U(n,e){return n!=null&&lT(n,e,aT)}var cT=$U;function eV(n){return function(e,t,A){for(var r=-1,i=Object(e),s=A(e),o=s.length;o--;){var a=s[n?o:++r];if(t(i[a],a,i)===!1)break}return e}}var uT=eV;var tV=uT(),hT=tV;var AV=function(){return Kt.Date.now()},Of=AV;var nV="Expected a function",rV=Math.max,iV=Math.min;function sV(n,e,t){var A,r,i,s,o,a,c=0,l=!1,u=!1,h=!0;if(typeof n!="function")throw new TypeError(nV);e=qy(e)||0,zt(t)&&(l=!!t.leading,u="maxWait"in t,i=u?rV(qy(t.maxWait)||0,e):i,h="trailing"in t?!!t.trailing:h);function d(T){var M=A,v=r;return A=r=void 0,c=T,s=n.apply(v,M),s}function p(T){return c=T,o=setTimeout(y,e),l?d(T):s}function f(T){var M=T-a,v=T-c,E=e-M;return u?iV(E,i-v):E}function m(T){var M=T-a,v=T-c;return a===void 0||M>=e||M<0||u&&v>=i}function y(){var T=Of();if(m(T))return g(T);o=setTimeout(y,f(T))}function g(T){return o=void 0,h&&A?d(T):(A=r=void 0,s)}function b(){o!==void 0&&clearTimeout(o),c=0,A=a=r=o=void 0}function x(){return o===void 0?s:g(Of())}function w(){var T=Of(),M=m(T);if(A=arguments,r=this,a=T,M){if(o===void 0)return p(a);if(u)return clearTimeout(o),o=setTimeout(y,e),d(a)}return o===void 0&&(o=setTimeout(y,e)),s}return w.cancel=b,w.flush=x,w}var Su=sV;function oV(n,e,t){(t!==void 0&&!Nr(n[e],t)||t===void 0&&!(e in n))&&qa(n,e,t)}var Tu=oV;function aV(n){return xA(n)&&ls(n)}var dT=aV;function lV(n,e){if(!(e==="constructor"&&typeof n[e]=="function")&&e!="__proto__")return n[e]}var Mu=lV;function cV(n){return Xn(n,Fr(n))}var fT=cV;function uV(n,e,t,A,r,i,s){var o=Mu(n,t),a=Mu(e,t),c=s.get(a);if(c){Tu(n,t,c);return}var l=i?i(o,a,t+"",n,e,s):void 0,u=l===void 0;if(u){var h=Jt(a),d=!h&&Pi(a),p=!h&&!d&&Ja(a);l=a,h||d||p?Jt(o)?l=o:dT(o)?l=cf(o):d?(u=!1,l=yf(a,!0)):p?(u=!1,l=Ef(a,!0)):l=[]:gf(a)||Ci(a)?(l=o,Ci(o)?l=fT(o):(!zt(o)||ja(o))&&(l=Cf(a))):u=!1}u&&(s.set(a,l),r(l,a,A,i,s),s.delete(a)),Tu(n,t,l)}var pT=uV;function mT(n,e,t,A,r){n!==e&&hT(e,function(i,s){if(r||(r=new ps),zt(i))pT(n,e,s,t,mT,A,r);else{var o=A?A(Mu(n,s),i,s+"",n,e,r):void 0;o===void 0&&(o=i),Tu(n,s,o)}},Fr)}var gT=mT;function hV(n){var e=n==null?0:n.length;return e?n[e-1]:void 0}var yT=hV;function dV(n,e){return e.length<2?n:pf(n,l1(e,0,-1))}var vT=dV;function fV(n,e){return oT(n,e)}var $y=fV;var pV=wS(function(n,e,t){gT(n,e,t)}),ll=pV;function mV(n,e){return e=Qn(e,n),n=vT(n,e),n==null||delete n[fs(yT(e))]}var xT=mV;function gV(n){return gf(n)?void 0:n}var bT=gV;var yV=1,vV=2,xV=4,bV=mf(function(n,e){var t={};if(n==null)return t;var A=!1;e=sf(e,function(i){return i=Qn(i,n),A||(A=i.length>1),i}),Xn(n,wf(n),t),A&&(t=Df(t,yV|vV|xV,bT));for(var r=e.length;r--;)xT(t,e[r]);return t}),cl=bV;function wV(n,e,t,A){if(!zt(n))return n;e=Qn(e,n);for(var r=-1,i=e.length,s=i-1,o=n;o!=null&&++r<i;){var a=fs(e[r]),c=t;if(a==="__proto__"||a==="constructor"||a==="prototype")return n;if(r!=s){var l=o[a];c=A?A(l,a,o):void 0,c===void 0&&(c=zt(l)?l:as(e[r+1])?[]:{})}Xa(o,a,c),o=o[a]}return n}var wT=wV;function SV(n,e,t){for(var A=-1,r=e.length,i={};++A<r;){var s=e[A],o=pf(n,s);t(o,s)&&wT(i,Qn(s,n),o)}return i}var ST=SV;function TV(n,e){return ST(n,e,function(t,A){return cT(n,A)})}var TT=TV;var MV=mf(function(n,e){return n==null?{}:TT(n,e)}),ul=MV;var ET,CT=new Promise(n=>{ET=n}),MT=!1;async function PT(){if(MT)return;let n=await import("./physics.js");await n.init(),ET(n),MT=!0}var Bt=class{modifyById(e,t){let A=this;if(A[e]===void 0)throw new Error("not expected");{let i={...A,[e]:t};return Object.setPrototypeOf(i,Bt.prototype),i}}add(e,t){return this.runOp({type:1,id:e,data:t})?.data??this}runOp(e){let t=this;if(e.type===1){let A=t[e.id],r;A===void 0?r={type:2,id:e.id}:r={type:1,id:e.id,data:A};let{id:i,data:s}=e,o={...t,[i]:s};return Object.setPrototypeOf(o,Bt.prototype),{data:o,actual:e,reverse:r}}else if(e.type===2){let{id:A}=e,r=t[A];if(r===void 0)return null;{let i={...t};return Object.setPrototypeOf(i,Bt.prototype),delete i[A],{data:i,actual:e,reverse:{type:1,id:A,data:r}}}}return null}};function Eu(n){if(n.deepFreeze!==void 0){n.deepFreeze(n);return}let e=Object.getOwnPropertyNames(n);for(let t of e){let A=n[t];A&&typeof A=="object"&&Eu(A)}return Object.freeze(n)}function DT(n,e){let t=0;for(;t<n.length&&t<e.length;){if(n[t]<e[t])return-1;if(n[t]>e[t])return 1;t+=1}return t!==e.length?-1:t!==n.length?1:0}var hl=class extends Error{};var He=class extends Array{constructor(...t){super(...t);Object.setPrototypeOf(this,He.prototype)}deepFreeze(){let t=0;for(;t<this.length;)Eu(this[t]),t++}fillCaches0(t){this.objCaches.set(t.id,t)}fillCaches(){if(this.objCaches===void 0){this.objCaches=new Map,Object.getOwnPropertyDescriptor(this,"objCaches").enumerable=!1;for(let t of this)this.fillCaches0(t)}}randomId(){this.fillCaches();let t=Array.from(this.objCaches.keys());if(t.length!==0)return t[Math.max(0,Math.floor(Math.random()*t.length)-1)]}data(t){return this.get(t)?.data}get(t){return this.fillCaches(),this.objCaches.get(t)}modifyById(t,A){if(this.get(t)===void 0)throw new Error("not expected");{let i=this,s=i.findIndex(c=>c.id===t);if(s<0)throw new Error("not expected");let o=i[s];return i=[...i],i[s]={...o,data:A},this.modifyArrayBy(i)}}modifyArrayBy(t){Object.setPrototypeOf(t,He.prototype);let A=t;return IT()||A.fillCaches(),A}runOp(t){switch(t.type){case 4:return this.addOp(t);case 5:return this.deleteOp(t);case 6:return this.moveOp(t)}return null}addOp(t){let{fi:A,id:r,data:i}=t,s=this,o={fi:A,id:r,data:i};return s=[...s,o],s.sort((c,l)=>c.fi-l.fi),t.localIndex=s.indexOf(o),{data:this.modifyArrayBy(s),actual:t,reverse:{type:5,id:r}}}deleteOp(t){let{id:A}=t,r=this,i=r.findIndex(a=>a.id===A);if(i===-1)return null;t.localIndex=i,r=[...r];let s=r.splice(i,1)[0];return{data:this.modifyArrayBy(r),actual:t,reverse:{type:4,...s}}}moveOp(t){let{fi:A,id:r}=t,i=this;i=[...i];let s=i.findIndex(l=>l.id===r);if(s===-1)return null;let o=i[s].fi,a={...i[s],fi:A};return i[s]=a,i.sort((l,u)=>l.fi-u.fi),t.localIndex=i.indexOf(a),{data:this.modifyArrayBy(i),actual:t,reverse:{type:6,fi:o,id:r}}}previous(t){if(t===null)return this.length===0?null:this[this.length-1].id;let A=null;for(let r of this){if(r.id===t)return A;A=r.id}return null}insertBeforeHelper(t,A){return this.insertAfterHelper(this.previous(t),A)}insertAfterHelper(t,A){let r=this;if(t===null){if(r.length===0)return Gr(0,A,A);{let i=r[0].fi;return Gr(i-A,i,A)}}else{let i=this.get(t);if(i===void 0)throw new Error("illegal args");let s=r.find(o=>o.fi>i.fi);if(s===void 0){let o=r[r.length-1].fi;return Gr(o,o+A,A)}else return Gr(i.fi,s.fi,A)}}};function Rf(n){let e={...n};return Object.setPrototypeOf(e,Object.getPrototypeOf(n)),e}function Gr(n,e,t){if(n===void 0?e===void 0?(n=0,e=10):n=e-10:e===void 0&&(e=n+10),n>e){let i=n;n=e,e=i}let A=[],r=1/(t+1);for(let i=0;i<t;i++){let s=n+(e-n)*(i+.75+Math.random()*.5)*r;A.push(s)}return A}function dl(n){return n instanceof Uint8Array||n instanceof Uint16Array||n instanceof Uint32Array||n instanceof Int8Array||n instanceof Int16Array||n instanceof Int32Array||n instanceof Float32Array||n instanceof Float64Array}function IT(){return typeof process<"u"}function LT(n,e){for(let t of n)e(t.id,t.data)!==!0&&LT(t.children,e)}function _T(n,e){if(e(n.id,n.data)!==!0)for(let t of n.children)_T(t,e)}var qt=class extends Array{constructor(...t){super(...t);Object.setPrototypeOf(this,qt.prototype)}deepFreeze(){let t=0;for(;t<this.length;)Eu(this[t]),t++}fillCaches0(t,A){this.objCaches.set(t.id,t),this.parentCaches.set(t.id,A);for(let r of t.children)this.fillCaches0(r,t.id)}fillCaches(){if(this.objCaches===void 0){this.objCaches=new Map,this.parentCaches=new Map;for(let t of this)this.fillCaches0(t,null)}}randomId(){this.fillCaches();let t=Array.from(this.objCaches.keys());if(t.length!==0)return t[Math.max(0,Math.floor(Math.random()*t.length)-1)]}nonExistOrDescendantOf(t,A){if(!this.has(t))return!0;for(;t;){let r=this.parent(t);if(r===A)return!0;t=r}return!1}isDescendantOf(t,A){for(;t;){let r=this.parent(t);if(r===A)return!0;t=r}return!1}data(t){return this.get(t)?.data}has(t){return this.childrenOf(t)!==void 0}get(t){return this.fillCaches(),this.objCaches.get(t)}childrenOf(t){return t===null?this:this.get(t)?.children}traverseFrom(t,A){if(t===null)this.traverse(A);else{let r=this.get(t);r&&_T(r,A)}}traverse(t){LT(this,t)}totalSize(){return this.fillCaches(),this.objCaches.size}parent(t){return this.fillCaches(),this.parentCaches.get(t)}childrenArray(t){return t===null?this:this.get(t).children}modifyById(t,A){if(this.get(t)===void 0)throw new Error("not expected");{let i=this.parent(t),s=this.childrenArray(i),o=s.findIndex(l=>l.id===t);if(o<0)throw new Error("not expected");let a=s[o];return s=[...s],s[o]={...a,data:A},this.modifyArrayBy(i,s)}}modifyArrayBy(t,A){let r=t,i=A;for(;r!==null;){let o=i,a=r;if(r=this.parent(r),r===void 0)throw new Error;i=this.childrenArray(r);let c=i.findIndex(l=>l.id===a);if(c<0)throw new Error;i=[...i],i[c]={...i[c],children:o}}Object.setPrototypeOf(i,qt.prototype);let s=i;return s.fillCaches(),s}runOp(t){switch(t.type){case 7:return this.addOp(t);case 8:return this.deleteOp(t);case 9:return this.moveOp(t)}return null}checkDuplicatedIdRec({id:t,children:A}){if(this.get(t)!==void 0)return!0;for(let r of A)if(this.checkDuplicatedIdRec(r))return!0;return!1}addOp(t){let{parent:A,fi:r,id:i,data:s,children:o}=t;if(A!==null&&this.get(A)===void 0)return null;if(this.checkDuplicatedIdRec(t))return null;{let a=A,c=this.childrenArray(a),l={fi:r,id:i,data:s,children:o};return c=[...c,l],c.sort((h,d)=>h.fi-d.fi),t.localIndex=c.indexOf(l),{data:this.modifyArrayBy(a,c),actual:t,reverse:{type:8,id:i}}}}deleteOp(t){let{id:A}=t;if(this.get(A)===null)return null;{let r=this.parent(A);if(r===void 0)return null;let i=this.childrenArray(r),s=i.findIndex(c=>c.id===A);t.localIndex=s,i=[...i];let o=i.splice(s,1)[0];return{data:this.modifyArrayBy(r,i),actual:t,reverse:{type:7,...o,parent:r}}}}moveOp(t){let{parent:A,fi:r,id:i}=t;if(A!==null&&this.get(A)===void 0)return this.deleteOp({type:8,id:i});if(A!==null){let d=A;for(;d!==null;){if(d===void 0)throw new Error;if(d===i)throw new hl("cyclic tree");d=this.parent(d)}}let s=this.parent(i);if(s===void 0)return null;let o=s,a=this.childrenArray(s),c=a.findIndex(d=>d.id===i);a=[...a];let l=a.splice(c,1)[0],u=this.modifyArrayBy(s,a);s=A,a=u.childrenArray(s);let h=l.fi;return l={...l,fi:r},a=[...a,l],a.sort((d,p)=>d.fi-p.fi),t.localIndex=a.indexOf(l),u=u.modifyArrayBy(s,a),{data:u,actual:t,reverse:{type:9,parent:o,fi:h,id:i}}}previous(t,A){if(A===null){let i=this.childrenArray(t);return i.length===0?null:i[i.length-1].id}let r=null;for(let i of this.childrenArray(t)){if(i.id===A)return r;r=i.id}return null}traverseSortNext(t){let A=this.parent(t);if(A!==void 0){let r=this.childrenArray(A),i=r.findIndex(s=>s.id===t)+1;if(i<r.length)return r[i].id;if(A)return this.traverseSortNext(A)}}sortNext(t){let A=this.childrenArray(t);return A.length>0?A[0].id:this.traverseSortNext(t)}traverseSortPrevious(t){let A=this.childrenArray(t);return A.length>0?this.traverseSortPrevious(A[A.length-1].id):t}sortPrevious(t){let A=this.parent(t);if(A!==void 0){let r=this.childrenArray(A),i=r.findIndex(s=>s.id===t)-1;return i>=0?this.traverseSortPrevious(r[i].id):A}}getAllSorted(t){let A=[];for(let r of t){let i=this.getWithSortKey(r.id);i!==void 0&&A.push({...r,...i})}A.sort((r,i)=>DT(r.sortKey,i.sortKey));for(let r of A)delete r.sortKey;return A}getWithSortKey(t){var A=t;let r=[],i=this.get(A),s=i;if(i!==void 0){for(;A;)r.splice(0,0,i.fi),A=this.parent(A),A!==null&&(i=this.get(A));return{...s,sortKey:r}}}insertBeforeHelper(t,A,r){return this.insertAfterHelper(t,this.previous(t,A),r)}insertAfterHelper(t,A,r){let i=this.childrenArray(t);if(A===null){if(i.length===0)return Gr(0,r,r);{let s=i[0].fi;return Gr(s-r,s,r)}}else{let s=this.get(A);if(s===void 0||this.parent(A)!==t)throw new Error("illegal args");let o=i.find(a=>a.fi>s.fi);if(o===void 0){let a=i[i.length-1].fi;return Gr(a,a+r,r)}else return Gr(s.fi,o.fi,r)}}};var fl;(e=>{function n(t,A){if(A.type!==0)return null;if(Array.isArray(t)){let r=A.props,i={},s=[...t],o=!1;if(r)for(let a of Object.keys(r)){let c=parseInt(a);if(isNaN(c))throw new Error("wrong index");i[a]=s[c],s[c]=r[a],o=!0}return o?{data:s,actual:A,reverse:{type:0,props:i}}:null}else{let r=A.props,i={},s={...t},o=!1;if(r)for(let a of Object.keys(r)){i[a]=s[a];let c=r[a];c===void 0?delete s[a]:s[a]=c,o=!0}return o?{data:s,actual:A,reverse:{type:0,props:i}}:null}}e.runOp=n})(fl||(fl={}));function pl(n){return n&&typeof n=="object"&&n instanceof UA}var UA=class{unusedFunOverridesTable(e){}runOp(e){let t=[],A=this,r=0,i={};for(;r<e.path.length;){if(t.push(A),A=A===void 0?void 0:A[e.path[r]],A!==void 0&&!pl(A))return null;r+=1}A=A?Rf(A):new UA;for(let[a,c]of Object.entries(e.props)){let l=A[a];i[a]=l,c===void 0?delete A[a]:A[a]=c}for(;r>0;){if(Object.keys(A).length===0){let a=t[r-1];a&&(A=Rf(a),delete A[e.path[r-1]])}else{let a=t[r-1];if(a){let c=Rf(a);c[e.path[r-1]]=A,A=c}else{let c=new UA;c[e.path[r-1]]=A,A=c}}r-=1}let s=Object.setPrototypeOf(A,UA.prototype),o={...e,props:i};return{data:s,actual:e,reverse:o}}},ev;(A=>{function n(r,i){return Cu(r,i)??r}A.apply=n;function e(r,i){return OT(r,i)}A.merge=e;function t(r,i){let s=0,o=i.path,a=r;for(;s<o.length&&a!==void 0;){if(a=_i.zoomOnce(a,o[s]),a===void 0)return i;if(!pl(a))return;s+=1}if(a===void 0)return i;if(!!pl(a))if(i.type===0){let c={...i.props};for(let l of Object.keys(a))delete c[l];return{...i,props:c}}else if(i.type===1||i.type===4||i.type===7){let c=tv([i],a);return c?(console.log(c),c):i}else return i}A.filterOp=t})(ev||(ev={}));function tv(n,e){if(e===void 0)return;let t=!1,A=n.map(r=>{let i=r.id,s=Cu(r.data,e[i]);if(t=t||s!==void 0,s===void 0&&(s=r.data),r.children){let o=tv(r.children,e);return o!==void 0?t=!0:o=r.children,{...r,id:i,data:s,children:o}}else return{...r,id:i,data:s}});if(t)return A}function EV(n,e){if(e===void 0)return;let t=!1,A=n.map(r=>{let i=r.id,s=Cu(r.data,e[i]);return t=t||s!==void 0,s===void 0&&(s=r.data),{...r,id:i,data:s}});if(t)return Object.setPrototypeOf(A,Object.getPrototypeOf(n)),A}function Cu(n,e){if(!pl(e))return e;if(n instanceof qt){let t=tv(n,e);return t!==void 0&&Object.setPrototypeOf(t,Object.getPrototypeOf(n)),t}else{if(n instanceof He)return EV(n,e);if(Array.isArray(n)){let t=!1,A=n.map((r,i)=>{let s=Cu(r,e[i]);return t=t||s!==void 0,s===void 0&&(s=r),s});return t?(Object.setPrototypeOf(A,Object.getPrototypeOf(n)),A):void 0}else if(n&&typeof n=="object"){let t={},A=!1;for(let[r,i]of Object.entries(n)){let s=Cu(i,e[r]);A=A||s!==void 0,s===void 0&&(s=i),t[r]=s}return A?(Object.setPrototypeOf(t,Object.getPrototypeOf(n)),t):void 0}}}function OT(n,e){if(n===void 0)return e;if(e===void 0)return n;if(!pl(e))return e;if(!pl(n))return ev.apply(n,e);let t=new Set;for(let r of Object.keys(n))t.add(r);for(let r of Object.keys(e))t.add(r);let A=new UA;for(let r of t){let i=OT(n===void 0?void 0:n[r],e===void 0?void 0:e[r]);A[r]=i}return A}function RT(n,e){let t={cur:[],result:[],len:0};return n=Pu(n,e,t)??n,[n,t.result]}function Bf(n,e){return n===null?null:(n.cur[n.len]=e,n.len+=1,n)}function Nf(n){n&&(n.len-=1)}function CV(n){if(n===null)return null;n.result.push(n.cur.slice(0,n.len))}function BT(n,e,t){let A=!1,r=n.map(i=>{let s=i.id,o=e[s];if(o!==void 0&&typeof o=="string"&&(A=!0,s=o,t!==null))throw new Error("not supported");let a=Pu(i.data,e,Bf(t,s));Nf(t),A=A||a!==void 0,a===void 0&&(a=i.data);let c=BT(i.children,e,t);return c!==void 0?A=!0:c=i.children,{...i,id:s,data:a,children:c}});if(A)return r}function PV(n,e,t){let A=!1,r=n.map(i=>{let s=i.id,o=e[s];if(o!==void 0&&typeof o=="string"&&(A=!0,s=o,t!==null))throw new Error("not supported");let a=Pu(i.data,e,Bf(t,s));return Nf(t),A=A||a!==void 0,a===void 0&&(a=i.data),{...i,id:s,data:a}});if(A)return Object.setPrototypeOf(r,Object.getPrototypeOf(n)),r}function Pu(n,e,t){if(n instanceof qt){let A=BT(n,e,t);return A!==void 0&&Object.setPrototypeOf(A,Object.getPrototypeOf(n)),A}else{if(n instanceof He)return PV(n,e,t);if(Array.isArray(n)){let A=!1,r=n.map((i,s)=>{let o=Pu(i,e,Bf(t,s));return Nf(t),A=A||o!==void 0,o===void 0&&(o=i),o});return A?(Object.setPrototypeOf(r,Object.getPrototypeOf(n)),r):void 0}else if(n&&typeof n=="object"&&!dl(n)){let A={},r=!1;for(let[i,s]of Object.entries(n))if(i!=="name"&&i!=="text"){let o=e[i];if(typeof o=="string"){if(t!==null)throw new Error("not supported");r=!0,i=o}let a=Pu(s,e,Bf(t,i));Nf(t),r=r||a!==void 0,a===void 0&&(a=s),A[i]=a}else A[i]=s;return r?(Object.setPrototypeOf(A,Object.getPrototypeOf(n)),A):void 0}else if(typeof n=="string"){let A=e[n];if(A!==void 0){if(n.length!==36)throw new Error("for now you should only call this method when the key is a uuid");CV(t)}return A}else return}}var NT;(e=>{function n(t,A){let r=_i.zoom(A,t.path);if(typeof r=="object"){let i={};for(let s of Object.keys(t.props))i[s]=r[s];return{...t,props:i}}else return{...t,props:{}}}e.replaceProps=n})(NT||(NT={}));var ms;(o=>{function n(a,c){return{...a,path:a.path.slice(c)}}o.drop=n;function e(a,c){return t(a,c)?.data??a}o.applySimple=e;function t(a,c){let l=c.path;for(var u=[];;){let h;if(a instanceof UA&&c.type===0&&(h=a.runOp({...c,path:l.slice(u.length)}),h===null&&(h=void 0)),u.length===l.length&&(a instanceof qt||a instanceof He||a instanceof Bt?h=a.runOp(c):h=fl.runOp(a,c)),h!==void 0)if(h!==null){let f=h.data;for(let m=u.length-1;m>=0;m--){let y=l[m],g=u[m];if(g instanceof qt){if(typeof y=="number")throw new Error("illegal arg");f=g.modifyById(y,f)}else if(g instanceof He){if(typeof y=="number")throw new Error("illegal arg");f=g.modifyById(y,f)}else if(g instanceof Bt){if(typeof y=="number")throw new Error("illegal arg");f=g.modifyById(y,f)}else if(g instanceof UA){let b={...g,[y]:f};f=Object.setPrototypeOf(b,UA.prototype)}else if(typeof g=="object")if(Array.isArray(g)){if(typeof y=="string"&&(y=parseInt(y),isNaN(y)))throw new Error("Invalid path");let b=f;f=[...g],f[y]=b}else f={...g,[y]:f};else return null}return{data:f,actual:{...h.actual,path:l},reverse:{...h.reverse,path:l}}}else return null;let d=l[u.length],p;if(a instanceof qt){if(typeof d=="number")throw new Error("");p=a.get(d)?.data}else if(a instanceof He){if(typeof d=="number")throw new Error("");p=a.get(d)?.data}else a!==null&&(p=a[d]);if(p!==void 0)u.push(a),a=p;else return null}}o.apply=t;function A(a,c){for(let l=0;l<a.length&&l<c.length;l++)if(a[l]!==c[l])return!0;return!1}o.pathDisjoint=A;function r(a,c){if(a.length!==c.length)return!1;for(let l=0;l<a.length;l++)if(a[l]!==c[l])return!1;return!0}o.pathEq=r;function i(a,c){return A(a.path,c.path)}o.commutative=i;function s(a,c){return a.type===0&&c.type===0&&r(a.path,c.path)?Object.keys(a.props).every(l=>c.props[l]!==void 0):!1}o.subsumed=s})(ms||(ms={}));var FT;(a=>{function n(){return[]}a.empty=n;function e(c,l){let u=[];for(let h of c){let[d,...p]=h.path;d===l&&u.push({...h,path:p})}return u}a.removePrefix=e;function t(c,l){return c.map(u=>({...u,path:[l,...u.path]}))}a.addPrefix=t;function A(c,l){return[...c,...l]}a.concat=A;function r(c,l){return[...c.filter(h=>!l.some(d=>ms.subsumed(h,d))),...l]}a.compress=r;function i(c,l){return c.every(u=>l.every(h=>ms.commutative(u,h)))}a.commutative=i;function s(c,l){for(let u of l){let h=o(c,u);h!==null&&(c=h.data)}return c}a.applyAll=s;function o(c,l){var u=c;let h=[],d=[];for(let p of l)try{if(p.type===3){let f=_i.zoom(u,[...p.path,p.id]),m=ms.apply(u,{...p,type:2});if(m!==null){u=m.data;let[y,g]=RT(u,{[p.id]:f});u=y;for(let b of g){let x=b[b.length-1];b.splice(b.length-1,1),h.push({type:0,path:b,props:{[x]:f}}),d.push({type:0,path:b,props:{[x]:p.id}})}d.push(m.reverse),h.push(m.actual)}}else{let f=ms.apply(u,p);f!==null&&(h.push(f.actual),u=f.data,d.push(f.reverse))}}catch(f){if(f instanceof hl)return null;throw f}return{data:u,actual:h,reverse:d.reverse()}}a.apply=o})(FT||(FT={}));var GT=Symbol(),Du=Symbol(),xo=class{reportOp(e,t,A=[]){let r=this;if(t===null)return;r._current=t.data;let i=A;for(;!(r instanceof Gf);){let s=r._path,o=r._current;if(s!==""&&i.splice(0,0,s),r=r._parent,r===null)return;r.update(s,o)}r.push(i,e,t.actual,t.reverse)}deleteChildren(e){if(this._children){let t=this._children[e];if(t){let A=t[Du];A&&A(),delete this._children[e]}}}},nv=class extends xo{constructor(e,t,A){super(),this._parent=e,this._path=t,this._current=A}update(e,t){if(Array.isArray(this._current)){if(typeof e=="string"&&(e=parseInt(e),isNaN(e)))throw new Error("Invalid path");this._current=[...this._current],this._current[e]=t}else this._current={...this._current,[e]:t}}runOp(e){this.reportOp(e,fl.runOp(this._current,e),e.path)}},rv=class extends xo{constructor(e,t,A){super(),this._parent=e,this._path=t,this._current=A}update(e,t){this._current={...this._current,[e]:t},Object.setPrototypeOf(this._current,Bt.prototype)}runOp(e){this.reportOp(e,this._current.runOp(e))}},kT={get(n,e){if(e===Du)return()=>{n._parent=null};if(e===GT)return n._current;let{_current:t,_children:A}=n;if(e==="push"&&Array.isArray(t))throw new Error("not supported to expand array");let r=A===void 0?void 0:A[e];if(r!==void 0)return r;let i=t[e],s=kf(n,e,i);return s!==i?(A===void 0&&(A={},n._children=A),A[e]=s,s):i},has(n,e){return e in n._current},ownKeys(n){return Reflect.ownKeys(n._current)},defineProperty(){throw Error("not supported")},getPrototypeOf(n){return Object.getPrototypeOf(n._current)},setPrototypeOf(){throw Error("not supported")},getOwnPropertyDescriptor(n,e){let t=n._current,A=Reflect.getOwnPropertyDescriptor(t,e);return A&&{writable:!0,configurable:!0,enumerable:A.enumerable,value:t[e]}}},DV={...kT,set(n,e,t){let A={type:0,props:{[e]:mn(t)??t}};return n.deleteChildren(e),n.runOp(A),!0},deleteProperty(n,e){let t={type:0,props:{[e]:void 0}};return n.deleteChildren(e),n.runOp(t),!0}},IV={...kT,set(n,e,t){return t===void 0?this.deleteProperty(n,e):(n.deleteChildren(e),n.runOp({type:1,id:e,data:t})),!0},deleteProperty(n,e){return n.runOp({type:2,id:e}),!0}},ml=class extends xo{constructor(e,t,A){super(),this._children={},this._parent=e,this._path=t,this._current=A,this[Du]=()=>{this._parent=null}}unproxy(){return this._current}update(e,t){this._current=this._current.modifyById(e,t)}runOp(e){this.reportOp(e,this._current.runOp(e))}randomId(){return this._current.randomId()}isDescendantOf(e,t){return this._current.isDescendantOf(e,t)}childrenOf(e){return this._current.childrenOf(e)}traverse(e){return this._current.traverse(e)}get(e){return this._current.get(e)}parent(e){return this._current.parent(e)}traverse(e){this._current.traverse((t,A)=>{e(t,this.data(t))})}data(e){let{_current:t,_children:A}=this,r=A===void 0?void 0:A[e];if(r!==void 0)return r;let i=t.get(e)?.data,s=kf(this,e,i);return s!==i?(A===void 0&&(A={},this._children=A),A[e]=s,s):i}add(e,t,A,r,i){this.runOp({type:7,parent:e,fi:t,id:A,data:r,children:i})}move(e,t,A){this.runOp({type:9,parent:e,fi:t,id:A})}insertAfter(e,t,A){let r=this._current.insertAfterHelper(e,t,A.length);for(let i=0;i<A.length;i++){let s=A[i];this.add(e,r[i],s.id,s.data,s.children)}}insertBefore(e,t,A){let r=this._current.insertBeforeHelper(e,t,A.length);for(let i=0;i<A.length;i++){let s=A[i];this.add(e,r[i],s.id,s.data,s.children)}}moveAfter(e,t,A){let r=this._current.insertAfterHelper(e,t,A.length);for(let i=0;i<A.length;i++){let s=A[i];this.move(e,r[i],s)}}moveBefore(e,t,A){let r=this._current.insertBeforeHelper(e,t,A.length);for(let i=0;i<A.length;i++){let s=A[i];this.move(e,r[i],s)}}delete(e){this.deleteChildren(e),this.runOp({type:8,id:e})}sortNext(e){return this._current.sortNext(e)}sortPrevious(e){return this._current.sortPrevious(e)}getAllSorted(e){return this._current.getAllSorted(e)}},Ff=class extends xo{constructor(e,t,A){super(),this._parent=e,this._path=t,this._current=A,this[Du]=()=>{this._parent=null}}feedOp(e){let{path:t,...A}=e;this.reportOp(A,ms.apply(this._current,e),t)}},gl=class extends xo{constructor(e,t,A){super(),this._children={},this._parent=e,this._path=t,this._current=A,this[Du]=()=>{this._parent=null}}unproxy(){return this._current}get length(){return this._current.length}forEach(e){let t=this.length;for(let A=0;A<t;A++){let r=this._current[A].id,i=this._current[A].fi;e(this.data(this._current[A].id),r,i)}}find(e){let t=this.length;for(let A=0;A<t;A++){let r=this._current[A].id;if(e(this.data(r),r))return this.get(r)}}update(e,t){this._current=this._current.modifyById(e,t)}randomId(){return this._current.randomId()}get(e){return{...this._current.get(e),data:this.data(e)}}data(e){let{_current:t,_children:A}=this,r=A===void 0?void 0:A[e];if(r!==void 0)return r;let i=t.get(e)?.data,s=kf(this,e,i);return s!==i?(A===void 0&&(A={},this._children=A),A[e]=s,s):i}runOp(e){this.reportOp(e,this._current.runOp(e))}add(e,t,A){this.runOp({type:4,fi:e,id:t,data:A})}move(e,t){this.runOp({type:6,fi:e,id:t})}insertAfter(e,t){let A=this._current.insertAfterHelper(e,t.length);for(let r=0;r<t.length;r++){let i=t[r];this.add(A[r],i.id,i.data)}}insertBefore(e,t){let A=this._current.insertBeforeHelper(e,t.length);for(let r=0;r<t.length;r++){let i=t[r];this.add(A[r],i.id,i.data)}}moveAfter(e,t){let A=this._current.insertAfterHelper(e,t.length);for(let r=0;r<t.length;r++){let i=t[r];this.move(A[r],i)}}moveBefore(e,t){let A=this._current.insertBeforeHelper(e,t.length);for(let r=0;r<t.length;r++){let i=t[r];this.move(A[r],i)}}delete(e){this.deleteChildren(e),this.runOp({type:5,id:e})}};function Av(n,e,t){if(n.length>0){let A=n[n.length-1];if(A.type===0&&e.type===0&&_i.equal(A.path,t)){Object.assign(A.props,e.props);return}}n.push({...e,path:t})}var Gf=class{constructor(e){this.ts=[],this.actual=[],this.reverse=[],this._current=e}update(e,t){if(e!=="")throw new Error("");this._current=t}push(e,t,A,r){Av(this.ts,t,e),Av(this.actual,A,e),Av(this.reverse,r,e)}result(){return{data:this._current,ts:this.ts,actual:this.actual,reverse:this.reverse.reverse()}}};function kf(n,e,t){return t instanceof qt?new ml(n,e,t):t instanceof He?new gl(n,e,t):t instanceof UA?new Ff(n,e,t):t instanceof Bt?new Proxy(new rv(n,e,t),IV):t!==null&&typeof t=="object"?dl(t)?t:new Proxy(new nv(n,e,t),DV):t}function iv(n){let e=new Gf(n);return[kf(e,"",n),e]}function sv(n,e){let[t,A]=iv(n);return e(t),A.result()}function mn(n){return n instanceof ml||n instanceof gl||n instanceof Ff?n._current:n!==null&&typeof n=="object"?n[GT]:n}var _i;(r=>{function n(i,s){if(s.length===i.length)for(var o=0;o<i.length;){if(i[o]!==s[o])return!1;o+=1}else return!1;return!0}r.equal=n;function e(i,s,o){let a=A(o,i);if(a!==void 0&&typeof a=="object"&&a!==null){let c={...s};return Object.keys(a).forEach(l=>{delete c[l]}),c}else return s}r.removeOverridden=e;function t(i,s){if((i instanceof qt||i instanceof ml)&&typeof s=="string")return i.data(s);if((i instanceof He||i instanceof gl)&&typeof s=="string")return i.data(s);if(typeof s=="number"&&Array.isArray(i))return i[s];if(typeof s=="string"&&typeof i=="object"&&i!==null)return i[s]}r.zoomOnce=t;function A(i,s,o=0){for(;o<s.length&&i!==void 0;)i=t(i,s[o]),o+=1;return i}r.zoom=A})(_i||(_i={}));var Uf=class{},Iu=class extends Uf{constructor(t){super();this.id=t}},Lu=class extends Uf{constructor(t){super();this.data=t}};var av;try{av=new TextDecoder}catch{}var Le,ys,Z=0;var qT=[],lv=qT,cv=0,gn={},bt,gs,Zn=0,kr=0,Nn,Oi,an=[],Pt,UT={useRecords:!1,mapsAsObjects:!0},_u=class{},hv=new _u;hv.name="MessagePack 0xC1";var yl=!1,Ur=class{constructor(e){e&&(e.useRecords===!1&&e.mapsAsObjects===void 0&&(e.mapsAsObjects=!0),e.structures?e.structures.sharedLength=e.structures.length:e.getStructures&&((e.structures=[]).uninitialized=!0,e.structures.sharedLength=0)),Object.assign(this,e)}unpack(e,t){if(Le)return JT(()=>(zf(),this?this.unpack(e,t):Ur.prototype.unpack.call(UT,e,t)));ys=t>-1?t:e.length,Z=0,cv=0,kr=0,gs=null,lv=qT,Nn=null,Le=e;try{Pt=e.dataView||(e.dataView=new DataView(e.buffer,e.byteOffset,e.byteLength))}catch(A){throw Le=null,e instanceof Uint8Array?A:new Error("Source must be a Uint8Array or Buffer but was a "+(e&&typeof e=="object"?e.constructor.name:typeof e))}if(this instanceof Ur){if(gn=this,this.structures)return bt=this.structures,Vf();(!bt||bt.length>0)&&(bt=[])}else gn=UT,(!bt||bt.length>0)&&(bt=[]);return Vf()}unpackMultiple(e,t){let A,r=0;try{yl=!0;let i=e.length,s=this?this.unpack(e,i):jf.unpack(e,i);if(t){for(t(s);Z<i;)if(r=Z,t(Vf())===!1)return}else{for(A=[s];Z<i;)r=Z,A.push(Vf());return A}}catch(i){throw i.lastPosition=r,i.values=A,i}finally{yl=!1,zf()}}_mergeStructures(e,t){e=e||[];for(let A=0,r=e.length;A<r;A++){let i=e[A];i&&(i.isShared=!0,A>=32&&(i.highByte=A-32>>5))}e.sharedLength=e.length;for(let A in t||[])if(A>=0){let r=e[A],i=t[A];i&&(r&&((e.restoreStructures||(e.restoreStructures=[]))[A]=r),e[A]=i)}return this.structures=e}decode(e,t){return this.unpack(e,t)}};function Vf(){try{if(!gn.trusted&&!yl){let e=bt.sharedLength||0;e<bt.length&&(bt.length=e)}let n=$t();if(Z==ys)bt.restoreStructures&&VT(),bt=null,Le=null,Oi&&(Oi=null);else if(Z>ys){let e=new Error("Unexpected end of MessagePack data");throw e.incomplete=!0,e}else if(!yl)throw new Error("Data read, but end of buffer not reached");return n}catch(n){throw bt.restoreStructures&&VT(),zf(),(n instanceof RangeError||n.message.startsWith("Unexpected end of buffer"))&&(n.incomplete=!0),n}}function VT(){for(let n in bt.restoreStructures)bt[n]=bt.restoreStructures[n];bt.restoreStructures=null}function $t(){let n=Le[Z++];if(n<160)if(n<128){if(n<64)return n;{let e=bt[n&63]||gn.getStructures&&XT()[n&63];return e?(e.read||(e.read=dv(e,n&63)),e.read()):n}}else if(n<144)if(n-=128,gn.mapsAsObjects){let e={};for(let t=0;t<n;t++)e[ZT()]=$t();return e}else{let e=new Map;for(let t=0;t<n;t++)e.set($t(),$t());return e}else{n-=144;let e=new Array(n);for(let t=0;t<n;t++)e[t]=$t();return e}else if(n<192){let e=n-160;if(kr>=Z)return gs.slice(Z-Zn,(Z+=e)-Zn);if(kr==0&&ys<140){let t=e<16?fv(e):QT(e);if(t!=null)return t}return uv(e)}else{let e;switch(n){case 192:return null;case 193:return Nn?(e=$t(),e>0?Nn[1].slice(Nn.position1,Nn.position1+=e):Nn[0].slice(Nn.position0,Nn.position0-=e)):hv;case 194:return!1;case 195:return!0;case 196:return ov(Le[Z++]);case 197:return e=Pt.getUint16(Z),Z+=2,ov(e);case 198:return e=Pt.getUint32(Z),Z+=4,ov(e);case 199:return bo(Le[Z++]);case 200:return e=Pt.getUint16(Z),Z+=2,bo(e);case 201:return e=Pt.getUint32(Z),Z+=4,bo(e);case 202:if(e=Pt.getFloat32(Z),gn.useFloat32>2){let t=Wf[(Le[Z]&127)<<1|Le[Z+1]>>7];return Z+=4,(t*e+(e>0?.5:-.5)>>0)/t}return Z+=4,e;case 203:return e=Pt.getFloat64(Z),Z+=8,e;case 204:return Le[Z++];case 205:return e=Pt.getUint16(Z),Z+=2,e;case 206:return e=Pt.getUint32(Z),Z+=4,e;case 207:return gn.int64AsNumber?(e=Pt.getUint32(Z)*4294967296,e+=Pt.getUint32(Z+4)):e=Pt.getBigUint64(Z),Z+=8,e;case 208:return Pt.getInt8(Z++);case 209:return e=Pt.getInt16(Z),Z+=2,e;case 210:return e=Pt.getInt32(Z),Z+=4,e;case 211:return gn.int64AsNumber?(e=Pt.getInt32(Z)*4294967296,e+=Pt.getUint32(Z+4)):e=Pt.getBigInt64(Z),Z+=8,e;case 212:if(e=Le[Z++],e==114)return YT(Le[Z++]&63);{let t=an[e];if(t)return t.read?(Z++,t.read($t())):t.noBuffer?(Z++,t()):t(Le.subarray(Z,++Z));throw new Error("Unknown extension "+e)}case 213:return e=Le[Z],e==114?(Z++,YT(Le[Z++]&63,Le[Z++])):bo(2);case 214:return bo(4);case 215:return bo(8);case 216:return bo(16);case 217:return e=Le[Z++],kr>=Z?gs.slice(Z-Zn,(Z+=e)-Zn):_V(e);case 218:return e=Pt.getUint16(Z),Z+=2,kr>=Z?gs.slice(Z-Zn,(Z+=e)-Zn):OV(e);case 219:return e=Pt.getUint32(Z),Z+=4,kr>=Z?gs.slice(Z-Zn,(Z+=e)-Zn):RV(e);case 220:return e=Pt.getUint16(Z),Z+=2,HT(e);case 221:return e=Pt.getUint32(Z),Z+=4,HT(e);case 222:return e=Pt.getUint16(Z),Z+=2,WT(e);case 223:return e=Pt.getUint32(Z),Z+=4,WT(e);default:if(n>=224)return n-256;if(n===void 0){let t=new Error("Unexpected end of MessagePack data");throw t.incomplete=!0,t}throw new Error("Unknown MessagePack token "+n)}}}var LV=/^[a-zA-Z_$][a-zA-Z\d_$]*$/;function dv(n,e){function t(){if(t.count++>2){let r=n.read=new Function("r","return function(){return {"+n.map(i=>LV.test(i)?i+":r()":"["+JSON.stringify(i)+"]:r()").join(",")+"}}")($t);return n.highByte===0&&(n.read=zT(e,n.read)),r()}let A={};for(let r=0,i=n.length;r<i;r++){let s=n[r];A[s]=$t()}return A}return t.count=0,n.highByte===0?zT(e,t):t}var zT=(n,e)=>function(){let t=Le[Z++];if(t===0)return e();let A=n<32?-(n+(t<<5)):n+(t<<5),r=bt[A]||XT()[A];if(!r)throw new Error("Record id is not defined for "+A);return r.read||(r.read=dv(r,n)),r.read()};function XT(){let n=JT(()=>(Le=null,gn.getStructures()));return bt=gn._mergeStructures(n,bt)}var uv=Hf,_V=Hf,OV=Hf,RV=Hf;function Hf(n){let e;if(n<16&&(e=fv(n)))return e;if(n>64&&av)return av.decode(Le.subarray(Z,Z+=n));let t=Z+n,A=[];for(e="";Z<t;){let r=Le[Z++];if((r&128)===0)A.push(r);else if((r&224)===192){let i=Le[Z++]&63;A.push((r&31)<<6|i)}else if((r&240)===224){let i=Le[Z++]&63,s=Le[Z++]&63;A.push((r&31)<<12|i<<6|s)}else if((r&248)===240){let i=Le[Z++]&63,s=Le[Z++]&63,o=Le[Z++]&63,a=(r&7)<<18|i<<12|s<<6|o;a>65535&&(a-=65536,A.push(a>>>10&1023|55296),a=56320|a&1023),A.push(a)}else A.push(r);A.length>=4096&&(e+=OA.apply(String,A),A.length=0)}return A.length>0&&(e+=OA.apply(String,A)),e}function HT(n){let e=new Array(n);for(let t=0;t<n;t++)e[t]=$t();return e}function WT(n){if(gn.mapsAsObjects){let e={};for(let t=0;t<n;t++)e[ZT()]=$t();return e}else{let e=new Map;for(let t=0;t<n;t++)e.set($t(),$t());return e}}var OA=String.fromCharCode;function QT(n){let e=Z,t=new Array(n);for(let A=0;A<n;A++){let r=Le[Z++];if((r&128)>0){Z=e;return}t[A]=r}return OA.apply(String,t)}function fv(n){if(n<4)if(n<2){if(n===0)return"";{let e=Le[Z++];if((e&128)>1){Z-=1;return}return OA(e)}}else{let e=Le[Z++],t=Le[Z++];if((e&128)>0||(t&128)>0){Z-=2;return}if(n<3)return OA(e,t);let A=Le[Z++];if((A&128)>0){Z-=3;return}return OA(e,t,A)}else{let e=Le[Z++],t=Le[Z++],A=Le[Z++],r=Le[Z++];if((e&128)>0||(t&128)>0||(A&128)>0||(r&128)>0){Z-=4;return}if(n<6){if(n===4)return OA(e,t,A,r);{let i=Le[Z++];if((i&128)>0){Z-=5;return}return OA(e,t,A,r,i)}}else if(n<8){let i=Le[Z++],s=Le[Z++];if((i&128)>0||(s&128)>0){Z-=6;return}if(n<7)return OA(e,t,A,r,i,s);let o=Le[Z++];if((o&128)>0){Z-=7;return}return OA(e,t,A,r,i,s,o)}else{let i=Le[Z++],s=Le[Z++],o=Le[Z++],a=Le[Z++];if((i&128)>0||(s&128)>0||(o&128)>0||(a&128)>0){Z-=8;return}if(n<10){if(n===8)return OA(e,t,A,r,i,s,o,a);{let c=Le[Z++];if((c&128)>0){Z-=9;return}return OA(e,t,A,r,i,s,o,a,c)}}else if(n<12){let c=Le[Z++],l=Le[Z++];if((c&128)>0||(l&128)>0){Z-=10;return}if(n<11)return OA(e,t,A,r,i,s,o,a,c,l);let u=Le[Z++];if((u&128)>0){Z-=11;return}return OA(e,t,A,r,i,s,o,a,c,l,u)}else{let c=Le[Z++],l=Le[Z++],u=Le[Z++],h=Le[Z++];if((c&128)>0||(l&128)>0||(u&128)>0||(h&128)>0){Z-=12;return}if(n<14){if(n===12)return OA(e,t,A,r,i,s,o,a,c,l,u,h);{let d=Le[Z++];if((d&128)>0){Z-=13;return}return OA(e,t,A,r,i,s,o,a,c,l,u,h,d)}}else{let d=Le[Z++],p=Le[Z++];if((d&128)>0||(p&128)>0){Z-=14;return}if(n<15)return OA(e,t,A,r,i,s,o,a,c,l,u,h,d,p);let f=Le[Z++];if((f&128)>0){Z-=15;return}return OA(e,t,A,r,i,s,o,a,c,l,u,h,d,p,f)}}}}}function ov(n){return gn.copyBuffers?Uint8Array.prototype.slice.call(Le,Z,Z+=n):Le.subarray(Z,Z+=n)}function bo(n){let e=Le[Z++];if(an[e])return an[e](Le.subarray(Z,Z+=n));throw new Error("Unknown extension type "+e)}var jT=new Array(4096);function ZT(){let n=Le[Z++];if(n>=160&&n<192){if(n=n-160,kr>=Z)return gs.slice(Z-Zn,(Z+=n)-Zn);if(!(kr==0&&ys<180))return uv(n)}else return Z--,$t();let e=(n<<5^(n>1?Pt.getUint16(Z):n>0?Le[Z]:0))&4095,t=jT[e],A=Z,r=Z+n-3,i,s=0;if(t&&t.bytes==n){for(;A<r;){if(i=Pt.getUint32(A),i!=t[s++]){A=1879048192;break}A+=4}for(r+=3;A<r;)if(i=Le[A++],i!=t[s++]){A=1879048192;break}if(A===r)return Z=A,t.string;r-=3,A=Z}for(t=[],jT[e]=t,t.bytes=n;A<r;)i=Pt.getUint32(A),t.push(i),A+=4;for(r+=3;A<r;)i=Le[A++],t.push(i);let o=n<16?fv(n):QT(n);return o!=null?t.string=o:t.string=uv(n)}var YT=(n,e)=>{var t=$t();let A=n;e!==void 0&&(n=n<32?-((e<<5)+n):(e<<5)+n,t.highByte=e);let r=bt[n];return r&&r.isShared&&((bt.restoreStructures||(bt.restoreStructures=[]))[n]=r),bt[n]=t,t.read=dv(t,A),t.read()},KT=typeof self=="object"?self:global;an[0]=()=>{};an[0].noBuffer=!0;an[101]=()=>{let n=$t();return(KT[n[0]]||Error)(n[1])};an[105]=n=>{let e=Pt.getUint32(Z-4);Oi||(Oi=new Map);let t=Le[Z],A;t>=144&&t<160||t==220||t==221?A=[]:A={};let r={target:A};Oi.set(e,r);let i=$t();return r.used?Object.assign(A,i):(r.target=i,i)};an[112]=n=>{let e=Pt.getUint32(Z-4),t=Oi.get(e);return t.used=!0,t.target};an[115]=()=>new Set($t());var pv=["Int8","Uint8","Uint8Clamped","Int16","Uint16","Int32","Uint32","Float32","Float64","BigInt64","BigUint64"].map(n=>n+"Array");an[116]=n=>{let e=n[0],t=pv[e];if(!t)throw new Error("Could not find typed array for code "+e);return new KT[t](Uint8Array.prototype.slice.call(n,1).buffer)};an[120]=()=>{let n=$t();return new RegExp(n[0],n[1])};an[98]=n=>{let e=(n[0]<<24)+(n[1]<<16)+(n[2]<<8)+n[3],t=Z;Z+=e-4,Nn=[$t(),$t()],Nn.position0=0,Nn.position1=0;let A=Z;Z=t;try{return $t()}finally{Z=A}};an[255]=n=>n.length==4?new Date((n[0]*16777216+(n[1]<<16)+(n[2]<<8)+n[3])*1e3):n.length==8?new Date(((n[0]<<22)+(n[1]<<14)+(n[2]<<6)+(n[3]>>2))/1e6+((n[3]&3)*4294967296+n[4]*16777216+(n[5]<<16)+(n[6]<<8)+n[7])*1e3):n.length==12?new Date(((n[0]<<24)+(n[1]<<16)+(n[2]<<8)+n[3])/1e6+((n[4]&128?-281474976710656:0)+n[6]*1099511627776+n[7]*4294967296+n[8]*16777216+(n[9]<<16)+(n[10]<<8)+n[11])*1e3):new Date("invalid");function JT(n){let e=ys,t=Z,A=cv,r=Zn,i=kr,s=gs,o=lv,a=Oi,c=Nn,l=new Uint8Array(Le.slice(0,ys)),u=bt,h=bt.slice(0,bt.length),d=gn,p=yl,f=n();return ys=e,Z=t,cv=A,Zn=r,kr=i,gs=s,lv=o,Oi=a,Nn=c,Le=l,yl=p,bt=u,bt.splice(0,bt.length,...h),gn=d,Pt=new DataView(Le.buffer,Le.byteOffset,Le.byteLength),f}function zf(){Le=null,Oi=null,bt=null}function $T(n){n.unpack?an[n.type]=n.unpack:an[n.type]=n}var Wf=new Array(147);for(let n=0;n<256;n++)Wf[n]=+("1e"+Math.floor(45.15-n*.30103));var jf=new Ur({useRecords:!1}),BV=jf.unpack,NV=jf.unpackMultiple,FV=jf.unpack,Yf={NEVER:0,ALWAYS:1,DECIMAL_ROUND:3,DECIMAL_FIT:4},GV=new Float32Array(1),L$=new Uint8Array(GV.buffer,0,4);var qf;try{qf=new TextEncoder}catch{}var Xf,gv,Qf=typeof Buffer<"u",mv=Qf?Buffer.allocUnsafeSlow:Uint8Array,nM=Qf?Buffer:Uint8Array,eM=Qf?4294967296:2144337920,oe,oA,ee=0,Vr,zr=null,kV=/[\u0080-\uFFFF]/,Ou=Symbol("record-id"),wo=class extends Ur{constructor(e){super(e),this.offset=0;let t,A,r,i,s,o,a=0,c=nM.prototype.utf8Write?function(v,E,C){return oe.utf8Write(v,E,C)}:qf&&qf.encodeInto?function(v,E){return qf.encodeInto(v,oe.subarray(E)).written}:!1,l=this;e||(e={});let u=e&&e.sequential,h=e.structures||e.saveStructures,d=e.maxSharedStructures;if(d==null&&(d=h?32:0),d>8160)throw new Error("Maximum maxSharedStructure is 8160");let p=e.maxOwnStructures;p==null&&(p=h?32:64),u&&!e.saveStructures&&(this.structures=[]);let f=d>32||p+d>64,m=d+64,y=d+p+64;if(y>8256)throw new Error("Maximum maxSharedStructure + maxOwnStructure is 8192");let g=[],b=0,x=0;this.pack=this.encode=function(v,E){if(oe||(oe=new mv(8192),oA=new DataView(oe.buffer,0,8192),ee=0),Vr=oe.length-10,Vr-ee<2048?(oe=new mv(oe.length),oA=new DataView(oe.buffer,0,oe.length),Vr=oe.length-10,ee=0):ee=ee+7&2147483640,A=ee,o=l.structuredClone?new Map:null,l.bundleStrings?(zr=["",""],oe[ee++]=214,oe[ee++]=98,zr.position=ee-A,ee+=4):zr=null,r=l.structures,r){r.uninitialized&&(r=l._mergeStructures(l.getStructures()));let C=r.sharedLength||0;if(C>d)throw new Error("Shared structures is larger than maximum shared structures, try increasing maxSharedStructures to "+r.sharedLength);if(!r.transitions){r.transitions=Object.create(null);for(let P=0;P<C;P++){let D=r[P];if(!D)continue;let _,I=r.transitions;for(let B=0,N=D.length;B<N;B++){let W=D[B];_=I[W],_||(_=I[W]=Object.create(null)),I=_}I[Ou]=P+64}a=C}u||(r.nextId=C+64)}i&&(i=!1),s=r||[];try{if(w(v),zr){oA.setUint32(zr.position+A,ee-zr.position-A);let C=zr;zr=null,w(C[0]),w(C[1])}if(l.offset=ee,o&&o.idsToInsert){ee+=o.idsToInsert.length*6,ee>Vr&&M(ee),l.offset=ee;let C=VV(oe.subarray(A,ee),o.idsToInsert);return o=null,C}return E&iM?(oe.start=A,oe.end=ee,oe):oe.subarray(A,ee)}finally{if(r){if(x<10&&x++,b>1e4)r.transitions=null,x=0,b=0,g.length>0&&(g=[]);else if(g.length>0&&!u){for(let C=0,P=g.length;C<P;C++)g[C][Ou]=0;g=[]}if(i&&l.saveStructures){let C=r.sharedLength||d;r.length>C&&(r=r.slice(0,C));let P=oe.subarray(A,ee);return l.saveStructures(r,a)===!1?(l._mergeStructures(l.getStructures()),l.pack(v)):(a=C,P)}}E&XV&&(ee=A)}};let w=v=>{ee>Vr&&(oe=M(ee));var E=typeof v,C;if(E==="string"){let P=v.length;if(zr&&P>=8&&P<4096){let I=kV.test(v);zr[I?0:1]+=v,oe[ee++]=193,w(I?-P:P);return}let D;P<32?D=1:P<256?D=2:P<65536?D=3:D=5;let _=P*3;if(ee+_>Vr&&(oe=M(ee+_)),P<64||!c){let I,B,N,W=ee+D;for(I=0;I<P;I++)B=v.charCodeAt(I),B<128?oe[W++]=B:B<2048?(oe[W++]=B>>6|192,oe[W++]=B&63|128):(B&64512)===55296&&((N=v.charCodeAt(I+1))&64512)===56320?(B=65536+((B&1023)<<10)+(N&1023),I++,oe[W++]=B>>18|240,oe[W++]=B>>12&63|128,oe[W++]=B>>6&63|128,oe[W++]=B&63|128):(oe[W++]=B>>12|224,oe[W++]=B>>6&63|128,oe[W++]=B&63|128);C=W-ee-D}else C=c(v,ee+D,_);C<32?oe[ee++]=160|C:C<256?(D<2&&oe.copyWithin(ee+2,ee+1,ee+1+C),oe[ee++]=217,oe[ee++]=C):C<65536?(D<3&&oe.copyWithin(ee+3,ee+2,ee+2+C),oe[ee++]=218,oe[ee++]=C>>8,oe[ee++]=C&255):(D<5&&oe.copyWithin(ee+5,ee+3,ee+3+C),oe[ee++]=219,oA.setUint32(ee,C),ee+=4),ee+=C}else if(E==="number")if(v>>>0===v)v<64?oe[ee++]=v:v<256?(oe[ee++]=204,oe[ee++]=v):v<65536?(oe[ee++]=205,oe[ee++]=v>>8,oe[ee++]=v&255):(oe[ee++]=206,oA.setUint32(ee,v),ee+=4);else if(v>>0===v)v>=-32?oe[ee++]=256+v:v>=-128?(oe[ee++]=208,oe[ee++]=v+256):v>=-32768?(oe[ee++]=209,oA.setInt16(ee,v),ee+=2):(oe[ee++]=210,oA.setInt32(ee,v),ee+=4);else{let P;if((P=this.useFloat32)>0&&v<4294967296&&v>=-2147483648){oe[ee++]=202,oA.setFloat32(ee,v);let D;if(P<4||(D=v*Wf[(oe[ee]&127)<<1|oe[ee+1]>>7])>>0===D){ee+=4;return}else ee--}oe[ee++]=203,oA.setFloat64(ee,v),ee+=8}else if(E==="object")if(!v)oe[ee++]=192;else{if(o){let D=o.get(v);if(D){if(!D.id){let _=o.idsToInsert||(o.idsToInsert=[]);D.id=_.push(D)}oe[ee++]=214,oe[ee++]=112,oA.setUint32(ee,D.id),ee+=4;return}else o.set(v,{offset:ee-A})}let P=v.constructor;if(P===Object)T(v,!0);else if(P===Array){C=v.length,C<16?oe[ee++]=144|C:C<65536?(oe[ee++]=220,oe[ee++]=C>>8,oe[ee++]=C&255):(oe[ee++]=221,oA.setUint32(ee,C),ee+=4);for(let D=0;D<C;D++)w(v[D])}else if(P===Map){C=v.size,C<16?oe[ee++]=128|C:C<65536?(oe[ee++]=222,oe[ee++]=C>>8,oe[ee++]=C&255):(oe[ee++]=223,oA.setUint32(ee,C),ee+=4);for(let[D,_]of v)w(D),w(_)}else{for(let D=0,_=Xf.length;D<_;D++){let I=gv[D];if(v instanceof I){let B=Xf[D];if(B.write){B.type&&(oe[ee++]=212,oe[ee++]=B.type,oe[ee++]=0),w(B.write.call(this,v));return}let N=oe,W=oA,X=ee;oe=null;let F;try{F=B.pack.call(this,v,k=>(oe=N,N=null,ee+=k,ee>Vr&&M(ee),{target:oe,targetView:oA,position:ee-k}),w)}finally{N&&(oe=N,oA=W,ee=X,Vr=oe.length-10)}F&&(F.length+ee>Vr&&M(F.length+ee),ee=UV(F,oe,ee,B.type));return}}T(v,!v.hasOwnProperty)}}else if(E==="boolean")oe[ee++]=v?195:194;else if(E==="bigint"){if(v<BigInt(1)<<BigInt(63)&&v>=-(BigInt(1)<<BigInt(63)))oe[ee++]=211,oA.setBigInt64(ee,v);else if(v<BigInt(1)<<BigInt(64)&&v>0)oe[ee++]=207,oA.setBigUint64(ee,v);else if(this.largeBigIntToFloat)oe[ee++]=203,oA.setFloat64(ee,Number(v));else throw new RangeError(v+" was too large to fit in MessagePack 64-bit integer format, set largeBigIntToFloat to convert to float-64");ee+=8}else if(E==="undefined")this.encodeUndefinedAsNil?oe[ee++]=192:(oe[ee++]=212,oe[ee++]=0,oe[ee++]=0);else if(E==="function")w(this.writeFunction&&this.writeFunction());else throw new Error("Unknown type: "+E)},T=this.useRecords===!1?this.variableMapSize?v=>{let E=Object.keys(v),C=E.length;C<16?oe[ee++]=128|C:C<65536?(oe[ee++]=222,oe[ee++]=C>>8,oe[ee++]=C&255):(oe[ee++]=223,oA.setUint32(ee,C),ee+=4);let P;for(let D=0;D<C;D++)w(P=E[D]),w(v[P])}:(v,E)=>{oe[ee++]=222;let C=ee-A;ee+=2;let P=0;for(let D in v)(E||v.hasOwnProperty(D))&&(w(D),w(v[D]),P++);oe[C+++A]=P>>8,oe[C+A]=P&255}:v=>{let E=Object.keys(v),C,P=s.transitions||(s.transitions=Object.create(null)),D=0;for(let I=0,B=E.length;I<B;I++){let N=E[I];C=P[N],C||(C=P[N]=Object.create(null),D++),P=C}let _=P[Ou];if(_)_>=96&&f?(oe[ee++]=((_-=96)&31)+96,oe[ee++]=_>>5):oe[ee++]=_;else{_=s.nextId,_||(_=64),_<m&&this.shouldShareStructure&&!this.shouldShareStructure(E)?(_=s.nextOwnId,_<y||(_=m),s.nextOwnId=_+1):(_>=y&&(_=m),s.nextId=_+1);let I=E.highByte=_>=96&&f?_-96>>5:-1;P[Ou]=_,s[_-64]=E,_<m?(E.isShared=!0,s.sharedLength=_-63,i=!0,I>=0?(oe[ee++]=(_&31)+96,oe[ee++]=I):oe[ee++]=_):(I>=0?(oe[ee++]=213,oe[ee++]=114,oe[ee++]=(_&31)+96,oe[ee++]=I):(oe[ee++]=212,oe[ee++]=114,oe[ee++]=_),D&&(b+=x*D),g.length>=p&&(g.shift()[Ou]=0),g.push(P),w(E))}for(let I=0,B=E.length;I<B;I++)w(v[E[I]])},M=v=>{let E;if(v>16777216){if(v-A>eM)throw new Error("Packed buffer would be larger than maximum buffer size");E=Math.min(eM,Math.round(Math.max((v-A)*(v>67108864?1.25:2),4194304)/4096)*4096)}else E=(Math.max(v-A<<2,oe.length-1)>>12)+1<<12;let C=new mv(E);return oA=new DataView(C.buffer,0,E),oe.copy?oe.copy(C,0,A,v):C.set(oe.slice(A,v)),ee-=A,A=0,Vr=C.length-10,oe=C}}useBuffer(e){oe=e,oA=new DataView(oe.buffer,oe.byteOffset,oe.byteLength),ee=0}};gv=[Date,Set,Error,RegExp,ArrayBuffer,Object.getPrototypeOf(Uint8Array.prototype).constructor,_u];Xf=[{pack(n,e,t){let A=n.getTime()/1e3;if((this.useTimestamp32||n.getMilliseconds()===0)&&A>=0&&A<4294967296){let{target:r,targetView:i,position:s}=e(6);r[s++]=214,r[s++]=255,i.setUint32(s,A)}else if(A>0&&A<17179869184){let{target:r,targetView:i,position:s}=e(10);r[s++]=215,r[s++]=255,i.setUint32(s,n.getMilliseconds()*4e6+(A/1e3/4294967296>>0)),i.setUint32(s+4,A)}else if(isNaN(A)){if(this.onInvalidDate)return e(0),t(this.onInvalidDate());let{target:r,targetView:i,position:s}=e(3);r[s++]=212,r[s++]=255,r[s++]=255}else{let{target:r,targetView:i,position:s}=e(15);r[s++]=199,r[s++]=12,r[s++]=255,i.setUint32(s,n.getMilliseconds()*1e6),i.setBigInt64(s+4,BigInt(Math.floor(A)))}}},{pack(n,e,t){let A=Array.from(n),{target:r,position:i}=e(this.structuredClone?3:0);this.structuredClone&&(r[i++]=212,r[i++]=115,r[i++]=0),t(A)}},{pack(n,e,t){let{target:A,position:r}=e(this.structuredClone?3:0);this.structuredClone&&(A[r++]=212,A[r++]=101,A[r++]=0),t([n.name,n.message])}},{pack(n,e,t){let{target:A,position:r}=e(this.structuredClone?3:0);this.structuredClone&&(A[r++]=212,A[r++]=120,A[r++]=0),t([n.source,n.flags])}},{pack(n,e){this.structuredClone?tM(n,16,e):AM(Qf?Buffer.from(n):new Uint8Array(n),e)}},{pack(n,e){let t=n.constructor;t!==nM&&this.structuredClone?tM(n,pv.indexOf(t.name),e):AM(n,e)}},{pack(n,e){let{target:t,position:A}=e(1);t[A]=193}}];function tM(n,e,t,A){let r=n.byteLength;if(r+1<256){var{target:i,position:s}=t(4+r);i[s++]=199,i[s++]=r+1}else if(r+1<65536){var{target:i,position:s}=t(5+r);i[s++]=200,i[s++]=r+1>>8,i[s++]=r+1&255}else{var{target:i,position:s,targetView:o}=t(7+r);i[s++]=201,o.setUint32(s,r+1),s+=4}i[s++]=116,i[s++]=e,i.set(new Uint8Array(n.buffer,n.byteOffset,n.byteLength),s)}function AM(n,e){let t=n.byteLength;var A,r;if(t<256){var{target:A,position:r}=e(t+2);A[r++]=196,A[r++]=t}else if(t<65536){var{target:A,position:r}=e(t+3);A[r++]=197,A[r++]=t>>8,A[r++]=t&255}else{var{target:A,position:r,targetView:i}=e(t+5);A[r++]=198,i.setUint32(r,t),r+=4}A.set(n,r)}function UV(n,e,t,A){let r=n.length;switch(r){case 1:e[t++]=212;break;case 2:e[t++]=213;break;case 4:e[t++]=214;break;case 8:e[t++]=215;break;case 16:e[t++]=216;break;default:r<256?(e[t++]=199,e[t++]=r):r<65536?(e[t++]=200,e[t++]=r>>8,e[t++]=r&255):(e[t++]=201,e[t++]=r>>24,e[t++]=r>>16&255,e[t++]=r>>8&255,e[t++]=r&255)}return e[t++]=A,e.set(n,t),t+=r,t}function VV(n,e){let t,A=e.length*6,r=n.length-A;for(e.sort((i,s)=>i.offset>s.offset?1:-1);t=e.pop();){let i=t.offset,s=t.id;n.copyWithin(i+A,i,r),A-=6;let o=i+A;n[o++]=214,n[o++]=105,n[o++]=s>>24,n[o++]=s>>16&255,n[o++]=s>>8&255,n[o++]=s&255,r=i}return n}function vs(n){if(n.Class){if(!n.pack&&!n.write)throw new Error("Extension has no pack or write function");if(n.pack&&!n.type)throw new Error("Extension has no type (numeric code to identify the extension)");gv.unshift(n.Class),Xf.unshift(n)}$T(n)}var rM=new wo({useRecords:!1}),zV=rM.pack,HV=rM.pack;var{NEVER:WV,ALWAYS:jV,DECIMAL_ROUND:YV,DECIMAL_FIT:qV}=Yf,iM=512,XV=1024;var sM=new wo({structuredClone:!0});vs({Class:Bt.prototype.constructor,type:1,write(n){return{...n}},read(n){return Object.setPrototypeOf(n,Bt.prototype),n}});vs({Class:He.prototype.constructor,type:2,write(n){return[...n]},read(n){return Object.setPrototypeOf(n,He.prototype),n}});vs({Class:qt.prototype.constructor,type:3,write(n){return[...n]},read(n){return Object.setPrototypeOf(n,qt.prototype),n}});vs({Class:Iu.prototype.constructor,type:4,write(n){return n.id},read(n){return new Iu(n)}});vs({Class:Lu.prototype.constructor,type:5,write(n){return n.data},read(n){return new Lu(n)}});vs({Class:UA.prototype.constructor,type:6,write(n){return{...n}},read(n){return Object.setPrototypeOf(n,UA.prototype),n}});function QV(n){var e=0;if(n.length===0)return e;for(let t=0;t<n.length;t++){let A=n[t];e=(e<<5)-e+A,e=e&e}return e}function yv(n){if(dl(n))return n;if(Array.isArray(n))return n.map(yv);if(typeof n=="object"&&n!==null){let e={};for(let t of Object.keys(n).sort())e[t]=yv(n[t]);return Object.setPrototypeOf(e,Object.getPrototypeOf(n)),e}else return n}var Zf;(A=>{function n(r){return sM.pack(r)}A.serialize=n;function e(r){return sM.unpack(r)}A.deserialize=e;function t(r){return QV(n(yv(r))).toString()}A.checksum=t})(Zf||(Zf={}));var Ru={["LookAt"]:[],["Follow"]:[],["MouseHover"]:["Transition"],["Scroll"]:["Transition"],["Start"]:["Transition","Audio","Video"],["Conditional"]:["Transition","Audio","Video"],["MouseDown"]:["Transition","Audio","Video","Link"],["MouseUp"]:["Transition","Audio","Video","Link"],["KeyDown"]:["Transition","Audio","Video","Link"],["KeyUp"]:["Transition","Audio","Video","Link"],["GameControl"]:["Transition","Audio"],["Collision"]:["Transition","Audio"]},oM;(t=>{function n(A){return A.type==="MouseDown"||A.type==="MouseUp"||A.type==="KeyDown"||A.type==="KeyUp"}t.is=n;function e(A){return A==="MouseDown"||A==="MouseUp"?{type:A,toggle:!1,actions:new He}:{type:A,key:void 0,toggle:!1,actions:new He}}t.defaultData=e})(oM||(oM={}));var Kf;(t=>{function n(A){return{type:"Property",value:[A??null,"position","x"]}}t.propertyDefaultData=n,t.valueDefaultData={type:"Literal",value:0}})(Kf||(Kf={}));var vv;(A=>{function n(r){return{type:"Comparison",operator:"==",lOperand:Kf.propertyDefaultData(r),rOperand:{...Kf.valueDefaultData}}}A.comparisonDefaultData=n;function e(r){return{type:"Distance",toObject:r??null,fromObject:r??null,distance:200}}A.distanceDefaultData=e;function t(r,i){return{type:"State",object:r??null,state:i??null}}A.stateDefaultData=t})(vv||(vv={}));var aM;(t=>{function n(A){return A.type==="Conditional"}t.is=n;function e(A){return{type:"Conditional",inActions:new He,outActions:new He,condition:vv.distanceDefaultData(A)}}t.defaultData=e})(aM||(aM={}));var lM;(e=>e.defaultData={type:"Follow",maxDelta:0,dampingFactor:1,plane:"custom",resetOnPointerLeave:!0})(lM||(lM={}));var cM;(e=>e.defaultData={type:"LookAt",distance:1e3,dampingFactor:1,tilt:"up",axis:"z",plane:"custom",resetOnPointerLeave:!0})(cM||(cM={}));var uM;(t=>{function n(A){return A.type==="MouseHover"}t.is=n;function e(){return{type:"MouseHover",actions:new He}}t.defaultData=e})(uM||(uM={}));var hM;(t=>{function n(A){return A.type==="Scroll"}t.is=n;function e(){return{type:"Scroll",steps:100,actions:new He}}t.defaultData=e})(hM||(hM={}));var dM;(t=>{function n(A){return A.type==="Start"}t.is=n;function e(){return{type:"Start",actions:new He}}t.defaultData=e})(dM||(dM={}));var fM;(t=>{function n(A){return A.type==="Collision"}t.is=n;function e(){return{type:"Collision",toggle:!1,target:"character",actions:new He}}t.defaultData=e})(fM||(fM={}));var So;(t=>{function n(A,r){return A[0]===r[0]&&A[1]===r[1]}t.isEqual=n;function e(A,r,i){return[A[0]+(r[0]-A[0])*i,A[1]+(r[1]-A[1])*i]}t.lerp=e})(So||(So={}));var vl;(r=>{function n(i,s){return i[0]===s[0]&&i[1]===s[1]&&i[2]===s[2]}r.isEqual=n;function e(i,s){return[i[0]+s[0],i[1]+s[1],i[2]+s[2]]}r.add=e;function t(i,s){return[i[0]-s[0],i[1]-s[1],i[2]-s[2]]}r.sub=t;function A(i,s,o){return[i[0]+(s[0]-i[0])*o,i[1]+(s[1]-i[1])*o,i[2]+(s[2]-i[2])*o]}r.lerp=A})(vl||(vl={}));var Bu;(t=>{function n(A,r){return A[0]===r[0]&&A[1]===r[1]&&A[2]===r[2]&&A[3]===r[3]}t.isEqual=n;function e(A,r,i){return[A[0]+(r[0]-A[0])*i,A[1]+(r[1]-A[1])*i,A[2]+(r[2]-A[2])*i,A[3]+(r[3]-A[3])*i]}t.lerp=e})(Bu||(Bu={}));var xs;(r=>{r.identity=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];function e(i,s){for(let o=0;o<16;o++)if(i[o]!==s[o])return!1;return!0}r.isEqual=e;function t(i){return i??r.identity}r.simplify=t;function A(i,s){let o=s.slice(0);for(var a=0,c=s.length;a<c;a+=3){let l=i[3]*s[a]+i[7]*s[a+1]+i[11]*s[a+2]+i[15];o[a]=(i[0]*s[a]+i[4]*s[a+1]+i[8]*s[a+2]+i[12])/l,o[a+1]=(i[1]*s[a]+i[5]*s[a+1]+i[9]*s[a+2]+i[13])/l,o[a+2]=(i[2]*s[a]+i[6]*s[a+1]+i[10]*s[a+2]+i[14])/l}return o}r.applyMatrix4=A})(xs||(xs={}));var QA;(c=>{function n(l){return typeof l=="object"&&typeof l.r=="number"&&typeof l.g=="number"&&typeof l.b=="number"}c.isRGB=n,c.white={r:1,g:1,b:1},c.red={r:1,g:0,b:0},c.black={r:0,g:0,b:0};function r(l){return{r:Math.round(l.r*255),g:Math.round(l.g*255),b:Math.round(l.b*255),a:1}}c.toRgb255a1=r;function i(l){return{r:l.r,g:l.g,b:l.b}}c.clone=i;function s(l){return l=Math.floor(l),{r:(l>>16&255)/255,g:(l>>8&255)/255,b:(l&255)/255}}c.fromHex=s;function o(l,u){return l.r===u.r&&l.g===u.g&&l.b===u.b}c.equals=o;function a(l,u,h){return{r:l.r+(u.r-l.r)*h,g:l.g+(u.g-l.g)*h,b:l.b+(u.b-l.b)*h}}c.lerp=a})(QA||(QA={}));var yn;(o=>{o.white={...QA.white,a:1},o.transparent={...QA.white,a:0};function t(a){return{r:a[0],g:a[1],b:a[2],a:a[3]}}o.from0to1=t;function A(a,c){return{...QA.fromHex(a),a:c}}o.fromHexAndA=A;function r(a){return{r:Math.round(a.r*255),g:Math.round(a.g*255),b:Math.round(a.b*255),a:a.a}}o.toRgb255a1=r;function i(a,c){return QA.equals(a,c)&&a.a===c.a}o.equals=i;function s(a,c,l){return{r:a.r+(c.r-a.r)*l,g:a.g+(c.g-a.g)*l,b:a.b+(c.b-a.b)*l,a:a.a+(c.a-a.a)*l}}o.lerp=s})(yn||(yn={}));var Jf;(e=>e.identity={position:[0,0,0],rotation:[0,0,0],scale:[1,1,1]})(Jf||(Jf={}));var pM;(e=>e.defaultData={mass:1,stiffness:80,damping:10,velocity:0})(pM||(pM={}));var mM;(e=>e.defaultData={control1:[.5,.05],control2:[.1,.3]})(mM||(mM={}));var bs;(t=>{t.all=["PerspectiveCamera","OrthographicCamera"];function e(A){return t.all.includes(A)}t.is=e})(bs||(bs={}));var To;(r=>{r.DefaultUp=[0,1,0],r.DefaultTargetOffset=1e3,r.defaultData={far:1e5,type:"OrthographicCamera",perspective:{near:5,fov:45,zoom:1},orthographic:{near:-1e5,zoom:1},up:r.DefaultUp,isUpVectorFlipped:!1,targetOffset:r.DefaultTargetOffset};function A(i){return i.type==="PerspectiveCamera"?i.perspective.zoom:i.orthographic.zoom}r.getZoom=A})(To||(To={}));var Mo;(t=>{function n(A,r=.1){return{disabled:!1,type:"linear",hideBase:!1,count:3,radial:{radius:Math.max(A[0],A[1])*2,start:0,end:360,alignment:!1,axis:"y",scale:[1,1,1],rotation:[0,0,0],position:[0,0,0]},toObject:{object:"",spreadType:"random",scale:[0,0,0],rotation:[0,0,0],position:[0,0,0],axis:"x",seed:0,count:99,align:"normal"},linear:{scale:[1,1,1],rotation:[0,0,0],position:[A[0]+A[0]*r,0,0]},grid:{count:[2,2,2],size:A.map(i=>i*(1+r)),useCenter:!0},randomness:!1,randomnessObject:{strength:100,scale:[0,0,0],rotation:[0,0,0],position:[0,0,0],movement:1,seed:0,freqScale:10,noiseType:"perlin"}}}t.defaultData=n;function e(A,r){let i={...A};if(xv.forEach(s=>{Object.assign(i,{[s]:r[s]??A[s]})}),i.radial={...A.radial},r.radial){let s=A.radial,o=r.radial;bv.forEach(a=>{Object.assign(i.radial,{[a]:o[a]??s[a]})})}if(i.linear={...A.linear},r.linear){let s=A.linear,o=r.linear;wv.forEach(a=>{Object.assign(i.linear,{[a]:o[a]??s[a]})})}if(i.grid={...A.grid},r.grid){let s=A.grid,o=r.grid;Sv.forEach(a=>{Object.assign(i.grid,{[a]:o[a]??s[a]})})}if(i.toObject={...A.toObject},r.toObject){let s=A.toObject,o=r.toObject;Tv.forEach(a=>{Object.assign(i.toObject,{[a]:o[a]??s[a]})})}if(i.randomnessObject={...A.randomnessObject},r.randomnessObject){let s=A.randomnessObject,o=r.randomnessObject;Mv.forEach(a=>{Object.assign(i.randomnessObject,{[a]:o[a]??s[a]})})}return i}t.merge=e})(Mo||(Mo={}));var gM;(e=>e.defaultData={radial:{},linear:{},grid:{},toObject:{},randomnessObject:{}})(gM||(gM={}));var xv=["count"],bv=["radius","start","end","position","scale","rotation"],wv=["position","scale","rotation"],Sv=["count","size"],Tv=["count","position","scale","rotation"],Mv=["strength","scale","rotation","position","movement","seed","freqScale"];var Eo;(t=>{let n={opacity:1,blendFunction:13,enabled:!1};t.defaultData={enabled:!1,pixelation:{...n,blendFunction:16,granularity:15},bloom:{...n,blendFunction:16,intensity:1,blurScale:1,luminanceThreshold:.25,luminanceSmoothing:.025,kernelSize:3},chromaticAberration:{...n,offset:[2,2]},vignette:{...n,darkness:1,offset:0},hueSaturation:{...n,hue:3,saturation:0},brightnessContrast:{...n,brightness:.25,contrast:0},depthOfField:{...n,focalLength:2,focusDistance:2,bokehScale:2},noise:{...n,blendFunction:16}}})(Eo||(Eo={}));var $f;(t=>{t.all=["PointLight","SpotLight","DirectionalLight","HemisphereLight"];function e(A){return t.all.includes(A)}t.is=e})($f||($f={}));var ep;(t=>{function n(A){return e(A)}t.defaultData=n;function e(A){if(A==="PointLight")return{type:A,color:yn.white,intensity:1,distance:2e3,decay:1,shadows:!0,shadowResolution:1024,shadowRadius:1,depth:1e5};if(A==="SpotLight")return{type:A,color:yn.white,intensity:1,distance:2e3,decay:1,shadows:!0,penumbra:0,angle:30/180*Math.PI,depth:1e5,shadowResolution:1024,shadowRadius:1};if(A==="DirectionalLight")return{type:A,color:yn.white,intensity:1,shadows:!0,size:1e3,depth:1e5,shadowResolution:1024,shadowRadius:1};throw new Error("not implemented")}})(ep||(ep={}));var Ev;(t=>{t.defaultData={castShadow:!0,receiveShadow:!0};function e(A,r){return A.castShadow===r.castShadow&&A.receiveShadow===r.receiveShadow}t.equals=e})(Ev||(Ev={}));var Cv;(t=>{t.defaultData={flatShading:!1,wireframe:!1,side:0};function e(A,r){return A.flatShading===r.flatShading&&A.side===r.side&&A.wireframe===r.wireframe}t.equals=e})(Cv||(Cv={}));var tp;(e=>e.defaultData={...Cv.defaultData,...Ev.defaultData,cloner:null,booleanExclude:null})(tp||(tp={}));var yM="data:video/mp4;base64,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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4mAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4mAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4mAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAoNIeEIR38wphDHXL6wC0eqzSxBDA1/aF6jVqVmL3PEianGfsfoMLSWVODoIHMZHutkQkR4Wm7DWK6IQSQ5pxcBGTLyBJfi1U4XjbML2RApLUp7NlODWXjPRck/TZq1gLqIulEzECsE8jUz15eqHuhEl1QJa8c4YKCnWUb+KiTUUjcZHD78R1E3hepw0gNDm0NdS5O4KtAvldXaqV/XXYyy5Jta0owDlf8KZpbWWigXqGrsFaqu7tdNA4sCWGcouHLnaq2UKsuOioWET0QL21lW0sLH2/RtSbSnBQrJS1qyVv4hJBBy/AMCn1VduES9Rd35MxqGT2c7J24FURPEMRbHNjppFMj2kCzolY+j1NY+M/EK9GfcskfGrZ71H33N23qf6mInk1OQHYN5V7uoQsOLwv/rhTGFwM9wm34yizEwBp/Vzhs1uXYBFToYIE2Mt13s7oFXUIm+dKkmxB+qQz/bRMB7r6cbXXXprOFmFvmgtsqi4dGLVq+d9TaLpN2obRBtozi75QOtvWVACPqWqoqORw8TRJX6mtvPvaGaZ4tKQhaDODVV/nr/jI7FXRctSEk8MIyBlc0spXee90BtmUfPwMSl6wCYBAbmvxEPGCL5KERTx1MHkzuwvyJeYmY3ZzuAoLHFpB/2BqOLJbvtXGzaM6uZIc2yvNFWZtgGoTMBUXAsvokBu522VA4jQGBLI7DyR0Locg4rNvVahs0Q1xRkj9kl497h3j1fhA2QOPbmLIMR04cZaTxejpODIh2my5UQR9d//64bvVjJaQyuKeYdC5z0+GTQgXJx9RLHdqZ/wYDNX7brsCGRXyQTw8ep1hqvfisnSERNJ//5vGj/kCrp5r+3UBz8IHLxzYMaazQ8fzVD1n7OTaQDgla3VU9jH7wEHj4B0Mx8zEptf6cPIeWnAOtDX8bnaLdTSY3eOj2zq29q47FZOWvlJ+IjHdNboblK1efMfOfxN0eWkp6PIEqHijFBGRJfp29tZuVpviVrKhy916wIxYNt3H3SJhSlxc/yzLtwCqpRqgzUd5HcTOqXICYymL8KTcZELIPEfMrbor5Xj+Zbpas5BlJHZg8TjDK6IwHx5RUe8yfgcCPS72R4rQoy1hrsWKd/W17jMzr93Cz8dncyfqSyR5uNdHJP9N/8DRY2nAaD9q6dtM29vontTHEw70WcN1bM4sP/X0Q5ukNFlGpiT7eBuE8EcxdO9hyOzfZBolpAjzq95olFjdATRsoit8ecuHxQCoqo3mHmkpzT88btTB4JE8Mju+tOhMMoiFl11JYM5UX4xgbJJkY92gGfcQW5/AqlnhJj7L8BENvVgPgrL8FKkbd6FaMvZ5igwaQEqzeDEytB4VZ6ayvyplUSRu3iytlfndV+yO2Z9VaQpqWKn+qghQvCABGYQKAdfvMOHw2CxKTAM5kmnlmPdrEXQ0c8AwgWRf9cRiDxC9uv4WrfyrrmkvsViE0sVp00ck8IskJjY4uHixs6oJrk2m2xQAaS0ar4xMf1evbXkgpu7lsvhU/I60aS5bQ0kCUpb3h72EGIs7P8Kf+825Gujk89VLEjo5b5EZ0jlxWhn2qIRZnMA2XgJ7Vl4e+jH+PturKGL9fK3f3P2gvU4YLtPJrE2gWMi+t6N7zczxMxWuFMTmL5tjbJ7R/lZFe/58PgLy3beQOHySg8XvBHqPfcHw+fQM9EMfyPsf0jdwPiYbobmoTwdzUVOqupP1c7JUU9DNmbUKe4d4GaXvL7BnuAGLXWzCyMEwaHlxhw91uBvCRCGEDhtSkmY7vPjFbgAptL0XTUYYy/JCSrKb4Swv3iYJVk2/D8UrSNHdqZkBlrpY9GbGe+fDWuxboSyTekWtLOmfNPoV87mYR3Ato61FutFBIeXPcR/vzSY3P9JV2XodLeGNfz8+XKEZwOVggAh48jDzA11VF+sXhTrpumeK8jCF5W1exHsdwYLfyQXqu9cY0hz7JyR2fSfPflnb9D0thvST/grPnpmGZxGrnC5P6rnqc2WXP8DZ9D1Grl6YTal1B/Uf5YU57j41qVfYjV85XuhsQ3V+U6Pyh8Aq3hvw55RVQMV5wLs+Rnyes3dXN3QzJ8zqI12O3WgSzlqnXGMKRB2NRti/VCUUKTLHTXiblx21FQvL5PHih6JC/Lwxel7Dma3XM3EymAaDd7NU0+OM2Os+rWqO1s0CX6MGurCETlvquYbm2zis9IvKkLS9pZP4A+yEWMosOVLBXKwR73dk7VxHeAbQwgePkcF0KL0RLDEQCBOeo8yBK+cHLsCKa1H7UeUsDQf4QtYJI5/Knd+Qt+jxlyaDzCFZMAh3+5Cnx8xz4GwQfISKUOP9NqEmrC+Q5WF1ZPwLy+yaFl+N+DQWB51G2sLMZUV1GbOrh4YS1HAKUpPiACZQcudSoUEMvRuotR5HNq0j8P8uF6r04VLbFEImp/y8QjbSXevRotrcyeHCtN0oFD7s3nElhlFVGJMuh9gpoYRBbSEhMjIPjpONGZVjh+C6MuIz8pIBTuwH0hh+7xfmiOQ0f0H3C0Mda6RHKjKDrcWKx9306E8yx1TaTQOONxnGGJzU6+gi00sQlSoXPjVB8V8x3kizXT0xunWwQ9XAx5jhl4UAPNkqcFsRJHCorecxCutmXLQByJjTFgY5PiFs/Btb3CnBWedfuWY0atKFn3o8cv3BKu91h+XN5x/qL0B9B0vgvBVkaKklZ48kpp22N+n4h5MiK6/cc2ajn/1Wm5pnBwIjAS6zIlCp3JXIUH4VvmQcIT5QySHNyj4KZX7V9LwzLuMD6+WdBxtFkuaLjqHNCktnz2dVg5RTEXGjgnCZDEg/jbwMWI5aN28HSoNmZtlYbJLpsvJvKsn4Zm2BJWstEnWuf3xXiJ1jGflbpBtKWVrVXLf+A9XG22w2i0xOY7PVsYVN+o1GRu76KkyADnQsDC+7eOLh4GxPkX5CkZmyieFPy/K9MnYsTQmuwIYdsuXK1p6HbJOnt6ne5DQ7blupMnKfEl+fP9h76qUTUEwyyCqXDlRPBJ6195206Ebo+T/VOrQsqocqTS4ElfDSoqHeONQ6xA9Vk7EyDejOUwGGbLrBNsW3F4DnkkCb3S9VHEQU4p1Ruvh5S4w1aedJvZO+v1+N/tvkGYP583d3mCV/3o37V4XQ+bLxSvqfxw9q+z+c/JGEBHDgdAQaOzqiOissYCMg/FGKbTHQX6PqrOLY+L6MP5w8K5rwUmosK9luyc90ZpKWRPmWwvhv17M34HMqvgmnKQX8h8DcJyTE2Lodpi5O4YlPDNMwQiC7PzTCspkm++djhslg3QwWLyx8P1+D1Am/wHnbD/5Y5uaNWgJTgDThPVy0o3wlGSerLpSux8GgUF+UXLYYUqG+Y4/CsfEx3vnQd0+G1fknt/+C+8iA0+GnAIJpehADfgxt+EdUi7pUFnk1gKpHwAAAYEAaiBiO9tZigMqPPu5VSd9YzZevF3lPvVlyoMWWTJCWgUMbKQvOC+F6LKryZ+ROOOzMjGHRtzKqg8ETY4fU+N0F7eVL8orTaHwCA1KSZdS4h6RjpiIktGEWCHG29eRzywgMJR+jYhIVJQ8NqzsAqpaaRgo5YIiSnElPcdSIMatv66zYkSivN8LqGFKHmdrcYZAzl9j5xLXuejjjK/x1f7riWhW8sN9dyUAJ9Nim+JOX80hjHSZz0VbelIwN620cRuzK+KBW7l1rwNoltNhInCgbEERGxUBwQ4thG72qPUX30L6OwZB93p90Zb53LDQw5Y1fKDpmNHcWGd8b9yrycCcvNtt61zDGPEtsCimWq/2WKauHx1ai4Bbe18U2WfwDJgaJaWYZYt3NUeZuVuqIocl7PJK0h/7+OrataZiBhkFMpZGhUlqRubpkr+GBILAK9MI93eFWrsaY157IqAJcBc8BwJCXFJkZq8ZdYv6+9nfnHWxfgFW4Pb+6eeNidPfSaTswkok7F7YKu09QMbUNuyeJDXUFqwzpc7x8B4uGg66az1OpSM9jYQMw8CBhJ8imce3CuD+u3rsldcqPWx7rhD+CPq8bG60KW0NCMX2iV5k3/U9R6vTFpUFkfkrf23872UFUZouV8SoAGkYFxLSth7nkkdoZdgat8gvPK95//C/N2r3WoRmStVSdYztOlH4cBCd+NSNkGIhTqSTHJersGjVbQhKmnmI577/8mgUQ6siIjBeWx99k9Dj+G03clWb1FbU0Orziat7RAyU9dDZG0MsWbub2fS1pcv0zfZIyUuvBnf/0dGlChrBBQ9ftWPcOfef2sKlAUr1Him0j5lE8WpRHFB/cUKLQz70vQmBcF0xQO3fKKuvminluxTXGo3/YQmWJ6bEy4MbbCDCxFLi+0Enje5WFCckchv5YgkwQp8KcJxI376UJw1CAQqyNf4JIarH5Xm6BwiqSt2mDmxB0T07qcgigeoJRcTql0XngiaN0S+0mcfl+VNuKTSIa+8vyR/43yItofQoeqHjzvtpuNaVDWAU9Mr6p9B2DCMpdH7PqYXh2ABWCrC8tqFCmO7IczhHrONqGUkxqgnAGrzFYA+sL3Zru0oljVPExb7HNCo7A1X2tcd8MwYsonBP46ZN+F+N70MjAo+6gflPy3sVcNeNV2ciwNuVgzZ8MlllKNfcaGT7bytuSiXSmZsg3HmzMNcI4uo2GsxDgTcQZ3LmeWiBx9bFXRVp48iLfqPYvHKVJIjUT/FilvkMOjRN6DnFYtudkzusU3pxlgSAFhNM+v3AjkB54i3W7Tob8w+ZkP5N3z4xULqfPvu94icbXMUBQZ3gMCxEka5tue5FUpU2m55PyfyautGDtRa331WtQtW8MozqLetS+A8/s9YgFplapouAXynB3CjjITZVc4jLyB+LaQyPjeofOx5pvK5bthx0K4ONjrGeQKG6K5+jkfuKLT1D0akvGGeaArLhwtILe+enpZweJWCnPl/2a+eYxmo0QKoLiN25HMVDmuJ4xwms2Epbq6e2QPIoFWZH90R8pkqxS4BfUdnLekAMtl9pVkL3B9AKL0shIreWAR8ZIeXlNPECi4cc3EX2B8tEVBcKgtcTSjmAgSbS65aPXqjvKzP1lJAs32m1yuY1L0cAZjRNWefP/Hse+MT29JDMhAnnCwDCl+b9Dk3whAvJSC9dYhY7ufHGZ64NCXWra7QcMy8QxufcH3cc1HCgqnwgHRAJ13B46N2qNn8jruh2MLG26UuGz+chlfgqBa46vAZxvEkbTzVcxBdJ8MNbpVWCMCYOYvJyi/fC3DDWeWzRZwC2nvnUjeadro1nxdTHKMRQ6LMZj+zncIUfYC9aSzzG1j08WIndEhktO13Q8h0slSiH+aJPs3HHYzs2nmtc/ZwUiN0tnUn+q18YT7Tcb6rE4fEkDa4UF3FXt/Ds1cHF/wtN+EWgVQVvoDrIl9rBmiyWbXDJ6kb1Jbra+0p3Ry3PkHPCbqd1q1ytUfntQLqw2CVsbqHvZ8ekD5QAEAuv8g1eW+IsWuzFpo8+AAADSsh4hBFf82LQr2WIvQg9IikPmqW/gHYZakL1eZL4It/Jb+SelOiquqcP+mxIS4pkJyC+mz7dyt/FrpJYl5RgtNk/YT+RZBPCBuhdz9p6z2VpLAp5o8GVP+4PhTbzIjxuZevSZ3dTXNnkwcF6qKY1lGHDVH98bThO4OSRSRMtozqI7Gj3Goq3kg4dWuuWgfZOK2EeUWWwzJRI3d44mGfz6WQLtd898fRKvMwFE71FIOCZj/LKbyPL3S3FPlvEknObw2lIKHyLUvEo/G5oN19q9ZKZv54ofQCo8mpiAIBoOQcje57jOZgSACHTP6GYQDz3hMrQ1iBhIpWu3casDx5FhMDdDi39LsByIRmGJQjkw0giN3UJ58u5+6oplS4OEi4aqFozSUG+LmDvyKv5AzNszODxvJj9OzjitccBP4gQimtSQtfU/2V+4YqRR+OQUMEPkqOB9bKmh9sllLRvW1CYT7uGeFdYwJw+XQeoEUKY3GhlGq3pCOdDq8nL3o/ch6pFh7XmBftfnx58iVUNRHlb9Oj9XuNMoT+y8T89bNOifgnvDyoJ5GVZd6karcfjIfIvi+UOPA3sAMEKw0ojsb6WJfwP9uPKsmYOFGA/bhlaTC7dRDlIeLhusWCilWSWe28RUr4pBbUA13zGSDX3dMXhYW7U/kq3YMLCLUwohj+P1+IVr+pVvHjivB1/ZLUzBLpTSgmYB4xqH5LatkKGcPvr+pK9CfAVIa9xiPjS/djTA2hn0bQYNdEbPHAIzWOhUyWayrJ27+QxSByVjRx4td1Ous/VCI47hMTEhRO7cLOj1joIAO4UN7fIQxhpIaMSxhfUz+0BCuf37Aosf573f6icaJXM7VuxsSmaCKZdeqeKxZO3a9tkmJ7MeGjhPX/l3DHdu7bX40dm9IVqJTNmWn8fg6ObX8dpsc3Zthi4YJ2N5ivpZ1xND8ok/hmPXXs0qp2yReIkwiqHcbP1k0mPvawEbLjVEyh3CrB8QEOK6EPDKH8lLJHP3n3mU8DKuJ9vOgGvjm4RRjlbzCYc0/QPvXwiixhBcBLf5PoBb64X7Dym/fE0Dr08EZZ2PqBlkRvYvJtH1ES/OoTt8A/l9rvvqGN9rv779PxGsVdwWugWAq7aE52tk5rfwv7BT2Iz9EREN35DzP5CjZ02e1bZQd7+77pTKg0FRALaWHVF1TCSrHqOSE+GFTeyYmyCGOAMKnVd3Ep45ev9BpXMTmZrnpFogaHrRgiaL/tBD8asYBc5RlXjQXTHzxM2nrkG8pbb/+Aep2BZvh3k1C1pMgrwkKBcD+iJ7YMZYzqAMwyRMrYgxSqQOMjzjr1SAug6h2Gu/JBcGb4X3AdQg+6Lo0cpzTCJKcpFvYbk+m6GajUNapdj26PAlyFGbjeE2pzYscLfsxsImtIZMSMEBRlqPn9klAW9VDwgfr7r8oou/2PwcoUBRtzxn3DyLcYcfe6FumPNh9SJbWqHi/Rj3gQ9pwYmRMnk7hJMCYFAu2EbTbBc3Wvl/lFy4okZ186P3EZoCFWX3Ffk+FT6MUrj39EwLviMNmhoRdN7wn6j/vAWF1rCmyVJBTs9TOL5WucImya+FtWNJL1qrN+SXvppf6jVYEASnCcg27otQe/ckVVb2/3GsNgAkzF6+zCJi62oa3WcX71dywsGFlwXSNTKeIebkMEhP3LuMGwrAkgsARlpnN+QEJO8zwTr4z9WjTkYXsCg3ch7iBYLB5d2rTfTYfIJW1IbbtoHXAX/Jd/Ie6+0+sJOMH8sQ57rZZ19/mE2J7BLjzZVdA5r3wSKjtoBHykFzD3lsp0YViwKFXXNUTBdLMPlZNQgoB/ATdKslLi572iPgqeC/ZZEsstn3/fxlJi6W1wFRFhQN+F3bnrhwU3RqRZhBDD0/36zK+BGlweVMovHGUy6g0mVM6r8oLuTl7VPlLlWCYgSqjS8jYrZyIGJje8ieUOranALmCaR1eqBUzdJaEZxau1X/cRSqerJ5umVYGc7lWiTvyNYhuL9oZ1dST8Wq4NPY7XJcxRnlBayE4lyptH3Xrd5278TlfnN2m5yw0WkVDO/S5DPttRLV5/bFfS2h5pEgzsjeEWoygz9hYPay38M7CZdICd7jM0mVd9K2eF2rgBJy0F0tZBB6lLalIija40crI7/REZeZnApK6x4DMh1DPvHdB0mDlb1vSrfAYdOOP8LCAZN7vijYwXk1Xfc8WjXaWAsTvUs5Qvg43nWKWTXK57xoJ1u03QwJbLInZEiuuZ/hwpv2Rh2NuxMcermVFe5g0X/tEZHZcs6TvtC2a3I6bzHE8jbB0LwB/hN6RArGB32MNYQ/v4rVIaQrrxIjI/gksH8Fg9qL0bspDPTX5uSWIKqb8OajiGEtDmY+zNzmVf1Zkgk+8w0+iJ2ta0eP/VDvXOcF25+6MSKhxuRc72be3EX4BV+7xzfhXdFWbfEiat5+sjko2olNc7C/Pz5gMIom8pSSogW46+dYOFo+xzcdfHCC+Dr9lXxLjQZ431Ke3lIK4N8LY1RFPLrKqmERwzsMaEv6wyxC+WnaMUpRstQTjKnhIJ1CZYoJ/k9JGNbRlH4dwaOO4wmre0IJmspsT4av5Ros6aRl8SZJL8Ag733qek+RlhJscOjT3zPZSBqRAYazX5z4IWnAeYhl/qSDMUGf/MErHQ6PqknhZcTvHNXOD7uQhfgNw9FoGP9eLo3FvHoey9Yn1c8XBQZo6NphQlIaZ+sxi6031vvjjYmvBOZ2XT+/6R7TIfdh2+thmQShV7kBlDNKcFm/s+6cxjafUWNVuqc0mtgAXLFkwkUhzAK0ONACQJNb4PO3zi9oPVrDKSrMHDg4u4hzoR2y0GrQZGsGkKAzAejkRQX++0EY3KU7lZuD1v/i52YPx9bloXimI9x8+T0fjcoKyfepJc4ojTuINDHPcbEA1qbEYByyGJuaZgTHi8rg3r+pNcO4AZfyMoai7vsfwzLLOLQAb6YRhMkrRTtbpHKrbZsMgE5sfDk1q2JAuhYvmHSU7BjXYHNAe4chfTeWwr3B72iJN2kFKhPKi6srG8GM7Z1Dg4YUUO0gdMY72Sb31TEUsVgv3DEhXoZQ+UPSnumXQhrz/IZAXncWqLK6qtlW1JLa8FBBOIobwmm2zKK6n8VJOS+DsRKpN31kVknwpM5vAjaWxxS0LA0UEEZ7UvcUhLry0LGuEVB5t47imoQyrPw7sB9wUTuZMzBVhIQ/vmogUrbOaei5lPKZ7D4ir1iaMydWwrzu5Uuso2J7mgnxqpIWDd5CmJ+Z5XGHJPZfZReSF+ftOyOY+qSiKB97LX3mkFbOmccyKMvyC+Wxad2HIXoPRQ2U06FArcCZFMKczZ29C2GLKxiODVwhknSdk6Y+NAyjj3nBEZQQ6YTpMnQgRMycBJaWcn7UgjWmaAKA23W/gxpHYo5c/5x0MDfegf3Tw/CtbE6L8C52ImTP2NgEnwn0bnWDHMhUhHf/2WadhF6DVYFV9hnuUWkp8Wil6B/xXwcP3K4uOqHhm0zXjOJrIf4u0jiZurjQzSnF1eYP77fwdArPTMBig3A0ukCtFV/Pe/bxArXQycqCbeiStcobJLwmsUAuSl+RCbdznWQPFBmFxDYbsyia4omMSP7Yr0hl8NK7uGDMZi0bJyeR2BPvrPTCwsR18QXUvpVQtKysj31rWzlPXEd6z6C2NrhF7PqHAIdYc8/jV2lsB91Xga5pFBFiYgU3QhldZuYmaPYVlrAK25nZv/CPbWJ9r/OvwE81JTP1fhPSma5AsQzyIz8Yue00OFHMSQ8lK4UErquFQeNakQrlYQHd3aShq6SXCiFuRbSfZ+RyOVpDkTVc04XdyTXwXTQYPVDRVIctSxXIMTLomt5kdRvTBDskCz/xvFiEni/w2e5DXCQO6Qz6KlPf3guXNVgWf95GCwKmkdYZjV8TjePpUtfIM2mELWAKhVsvYn7gKpO5HjsupITP/tU8DZXxhAfIrx7Dcq0cm8+g8NETTwv52DOvHvTCC6zXerRw4cTvDYFTrrtmkUv1GuXMAyvR8NKIzROJQLzMAm7uCpc0c6BeYNWtS+VZBw4uJlYwUy7LVJJdc0T0RpoHrGrqAkblerPyoI8K9JGhD3LuXAnZL68PRsTc+9lD/i3G9LFL2+3JpI3MoRtcdXf1aNnbQxdtHnqI+J/72rDgA3QNcUucJsqWRt6nPqFb4slvL0LJ4oKD1rk+73ynv+AWHp4BC6QW8Q+7mJyxElQCvjAZ0jsq7b2aJtZr/F9xVqBEgCyvfr/Gkah/c6g+r9/bc55IcZtkpFb6RwbZK4olYgW5dvwbf4DsVZXrxe2LqIBgRlCX10pXM9urOHABA20SCI4GBXi2OMZ8dFf37OegszAwa8cmpIaDvZ2TaAtBMFC4fzac46v6EybUiee7LUMuJcaQUSPjbSAovM0SD2JPGCQBbFTW4YLOebM5blTg9BQHgk4BEUAescftS5qykJdkKo17gH8x9NPZK8OF32wAAAA+cBqMOIS/+mzCofxgAYwnr0+05RvH5pBkhUOaJYHkaW748fTyrg7VL1FbNfmLt1Pk7tx+mXs751uI73Sirf6E+E3NdNT8U77vcoyv8VD92o5wqKjTBHo7OG+MPy6nIFkzrFjqjYYbNmWII5/fH0CHGI8dmhtlhCw/Bz8AxbhU4gQQ+XE1XHwUy5GvBud0eKATn62KWUB7vZQoef6hQI+RSFj6FnSFC/QS3sKXQrlSYP5tXvPjqnf1uuX/rdePMq9mbVSHgfBZGtqLwzRWF3zUaMLFVgZtqWpzTxF9gIRHOnp/qfA+hm7BtKyvuJKLwkFSa+iWUwypPrRypiF9DLL+ojPq3g/6vtaTf2Ck/RzlouK681CNvvqUowxszni4mDwPP3zLT5WLeJE1aINraTlR3Y4rPGCovxBLK2MqPX+mUCDMeHJDhEcVD9bEzmuy0pJI123BvEWjxmpk5Xs+fJo1M5UrY/pJmEuUjScrAfv8AO0leAV2+oNz71xSnJ+w+uSPY6wZhd2eHoJKHLfMXeqp15NV2ea/Zg/5JCMASTaXEie7q32dIYr4HmZIGsV7cTllCKOrv9H++o/p3iQ18UtqU0jNmPv2DwS/M2roWVoS6R+461268yuRUS9hylb6wF9gIS+3T1eTdI04/Bi0aoUS7EXURc/ACiTQJYzQLFS4ynP3iXyHg112+Wc6zgF34W237bSiN8x/DOWoW/iahf1Zm012CdbYM7gyXyfiWaoD18226HUb6wPWqf07FiI0ErlTr4TrS56UHVqcR5Ya9use+Gf/tTXsxMaBq9fqcHGATp+pBGeZGjj1Ntg6Y6GZjq1zK6hHuILsQT6ySWELRswvo+WWaDZGQ3VIHIWYIbkmDADtlOsAfSzPPk/TEmcnXTlDjwMQwLLAgUoXXsa4FsXXoURb2jYPVBvLYfrm2d4VojPMIKj/HruHGbuEjgSKV8l3xMVAXpO9GtvoEEx3mq8rw7cxFNNX7qRanm8qCMjD2+ZdTkuHHbFMm1i4oopfOdUkLywKWrgffOeoQfuPinhIm1pXKFYqm/mv+x6sV6fY0M9tC92FQQRJILkiu34Ashd/+PMffbQa+ea9lmPFQ6HiwzBwTPcNuD6tXJMt6Yw5jsAEBFxZ7KOwCLXg4rbYnstFBmmUIcf0xycc3kg306tFFIKWACiMbQ5SxSOW37BzG42VcHDix0gE8CyIzx5pYMoqzuG/d74WHzPhw0Pl0lj1UKFnhSJCAOMU9kgzi43v/0Y+SUzrRCROVnshGnPTS3ItffOoaUxnFRu9G6SiPC/TB/V6w1EUSVY09nP4tAnkcxt69N/Vu7rP4AAAdoIeMYR39WC0CsTZbcr39v9UBD43LqgZPbghaLmpnyC1yKH3uwT8nqWxqeXnybZbZymAs6Sv5v91rCcscyWIfoipiRu4MyZvO5ldkKa1hLKWiMwGJB7iCodudVtmxWQOE6Ty4CiKfqBnSixI0SUidN/dBN7yEqnWuv8gAnNHFkkxnhUdlcSUaeJLAUZmKZ7HWegV9IFLzVe8husIvSjAOt7P0k8NILMqwi42rRgnwFSbpDLqTEvuNEoozcuyelS1wg+DZQeZLK1fFiTZrxXLqjnuu6p1ou4Va1WLl4BL64hCvyI5i/0wxB58zoZs8GUEQbaDWJZw6iyhicev5lUg9nf7S+ejJYeo+Vek5RtdlxSaP+gLIC+K1gZjXmwEZh7HpnG9kGdzFVzZ+LbwIaYcrU2XKpb71vSEoXfFX+EhskV6bXK3Ci8+l7kOocxvpOrQaIee23tEvPD41bNm7KfErxNcGZC7XtCVnpBjW/iiiv8aXleNmXhdCX+fuNbu7gqMbcHlUo3ozA/z2Gz2AF9D3pg+zMRAlQCowt9Etd9jtlu7SkNEOHGBKt7wIb//B8Wr5qZ0G4TO5XMxqy1LVFallukgg+hP9n+NsMMmEMXWjdHkfNGZi0rQLGWtBpbZUS57O1BxSCrUjQnf7lbFf27ltEerxuRR7FqDLzHtiQksTbUM+AMD4wGUTW9J1+cuu/oNKAosU2UGbBKxjwfAJ62DZS8KiX3QJY0WLAInKxS5s6/ITIuXks1vpjnbsWnDExfWbnqr2cNgmTfi4AFR8EjhO3iodPrMER8WBOOcyOsf9rT2klQx7jSBNHmfnmghAgLwLetONSnCyXpQ/o6y2tXOq5Ad+h9Ib7zVuyft6ebnmbXoPyFO6Hiq2HTEgDXQMCc5nY8pFbkcsV/q4RKtNBtvsZuu+AP2Cs264GsBaaF5G3+opkg3plpGZUvrrr7lXkErz/aOWcEmGe6hQRw27cuo2L1UKsOlAX3+/jjKACKv/5RFt5Hvu6+G802PXSnMeLf2KmApIUFIDKpcVlwG6Vb4LqMVae1vbtKZmrBIthEr/fm/WoNHtPrWVTfc3b+yp0xpqlCp6sSIXw03CA5CvDXoVUhUXSAyZwzt3Rt+V27vYpGxBqThYamraZyR5XKOKqN/AguUb4loFU5oMYd7gOoJAzAMIAjlmNdWSjbPuXKKNoeZmSYvJJIkfBZQ6v65I9XRTAJIjv5fHZEMAdT0aVao+11Mm6r4KtydOdfnxDaWH/jDiiuSZCHJvTZh06lQIgadBH+R4pMmXpF2IzU/lDGtc5uj4AGPLsm95oKbmltBXYk703RBS9MqjZOW5AiUX/Fm6dD9sfF2Jk5vR11q0MWbdYBrOYzCzLlEqTcGfgH6154rh6jjsOxB3X0GapjGBEHMTjWbDhVHrzyf9tHgndvHXRsODknjldri5l034wsbEq2Nh1lZZffxUbnwYQJyhsbYvyrvGYCUUn+KS10r9N/oln3C2FwF00vPLhRbcKzrufSzacAou6o/FwBf3tUFYI3bNSE3XNat2OxE160+fTNCfdRdg+EOR2bXUY/hRrEjqFc6NgCf/x0eWy1LbcCCpV5MvZwZ/+GBYtKTu2F14rCn6EUrCKWdv3up7XNRQ+5LyQnDfnPOG6QfW9wEbzekjx9xpVfuxMUnzwLevAYNlBp/3GiKP/+ifjF33PwT4rXRVMjewseMVKuq6WZZEL13mIQ2kzT0dbplBj6p7xjpKItY/12gN0XHpKwZ2RQGIbf9Kq6lZmPmE6TrJQDK+GlQKDIiTDLqXySi2FHSaBKNwuMBdyKEDYqmeZ2WloTEioPLZ0ajkuHvJ+qHOsBPa8RvJjcQDv6welMniJZCjpSTx42G0+ng6DmSXVe5Zc6+Ll/5R2/2oC7JIRb+S/DoEuBcFurADA4L1nNk6cHwb/YYDzjAqNmQ5+fo3UNJiwA6DJxd7UVx8grQgSlFb14h/e3nc7GfZ82MCfgrkaW5J5kN3m4DTDqXntMsC22F7R39iZA4e+0fesd658+X/2iYZXq37AymB/ZmYhdMG2atCfZ9P3I3VncaeGxT23wk0OUFS46BRpQv5wAc0cB1BKcL3KptUhHYaYkEwVak37u41CoxQGPOub5ilT8tP5nEjFPm5/gd98L25V6P7zopaADxol30CmKgqiKRcVxUCas7jlzE0eknrYiW2Lgs1NYXcO6f3ThiuNQImbT64swqjNd2dfHZRY8eBL8EqxH05BXE8kIig3QpxLZ08CT4kyg/badN8J88nApqRUr8WVTCaV1z+gpinDRLQ6aZmGMKkUxY5AqgXyUFwR2eRf9TrZ5YLqXy7KNToWcXxRF1+yofHfx039GVp4o/bXUAxxuyXsY73PEZu8P6BdTtZTTsgv/1EPTZaVV0ZjI6VNkgCS96W0/WVZWFHSb69TrrOYz+ZuW+loa1W6Z+z8XcTp8uMIEwEeW11V9DI1xWcOZJp3Irk+xKX/WXobU8gFd/F99NpZDpuA8mYZ47girmHaqUUlyKzAAAAD6wGpBYhD/2Bvfx8cnqzQrTdMbM/MJVqg4wor1nLzXLi1V+VSLUInHydQvydTF3DvEaw+GqZr3O8aOeZTgEzu5pMSNRtsVuQmtDA0WhBm9wZVJAUxkximUEGgDwQvIciB3gVmnWFSWeDJj2oqjiBkNCxQj0ErFKfD2Y3T4woWEvjvegF94ydYg7DDTr3Djudoglg+PTPniH0dPmoSZN57Who2vpLOoHVfk7zQdSTyhUgNAiHR1Eyq6WDJj3I/dsXWPh9b/QYJrHyCRGk9XoTMO1hkZw4NZjNO/c+iXNk81WC66MP1ejq07ZRgfXUSPhMXwWBb+9wO4lEjYEGQQHVX0WJUYK9iNBh9/DEEZU/fA97nk2UVeM9s1DadgBP9s60LBDIOUpBxTy5FS/keYv4MPQahjhOdgEju38eWtqmu0JKgGsXSC6+In4JHgg49ZRWPwcUG8PfzygUZ0pbEEUM0nnzwS6MatajOwWXF5V1oDL52xyJLl7MSZi75LVQUaI13ho5loDWYArKW07DBV4ozES8FFmbceH9w3AuAK+1yE27TBpH5yEjF5SrxpZUDtXYYO9pt1oy/0MwPpoFliqqZdm8nlhveZyJiDEThKmRwVLYSu2z4hPUu94fXbWMEQtJq9AJdCTJTVPYjcoD8jPwTME2Q4UzvqWDGdpyguWItjmkTL+QNOCYmd+9qGKMeyZcgCz7+p4gFa/cssMKR3J8jfRmWoyzBjyXNWeYfvvHmFx2KG16di0nefPjRMNsMbZqjM0tMMxu79TsU1xpD9hC38GZ1KnrIbDtJsNf5hANY3uxDPLpYnVFw0q5f/eTWtrOolr1+yh4LUiVi/kM5sUsBFp/DF4dTIcnNghtAs6fcjij/EFIOxe7Ew5fhl7mVBLYUGF3Cey76H30u/JfP1rPBRRk7JKuDoISP1UFSvzqRmfWmDREzA2w9x3bPQ7f6reFyyNh1uDK2ixPZ1fw7kbjSID3hRdOGml6mID5w9PIXJS0YPYiUT0poW/yLecV42sSbh+PLEFruP4S3o39vmbpIfblcL4agtwcMbXchktAEI40tjO6i+VR3kSYs9hqccX+D9Vdn8iQfnIb8xFWW56vR3EnJYoTjC3aER5q1uCZPZOu4PCjEb2ck8RrOaCaCVWP5KFS5QYH2AoGtl+uQAfkQ2oKP7/NbPaPBLWHHIudrJ66+4iyFcvyBV9Cd5VTClm04ZW3UqGz/jjxp9a9VfyctaXGLJtVvwBVxLlr6nOnggBFhKrV7y5t8ECEeedgDliKM2qFdTpRv3rXYU7MTrHd/o65LURR7NmKYZiqdyfWPeWVsZ4OAZfesgdiFe2AAAArrIeQgRX82boDLKZzdUJDE+ZtuXFI2oM4LIWI4hORrzVuRDJegCv6OZLXY67Z3l85JvqRDLcjvXs2HZDF3IeQ5SRN67OHsqQgB6x1vV0fvUagjafSZJFjk/TxqDP51Ig9QvbFkGIQYOIUm4B+ABzcDBLEOdD5T/sO8PVefJLLzoudB/Ci6IFySkXtaHXtEfYtzjNViw67cfOzQt8pTiO6Tl4SmHi7lUyt129XSHIxYPIhCdZBPYmtx9k2MYzIBBQJS6DfO3Im3IuHBbZXhO5Hk+3qzz1oAnex749chH/miRRtH7NuQgJWw1mUn4Dxjrop2L4SV8UN8ZtCwnnXyGVN/oPBhR56ZwANkpjUYEDIZIyCp7x5A6KfyJlvyF1QGp79gYmGm98LNw/gRYfMj5oJ5RdALH/OzptI3I9u/KvOoG2iyaQ6BZ1AQkX11NoSnP08Not8AumDU/nnO5s9HChbp8OlXpBHbrvdMQlce5Jan9HYwbsJNsvdDmCnyyXWJI49qvCAuLfYmdQx7uM/KKe4ZZX4XGIHUhcnWYaxDWr5Yn7CJNbuU6dpajwG0MOpRyn2FwgT3c8dMbL/sEuZNJ3OSjo8wGKWC4+Tp6BFsWw1FNwuimb6IE3NvZemWMEPHyB37vPev/Q0H3HrZrWfOl1gxkbxZG8j1Vu97tQ2g0PM9OHRc0evnxsxFz/78ofASzuW0+9JQ/uvShqJTXWK2rBqX2YR5dxxe3tSdBh4Pt3OY/3VKu4m5yFMFHBvDBJxvyGx+Nn6u/SEqI1xj0JDKq6EFD6sL82PQMOIRg7nU8KAKOiM+f37+DnhES/uiYxZ4t615Llzt60jMahQJbJM/smtUVEIM3Ca6sbQ4DVDKrgZRJTKMp3NS3AW+dwBswxCK5x2f6rNKHn890wjVj4dsF0pgHwasCo2fsApcIF0Bi5Qy0gGZuapbefjI6e37zNaOvS2YnFPVLfCxyWm68iCWE/gtiSGozg0d8SJ6B1cbKNP7jsznYrUsYzcUCsZ6wRIiMqyABkKeaDd5/AJIaNFu1khLKc+jb+60x/9Il/L/thzFdLkvTSUn6PT21ozOfJLolYOa+lih7YWzid2hABbeWtnfQiOssG54LFiLcHZAYfuCYOWe3CkAC5jR7b0HpinKTdGAy2K+zMBvWXNEGrTC4isNgj3y2UbaCrErFBb6Gr36UP+nwsOg5sv1EZHNVfKaQ9d2kV0ESZu9EmRmIuXszuf/8UclY8FDPElpTDcDd2Ix3pNTTfvGJogfZOPgz3uvQkn2vch59Nw37ratA/9UKnr1p2z/LwBfe6W/gtvtRWsPTNRVKLumZKF76jR5LsZRBQbLcjjeUfFLtr+KpYceL4CA5L2Bi/7p05ikjSMzRuF50AIpS9tfXymUCba3wqDwZCpAiPhPigNA6gORyRWXcXBEwTcYm734BGzVZap0AtudN5z0syOqdxDyqvElUXtDVCtAWhTT0yW5XgdZSHlWCrbJ3qy79ClrmLpfzYCXlb+WJ1JSX4nxNMrxk+TrdM4Eqx92wa+ENY+7b/cphtexnknnv0tQPNEQDKGv1TsmetKgD0uVRaRE10dui++8pG7eR3RDP3GJFJzbBG5cZWeUTiustgY0bfoNFGRCAma/ebwmncUuJdfDmufwM/WaNL9MrjxlSs8V2d2OXlrQEnXGrWpP3Iwq8cppUqLxXeqaNC/FQNhYpzFUv0UFTk2mEuH+khVHdnPRced8XDwf/hME/8NMK8MqftfiOc6GmCmENW9yZM4FqX0/W/GpyXiUSfXmWnN1BvS2NTu3aZ1DyjjnJBJG+nxf5F7TldnBizIXA2rVMafYMPT5hvvI4DbBfdouzV/Jg0tN+nuEVoFyzj9dm6otlMwe7wqN0N2u3F2HDTDMKouiHsv7z1S7FjAGlkLzeMYZxNY/ki/5JDgibJ3JsiBtTc4pVuR2AkzQ1Go3u/TDIX+x6mAWKu4U9zWtdV2pByiAg45AkRSsitv2jUMP9j/3pxnegPrE/VwiD4POvUjZkrYtDwB8MOJZA7lcQN7ZZXS84IycQm3QoGSGg79H55KjUPxtEesTBQ8K+hOVGopGH/vcgZTAYhoBzUANrWnTMykz3JiifLmnrusxOiYuP2NVikKLeozoqayDSnmYkagAez+Hp69ZVoGf9L0jPLszm6kiljqtRpqiC+7Sy26VDE2gvaJwtjirtwnupWbl6Le1VYN0fRyLwbCHOa2RYJk3fo7m6RP7BP2APAKRXfpTJqGQlqJCyMZo89wjd5bq/bsfpUB8HXY2BSctG/UqN8dwtajkG4bRiY4tk6naQza+p1kPeg7ahW5qGQvktjIOc8C2oXtCfe2G0rLpHxyhOGF8pIiBDbRENgBse+2ZzZVpbEJheeqr+jOdViITGg+KRwNaYeeMp3i1WMFrZu4pMrsvvYJFXjfz6lFnnMO6/p5/5R0S2jmlL68txeLYN9OHlCw21XhqtzwLNLL5kP7zf0Q1qZ40wJzCTvxwgU3pUd2cOIByFQaha4nKbPcWbYFmmPwZinwdbFvYIAkxZNX48jv31qMfvnI4b0ci83Pkn9Qyg6MB98hYTC+aJhdb8CZNpMIAaWR97AJE+3DZx/GpvfT3kJI7uPT/rGk1sVI8WGk0ak+fRFtvmSDeMLVY+M3XAFz2zDGSuBKOLrNFCwfdomn8UCUTHUnX7QZRGPiF7tG1qqkhtQkdygqQ6XX0xd47tJHb5KaEP1MQZWtaB8OShbm4nZ4gXeNFXe+sxTBVeW2VhOxhsSeHpDYTgCWrVmmeM57l/VuDBYJDGQteGuVE2a3StS41OLFW1NKfyYGvsMkMuL/Jo6pGYa6W7MWqKKkgf9f2/r6PGmu83mp0VvdtvVR6eCMjRYWF8d4Vf6L96y8DsfUGox/3x3N3hSJQfEVuifK0FdHrI1zJCZEC/EIcEz4osU6VAoyuCP46BV8k3NHzptPkx+syp3ZCPCVLZcM9BbkhEgL+R4jlhz2PFeUb6CMLC8AetF7J447B3FR3AMX2XE9xTgs4F0pbm08+jr/PFyVtCGLiANqSUviT2BP2p/xhx8kT0dEkjMZD1yvqUuB8TY+2DNM8ur7NDuu0cxfsuvYchNE0q/nJECC7UhoCZ5peWjMVHIHNJzBbSTbaauCxmQaV3xHuPECMgPWpCYt3fv+W2uqB418zxSQmwuJcwJDer3sQR85gj2eExwmkeHD5/is7iH/87yc5JhjHmYulJzY5GoOP97I03oO7JRz13zGuNyEIADyYN6e9dc9TCE7avMxxNRrS7KqISbo4Lmg6oOdO44xAk8C05T73/OQHNbL2tkh1E+bgOa3xS/zmKspIL0MKWVxBgecUitWE/PT36Ak09lyZ+Pq3KdDcGi6ZKs1coVTAWigh5aaDtvE1vH+AQzUy5Y6GheNkyJsupidrtpVqOKuSTioG4BCsFAR5G4QA4vfTJtCttZ9OxZJBLHcAmqcZdTr4pMs7e8j/EYa0Yw6VAEpcv3fXdFBqfuqP/9A+WTpNl70e1nfihM1gIcUIjEfp1N5I+XCh7ktQCsgeowxLO0N2dTQfvLjo0Fv8Jw1K/2pqgZfDxKRbL2syaoJmp+KfOOq4Qx03+KcelZe8Xev4FTkgse0r30s0zUOzt4+8e7rvqc7qqNA72vfWInxBJ7qeeOvgFeEKOBoPRHIlxthZ62dgCHut7S0ikeIOETVzJioKHfJCAWwAm2ilrOAAAAR9AalHiEP/wWjeF2/F1SDXc/EZojaI9BhIoIhnDCtt64IkOgVpO+Le7sv/4miWuxw7i8HkMjkMPAfwAL/QJP0oytAqIXHJiDdxfsT7aaKKh9fnirqL0KMLzHzZf789ZvntUIDsimPRbX65cgCO29Vs973k0zsCKUpxIwmtKWAq6cRdk6/ZO+KYjSdJJ8N1NiaLokOSV0b+cchDLMnwPcIfjCgc0sjdrACaSVMtblxS9vk58cJv4DpEHUHJJSQiBJ1jVHbUllufGW+K9K568CiFiKR19A5HljCItiWkqkMgQbqoHXxkoHSbafTs3IreDIcf+VZM50ONgm7JKXeB8ZRbo5MsQzKGjy0EXA64wLoBaZRn8hef3ShDjagWSQUqVXfib2wii1Bv+5AC2XK7z+EY6cRjFV58d95C8RFZVT1rVRY0Tfo3nM2Dh5tVKilOZUAIKXuXS08mQdxMoRaPoMx2V1oHFSbe4roNrlDrsMuZIW6UY/s1CXxRllfIPoRKIdEF/BTfKSXZMzXuryid4vLhWLOrVqjPu8dP1ZhaXvL+BMR5y9O6Wuai4/6rG5uP5BWkXhCatgxQBmD/9c50+rB05vW/nx5hcRrgOxbjUw0TZXqNLqwExXDBV0Q7BCxLrdvUea+pawQI5HAgqhUbfxdHUkpAT1vC948vGqJhxySiRekN5yK6eX3M2f97HU5m8mGkJ5Nk9xZ6Q1Z8+3vK/jDtV3tHDgGO9j5CqP1EIyaXzkPfebO31Z+d7k++aFsaEjc8x+pwekkV8FjaWTTCtXJtRr76yphA9WmehquLy+O18J1wTcjnDsl78JMFMyOBv4aFdEeA7g3lZ/vYvlIk8OWQ/KVgs/OAsBmTkYwjwDrsmQUyM0e/zyRS1nPphk/vek18ipcv9uxXw8I+vjEvNY0vRQbih/8mlkvjofO8ZBTo1ebpeNwtGzYNWmoMtV+Dyn4uiPWpSmv/k0c7ehAcBOTzgKaJjcjW52/Onp3vcvQfhedMuK8NK9YfOhK4YpgTYU7FiwmTgofEUEaDmFM8Xb0mdk7qHotQgrxWEyNc9DpRK7QSo3Qlv3akTdBtPXKVj8U8TrQgQ6KwaFZPHyyRtnSjcBRHstYBNVfGgBzTBh5EOQpSeYQgfgJ0YRSpOOGnvq2f9NNx+K5CKYF4aXprRjkz7Z+wZer6Yu8KRrbJXHeggxp2Wba+8QAJUb1Lbc/yAMIYhLeCub4PPJajv2dbSkGLVB+hgrbftQeP3mmema/DbWACWXaDtzEEDHthPV4yOfIDfC+XV0x6V3/d556h39hPs9boejXS+p76y3Xyo3NHwdcyW0F2i4/nH8QOnYTRb+B+WB7lPEYsA6t9IlYMhoRSUHGLXalF8RWqMBWyATl3OOY+2luj0reP/jseHN/HvKVJKtcHeyRGF9j45dqGCTWsyezHKRj/1RspH4Ka2fT3VszzYjRyX429JWaA/Iz9Bgom/uhkLGETAfSnhshI35jpOU+fTECBfsY92ERTLVQFp00ZmXaQApYwy18HYtzbAAALDCHlKEV/RV/gw8ZSD4a1LwcU4lMrN1zg26fxbOhyoEibxpDryNS4NZOW75MIpiCL3wThdSRraYz1eXjAF19QxIYLzQAl4jSL6gDG9nWNEVNi9H5G+Bp+Lu5FPtKCYECNh/+geGnj7kXDvodIv+7vmiG0TFnMOeIzNWQD3r0HRdmxhTXlNAGrdi8BLk7zdxpS8EKNB9D3M1dC8H2TsXm4G1s64GRJE1pvx8WN6cqCgjJDSMFuauuJzrBpN9bjVPakzm2yuG0AOnm/Tn7n4ik+V+t3IM0eyxFM9NuqEpNQqiUdXxYekbC0ysT8TaSvHLA58zI5gqzBN6QyEVlIPmdEDpnwSJ59E+miGxyr7lSI67jfkSzeyRyPEY7iEr7OixUVSjnoGu6spkzppUIS4eQsimTzCzJDI1Hc334sZVRtHfC/jTKLxs/RRXKJNYkJidtbb8rLfPxcYib9HXXaleJdOTqUSL7pD4NxnuDQspQiRoLobX4o9IfEnCWL/dHpseQHrfuuZU7RdqEwb6qE3UipSDFS+53KPlWNDUtpI0+CQG8N/tW0VMZW3Zq8eouyiLe3IzwvDHvXFAJstmNlD2AYyMtEsGWD8NJSLY2Zjychz9RN8/QykDU2XWYiOb2KJ7ehTjrK9btGI2sHJ37o5S1vrTDznq/Z9LnDn57U5xjAvEeGcyrOqGUjH73U2lQZHL405YDr9jRHdA9mVHrZFimdsiEaqf7dZwSTQaw802f1RjP3zTOFgyL7uUENPdYWGUxesf7sv3GmECWN0wS0JluHa8+9BrSZHKgVuAfG5uPgDCwM6PyqM0ruxrP/eH3aEomRudlKYat5GzAhJWzIjlREetiyJWCFUBbQ0jWjj9z4qumZHZ7OJU3a7/ACM8cTmERlpE1F77zJAg0K9v6Ya/qX56nQRqrJcc/8n9Zv6rXiuIRVwEIoopSjXhPqbwAoQmAZ0bANHAlfkA3ud4VSpSQW9YefuxyBcFVLqEMDqO9FF/+pw/lIysPQRMUluOR6Vo4qqXs0FWtMxPzWRcWF7FJP3oIKRK6pEN7HQyxxPrgGMxmguzLtDSld1283M25cefMxlVTaUWl5ewjWc8JW7qpdbqmE6Xljz2MDQWffrnAcWxXNhgQAp2HDV/epuTIfqk4CcHM50OBZkcIKh1Y/H54GO+FENPu4lVRlfKFb5jaKNGFH7pvEmEyMXqI9YWIhakEMFKqG0c6opJC3S0nMtuV0EvT8iRzHO8ufvoAVec4fEVfhumBvEoFkXFiTiZ8g8NYg+aw6LXbo9icrz1lPbl6+GZN0iCo/ZvkOPvmpnTql2M2EuuhOs5LQgL939Xm0dXL6+KRT/V/t7GTzUN2Iu7Ez+0kZ8KrwSEYRn/29XvNTogdr6UmJkaQnpZm91X8NV+MDf+ltdxOhuqRp2QRkhiTWu8dBu1c1bWRUMbzee6fSWXiOJCNweISWLfyw5wIGKgjy+D6jdWbARyYuUBJQAKWEiOZpl1qTqx1+gY+BnRuuo5oddW5XFZNwfyBcA6cQrERv+8GoyAmk4KKcVwlabihdLtrKgGbekWdZqijNT718GKcrJxZaoWweFVpwuwHoLBRvGsBtnLfIKObP5u6Dkb8CeUcPqGRqcQkV/vxdPmU89+DUBFXLuxjYYl972DNz/P2oPQsN2Cq6K30ioFJwWSYLipqG1ZWZhdocfYQ8/HTZbSixt5h4MuU6oCwTbfa54J07s7GyuiqEHzKFmCpNlVAuHvG6QgvNUCcBNItMm/eztVJ4bGvZ7eRbizNAGDYDc0zAN8PWEegpauxD7jS0vc9yJRw3qGWTbF109s5Mgcs1A76Iba3pDbTgstWaEQQaAfGocXZCJMd6wVMHwFJdHgDe34ZfoX99P/GUnD8Sba9eLmEv3OJXVCUMOrBearEdRqGrry0iZ+r0rRWd6MXsWuGtVcZcsvhtXy28qdOAbQJXq9IG/KT3H2k7QVGUVeh5K+Tmy/+Y10n+kZDwsuJDMgeQUn05DUgCOsS+ahmfyxc1n86IcJh3TEu6Cf6ABq+uuuQA15FTiYw0hElG2jfVLwh2gLuBxXWiuZ4C1IaYtkwc0V29YLVOM1Xx5dGy4VONfiyOPRdOWiKSOgWqjRnO/I8z/DMVzerU/UjBfesTsgk4HL/B+PoTl+SH2Rc2ur7U8RS32yF01odsQQOCumZDcBvDnUGQ6AAs0rs6gKE3KrHLoXxesbDxH2pxqhjrmXm8FC7zkXNKrizCXv0rwYnLw0uWAR+HfFP7K5kIFGv4mwov/nD+LS15VDp7N7wgr65zuKFH6fcTg1DtXJBRcLys0c3MvSXrl+JhTxrHJCl/6bOx+J0AHPdwLIvXVYxmbe6ZSSXZXqgMOMfbMEGLySRZt3QVZR7JkKCZHCqkvGh9BFt4BqQYk1skwAlTDZi9pCxra3YVULWlGxj4LL8LB+eNdba0jyqSOaqH4+qfPxnVRtiIgpp8adpA+oog9VDRUvA2OK633fUZkZw9L2BhVzIFZm1u+bPe25LQjvlcffBkSjIuKMjbj+pDqo5F2m+vC1/ju5Msp3YlmIWkBxng52BDai7ASBSKH4gXYnSFm1139djKJBcfbdlw3f/rJpy6LfaKiBhFZ6ChLbKdx1iqjdgF9+iZOjg/Tq0o1vOAGgfzGbhUkURyGtBLqlfu6URE50b7VjhX8gZb5dRVKqWYJVnx/KCSpMPIta7qBjwxj2uQyeJ9yjp2/SfqyuN+c5jzlGIUEYhCIlwxfc9ZDejSoiHIwAFhqI8CTjFmkDB/r9qGkcnI+TDyb6WFoX3hhk2aiJyRbMfRd+HKiw8yvGr6/4vcueJtq47M9tp6NLr8tMoc+cYwXHwLmFiDZTlKxfnqz3QkcmtN8esk+47WVb6ZonEKa5LGYzLJpw4AILKd785CcuOMxS4iHIUBDlRzCrmSrGIhmx3aV25H7tvccbDtoH+v49zBfkpCSHQilhawNmNGREVNEdrQLuuUaDFz6WFutyp/lK1Y3IoJL7scej4cFQrkonX7QkwI1oC24NrhmXNHSII9ZgtU0cFql+SJ411b7DH4jVQHYpgSzWxzPx5SjDkgwZ/+0KxmJoEXn+/A9Ds8JFbFwM68gL8PSxanGi5Jk+UfpYp4N2S6jrXeqbTipCOxmrki+3fEjx00MhYw+HghX1EuiMfgJIPLBys0sRhhjY2fzwrFEOWn2hpisdV2Shx/kT1JLAr6kRVYc3tEUzs/o4HYvm/sQ5pTlqhoJRdBHVR0z/eEr2S3PujmI8eTc0WLPrOiKvhBT41j5dNKamhWueeocw2tORl9JFDmgD667s8Y+xI2sTqRQ/U4rAw1N/j2jKZVkkKd1jrhld2LT4cpYKy7SuY5U1p1ggHkr+mWvI5Xkn3oLLOCUiWlj7KEZZ1lgndY3XmFATgMUnZcXU3C6hGfeTuK+K1f20jIiJAx0K9SEEMDBmBmdUGt9KjdnP2F6gT8JIKtBiYvMpnNmZTatKyl+drXab+xJZh+NQW+2dDG116T7Wm9FfC4nMJ/D/6SB0ImdM8cDfLF9e/N1dDthcXjYLsutv75RcCGLE59IfJsLsqUPbV8+xSwJSmivxeZwqirj59fbRci9xaE/mAqjkiWU9+lA/qxL8VXOiYLL14wt846Im7QmoaeAeqqJ7ZwqrqIvK/ogqO99wQ7mnEx7Ykz5s/BGEhjMGO+zog2M9SKlSLrhfM3vg80xM8+1BIcOM0hGIsZOI8RsOrQd8R5af1hW792lw8naITzbjSvG+UwAAADxQGpiYhD/3AbeqmE6DAFsUJrnrlTLQ8T4cYB+phajVUORtZKIBYlKbuJv1B+IbdRCk9/Yv2XmJfV/PSInVZ/Q8tY8nj2MK+maNG+6JMXm7g6wBqDSGTKJV2CsUxPXIceYSgg6+95/d0rEmZZUoPMP/SrzrfKjcSJNMCIgE5Pt8RlTcT6XuWvr7abe9F4xjo9bxCMsfcaCH9/uPoKTTSXvR+HnSjYWJC5nwxU5eWzOlXgjEfBP6oSccXqEzaUJrtxxClFL48zKcEmpHXbQnvnCy7s6kIMBJA8dQ5YmtjAzkAn21nGBCw3f4BjNRH8bexA6bHvXPp4mtgxVaP78vpbjEBbQccsV/h8WDNMLJGGggd3+ALUXk+CJg09r9gltZd2OFYOSHD+n7zXVQzTRTuC1KE0EEPsoMh1VuI0sH2j8WVN8hWwY3juktEDncFQBtNrBYykSLmrLYG9+9Gbihu9Vn/X+SaB+ADWhTqimpMZgaG3LC+nRBh+pJWQ79MJ2FXZmumHwRgR42lW0aq1U8tOeCnD1RX59nQSiEg4ifpBP6ra9KbJhTT3cpsZJjxrqeZFPuW0609NHNMZeIIkb//z+idl3GSSshzpRAd0LHrYjPq4T45iu3h+yqoX4bK/a/m89WuSw3fet21NP5QJtfJKYzhP36/SrZdojTohBR1cZFtwnCKXa9FvEFH/inR+ILdBetf98C2gJWb9+ojcKHj+Y764V+F+xnKr7qmMEiSnG5v+41TPKxG/T2U48CkJ9B9zceZXET35HMvLopWA5J7MIRZjvTEfwq3UPgC+vpGF7cSj01D5kcEAMQWu5zBeOaQqgspxnCW3+HmkBpAViRSGBkQqvkzbOOrEgdTRJEyQKI69FHyo3K6RdUUcqc4DZcR/dHxcL39dO6d90iYmB+j99QrAlKxqw2psHtzRyBS9pSzQYgVRaDSjTy3ZYWKuJ205kOqnSHSXON8YrMO8PvH6DSRb5IYgjG0oUUOKPDk+6w8bG7i7h4IYsx0atjCGTBTobcKCGTvTrHEurOW1O0jxSfR2PsvhNv82ir/taHd4QmGPi+XA6X/QClB20LuxhvL/np60awc0m4ORMQqIoQ3WZWfL15wrpE2LfQes6bnFiIaZBdpwEAe/K0ReN3XLTuXdp8WLTJaVVuwt3deHMKd9w85Vy3KF1cI4lq/1bC6LYBopXcHXxkE7U3nXXSy3Yt8Gnu1YwRT3xh8ABqNOo6c7LLHiieDzkW1LYbvvS6fNLb/mqRv1RGizssN0zl5LaFhWN+cgTuNPIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4mAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4mAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4mAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4mAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4mAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4mAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4mAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4mAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4mAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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";var xl;(t=>(t.defaultVideo={data:yM,thumb:"/_assets/_videos/catThumb.png",type:"video",name:"Cat video"},t.maxSize=3e7))(xl||(xl={}));var Ap=["mode","gradientType","noiseType","displacementType","projection","cnormal","crop","axis","side"],vM=["wrapping","image","video"],ln;(r=>{function n(i,s){ll(i,s)}r.patch=n;function e(i,s){return i==="light"&&s?t(s):A(i)}r.defaultData=e;function t(i){switch(i){case"phong":return{category:"phong",specular:{r:.2,g:.2,b:.2},shininess:5,type:"light",alpha:.6,visible:!0,mode:0};case"toon":return{category:"toon",specular:{r:.2,g:.2,b:.2},shininess:10,type:"light",alpha:1,visible:!0,mode:0};case"lambert":return{category:"lambert",emissive:{r:0,g:0,b:0},type:"light",alpha:1,visible:!0,mode:0};case"physical":return{category:"physical",roughness:.2,metalness:.2,reflectivity:.2,type:"light",alpha:1,visible:!0,mode:0}}}function A(i){switch(i){case"texture":return{alpha:1,visible:!0,size:[128,128],mode:0,axis:"x",side:2,type:"texture",projection:0,texture:{image:"image_0",wrapping:1001,repeat:[1,1],offset:[0,0]},crop:!1};case"video":return{alpha:1,visible:!0,size:[128,128],mode:0,axis:"x",side:2,type:"video",projection:0,texture:{video:xl.defaultVideo,wrapping:1001,repeat:[1,1],offset:[0,0]},crop:!0};case"color":return{type:"color",alpha:1,visible:!0,mode:0,color:QA.fromHex(4737101)};case"depth":return{type:"depth",alpha:1,visible:!0,mode:0,gradientType:1,smooth:!1,isVector:!0,isWorldSpace:!1,origin:[0,0,0],direction:[1,0,0],colors:[[1,1,1,1],[0,0,0,1]],steps:[0,1],near:50,far:200};case"normal":return{type:"normal",alpha:1,visible:!0,mode:0,cnormal:[1,1,1]};case"gradient":return{type:"gradient",alpha:1,visible:!0,mode:0,gradientType:0,smooth:!1,colors:[[0,0,0,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1]],steps:[0,1,1,1,1,1,1,1,1,1],num:2,angle:0,offset:[0,0],morph:[0,0]};case"noise":return{type:"noise",alpha:1,visible:!0,mode:0,size:[100,100,100],noiseType:0,scale:1,move:1,colorA:{...QA.fromHex(6710886),a:1},colorB:{...QA.fromHex(6710886),a:1},colorC:{...QA.fromHex(16777215),a:1},colorD:{...QA.fromHex(16777215),a:1},distortion:[1,1],fA:[1.7,9.2],fB:[8.3,2.8]};case"fresnel":return{type:"fresnel",alpha:1,visible:!0,mode:0,color:yn.fromHexAndA(16777215,1),bias:.1,scale:1,intensity:2,factor:1};case"rainbow":return{type:"rainbow",alpha:1,visible:!0,mode:0,filmThickness:30,movement:0,wavelengths:[0,0,0],noiseStrength:0,noiseScale:1,offset:[0,0,0]};case"toon":return{type:"toon",alpha:1,visible:!0,mode:0,positioning:2,colors:[[0,0,0,1],[.5,.5,.5,1],[.5,.5,.5,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1]],steps:[0,.475,.525,1,1,1,1,1,1,1],num:4,source:[0,1e3,0],isWorldSpace:!0,noiseStrength:0,noiseScale:1,shadowColor:yn.fromHexAndA(0,0),offset:[0,0,0]};case"outline":return{type:"outline",alpha:1,visible:!0,mode:0,outlineColor:yn.fromHexAndA(0,1),contourColor:yn.fromHexAndA(0,1),outlineWidth:2,contourWidth:5,outlineThreshold:.4,contourThreshold:0,outlineSmoothing:0,contourFrequency:10,contourDirection:[0,1,0],positionalLines:!1,compensation:!0};case"matcap":return{type:"matcap",alpha:1,visible:!0,mode:0,texture:{image:"matcap_0",wrapping:1001,repeat:[1,1],offset:[0,0]}};case"transmission":return{type:"transmission",alpha:1,visible:!0,mode:0,thickness:10,ior:1.5,roughness:1};case"displace":return{type:"displace",displacementType:"noise",noiseType:0,scale:10,movement:1,offset:[0,0,0],intensity:8,visible:!0}}}})(ln||(ln={}));var bA;(a=>{function n(c){return!c.layers.some(u=>u.data.type==="texture"&&u.data.projection!==0||u.data.type==="depth"&&!u.data.isWorldSpace||u.data.type==="noise"||u.data.type==="displace")}a.isMergable=n;function e(c){let l="";return c.layers.forEach(u=>{Object.entries(u.data).forEach(([h,d])=>{l+=`${h}${d}`,Array.isArray(d)?d.forEach(p=>l+=`${p}`):typeof d=="object"?Object.values(d).forEach(p=>{typeof p=="number"?l+=`${p.toFixed(4)}`:l+=`${p}`}):l+=`${d}`})}),l}a.getHash=e;function t(c,l){let u=0;for(let h of c.layers)if(h.data.type!=="displace"&&"alpha"in h.data&&h.data.type!=="light"&&h.data.type!=="fresnel"&&h.data.type!=="texture"&&h.data.type!=="matcap"&&h.data.type!=="rainbow"&&h.data.type!=="outline"){let d=h.data.visible?h.data.alpha:0;if(d==1&&h.data.type=="depth"||h.data.type=="gradient"){for(let p of h.data.colors)if(p[3]<1){d=p[3];break}}else if(d==1&&h.data.type=="noise"){let p=l.color(h.data.colorA).a,f=l.color(h.data.colorB).a,m=l.color(h.data.colorC).a,y=l.color(h.data.colorD).a,g=Math.min(p,Math.min(f,Math.min(m,y)));g<1&&(d=g)}u+=(1-u)*d}return u<1}a.isTransparent=t;function A(){return{layers:new He}}a.defaultEmptyData=A;function r(c="layer1",l="layer2"){return i("phong",c,l)}a.defaultData=r;function i(c,l="layer1",u="layer2"){let h=new He;return h.push({fi:0,data:ln.defaultData("light",c),id:l}),h.push({fi:1,data:ln.defaultData("color"),id:u}),{layers:h}}a.defaultTwoLayerData=i;function s(c,l="phong",u="layer1",h="layer2"){let d=ln.defaultData("texture");Object.assign(d.texture,{image:c});let p=new He;return p.push({fi:0,data:d,id:u}),p.push({fi:1,data:ln.defaultData("light",l),id:h}),{layers:p}}a.defaultTwoLayerTextureData=s;function o(c,l="phong",u="layer1",h="layer2"){let d=ln.defaultData("video");Object.assign(d.texture,{video:c});let p=new He;return p.push({fi:0,data:d,id:u}),p.push({fi:1,data:ln.defaultData("light",l),id:h}),{layers:p}}a.defaultTwoLayerVideoTextureData=o})(bA||(bA={}));var bl;(e=>{function n(){return{points:new He,roundness:0,shapeHoles:[],isClosed:!1}}e.defaultData=n})(bl||(bl={}));var wl;(e=>{function n(t){return t==="PolygonGeometry"||t==="RectangleGeometry"||t==="StarGeometry"||t==="TriangleGeometry"||t==="EllipseGeometry"}e.is2DParametricMesh=n})(wl||(wl={}));var ws;(e=>{function n(t){if(t==="RectangleGeometry")return{width:320,height:320,type:t,cornerRadius:[0,0,0,0],cornerType:0,depth:0,extrudeBevelSize:0,extrudeBevelSegments:1};if(t==="VectorGeometry")return{width:1,height:1,type:t,subdivisions:12,shape:bl.defaultData(),depth:0,extrudeBevelSize:0,extrudeBevelSegments:1};if(t==="BooleanGeometry")return{type:t,operation:2,width:0,height:0,depth:0,phongAngle:35};if(t==="TextGeometry")return{type:t,width:100,height:100,depth:0,horizontalAlign:1,verticalAlign:1,fontSize:16,lineHeight:1.2,letterSpacing:0,text:"",textTransform:1,font:"Roboto_regular",extrudeBevelSize:0,extrudeBevelSegments:1};throw new Error("not implemented")}e.defaultData=n})(ws||(ws={}));var Nu;(r=>{r.identity={...Jf.identity,hiddenMatrix:xs.identity};function e(i){return{position:i.position,rotation:i.rotation,scale:i.scale,hiddenMatrix:i.hiddenMatrix}}r.fromObject=e;function t(i,s){return{position:s?.position||i.position,rotation:s?.rotation||i.rotation,scale:s?.scale||i.scale,hiddenMatrix:s?.hiddenMatrix||i.hiddenMatrix}}r.merge=t;function A(i,s){return{position:vl.isEqual(i.position,s.position)?null:s.position,rotation:vl.isEqual(i.rotation,s.rotation)?null:s.rotation,scale:vl.isEqual(i.scale,s.scale)?null:s.scale,hiddenMatrix:xs.isEqual(i.hiddenMatrix,s.hiddenMatrix)?null:s.hiddenMatrix}}r.diff=A})(Nu||(Nu={}));var Pv;(e=>e.defaultData={fusedBody:!0,rigidBody:"positioned",density:1,pointMass:0,gravityScale:1,friction:.5,damping:0,restitution:.2,colliderType:"convex",enabledRotation:[!0,!0,!0],enabledTranslation:[!0,!0,!0]})(Pv||(Pv={}));var yr;(e=>e.defaultData={states:new He,events:new He,visible:!0,raycastLock:!1,physics:null,...Nu.identity})(yr||(yr={}));var xM;(e=>e.defaultData={type:"Empty",cloner:null,...yr.defaultData})(xM||(xM={}));var Co;(e=>e.defaultData={type:"Mesh",...yr.defaultData,...tp.defaultData})(Co||(Co={}));var np;(e=>e.defaultData={...yr.defaultData,...Nu.identity,...To.defaultData})(np||(np={}));var rp;(e=>{function n(t){return{...yr.defaultData,...ep.defaultData(t)}}e.defaultData=n})(rp||(rp={}));var ip;(r=>(r.defaultCamera={position:[0,0,1e3],scale:[1,1,1],rotation:[0,0,0],hiddenMatrix:xs.identity,name:"Play Camera",visible:!0,raycastLock:!1,physics:Pv.defaultData,states:new He,events:new He,...To.defaultData},r.defaultMeshObject={name:"Rectangle",...yr.defaultData,...Co.defaultData,geometry:ws.defaultData("RectangleGeometry"),material:bA.defaultTwoLayerData("phong","layer1","layer2")},r.defaultBooleanObject={name:"Boolean",...yr.defaultData,...Co.defaultData,geometry:ws.defaultData("BooleanGeometry"),material:bA.defaultTwoLayerData("phong","layer1","layer2")},r.defaultTextObject={name:"Text",...yr.defaultData,...Co.defaultData,geometry:ws.defaultData("TextGeometry"),material:bA.defaultTwoLayerData("phong","layer1","layer2")}))(ip||(ip={}));var Fu;(t=>{function n(A,r){if(r===void 0)return A;let i={...A};return"material"in i&&"material"in r&&r.material&&(i.material=sv(i.material,s=>{if(typeof s!="string")for(let[o,a]of Object.entries(r.material.layers)){let c=s.layers.data(o);c&&ln.patch(c,a)}}).data),i.materials&&r.materials&&(i.materials=sv(i.materials,s=>{for(let o=0;o<i.materials.length;o++){let a=r.materials[o];if(typeof a!="string")for(let[c,l]of Object.entries(a.layers)){let u=s[o]?.layers?.data(c);u&&ln.patch(u,l)}}}).data),i}t.patchMaterialState=n;function e(A,r){if(r===void 0)return A;let i={...A};if(Object.assign(i,Nu.merge(i,r)),bs.is(A.type)){i.orthographic={...i.orthographic},i.perspective={...i.perspective};let s=r;s.orthographic?.zoom!==void 0&&(i.orthographic.zoom=s.orthographic.zoom),s.perspective?.zoom!==void 0&&(i.perspective.zoom=s.perspective.zoom),s.isUpVectorFlipped!==void 0&&(i.isUpVectorFlipped=s.isUpVectorFlipped),s.targetOffset!==void 0&&(i.targetOffset=s.targetOffset)}else if(A.type==="Mesh")i.geometry={...i.geometry},Object.assign(i.geometry,r.geometry),i=n(i,r),i.cloner&&"cloner"in r&&Object.assign(i,{cloner:Mo.merge(i.cloner,r.cloner)});else if(A.type==="Empty")i.cloner&&"cloner"in r&&Object.assign(i,{cloner:Mo.merge(i.cloner,r.cloner)});else if($f.is(A.type)){let s=r;s.intensity!==void 0&&(i.intensity=s.intensity),s.color!==void 0&&(typeof s.color=="string"?i.color=s.color:i.color=QA.clone(s.color))}return i}t.patch=e})(Fu||(Fu={}));var Gu;(e=>e.defaultData={enabled:!1,useBackgroundColor:!1,color:QA.white,near:.1,far:2e3})(Gu||(Gu={}));var Sl;(e=>e.defaultData={enablePan:!0,enableZoom:!0,enableRotate:!0,enableDamping:!0,rotationLimitsMode:0,rotationVerticalOffset:{min:Math.PI/4,max:Math.PI/4},rotationHorizontalOffset:{min:Math.PI/4,max:Math.PI/4},rotationSoftLimit:2,panLimitsMode:0,panVerticalOffset:{min:250,max:250},panHorizontalOffset:{min:250,max:250},panSoftLimit:2,zoomLimitsEnabled:!1,zoomLimits:{min:.1,max:2},autoRotate:!1,autoRotateSpeed:2,autoRotateClockwise:!0,hoverRotatePanMode:0,hoverRotatePanStrength:20,isTouchZoom:!0,orbitTouches:2,panTouches:3,resetHoverEffectOnPointerLeave:!0})(Sl||(Sl={}));var Ri;(e=>e.defaultData={orbitControls:Sl.defaultData,playCamera:null,withBackground:!0,preventScroll:!1,settings:{image:{format:"jpg",ratio:1},video:{format:"mp4",imageFormat:"jpg",fps:30,mbps:80,ratio:1,stopMode:"manual",duration:5e3},web:{compress:!0,preset:1,preload:!0}},stopRaycast:!0,joystickSizeAndXYOffset:Array(12).fill(0).map((t,A)=>{let r=0,i=0;return A<5?i=-30:A<10&&(i=30),A===0||A===10||A===5?r=30:(A===4||A===11||A===9)&&(r=-30),[120,[r,i],"show"]}),gameControlObject:null})(Ri||(Ri={}));var cn;(e=>e.defaultData={ambientLight:{enabled:!0,type:"HemisphereLight",color:{r:.8274509803921568,g:.8274509803921568,b:.8274509803921568},intensity:.75,depth:100,groundColor:{r:.5098039215686274,g:.5098039215686274,b:.5098039215686274},softShadows:!0,softShadowQuality:"low"},usePhysics:!1,gravity:-10,pixelsPerMeter:200,skinWidthRelative:.02,stepThreshRelative:.3,slopeThresh:65})(cn||(cn={}));var sp;(A=>{function n(){let r=new qt,i=ip.defaultMeshObject;return r.push({fi:-1,data:{...rp.defaultData("DirectionalLight"),position:[200,300,300],name:"Directional Light",intensity:.7},id:"830a2708-8ed9-49cf-a68e-085299899103",children:[]}),r.push({fi:1,id:"7ba78968-2a55-48f2-b14c-5191da3e075e",data:i,children:[]}),r}A.defaultData={backgroundColor:yn.fromHexAndA(1908256,1),postprocessing:Eo.defaultData,fog:Gu.defaultData,objects:n(),environment:cn.defaultData,publish:Ri.defaultData},A.emptyData=function(){return{backgroundColor:yn.fromHexAndA(1908256,1),postprocessing:Eo.defaultData,fog:Gu.defaultData,objects:new qt,environment:cn.defaultData,publish:Ri.defaultData}}})(sp||(sp={}));function Ss(n,e){return Object.setPrototypeOf(n,e),n}var ZV=()=>typeof window>"u"?!1:window.navigator.userAgent.toLowerCase().includes(" electron/"),KV=()=>typeof window>"u"?!1:window.navigator.platform.toUpperCase().includes("MAC"),JV=()=>typeof window>"u"?!1:/iPad|iPhone|iPod/.test(window.navigator.userAgent)||Po&&"ontouchend"in document,$V=()=>typeof window>"u"?!1:window.navigator.userAgent.toLowerCase().indexOf("firefox")>-1,ez=()=>typeof window>"u"?!1:"ontouchstart"in window||navigator.maxTouchPoints>0,tz=()=>{if(typeof window>"u")return!1;let n=navigator.userAgent,e=navigator.vendor;return/Safari/i.test(n)&&/Apple Computer/.test(e)},Az=()=>{if(typeof window>"u")return null;let e=navigator.userAgent.match(/Version\/(\d+\.\d)/);return e&&e[1]},mte=ZV(),Po=KV(),ku=JV(),bM=$V(),wA=ez(),Tl=tz(),Ml=Number(Az());function wM(n){return Array.isArray(n)?n:[n]}function Uu(n){return Po?n.metaKey:n.ctrlKey}var et=[],ap={},Vu={},op={};function SM(n){et.includes(n)||et.push(n)}function El(n){delete ap[n.pointerId];for(let e=0;e<et.length;e++)if(et[e].pointerId===n.pointerId){et.splice(e,1);break}}function lp(n){if(n.pointerType!=="touch")return;let e=ap[n.pointerId];e===void 0&&(e={x:0,y:0},ap[n.pointerId]=e),e.x=n.pageX,e.y=n.pageY}function cp(n){let e=n.pointerId===et[0].pointerId?et[1]:et[0];return ap[e.pointerId]}function TM(n){Vu[n.key]=!0,op[n.key]=op[n.key]===void 0?1:op[n.key]+1}function MM(n){if(Po&&Vu.Meta)for(let e in Vu)Vu[e]=!1;else Vu[n.key]=!1;op={}}function EM(n){n.addEventListener("pointerdown",SM,!0),n.addEventListener("pointerdown",lp,!0),n.addEventListener("pointermove",lp,!0),n.addEventListener("pointerup",El,!0),n.addEventListener("pointercancel",El,!0),n.addEventListener("pointerleave",El,!0),window.addEventListener("keydown",TM,!0),window.addEventListener("keyup",MM,!0)}function CM(n){n.removeEventListener("pointerdown",SM,!0),n.removeEventListener("pointerdown",lp,!0),n.removeEventListener("pointermove",lp,!0),n.removeEventListener("pointerup",El,!0),n.removeEventListener("pointercancel",El,!0),n.removeEventListener("pointerleave",El,!0),window.removeEventListener("keydown",TM,!0),window.removeEventListener("keyup",MM,!0)}var Cl;(t=>{function n(){let A={};return A["89b10010-844c-11ec-a8a3-0242ac120002"]={r:.5,g:.5,b:.5,a:1,name:"Default Color"},Ss(A,Bt.prototype)}t.defaultColors=n;function e(){return{materials:new Bt,images:new Bt,videos:new Bt,colors:new Bt,audios:new Bt,fonts:new Bt,penumbraSize:[.5,.5,.5]}}t.emptyData=e})(Cl||(Cl={}));function PM(n){n.layers.forEach(e=>{if(e.type==="depth"&&e.colorA!==void 0){let t=e.colorA,A=e.colorB,r=[[t.r,t.g,t.b,t.a],[A.r,A.g,A.b,A.a]],i=[0,1];for(let o=2;o<10;o++)r.push(r[1]),i.push(1);let s={...ul(mn(e),"type","visible","isVector","isWorldSpace","origin","alpha","mode"),near:Math.max(0,e.near),far:Math.max(0,e.far),colors:r,steps:i,num:2,direction:[1,0,0],smooth:!1,gradientType:1};Object.assign(e,s)}else if(e.type==="depth"&&e.gradientType===1&&(e.near<0||e.far<0)){let t={...mn(e),near:Math.max(e.near,0),far:Math.max(e.far,0)};Object.assign(e,t)}})}function up(n,e){Object.values(n.shared.materials).forEach(t=>e(t))}function hp(n,e){n.scene.objects.traverse((t,A)=>{"materials"in A?A.materials.forEach(r=>{typeof r!="string"&&e(r)}):"material"in A&&typeof A.material!="string"&&e(A.material)})}function nz(n){Object.assign(n.scene.publish,{orbitControls:{...Sl.defaultData,...mn(n.scene.publish.orbitControls)}})}function rz(n){Object.assign(n.scene.publish.settings,{video:{...Ri.defaultData.settings.video,...mn(n.scene.publish.settings.video)}})}function iz(n){function e(t){if(t.layers){for(let A of Object.values(t.layers))if(A){for(let[r,i]of Object.entries(A))if((Ap.includes(r)||typeof i=="boolean")&&delete A[r],r==="texture")for(let[s,o]of Object.entries(i))(vM.includes(s)||typeof o=="boolean")&&delete i[s]}}}n.scene.objects.traverse((t,A)=>{A.states.forEach(r=>{let i=r;i.material?e(i.material):i.materials&&i.materials.forEach(s=>{e(s)})})})}function sz(n){n.scene.publish.withBackground=!0}function oz(n){n.scene.publish.settings.web={compress:!0,preload:!0,preset:1}}function az(n){n.scene.objects.traverse((e,t)=>{let A=t.cloner;A&&(A.radial.scale=A.radial.scale.map(r=>r+1),A.linear.scale=A.linear.scale.map(r=>r+1))})}function lz(n){n.scene.objects.traverse((e,t)=>{let A=t.geometry;A&&(A.type==="DodecahedronGeometry"||A.type==="IcosahedronGeometry")&&(A.detail=Math.round(A.detail))})}function cz(n){n.scene.objects.traverse((e,t)=>{let A=n.scene.objects.parent(e);t.type==="Mesh"&&(!A||n.scene.objects.data(A).geometry?.type!=="BooleanGeometry")&&(t.booleanExclude=null)})}function DM(n){n.layers===void 0&&Object.assign(n,bA.defaultTwoLayerData("lambert"))}function Dv(n){!n.layers||n.layers.forEach(e=>{if(e.type==="depth"&&e.colors.length===10){let t=[...e.colors];t.push(e.colors[9]);let A=[...e.steps];A.push(e.steps[9]);let r={...mn(e),colors:t,steps:A};Object.assign(e,r)}})}function uz(n){n.scene.objects.traverse((e,t)=>{t.type==="Mesh"&&(t.geometry.type==="BooleanGeometry"||t.geometry.type==="SubdivGeometry")&&(t.geometry.phongAngle=35)})}function IM(n){n.scene.objects.traverse((e,t)=>{"materials"in t?t.materials.forEach(A=>{typeof A!="string"&&Dv(A)}):"material"in t&&typeof t.material!="string"&&Dv(t.material)}),Object.values(n.shared.materials).forEach(e=>Dv(e))}function hz(n){n.scene.environment.ambientLight.softShadows=!1,n.scene.environment.ambientLight.softShadowQuality="low",n.scene.objects.traverse((e,t)=>{(t.type==="DirectionalLight"||t.type==="SpotLight")&&(t.shadowResolution=1024,t.shadowRadius=1,t.depth=1e5)}),n.shared.penumbraSize=new Array(5).fill(.5)}function dz(n){n.shared.audios=Ss({},Bt.prototype)}function fz(n){n.shared.videos=Ss({},Bt.prototype)}function pz(n){let e=n.shared.materials;Object.entries(e).forEach(([t,A])=>{if(!A.layers){let r={name:"Untitled Material",layers:[{fi:0,data:{type:"light",category:"phong",alpha:.6,visible:!0,mode:0,specular:{r:.2,g:.2,b:.2},shininess:5},id:"layer1"},{fi:1,data:{type:"color",alpha:1,visible:!0,mode:0,color:{r:.2823529411764706,g:.2823529411764706,b:.30196078431372547}},id:"layer2"}]};Object.assign(e,{[t]:r})}})}function mz(n){Object.entries(mn(n.shared.images)).filter(A=>A[1].asset===!1).map(A=>A[0]).forEach(A=>{delete n.shared.images[A]}),Object.entries(mn(n.shared.audios)).filter(A=>A[1].asset===!1).map(A=>A[0]).forEach(A=>{delete n.shared.audios[A]})}function gz(n){n.scene.publish.settings.web.preload=!1}function LM(n){n.layers&&n.layers.forEach(e=>{e.type==="depth"&&e.num!==void 0&&(e.colors=e.colors.slice(0,e.num),e.steps=e.steps.slice(0,e.num),delete e.num)})}function yz(n){n.shared.fonts=Ss({},Bt.prototype)}function vz(n){return n.replace(".typeface","").replace(/optimer/gi,"open sans").replace("space_mono","space mono").replace(/alma_mono/gi,"varela round").replace(/droid_sans_mono/gi,"noto sans mono").replace(/droid_sans|gentilis|gnomon_(simple|foreground)|helvetiker/gi,"roboto").replace(/droid_serif/gi,"roboto slab").replace("_sans"," sans").replace("crimson_text","crimson text").replace("medium_medium","medium").replace("fatface_fatface","fatface").replace("100hairline","thin").replace("200thin","extralight").replace("300light","light").replace("500medium","medium").replace("600semi","semibold").replace("800heavy","extrabold").replace("900black","black").replace(/bodoni_(11|16|24|36|48|72|96)([^_])/gi,"bodoni_$1_$2").replace(/bodoni_(11|16|24|36|48|72|96)/gi,"bodoni moda").replace(/(thin|hairline)(_regular)?/gi,"100").replace(/(extra|ultra)light(_regular)?/gi,"200").replace(/light(_regular)?/gi,"300").replace(/_book|_normal|_roman/gi,"_regular").replace(/medium(_regular)?/gi,"500").replace(/(semi|demi)bold(_regular)?/gi,"600").replace(/(extra|ultra)bold(_regular)?/gi,"800").replace(/bold(_regular)?/gi,"700").replace(/(black|heavy|fatface)(_regular)?/gi,"900").replace(/([1-9]00)_italic/gi,"$1italic").replace(/regularitalic/gi,"italic").replace(/regularitalic/gi,"italic").split(" ").map(t=>t.charAt(0).toUpperCase()+t.slice(1)).join(" ")}function xz(n){let e=[];n.scene.objects.traverse((t,A)=>{let r=A;if(r.type==="TextFrame"){let i=bA.defaultTwoLayerData("phong"),s=typeof r.color=="string"?n.shared.colors[r.color]:r.color;i.layers[1].data.color={r:s.r,g:s.g,b:s.b},i.layers[1].data.alpha=r.alpha;let o=vz(r.font);n.shared.fonts[o]===void 0&&(n.shared.fonts[o]={name:o});let a={name:r.name,...yr.defaultData,...Co.defaultData,flatShading:!1,wireframe:!1,geometry:{...ws.defaultData("TextGeometry"),width:r.width,height:r.height,font:o,depth:0,horizontalAlign:r.horizontalAlign,verticalAlign:r.verticalAlign,fontSize:r.fontSize*1.40625,lineHeight:r.lineHeight/1.40625,letterSpacing:r.letterSpacing-1,text:r.text,textTransform:r.textTransform,extrudeBevelSize:0,extrudeBevelSegments:1},material:i,states:mn(r.states),events:mn(r.events),visible:r.visible,raycastLock:r.raycastLock,position:r.position,rotation:r.rotation,scale:r.scale,hiddenMatrix:r.hiddenMatrix},c=mn(n.scene.objects).parent(t);n.scene.objects.insertAfter(c??null,t,[{id:t+"new",data:a,children:[]}]),e.push(t)}}),e.forEach(t=>{n.scene.objects.delete(t)})}function bz(n){let e={0:"MouseDown",1:"MouseUp",2:"MouseHover",5:"KeyDown",6:"KeyUp",7:"Start",9:"LookAt",10:"Follow",11:"Scroll",12:"Audio",13:"GameControl"};n.scene.objects.traverse((t,A)=>{A.events.forEach(r=>{if(!!e[Number(r.type)])if(Object.assign(r,{type:e[Number(r.type)]}),r.type==="Audio"&&"audioEvent"in r&&(Object.assign(r,{playAudio:r.audioEvent}),delete r.audioEvent),r.type==="GameControl")Object.assign(r,{gameActions:{idle:new He,move:new He,jump:new He}});else{let i=new He;Object.assign(r,{actions:i}),(r.type==="MouseDown"||r.type==="MouseUp"||r.type==="KeyDown"||r.type==="KeyUp")&&"url"in r&&i.push({fi:0,id:ze.generateUUID(),data:{type:"Link",url:r.url,delay:0}}),"targets"in r&&(r.targets.forEach((s,o,a)=>{let c={state:void 0,repeat:0,delay:0,delayDirection:void 0,direction:"normal",duration:0,easing:4},l={easing:s.easing,duration:s.duration};s.easing===6?Object.assign(l,ul(s,"mass","stiffness","damping","velocity")):s.easing===5&&Object.assign(l,{control1:{...s.control1},control2:{...s.control2}});let u={repeat:s.repeat?-1:0,delay:s.delay,delayDirection:s.delayDirection,direction:s.cycle&&s.rewind?"pingpong-rewind":s.cycle?"pingpong":"normal"},h={state:s.state,...u,...l},d={allowSlerp:!0,type:"Transition",object:s.object,repeat:0,delay:0,delayDirection:void 0,direction:"normal",tweens:new He({fi:0,id:ze.generateUUID(),data:c},{fi:1,id:ze.generateUUID(),data:h})};i.push({fi:a,id:o,data:d})}),delete r.targets)}})})}function wz(n){n.scene.objects.traverse((e,t)=>{function A(r,i){let s=new He,o=[];if(t.events.forEach((a,c,l)=>{if(a.type==="Audio"&&a.trigger===i){let u;o.push(c),a.interaction==="play"?u={...ul(a,"interaction","audio","delay","volume","loop"),triggerAfter:"after"in a?a.after:void 0,toggle:"after"in a?a.toggle:void 0,type:"Audio"}:(a.interaction==="pause"||a.interaction==="stop")&&(u={...ul(a,"interaction","delay","object","playAudio"),type:"Audio"}),u&&s.push({fi:l,id:c,data:u})}}),o.forEach(a=>t.events.delete(a)),s.length){let a=t.events.find(c=>c.type===r)?.data;a?"actions"in a&&a.actions.insertBefore(null,s):t.events.insertBefore(null,[{id:ze.generateUUID(),data:{type:r,actions:s}}])}}A("Start","start"),A("MouseDown","mouseDown"),A("MouseUp","mouseUp"),A("KeyDown","keyDown"),A("KeyUp","keyUp")})}function _M(n){let e=n.layers.find(t=>t.type==="light")?.data;if(e?.category==="basic"){let t=ln.defaultData("light","phong"),A=e;Object.assign(A,t),A.visible=!1}}function Sz(n){up(n,_M),hp(n,_M)}function Tz(n){n.scene.objects.traverse((e,t)=>{t.type==="Mesh"&&t.geometry.type==="SubdivGeometry"&&(t.geometry.scaleBaked||(t.geometry.scaleBaked=[1,1,1]))})}function Mz(n){n.scene.objects.traverse((e,t)=>{(t.type==="Empty"||t.type==="Mesh")&&t.cloner&&!t.cloner.randomnessObject&&!t.cloner.toObject&&!t.cloner.randomness&&(t.cloner={...t.cloner,toObject:{object:"",spreadType:"random",scale:[0,0,0],rotation:[0,0,0],position:[0,0,0],axis:"x",seed:0,count:99,align:"normal"},randomness:!1,randomnessObject:{strength:100,scale:[0,0,0],rotation:[0,0,0],position:[0,0,0],movement:1,seed:0,freqScale:10,noiseType:"perlin"}})})}var OM=25;function RM(n){let e=n.schema??0;e!==OM&&(console.warn("updating from ",e,"to ",OM),e<1&&(hp(n,PM),up(n,PM),n.schema=1),e<2&&(nz(n),n.schema=2),e<3&&(iz(n),n.schema=3),e<4&&(sz(n),n.schema=4),e<5&&(oz(n),n.schema=5),e<6&&(az(n),n.schema=6),e<7&&(lz(n),n.schema=7),e<8&&(cz(n),n.schema=8),e<9&&(IM(n),n.schema=9),e<10&&(uz(n),n.schema=10),e<11&&(hz(n),n.schema=11),e<12&&(IM(n),n.schema=12),e<13&&(dz(n),n.schema=13),e<14&&(pz(n),n.schema=14),e<15&&(mz(n),n.schema=15),e<16&&(gz(n),n.schema=16),e<17&&(hp(n,LM),up(n,LM),n.schema=17),e<18&&(hp(n,DM),up(n,DM),n.schema=18),e<19&&(rz(n),n.schema=19),e<20&&(yz(n),xz(n),n.schema=20),e<21&&(bz(n),wz(n),n.schema=21),e<22&&(Sz(n),n.schema=22),e<23&&(Tz(n),n.schema=23),e<24&&(Mz(n),n.schema=24),e<25&&(fz(n),n.schema=25))}var dp;(e=>e.emptyImage={data:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVQYV2NgYAAAAAMAAWgmWQ0AAAAASUVORK5CYII="})(dp||(dp={}));function Bi(n,e=!1){let t=n[0].index!==null,A=new Set(Object.keys(n[0].attributes)),r=new Set(Object.keys(n[0].morphAttributes)),i={},s={},o=n[0].morphTargetsRelative,a=new Ie,c=0;for(let l=0;l<n.length;++l){let u=n[l],h=0;if(t!==(u.index!==null))return console.error("THREE.BufferGeometryUtils: .mergeBufferGeometries() failed with geometry at index "+l+". All geometries must have compatible attributes; make sure index attribute exists among all geometries, or in none of them."),null;for(let d in u.attributes){if(!A.has(d))return console.error("THREE.BufferGeometryUtils: .mergeBufferGeometries() failed with geometry at index "+l+'. All geometries must have compatible attributes; make sure "'+d+'" attribute exists among all geometries, or in none of them.'),null;i[d]===void 0&&(i[d]=[]),i[d].push(u.attributes[d]),h++}if(h!==A.size)return console.error("THREE.BufferGeometryUtils: .mergeBufferGeometries() failed with geometry at index "+l+". Make sure all geometries have the same number of attributes."),null;if(o!==u.morphTargetsRelative)return console.error("THREE.BufferGeometryUtils: .mergeBufferGeometries() failed with geometry at index "+l+". .morphTargetsRelative must be consistent throughout all geometries."),null;for(let d in u.morphAttributes){if(!r.has(d))return console.error("THREE.BufferGeometryUtils: .mergeBufferGeometries() failed with geometry at index "+l+". .morphAttributes must be consistent throughout all geometries."),null;s[d]===void 0&&(s[d]=[]),s[d].push(u.morphAttributes[d])}if(a.userData.mergedUserData=a.userData.mergedUserData||[],a.userData.mergedUserData.push(u.userData),e){let d;if(t)d=u.index.count;else if(u.attributes.position!==void 0)d=u.attributes.position.count;else return console.error("THREE.BufferGeometryUtils: .mergeBufferGeometries() failed with geometry at index "+l+". The geometry must have either an index or a position attribute"),null;a.addGroup(c,d,l),c+=d}}if(t){let l=0,u=[];for(let h=0;h<n.length;++h){let d=n[h].index;for(let p=0;p<d.count;++p)u.push(d.getX(p)+l);l+=n[h].attributes.position.count}a.setIndex(u)}for(let l in i){let u=BM(i[l]);if(!u)return console.error("THREE.BufferGeometryUtils: .mergeBufferGeometries() failed while trying to merge the "+l+" attribute."),null;a.setAttribute(l,u)}for(let l in s){let u=s[l][0].length;if(u===0)break;a.morphAttributes=a.morphAttributes||{},a.morphAttributes[l]=[];for(let h=0;h<u;++h){let d=[];for(let f=0;f<s[l].length;++f)d.push(s[l][f][h]);let p=BM(d);if(!p)return console.error("THREE.BufferGeometryUtils: .mergeBufferGeometries() failed while trying to merge the "+l+" morphAttribute."),null;a.morphAttributes[l].push(p)}}return a}function BM(n){let e,t,A,r=0;for(let o=0;o<n.length;++o){let a=n[o];if(a.isInterleavedBufferAttribute)return console.error("THREE.BufferGeometryUtils: .mergeBufferAttributes() failed. InterleavedBufferAttributes are not supported."),null;if(e===void 0&&(e=a.array.constructor),e!==a.array.constructor)return console.error("THREE.BufferGeometryUtils: .mergeBufferAttributes() failed. BufferAttribute.array must be of consistent array types across matching attributes."),null;if(t===void 0&&(t=a.itemSize),t!==a.itemSize)return console.error("THREE.BufferGeometryUtils: .mergeBufferAttributes() failed. BufferAttribute.itemSize must be consistent across matching attributes."),null;if(A===void 0&&(A=a.normalized),A!==a.normalized)return console.error("THREE.BufferGeometryUtils: .mergeBufferAttributes() failed. BufferAttribute.normalized must be consistent across matching attributes."),null;r+=a.array.length}let i=new e(r),s=0;for(let o=0;o<n.length;++o)i.set(n[o].array,s),s+=n[o].array.length;return new Ge(i,t,A)}var fp;(t=>(t.defaultColliderData={type:"capsule",height:200,radius:50,position:[0,0,0],rotation:[0,0,0]},t.defaultDataThirdPerson={moveMode:"walk",speedTranslate:1e3,speedRotate:100,rotationMode:"normal",rotBy:"keys",rotByTouch:"drag",delayPos:[.3,.3],delayRot:[.3,.3],keyAssignments:[["moveNegZ","W"],["moveNegX","A"],["movePosZ","S"],["movePosX","D"],["rotPosX","\u25B2"],["rotPosY","\u25C0"],["rotNegX","\u25BC"],["rotNegY","\u25B6"],["jump","Space"]],touchControl:!0,joystickPosLoc:5,joystickRotLoc:11,jumpTouchButtonLoc:9,collider:t.defaultColliderData,colliderHelperVisible:!0,collisionEnabled:!0,jumpPower:100,resetYPosition:-3e3,alignToGround:!1,autoOrientMove:!0,orientWith:"camera",orientMode:"radial",delayPosCamera:.3,delayRotCamera:.3,camera:"",cameraXAxis:"Limit",cameraYAxis:"Free",cameraRotXLimits:[0,Math.PI/2],cameraRotYLimits:[-Math.PI/2,Math.PI/2],gameActions:{idle:new He,move:new He,jump:new He}}))(fp||(fp={}));var NM=Math.pow(2,-24);var Do=class{constructor(){}};function Kn(n,e,t){return t.min.x=e[n],t.min.y=e[n+1],t.min.z=e[n+2],t.max.x=e[n+3],t.max.y=e[n+4],t.max.z=e[n+5],t}function Iv(n){let e=-1,t=-1/0;for(let A=0;A<3;A++){let r=n[A+3]-n[A];r>t&&(t=r,e=A)}return e}function Lv(n,e){e.set(n)}function _v(n,e,t){let A,r;for(let i=0;i<3;i++){let s=i+3;A=n[i],r=e[i],t[i]=A<r?A:r,A=n[s],r=e[s],t[s]=A>r?A:r}}function zu(n,e,t){for(let A=0;A<3;A++){let r=e[n+2*A],i=e[n+2*A+1],s=r-i,o=r+i;s<t[A]&&(t[A]=s),o>t[A+3]&&(t[A+3]=o)}}function Dl(n){let e=n[3]-n[0],t=n[4]-n[1],A=n[5]-n[2];return 2*(e*t+t*A+A*e)}function Pz(n,e){if(!n.index){let t=n.attributes.position.count,A=e.useSharedArrayBuffer?SharedArrayBuffer:ArrayBuffer,r;t>65535?r=new Uint32Array(new A(4*t)):r=new Uint16Array(new A(2*t)),n.setIndex(new Ge(r,1));for(let i=0;i<t;i++)r[i]=i}}function Dz(n){if(!n.groups||!n.groups.length)return[{offset:0,count:n.index.count/3}];let e=[],t=new Set;for(let r of n.groups)t.add(r.start),t.add(r.start+r.count);let A=Array.from(t.values()).sort((r,i)=>r-i);for(let r=0;r<A.length-1;r++){let i=A[r],s=A[r+1];e.push({offset:i/3,count:(s-i)/3})}return e}function Rv(n,e,t,A,r=null){let i=1/0,s=1/0,o=1/0,a=-1/0,c=-1/0,l=-1/0,u=1/0,h=1/0,d=1/0,p=-1/0,f=-1/0,m=-1/0,y=r!==null;for(let g=e*6,b=(e+t)*6;g<b;g+=6){let x=n[g+0],w=n[g+1],T=x-w,M=x+w;T<i&&(i=T),M>a&&(a=M),y&&x<u&&(u=x),y&&x>p&&(p=x);let v=n[g+2],E=n[g+3],C=v-E,P=v+E;C<s&&(s=C),P>c&&(c=P),y&&v<h&&(h=v),y&&v>f&&(f=v);let D=n[g+4],_=n[g+5],I=D-_,B=D+_;I<o&&(o=I),B>l&&(l=B),y&&D<d&&(d=D),y&&D>m&&(m=D)}A[0]=i,A[1]=s,A[2]=o,A[3]=a,A[4]=c,A[5]=l,y&&(r[0]=u,r[1]=h,r[2]=d,r[3]=p,r[4]=f,r[5]=m)}function Iz(n,e,t,A){let r=1/0,i=1/0,s=1/0,o=-1/0,a=-1/0,c=-1/0;for(let l=e*6,u=(e+t)*6;l<u;l+=6){let h=n[l+0];h<r&&(r=h),h>o&&(o=h);let d=n[l+2];d<i&&(i=d),d>a&&(a=d);let p=n[l+4];p<s&&(s=p),p>c&&(c=p)}A[0]=r,A[1]=i,A[2]=s,A[3]=o,A[4]=a,A[5]=c}function Lz(n,e,t,A,r){let i=t,s=t+A-1,o=r.pos,a=r.axis*2;for(;;){for(;i<=s&&e[i*6+a]<o;)i++;for(;i<=s&&e[s*6+a]>=o;)s--;if(i<s){for(let c=0;c<3;c++){let l=n[i*3+c];n[i*3+c]=n[s*3+c],n[s*3+c]=l;let u=e[i*6+c*2+0];e[i*6+c*2+0]=e[s*6+c*2+0],e[s*6+c*2+0]=u;let h=e[i*6+c*2+1];e[i*6+c*2+1]=e[s*6+c*2+1],e[s*6+c*2+1]=h}i++,s--}else return i}}var Ni=32,_z=(n,e)=>n.candidate-e.candidate,Ts=new Array(Ni).fill().map(()=>({count:0,bounds:new Float32Array(6),rightCacheBounds:new Float32Array(6),leftCacheBounds:new Float32Array(6),candidate:0})),pp=new Float32Array(6);function Oz(n,e,t,A,r,i){let s=-1,o=0;if(i===0)s=Iv(e),s!==-1&&(o=(e[s]+e[s+3])/2);else if(i===1)s=Iv(n),s!==-1&&(o=Rz(t,A,r,s));else if(i===2){let a=Dl(n),c=1.25*r,l=A*6,u=(A+r)*6;for(let h=0;h<3;h++){let d=e[h],m=(e[h+3]-d)/Ni;if(r<Ni/4){let y=[...Ts];y.length=r;let g=0;for(let x=l;x<u;x+=6,g++){let w=y[g];w.candidate=t[x+2*h],w.count=0;let{bounds:T,leftCacheBounds:M,rightCacheBounds:v}=w;for(let E=0;E<3;E++)v[E]=1/0,v[E+3]=-1/0,M[E]=1/0,M[E+3]=-1/0,T[E]=1/0,T[E+3]=-1/0;zu(x,t,T)}y.sort(_z);let b=r;for(let x=0;x<b;x++){let w=y[x];for(;x+1<b&&y[x+1].candidate===w.candidate;)y.splice(x+1,1),b--}for(let x=l;x<u;x+=6){let w=t[x+2*h];for(let T=0;T<b;T++){let M=y[T];w>=M.candidate?zu(x,t,M.rightCacheBounds):(zu(x,t,M.leftCacheBounds),M.count++)}}for(let x=0;x<b;x++){let w=y[x],T=w.count,M=r-w.count,v=w.leftCacheBounds,E=w.rightCacheBounds,C=0;T!==0&&(C=Dl(v)/a);let P=0;M!==0&&(P=Dl(E)/a);let D=1+1.25*(C*T+P*M);D<c&&(s=h,c=D,o=w.candidate)}}else{for(let b=0;b<Ni;b++){let x=Ts[b];x.count=0,x.candidate=d+m+b*m;let w=x.bounds;for(let T=0;T<3;T++)w[T]=1/0,w[T+3]=-1/0}for(let b=l;b<u;b+=6){let T=~~((t[b+2*h]-d)/m);T>=Ni&&(T=Ni-1);let M=Ts[T];M.count++,zu(b,t,M.bounds)}let y=Ts[Ni-1];Lv(y.bounds,y.rightCacheBounds);for(let b=Ni-2;b>=0;b--){let x=Ts[b],w=Ts[b+1];_v(x.bounds,w.rightCacheBounds,x.rightCacheBounds)}let g=0;for(let b=0;b<Ni-1;b++){let x=Ts[b],w=x.count,T=x.bounds,v=Ts[b+1].rightCacheBounds;w!==0&&(g===0?Lv(T,pp):_v(T,pp,pp)),g+=w;let E=0,C=0;g!==0&&(E=Dl(pp)/a);let P=r-g;P!==0&&(C=Dl(v)/a);let D=1+1.25*(E*g+C*P);D<c&&(s=h,c=D,o=x.candidate)}}}}else console.warn(`MeshBVH: Invalid build strategy value ${i} used.`);return{axis:s,pos:o}}function Rz(n,e,t,A){let r=0;for(let i=e,s=e+t;i<s;i++)r+=n[i*6+A*2];return r/t}function Bz(n,e){let t=n.attributes.position,A=t.array,r=n.index.array,i=r.length/3,s=new Float32Array(i*6),o=t.offset||0,a=3;t.isInterleavedBufferAttribute&&(a=t.data.stride);for(let c=0;c<i;c++){let l=c*3,u=c*6,h=r[l+0]*a+o,d=r[l+1]*a+o,p=r[l+2]*a+o;for(let f=0;f<3;f++){let m=A[h+f],y=A[d+f],g=A[p+f],b=m;y<b&&(b=y),g<b&&(b=g);let x=m;y>x&&(x=y),g>x&&(x=g);let w=(x-b)/2,T=f*2;s[u+T+0]=b+w,s[u+T+1]=w+(Math.abs(b)+w)*NM,b<e[f]&&(e[f]=b),x>e[f+3]&&(e[f+3]=x)}}return s}function Nz(n,e){function t(y){h&&h(y/d)}function A(y,g,b,x=null,w=0){if(!p&&w>=a&&(p=!0,c&&(console.warn(`MeshBVH: Max depth of ${a} reached when generating BVH. Consider increasing maxDepth.`),console.warn(n))),b<=l||w>=a)return t(g+b),y.offset=g,y.count=b,y;let T=Oz(y.boundingData,x,s,g,b,u);if(T.axis===-1)return t(g+b),y.offset=g,y.count=b,y;let M=Lz(o,s,g,b,T);if(M===g||M===g+b)t(g+b),y.offset=g,y.count=b;else{y.splitAxis=T.axis;let v=new Do,E=g,C=M-g;y.left=v,v.boundingData=new Float32Array(6),Rv(s,E,C,v.boundingData,i),A(v,E,C,i,w+1);let P=new Do,D=M,_=b-C;y.right=P,P.boundingData=new Float32Array(6),Rv(s,D,_,P.boundingData,i),A(P,D,_,i,w+1)}return y}Pz(n,e);let r=new Float32Array(6),i=new Float32Array(6),s=Bz(n,r),o=n.index.array,a=e.maxDepth,c=e.verbose,l=e.maxLeafTris,u=e.strategy,h=e.onProgress,d=n.index.count/3,p=!1,f=[],m=Dz(n);if(m.length===1){let y=m[0],g=new Do;g.boundingData=r,Iz(s,y.offset,y.count,i),A(g,y.offset,y.count,i),f.push(g)}else for(let y of m){let g=new Do;g.boundingData=new Float32Array(6),Rv(s,y.offset,y.count,g.boundingData,i),A(g,y.offset,y.count,i),f.push(g)}return f}function kM(n,e){let t=Nz(n,e),A,r,i,s=[],o=e.useSharedArrayBuffer?SharedArrayBuffer:ArrayBuffer;for(let l=0;l<t.length;l++){let u=t[l],h=a(u),d=new o(32*h);A=new Float32Array(d),r=new Uint32Array(d),i=new Uint16Array(d),c(0,u),s.push(d)}return s;function a(l){return l.count?1:1+a(l.left)+a(l.right)}function c(l,u){let h=l/4,d=l/2,p=!!u.count,f=u.boundingData;for(let m=0;m<6;m++)A[h+m]=f[m];if(p){let m=u.offset,y=u.count;return r[h+6]=m,i[d+14]=y,i[d+15]=65535,l+32}else{let m=u.left,y=u.right,g=u.splitAxis,b;if(b=c(l+32,m),b/4>Math.pow(2,32))throw new Error("MeshBVH: Cannot store child pointer greater than 32 bits.");return r[h+6]=b/4,b=c(b,y),r[h+7]=g,b}}}var vn=class{constructor(){this.min=1/0,this.max=-1/0}setFromPointsField(e,t){let A=1/0,r=-1/0;for(let i=0,s=e.length;i<s;i++){let a=e[i][t];A=a<A?a:A,r=a>r?a:r}this.min=A,this.max=r}setFromPoints(e,t){let A=1/0,r=-1/0;for(let i=0,s=t.length;i<s;i++){let o=t[i],a=e.dot(o);A=a<A?a:A,r=a>r?a:r}this.min=A,this.max=r}isSeparated(e){return this.min>e.max||e.min>this.max}};vn.prototype.setFromBox=function(){let n=new S;return function(t,A){let r=A.min,i=A.max,s=1/0,o=-1/0;for(let a=0;a<=1;a++)for(let c=0;c<=1;c++)for(let l=0;l<=1;l++){n.x=r.x*a+i.x*(1-a),n.y=r.y*c+i.y*(1-c),n.z=r.z*l+i.z*(1-l);let u=t.dot(n);s=Math.min(u,s),o=Math.max(u,o)}this.min=s,this.max=o}}();var fAe=function(){let n=new vn;return function(t,A){let r=t.points,i=t.satAxes,s=t.satBounds,o=A.points,a=A.satAxes,c=A.satBounds;for(let l=0;l<3;l++){let u=s[l],h=i[l];if(n.setFromPoints(h,o),u.isSeparated(n))return!1}for(let l=0;l<3;l++){let u=c[l],h=a[l];if(n.setFromPoints(h,r),u.isSeparated(n))return!1}}}();var Fz=function(){let n=new S,e=new S,t=new S;return function(r,i,s){let o=r.start,a=n,c=i.start,l=e;t.subVectors(o,c),n.subVectors(r.end,i.start),e.subVectors(i.end,i.start);let u=t.dot(l),h=l.dot(a),d=l.dot(l),p=t.dot(a),m=a.dot(a)*d-h*h,y,g;m!==0?y=(u*h-p*d)/m:y=0,g=(u+y*h)/d,s.x=y,s.y=g}}(),Hu=function(){let n=new G,e=new S,t=new S;return function(r,i,s,o){Fz(r,i,n);let a=n.x,c=n.y;if(a>=0&&a<=1&&c>=0&&c<=1){r.at(a,s),i.at(c,o);return}else if(a>=0&&a<=1){c<0?i.at(0,o):i.at(1,o),r.closestPointToPoint(o,!0,s);return}else if(c>=0&&c<=1){a<0?r.at(0,s):r.at(1,s),i.closestPointToPoint(s,!0,o);return}else{let l;a<0?l=r.start:l=r.end;let u;c<0?u=i.start:u=i.end;let h=e,d=t;if(r.closestPointToPoint(u,!0,e),i.closestPointToPoint(l,!0,t),h.distanceToSquared(u)<=d.distanceToSquared(l)){s.copy(h),o.copy(u);return}else{s.copy(l),o.copy(d);return}}}}(),UM=function(){let n=new S,e=new S,t=new yA,A=new vA;return function(i,s){let{radius:o,center:a}=i,{a:c,b:l,c:u}=s;if(A.start=c,A.end=l,A.closestPointToPoint(a,!0,n).distanceTo(a)<=o||(A.start=c,A.end=u,A.closestPointToPoint(a,!0,n).distanceTo(a)<=o)||(A.start=l,A.end=u,A.closestPointToPoint(a,!0,n).distanceTo(a)<=o))return!0;let f=s.getPlane(t);if(Math.abs(f.distanceToPoint(a))<=o){let y=f.projectPoint(a,e);if(s.containsPoint(y))return!0}return!1}}();var Gz=1e-15;function Il(n){return Math.abs(n)<Gz}var xn=class extends Zt{constructor(...e){super(...e),this.isExtendedTriangle=!0,this.satAxes=new Array(4).fill().map(()=>new S),this.satBounds=new Array(4).fill().map(()=>new vn),this.points=[this.a,this.b,this.c],this.sphere=new DA,this.plane=new yA,this.needsUpdate=!0}intersectsSphere(e){return UM(e,this)}update(){let e=this.a,t=this.b,A=this.c,r=this.points,i=this.satAxes,s=this.satBounds,o=i[0],a=s[0];this.getNormal(o),a.setFromPoints(o,r);let c=i[1],l=s[1];c.subVectors(e,t),l.setFromPoints(c,r);let u=i[2],h=s[2];u.subVectors(t,A),h.setFromPoints(u,r);let d=i[3],p=s[3];d.subVectors(A,e),p.setFromPoints(d,r),this.sphere.setFromPoints(this.points),this.plane.setFromNormalAndCoplanarPoint(o,e),this.needsUpdate=!1}};xn.prototype.closestPointToSegment=function(){let n=new S,e=new S,t=new vA;return function(r,i=null,s=null){let{start:o,end:a}=r,c=this.points,l,u=1/0;for(let h=0;h<3;h++){let d=(h+1)%3;t.start.copy(c[h]),t.end.copy(c[d]),Hu(t,r,n,e),l=n.distanceToSquared(e),l<u&&(u=l,i&&i.copy(n),s&&s.copy(e))}return this.closestPointToPoint(o,n),l=o.distanceToSquared(n),l<u&&(u=l,i&&i.copy(n),s&&s.copy(o)),this.closestPointToPoint(a,n),l=a.distanceToSquared(n),l<u&&(u=l,i&&i.copy(n),s&&s.copy(a)),Math.sqrt(u)}}();xn.prototype.intersectsTriangle=function(){let n=new xn,e=new Array(3),t=new Array(3),A=new vn,r=new vn,i=new S,s=new S,o=new S,a=new S,c=new vA,l=new vA,u=new vA;return function(d,p=null){this.needsUpdate&&this.update(),d.isExtendedTriangle?d.needsUpdate&&d.update():(n.copy(d),n.update(),d=n);let f=this.plane,m=d.plane;if(Math.abs(f.normal.dot(m.normal))>1-1e-10){let y=this.satBounds,g=this.satAxes;t[0]=d.a,t[1]=d.b,t[2]=d.c;for(let w=0;w<4;w++){let T=y[w],M=g[w];if(A.setFromPoints(M,t),T.isSeparated(A))return!1}let b=d.satBounds,x=d.satAxes;e[0]=this.a,e[1]=this.b,e[2]=this.c;for(let w=0;w<4;w++){let T=b[w],M=x[w];if(A.setFromPoints(M,e),T.isSeparated(A))return!1}for(let w=0;w<4;w++){let T=g[w];for(let M=0;M<4;M++){let v=x[M];if(i.crossVectors(T,v),A.setFromPoints(i,e),r.setFromPoints(i,t),A.isSeparated(r))return!1}}return p&&(console.warn("ExtendedTriangle.intersectsTriangle: Triangles are coplanar which does not support an output edge. Setting edge to 0, 0, 0."),p.start.set(0,0,0),p.end.set(0,0,0)),!0}else{let y=this.points,g=!1,b=0;for(let _=0;_<3;_++){let I=y[_],B=y[(_+1)%3];c.start.copy(I),c.end.copy(B),c.delta(s);let N=g?l.start:l.end,W=Il(m.distanceToPoint(I));if(Il(m.normal.dot(s))&&W){l.copy(c),b=2;break}if((m.intersectLine(c,N)||W)&&!Il(N.distanceTo(B))){if(b++,g)break;g=!0}}if(b===1&&this.containsPoint(l.start))return p&&(p.start.copy(l.start),p.end.copy(l.start)),!0;if(b!==2)return!1;let x=d.points,w=!1,T=0;for(let _=0;_<3;_++){let I=x[_],B=x[(_+1)%3];c.start.copy(I),c.end.copy(B),c.delta(o);let N=w?u.start:u.end,W=Il(f.distanceToPoint(I));if(Il(f.normal.dot(o))&&W){u.copy(c),T=2;break}if((f.intersectLine(c,N)||W)&&!Il(N.distanceTo(B))){if(T++,w)break;w=!0}}if(T===1&&this.containsPoint(u.start))return p&&(p.start.copy(u.start),p.end.copy(u.start)),!0;if(T!==2)return!1;if(l.delta(s),u.delta(o),s.dot(o)<0){let _=u.start;u.start=u.end,u.end=_}let M=l.start.dot(s),v=l.end.dot(s),E=u.start.dot(s),C=u.end.dot(s),P=v<E,D=M<C;return M!==C&&E!==v&&P===D?!1:(p&&(a.subVectors(l.start,u.start),a.dot(s)>0?p.start.copy(l.start):p.start.copy(u.start),a.subVectors(l.end,u.end),a.dot(s)<0?p.end.copy(l.end):p.end.copy(u.end)),!0)}}}();xn.prototype.distanceToPoint=function(){let n=new S;return function(t){return this.closestPointToPoint(t,n),t.distanceTo(n)}}();xn.prototype.distanceToTriangle=function(){let n=new S,e=new S,t=["a","b","c"],A=new vA,r=new vA;return function(s,o=null,a=null){let c=o||a?A:null;if(this.intersectsTriangle(s,c))return(o||a)&&(o&&c.getCenter(o),a&&c.getCenter(a)),0;let l=1/0;for(let u=0;u<3;u++){let h,d=t[u],p=s[d];this.closestPointToPoint(p,n),h=p.distanceToSquared(n),h<l&&(l=h,o&&o.copy(n),a&&a.copy(p));let f=this[d];s.closestPointToPoint(f,n),h=f.distanceToSquared(n),h<l&&(l=h,o&&o.copy(f),a&&a.copy(n))}for(let u=0;u<3;u++){let h=t[u],d=t[(u+1)%3];A.set(this[h],this[d]);for(let p=0;p<3;p++){let f=t[p],m=t[(p+1)%3];r.set(s[f],s[m]),Hu(A,r,n,e);let y=n.distanceToSquared(e);y<l&&(l=y,o&&o.copy(n),a&&a.copy(e))}}return Math.sqrt(l)}}();var bn=class extends Ct{constructor(...e){super(...e),this.isOrientedBox=!0,this.matrix=new he,this.invMatrix=new he,this.points=new Array(8).fill().map(()=>new S),this.satAxes=new Array(3).fill().map(()=>new S),this.satBounds=new Array(3).fill().map(()=>new vn),this.alignedSatBounds=new Array(3).fill().map(()=>new vn),this.needsUpdate=!1}set(e,t,A){super.set(e,t),this.matrix.copy(A),this.needsUpdate=!0}copy(e){super.copy(e),this.matrix.copy(e.matrix),this.needsUpdate=!0}};bn.prototype.update=function(){return function(){let e=this.matrix,t=this.min,A=this.max,r=this.points;for(let c=0;c<=1;c++)for(let l=0;l<=1;l++)for(let u=0;u<=1;u++){let h=1*c|2*l|4*u,d=r[h];d.x=c?A.x:t.x,d.y=l?A.y:t.y,d.z=u?A.z:t.z,d.applyMatrix4(e)}let i=this.satBounds,s=this.satAxes,o=r[0];for(let c=0;c<3;c++){let l=s[c],u=i[c],h=1<<c,d=r[h];l.subVectors(o,d),u.setFromPoints(l,r)}let a=this.alignedSatBounds;a[0].setFromPointsField(r,"x"),a[1].setFromPointsField(r,"y"),a[2].setFromPointsField(r,"z"),this.invMatrix.copy(this.matrix).invert(),this.needsUpdate=!1}}();bn.prototype.intersectsBox=function(){let n=new vn;return function(t){this.needsUpdate&&this.update();let A=t.min,r=t.max,i=this.satBounds,s=this.satAxes,o=this.alignedSatBounds;if(n.min=A.x,n.max=r.x,o[0].isSeparated(n)||(n.min=A.y,n.max=r.y,o[1].isSeparated(n))||(n.min=A.z,n.max=r.z,o[2].isSeparated(n)))return!1;for(let a=0;a<3;a++){let c=s[a],l=i[a];if(n.setFromBox(c,t),l.isSeparated(n))return!1}return!0}}();bn.prototype.intersectsTriangle=function(){let n=new xn,e=new Array(3),t=new vn,A=new vn,r=new S;return function(s){this.needsUpdate&&this.update(),s.isExtendedTriangle?s.needsUpdate&&s.update():(n.copy(s),n.update(),s=n);let o=this.satBounds,a=this.satAxes;e[0]=s.a,e[1]=s.b,e[2]=s.c;for(let h=0;h<3;h++){let d=o[h],p=a[h];if(t.setFromPoints(p,e),d.isSeparated(t))return!1}let c=s.satBounds,l=s.satAxes,u=this.points;for(let h=0;h<3;h++){let d=c[h],p=l[h];if(t.setFromPoints(p,u),d.isSeparated(t))return!1}for(let h=0;h<3;h++){let d=a[h];for(let p=0;p<4;p++){let f=l[p];if(r.crossVectors(d,f),t.setFromPoints(r,e),A.setFromPoints(r,u),t.isSeparated(A))return!1}}return!0}}();bn.prototype.closestPointToPoint=function(){return function(e,t){return this.needsUpdate&&this.update(),t.copy(e).applyMatrix4(this.invMatrix).clamp(this.min,this.max).applyMatrix4(this.matrix),t}}();bn.prototype.distanceToPoint=function(){let n=new S;return function(t){return this.closestPointToPoint(t,n),t.distanceTo(n)}}();bn.prototype.distanceToBox=function(){let n=["x","y","z"],e=new Array(12).fill().map(()=>new vA),t=new Array(12).fill().map(()=>new vA),A=new S,r=new S;return function(s,o=0,a=null,c=null){if(this.needsUpdate&&this.update(),this.intersectsBox(s))return(a||c)&&(s.getCenter(r),this.closestPointToPoint(r,A),s.closestPointToPoint(A,r),a&&a.copy(A),c&&c.copy(r)),0;let l=o*o,u=s.min,h=s.max,d=this.points,p=1/0;for(let m=0;m<8;m++){let y=d[m];r.copy(y).clamp(u,h);let g=y.distanceToSquared(r);if(g<p&&(p=g,a&&a.copy(y),c&&c.copy(r),g<l))return Math.sqrt(g)}let f=0;for(let m=0;m<3;m++)for(let y=0;y<=1;y++)for(let g=0;g<=1;g++){let b=(m+1)%3,x=(m+2)%3,w=y<<b|g<<x,T=1<<m|y<<b|g<<x,M=d[w],v=d[T];e[f].set(M,v);let C=n[m],P=n[b],D=n[x],_=t[f],I=_.start,B=_.end;I[C]=u[C],I[P]=y?u[P]:h[P],I[D]=g?u[D]:h[P],B[C]=h[C],B[P]=y?u[P]:h[P],B[D]=g?u[D]:h[P],f++}for(let m=0;m<=1;m++)for(let y=0;y<=1;y++)for(let g=0;g<=1;g++){r.x=m?h.x:u.x,r.y=y?h.y:u.y,r.z=g?h.z:u.z,this.closestPointToPoint(r,A);let b=r.distanceToSquared(A);if(b<p&&(p=b,a&&a.copy(A),c&&c.copy(r),b<l))return Math.sqrt(b)}for(let m=0;m<12;m++){let y=e[m];for(let g=0;g<12;g++){let b=t[g];Hu(y,b,A,r);let x=A.distanceToSquared(r);if(x<p&&(p=x,a&&a.copy(A),c&&c.copy(r),x<l))return Math.sqrt(x)}}return Math.sqrt(p)}}();var gp=new S,yp=new S,vp=new S,VM=new G,zM=new G,HM=new G,WM=new S;function kz(n,e,t,A,r,i){let s;return i===hA?s=n.intersectTriangle(A,t,e,!0,r):s=n.intersectTriangle(e,t,A,i!==An,r),s===null?null:{distance:n.origin.distanceTo(r),point:r.clone()}}function Uz(n,e,t,A,r,i,s){gp.fromBufferAttribute(e,A),yp.fromBufferAttribute(e,r),vp.fromBufferAttribute(e,i);let o=kz(n,gp,yp,vp,WM,s);if(o){t&&(VM.fromBufferAttribute(t,A),zM.fromBufferAttribute(t,r),HM.fromBufferAttribute(t,i),o.uv=Zt.getUV(WM,gp,yp,vp,VM,zM,HM,new G));let a={a:A,b:r,c:i,normal:new S,materialIndex:0};Zt.getNormal(gp,yp,vp,a.normal),o.face=a,o.faceIndex=A}return o}function Nv(n,e,t,A,r){let i=A*3,s=n.index.getX(i),o=n.index.getX(i+1),a=n.index.getX(i+2),c=Uz(t,n.attributes.position,n.attributes.uv,s,o,a,e);return c?(c.faceIndex=A,r&&r.push(c),c):null}function jM(n,e,t,A,r,i){for(let s=A,o=A+r;s<o;s++)Nv(n,e,t,s,i)}function YM(n,e,t,A,r){let i=1/0,s=null;for(let o=A,a=A+r;o<a;o++){let c=Nv(n,e,t,o);c&&c.distance<i&&(s=c,i=c.distance)}return s}function Fv(n,e,t){return n===null||(n.point.applyMatrix4(e.matrixWorld),n.distance=n.point.distanceTo(t.ray.origin),n.object=e,n.distance<t.near||n.distance>t.far)?null:n}function Jn(n,e,t,A){let r=n.a,i=n.b,s=n.c,o=e,a=e+1,c=e+2;t&&(o=t.getX(e),a=t.getX(e+1),c=t.getX(e+2)),r.x=A.getX(o),r.y=A.getY(o),r.z=A.getZ(o),i.x=A.getX(a),i.y=A.getY(a),i.z=A.getZ(a),s.x=A.getX(c),s.y=A.getY(c),s.z=A.getZ(c)}function Gv(n,e,t,A,r,i,s){let o=t.index,a=t.attributes.position;for(let c=n,l=e+n;c<l;c++)if(Jn(s,c*3,o,a),s.needsUpdate=!0,A(s,c,r,i))return!0;return!1}var Ll=class{constructor(e){this._getNewPrimitive=e,this._primitives=[]}getPrimitive(){let e=this._primitives;return e.length===0?this._getNewPrimitive():e.pop()}releasePrimitive(e){this._primitives.push(e)}};function Fi(n,e){return e[n+15]===65535}function Io(n,e){return e[n+6]}function _l(n,e){return e[n+14]}function Ol(n){return n+8}function Rl(n,e){return e[n+6]}function qM(n,e){return e[n+7]}var Bl=new Ct,bp=new S,zz=["x","y","z"];function wp(n,e,t,A,r){let i=n*2,s=Nl,o=Ms,a=Es;if(Fi(i,o)){let l=Io(n,a),u=_l(i,o);jM(e,t,A,l,u,r)}else{let l=Ol(n);Tp(l,s,A,bp)&&wp(l,e,t,A,r);let u=Rl(n,a);Tp(u,s,A,bp)&&wp(u,e,t,A,r)}}function Sp(n,e,t,A){let r=n*2,i=Nl,s=Ms,o=Es;if(Fi(r,s)){let c=Io(n,o),l=_l(r,s);return YM(e,t,A,c,l)}else{let c=qM(n,o),l=zz[c],h=A.direction[l]>=0,d,p;h?(d=Ol(n),p=Rl(n,o)):(d=Rl(n,o),p=Ol(n));let m=Tp(d,i,A,bp)?Sp(d,e,t,A):null;if(m){let b=m.point[l];if(h?b<=i[p+c]:b>=i[p+c+3])return m}let g=Tp(p,i,A,bp)?Sp(p,e,t,A):null;return m&&g?m.distance<=g.distance?m:g:m||g||null}}var XM=function(){let n,e,t=[],A=new Ll(()=>new Ct);return function(...s){n=A.getPrimitive(),e=A.getPrimitive(),t.push(n,e);let o=r(...s);A.releasePrimitive(n),A.releasePrimitive(e),t.pop(),t.pop();let a=t.length;return a>0&&(e=t[a-1],n=t[a-2]),o};function r(i,s,o,a,c=null,l=0,u=0){function h(b){let x=b*2,w=Ms,T=Es;for(;!Fi(x,w);)b=Ol(b),x=b*2;return Io(b,T)}function d(b){let x=b*2,w=Ms,T=Es;for(;!Fi(x,w);)b=Rl(b,T),x=b*2;return Io(b,T)+_l(x,w)}let p=i*2,f=Nl,m=Ms,y=Es;if(Fi(p,m)){let b=Io(i,y),x=_l(p,m);return Kn(i,f,n),a(b,x,!1,u,l+i,n)}else{let b=Ol(i),x=Rl(i,y),w=b,T=x,M,v,E,C;if(c&&(E=n,C=e,Kn(w,f,E),Kn(T,f,C),M=c(E),v=c(C),v<M)){w=x,T=b;let W=M;M=v,v=W,E=C}E||(E=n,Kn(w,f,E));let P=Fi(w*2,m),D=o(E,P,M,u+1,l+w),_;if(D===2){let W=h(w),F=d(w)-W;_=a(W,F,!0,u+1,l+w,E)}else _=D&&r(w,s,o,a,c,l,u+1);if(_)return!0;C=e,Kn(T,f,C);let I=Fi(T*2,m),B=o(C,I,v,u+1,l+T),N;if(B===2){let W=h(T),F=d(T)-W;N=a(W,F,!0,u+1,l+T,C)}else N=B&&r(T,s,o,a,c,l,u+1);return!!N}}}(),QM=function(){let n=new xn,e=new xn,t=new he,A=new bn,r=new bn;return function i(s,o,a,c,l=null){let u=s*2,h=Nl,d=Ms,p=Es;if(l===null&&(a.boundingBox||a.computeBoundingBox(),A.set(a.boundingBox.min,a.boundingBox.max,c),l=A),Fi(u,d)){let m=o,y=m.index,g=m.attributes.position,b=a.index,x=a.attributes.position,w=Io(s,p),T=_l(u,d);if(t.copy(c).invert(),a.boundsTree)return Kn(s,h,r),r.matrix.copy(t),r.needsUpdate=!0,a.boundsTree.shapecast({intersectsBounds:v=>r.intersectsBox(v),intersectsTriangle:v=>{v.a.applyMatrix4(c),v.b.applyMatrix4(c),v.c.applyMatrix4(c),v.needsUpdate=!0;for(let E=w*3,C=(T+w)*3;E<C;E+=3)if(Jn(e,E,y,g),e.needsUpdate=!0,v.intersectsTriangle(e))return!0;return!1}});for(let M=w*3,v=T+w*3;M<v;M+=3){Jn(n,M,y,g),n.a.applyMatrix4(t),n.b.applyMatrix4(t),n.c.applyMatrix4(t),n.needsUpdate=!0;for(let E=0,C=b.count;E<C;E+=3)if(Jn(e,E,b,x),e.needsUpdate=!0,n.intersectsTriangle(e))return!0}}else{let m=s+8,y=p[s+6];return Kn(m,h,Bl),!!(l.intersectsBox(Bl)&&i(m,o,a,c,l)||(Kn(y,h,Bl),l.intersectsBox(Bl)&&i(y,o,a,c,l)))}}}();function Tp(n,e,t,A){return Kn(n,e,Bl),t.intersectBox(Bl,A)}var kv=[],xp,Nl,Ms,Es;function Fl(n){xp&&kv.push(xp),xp=n,Nl=new Float32Array(n),Ms=new Uint16Array(n),Es=new Uint32Array(n)}function Wu(){xp=null,Nl=null,Ms=null,Es=null,kv.length&&Fl(kv.pop())}var Uv=Symbol("skip tree generation"),Vv=new Ct,zv=new Ct,Gl=new he,Lo=new bn,ju=new bn,Yu=new S,Mp=new S,Hz=new S,Wz=new S,jz=new S,ZM=new Ct,Hr=new Ll(()=>new xn),eA=class{static serialize(e,t={}){if(t.isBufferGeometry)return console.warn("MeshBVH.serialize: The arguments for the function have changed. See documentation for new signature."),eA.serialize(arguments[0],{cloneBuffers:arguments[2]===void 0?!0:arguments[2]});t={cloneBuffers:!0,...t};let A=e.geometry,r=e._roots,i=A.getIndex(),s;return t.cloneBuffers?s={roots:r.map(o=>o.slice()),index:i.array.slice()}:s={roots:r,index:i.array},s}static deserialize(e,t,A={}){if(typeof A=="boolean")return console.warn("MeshBVH.deserialize: The arguments for the function have changed. See documentation for new signature."),eA.deserialize(arguments[0],arguments[1],{setIndex:arguments[2]===void 0?!0:arguments[2]});A={setIndex:!0,...A};let{index:r,roots:i}=e,s=new eA(t,{...A,[Uv]:!0});if(s._roots=i,A.setIndex){let o=t.getIndex();if(o===null){let a=new Ge(e.index,1,!1);t.setIndex(a)}else o.array!==r&&(o.array.set(r),o.needsUpdate=!0)}return s}constructor(e,t={}){if(e.isBufferGeometry){if(e.index&&e.index.isInterleavedBufferAttribute)throw new Error("MeshBVH: InterleavedBufferAttribute is not supported for the index attribute.")}else throw new Error("MeshBVH: Only BufferGeometries are supported.");if(t=Object.assign({strategy:0,maxDepth:40,maxLeafTris:10,verbose:!0,useSharedArrayBuffer:!1,setBoundingBox:!0,onProgress:null,[Uv]:!1},t),t.useSharedArrayBuffer&&typeof SharedArrayBuffer>"u")throw new Error("MeshBVH: SharedArrayBuffer is not available.");this._roots=null,t[Uv]||(this._roots=kM(e,t),!e.boundingBox&&t.setBoundingBox&&(e.boundingBox=this.getBoundingBox(new Ct))),this.geometry=e}refit(e=null){e&&Array.isArray(e)&&(e=new Set(e));let t=this.geometry,A=t.index.array,r=t.attributes.position,i=r.array,s=r.offset||0,o=3;r.isInterleavedBufferAttribute&&(o=r.data.stride);let a,c,l,u,h=0,d=this._roots;for(let f=0,m=d.length;f<m;f++)a=d[f],c=new Uint32Array(a),l=new Uint16Array(a),u=new Float32Array(a),p(0,h),h+=a.byteLength;function p(f,m,y=!1){let g=f*2;if(l[g+15]===65535){let x=c[f+6],w=l[g+14],T=1/0,M=1/0,v=1/0,E=-1/0,C=-1/0,P=-1/0;for(let D=3*x,_=3*(x+w);D<_;D++){let I=A[D]*o+s,B=i[I+0],N=i[I+1],W=i[I+2];B<T&&(T=B),B>E&&(E=B),N<M&&(M=N),N>C&&(C=N),W<v&&(v=W),W>P&&(P=W)}return u[f+0]!==T||u[f+1]!==M||u[f+2]!==v||u[f+3]!==E||u[f+4]!==C||u[f+5]!==P?(u[f+0]=T,u[f+1]=M,u[f+2]=v,u[f+3]=E,u[f+4]=C,u[f+5]=P,!0):!1}else{let x=f+8,w=c[f+6],T=x+m,M=w+m,v=y,E=!1,C=!1;e?v||(E=e.has(T),C=e.has(M),v=!E&&!C):(E=!0,C=!0);let P=v||E,D=v||C,_=!1;P&&(_=p(x,m,v));let I=!1;D&&(I=p(w,m,v));let B=_||I;if(B)for(let N=0;N<3;N++){let W=x+N,X=w+N,F=u[W],k=u[W+3],Q=u[X],z=u[X+3];u[f+N]=F<Q?F:Q,u[f+N+3]=k>z?k:z}return B}}}traverse(e,t=0){let A=this._roots[t],r=new Uint32Array(A),i=new Uint16Array(A);s(0);function s(o,a=0){let c=o*2,l=i[c+15]===65535;if(l){let u=r[o+6],h=i[c+14];e(a,l,new Float32Array(A,o*4,6),u,h)}else{let u=o+32/4,h=r[o+6],d=r[o+7];e(a,l,new Float32Array(A,o*4,6),d)||(s(u,a+1),s(h,a+1))}}}raycast(e,t=Wn){let A=this._roots,r=this.geometry,i=[],s=t.isMaterial,o=Array.isArray(t),a=r.groups,c=s?t.side:t;for(let l=0,u=A.length;l<u;l++){let h=o?t[a[l].materialIndex].side:c,d=i.length;if(Fl(A[l]),wp(0,r,h,e,i),Wu(),o){let p=a[l].materialIndex;for(let f=d,m=i.length;f<m;f++)i[f].face.materialIndex=p}}return i}raycastFirst(e,t=Wn){let A=this._roots,r=this.geometry,i=t.isMaterial,s=Array.isArray(t),o=null,a=r.groups,c=i?t.side:t;for(let l=0,u=A.length;l<u;l++){let h=s?t[a[l].materialIndex].side:c;Fl(A[l]);let d=Sp(0,r,h,e);Wu(),d!=null&&(o==null||d.distance<o.distance)&&(o=d,s&&(d.face.materialIndex=a[l].materialIndex))}return o}intersectsGeometry(e,t){let A=this.geometry,r=!1;for(let i of this._roots)if(Fl(i),r=QM(0,A,e,t),Wu(),r)break;return r}shapecast(e,t,A){let r=this.geometry;if(e instanceof Function){if(t){let h=t;t=(d,p,f,m)=>{let y=p*3;return h(d,y,y+1,y+2,f,m)}}e={boundsTraverseOrder:A,intersectsBounds:e,intersectsTriangle:t,intersectsRange:null},console.warn("MeshBVH: Shapecast function signature has changed and now takes an object of callbacks as a second argument. See docs for new signature.")}let i=Hr.getPrimitive(),{boundsTraverseOrder:s,intersectsBounds:o,intersectsRange:a,intersectsTriangle:c}=e;if(a&&c){let h=a;a=(d,p,f,m,y)=>h(d,p,f,m,y)?!0:Gv(d,p,r,c,f,m,i)}else a||(c?a=(h,d,p,f)=>Gv(h,d,r,c,p,f,i):a=(h,d,p)=>p);let l=!1,u=0;for(let h of this._roots){if(Fl(h),l=XM(0,r,o,a,s,u),Wu(),l)break;u+=h.byteLength}return Hr.releasePrimitive(i),l}bvhcast(e,t,A){let{intersectsRanges:r,intersectsTriangles:i}=A,s=this.geometry.index,o=this.geometry.attributes.position,a=e.geometry.index,c=e.geometry.attributes.position;Gl.copy(t).invert();let l=Hr.getPrimitive(),u=Hr.getPrimitive();if(i){let d=function(p,f,m,y,g,b,x,w){for(let T=m,M=m+y;T<M;T++){Jn(u,T*3,a,c),u.a.applyMatrix4(t),u.b.applyMatrix4(t),u.c.applyMatrix4(t),u.needsUpdate=!0;for(let v=p,E=p+f;v<E;v++)if(Jn(l,v*3,s,o),l.needsUpdate=!0,i(l,u,v,T,g,b,x,w))return!0}return!1};if(r){let p=r;r=function(f,m,y,g,b,x,w,T){return p(f,m,y,g,b,x,w,T)?!0:d(f,m,y,g,b,x,w,T)}}else r=d}e.getBoundingBox(zv),zv.applyMatrix4(t);let h=this.shapecast({intersectsBounds:d=>zv.intersectsBox(d),intersectsRange:(d,p,f,m,y,g)=>(Vv.copy(g),Vv.applyMatrix4(Gl),e.shapecast({intersectsBounds:b=>Vv.intersectsBox(b),intersectsRange:(b,x,w,T,M)=>r(d,p,b,x,m,y,T,M)}))});return Hr.releasePrimitive(l),Hr.releasePrimitive(u),h}intersectsBox(e,t){return Lo.set(e.min,e.max,t),Lo.needsUpdate=!0,this.shapecast({intersectsBounds:A=>Lo.intersectsBox(A),intersectsTriangle:A=>Lo.intersectsTriangle(A)})}intersectsSphere(e){return this.shapecast({intersectsBounds:t=>e.intersectsBox(t),intersectsTriangle:t=>t.intersectsSphere(e)})}closestPointToGeometry(e,t,A={},r={},i=0,s=1/0){e.boundingBox||e.computeBoundingBox(),Lo.set(e.boundingBox.min,e.boundingBox.max,t),Lo.needsUpdate=!0;let o=this.geometry,a=o.attributes.position,c=o.index,l=e.attributes.position,u=e.index,h=Hr.getPrimitive(),d=Hr.getPrimitive(),p=Mp,f=Hz,m=null,y=null;r&&(m=Wz,y=jz);let g=1/0,b=null,x=null;return Gl.copy(t).invert(),ju.matrix.copy(Gl),this.shapecast({boundsTraverseOrder:w=>Lo.distanceToBox(w),intersectsBounds:(w,T,M)=>M<g&&M<s?(T&&(ju.min.copy(w.min),ju.max.copy(w.max),ju.needsUpdate=!0),!0):!1,intersectsRange:(w,T)=>{if(e.boundsTree)return e.boundsTree.shapecast({boundsTraverseOrder:M=>ju.distanceToBox(M),intersectsBounds:(M,v,E)=>E<g&&E<s,intersectsRange:(M,v)=>{for(let E=M*3,C=(M+v)*3;E<C;E+=3){Jn(d,E,u,l),d.a.applyMatrix4(t),d.b.applyMatrix4(t),d.c.applyMatrix4(t),d.needsUpdate=!0;for(let P=w*3,D=(w+T)*3;P<D;P+=3){Jn(h,P,c,a),h.needsUpdate=!0;let _=h.distanceToTriangle(d,p,m);if(_<g&&(f.copy(p),y&&y.copy(m),g=_,b=P/3,x=E/3),_<i)return!0}}}});{let M=u?u.count:l.count;for(let v=0,E=M;v<E;v+=3){Jn(d,v,u,l),d.a.applyMatrix4(t),d.b.applyMatrix4(t),d.c.applyMatrix4(t),d.needsUpdate=!0;for(let C=w*3,P=(w+T)*3;C<P;C+=3){Jn(h,C,c,a),h.needsUpdate=!0;let D=h.distanceToTriangle(d,p,m);if(D<g&&(f.copy(p),y&&y.copy(m),g=D,b=C/3,x=v/3),D<i)return!0}}}}}),Hr.releasePrimitive(h),Hr.releasePrimitive(d),g===1/0?null:(A.point?A.point.copy(f):A.point=f.clone(),A.distance=g,A.faceIndex=b,r&&(r.point?r.point.copy(y):r.point=y.clone(),r.point.applyMatrix4(Gl),f.applyMatrix4(Gl),r.distance=f.sub(r.point).length(),r.faceIndex=x),A)}closestPointToPoint(e,t={},A=0,r=1/0){let i=A*A,s=r*r,o=1/0,a=null;if(this.shapecast({boundsTraverseOrder:l=>(Yu.copy(e).clamp(l.min,l.max),Yu.distanceToSquared(e)),intersectsBounds:(l,u,h)=>h<o&&h<s,intersectsTriangle:(l,u)=>{l.closestPointToPoint(e,Yu);let h=e.distanceToSquared(Yu);return h<o&&(Mp.copy(Yu),o=h,a=u),h<i}}),o===1/0)return null;let c=Math.sqrt(o);return t.point?t.point.copy(Mp):t.point=Mp.clone(),t.distance=c,t.faceIndex=a,t}getBoundingBox(e){return e.makeEmpty(),this._roots.forEach(A=>{Kn(0,new Float32Array(A),ZM),e.union(ZM)}),e}},KM=eA.prototype.raycast;eA.prototype.raycast=function(...n){if(n[0].isMesh){console.warn('MeshBVH: The function signature and results frame for "raycast" has changed. See docs for new signature.');let[e,t,A,r]=n;return KM.call(this,A,e.material).forEach(s=>{s=Fv(s,e,t),s&&r.push(s)}),r}else return KM.apply(this,n)};var JM=eA.prototype.raycastFirst;eA.prototype.raycastFirst=function(...n){if(n[0].isMesh){console.warn('MeshBVH: The function signature and results frame for "raycastFirst" has changed. See docs for new signature.');let[e,t,A]=n;return Fv(JM.call(this,A,e.material),e,t)}else return JM.apply(this,n)};var $M=eA.prototype.closestPointToPoint;eA.prototype.closestPointToPoint=function(...n){if(n[0].isMesh){console.warn('MeshBVH: The function signature and results frame for "closestPointToPoint" has changed. See docs for new signature.'),n.unshift();let e=n[1],t={};return n[1]=t,$M.apply(this,n),e&&e.copy(t.point),t.distance}else return $M.apply(this,n)};var eE=eA.prototype.closestPointToGeometry;eA.prototype.closestPointToGeometry=function(...n){let e=n[2],t=n[3];if(e&&e.isVector3||t&&t.isVector3){console.warn('MeshBVH: The function signature and results frame for "closestPointToGeometry" has changed. See docs for new signature.');let A={},r={},i=n[1];return n[2]=A,n[3]=r,eE.apply(this,n),e&&e.copy(A.point),t&&t.copy(r.point).applyMatrix4(i),A.distance}else return eE.apply(this,n)};var tE=eA.prototype.refit;eA.prototype.refit=function(...n){let e=n[0],t=n[1];if(t&&(t instanceof Set||Array.isArray(t))){console.warn('MeshBVH: The function signature for "refit" has changed. See docs for new signature.');let A=new Set;t.forEach(r=>A.add(r)),e&&e.forEach(r=>A.add(r)),tE.call(this,A)}else tE.apply(this,n)};["intersectsGeometry","shapecast","intersectsBox","intersectsSphere"].forEach(n=>{let e=eA.prototype[n];eA.prototype[n]=function(...t){return(t[0]===null||t[0].isMesh)&&(t.shift(),console.warn(`MeshBVH: The function signature for "${n}" has changed and no longer takes Mesh. See docs for new signature.`)),e.apply(this,t)}});var Hl=sg(nE());var Yz=.5*(Math.sqrt(3)-1),qu=(3-Math.sqrt(3))/6,qz=1/3,Wr=1/6,ane=(Math.sqrt(5)-1)/4,lne=(5-Math.sqrt(5))/20,Xu=n=>Math.floor(n)|0,rE=new Float64Array([1,1,-1,1,1,-1,-1,-1,1,0,-1,0,1,0,-1,0,0,1,0,-1,0,1,0,-1]),Wv=new Float64Array([1,1,0,-1,1,0,1,-1,0,-1,-1,0,1,0,1,-1,0,1,1,0,-1,-1,0,-1,0,1,1,0,-1,1,0,1,-1,0,-1,-1]);function Ep(n=Math.random){let e=sE(n),t=new Float64Array(e).map(r=>rE[r%12*2]),A=new Float64Array(e).map(r=>rE[r%12*2+1]);return function(i,s){let o=0,a=0,c=0,l=(i+s)*Yz,u=Xu(i+l),h=Xu(s+l),d=(u+h)*qu,p=u-d,f=h-d,m=i-p,y=s-f,g,b;m>y?(g=1,b=0):(g=0,b=1);let x=m-g+qu,w=y-b+qu,T=m-1+2*qu,M=y-1+2*qu,v=u&255,E=h&255,C=.5-m*m-y*y;if(C>=0){let _=v+e[E],I=t[_],B=A[_];C*=C,o=C*C*(I*m+B*y)}let P=.5-x*x-w*w;if(P>=0){let _=v+g+e[E+b],I=t[_],B=A[_];P*=P,a=P*P*(I*x+B*w)}let D=.5-T*T-M*M;if(D>=0){let _=v+1+e[E+1],I=t[_],B=A[_];D*=D,c=D*D*(I*T+B*M)}return 70*(o+a+c)}}function iE(n=Math.random){let e=sE(n),t=new Float64Array(e).map(i=>Wv[i%12*3]),A=new Float64Array(e).map(i=>Wv[i%12*3+1]),r=new Float64Array(e).map(i=>Wv[i%12*3+2]);return function(s,o,a){let c,l,u,h,d=(s+o+a)*qz,p=Xu(s+d),f=Xu(o+d),m=Xu(a+d),y=(p+f+m)*Wr,g=p-y,b=f-y,x=m-y,w=s-g,T=o-b,M=a-x,v,E,C,P,D,_;w>=T?T>=M?(v=1,E=0,C=0,P=1,D=1,_=0):w>=M?(v=1,E=0,C=0,P=1,D=0,_=1):(v=0,E=0,C=1,P=1,D=0,_=1):T<M?(v=0,E=0,C=1,P=0,D=1,_=1):w<M?(v=0,E=1,C=0,P=0,D=1,_=1):(v=0,E=1,C=0,P=1,D=1,_=0);let I=w-v+Wr,B=T-E+Wr,N=M-C+Wr,W=w-P+2*Wr,X=T-D+2*Wr,F=M-_+2*Wr,k=w-1+3*Wr,Q=T-1+3*Wr,z=M-1+3*Wr,U=p&255,j=f&255,q=m&255,V=.6-w*w-T*T-M*M;if(V<0)c=0;else{let Y=U+e[j+e[q]];V*=V,c=V*V*(t[Y]*w+A[Y]*T+r[Y]*M)}let ue=.6-I*I-B*B-N*N;if(ue<0)l=0;else{let Y=U+v+e[j+E+e[q+C]];ue*=ue,l=ue*ue*(t[Y]*I+A[Y]*B+r[Y]*N)}let Ae=.6-W*W-X*X-F*F;if(Ae<0)u=0;else{let Y=U+P+e[j+D+e[q+_]];Ae*=Ae,u=Ae*Ae*(t[Y]*W+A[Y]*X+r[Y]*F)}let K=.6-k*k-Q*Q-z*z;if(K<0)h=0;else{let Y=U+1+e[j+1+e[q+1]];K*=K,h=K*K*(t[Y]*k+A[Y]*Q+r[Y]*z)}return 32*(c+l+u+h)}}function sE(n){let t=new Uint8Array(512);for(let A=0;A<512/2;A++)t[A]=A;for(let A=0;A<512/2-1;A++){let r=A+~~(n()*(256-A)),i=t[A];t[A]=t[r],t[r]=i}for(let A=256;A<512;A++)t[A]=t[A-256];return t}var vr=new Zt,Cp=class{constructor(e){this.weightAttribute=null;let t=e.geometry;if(!t.isBufferGeometry||t.attributes.position.itemSize!==3)throw new Error("THREE.MeshSurfaceSampler: Requires BufferGeometry triangle mesh.");t.index&&(t=t.toNonIndexed()),this.geometry=t,this.randomFunction=Math.random,this.positionAttribute=this.geometry.getAttribute("position"),this.distribution=null}build(){let e=this.positionAttribute,t=new Float32Array(e.count/3);for(let r=0;r<e.count;r+=3){let i=1;vr.a.fromBufferAttribute(e,r),vr.b.fromBufferAttribute(e,r+1),vr.c.fromBufferAttribute(e,r+2),i*=vr.getArea(),t[r/3]=i}this.distribution=new Float32Array(e.count/3);let A=0;for(let r=0;r<t.length;r++)A+=t[r],this.distribution[r]=A;return this}setRandomGenerator(e){return this.randomFunction=e,this}sample(e,t){if(this.distribution){let A=this.distribution[this.distribution.length-1],r=this.binarySearch(this.randomFunction()*A);return this.sampleFace(r,e,t)}}binarySearch(e){if(!this.distribution)return 0;let t=this.distribution,A=0,r=t.length-1,i=-1;for(;A<=r;){let s=Math.ceil((A+r)/2);if(s===0||t[s-1]<=e&&t[s]>e){i=s;break}else e<t[s]?r=s-1:A=s+1}return i}sampleFace(e,t,A){let r=this.randomFunction(),i=this.randomFunction();return r+i>1&&(r=1-r,i=1-i),vr.a.fromBufferAttribute(this.positionAttribute,e*3),vr.b.fromBufferAttribute(this.positionAttribute,e*3+1),vr.c.fromBufferAttribute(this.positionAttribute,e*3+2),t.set(0,0,0).addScaledVector(vr.a,r).addScaledVector(vr.b,i).addScaledVector(vr.c,1-(r+i)),vr.getNormal(A),this}};function RA(n,e){return e.color(n)}var $n=n=>"isEntity"in n,tA=n=>"isAbstractMesh"in n,Vt=n=>n!==null&&n.objectType==="BooleanObject",oE=n=>n.objectType==="CombinedCamera",aE=n=>$n(n)&&(n.objectType==="LightDirectional"||n.objectType==="LightSpot"||n.objectType==="LightPoint");var jv=n=>n.objectType==="EmptyObject",Pp=n=>"objectHelper"in n;function Yv(n,e){let t=!1;e.position&&(n.position.fromArray(e.position),t=!0),e.rotation&&(n.rotation.fromArray(e.rotation),t=!0),e.scale&&(t=!0,n.scale.fromArray(e.scale)),e.hiddenMatrix!==void 0&&"hiddenMatrix"in n&&(t=!0,n.hiddenMatrix.fromArray(e.hiddenMatrix??xs.identity)),t&&(n.updateMatrix(),Vt(n.parent)&&tA(n)&&n.invalidateDownstreamBooleanData(!0).recomputeBoolean()),e.position&&e.rotation&&e.scale&&e.hiddenMatrix!==void 0&&n.updateWorldMatrix(!1,!0),n.objectType==="CombinedCamera"&&(e.isUpVectorFlipped!==void 0&&(n.isUpVectorFlipped=e.isUpVectorFlipped),n.updateUp())}function Xz(n,e){Yv(n,e),e.name!==void 0&&(n.name=e.name),e.visible!==void 0&&(n.visible=e.visible)}function lE(n,e,t){Xz(n,e),e.color!==void 0&&(n.color=RA(e.color,t)),e.intensity!==void 0&&(n.intensity=e.intensity),e.shadows!==void 0&&!(n instanceof fo)&&(n.castShadow=e.shadows),n.shadow&&!(n instanceof fo)&&e.depth!==void 0&&(n.shadow.camera.far=e.depth,n.shadow.needsUpdate=!0)}function cE(n,e){n.shadow.camera.right=e/2,n.shadow.camera.left=-e/2,n.shadow.camera.top=e/2,n.shadow.camera.bottom=-e/2,n.shadow.needsUpdate=!0}var Dp=n=>class extends n{hasEntityChild(){return this.children.some(t=>$n(t))}isDescendantOf(t){t instanceof ht&&(t=t.uuid);let A=this;for(;A.parent;){if(A.parent.uuid===t)return!0;A=A.parent}return!1}attach(t,A){this.updateWorldMatrix(!0,!1);let r=new he().copy(this.matrixWorld).invert();return t.parent!==null&&(t.parent.updateWorldMatrix(!0,!1),r.multiply(t.parent.matrixWorld)),$n(t)?t.hiddenMatrix.premultiply(r):t.applyMatrix4(r),t.updateWorldMatrix(!1,!1),this.add(t),A!==void 0&&(this.children.pop(),this.children.splice(A,0,t)),this}copy(t,A=!0){if(this.name=t.name,this.up.copy(t.up),this.position.copy(t.position),this.rotation.order=t.rotation.order,this.quaternion.copy(t.quaternion),this.scale.copy(t.scale),this.matrix.copy(t.matrix),this.matrixWorld.copy(t.matrixWorld),this.matrixAutoUpdate=t.matrixAutoUpdate,this.matrixWorldNeedsUpdate=t.matrixWorldNeedsUpdate,this.layers.mask=t.layers.mask,this.visible=t.visible,this.castShadow=t.castShadow,this.receiveShadow=t.receiveShadow,this.frustumCulled=t.frustumCulled,this.renderOrder=t.renderOrder,this.userData=JSON.parse(JSON.stringify(t.userData)),A===!0)for(let r=0;r<t.children.length;r++){let i=t.children[r];this.add(i.clone())}return this}};var kl=new Ct,er=new S,jr=new S,Ul=new he,hE=[new S(-1,1,1),new S(-1,-1,1),new S(1,-1,1),new S(1,1,1),new S(-1,1,-1),new S(-1,-1,-1),new S(1,-1,-1),new S(1,1,-1)],Qz=[[0,3],[1,2],[5,6],[4,7],[0,1],[3,2],[7,6],[4,5],[0,4],[1,5],[2,6],[3,7]],Zz=[[0,2],[7,5],[4,1],[3,6],[4,3],[1,6]];function Kz(n,e,t=0,A=e.count){let r=1/0,i=1/0,s=1/0,o=-1/0,a=-1/0,c=-1/0;for(let l=t;l<A;l++){let u=e.getX(l),h=e.getY(l),d=e.getZ(l);u<r&&(r=u),h<i&&(i=h),d<s&&(s=d),u>o&&(o=u),h>a&&(a=h),d>c&&(c=d)}return n.min.set(r,i,s),n.max.set(o,a,c),n}var uE=(n,e,t)=>{if(tA(n)){let A=n.geometry.userData.parameters,r=n.geometry.getAttribute("position"),i=n.geometry.userData.type;i==="SubdivGeometry"?er.copy(n.originalGeometry.boundingSphere.center):i==="TextGeometry"||wl.is2DParametricMesh(i)?er.set(0,0,A.depth*.5):i==="ConeGeometry"||i==="CubeGeometry"||i==="CylinderGeometry"||i==="DodecahedronGeometry"||i==="HelixGeometry"||i==="IcosahedronGeometry"||i==="PyramidGeometry"||i==="SphereGeometry"||i==="PlaneGeometry"||i==="BackdropGeometry"||i==="TorusGeometry"||i==="TorusKnotGeometry"?er.set(0,0,0):r!==void 0&&(Kz(kl,r,n.geometry.drawRange.start,n.geometry.drawRange.count<1/0?n.geometry.drawRange.count:r.count),kl.getCenter(er)),n.forceComputeSize?kl.getSize(jr).multiplyScalar(.5):jr.set(A.width,A.height,A.depth??0).multiplyScalar(.5)}else if(Pp(n)&&n.objectHelper.visible){let A=n.geometryHelper.getAttribute("position");kl.setFromArray(A.array),kl.getCenter(er),kl.getSize(jr).multiplyScalar(.5)}else er.setScalar(0),jr.setScalar(0);Ul.copy(e).multiply(n.matrixWorld),jr.x===0&&jr.y===0&&jr.z===0?t.push(new S(er.x,er.y,er.z).applyMatrix4(Ul)):hE.forEach(A=>{t.push(A.clone().multiply(jr).add(er).applyMatrix4(Ul))})},Qu=class extends Ct{constructor(){super(...arguments);this.matrix=new he;this.vertices=[];this.faces=[];this.edges=[];this.centerEdges=[]}copy(t){return super.copy(t),this.matrix.copy(t.matrix),this.vertices=t.vertices.map(A=>A.clone()),this.faces=t.faces.map(A=>A.clone()),this.edges=t.edges.map(A=>A.clone()),this.centerEdges=t.centerEdges.map(A=>A.clone()),this}setFromObjectSize(t,A=!1){t.updateWorldMatrix(!1,A),this.makeEmpty(),this.matrix.copy(t.matrixWorld);let r=new he().copy(t.matrixWorld).invert();return this.expandByObjectSize(t,r,A)}expandByObjectSize(t,A,r=!1){let i=[];return r===!0?t.traverseEntity(s=>{s.visible&&uE(s,A,i)}):uE(t,A,i),this.setFromPoints(i)}getCenter(t){return t=super.getCenter(t),t.applyMatrix4(this.matrix),t}getPositionToCenter(t){return t=super.getCenter(t),t.applyMatrix4(Ul.copy(this.matrix).setPosition(0,0,0)),t}computeVertices(){this.getSize(jr).multiplyScalar(.5),this.getCenter(er),Ul.copy(this.matrix).setPosition(er),this.vertices=hE.map(t=>t.clone().multiply(jr).applyMatrix4(Ul))}computeEdges(){this.vertices.length>0&&this.computeVertices(),this.edges=Qz.map(([t,A])=>new vA(this.vertices[t],this.vertices[A])),this.centerEdges=this.edges.map(t=>t.getCenter(new S))}computeFaces(){this.vertices.length>0&&this.computeVertices(),this.faces=Zz.map(([t,A])=>this.vertices[t].clone().add(this.vertices[A]).multiplyScalar(.5))}};var tr=n=>"isEntity"in n,dE=n=>"isAbstractMesh"in n,Ar=n=>class extends Dp(n){constructor(){super(...arguments);this.objectType="";this.isEntity=!0;this.raycastLock=!1;this.scaleLock=!1;this.hiddenMatrix=new he;this._singleBBox=new Qu;this._recursiveBBox=new Qu;this.singleBBoxNeedsUpdate=!0;this.recursiveBBoxNeedsUpdate=!0;this.forceComputeSize=!1;this.currentState=null;this.currentTransitionAction=null}get singleBBox(){return this.singleBBoxNeedsUpdate&&(this.singleBBoxNeedsUpdate=!1,this._singleBBox.setFromObjectSize(this,!1),this._singleBBox.computeVertices(),this._singleBBox.computeEdges(),this._singleBBox.computeFaces()),this._singleBBox}get recursiveBBox(){return this.recursiveBBoxNeedsUpdate&&(this.recursiveBBoxNeedsUpdate=!1,this._recursiveBBox.setFromObjectSize(this,!0),this._recursiveBBox.computeVertices(),this._recursiveBBox.computeEdges(),this._recursiveBBox.computeFaces()),this._recursiveBBox}resetBBoxNeedsUpdate(){this.singleBBoxNeedsUpdate=!0,this.recursiveBBoxNeedsUpdate=!0,this.traverseAncestors(A=>{tr(A)&&(A.singleBBoxNeedsUpdate=!0,A.recursiveBBoxNeedsUpdate=!0)}),this.traverseEntity(A=>{A.singleBBoxNeedsUpdate=!0,A.recursiveBBoxNeedsUpdate=!0})}traverseEntity(A){A(this);for(let r of this.children)tr(r)&&r.traverseEntity(A)}traverseVisibleEntity(A){A(this);for(let r of this.children)tr(r)&&r.visible&&r.traverseVisibleEntity(A)}updateMatrix(){super.updateMatrix(),this.dispatchEvent({type:"updateMatrix"})}updateMatrixWorld(A){this.matrixAutoUpdate&&this.updateMatrix(),(this.matrixWorldNeedsUpdate||A)&&(this.parent===null?this.matrixWorld.multiplyMatrices(this.hiddenMatrix,this.matrix):(this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.hiddenMatrix),this.matrixWorld.multiplyMatrices(this.matrixWorld,this.matrix)),this.matrixWorldNeedsUpdate=!1,A=!0);for(let r of this.children)r.updateMatrixWorld(A)}updateWorldMatrix(A,r){let i=this.parent;if(A&&i!==null&&i.updateWorldMatrix(!0,!1),this.matrixAutoUpdate&&this.updateMatrix(),this.parent===null?this.matrixWorld.multiplyMatrices(this.hiddenMatrix,this.matrix):(this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.hiddenMatrix),this.matrixWorld.multiplyMatrices(this.matrixWorld,this.matrix)),r)for(let s of this.children)s.updateWorldMatrix(!1,!0)}clone(A){return new this.constructor().copy(this,A)}copy(A,r=!0){if(super.copy(A,!1),this.raycastLock=A.raycastLock,this.scaleLock=A.scaleLock,this.hiddenMatrix.copy(A.hiddenMatrix),r===!0)for(let i of A.children)tr(i)&&this.add(i.clone());return this}keepChildrenMatrixWorld(){let A=new he,r=this.matrixWorld.clone();this.updateWorldMatrix(!1,!1),A.copy(this.matrixWorld).invert(),A.multiply(r);for(let i of this.children)tr(i)&&i.hiddenMatrix.premultiply(A)}toObjectTransformState(A=[]){this.updateWorldMatrix(!0,!1);let r={position:this.position.toArray(),rotation:[this.rotation.x,this.rotation.y,this.rotation.z],scale:this.scale.toArray(),hiddenMatrix:this.hiddenMatrix.toArray()};return cl(r,A)}fromObjectTransformState(A){return A.position&&this.position.fromArray(A.position),A.rotation&&this.rotation.fromArray(A.rotation),A.scale&&this.scale.fromArray(A.scale),A.hiddenMatrix&&this.hiddenMatrix.fromArray(A.hiddenMatrix),this.updateMatrix(),this}toState(A=[]){let r={name:this.name,visible:this.visible,raycastLock:this.raycastLock,...this.toObjectTransformState(A)};return cl(r,A)}fromState(A,r){return A.name&&(this.name=A.name),A.raycastLock!==void 0&&(this.raycastLock=A.raycastLock),A.type!=="OrthographicCamera"&&A.type!=="PerspectiveCamera"&&(this.matrixAutoUpdate=!1),A.visible!==void 0&&(this.visible=A.visible),this.fromObjectTransformState(A),this}};var qv=class extends ht{},Jz=n=>n.type==="Mesh",Yr=class extends qv{constructor(t){super();this.object=t;this.hiddenMatrix=new he;this.uuidOrigin=t.uuid,this.matrixAutoUpdate=!0;for(let A of this.object.children)if(tr(A)){let r=new Yr(A);r.visible=!0,this.add(r),r.matrixAutoUpdate=!1,r.matrix=A.matrix.clone(),r.matrix.premultiply(A.hiddenMatrix)}}get castShadow(){return this.object.castShadow}set castShadow(t){}get receiveShadow(){return this.object.receiveShadow}set receiveShadow(t){}get isMesh(){return Jz(this.object)}updateMatrixWorld(t){this.matrixAutoUpdate&&this.updateMatrix(),(this.matrixWorldNeedsUpdate||t)&&(this.parent===null?this.matrixWorld.multiplyMatrices(this.hiddenMatrix,this.matrix):(this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.hiddenMatrix),this.matrixWorld.multiplyMatrices(this.matrixWorld,this.matrix)),this.matrixWorldNeedsUpdate=!1,t=!0);for(let A of this.children)A.updateMatrixWorld(t)}get isLight(){return this.object.isLight}get layers(){return this.object.layers}set layers(t){}get isCamera(){return!1}get geometry(){if(this.object.geometry)return this.object.geometry}get material(){if(this.object.material)return this.object.material}};var pE,Vl=new Promise(n=>{pE=n}),fE=!1;async function mE(){if(fE)return;let e=!1?".":"https://unpkg.com/@splinetool/modelling-wasm@0.9.152/build",[t,A]=await Promise.all([import("./process.js"),fetch(`${e}/process.wasm`).then(s=>s.arrayBuffer())]),r=t.default,i=await r({wasmBinary:A});pE(i),fE=!0}var gE=-1,e4=1,yE={x:[1,0,0],"-x":[-1,0,0],y:[0,1,0],"-y":[0,-1,0],z:[0,0,1],"-z":[0,0,-1]},vE={polygon_center:0,edge:1,vertex:2},Zu=(n,e)=>(t,A)=>!e||t===0||n===0?0:n*A/100,tt=(n,e)=>{let t=Math.abs(e),A=t*-1;return(n-gE)*(t-A)/(e4-gE)+A};function xE(n){let e=[],t={};for(var A=0,r=n.length;A<r;A++){var i=JSON.stringify(n[A].pos.map(s=>Math.round(s*1e4)/1e4));t[i]||(e.push(n[A]),t[i]=!0)}return e}var t4=new S,Ip=new S,A4=new S,n4=new S;function zl(n,e){let t=A4.fromArray(n),A=n4.fromArray(e);Ip.copy(A).sub(t);let r=Ip.length();return Ip.normalize().multiplyScalar(r*.5),t4.copy(t).add(Ip).toArray()}var nr=new Zt,Lp=new S,_p=new S,_o=new S;function bE(n){let e=[];for(let t=0;t<=n.index.count;t++)if(Lp.fromArray(n.index.array,t*3),nr.setFromAttributeAndIndices(n.attributes.position,Lp.x,Lp.y,Lp.z),nr.getNormal(_p),nr.getMidpoint(_o),!(isNaN(_o.x)||isNaN(_o.y)||isNaN(_o.z))){let{a:A,b:r,c:i}=nr,s=A.toArray(),o=r.toArray(),a=i.toArray(),c=A.distanceTo(r),l=r.distanceTo(i),u=i.distanceTo(A),h=zl(s,o),d=zl(o,a),p=zl(a,s),f=[c,l,u],m=Math.max(...f),y=f.filter(x=>Math.round(x)===Math.round(m)).length>1,g=[],b=nr.getMidpoint(_o).toArray();m===c&&!y&&(g=[d,p,p],b=h),m===l&&!y&&(g=[h,p,p],b=d),m===u&&!y&&(g=[h,d,d],b=p),y&&(g=[h,d,p]),e.push({vertices:[s,o,a],faceCenters:g,midpoint:b,norm:nr.getNormal(_p).toArray()})}return e}function wE(n){let e=[],{position:t}=n.attributes;for(let A=0;A<t.count;A++){nr.setFromAttributeAndIndices(t,A*3,A*3+1,A*3+2),nr.getNormal(_p),nr.getMidpoint(_o);let r=nr.a.toArray(),i=nr.b.toArray(),s=nr.c.toArray();e.push({vertices:[r,i,s],faceCenters:[zl(r,i),zl(i,s),zl(s,r)],midpoint:_o.toArray(),norm:_p.toArray()})}return e}var r4=4,i4=.5,Xv=n=>.5*(1-Math.cos(n*Math.PI)),Qv=class{constructor(){this.perlin=new Array(4095+1)}noise(e,t=0,A=0){if(this.perlin==null){this.perlin=new Array(4095+1);for(let y=0;y<4095+1;y++)this.perlin[y]=Math.random()}e<0&&(e=-e),t<0&&(t=-t),A<0&&(A=-A);let r=Math.floor(e),i=Math.floor(t),s=Math.floor(A),o=e-r,a=t-i,c=A-s,l,u,h=0,d=.5,p,f,m;for(let y=0;y<r4;y++){let g=r+(i<<4)+(s<<8);l=Xv(o),u=Xv(a),p=this.perlin[g&4095],p+=l*(this.perlin[g+1&4095]-p),f=this.perlin[g+16&4095],f+=l*(this.perlin[g+16+1&4095]-f),p+=u*(f-p),g+=256,f=this.perlin[g&4095],f+=l*(this.perlin[g+1&4095]-f),m=this.perlin[g+16&4095],m+=l*(this.perlin[g+16+1&4095]-m),f+=u*(m-f),p+=Xv(c)*(f-p),h+=p*d,d*=i4,r<<=1,o*=2,i<<=1,a*=2,s<<=1,c*=2,o>=1&&(r++,o--),a>=1&&(i++,a--),c>=1&&(s++,c--)}return h}noiseSeed(e){let t=(()=>{let s,o;return{setSeed(a){o=s=(a??Math.random()*4294967296)>>>0},getSeed(){return s},rand(){return o=(1664525*o+1013904223)%4294967296,o/4294967296}}})();t.setSeed(e),this.perlin=new Array(4095+1);for(let A=0;A<4095+1;A++)this.perlin[A]=t.rand()}},SE=Qv;var un=1e-4,qr,EE,CE,PE,TE=new S,ME=new S;Vl.then(n=>{qr=n,EE=[qr.get_face_center,qr.get_edge_midpoint,qr.get_vertex_position],CE=[qr.get_face_normal,qr.get_edge_normal,qr.get_vertex_normal],PE=[qr.face_count,qr.edge_count,qr.vertex_count]});var s4=new he,o4=new he,Cs=new S,Oo=new S,Ku=new S,Zv=new S,a4=new S,l4=new S;var Gi=new SE,Ro=class extends ht{constructor(t,A={}){super();this.objectForSample=void 0;this.object=t;let r=t.recursiveBBox.getSize(new S),i=.1;this.parameters=Mo.defaultData(r.toArray(),i),ll(this.parameters,A),this.update(),this.setHideBase(this.parameters.hideBase)}setHideBase(t){this.parameters.hideBase=t}update(){switch(this._updateCount(),this.parameters.type){case"radial":this._updateRadial(this.parameters);break;case"linear":this._updateLinear(this.parameters);break;case"grid":this._updateGrid(this.parameters);break;case"toObject":this._updateToObject(this.parameters)}this.parameters.type==="toObject"?this.objectForSample&&this.objectForSample.children.forEach(t=>t.updateMatrix()):this.children.forEach(t=>t.updateMatrix())}_updateCount(t){let A;if(t!==void 0?A=t:A=this.parameters.type==="grid"?this.parameters.grid.count[0]*this.parameters.grid.count[1]*this.parameters.grid.count[2]:this.parameters.count,this.parameters.type==="toObject"&&!this.parameters.toObject.object&&(A=0),this.parameters.type==="toObject"&&this.objectForSample){for(let i=0,s=this.children.length;i<s;++i)this.remove(this.children[0]);let r=[...this.objectForSample.children].filter(i=>i instanceof Yr&&i.uuidOrigin===this.object.uuid);if(r.length===A)return;if(r.length<A)for(let i=0,s=A-r.length;i<s;++i){let o=new Yr(this.object);o.visible=!0,this.objectForSample.add(o),this.parameters.hideBase&&this.setHideBase(!0)}else for(let i=0,s=r.length-A;i<s;++i)this.objectForSample.remove(r[i])}else{if(this.children.length===A)return;if(this.children.length<A)for(let r=0,i=A-this.children.length;r<i;++r){let s=new Yr(this.object);s.visible=!0,this.add(s),this.parameters.hideBase&&this.setHideBase(!0)}else for(let r=0,i=this.children.length-A;r<i;++r)this.remove(this.children[0])}}_updateRadial(t){let A=t.radial,r=A.start*ze.DEG2RAD,i=A.end*ze.DEG2RAD,s=r-i,o=new Yt(A.rotation[0],A.rotation[1],A.rotation[2]),a;switch(A.axis){case"z":a=new S(0,0,1);break;case"y":a=new S(0,1,0);break;default:case"x":a=new S(1,0,0);break}let c=t.randomnessObject,l=c.noiseType==="perlin";Gi.noiseSeed(c.seed);let u=Ep((0,Hl.default)(c.seed)),h=Zu(c.strength,this.parameters.randomness);for(let[d,p]of this.children.entries()){let f=d*(c.freqScale/10)+c.movement,m=l?Gi.noise(f):u(f,f);p.scale.x=A.scale[0]+h(d,tt(m,c.scale[0]))||un,p.scale.y=A.scale[1]+h(d,tt(m,c.scale[1]))||un,p.scale.z=A.scale[2]+h(d,tt(m,c.scale[2]))||un,p.position.setScalar(0);let y=s/t.count*d-r;switch(A.axis){case"x":p.rotation.set(0,y,0);break;case"y":p.rotation.set(0,0,y);break;case"z":p.rotation.set(y,0,0);break}p.translateOnAxis(a,A.radius),p.position.x+=A.position[0]+h(d,tt(m,c.position[0])),p.position.y+=A.position[1]+h(d,tt(m,c.position[1])),p.position.z+=A.position[2]+h(d,tt(m,c.position[2]));let g=h(d,tt(m,c.rotation[0])),b=h(d,tt(m,c.rotation[1])),x=h(d,tt(m,c.rotation[2]));A.alignment===!0?(p.rotation.x+=o.x+g,p.rotation.y+=o.y+b,p.rotation.z+=o.z+x):p.rotation.set(o.x+g,o.y+b,o.z+x)}}_updateLinear(t){if(t.type!=="linear")throw new Error;let A=t.linear,r=new Yt(A.rotation[0],A.rotation[1],A.rotation[2]),i=t.randomnessObject,s=i.noiseType==="perlin";Gi.noiseSeed(i.seed);let o=Ep((0,Hl.default)(i.seed)),a=Zu(i.strength,this.parameters.randomness);for(let[c,l]of this.children.entries()){let u=c*(i.freqScale/10)+i.movement,h=s?Gi.noise(u):o(u,u),d=a(c,tt(h,i.rotation[0])),p=a(c,tt(h,i.rotation[1])),f=a(c,tt(h,i.rotation[2]));l.scale.x=1+(A.scale[0]-1)*c+a(c,tt(h,i.scale[0]))||un,l.scale.y=1+(A.scale[1]-1)*c+a(c,tt(h,i.scale[1]))||un,l.scale.z=1+(A.scale[2]-1)*c+a(c,tt(h,i.scale[2]))||un,l.rotation.x=r.x*c+d,l.rotation.y=r.y*c+p,l.rotation.z=r.z*c+f,l.position.x=A.position[0]*c+a(c,tt(h,i.position[0])),l.position.y=A.position[1]*c+a(c,tt(h,i.position[1])),l.position.z=A.position[2]*c+a(c,tt(h,i.position[2]))}}_updateGrid(t){let A=0,r=t.grid,i=t.randomnessObject,s=Zu(i.strength,this.parameters.randomness),o=i.noiseType==="perlin";Gi.noiseSeed(i.seed);let a=iE((0,Hl.default)(i.seed));if(r.useCenter===!0){let c={x:r.count[0]%2===0?2:1,y:r.count[1]%2===0?2:1,z:r.count[2]%2===0?2:1},l=new S(r.size[0]*(r.count[0]-c.x)*.5,r.size[1]*(r.count[1]-c.y)*.5,r.size[2]*(r.count[2]-c.z)*.5);for(let u=0;u<r.count[0];u++)for(let h=0;h<r.count[1];h++)for(let d=0;d<r.count[2];d++){let p=[(u+1)*(i.freqScale/10)+i.movement,(h+1)*(i.freqScale/10)+i.movement,(d+1)*(i.freqScale/10)+i.movement],f=o?Gi.noise(...p):a(...p),m=this.children[A++];m.scale.x=1+s(A,tt(f,i.scale[0]))||un,m.scale.y=1+s(A,tt(f,i.scale[1]))||un,m.scale.z=1+s(A,tt(f,i.scale[2]))||un;let y=s(A,tt(f,i.rotation[0])),g=s(A,tt(f,i.rotation[1])),b=s(A,tt(f,i.rotation[2]));m.rotation.set(y,g,b),m.position.x=r.size[0]*u-l.x+s(A,tt(f,i.position[0])),m.position.y=r.size[1]*h-l.y+s(A,tt(f,i.position[1])),m.position.z=r.size[2]*d-l.z+s(A,tt(f,i.position[2]))}}else for(let c=0;c<r.count[0];c++)for(let l=0;l<r.count[1];l++)for(let u=0;u<r.count[2];u++){let h=[(c+1)*(i.freqScale/10)+i.movement,(l+1)*(i.freqScale/10)+i.movement,(u+1)*(i.freqScale/10)+i.movement],d=o?Gi.noise(...h):a(...h),p=this.children[A++];p.scale.x=1+s(A,tt(d,i.scale[0]))||un,p.scale.y=1+s(A,tt(d,i.scale[1]))||un,p.scale.z=1+s(A,tt(d,i.scale[2]))||un;let f=s(A,tt(d,i.rotation[0])),m=s(A,tt(d,i.rotation[1])),y=s(A,tt(d,i.rotation[2]));p.rotation.set(f,m,y),p.position.x=r.size[0]*c+s(A,tt(d,i.position[0])),p.position.y=-r.size[1]*l+s(A,tt(d,i.position[1])),p.position.z=-r.size[2]*u+s(A,tt(d,i.position[2]))}}_updateToObject(t){if(t.type!=="toObject")throw new Error;let{toObject:A}=t,r=new Yt(A.rotation[0],A.rotation[1],A.rotation[2]),i=t.randomnessObject,s=i.noiseType==="perlin";Gi.noiseSeed(i.seed);let o=Ep((0,Hl.default)(i.seed)),a=Zu(i.strength,this.parameters.randomness);if(!A.object){for(let[,y]of this.children.entries())y.position.set(0,0,0),y.scale.setScalar(1),y.rotation.set(0,0,0);this.objectForSample=void 0;return}if(!this.objectForSample)return;let c=this.getSubdivData(),l=[],u=y=>{let g=y.length,b=y.map(T=>T[0]).reduce((T,M)=>T+M,0),x=y.map(T=>T[1]).reduce((T,M)=>T+M,0),w=y.map(T=>T[2]).reduce((T,M)=>T+M,0);return[b/g,x/g,w/g]},h=y=>Math.round(y*1e6)/1e6;c.forEach(y=>{let g=c.filter(b=>h(y.pos[0])===h(b.pos[0])&&h(y.pos[1])===h(b.pos[1])&&h(y.pos[2])===h(b.pos[2]));g.length>1?l.push({pos:y.pos,norm:u(g.map(b=>b.norm))}):l.push(y)});let d=xE(l);if(c.length>0){let y=Math.round(d.length*A.count/100);this._updateCount(y)}this.objectForSample.updateMatrixWorld();let p=new Cp(this.objectForSample).build(),f=yE[A.axis],m=this.objectForSample.children.filter(y=>y instanceof Yr&&y.uuidOrigin===this.object.uuid);p.setRandomGenerator((0,Hl.default)(this.object.uuid+A.seed));for(let[y,g]of m.entries()){let b=y*(i.freqScale/10)+i.movement,x=s?Gi.noise(b):o(b,b),w=a(y,tt(x,i.rotation[0])),T=a(y,tt(x,i.rotation[1])),M=a(y,tt(x,i.rotation[2]));A.spreadType==="random"?p.sample(Ku,Zv):(d.length&&(Ku.fromArray(d[y].pos),Zv.fromArray(d[y].norm)),this.objectForSample.objectType==="SubdivObject"&&Ku.applyMatrix4(s4.copy(this.objectForSample.matrixWorld).invert())),Ku.applyMatrix4(this.object.hiddenMatrix.clone().invert()),g.position.copy(Ku),Cs.fromArray(f);let v=A.align==="normal"?Zv:this.object.getWorldDirection(l4),E=Oo.fromArray(A.position);Oo.x+=Oo.x+a(y,tt(x,i.position[0])),Oo.y+=Oo.y+a(y,tt(x,i.position[1])),Oo.z+=Oo.z+a(y,tt(x,i.position[2]));let C=Math.acos(v.dot(Cs)),P=a4.crossVectors(Cs,v).normalize(),D=o4.makeRotationAxis(P,C),_=v.clone().cross(this.object.up).normalize(),I=_.clone().cross(v).normalize(),B=new he().makeBasis(_,v,I),N=new S(Cs.y,Cs.z,Cs.x).normalize(),W=N.clone().cross(Cs).normalize(),X=new he().makeBasis(N,Cs,W).invert(),F=new he().multiplyMatrices(B,X);g.rotation.setFromRotationMatrix(F),E.applyMatrix4(D),g.position.add(E),g.rotation.x=g.rotation.x+r.x+w,g.rotation.y=g.rotation.y+r.y+T,g.rotation.z=g.rotation.z+r.z+M,g.scale.setScalar(1),g.scale.x=g.scale.x+A.scale[0]+a(y,tt(x,i.scale[0]))||un,g.scale.y=g.scale.y+A.scale[1]+a(y,tt(x,i.scale[1]))||un,g.scale.z=g.scale.z+A.scale[2]+a(y,tt(x,i.scale[2]))||un,g.scale.multiply(this.object.scale),g.hiddenMatrix=this.object.hiddenMatrix}}setObjectForSample(t){this.objectForSample=t}getSubdivData(){if(!this.objectForSample)return[];let t=this.parameters.toObject.spreadType;if(t==="random")return[];if(this.objectForSample.objectType==="SubdivObject"){let A=this.objectForSample,r=vE[t],i=PE[r],s=EE[r],o=CE[r],a=[],c=i(A.subdivPointer);for(let l=0;l<=c-1;l++){let u=s(A.subdivPointer,l),h=o(A.subdivPointer,l);TE.fromArray(u).applyMatrix4(A.matrixWorld),ME.fromArray(h),a.push({pos:TE.toArray(),norm:ME.toArray()})}return a}else return(this.objectForSample.geometry.index?bE(this.objectForSample.geometry):wE(this.objectForSample.geometry)).map((r,i)=>t==="polygon_center"?{pos:r.midpoint,norm:r.norm}:t==="vertex"?[{pos:r.vertices[0],norm:r.norm},{pos:r.vertices[1],norm:r.norm},{pos:r.vertices[2],norm:r.norm}]:t==="edge"?[{pos:r.faceCenters[0],norm:r.norm},{pos:r.faceCenters[1],norm:r.norm},{pos:r.faceCenters[2],norm:r.norm}]:[]).flat()}removeSampleObjectClones(){if(this.objectForSample)for(var t=this.objectForSample.children.length-1;t>=0;t--){let A=this.objectForSample.children[t];A instanceof Yr&&A.uuidOrigin===this.object.uuid&&this.objectForSample.remove(A)}}fromClonerState(t){if(!t)return this;t.hideBase!==void 0&&this.setHideBase(t.hideBase);let A=t.hasOwnProperty("type");return t.toObject?.hasOwnProperty("object")&&!!this.parameters.toObject.object&&!t.toObject.object&&(this.removeSampleObjectClones(),this.setObjectForSample(void 0)),this.parameters.type==="toObject"&&(A?t.type!=="toObject":!1)&&(this.removeSampleObjectClones(),this.setObjectForSample(void 0)),ll(this.parameters,t),this.update(),this}};var Xr=n=>{var e;return e=class extends n{constructor(){super(...arguments);this.isObjectHelper=!0}},e.geometryHelper=new fn(30,30,30),e};var Op=new dr,Kv=new DA,DE=new he,Qr=(n,e,t,A,r=!1)=>{let i=e,s=n.matrixWorld;if(i.boundingSphere===null&&i.computeBoundingSphere(),Kv.copy(i.boundingSphere),Kv.applyMatrix4(s),t.ray.intersectsSphere(Kv)===!1||(DE.copy(s).invert(),Op.copy(t.ray).applyMatrix4(DE),i.boundingBox!==null&&Op.intersectsBox(i.boundingBox)===!1))return;let o,a,c,l,u=i.index,h=i.attributes.position,d=i.drawRange,p,f;if(r===!1){let y=Math.max(0,d.start),g=Math.min(u.count,d.start+d.count);for(p=y,f=g;p<f;p+=3)if(a=u.getX(p),c=u.getX(p+1),l=u.getX(p+2),o=m(n,t,Op,h,a,c,l),o){o.faceIndex=Math.floor(p/3),A.push(o);return}}else{let g=i.attributes.position,b=new S,x=new S,w=new S,T=new S,M=2,E=1/((n.scale.x+n.scale.y+n.scale.z)/3),C=E*E,P=Math.max(0,d.start),D=Math.min(g.count,d.start+d.count);for(let _=P,I=D-1;_<I;_+=M){if(b.fromBufferAttribute(g,_),x.fromBufferAttribute(g,_+1),Op.distanceSqToSegment(b,x,T,w)>C)continue;T.applyMatrix4(n.matrixWorld);let N=t.ray.origin.distanceTo(T);N<t.near||N>t.far||A.push({distance:N,point:w.clone().applyMatrix4(n.matrixWorld),object:n})}}function m(y,g,b,x,w,T,M){let v=new S,E=new S,C=new S,P=new S,D=new S;if(v.fromBufferAttribute(x,w),E.fromBufferAttribute(x,T),C.fromBufferAttribute(x,M),b.intersectTriangle(v,E,C,!1,P)===null)return null;D.copy(P),D.applyMatrix4(y.matrixWorld);let I=g.ray.origin.distanceTo(D);return I<g.near||I>g.far?null:{faceIndex:1,distance:I,point:D.clone(),object:y}}};var Rp=new S,rr=new fr,Jv=class extends rs{constructor(t){let A=new Ie,r=new jn({color:16777215,vertexColors:!0,toneMapped:!1}),i=[],s=[],o={},a=new _e(15711266),c=new _e(15711266),l=new _e(2857471);u("n1","n2",a),u("n2","n4",a),u("n4","n3",a),u("n3","n1",a),u("f1","f2",a),u("f2","f4",a),u("f4","f3",a),u("f3","f1",a),u("n1","f1",a),u("n2","f2",a),u("n3","f3",a),u("n4","f4",a),u("p","n1",c),u("p","n2",c),u("p","n3",c),u("p","n4",c),u("u1","u2",l),u("u2","u3",l),u("u3","u1",l);function u(d,p,f){h(d,f),h(p,f)}function h(d,p){i.push(0,0,0),s.push(p.r,p.g,p.b),o[d]===void 0&&(o[d]=[]),o[d].push(i.length/3-1)}A.setAttribute("position",new Se(i,3)),A.setAttribute("color",new Se(s,3));super(A,r);this.type="CameraHelper",this.camera=t,this.camera.updateProjectionMatrix&&this.camera.updateProjectionMatrix(),this.matrix=t.matrixWorld,this.matrixAutoUpdate=!1,this.pointMap=o,this.update()}update(){let t=this.geometry,A=this.pointMap,r=!0;rr.projectionMatrixInverse.elements=[.5112609807824982,-0,-0,-0,-0,.41421356237309503,-0,-0,-0,-0,-0,-.099999,-0,-0,-1.0000000000000002,.100001];let i=1,s=1,o=r?.8:1e-4;xr("n1",A,t,rr,-i,-s,o),xr("n2",A,t,rr,i,-s,o),xr("n3",A,t,rr,-i,s,o),xr("n4",A,t,rr,i,s,o);let a=o;xr("f1",A,t,rr,-i,-s,a),xr("f2",A,t,rr,i,-s,a),xr("f3",A,t,rr,-i,s,a),xr("f4",A,t,rr,i,s,a);let c=a,l=.5;xr("u1",A,t,rr,i*.7*l,s*1.1,c),xr("u2",A,t,rr,-i*.7*l,s*1.1,c),xr("u3",A,t,rr,0,s*(1.1+.9*l),c),t.getAttribute("position").needsUpdate=!0}dispose(){this.geometry.dispose(),this.material.dispose()}};function xr(n,e,t,A,r,i,s){Rp.set(r,i,s).unproject(A);let o=e[n];if(o!==void 0){let a=t.getAttribute("position");for(let c=0,l=o.length;c<l;c++)a.setXYZ(o[c],Rp.x,Rp.y,Rp.z)}}var Bp=class extends Xr(Jv){constructor(t){super(t);this.object=t;this.object=t,this.name=`CombinedCameraHelper: ${t.uuid}`}updateMatrixWorld(t){super.updateMatrixWorld(t),this.updateTarget()}updateTarget(){let t=this.object.getTarget();this.updateWorldMatrix(!0,!1),this.worldToLocal(t)}raycast(t,A){Qr(this.object,this.geometry,t,A,!0)}};var Wl=class extends Xr(Zd){constructor(t,A=15,r=10066329){super(t,A,r);this.object=t;this.added=!1;this.name=`DirectionalLightHelper: ${t.uuid}`}raycast(t,A){Qr(this.object,Wl.geometryHelper,t,A)}};var jl=class extends Xr(Kd){constructor(t,A=15){super(A);this.object=t;this.object.updateMatrixWorld(),this.name=`EmptyObjectHelper: ${t.uuid}`,this.matrix=t.matrixWorld,this.matrixAutoUpdate=!1}raycast(t,A){Qr(this.object,jl.geometryHelper,t,A)}update(){}};var Yl=class extends Xr(Qd){constructor(t,A=15,r=6710886){super(t,A,r);this.object=t;this.name=`PointLightHelper: ${t.uuid}`}raycast(t,A){Qr(this.object,Yl.geometryHelper,t,A)}};var Np=class extends Xr(Xd){constructor(t,A=6710886){super(t,A);this.object=t;this.name=`SpotLightHelper: ${t.uuid}`}raycast(t,A){Qr(this.object,Np.geometryHelper,t,A)}update(){if(this.object!==void 0){let t=Np._vector,A=this.object.distance?this.object.distance:1e3,r=A*Math.tan(this.object.angle);this.cone.scale.set(r,r,A),t.setFromMatrixPosition(this.object.target.matrixWorld),this.cone.lookAt(t);let i=this.color!==void 0?this.color:this.light.color;if(this.cone.material instanceof Array)for(let s=0,o=this.cone.material.length;s<o;s++)this.cone.material[s].color.set(i);else this.cone.material.color.set(i)}}},Ju=Np;Ju._vector=new S;var $u=1e-12,ql=class{constructor(e){this.position=new G;this.startPosition=new G;this.uuid=ze.generateUUID();this.position=e.clone()}start(){this.reset()}reset(){this.startPosition.copy(this.position)}applyOffset(e){this.position.copy(this.startPosition).add(e)}copy(e){return this.position.copy(e.position),this.startPosition.copy(e.startPosition),this}clone(){return new ql(this.position).copy(this)}toJSON(){return[this.position.x,this.position.y]}},Xl=class extends ql{constructor(t){super(t.position);this.parent=t}copy(t){return super.copy(t),this}clone(){return new Xl(this.parent).copy(this)}},br=class extends ql{constructor(t,A){super(A);this.controls=[];this.roundness=0;this.areControlsDirectionsMirrored=!0;this.uuid=t,this.controls.push(new Xl(this),new Xl(this))}static create(t,A){let r=new br(t,new G(...A.position));return r.controls[0].position.set(...A.controlPrevious.position),r.controls[1].position.set(...A.controlNext.position),r.roundness=A.roundness,r.areControlsDirectionsMirrored=A.areControlsDirectionsMirrored,r}getOppositeControl(t){let A=this.controls.indexOf(t);return A===0?this.controls[1]:A===1?this.controls[0]:null}applyOffsetToControls(t,A=1){for(let r=0,i=this.controls.length;r<i;r++){let s=this.controls[r];this.position.distanceTo(s.position)<=A?s.position.copy(this.position):s.applyOffset(t)}}controlsMoved(){return!(this.position.equals(this.controls[0].position)&&this.position.equals(this.controls[1].position))}copy(t){return super.copy(t),this.controls[0].copy(t.controls[0]),this.controls[1].copy(t.controls[1]),this.roundness=t.roundness,this.uuid=t.uuid,this}clone(){return new br(this.uuid,this.position).copy(this)}toJSON(){return super.toJSON().concat(this.controls[0].toJSON(),this.controls[1].toJSON(),[this.roundness])}computeTangents(){let t=this.curveBefore?.getTangentAt(1),A=this.curveAfter?.getTangentAt(0);return[t,A]}computeNormals(t=new G,A=new G){let[r,i]=this.computeTangents();return r&&i&&(IE(r,t),IE(i,A)),[t,A]}computeTangent(t=new G){let[A,r]=this.computeTangents();return A&&r&&t.copy(A).add(r).normalize(),t}computeNormal(t=new G){let[A,r]=this.computeNormals();return t.copy(A).add(r).normalize(),t}};function IE(n,e=new G){let t=n.length();return e.set(-n.y/t,n.x/t)}var e0=n=>n,Ql=new G,Fp=new G,u4=new G,h4=new G,d4=new G,f4=new G,_E=new S,OE=new S;function RE(n){let e=new G;e.addVectors(n.v0,Ql.subVectors(n.v1,n.v0).multiplyScalar(2/3));let t=new G;return t.addVectors(n.v2,Fp.subVectors(n.v1,n.v2).multiplyScalar(2/3)),new qA(n.v0,e,t,n.v2)}function eh(n,e,t=Number.EPSILON){return Math.abs(n-e)<t}function p4(n,e,t=Number.EPSILON){return n.distanceTo(e)<t}function m4(n,e,t=Number.EPSILON){return n.distanceTo(e)<t}function t0(n,e,t){let A=Math.sqrt(Math.pow(e.x-n.x,2)+Math.pow(e.y-n.y,2)),r=Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2)),i=Math.sqrt(Math.pow(t.x-n.x,2)+Math.pow(t.y-n.y,2));return Math.acos((r*r+A*A-i*i)/(2*r*A))}function BE(n,e,t){return LE(n,e)&&LE(e,t)&&$v(n.position,e.position,t.position)}function $v(n,e,t){return Ql.copy(e).sub(n).cross(Fp.copy(t).sub(n))===0}function NE(n,e,t,A,r){let i=Math.sqrt(Math.pow(e.x-n.x,2)+Math.pow(e.y-n.y,2)),s=(n.y+e.y)/2,o=(n.x+e.x)/2,a=Math.sqrt(Math.pow(t,2)-Math.pow(i/2,2))*(n.y-e.y)/i,c=Math.sqrt(Math.pow(t,2)-Math.pow(i/2,2))*(e.x-n.x)/i;return A.set(o+a,s+c),r.set(o-a,s-c),[A,r]}function FE(n,e,t){let A=n.distanceTo(t),r=e.distanceTo(t);return A<r?e:n}function GE(n,e,t,A,r,i){let s=e.x-n.x,o=e.y-n.y,a=t.x-n.x,c=t.y-n.y,l=Math.sqrt((s+a)*(s+a)+(o+c)*(o+c)),u;return t0(e,n,t)>Math.PI&&(l*=-1),eh(c,o)?u=(o+c)*(A/l-.5)*8/3/(s-a):u=(s+a)*(A/l-.5)*8/3/(c-o),r.set(e.x-u*o,e.y+u*s),i.set(t.x+u*c,t.y-u*a),[r,i]}function A0(n,e){return n.position.equals(n.controls[1].position)&&e.position.equals(e.controls[0].position)}function LE(n,e){return $v(n.position,n.controls[1].position,e.position)&&$v(n.position,e.controls[0].position,e.position)}function kE(n,e,t,A,r=.5){let i=Ql.subVectors(e,n).multiplyScalar(r).add(n),s=Fp.subVectors(t,e).multiplyScalar(r).add(e),o=u4.subVectors(A,t).multiplyScalar(r).add(t),a=i,c=h4.subVectors(s,i).multiplyScalar(r).add(i),l=d4.subVectors(o,s).multiplyScalar(r).add(s),u=o,h=f4.subVectors(l,c).multiplyScalar(r).add(c);return[n.x,n.y,a.x,a.y,c.x,c.y,h.x,h.y,l.x,l.y,u.x,u.y,A.x,A.y]}function UE(n,e,t=12,A=!0){let r=OE.set(0,0,0),i,s=0,o=[];for(let a=0;a<e.length;a++){let c=e0(e[a]),l=Ql,u=Ps(c,t);o.push(u);for(let h=0;h<=u;h++)if(c instanceof qA||c instanceof _n||c instanceof XA){if(c.getPoint(h/u,l),r.set(l.x,l.y,0),i!==void 0&&m4(i,r))continue;i===void 0&&(i=_E),i.copy(r),n.setXYZ(s,r.x,r.y,r.z),s++}}return A&&s>1&&!(n.getX(s-1)===n.getX(0)&&n.getY(s-1)===n.getY(0)&&n.getZ(s-1)===n.getZ(0))&&(n.setXYZ(s,n.getX(0),n.getY(0),n.getZ(0)),s++),n}function VE(n,e,t,A=12,r=!0){let i=OE.set(0,0,0),s=0,o=[];for(let a=0;a<e.length;a++){if(t[a]===!1)continue;let c,l=e0(e[a]),u=Ql,h=Ps(l,A);o.push(h);for(let d=0;d<=h;d++)if(l instanceof qA||l instanceof _n||l instanceof XA){if(l.getPoint(d/h,u),i.set(u.x,u.y,0),c?.equals(i))continue;c===void 0?c=_E:(n.setXYZ(s,c.x,c.y,c.z),s++,n.setXYZ(s,i.x,i.y,i.z),s++),c.copy(i)}}return r&&s>1&&!(n.getX(s-1)===n.getX(0)&&n.getY(s-1)===n.getY(0)&&n.getZ(s-1)===n.getZ(0))&&(n.setXYZ(s,n.getX(0),n.getY(0),n.getZ(0)),s++),o}function n0(n,e=12,t=!1){let A=[];for(let r=0,i=n.length;r<i;r++){let s=n[r],o=0;if(t&&s.roundedCurveCorner!==void 0){let a=Ps(s.roundedCurveCorner,e)*.5;r>0&&(A[r-1]+=a),o+=a}s.curveAfter!==void 0&&(o+=Ps(s.curveAfter,e)),A.push(o)}return n.length>0&&t&&n[0].roundedCurveCorner!==void 0&&(A[n.length-1]+=Ps(n[0].roundedCurveCorner,e)*.5),A}function Ps(n,e=12){return n&&n instanceof oo?e*2:n&&(n instanceof XA||n instanceof iu)?1:n&&n instanceof xa?e*n.points.length:e}function zE(n,e,t=12,A=!0){let r,i=0;for(let s=0;s<e.length;s++){let o=e0(e[s]),a=Ps(o,t),c=Ql;for(let l=0;l<=a;l++)if(o instanceof qA||o instanceof _n||o instanceof XA){if(o.getPoint(l/a,c),r!==void 0&&p4(r,c,$u))continue;r===void 0&&(r=Fp),r.copy(c),n.push(c.x,c.y),i++}}return eh(n[0],n[n.length-2],$u)&&eh(n[1],n[n.length-1],$u)&&(n.pop(),n.pop()),A&&i>1&&!(eh(n[i-1],n[1],$u)&&eh(n[i-2],n[0],$u))&&(n.push(n[0],n[1]),i++),n}var r0=new G,g4=new G,y4=new G,v4=new G,x4=new G,b4=new G,yt=class extends Mi{constructor(t=100,A=100){super();this.points=[];this.shapeHoles=[];this.eventDispatcher=new Ot;this.plane=new yA(new S(0,0,-1));this.subdivision=0;this.controlSnapDistance=4;this.pointIDs=0;this.isMesh2D=!1;this._roundness=0;this.isClosed=!1;this.useCubicForRoundedCorners=!0;this.uuid=ze.generateUUID();this.needsUpdate=!1;this.roundedCurves=[];this._width=t,this._height=A}static createFromState(t,A,r){let i=new yt;return i.isClosed=t.isClosed,i.points=t.points.map(s=>br.create(s.id,s.data)),typeof t.roundness=="number"&&(i.roundness=t.roundness),i.shapeHoles=t.shapeHoles.map(s=>yt.createFromState(s)),A!==void 0&&r!==void 0&&i.applySize(A,r),i.update(),i}get width(){return this._width}get height(){return this._height}get roundness(){return this._roundness}set roundness(t){if(this._roundness!==t){this._roundness=t;for(let A=0,r=this.points.length;A<r;A++)this.points[A].roundness=t;this.needsUpdate=!0}}getPointsIndexesByIds(t){return t.map(A=>this.getPointIndexById(A)).filter(A=>A>=0)}getPointIndexById(t){let A=this.points.length,r=this.points.findIndex(i=>i.uuid===t);if(r<0){let i=A;for(let s=0,o=this.shapeHoles.length;s<o;s++){let a=this.shapeHoles[s],c=a.points.length,l=a.getPointIndexById(t);if(l<0)i+=c;else return l+i}}return r}getLineIndexById(t){return this.getPointIndexById(t)}getBezierPoint(t){if(t<=this.points.length-1)return this.points[t];if(this.shapeHoles.length>0){let A=this.points.length;for(let r=0,i=this.shapeHoles.length;r<i;r++){let s=this.shapeHoles[r],o=t-A;if(o<=s.points.length-1)return s.points[o];A+=s.points.length}}throw new Error("This shape does not have a point for this index: "+t)}getBezierPointIndex(t){let A=this.points.indexOf(t);if(A>=0)return A;if(A=this.points.length,this.shapeHoles.length>0)for(let r=0,i=this.shapeHoles.length;r<i;r++){let s=this.shapeHoles[r],o=s.points.indexOf(t);if(o>=0)return A+o;A+=s.points.length}return-1}getAllPoints(){let t=[].concat(...this.shapeHoles.map(A=>A.points));return[...this.points,...t]}applySize(t,A){t===0&&(t=.001),A===0&&(A=.001),this._width=t,this._height=A}applyScale(t,A){let r=r0.set(t,A);for(let i=0,s=this.points.length;i<s;i++){let o=this.points[i];o.position.multiply(r),o.controls[0].position.multiply(r),o.controls[1].position.multiply(r)}for(let i=0,s=this.shapeHoles.length;i<s;i++)this.shapeHoles[i].applyScale(t,A);this._update(!1)}createPoint(t,A=0,r=ze.generateUUID()){let i;t instanceof G?i=t:i=new G(t,A);let s=new br(r,i);return s.roundness=this.roundness,s}addPoint(t){this.points.push(t),this.needsUpdate=!0}addPointAt(t,A){this.points.splice(A,0,t),this.needsUpdate=!0}getPointByUuid(t){for(let A=0,r=this.points.length;A<r;A++){let i=this.points[A];if(i.uuid===t)return i}for(let A=0,r=this.shapeHoles.length;A<r;A++){let s=this.shapeHoles[A].getPointByUuid(t);if(s)return s}}getFirstPoint(){return this.points[0]}getLastPoint(){return this.points[this.points.length-1]}removePoint(t){let A=this.points.indexOf(t);A>=0&&this.points.splice(A,1),this.needsUpdate=!0}removePointById(t){let A=this.points.find(r=>r.uuid===t);A&&this.removePoint(A)}update(t=!0){for(let A=0,r=this.shapeHoles.length;A<r;A++)this.shapeHoles[A].update(!1);this._update(t)}extractShapePointsToBuffer(t,A=12,r=!1){this.subdivision=A,this.curveDivisions===void 0&&this.computeCurveDivisions(A);let i=r?this.roundedCurveDivisions:this.curveDivisions;return UE(t,r?this.roundedCurves:this.curves,A,this.autoClose),i.reduce((s,o)=>s+o,0)+1}computeCurveDivisions(t=12){return this.curveDivisions=n0(this.points,t,!1),this.roundedCurveDivisions=n0(this.points,t,!0),this.curveDivisions}extractFilteredShapePointsToBuffer(t,A,r=12){return VE(t,this.curves,A,r,this.autoClose).reduce((s,o)=>s+o,0)*2}extractShapePointsToFlatArray(t,A=12){return this.subdivision=A,this.curveDivisions===void 0&&this.computeCurveDivisions(A),zE(t,this.roundedCurves,A,this.autoClose)}getCurveIndexFromVertexId(t,A=!1){let r=0;this.curveDivisions===void 0&&this.computeCurveDivisions(this.subdivision);let i=A?this.roundedCurveDivisions:this.curveDivisions,s=0;A&&this.points[0].roundedCurveCorner!==void 0&&(s=Ps(this.points[0].roundedCurveCorner,this.subdivision)*.5);let o=t-s;o<0&&(o+=i.reduce((a,c)=>a+c,0));for(let a=0,c=i.length;a<c;a++){let l=i[a];if(o<r+l)return[a,(o-r+1)/l];r+=l}return[0,1]}getCurveT(t,A,r){let i=this.points[t],s=this.points[t>=this.points.length-1?0:t+1],o=this.curveDivisions,a=o[t];if(A0(i,s)){let u=i.position.distanceTo(s.position);return i.position.distanceTo(r0.set(r.x,r.y))/u}let c=0;for(let u=0;u<t;u++)c+=o[u];return(A-c)/a}dispose(){this.eventDispatcher=null}_applyCurveForPoint(t,A){A0(A,t)?this.lineTo(t.position.x,t.position.y):this.bezierCurveTo(A.controls[1].position.x,A.controls[1].position.y,t.controls[0].position.x,t.controls[0].position.y,t.position.x,t.position.y);let r=this.curves[this.curves.length-1];t.curveBefore=r,A.curveAfter=r;let i=r.clone();t.roundedCurveBefore=i,A.roundedCurveAfter=i,t.roundedCurveCorner=void 0,this.roundedCurves.push(i)}_update(t=!0){if(this.curves=[],this.roundedCurves=[],!this.points.length)return;for(let r=0,i=this.points.length;r<i;r++){let s=this.points[r];if(r===0)this.moveTo(s.position.x,s.position.y);else{let o=this.points[r-1];this._applyCurveForPoint(s,o)}}let A=this.getLastPoint();if(A?.curveAfter&&(A.curveAfter=void 0),this.isClosed){let r=this.points[0],i=this.points[this.points.length-1];this._applyCurveForPoint(r,i)}if(this.points.length>2){let r=0;for(let i=0,s=this.points.length;i<s;i++){let o=this.points[i],a=this.points[i-1]??this.points[this.points.length-1],c=this.points[i+1]??this.points[0],l=o.roundness,u=a&&c&&BE(a,o,c);if(!o.controlsMoved()&&l>0&&!u){let h=o.curveBefore,d=o.curveAfter;if(h===void 0||d===void 0)continue;let p=o.roundedCurveBefore,f=o.roundedCurveAfter,m=h.getLength(),y=d.getLength(),g=Math.min(l,m*.499),b=Math.min(l,y*.499),x=Math.min(g,b),w=1-x/m,T=x/y,M=h.getPointAt(w,r0),v=d.getPointAt(T,g4);this._subSplitCurve(h,p,w,M,void 0),this._subSplitCurve(d,f,T,void 0,v);let E;if(this.useCubicForRoundedCorners){let C=t0(M,o.position,v)/2,P=Math.tan(C)*M.distanceTo(o.position),[D,_]=NE(M,v,P,y4,v4),I=FE(D,_,o.position),[B,N]=GE(I,M,v,P,x4,b4);E=new qA(M.clone(),B.clone(),N.clone(),v.clone())}else E=new _n(M.clone(),o.position.clone(),v.clone());o.roundedCurveCorner=E,this.roundedCurves.splice(i+r,0,E),r++}}}t&&this.eventDispatcher?.dispatchEvent({type:"update"})}_subSplitCurve(t,A,r,i,s){if(t instanceof XA)i!==void 0&&A.v2.copy(i),s!==void 0&&A.v1.copy(s);else{let o=t,a=A,c=o.getUtoTmapping(r,0),l=kE(o.v0,o.v1,o.v2,o.v3,c);return i!==void 0&&(a.v0.set(l[0],l[1]),a.v1.set(l[2],l[3]),a.v2.set(l[4],l[5]),a.v3.set(l[6],l[7])),s!==void 0&&(a.v0.set(l[6],l[7]),a.v1.set(l[8],l[9]),a.v2.set(l[10],l[11]),a.v3.set(l[12],l[13])),a}return A}clone(){let t=new yt(this._width,this._height);return t.points=this.points.map(A=>A.clone()),t.isClosed=this.isClosed,t.roundness=this.roundness,t.isMesh2D=this.isMesh2D,t.shapeHoles=this.shapeHoles.map(A=>A.clone()),t}toJSON(){return{points:this.points.reduce((t,A)=>t.concat(A.toJSON()),[]),shapeHoles:this.shapeHoles.map(t=>t.toJSON()),isClosed:this.isClosed,roundness:this.roundness}}fromJSON(t){this.points=[],this.pointIDs=0;let A=t.points.length/7;for(let r=0;r<A;r++){let i=r*7,s=t.points[i+0],o=t.points[i+1],a=t.points[i+2],c=t.points[i+3],l=t.points[i+4],u=t.points[i+5],h=t.points[i+6],d=new br(ze.generateUUID(),new G(s,o));d.controls[0].position.set(a,c),d.controls[1].position.set(l,u),d.roundness=h,this.points.push(d)}return this.shapeHoles=t.shapeHoles?.length?t.shapeHoles.map(r=>{let i=new yt;return i.fromJSON(r),i}):[],this.isClosed=t.isClosed,this._roundness=t.roundness,this._update(),this}fromShape(t){let A=(i,s)=>{s instanceof qA&&s.v3.equals(i.position)&&i.controls[0].position.copy(s.v2)},r=i=>{let s=[],o,a;for(o=0,a=i.length;o<a;o++)i[o]instanceof _n&&(i[o]=RE(i[o]));for(o=0,a=i.length;o<a;o++){let u=i[o],h=o>0?i[o-1]:null,d;u instanceof qA?(d=this.createPoint(u.v0),d.controls[1].position.copy(u.v1)):u instanceof XA&&(d=this.createPoint(u.v1)),d!==void 0&&(h!==null&&A(d,h),s.push(d))}let c=i[i.length-1],l=!1;return c instanceof qA?c.v3.equals(s[0].position)&&(s[0].controls[0].position.copy(c.v2),l=!0):c instanceof XA&&c.v2.equals(s[0].position)&&(l=!0),this.isClosed=l,s};return this.points=r(t.curves),t instanceof Mi&&(this.shapeHoles=t.holes.map(i=>{let s=new yt;return s.fromShape(i),s})),this.update(),this}};var _t;(function(n){n[n.ODD=0]="ODD",n[n.NONZERO=1]="NONZERO",n[n.POSITIVE=2]="POSITIVE",n[n.NEGATIVE=3]="NEGATIVE",n[n.ABS_GEQ_TWO=4]="ABS_GEQ_TWO"})(_t||(_t={}));var SA;(function(n){n[n.POLYGONS=0]="POLYGONS",n[n.CONNECTED_POLYGONS=1]="CONNECTED_POLYGONS",n[n.BOUNDARY_CONTOURS=2]="BOUNDARY_CONTOURS"})(SA||(SA={}));function We(n,e){if(!n)throw e||"Assertion Failed!"}var ke=function(){function n(){}return n.vertEq=function(e,t){return e.s===t.s&&e.t===t.t},n.vertLeq=function(e,t){return e.s<t.s||e.s===t.s&&e.t<=t.t},n.transLeq=function(e,t){return e.t<t.t||e.t===t.t&&e.s<=t.s},n.edgeGoesLeft=function(e){return n.vertLeq(e.Dst,e.Org)},n.edgeGoesRight=function(e){return n.vertLeq(e.Org,e.Dst)},n.vertL1dist=function(e,t){return Math.abs(e.s-t.s)+Math.abs(e.t-t.t)},n.edgeEval=function(e,t,A){We(n.vertLeq(e,t)&&n.vertLeq(t,A));var r=t.s-e.s,i=A.s-t.s;return r+i>0?r<i?t.t-e.t+(e.t-A.t)*(r/(r+i)):t.t-A.t+(A.t-e.t)*(i/(r+i)):0},n.edgeSign=function(e,t,A){We(n.vertLeq(e,t)&&n.vertLeq(t,A));var r=t.s-e.s,i=A.s-t.s;return r+i>0?(t.t-A.t)*r+(t.t-e.t)*i:0},n.transEval=function(e,t,A){We(n.transLeq(e,t)&&n.transLeq(t,A));var r=t.t-e.t,i=A.t-t.t;return r+i>0?r<i?t.s-e.s+(e.s-A.s)*(r/(r+i)):t.s-A.s+(A.s-e.s)*(i/(r+i)):0},n.transSign=function(e,t,A){We(n.transLeq(e,t)&&n.transLeq(t,A));var r=t.t-e.t,i=A.t-t.t;return r+i>0?(t.s-A.s)*r+(t.s-e.s)*i:0},n.vertCCW=function(e,t,A){return e.s*(t.t-A.t)+t.s*(A.t-e.t)+A.s*(e.t-t.t)>=0},n.interpolate=function(e,t,A,r){return e=e<0?0:e,A=A<0?0:A,e<=A?A===0?(t+r)/2:t+(r-t)*(e/(e+A)):r+(t-r)*(A/(e+A))},n.intersect=function(e,t,A,r,i){var s,o,a;n.vertLeq(e,t)||(a=e,e=t,t=a),n.vertLeq(A,r)||(a=A,A=r,r=a),n.vertLeq(e,A)||(a=e,e=A,A=a,a=t,t=r,r=a),n.vertLeq(A,t)?n.vertLeq(t,r)?(s=n.edgeEval(e,A,t),o=n.edgeEval(A,t,r),s+o<0&&(s=-s,o=-o),i.s=n.interpolate(s,A.s,o,t.s)):(s=n.edgeSign(e,A,t),o=-n.edgeSign(e,r,t),s+o<0&&(s=-s,o=-o),i.s=n.interpolate(s,A.s,o,r.s)):i.s=(A.s+t.s)/2,n.transLeq(e,t)||(a=e,e=t,t=a),n.transLeq(A,r)||(a=A,A=r,r=a),n.transLeq(e,A)||(a=e,e=A,A=a,a=t,t=r,r=a),n.transLeq(A,t)?n.transLeq(t,r)?(s=n.transEval(e,A,t),o=n.transEval(A,t,r),s+o<0&&(s=-s,o=-o),i.t=n.interpolate(s,A.t,o,t.t)):(s=n.transSign(e,A,t),o=-n.transSign(e,r,t),s+o<0&&(s=-s,o=-o),i.t=n.interpolate(s,A.t,o,r.t)):i.t=(A.t+t.t)/2},n}(),th=function(){function n(){this.next=null,this.prev=null,this.anEdge=null,this.trail=null,this.n=0,this.marked=!1,this.inside=!1}return n}(),Gp=function(){function n(e){this.side=e,this.next=null,this.Org=null,this.Sym=null,this.Onext=null,this.Lnext=null,this.Lface=null,this.activeRegion=null,this.winding=0}return Object.defineProperty(n.prototype,"Rface",{get:function(){return this.Sym.Lface},set:function(e){this.Sym.Lface=e},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"Dst",{get:function(){return this.Sym.Org},set:function(e){this.Sym.Org=e},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"Oprev",{get:function(){return this.Sym.Lnext},set:function(e){this.Sym.Lnext=e},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"Lprev",{get:function(){return this.Onext.Sym},set:function(e){this.Onext.Sym=e},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"Dprev",{get:function(){return this.Lnext.Sym},set:function(e){this.Lnext.Sym=e},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"Rprev",{get:function(){return this.Sym.Onext},set:function(e){this.Sym.Onext=e},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"Dnext",{get:function(){return this.Sym.Onext.Sym},set:function(e){this.Sym.Onext.Sym=e},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"Rnext",{get:function(){return this.Sym.Lnext.Sym},set:function(e){this.Sym.Lnext.Sym=e},enumerable:!0,configurable:!0}),n}(),Zl=function(){function n(){this.next=null,this.prev=null,this.anEdge=null,this.coords=[0,0,0],this.s=0,this.t=0,this.pqHandle=0,this.n=0,this.idx=0}return n}(),HE=function(){function n(){var e=new Zl,t=new th,A=new Gp(0),r=new Gp(1);e.next=e.prev=e,e.anEdge=null,t.next=t.prev=t,A.next=A,A.Sym=r,r.next=r,r.Sym=A,this.vHead=e,this.fHead=t,this.eHead=A,this.eHeadSym=r}return n.prototype.makeEdge_=function(e){var t=new Gp(0),A=new Gp(1);e.Sym.side<e.side&&(e=e.Sym);var r=e.Sym.next;return A.next=r,r.Sym.next=t,t.next=e,e.Sym.next=A,t.Sym=A,t.Onext=t,t.Lnext=A,t.Org=null,t.Lface=null,t.winding=0,t.activeRegion=null,A.Sym=t,A.Onext=A,A.Lnext=t,A.Org=null,A.Lface=null,A.winding=0,A.activeRegion=null,t},n.prototype.splice_=function(e,t){var A=e.Onext,r=t.Onext;A.Sym.Lnext=t,r.Sym.Lnext=e,e.Onext=r,t.Onext=A},n.prototype.makeVertex_=function(e,t,A){var r=e;We(r,"Vertex can't be null!");var i=A.prev;r.prev=i,i.next=r,r.next=A,A.prev=r,r.anEdge=t;var s=t;do s.Org=r,s=s.Onext;while(s!==t)},n.prototype.makeFace_=function(e,t,A){var r=e;We(r,"Face can't be null");var i=A.prev;r.prev=i,i.next=r,r.next=A,A.prev=r,r.anEdge=t,r.trail=null,r.marked=!1,r.inside=A.inside;var s=t;do s.Lface=r,s=s.Lnext;while(s!==t)},n.prototype.killEdge_=function(e){e.Sym.side<e.side&&(e=e.Sym);var t=e.next,A=e.Sym.next;t.Sym.next=A,A.Sym.next=t},n.prototype.killVertex_=function(e,t){var A=e.anEdge,r=A;do r.Org=t,r=r.Onext;while(r!==A);var i=e.prev,s=e.next;s.prev=i,i.next=s},n.prototype.killFace_=function(e,t){var A=e.anEdge,r=A;do r.Lface=t,r=r.Lnext;while(r!==A);var i=e.prev,s=e.next;s.prev=i,i.next=s},n.prototype.makeEdge=function(){var e=new Zl,t=new Zl,A=new th,r=this.makeEdge_(this.eHead);return this.makeVertex_(e,r,this.vHead),this.makeVertex_(t,r.Sym,this.vHead),this.makeFace_(A,r,this.fHead),r},n.prototype.splice=function(e,t){var A=!1,r=!1;if(e!==t){if(t.Org!==e.Org&&(r=!0,this.killVertex_(t.Org,e.Org)),t.Lface!==e.Lface&&(A=!0,this.killFace_(t.Lface,e.Lface)),this.splice_(t,e),!r){var i=new Zl;this.makeVertex_(i,t,e.Org),e.Org.anEdge=e}if(!A){var s=new th;this.makeFace_(s,t,e.Lface),e.Lface.anEdge=e}}},n.prototype.delete=function(e){var t=e.Sym,A=!1;if(e.Lface!==e.Rface&&(A=!0,this.killFace_(e.Lface,e.Rface)),e.Onext===e)this.killVertex_(e.Org,null);else if(e.Rface.anEdge=e.Oprev,e.Org.anEdge=e.Onext,this.splice_(e,e.Oprev),!A){var r=new th;this.makeFace_(r,e,e.Lface)}t.Onext===t?(this.killVertex_(t.Org,null),this.killFace_(t.Lface,null)):(e.Lface.anEdge=t.Oprev,t.Org.anEdge=t.Onext,this.splice_(t,t.Oprev)),this.killEdge_(e)},n.prototype.addEdgeVertex=function(e){var t=this.makeEdge_(e),A=t.Sym;this.splice_(t,e.Lnext),t.Org=e.Dst;var r=new Zl;return this.makeVertex_(r,A,t.Org),t.Lface=A.Lface=e.Lface,t},n.prototype.splitEdge=function(e){var t=this.addEdgeVertex(e),A=t.Sym;return this.splice_(e.Sym,e.Sym.Oprev),this.splice_(e.Sym,A),e.Dst=A.Org,A.Dst.anEdge=A.Sym,A.Rface=e.Rface,A.winding=e.winding,A.Sym.winding=e.Sym.winding,A.idx=e.idx,A.Sym.idx=e.Sym.idx,A},n.prototype.connect=function(e,t){var A=!1,r=this.makeEdge_(e),i=r.Sym;if(t.Lface!==e.Lface&&(A=!0,this.killFace_(t.Lface,e.Lface)),this.splice_(r,e.Lnext),this.splice_(i,t),r.Org=e.Dst,i.Org=t.Org,r.Lface=i.Lface=e.Lface,e.Lface.anEdge=i,!A){var s=new th;this.makeFace_(s,r,e.Lface)}return r},n.prototype.zapFace=function(e){var t=e.anEdge,A,r,i,s,o;r=t.Lnext;do A=r,r=A.Lnext,A.Lface=null,A.Rface===null&&(A.Onext===A?this.killVertex_(A.Org,null):(A.Org.anEdge=A.Onext,this.splice_(A,A.Oprev)),i=A.Sym,i.Onext===i?this.killVertex_(i.Org,null):(i.Org.anEdge=i.Onext,this.splice_(i,i.Oprev)),this.killEdge_(A));while(A!=t);s=e.prev,o=e.next,o.prev=s,s.next=o},n.prototype.countFaceVerts_=function(e){var t=e.anEdge,A=0;do A++,t=t.Lnext;while(t!==e.anEdge);return A},n.prototype.mergeConvexFaces=function(e){var t,A,r,i,s,o,a;for(t=this.fHead.next;t!==this.fHead;t=t.next)if(!!t.inside)for(A=t.anEdge,s=A.Org;r=A.Lnext,i=A.Sym,i&&i.Lface&&i.Lface.inside&&(o=this.countFaceVerts_(t),a=this.countFaceVerts_(i.Lface),o+a-2<=e&&ke.vertCCW(A.Lprev.Org,A.Org,i.Lnext.Lnext.Org)&&ke.vertCCW(i.Lprev.Org,i.Org,A.Lnext.Lnext.Org)&&(r=i.Lnext,this.delete(i),A=null,i=null)),!(A&&A.Lnext.Org===s);)A=r;return!0},n.prototype.check=function(){var e=this.fHead,t=this.vHead,A=this.eHead,r,i,s,o,a,c;for(i=e,i=e;(r=i.next)!==e;i=r){We(r.prev===i),a=r.anEdge;do We(a.Sym!==a),We(a.Sym.Sym===a),We(a.Lnext.Onext.Sym===a),We(a.Onext.Sym.Lnext===a),We(a.Lface===r),a=a.Lnext;while(a!==r.anEdge)}for(We(r.prev===i&&r.anEdge===null),o=t,o=t;(s=o.next)!==t;o=s){We(s.prev===o),a=s.anEdge;do We(a.Sym!==a),We(a.Sym.Sym===a),We(a.Lnext.Onext.Sym===a),We(a.Onext.Sym.Lnext===a),We(a.Org===s),a=a.Onext;while(a!==s.anEdge)}for(We(s.prev===o&&s.anEdge===null),c=A,c=A;(a=c.next)!==A;c=a)We(a.Sym.next===c.Sym),We(a.Sym!==a),We(a.Sym.Sym===a),We(a.Org!==null),We(a.Dst!==null),We(a.Lnext.Onext.Sym===a),We(a.Onext.Sym.Lnext===a);We(a.Sym.next===c.Sym&&a.Sym===this.eHeadSym&&a.Sym.Sym===a&&a.Org===null&&a.Dst===null&&a.Lface===null&&a.Rface===null)},n}(),WE=function(){function n(){this.handle=null}return n}(),jE=function(){function n(){this.key=null,this.node=0}return n}(),w4=function(){function n(e,t){this.leq=t,this.max=0,this.nodes=[],this.handles=[],this.initialized=!1,this.freeList=0,this.size=0,this.max=e,this.nodes=[],this.handles=[];for(var A=0;A<e+1;A++)this.nodes[A]=new WE,this.handles[A]=new jE;this.initialized=!1,this.nodes[1].handle=1,this.handles[1].key=null}return n.prototype.floatDown_=function(e){var t=this.nodes,A=this.handles,r,i,s;for(r=t[e].handle;;){if(s=e<<1,s<this.size&&this.leq(A[t[s+1].handle].key,A[t[s].handle].key)&&++s,We(s<=this.max),i=t[s].handle,s>this.size||this.leq(A[r].key,A[i].key)){t[e].handle=r,A[r].node=e;break}t[e].handle=i,A[i].node=e,e=s}},n.prototype.floatUp_=function(e){var t=this.nodes,A=this.handles,r,i,s;for(r=t[e].handle;;){if(s=e>>1,i=t[s].handle,s===0||this.leq(A[i].key,A[r].key)){t[e].handle=r,A[r].node=e;break}t[e].handle=i,A[i].node=e,e=s}},n.prototype.init=function(){for(var e=this.size;e>=1;--e)this.floatDown_(e);this.initialized=!0},n.prototype.min=function(){return this.handles[this.nodes[1].handle].key},n.prototype.insert=function(e){var t,A;if(t=++this.size,t*2>this.max){this.max*=2;var r,i;for(i=this.nodes.length,this.nodes.length=this.max+1,r=i;r<this.nodes.length;r++)this.nodes[r]=new WE;for(i=this.handles.length,this.handles.length=this.max+1,r=i;r<this.handles.length;r++)this.handles[r]=new jE}return this.freeList===0?A=t:(A=this.freeList,this.freeList=this.handles[A].node),this.nodes[t].handle=A,this.handles[A].node=t,this.handles[A].key=e,this.initialized&&this.floatUp_(t),A},n.prototype.extractMin=function(){var e=this.nodes,t=this.handles,A=e[1].handle,r=t[A].key;return this.size>0&&(e[1].handle=e[this.size].handle,t[e[1].handle].node=1,t[A].key=null,t[A].node=this.freeList,this.freeList=A,--this.size,this.size>0&&this.floatDown_(1)),r},n.prototype.delete=function(e){var t=this.nodes,A=this.handles,r;We(e>=1&&e<=this.max&&A[e].key!==null),r=A[e].node,t[r].handle=t[this.size].handle,A[t[r].handle].node=r,--this.size,r<=this.size&&(r<=1||this.leq(A[t[r>>1].handle].key,A[t[r].handle].key)?this.floatDown_(r):this.floatUp_(r)),A[e].key=null,A[e].node=this.freeList,this.freeList=e},n}(),i0=function(){function n(){this.eUp=null,this.nodeUp=null,this.windingNumber=0,this.inside=!1,this.sentinel=!1,this.dirty=!1,this.fixUpperEdge=!1}return n}(),YE=function(){function n(){this.key=null,this.next=null,this.prev=null}return n}(),S4=function(){function n(e,t){this.frame=e,this.leq=t,this.head=new YE,this.head.next=this.head,this.head.prev=this.head}return n.prototype.min=function(){return this.head.next},n.prototype.max=function(){return this.head.prev},n.prototype.insert=function(e){return this.insertBefore(this.head,e)},n.prototype.search=function(e){var t=this.head;do t=t.next;while(t.key!==null&&!this.leq(this.frame,e,t.key));return t},n.prototype.insertBefore=function(e,t){do e=e.prev;while(e.key!==null&&!this.leq(this.frame,e.key,t));var A=new YE;return A.key=t,A.next=e.next,e.next.prev=A,A.prev=e,e.next=A,A},n.prototype.delete=function(e){e.next.prev=e.prev,e.prev.next=e.next},n}(),T4=function(){function n(){}return n.regionBelow=function(e){return e.nodeUp.prev.key},n.regionAbove=function(e){return e.nodeUp.next.key},n.debugEvent=function(e){},n.addWinding=function(e,t){e.winding+=t.winding,e.Sym.winding+=t.Sym.winding},n.edgeLeq=function(e,t,A){var r=e.event,i=t.eUp,s=A.eUp;if(i.Dst===r)return s.Dst===r?ke.vertLeq(i.Org,s.Org)?ke.edgeSign(s.Dst,i.Org,s.Org)<=0:ke.edgeSign(i.Dst,s.Org,i.Org)>=0:ke.edgeSign(s.Dst,r,s.Org)<=0;if(s.Dst===r)return ke.edgeSign(i.Dst,r,i.Org)>=0;var o=ke.edgeEval(i.Dst,r,i.Org),a=ke.edgeEval(s.Dst,r,s.Org);return o>=a},n.deleteRegion=function(e,t){t.fixUpperEdge&&We(t.eUp.winding===0),t.eUp.activeRegion=null,e.dict.delete(t.nodeUp)},n.fixUpperEdge=function(e,t,A){We(t.fixUpperEdge),e.mesh.delete(t.eUp),t.fixUpperEdge=!1,t.eUp=A,A.activeRegion=t},n.topLeftRegion=function(e,t){var A=t.eUp.Org,r;do t=n.regionAbove(t);while(t.eUp.Org===A);if(t.fixUpperEdge){if(r=e.mesh.connect(n.regionBelow(t).eUp.Sym,t.eUp.Lnext),r===null)return null;n.fixUpperEdge(e,t,r),t=n.regionAbove(t)}return t},n.topRightRegion=function(e){var t=e.eUp.Dst;do e=n.regionAbove(e);while(e.eUp.Dst===t);return e},n.addRegionBelow=function(e,t,A){var r=new i0;return r.eUp=A,r.nodeUp=e.dict.insertBefore(t.nodeUp,r),r.fixUpperEdge=!1,r.sentinel=!1,r.dirty=!1,A.activeRegion=r,r},n.isWindingInside=function(e,t){switch(e.windingRule){case _t.ODD:return(t&1)!==0;case _t.NONZERO:return t!==0;case _t.POSITIVE:return t>0;case _t.NEGATIVE:return t<0;case _t.ABS_GEQ_TWO:return t>=2||t<=-2}throw new Error("Invalid winding rulle")},n.computeWinding=function(e,t){t.windingNumber=n.regionAbove(t).windingNumber+t.eUp.winding,t.inside=n.isWindingInside(e,t.windingNumber)},n.finishRegion=function(e,t){var A=t.eUp,r=A.Lface;r.inside=t.inside,r.anEdge=A,n.deleteRegion(e,t)},n.finishLeftRegions=function(e,t,A){for(var r,i=null,s=t,o=t.eUp;s!==A;){if(s.fixUpperEdge=!1,i=n.regionBelow(s),r=i.eUp,r.Org!=o.Org){if(!i.fixUpperEdge){n.finishRegion(e,s);break}r=e.mesh.connect(o.Lprev,r.Sym),n.fixUpperEdge(e,i,r)}o.Onext!==r&&(e.mesh.splice(r.Oprev,r),e.mesh.splice(o,r)),n.finishRegion(e,s),o=i.eUp,s=i}return o},n.addRightEdges=function(e,t,A,r,i,s){var o,a,c,l,u=!0;c=A;do We(ke.vertLeq(c.Org,c.Dst)),n.addRegionBelow(e,t,c.Sym),c=c.Onext;while(c!==r);for(i===null&&(i=n.regionBelow(t).eUp.Rprev),a=t,l=i;o=n.regionBelow(a),c=o.eUp.Sym,c.Org===l.Org;)c.Onext!==l&&(e.mesh.splice(c.Oprev,c),e.mesh.splice(l.Oprev,c)),o.windingNumber=a.windingNumber-c.winding,o.inside=n.isWindingInside(e,o.windingNumber),a.dirty=!0,!u&&n.checkForRightSplice(e,a)&&(n.addWinding(c,l),n.deleteRegion(e,a),e.mesh.delete(l)),u=!1,a=o,l=c;a.dirty=!0,We(a.windingNumber-c.winding===o.windingNumber),s&&n.walkDirtyRegions(e,a)},n.spliceMergeVertices=function(e,t,A){e.mesh.splice(t,A)},n.vertexWeights=function(e,t,A){var r=ke.vertL1dist(t,e),i=ke.vertL1dist(A,e),s=.5*i/(r+i),o=.5*r/(r+i);e.coords[0]+=s*t.coords[0]+o*A.coords[0],e.coords[1]+=s*t.coords[1]+o*A.coords[1],e.coords[2]+=s*t.coords[2]+o*A.coords[2]},n.getIntersectData=function(e,t,A,r,i,s){t.coords[0]=t.coords[1]=t.coords[2]=0,t.idx=-1,n.vertexWeights(t,A,r),n.vertexWeights(t,i,s)},n.checkForRightSplice=function(e,t){var A=n.regionBelow(t),r=t.eUp,i=A.eUp;if(ke.vertLeq(r.Org,i.Org)){if(ke.edgeSign(i.Dst,r.Org,i.Org)>0)return!1;ke.vertEq(r.Org,i.Org)?r.Org!==i.Org&&(e.pq.delete(r.Org.pqHandle),n.spliceMergeVertices(e,i.Oprev,r)):(e.mesh.splitEdge(i.Sym),e.mesh.splice(r,i.Oprev),t.dirty=A.dirty=!0)}else{if(ke.edgeSign(r.Dst,i.Org,r.Org)<0)return!1;n.regionAbove(t).dirty=t.dirty=!0,e.mesh.splitEdge(r.Sym),e.mesh.splice(i.Oprev,r)}return!0},n.checkForLeftSplice=function(e,t){var A=n.regionBelow(t),r=t.eUp,i=A.eUp,s;if(We(!ke.vertEq(r.Dst,i.Dst)),ke.vertLeq(r.Dst,i.Dst)){if(ke.edgeSign(r.Dst,i.Dst,r.Org)<0)return!1;n.regionAbove(t).dirty=t.dirty=!0,s=e.mesh.splitEdge(r),e.mesh.splice(i.Sym,s),s.Lface.inside=t.inside}else{if(ke.edgeSign(i.Dst,r.Dst,i.Org)>0)return!1;t.dirty=A.dirty=!0,s=e.mesh.splitEdge(i),e.mesh.splice(r.Lnext,i.Sym),s.Rface.inside=t.inside}return!0},n.checkForIntersect=function(e,t){var A=n.regionBelow(t),r=t.eUp,i=A.eUp,s=r.Org,o=i.Org,a=r.Dst,c=i.Dst,l,u,h=new Zl,d,p;if(We(!ke.vertEq(c,a)),We(ke.edgeSign(a,e.event,s)<=0),We(ke.edgeSign(c,e.event,o)>=0),We(s!==e.event&&o!==e.event),We(!t.fixUpperEdge&&!A.fixUpperEdge),s===o||(l=Math.min(s.t,a.t),u=Math.max(o.t,c.t),l>u))return!1;if(ke.vertLeq(s,o)){if(ke.edgeSign(c,s,o)>0)return!1}else if(ke.edgeSign(a,o,s)<0)return!1;return n.debugEvent(e),ke.intersect(a,s,c,o,h),We(Math.min(s.t,a.t)<=h.t),We(h.t<=Math.max(o.t,c.t)),We(Math.min(c.s,a.s)<=h.s),We(h.s<=Math.max(o.s,s.s)),ke.vertLeq(h,e.event)&&(h.s=e.event.s,h.t=e.event.t),d=ke.vertLeq(s,o)?s:o,ke.vertLeq(d,h)&&(h.s=d.s,h.t=d.t),ke.vertEq(h,s)||ke.vertEq(h,o)?(n.checkForRightSplice(e,t),!1):!ke.vertEq(a,e.event)&&ke.edgeSign(a,e.event,h)>=0||!ke.vertEq(c,e.event)&&ke.edgeSign(c,e.event,h)<=0?c===e.event?(e.mesh.splitEdge(r.Sym),e.mesh.splice(i.Sym,r),t=n.topLeftRegion(e,t),r=n.regionBelow(t).eUp,n.finishLeftRegions(e,n.regionBelow(t),A),n.addRightEdges(e,t,r.Oprev,r,r,!0),!0):a===e.event?(e.mesh.splitEdge(i.Sym),e.mesh.splice(r.Lnext,i.Oprev),A=t,t=n.topRightRegion(t),p=n.regionBelow(t).eUp.Rprev,A.eUp=i.Oprev,i=n.finishLeftRegions(e,A,null),n.addRightEdges(e,t,i.Onext,r.Rprev,p,!0),!0):(ke.edgeSign(a,e.event,h)>=0&&(n.regionAbove(t).dirty=t.dirty=!0,e.mesh.splitEdge(r.Sym),r.Org.s=e.event.s,r.Org.t=e.event.t),ke.edgeSign(c,e.event,h)<=0&&(t.dirty=A.dirty=!0,e.mesh.splitEdge(i.Sym),i.Org.s=e.event.s,i.Org.t=e.event.t),!1):(e.mesh.splitEdge(r.Sym),e.mesh.splitEdge(i.Sym),e.mesh.splice(i.Oprev,r),r.Org.s=h.s,r.Org.t=h.t,r.Org.pqHandle=e.pq.insert(r.Org),n.getIntersectData(e,r.Org,s,a,o,c),n.regionAbove(t).dirty=t.dirty=A.dirty=!0,!1)},n.walkDirtyRegions=function(e,t){for(var A=n.regionBelow(t),r,i;;){for(;A.dirty;)t=A,A=n.regionBelow(A);if(!t.dirty&&(A=t,t=n.regionAbove(t),t===null||!t.dirty))return;if(t.dirty=!1,r=t.eUp,i=A.eUp,r.Dst!==i.Dst&&n.checkForLeftSplice(e,t)&&(A.fixUpperEdge?(n.deleteRegion(e,A),e.mesh.delete(i),A=n.regionBelow(t),i=A.eUp):t.fixUpperEdge&&(n.deleteRegion(e,t),e.mesh.delete(r),t=n.regionAbove(A),r=t.eUp)),r.Org!==i.Org)if(r.Dst!==i.Dst&&!t.fixUpperEdge&&!A.fixUpperEdge&&(r.Dst===e.event||i.Dst===e.event)){if(n.checkForIntersect(e,t))return}else n.checkForRightSplice(e,t);r.Org===i.Org&&r.Dst===i.Dst&&(n.addWinding(i,r),n.deleteRegion(e,t),e.mesh.delete(r),t=n.regionAbove(A))}},n.connectRightVertex=function(e,t,A){var r,i=A.Onext,s=n.regionBelow(t),o=t.eUp,a=s.eUp,c=!1;if(o.Dst!==a.Dst&&n.checkForIntersect(e,t),ke.vertEq(o.Org,e.event)&&(e.mesh.splice(i.Oprev,o),t=n.topLeftRegion(e,t),i=n.regionBelow(t).eUp,n.finishLeftRegions(e,n.regionBelow(t),s),c=!0),ke.vertEq(a.Org,e.event)&&(e.mesh.splice(A,a.Oprev),A=n.finishLeftRegions(e,s,null),c=!0),c){n.addRightEdges(e,t,A.Onext,i,i,!0);return}ke.vertLeq(a.Org,o.Org)?r=a.Oprev:r=o,r=e.mesh.connect(A.Lprev,r),n.addRightEdges(e,t,r,r.Onext,r.Onext,!1),r.Sym.activeRegion.fixUpperEdge=!0,n.walkDirtyRegions(e,t)},n.connectLeftDegenerate=function(e,t,A){var r,i,s,o,a;if(r=t.eUp,ke.vertEq(r.Org,A)){We(!1),n.spliceMergeVertices(e,r,A.anEdge);return}if(!ke.vertEq(r.Dst,A)){e.mesh.splitEdge(r.Sym),t.fixUpperEdge&&(e.mesh.delete(r.Onext),t.fixUpperEdge=!1),e.mesh.splice(A.anEdge,r),n.sweepEvent(e,A);return}We(!1),t=n.topRightRegion(t),a=n.regionBelow(t),s=a.eUp.Sym,i=o=s.Onext,a.fixUpperEdge&&(We(i!==s),n.deleteRegion(e,a),e.mesh.delete(s),s=i.Oprev),e.mesh.splice(A.anEdge,s),ke.edgeGoesLeft(i)||(i=null),n.addRightEdges(e,t,s.Onext,o,i,!0)},n.connectLeftVertex=function(e,t){var A,r,i,s,o,a,c=new i0;if(c.eUp=t.anEdge.Sym,A=e.dict.search(c).key,r=n.regionBelow(A),!!r){if(s=A.eUp,o=r.eUp,ke.edgeSign(s.Dst,t,s.Org)===0){n.connectLeftDegenerate(e,A,t);return}if(i=ke.vertLeq(o.Dst,s.Dst)?A:r,A.inside||i.fixUpperEdge){if(i===A)a=e.mesh.connect(t.anEdge.Sym,s.Lnext);else{var l=e.mesh.connect(o.Dnext,t.anEdge);a=l.Sym}i.fixUpperEdge?n.fixUpperEdge(e,i,a):n.computeWinding(e,n.addRegionBelow(e,A,a)),n.sweepEvent(e,t)}else n.addRightEdges(e,A,t.anEdge,t.anEdge,null,!0)}},n.sweepEvent=function(e,t){e.event=t,n.debugEvent(e);for(var A=t.anEdge;A.activeRegion===null;)if(A=A.Onext,A===t.anEdge){n.connectLeftVertex(e,t);return}var r=n.topLeftRegion(e,A.activeRegion);We(r!==null);var i=n.regionBelow(r),s=i.eUp,o=n.finishLeftRegions(e,i,null);o.Onext===s?n.connectRightVertex(e,r,o):n.addRightEdges(e,r,o.Onext,s,s,!0)},n.addSentinel=function(e,t,A,r){var i=new i0,s=e.mesh.makeEdge();s.Org.s=A,s.Org.t=r,s.Dst.s=t,s.Dst.t=r,e.event=s.Dst,i.eUp=s,i.windingNumber=0,i.inside=!1,i.fixUpperEdge=!1,i.sentinel=!0,i.dirty=!1,i.nodeUp=e.dict.insert(i)},n.initEdgeDict=function(e){e.dict=new S4(e,n.edgeLeq);var t=e.bmax[0]-e.bmin[0],A=e.bmax[1]-e.bmin[1],r=e.bmin[0]-t,i=e.bmax[0]+t,s=e.bmin[1]-A,o=e.bmax[1]+A;n.addSentinel(e,r,i,s),n.addSentinel(e,r,i,o)},n.doneEdgeDict=function(e){for(var t,A=0;(t=e.dict.min().key)!==null;)t.sentinel||(We(t.fixUpperEdge),We(++A===1)),We(t.windingNumber===0),n.deleteRegion(e,t)},n.removeDegenerateEdges=function(e){var t,A,r,i=e.mesh.eHead;for(t=i.next;t!==i;t=A)A=t.next,r=t.Lnext,ke.vertEq(t.Org,t.Dst)&&t.Lnext.Lnext!==t&&(n.spliceMergeVertices(e,r,t),e.mesh.delete(t),t=r,r=t.Lnext),r.Lnext===t&&(r!==t&&((r===A||r===A.Sym)&&(A=A.next),e.mesh.delete(r)),(t===A||t===A.Sym)&&(A=A.next),e.mesh.delete(t))},n.initPriorityQ=function(e){var t,A,r,i=0;for(r=e.mesh.vHead,A=r.next;A!==r;A=A.next)i++;for(i+=8,t=e.pq=new w4(i,ke.vertLeq),r=e.mesh.vHead,A=r.next;A!==r;A=A.next)A.pqHandle=t.insert(A);return A!==r?!1:(t.init(),!0)},n.donePriorityQ=function(e){e.pq=null},n.removeDegenerateFaces=function(e,t){var A,r,i;for(A=t.fHead.next;A!==t.fHead;A=r)r=A.next,i=A.anEdge,We(i.Lnext!==i),i.Lnext.Lnext===i&&(n.addWinding(i.Onext,i),e.mesh.delete(i));return!0},n.computeInterior=function(e,t){t===void 0&&(t=!0);var A,r;if(n.removeDegenerateEdges(e),!n.initPriorityQ(e))return!1;for(n.initEdgeDict(e);(A=e.pq.extractMin())!==null;){for(;r=e.pq.min(),!(r===null||!ke.vertEq(r,A));)r=e.pq.extractMin(),n.spliceMergeVertices(e,A.anEdge,r.anEdge);n.sweepEvent(e,A)}return e.event=e.dict.min().key.eUp.Org,n.debugEvent(e),n.doneEdgeDict(e),n.donePriorityQ(e),n.removeDegenerateFaces(e,e.mesh)?(t&&e.mesh.check(),!0):!1},n}(),M4=function(){function n(){this.mesh=new HE,this.normal=[0,0,0],this.sUnit=[0,0,0],this.tUnit=[0,0,0],this.bmin=[0,0],this.bmax=[0,0],this.windingRule=_t.ODD,this.dict=null,this.pq=null,this.event=null,this.vertexIndexCounter=0,this.vertices=[],this.vertexIndices=[],this.vertexCount=0,this.elements=[],this.elementCount=0}return n.prototype.dot_=function(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]},n.prototype.normalize_=function(e){var t=e[0]*e[0]+e[1]*e[1]+e[2]*e[2];if(!t)throw"Zero-size vector!";t=Math.sqrt(t),e[0]/=t,e[1]/=t,e[2]/=t},n.prototype.longAxis_=function(e){var t=0;return Math.abs(e[1])>Math.abs(e[0])&&(t=1),Math.abs(e[2])>Math.abs(e[t])&&(t=2),t},n.prototype.computeNormal_=function(e){var t,A,r,i,s,o,a=[0,0,0],c=[0,0,0],l=[0,0,0],u=[0,0,0],h=[0,0,0],d=[null,null,null],p=[null,null,null],f=this.mesh.vHead;t=f.next;for(var m=0;m<3;++m)i=t.coords[m],c[m]=i,p[m]=t,a[m]=i,d[m]=t;for(t=f.next;t!==f;t=t.next)for(var y=0;y<3;++y)i=t.coords[y],i<c[y]&&(c[y]=i,p[y]=t),i>a[y]&&(a[y]=i,d[y]=t);var g=0;if(a[1]-c[1]>a[0]-c[0]&&(g=1),a[2]-c[2]>a[g]-c[g]&&(g=2),c[g]>=a[g]){e[0]=0,e[1]=0,e[2]=1;return}for(o=0,A=p[g],r=d[g],l[0]=A.coords[0]-r.coords[0],l[1]=A.coords[1]-r.coords[1],l[2]=A.coords[2]-r.coords[2],t=f.next;t!==f;t=t.next)u[0]=t.coords[0]-r.coords[0],u[1]=t.coords[1]-r.coords[1],u[2]=t.coords[2]-r.coords[2],h[0]=l[1]*u[2]-l[2]*u[1],h[1]=l[2]*u[0]-l[0]*u[2],h[2]=l[0]*u[1]-l[1]*u[0],s=h[0]*h[0]+h[1]*h[1]+h[2]*h[2],s>o&&(o=s,e[0]=h[0],e[1]=h[1],e[2]=h[2]);o<=0&&(e[0]=e[1]=e[2]=0,e[this.longAxis_(l)]=1)},n.prototype.checkOrientation_=function(){for(var e=this.mesh.fHead,t,A=this.mesh.vHead,r,i=0,s=e.next;s!==e;s=s.next)if(r=s.anEdge,!(r.winding<=0))do i+=(r.Org.s-r.Dst.s)*(r.Org.t+r.Dst.t),r=r.Lnext;while(r!==s.anEdge);if(i<0){for(t=A.next;t!==A;t=t.next)t.t=-t.t;this.tUnit[0]=-this.tUnit[0],this.tUnit[1]=-this.tUnit[1],this.tUnit[2]=-this.tUnit[2]}},n.prototype.projectPolygon_=function(){var e=this.mesh.vHead,t=[0,0,0],A,r,i=!1;t[0]=this.normal[0],t[1]=this.normal[1],t[2]=this.normal[2],!t[0]&&!t[1]&&!t[2]&&(this.computeNormal_(t),i=!0),A=this.sUnit,r=this.tUnit;var s=this.longAxis_(t);A[s]=0,A[(s+1)%3]=1,A[(s+2)%3]=0,r[s]=0,r[(s+1)%3]=0,r[(s+2)%3]=t[s]>0?1:-1;for(var o=e.next;o!==e;o=o.next)o.s=this.dot_(o.coords,A),o.t=this.dot_(o.coords,r);i&&this.checkOrientation_();for(var a=!0,c=e.next;c!==e;c=c.next)a?(this.bmin[0]=this.bmax[0]=c.s,this.bmin[1]=this.bmax[1]=c.t,a=!1):(c.s<this.bmin[0]&&(this.bmin[0]=c.s),c.s>this.bmax[0]&&(this.bmax[0]=c.s),c.t<this.bmin[1]&&(this.bmin[1]=c.t),c.t>this.bmax[1]&&(this.bmax[1]=c.t))},n.prototype.addWinding_=function(e,t){e.winding+=t.winding,e.Sym.winding+=t.Sym.winding},n.prototype.tessellateMonoRegion_=function(e,t){var A,r;if(A=t.anEdge,!(A.Lnext!==A&&A.Lnext.Lnext!==A))throw"Mono region invalid";for(;ke.vertLeq(A.Dst,A.Org);A=A.Lprev);for(;ke.vertLeq(A.Org,A.Dst);A=A.Lnext);r=A.Lprev;for(var i=void 0;A.Lnext!==r;)if(ke.vertLeq(A.Dst,r.Org)){for(;r.Lnext!==A&&(ke.edgeGoesLeft(r.Lnext)||ke.edgeSign(r.Org,r.Dst,r.Lnext.Dst)<=0);)i=e.connect(r.Lnext,r),r=i.Sym;r=r.Lprev}else{for(;r.Lnext!==A&&(ke.edgeGoesRight(A.Lprev)||ke.edgeSign(A.Dst,A.Org,A.Lprev.Org)>=0);)i=e.connect(A,A.Lprev),A=i.Sym;A=A.Lnext}if(r.Lnext===A)throw"Mono region invalid";for(;r.Lnext.Lnext!==A;)i=e.connect(r.Lnext,r),r=i.Sym;return!0},n.prototype.tessellateInterior_=function(e){for(var t,A=e.fHead.next;A!==e.fHead;A=t)if(t=A.next,A.inside&&!this.tessellateMonoRegion_(e,A))return!1;return!0},n.prototype.discardExterior_=function(e){for(var t,A=e.fHead.next;A!==e.fHead;A=t)t=A.next,A.inside||e.zapFace(A)},n.prototype.setWindingNumber_=function(e,t,A){for(var r,i=e.eHead.next;i!==e.eHead;i=r)r=i.next,i.Rface.inside!==i.Lface.inside?i.winding=i.Lface.inside?t:-t:A?e.delete(i):i.winding=0},n.prototype.getNeighbourFace_=function(e){return!e.Rface||!e.Rface.inside?-1:e.Rface.n},n.prototype.outputPolymesh_=function(e,t,A,r){var i,s=0,o=0,a;A>3&&e.mergeConvexFaces(A);for(var c=e.vHead.next;c!==e.vHead;c=c.next)c.n=-1;for(var l=e.fHead.next;l!==e.fHead;l=l.next)if(l.n=-1,!!l.inside){i=l.anEdge,a=0;do{var c=i.Org;c.n===-1&&(c.n=o,o++),a++,i=i.Lnext}while(i!==l.anEdge);if(a>A)throw"Face vertex greater that support polygon";l.n=s,++s}this.elementCount=s,t===SA.CONNECTED_POLYGONS&&(s*=2),this.elements=[],this.elements.length=s*A,this.vertexCount=o,this.vertices=[],this.vertices.length=o*r,this.vertexIndices=[],this.vertexIndices.length=o;for(var c=e.vHead.next;c!==e.vHead;c=c.next)if(c.n!==-1){var u=c.n*r;this.vertices[u+0]=c.coords[0],this.vertices[u+1]=c.coords[1],r>2&&(this.vertices[u+2]=c.coords[2]),this.vertexIndices[c.n]=c.idx}for(var h=0,l=e.fHead.next;l!==e.fHead;l=l.next)if(!!l.inside){i=l.anEdge,a=0;do{var c=i.Org;this.elements[h++]=c.n,a++,i=i.Lnext}while(i!==l.anEdge);for(var d=a;d<A;++d)this.elements[h++]=-1;if(t===SA.CONNECTED_POLYGONS){i=l.anEdge;do this.elements[h++]=this.getNeighbourFace_(i),i=i.Lnext;while(i!==l.anEdge);for(var p=a;p<A;++p)this.elements[h++]=-1}}},n.prototype.outputContours_=function(e,t){var A,r,i=0,s=0;this.vertexCount=0,this.elementCount=0;for(var o=e.fHead.next;o!==e.fHead;o=o.next)if(!!o.inside){r=A=o.anEdge;do this.vertexCount++,A=A.Lnext;while(A!==r);this.elementCount++}this.elements=[],this.elements.length=this.elementCount*2,this.vertices=[],this.vertices.length=this.vertexCount*t,this.vertexIndices=[],this.vertexIndices.length=this.vertexCount;var a=0,c=0,l=0;i=0;for(var o=e.fHead.next;o!==e.fHead;o=o.next)if(!!o.inside){s=0,r=A=o.anEdge;do this.vertices[a++]=A.Org.coords[0],this.vertices[a++]=A.Org.coords[1],t>2&&(this.vertices[a++]=A.Org.coords[2]),this.vertexIndices[c++]=this.vertexIdCallback?this.vertexIdCallback(A):A.Org.idx,s++,A=A.Lnext;while(A!==r);this.elements[l++]=i,this.elements[l++]=s,i+=s}},n.prototype.addContour=function(e,t){this.mesh===null&&(this.mesh=new HE),e<2&&(e=2),e>3&&(e=3);for(var A=null,r=0;r<t.length;r+=e)A===null?(A=this.mesh.makeEdge(),this.mesh.splice(A,A.Sym)):(this.mesh.splitEdge(A),A=A.Lnext),A.Org.coords[0]=t[r+0],A.Org.coords[1]=t[r+1],e>2?A.Org.coords[2]=t[r+2]:A.Org.coords[2]=0,A.Org.idx=this.vertexIndexCounter++,this.edgeCreateCallback&&this.edgeCreateCallback(A),A.winding=1,A.Sym.winding=-1},n.prototype.tesselate=function(e,t,A,r,i,s){if(e===void 0&&(e=_t.ODD),t===void 0&&(t=SA.POLYGONS),s===void 0&&(s=!0),this.vertices=[],this.elements=[],this.vertexIndices=[],this.vertexIndexCounter=0,i&&(this.normal[0]=i[0],this.normal[1]=i[1],this.normal[2]=i[2]),this.windingRule=e,r<2&&(r=2),r>3&&(r=3),!this.mesh)return!1;this.projectPolygon_(),T4.computeInterior(this,s);var o=this.mesh;return t===SA.BOUNDARY_CONTOURS?this.setWindingNumber_(o,1,!0):this.tessellateInterior_(o),s&&o.check(),t===SA.BOUNDARY_CONTOURS?this.outputContours_(o,r):this.outputPolymesh_(o,t,A,r),!0},n}();function Bo(n){var e=n.windingRule,t=e===void 0?_t.ODD:e,A=n.elementType,r=A===void 0?SA.POLYGONS:A,i=n.polySize,s=i===void 0?3:i,o=n.vertexSize,a=o===void 0?2:o,c=n.normal,l=c===void 0?[0,0,1]:c,u=n.contours,h=u===void 0?[]:u,d=n.strict,p=d===void 0?!0:d,f=n.debug,m=f===void 0?!1:f;if(!h&&p)throw new Error("Contours can't be empty");if(!!h){var y=new M4;n.edgeCreateCallback&&(y.edgeCreateCallback=n.edgeCreateCallback),n.vertexIdCallback&&(y.vertexIdCallback=n.vertexIdCallback);for(var g=0;g<h.length;g++)y.addContour(a||2,h[g]);return y.tesselate(t,r,s,a,l,p),{vertices:y.vertices,vertexIndices:y.vertexIndices,vertexCount:y.vertexCount,elements:y.elements,elementCount:y.elementCount,mesh:m?y.mesh:void 0}}}var Iie=_t.ODD,Lie=_t.NONZERO,_ie=_t.POSITIVE,Oie=_t.NEGATIVE,Rie=_t.ABS_GEQ_TWO,Bie=SA.POLYGONS,Nie=SA.CONNECTED_POLYGONS,Fie=SA.BOUNDARY_CONTOURS;var Kl=class extends Ie{constructor(t,A=12,r={}){super();this.type="ShapeGeometry";this.windingRule=_t.ODD;this.elementType=SA.POLYGONS;this.polySize=3;this.vertexSize=2;this.strict=!0;this._shape=t,this._curveSegments=A,this._triangulationOptions=Object.assign({windingRule:_t.ODD,elementType:SA.POLYGONS,polySize:3,vertexSize:2,strict:!0},r);let i=this._shape.extractShapePointsToFlatArray([],this._curveSegments),s=this._shape.shapeHoles.map(p=>p.extractShapePointsToFlatArray([],this._curveSegments)),o,a=!0,c=!0,l,u;for(let p=0,f=i.length/2;p<f;p++){let m=p*2,y=i[m+0],g=i[m+1];if(l!==void 0&&y!==l&&(a=!1),u!==void 0&&g!==u&&(c=!1),l=y,u=g,!a&&!c)break}!a&&!c&&(o=Bo({contours:[i,...s],windingRule:this._triangulationOptions.windingRule,elementType:this._triangulationOptions.elementType,polySize:this._triangulationOptions.polySize,vertexSize:this._triangulationOptions.vertexSize,strict:this._triangulationOptions.strict}));let h=o?.vertexCount??1,d=o?.elementCount??1;if(this._positionAttribute=new Ge(new Float32Array(h*3),3),this._normalAttribute=new Ge(new Float32Array(h*3),3),this._uvAttribute=new Ge(new Float32Array(h*2),2),this._indexAttribute=new Ge(new Uint32Array(d*3),1),o){let p=1/0,f=-1/0,m=1/0,y=-1/0;for(let x=0,w=h;x<w;x++){let T=x*2,M=o.vertices[T+0],v=o.vertices[T+1];M<p&&(p=M),M>f&&(f=M),v<m&&(m=v),v>y&&(y=v)}let g=f-p,b=y-m;for(let x=0,w=h;x<w;x++){let T=x*2,M=o.vertices[T+0],v=o.vertices[T+1],E=(M-p)/g,C=(v-m)/b;this._positionAttribute.setXYZ(x,M,v,0),this._normalAttribute.setXYZ(x,0,0,1),this._uvAttribute.setXY(x,E,C)}for(let x=0,w=d;x<w;x++){let T=x*3,M=o.elements[T+0],v=o.elements[T+1],E=o.elements[T+2];this._indexAttribute.setX(T+0,M),this._indexAttribute.setX(T+1,v),this._indexAttribute.setX(T+2,E)}}this.setAttribute("position",this._positionAttribute),this.setAttribute("normal",this._normalAttribute),this.setAttribute("uv",this._uvAttribute),this.setIndex(this._indexAttribute),this.setDrawRange(0,(o?.elementCount??1)*3)}clone(){let t=new Kl(this._shape,this._curveSegments);return t.userData=wu(this.userData),t}};var kp=class{constructor(e=256,t=!1){this.capacity=e,this.size=0,this.debug=t,this.debug&&console.log(`allocating with cap ${e}`);let A=e*kp.eSize;this.buffer=new ArrayBuffer(A);let r=Float32Array.BYTES_PER_ELEMENT,i=0;this.positions=new Float32Array(this.buffer,i*r,3*e),i+=3*e,this.normals=new Float32Array(this.buffer,i*r,3*e),i+=3*e,this.uvs=new Float32Array(this.buffer,i*r,2*e)}realloc(e,t=!1){if(e<this.size)throw Error("cannot shrink buffer");if(e<=this.capacity&&!t)return;this.debug&&console.log(`resizing from ${this.capacity} \u2192 ${e}`);let A=e*kp.eSize,r=new ArrayBuffer(A),i=Float32Array.BYTES_PER_ELEMENT,s=0,o=new Float32Array(r,s*i,3*e);s+=3*e;let a=new Float32Array(r,s*i,3*e);s+=3*e;let c=new Float32Array(r,s*i,2*e);o.set(this.positions.slice(0,this.size*3)),a.set(this.normals.slice(0,this.size*3)),c.set(this.uvs.slice(0,this.size*2)),this.buffer=r,this.positions=o,this.normals=a,this.uvs=c,this.capacity=e}get(e=1){let t=this.size+e;if(t>this.capacity){let r=this.capacity;for(;t>r;)r*=2;this.realloc(r)}let A=this.size;return this.size=t,A}reserve(e){let t=this.size+e;t>this.capacity&&this.realloc(t)}shrink(){this.debug&&console.log(`shrinking ${this.capacity} \u2192 ${this.size}`),this.realloc(this.size,!0)}},Ah=kp;Ah.eSize=(3+3+2)*Float32Array.BYTES_PER_ELEMENT;var s0=(n,e)=>([t,A])=>(A<t&&(A+=e),(n>=t?n:n+e)<=A),Jl=class extends Ie{constructor(t,A,r=0,i=12,s=3,o=_t.ODD){super();this.type="ShapeGeometry";this.vertexCache={};this._shape=t,this._depth=A,this._bevel=r,this._curveSegments=i,this._bevelSegmentsInput=s,r<=0?(this._bevelSize=0,this._bevelSegments=0):(this._bevelSize=Math.min(r,A/2-1e-12),this._bevelSegments=Math.floor(s));let a=this._shape.extractShapePointsToFlatArray([],i),c=this._shape.shapeHoles.map(v=>{let E=v.extractShapePointsToFlatArray([],i),C=[];for(let P=E.length-1;P>=1;P-=2){let D=E[P-1],_=E[P-0];C.push(D,_)}return C}),l=Bo({windingRule:o,elementType:SA.BOUNDARY_CONTOURS,vertexSize:2,strict:!0,contours:[a]}),u=Bo({windingRule:_t.ODD,elementType:SA.BOUNDARY_CONTOURS,vertexSize:2,strict:!0,contours:[...c]});if(!l)throw new Error("error generating geometry");let h=l.elementCount;if(u){l.elementCount+=u.elementCount;for(let v=0;v<u.elements.length;v++){let E=u.elements[v],C=v%2===0?l.vertexCount:0;l.elements.push(E+C)}for(let v=0;v<u.vertexIndices.length;v++){let E=u.vertexIndices[v],C=l.vertexCount;l.vertexIndices.push(E+C)}for(let v=0;v<u.vertices.length;v++){let E=u.vertices[v];l.vertices.push(E)}}let d=1/0,p=-1/0,f=1/0,m=-1/0;for(let v=0,E=l.vertexCount;v<E;v++){let C=v*2,P=l.vertices[C+0],D=l.vertices[C+1];P<d&&(d=P),P>p&&(p=P),D<f&&(f=D),D>m&&(m=D)}this._minX=d,this._minY=f,this._width=p-d,this._height=m-f;let y=l.vertexCount*2*(2+this._bevelSegments);this._buffer=new Ah(y);let g=[],b=[];for(let v=l.elementCount-1;v>=0;v--){let E=v>=h,C=v*2,P=l.elements[C+0],D=l.elements[C+1],_=P+D,I={start:P,count:D,normals:[],continuous:[],concave:[]},B=P,N=_-1,W=P+1,X=this._shape.roundedCurves.length;do{let z=B-P,U=l.vertices[N*2+0],j=l.vertices[N*2+1],q=l.vertices[B*2+0],V=l.vertices[B*2+1],ue=l.vertices[W*2+0],Ae=l.vertices[W*2+1],K=q-U,Y=V-j,ne=Math.sqrt(K*K+Y*Y);K/=ne,Y/=ne;let le=q-ue,se=V-Ae,Me=Math.sqrt(le*le+se*se);le/=Me,se/=Me,I.normals[z*2+0]=-se,I.normals[z*2+1]=le,I.concave[z]=K*se-Y*le>0;let me=l.vertexIndices[B];if(Array.isArray(me))I.continuous[z]=!1;else{let[ge,ye]=this._shape.getCurveIndexFromVertexId(me-1,!0);if(ye>0&&ye<1)I.continuous[z]=!0;else{let de=ye===1?ge+1:ge-1;de=(de+X)%X;let De=ye===1?0:1,Be=this._shape.roundedCurves[ge].getTangent(ye),Ze=this._shape.roundedCurves[de].getTangent(De);I.continuous[z]=Be.dot(Ze)>.95}}E&&(I.normals[z*2+0]*=-1,I.normals[z*2+1]*=-1),[N,B,W]=[B,W,W+1],W>=_&&(W-=D)}while(W!==P+1);let F=[];F.push({bevelI:0,angle:0,size:0,boundary:{vertices:l.vertices.slice(P*2,_*2),vertexCount:D,vertexIndices:new Array(D).fill(!0).map((z,U)=>[U,U]),elements:[0,D],elementCount:1,mesh:null},reverseMap:[],insetPoints:l.vertices.slice(P*2,_*2)});for(let z=1;z<=this._bevelSegments;z++){let U=z/this._bevelSegments*Math.PI/2,j=(1-Math.cos(U))*this._bevelSize,q=[],V=[],ue=[],Ae=[],K=0;for(let ne=0;ne<D;ne++){let le=ne*2,se=(ne-1+D)%D*2,Me=l.vertices[I.start*2+le+0],me=l.vertices[I.start*2+le+1],ge=-I.normals[se+0]*j,ye=-I.normals[se+1]*j,de=-I.normals[le+0]*j,De=-I.normals[le+1]*j;if(I.concave[ne]||!I.concave[ne]&&E){let Be=Math.atan2(ye,ge),Ze=Math.atan2(De,de);Ze>Be&&(Ze-=Math.PI*2);let R=Ze-Be;if(I.continuous[ne]||E){let L=Be+R/2,J=Math.cos(L)*j,ae=Math.sin(L)*j;q[2*K+0]=Me+J*(E?-1:1),q[2*K+1]=me+ae*(E?-1:1),Ae[K]=ne,K++}else{let L=Math.max(1,Math.floor(i/4*Math.abs(R)/Math.PI));for(let J=0;J<=L;J++){let ae=Be+R*(J/L),fe=Math.cos(ae)*j,Ce=Math.sin(ae)*j;q[2*K+0]=Me+fe,q[2*K+1]=me+Ce,Ae[K]=ne,K++}}}else q[2*K+0]=Me+ge,q[2*K+1]=me+ye,Ae[K]=ne,V[ne]=K,K++,q[2*K+0]=Me,q[2*K+1]=me,Ae[K]=ne,K++,q[2*K+0]=Me+de,q[2*K+1]=me+De,Ae[K]=ne,ue[ne]=K,K++}let Y=Bo({windingRule:_t.POSITIVE,elementType:SA.BOUNDARY_CONTOURS,vertexSize:2,strict:!0,contours:[q],edgeCreateCallback:ne=>{let se=ne.Org.idx,Me=Ae[se],me=Ae[(se+1)%Ae.length];ne.idx=[Me,me],ne.Sym.idx=[me,Me]},vertexIdCallback:ne=>{let le=ne.Lprev.idx;return[le?le[1]:0,ne.idx[0]]}});if(!Y)throw console.log("Error"),new Error(`error generating bevel geometry for ${z}'th loop`);if(!Y.vertexCount)break;for(let ne=0;ne<Y.vertexIndices.length;ne++){let[le,se]=Y.vertexIndices[ne];if(le===se)continue;let Me=se;se<le&&(Me+=D);for(let me=le;me<Me;me++){let ge=me%D,ye=(me+1)%D;if(!I.continuous[ge]||!I.continuous[ye]){Y.vertexIndices[ne]=[le,ge],Y.vertexIndices.splice(ne+1,0,[ye,se]),Y.vertices.splice((ne+1)*2,0,Y.vertices[ne*2],Y.vertices[ne*2+1]);break}}}F.push({bevelI:z,angle:U,size:j,boundary:Y,reverseMap:Ae,insetPoints:q})}let k=(z,U,j)=>{let q=0,V=z.boundary.vertexIndices.length;for(;q<V&&j(z.boundary.vertexIndices[U]);)U=(U+1)%V,q++;return q},Q=g.length;for(let z=1;z<F.length;z++){let U=F[z-1],j=F[z],q=U.boundary.vertexIndices.length,V=j.boundary.vertexIndices.length;if(!q||!V)break;let ue=I.concave.length,Ae=0,K=s0(Ae,D);for(;!U.boundary.vertexIndices.filter(K).length||!j.boundary.vertexIndices.filter(K).length;)Ae++,K=s0(Ae,D);let Y=U.boundary.vertexIndices.findIndex(K),ne=j.boundary.vertexIndices.findIndex(K);do Y=(Y+1)%q;while(K(U.boundary.vertexIndices[Y]));do ne=(ne+1)%V;while(K(j.boundary.vertexIndices[ne]));Ae=(Ae+1)%D;let le=Ae,se=this.buildBevelVert(I,U,(Y-1+q)%q),Me=this.buildBevelVert(I,j,(ne-1+V)%V),me=se,ge=Me,ye,de,De=!1;do{K=s0(Ae,D);let Be=k(U,Y,K),Ze=k(j,ne,K),R=De;if(De=!1,Be&&!Ze){for(let L=0;L<Be;L++)ye=this.buildBevelVert(I,U,(Y+L)%q,L/(Be-1)),g.push(me.topN,ye.topP,ge.topN),g.push(ye.bottomP,me.bottomN,ge.bottomN),me=ye;De=!0}else if(!Be&&Ze)for(let L=0;L<Ze;L++)de=this.buildBevelVert(I,j,(ne+L)%V,L/(Ze-1)),g.push(ge.topN,me.topP,de.topP),g.push(me.bottomP,ge.bottomN,de.bottomP),ge=de;else if(Be&&Ze)if(ye=this.buildBevelVert(I,U,Y,0),de=this.buildBevelVert(I,j,ne,0),R?(g.push(me.topN,de.topP,ge.topN),g.push(me.topN,ye.topP,de.topP),g.push(de.bottomP,me.bottomN,ge.bottomN),g.push(de.bottomP,ye.bottomP,me.bottomN)):(g.push(ge.topN,me.topN,ye.topP),g.push(ge.topN,ye.topP,de.topP),g.push(ye.bottomP,me.bottomN,ge.bottomN),g.push(ye.bottomP,ge.bottomN,de.bottomP)),me=ye,ge=de,Be===Ze)for(let L=1;L<Be;L++)ye=this.buildBevelVert(I,U,(Y+L)%q,L/(Be-1)),de=this.buildBevelVert(I,j,(ne+L)%V,L/(Ze-1)),g.push(me.topN,ye.topP,ge.topN),g.push(ge.topN,ye.topP,de.topP),g.push(ye.bottomP,me.bottomN,ge.bottomN),g.push(ye.bottomP,ge.bottomN,de.bottomP),me=ye,ge=de;else if(Be>Ze){let L=Be/Ze,J=0;for(let ae=1;ae<Be;ae++)ye=this.buildBevelVert(I,U,(Y+ae)%q,ae/(Be-1)),g.push(me.topN,ye.topP,ge.topN),g.push(ye.bottomP,me.bottomN,ge.bottomN),me=ye,ae>(J+1)*L&&(J++,de=this.buildBevelVert(I,j,(ne+J)%V,J/(Ze-1)),g.push(ge.topN,ye.topP,de.topP),g.push(ye.bottomP,ge.bottomN,de.bottomP),ge=de)}else{let L=Ze/Be,J=0;for(let ae=1;ae<Ze;ae++)de=this.buildBevelVert(I,j,(ne+ae)%V,ae/(Ze-1)),g.push(ge.topN,ye.topP,de.topP),g.push(ye.bottomP,ge.bottomN,de.bottomP),ge=de,ae>(J+1)*L&&(J++,ye=this.buildBevelVert(I,U,(Y+J)%q,J/(Be-1)),g.push(me.topN,ye.topP,ge.topN),g.push(ye.bottomP,me.bottomN,ge.bottomN),me=ye)}Y=(Y+Be)%q,ne=(ne+Ze)%V,Ae=(Ae+1)%ue}while(Ae!==le)}{let z=F[0];for(let U=0,j=z.boundary.vertexCount;U<j;U++){let q=this.buildBevelVert(I,z,U),V=this.buildBevelVert(I,z,(U+1)%j);g.push(V.topP,q.topN,q.bottomN),g.push(V.topP,q.bottomN,V.bottomP)}}if(E){let z=[];for(let U=g.length-1;U>=Q+2;U-=3){let j=g[U-2],q=g[U-1],V=g[U-0];z.push(V,q,j)}g.splice(Q,g.length-Q,...z)}if(E){let z=[];for(let U=F[F.length-1].boundary.vertices.length-1;U>=1;U-=2){let j=F[F.length-1].boundary.vertices[U-1],q=F[F.length-1].boundary.vertices[U-0];z.push(j,q)}b.push(z)}if(!E){let z=F[F.length-1],U=Bo({windingRule:F.length>1?_t.POSITIVE:_t.ODD,elementType:SA.POLYGONS,vertexSize:2,strict:!0,contours:[z.insetPoints,...b]});if(!U)throw new Error("Error generating geometry for surface");c.length===0&&Object.assign(this,{capStartIndex:g.length});for(let j=0;j<U.elementCount*3;j+=3){let q=this.buildSurfaceVert(U,U.elements[j+0]),V=this.buildSurfaceVert(U,U.elements[j+1]),ue=this.buildSurfaceVert(U,U.elements[j+2]);g.push(q.top,V.top,ue.top),g.push(ue.bottom,V.bottom,q.bottom)}}this.vertexCache={}}this._buffer.shrink();let x=new Ge(Uint32Array.from(g),1),w=new Ge(this._buffer.positions,3),T=new Ge(this._buffer.normals,3),M=new Ge(this._buffer.uvs,2);w.needsUpdate=!0,T.needsUpdate=!0,M.needsUpdate=!0,x.needsUpdate=!0,this.setAttribute("position",w),this.setAttribute("normal",T),this.setAttribute("uv",M),this.setIndex(x)}buildSurfaceVert(t,A){let r=A.toString();if(r in this.vertexCache)return this.vertexCache[r];let i=t.vertices[A*2+0],s=t.vertices[A*2+1],o=(i-this._minX)/this._width,a=(s-this._minY)/this._height,c=this._buffer.get(2),l=c*3,u=c*2,h={top:c+0,bottom:c+1};return this._buffer.positions[l+0]=i,this._buffer.positions[l+1]=s,this._buffer.positions[l+2]=this._depth,this._buffer.normals[l+0]=0,this._buffer.normals[l+1]=0,this._buffer.normals[l+2]=1,this._buffer.uvs[u+0]=o,this._buffer.uvs[u+1]=a,this._buffer.positions[l+3]=i,this._buffer.positions[l+4]=s,this._buffer.positions[l+5]=0,this._buffer.normals[l+3]=0,this._buffer.normals[l+4]=0,this._buffer.normals[l+5]=-1,this._buffer.uvs[u+2]=o,this._buffer.uvs[u+3]=a,this.vertexCache[r]=h,h}buildBevelVert(t,A,r,i=1){let s=`${A.bevelI}:${r}`;if(s in this.vertexCache)return this.vertexCache[s];let[o,a]=A.boundary.vertexIndices[r],c,l,u,h;o!==a?(l=o,c=a,h=!1,u=t.continuous[l]&&t.continuous[c]):(c=o,l=(c-1+t.count)%t.count,h=t.concave[c]&&A.bevelI>0,u=t.continuous[c]||h);let d=Math.cos(A.angle),p=Math.sin(A.angle),f=r*2,m=c*2,y=l*2,g=A.boundary.vertices[f+0],b=A.boundary.vertices[f+1],x=(1-p)*this._bevelSize,w=(g-this._minX)/this._width,T=(b-this._minY)/this._height,M=t.normals[m+0],v=t.normals[m+1],E=t.normals[y+0],C=t.normals[y+1];if(h){let B=E-M,N=C-v;M=M+B*(1-i),v=v+N*(1-i);let W=Math.sqrt(M*M+v*v);M/=W,v/=W}let P=this._buffer.get(u?2:4),D=P*3,_=P*2,I={i:r,fi:c,topP:P+0,topN:P+0,bottomP:P+1,bottomN:P+1};return this._buffer.positions[D+0]=g,this._buffer.positions[D+1]=b,this._buffer.positions[D+2]=this._depth-x,this._buffer.normals[D+0]=M*d,this._buffer.normals[D+1]=v*d,this._buffer.normals[D+2]=p,this._buffer.uvs[_+0]=w,this._buffer.uvs[_+1]=T,this._buffer.positions[D+3]=g,this._buffer.positions[D+4]=b,this._buffer.positions[D+5]=x,this._buffer.normals[D+3]=M*d,this._buffer.normals[D+4]=v*d,this._buffer.normals[D+5]=-p,this._buffer.uvs[_+2]=T,this._buffer.uvs[_+3]=w,u||(P+=2,D+=6,_+=4,I.topP=P+0,I.bottomP=P+1,this._buffer.positions[D+0]=g,this._buffer.positions[D+1]=b,this._buffer.positions[D+2]=this._depth-x,this._buffer.normals[D+0]=E*d,this._buffer.normals[D+1]=C*d,this._buffer.normals[D+2]=p,this._buffer.uvs[_+0]=w,this._buffer.uvs[_+1]=T,this._buffer.positions[D+3]=g,this._buffer.positions[D+4]=b,this._buffer.positions[D+5]=x,this._buffer.normals[D+3]=E*d,this._buffer.normals[D+4]=C*d,this._buffer.normals[D+5]=-p,this._buffer.uvs[_+2]=T,this._buffer.uvs[_+3]=w),this.vertexCache[s]=I,I}clone(){let t=new Jl(this._shape,this._depth,this._bevel,this._curveSegments,this._bevelSegmentsInput);return t.userData=wu(this.userData),t}};var VA=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,e){let t=Object.assign({},e?.parameters??{width:100,subdivisions:40,roundness:0,extrudeBevelSize:0,extrudeBevelSegments:3,windingRule:_t.ODD},n.parameters),A=Math.abs(t.width),r=Math.abs(t.height??t.width),i=Math.abs(t.depth??0),s=n.shape??e?.shape,o=s?.roundness??t.roundness;s!==void 0&&(s instanceof yt?(s.width!==A||s.height!==r)&&s.applySize(A,r):s=new yt(A,r).fromJSON(s),n.parameters?.roundness!==void 0&&n.parameters?.roundness>0&&s.update(!1));let a=s??new yt(A,r);return{parameters:Object.assign(t,{width:A,height:r,depth:i,roundness:o}),shape:a}}static build(n){let{depth:e,extrudeBevelSize:t,extrudeBevelSegments:A,subdivisions:r,roundness:i,windingRule:s}=n.parameters;n.shape.roundness=i;let o;return e<=0?o=new Kl(n.shape,r,{windingRule:s}):o=new Jl(n.shape,e,t,r,A,s),Object.assign(o,{userData:{...n,type:"VectorGeometry"}})}};var XE=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,e){let t=Object.assign({},e?.parameters??{width:100,radialSegments:64,heightSegments:1,openEnded:!1,thetaStart:0,thetaLength:360,cornerRadius:0,cornerSegments:8,hollow:0},n.parameters),A=t.width/2,r=t.radiusTop??A,i=t.radiusBottom??A;return r===i?(r=A,i=A):r>i?(r=A,i=i*A/r):(r=r*A/i,i=A),{parameters:Object.assign(t,{width:Math.abs(t.width),height:Math.abs(t.height??t.width),depth:Math.abs(t.depth??t.width),radiusTop:r,radiusBottom:i})}}static build(n){let{width:e,depth:t,height:A,radialSegments:r,heightSegments:i,openEnded:s,thetaStart:o,thetaLength:a,radiusTop:c,radiusBottom:l,cornerRadius:u,cornerSegments:h,hollow:d}=n.parameters,p;return u||d?p=new nh(c,l,A,r,i,s,o,a*Math.PI/180,u,u,h,d):p=new lo(c,l,A,r,i,s,o,a*Math.PI/180),p.scale(1,1,t/e),Object.assign(p,{userData:{...n,type:"CylinderGeometry"}})}};function Ds(n,e,t){t.x=n.x*e.x,t.y=n.y,t.z=n.x*e.y}function qE(n){return new G(n.y,-n.x)}var nh=class extends Ie{constructor(e,t,A,r,i,s,o,a,c,l,u,h,d=!1){super(),this.type="RoundedCylinderBufferGeometry",e=e!==void 0?e:1,t=t!==void 0?t:1,A=A||1,r=Math.floor(r)||8,i=Math.floor(i)||1,s=s!==void 0?s:!1,o=o!==void 0?o:0,a=a!==void 0?a:Math.PI*2,s&&(c=0,l=0);let p=[],f=[],m=[],y=[],g=0,b=A/2,x=new S,w=new S;d&&e==0&&(e=c),d&&t==0&&(t=l);let T=new G(e,b),M=new G(t,-b),v=null,E=null,C=null,P=null,D=T.clone().sub(M),_=0,I=0,B=0;h>0&&(_=Math.min(e,t)*(1-h),I=e-_,B=t-_);let N=T.clone();N.x-=_;let W=Math.PI-D.angle(),X=D.angle(),F=Math.tan(X/2),k=Math.tan(W/2),Q=F+k,z=h?Q:k,U=h?Q:F;if(c=Math.min(c,(e-I)/z,D.length()/Q),l=Math.min(l,(t-B)/U,D.length()/Q),c>0){let K=c/F;v=T.clone().sub(new G(K,c)),h&&(C=v.clone(),C.x-=_-Q*c),T.sub(D.clone().setLength(K))}if(l>0){let K=l/k;E=M.clone().sub(new G(K,-l)),M.add(D.clone().setLength(K)),h&&(P=E.clone(),P.x-=_-Q*l,N.sub(D.clone().setLength(K)))}D=T.clone().sub(M);let j=D.length()<.5,q=[];for(let K=0;K<=r;K++){let Y=[],ne=K/r,le=ne*a+o,se=new G(Math.sin(le),Math.cos(le));P&&E?(V(Y,ne,se,W,l,P,-1,!0),V(Y,ne,se,X,l,E,-1,!1)):E?(ue(Y,se,E.x,0,-1),V(Y,ne,se,X,l,E,-1,!1)):s||ue(Y,se,t,B,-1);let Me=qE(D).normalize();if(Ds(Me,se,x),!j)for(let me=0;me<=i;me++){let ge=me/i,ye=D.clone().multiplyScalar(ge).add(M);Ds(ye,se,w),f.push(w.x,w.y,w.z),m.push(x.x,x.y,x.z),y.push(ne,.5+w.y/A),Y.push(g++)}if(C&&v?(V(Y,ne,se,W,c,v,1,!1),V(Y,ne,se,X,c,C,1,!0)):v?(V(Y,ne,se,W,c,v,1,!1),ue(Y,se,v.x,0,1)):s||ue(Y,se,e,I,1),h&&!j){let me=qE(D).multiplyScalar(-1).normalize();Ds(me,se,x);for(let ge=0;ge<=i;ge++){let ye=ge/i,de=D.clone().multiplyScalar(-ye).add(N);Ds(de,se,w),f.push(w.x,w.y,w.z),m.push(x.x,x.y,x.z),y.push(ne,.5+w.y/A),Y.push(g++)}}h&&!s&&Y.push(Y[0]),q.push(Y)}for(let K=0;K<q.length-1;K++)for(let Y=0;Y<q[0].length-1;Y++){if(s&&h&&Y==i)continue;let ne=q[K][Y],le=q[K+1][Y],se=q[K+1][Y+1],Me=q[K][Y+1],me=f[se*3+0],ge=f[se*3+2];p.push(ne,le,Me),(me!=0||ge!=0)&&p.push(le,se,Me)}a<Math.PI*2&&(Ae(-1,q[0],o),Ae(1,q[q.length-1],o+a)),this.setIndex(p),this.setAttribute("position",new Se(f,3)),this.setAttribute("normal",new Se(m,3)),this.setAttribute("uv",new Se(y,2));function V(K,Y,ne,le,se,Me,me,ge){for(let ye=0;ye<u+1;ye++){let de=ye/u,De=me<0?de:1-de;ge&&(De-=1),De*=le;let Be=new G(Math.sin(De),Math.cos(De)*me),Ze=Be.clone().multiplyScalar(se).add(Me);Ds(Ze,ne,w),f.push(w.x,w.y,w.z),Ds(Be,ne,x),m.push(x.x,x.y,x.z),y.push(Y,.5+w.y/A),K.push(g++)}}function ue(K,Y,ne,le,se){let Me=new S,me=new G,ge=[ne,le];se<0&&ge.reverse();for(let ye of ge)me.set(ye,b*se),Ds(me,Y,Me),f.push(Me.x,Me.y,Me.z),m.push(0,se,0),y.push(.5,.5),K.push(g++)}function Ae(K,Y,ne){let le=new G(Math.sin(ne),Math.cos(ne)),se=new G(-Math.cos(ne),Math.sin(ne)),Me=new S,me=K<0?(de,De,Be)=>p.push(de,De,Be):(de,De,Be)=>p.push(de,Be,De),ge=new G((e+t+I+B)/4,0);Ds(ge,le,Me),f.push(Me.x,Me.y,Me.z),m.push(se.x,0,se.y),y.push(.5,.5);let ye=g++;for(let de of Y){let De=f.slice(de*3,de*3+3);f.push(...De),m.push(se.x,0,se.y);let Be=y.slice(de*2,de*2+2);y.push(...Be),g++}for(let de=ye+1;de<g-1;de++)me(ye,de,de+1);me(ye,g-1,ye+1)}}};var QE=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,e){let t=Object.assign({},e?.parameters??{width:100,radialSegments:32,heightSegments:8,openEnded:!1,thetaStart:0,thetaLength:360,cornerRadiusTop:0,cornerRadiusBottom:0,cornerSegments:8},n.parameters);return{parameters:Object.assign(t,{width:Math.abs(t.width),height:Math.abs(t.height??t.width),depth:Math.abs(t.depth??t.width)})}}static build(n){let{width:e,depth:t,height:A,radialSegments:r,heightSegments:i,openEnded:s,thetaStart:o,thetaLength:a,cornerRadiusTop:c,cornerRadiusBottom:l,cornerSegments:u}=n.parameters,h;return c>0||l>0||a<360?h=new nh(0,e/2,A,r,i,s,o,a*Math.PI/180,c,l,u,0,!0):h=new wa(e/2,A,r,i,s),h.scale(1,1,t/e),Object.assign(h,{userData:{...n,type:"ConeGeometry"}})}};var ZE=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,e){let t=Object.assign({},e?.parameters??{width:100,widthSegments:1,heightSegments:1,depthSegments:1,cornerRadius:0,cornerSegments:8},n.parameters);return{parameters:Object.assign(t,{width:Math.abs(t.width),height:Math.abs(t.height??t.width),depth:Math.abs(t.depth??t.width)})}}static build(n){let{width:e,height:t,depth:A,widthSegments:r,heightSegments:i,depthSegments:s,cornerRadius:o,cornerSegments:a}=n.parameters,c;return o==0?c=new fn(e,t,A,r,i,s):c=new a0(e,t,A,r,i,s,o,a),Object.assign(c,{userData:{...n,type:"CubeGeometry"}})}},o0=Math.PI/2,a0=class extends Ie{constructor(e=1,t=1,A=1,r=1,i=1,s=1,o=0,a=4){super(),this.type="BoxGeometry";let c=this;r=Math.floor(r),i=Math.floor(i),s=Math.floor(s),a=Math.floor(a),o=Math.min(o,e/2,t/2,A/2);let l=[],u=[],h=[],d=[],p=0,f=0;m("z","y","x",-1,-1,A,t,e,s,i,0),m("z","y","x",1,-1,A,t,-e,s,i,1),m("x","z","y",1,1,e,A,t,r,s,2),m("x","z","y",1,-1,e,A,-t,r,s,3),m("x","y","z",1,-1,e,t,A,r,i,4),m("x","y","z",-1,-1,e,t,-A,r,i,5),o>0&&(y("z","y","x",-1,-1,1,A,t,e,s,0),y("z","y","x",1,-1,-1,A,t,e,s,1),y("z","y","x",-1,1,-1,A,t,e,s,1),y("z","y","x",1,1,1,A,t,e,s,0),y("x","y","z",-1,-1,-1,e,t,A,r,0),y("x","y","z",1,-1,1,e,t,A,r,1),y("x","y","z",-1,1,1,e,t,A,r,0),y("x","y","z",1,1,-1,e,t,A,r,1),y("y","x","z",-1,-1,1,t,e,A,i,0),y("y","x","z",1,-1,-1,t,e,A,i,1),y("y","x","z",1,1,1,t,e,A,i,1),y("y","x","z",-1,1,-1,t,e,A,i,0),g(1,1,1),g(-1,1,1),g(1,-1,1),g(-1,-1,1),g(1,1,-1),g(-1,1,-1),g(1,-1,-1),g(-1,-1,-1)),this.setIndex(l),this.setAttribute("position",new Se(u,3)),this.setAttribute("normal",new Se(h,3)),this.setAttribute("uv",new Se(d,2));function m(b,x,w,T,M,v,E,C,P,D,_){let I=(v-2*o)/P,B=(E-2*o)/D,N=v/2-o,W=E/2-o,X=C/2,F=P+1,k=D+1,Q=0,z=0,U=new S;for(let j=0;j<k;j++){let q=j*B-W;for(let V=0;V<F;V++){let ue=V*I-N;U[b]=ue*T,U[x]=q*M,U[w]=X,u.push(U.x,U.y,U.z),U[b]=0,U[x]=0,U[w]=C>0?1:-1,h.push(U.x,U.y,U.z),d.push(V/P),d.push(1-j/D),Q+=1}}for(let j=0;j<D;j++)for(let q=0;q<P;q++){let V=p+q+F*j,ue=p+q+F*(j+1),Ae=p+(q+1)+F*(j+1),K=p+(q+1)+F*j;l.push(V,ue,K),l.push(ue,Ae,K),z+=6}c.addGroup(f,z,_),f+=z,p+=Q}function y(b,x,w,T,M,v,E,C,P,D,_){let I=(E-2*o)/D,B=E/2-o,N=C/2-o,W=P/2,X=D+1,F=0,k=0,Q=new S,z=new S;for(let U=0;U<a+1;U++){let j=U/a*o0,q=Math.sin(j)*o,V=(1-Math.cos(j))*o,ue=Math.sin(j),Ae=Math.cos(j);Q[x]=(N+q)*M,Q[w]=(W-V)*v,z[b]=0,z[x]=ue*Math.sign(Q[x]),z[w]=Ae*Math.sign(Q[w]);for(let K=0;K<X;K++){let Y=K*I-B;Q[b]=Y*T,u.push(Q.x,Q.y,Q.z),h.push(z.x,z.y,z.z),d.push(K/D),d.push(0),F+=1}}for(let U=0;U<a;U++)for(let j=0;j<D;j++){let q=p+j+X*U,V=p+j+X*(U+1),ue=p+(j+1)+X*(U+1),Ae=p+(j+1)+X*U;l.push(q,V,Ae),l.push(V,ue,Ae),k+=6}c.addGroup(f,k,_),f+=k,p+=F}function g(b,x,w){let T=new S,M=new S(e/2,t/2,A/2);M.subScalar(o);let v=[],E=b*x*w>0?(P,D,_)=>l.push(P,D,_):(P,D,_)=>l.push(P,_,D);for(let P=0;P<=a;P++){let D=[],_=o0*(1-P/a),I=Math.cos(_),B=Math.sin(_),N=0;for(let W=0;W<=P;W++){let X=Math.cos(N),F=Math.sin(N);T.x=I*X,T.y=B,T.z=I*F;let k=M.clone().addScaledVector(T,o);u.push(b*k.x,x*k.y,w*k.z),h.push(b*T.x,x*T.y,w*T.z),d.push(0,0),D.push(p++),N+=o0/P}v.push(D)}let C=v.length-1;for(let P=0;P<C;P++){let D=v[P],_=v[P+1],I=D.length-1;E(D[0],_[1],_[0]);for(let B=1;B<=I;B++)E(D[B-1],D[B],_[B]),E(D[B],_[B+1],_[B])}}}};var Is=class extends Ie{constructor(e=[],t=[],A="",r=1,i=.2,s=4){super(),this.type="PolyhedronGeometryRound";let o=[],a=[],c=[];l(),u(),this.setAttribute("position",new Se(o,3)),this.setAttribute("normal",new Se(c,3)),this.setAttribute("uv",new Se(a,2));return;function l(){i=Math.min(1-1e-5,i),i==0&&(s=0);let d={IcosahedronGeometry:5,DodecahedronGeometry:3,HexahedronGeometry:3,OctahedronGeometry:4,TetrahedronGeometry:3}[A],p=new S,f=p.clone(),m=new Zt,y=i*r,g=r-y,b=s+1,x=new S,w=(F,k)=>x.subVectors(F,k).normalize(),T=(F,k)=>Array(F).fill(void 0).map(k),M=T(e.length/3,(F,k)=>new S().fromArray(e,k*3).setLength(r)),v=[],E=1e6;for(let F=0;F<M.length;F++){let k=M[F],Q=[],z,U,j,q=1e10,V=-1;for(;(V=t.indexOf(F,V+1))!=-1;){let Y=V-V%3;z=t[Y+(V+1)%3],U=t[Y+(V+2)%3],j=k.distanceToSquared(M[z]),q=Math.min(q,j),Q.push([z,U,j])}q+=1e-6;let ue=[],Ae=0,K=Q.length;for(let Y=0;Y<K;Y++){[z,U,j]=Q[Ae];let ne=v[z]?.includes(F)==!0;j<=q&&ue.push(z+ +ne*E),Ae=Q.findIndex(le=>le[0]==U)}v.push(ue)}let C=[];{let F=0,k=0,Q,z,U=d==3;for(let j=0;j<=s;j++){Q=j*(j+1)/2,z=(j+1)*(j+2)/2;for(let q=0;q<s-j;q++)[F,k]=[Q+q+j+2,z+q+j+3],C.push(Q,z,...U?[k,Q]:[F,z],k,F),[Q,z]=[F,k];C.push(Q,z,Q+s+2)}}let P=p.clone(),D=p.clone(),_=p.clone(),I=p.clone(),B=p.clone(),N=[],W=T(M.length,()=>T(d,()=>p.clone()));for(let F=0;F<M.length;F++){p.copy(M[F]).normalize(),P.copy(p).multiplyScalar(g);let k=v[F];for(let ue=0;ue<k.length;ue++){let Ae=k[ue],K=k[(ue+1)%d];m.setFromPointsAndIndices(M,F,Ae%E,K%E),m.b.sub(m.a).setLength(1e10).add(m.a),m.c.sub(m.a).setLength(1e10).add(m.a),m.closestPointToPoint(P,W[F][ue])}let Q=[],z=[],U=[],j=new S;s==0&&[...W[F]].reduce((ue,Ae)=>ue.add(Ae),j).multiplyScalar(1/d);for(let ue=0;ue<d;ue++){let Ae=[],K=(ue-1+d)%d,Y=W[F][K],ne=W[F][ue];p.copy(Y).sub(P),f.copy(ne).sub(P);let le=P.angleTo(p),se=p.angleTo(f),Me=Math.cos(le)*y;s==0?D.copy(j):D.copy(P).setLength(g+Me),z.push(Me);let me=[D,Y,ne];for(let ge=0;ge<2;ge++){let ye=me[ge],de=me[ge+1];I.subVectors(ye,P),B.subVectors(de,P),_.crossVectors(I,B).normalize();for(let De=0;De<b;De++){let Be=[le,se][ge]*De/b;p.copy(I).applyAxisAngle(_,Be).add(P),Q.push(p.clone()),ge&&(w(p,P),Ae.push([De==0?ye:p.clone(),x.clone()]))}ge&&(w(de,P),Ae.push([de,x.clone()]))}U.push(Ae)}N.push(U);let q=2*b,V=2;for(let ue=0;ue<d;ue++){let Ae=q*ue,K=q*((ue+1)%d),Y=[Q[Ae]];for(let le=1;le<b;le++){I=Q[Ae+le],B=Q[K+le],Y.push(I);for(let se=1,Me=le-V+1;se<=Me;se++)p.lerpVectors(I,B,se/(Me+1)),p.sub(P).setLength(z[ue]).add(P),Y.push(p.clone());Y.push(B)}for(let le=0;le<b;le++)Y.push(Q[le+b+Ae]);Y.push(Q[K+b]);let ne=C.map(le=>Y[le]);o.push(...ne.map(le=>[le.x,le.y,le.z]).flat()),c.push(...ne.map(le=>(w(le,P),[x.x,x.y,x.z])).flat())}}let X=[];for(let F=0;F<v.length;F++)for(let k=0;k<d;k++){let Q=v[F][k];if(Q<E){let z=v[Q].findIndex(q=>q%E==F),U=N[F][k],j=N[Q][z];for(let q=0;q<b;q++){let V=U[q],ue=j[b-q],Ae=U[q+1],K=j[b-(q+1)];[V,ue,Ae,Ae,ue,K].forEach(Y=>{o.push(Y[0].x,Y[0].y,Y[0].z),c.push(Y[1].x,Y[1].y,Y[1].z)})}X.push(U[0][0],j[b][0],U[b][0],j[0][0])}}for(;X.length;){let F,k,Q,z;[F,k]=X.splice(0,2);let U=[F];for(;F!=k;)U.push(k),Q=X.indexOf(k),z=Q%2,k=X.splice(Q-z,2)[1-z];x.subVectors(U[0],U[1]).cross(p.subVectors(U[0],U[2])).normalize();let j=x.dot(U[0])<0;j&&x.negate();for(let q=1;q<=U.length-2;q++)[U[q+ +j],U[q+1-+j],U[0]].forEach(V=>{o.push(V.x,V.y,V.z),c.push(x.x,x.y,x.z)})}}function u(){let h=new S;for(let M=0;M<o.length;M+=3){h.x=o[M+0],h.y=o[M+1],h.z=o[M+2];let v=w(h)/2/Math.PI+.5,E=T(h)/Math.PI+.5;a.push(v,1-E)}let d=new S,p=new S,f=new S,m=new S,y=new G,g=new G,b=new G,x=(M,v,E,C)=>{C<0&&M.x===1&&(a[v]=M.x-1),E.x===0&&E.z===0&&(a[v]=C/2/Math.PI+.5)};for(let M=0,v=0;M<o.length;M+=9,v+=6){d.set(o[M+0],o[M+1],o[M+2]),p.set(o[M+3],o[M+4],o[M+5]),f.set(o[M+6],o[M+7],o[M+8]),y.set(a[v+0],a[v+1]),g.set(a[v+2],a[v+3]),b.set(a[v+4],a[v+5]),m.copy(d).add(p).add(f).divideScalar(3);let E=w(m);x(y,v+0,d,E),x(g,v+2,p,E),x(b,v+4,f,E)}for(let M=0;M<a.length;M+=6){let v=a[M+0],E=a[M+2],C=a[M+4],P=Math.max(v,E,C),D=Math.min(v,E,C);P>.9&&D<.1&&(v<.2&&(a[M+0]+=1),E<.2&&(a[M+2]+=1),C<.2&&(a[M+4]+=1))}function w(M){return Math.atan2(M.z,-M.x)}function T(M){return Math.atan2(-M.y,Math.sqrt(M.x*M.x+M.z*M.z))}}}static fromJSON(e){return new Is(e.vertices,e.indices,e.radius,e.corner,e.cornerSides)}};var KE=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,e){let t=Object.assign({},e?.parameters??{width:100,detail:0,corner:0,cornerSides:4},n.parameters);return{parameters:Object.assign(t,{width:Math.abs(t.width),height:Math.abs(t.height??t.width),depth:Math.abs(t.depth??t.width)})}}static build(n){let{width:e,height:t,depth:A,detail:r,corner:i,cornerSides:s}=n.parameters,o=r===0&&i!==0?new rh(e*.5,i,s):new Ta(e*.5,r);return o.scale(1,t/e,A/e),Object.assign(o,{userData:{...n,type:"DodecahedronGeometry"}})}},rh=class extends Is{constructor(e=1,t=.2,A=4){let r=(1+Math.sqrt(5))/2,i=1/r,s=[-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,-i,-r,0,-i,r,0,i,-r,0,i,r,-i,-r,0,-i,r,0,i,-r,0,i,r,0,-r,0,-i,r,0,-i,-r,0,i,r,0,i],o=[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],a="DodecahedronGeometry";super(s,o,a,e,t,A),this.type=a}static fromJSON(e){return new rh(e.radius,e.corner,e.cornerSides)}};var c0=Math.PI*2;function l0({x:n,y:e},t,A,r,i){return{x:n*t+r,y:e*A+i}}function E4(n,e){let t=e===1.5707963267948966?.551915024494:e===-1.5707963267948966?-.551915024494:1.3333333333333333*Math.tan(e/4),A=Math.cos(n),r=Math.sin(n),i=Math.cos(n+e),s=Math.sin(n+e);return[{x:A-r*t,y:r+A*t},{x:i+s*t,y:s-i*t},{x:i,y:s}]}function JE(n,e,t,A){let r=n*A-e*t<0?-1:1,i=Math.min(1,Math.max(-1,n*t+e*A));return r*Math.acos(i)}function C4(n,e,t,A,r,i,s,o,a,c){let l=Math.pow(r,2),u=Math.pow(i,2),h=Math.pow(s,2),d=Math.pow(o,2),p=l*u-l*d-u*h;p<0&&(p=0),p/=l*d+u*h,p=Math.sqrt(p)*(a===c?-1:1);let f=p*r/i*o,m=p*-i/r*s,y=f+(n+t)/2,g=m+(e+A)/2,b=(s-f)/r,x=(o-m)/i,w=(-s-f)/r,T=(-o-m)/i,M=JE(1,0,b,x),v=JE(b,x,w,T);return!c&&v>0&&(v-=c0),c&&v<0&&(v+=c0),{centerx:y,centery:g,ang1:M,ang2:v}}function $E({px:n,py:e,cx:t,cy:A,rx:r,ry:i,largeArcFlag:s,sweepFlag:o}){let a=[];if(r===0||i===0)return[];let c=(n-t)/2,l=(e-A)/2;if(c===0&&l===0)return[];r=Math.abs(r),i=Math.abs(i);let u=Math.pow(c,2)/Math.pow(r,2)+Math.pow(l,2)/Math.pow(i,2);u>1&&(r*=Math.sqrt(u),i*=Math.sqrt(u));let h=C4(n,e,t,A,r,i,c,l,s,o),{ang1:d,ang2:p}=h,{centerx:f,centery:m}=h,y=Math.abs(p)/(c0/4);Math.abs(1-y)<1e-7&&(y=1);let g=Math.max(Math.ceil(y),1);p/=g;for(let b=0;b<g;b++)a.push(E4(d,p)),d+=p;return a.map(b=>{let{x,y:w}=l0(b[0],r,i,f,m),{x:T,y:M}=l0(b[1],r,i,f,m),{x:v,y:E}=l0(b[2],r,i,f,m);return{x1:x,y1:w,x2:T,y2:M,x:v,y:E}})}var tC=Math.PI*2,AC=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,e){let t=Object.assign({},e?.parameters??{width:100,depth:0,spikes:64,angle:360,innerRadius:0,extrudeBevelSize:0,extrudeBevelSegments:1},n.parameters);return{shape:n.shape&&n.shape instanceof yt?n.shape:new yt,parameters:Object.assign(t,{width:Math.abs(t.width),height:Math.abs(t.height??t.width),depth:Math.abs(t.depth??0)})}}static build(n){let{width:e,height:t,spikes:A,angle:r,innerRadius:i,depth:s,extrudeBevelSize:o,extrudeBevelSegments:a}=n.parameters,c=n.shape,l=e*.5,u=t*.5,h=P4(c,l,u,r*Math.PI/180,A,i);c.isClosed=!0,c.update();let d=VA.create({shape:c,parameters:{subdivisions:h,depth:s,extrudeBevelSize:o,extrudeBevelSegments:a}});return Object.assign(d,{userData:{...n,type:"EllipseGeometry"}})}};function P4(n,e,t,A,r,i){if(A>=tC)return r>30||r%4===0?(I4(n,e,t,i),Math.round(r/4)):eC(n,A,r,e,t,i);let s={x:0,y:t},o=A+Math.PI*.5,a={x:Math.cos(o)*e,y:Math.sin(o)*t},c=$E({px:s.x,py:s.y,cx:a.x,cy:a.y,rx:e,ry:t,largeArcFlag:A>Math.PI,sweepFlag:!0});return r>30||r%c.length===0?D4(n,s.x,s.y,c,r,e,t,i):eC(n,A,r,e,t,i)}function D4(n,e,t,A,r,i,s,o){let a=Math.round(r/A.length);n.addPoint($l(e,t));for(let c=0,l=A.length;c<l;c++){let u=A[c],h=n.points[c],d=$l(u.x,u.y);h.controls[1].position.set(u.x1,u.y1),d.controls[0].position.set(u.x2,u.y2),n.addPoint(d)}return o>0?nC(n,i,s,o):n.addPoint($l(0,0)),a}function eC(n,e,t,A,r,i){let s=-e/t;for(let o=0;o<=t;o++){let a=s*o,c=Math.sin(a)*A,l=Math.cos(a)*r;n.addPoint($l(c,l))}return e<tC?i>0?nC(n,A,r,i):n.addPoint($l(0,0)):(n.removePoint(n.points[n.points.length-1]),i>0&&rC(n,A,r,i)),1}function I4(n,e,t,A=0,r=0,i=0){let s=.5522847498,o=e*s,a=t*s;n.addPoint(Up(r-e,i,r-e,i-a,r-e,i+a)),n.addPoint(Up(r,i+t,r-o,i+t,r+o,i+t)),n.addPoint(Up(r+e,i,r+e,i+a,r+e,i-a)),n.addPoint(Up(r,i-t,r+o,i-t,r-o,i-t)),A>0&&rC(n,e,t,A)}function $l(n,e){return new br(ze.generateUUID(),new G(n,e))}function Up(n,e,t,A,r,i){let s=$l(n,e);return s.controls[0].position.set(t,A),s.controls[1].position.set(r,i),s}function nC(n,e,t,A){iC(n,e,t,A).forEach(i=>n.addPoint(i))}function rC(n,e,t,A){let r=iC(n,e,t,A),i=new yt;r.forEach(s=>i.addPoint(s)),i.isClosed=!0,n.shapeHoles.push(i)}function iC(n,e,t,A){let r=A*e/100,i=r*(Math.abs(t)/Math.abs(e)),s=new G(r/e,i/t),o=n.points.map(a=>{let c=a.clone();return c.uuid=ze.generateUUID(),c}).reverse();return o.forEach(a=>{a.position.multiply(s);let c=a.controls[0].position.clone().multiply(s),l=a.controls[1].position.clone().multiply(s);a.controls[0].position.copy(l),a.controls[1].position.copy(c)}),o}var sC=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,e){let t=Object.assign({},e?.parameters??{width:100,revolutions:2,segments:40,pathRadius:10,pathType:0,pathSegments:30,cornerRadius:30,cornerSegments:4},n.parameters),A=Math.abs(t.width),r=Math.abs(t.height??A),i=Math.abs(t.depth??A),s=Math.abs(Math.min(A,i))/2;return{parameters:Object.assign(t,{width:A,height:r,depth:i,radius:s,segments:Math.round(t.segments),pathSegments:Math.round(t.pathSegments),cornerSegments:Math.round(t.cornerSegments)})}}static build(n){let{width:e,height:t,depth:A,radius:r,revolutions:i,segments:s,pathRadius:o,pathType:a,pathSegments:c,cornerRadius:l,cornerSegments:u}=n.parameters,h=new ih(!1,e,t,A,r,i,s,o,a,c,l,u);return Object.assign(h,{userData:{...n,type:"HelixGeometry"}})}},ih=class extends Ie{constructor(e=!0,t=1,A=1,r=1,i=1,s=1,o=1,a=1,c=1,l=1,u=1,h=1){super();let d=e&&s===1;d&&(h=0),u>100&&(u=100);let p=()=>new S,f=new S,m=p(),y=p(),g=p(),b,x,w,T,M,v,E,C,P=p(),D=p(),_=p(),I=p(),B=p(),N=p(),W=p(),X=p(),F=A-2*a+.001,k=F/s,Q=Math.ceil(o*s),z=Q+1,U=F/Q,j=-F/2,q=l+1,V=2*Math.PI/l,ue=Math.PI/2/h,Ae=.01,K=Math.min((1-u/100)*a,a-Ae),Y=a-K,ne=0,le=2,se=h*le+le,Me=q*se/le,me=Me+q*z,ge=q*(z+se),[ye,de,De]=[3,3,2].map(ve=>Array(ge*ve).fill(0)),Be=[],Ze=i-a;function R(ve,H){let xe=Math.PI/2;v=H*U,C=2*Math.PI*(v%k)/k+xe,v+=j,E=Math.sin(C)*Ze,M=Math.cos(C)*Ze,e?ve.set(M,E,v):ve.set(M,v,E)}R(f,-1e-10),R(m,0),P.copy(f),R(f,1);let L=f.distanceTo(m),J=d?0:Y+K,ae=L*Q+2*J,fe=K,Ce=ae-J;for(let ve=0;ve<=Q;ve++){R(y,ve),X.subVectors(y,P).normalize(),P.copy(y),N.copy(y).setComponent(+e+1,0).normalize(),W.crossVectors(X,N).normalize();let H=ve===0,xe=ve===Q,Te=H?3*Math.PI/2:ue,Qe=H?fe:Ce,Re=H?q:me,Je=H?0:ge-q,be=X.clone().multiplyScalar(H?-Y:Y).add(y),$e=X.clone().multiplyScalar(H?-1:1).normalize();for(let st=0;st<q;st++){let vt=st*V;if(D.addVectors(f.copy(N).multiplyScalar(a*Math.cos(vt)),m.copy(W).multiplyScalar(a*Math.sin(vt))),_.copy(D).normalize(),H||xe){d||(ne=Je+st,[0,1,2].forEach(Tt=>{ye[ne*3+Tt]=be.getComponent(Tt),de[ne*3+Tt]=$e.getComponent(Tt)}),De[ne*2]=+xe,De[ne*2+1]=st/l),m.copy(_).multiplyScalar(K),g.addVectors(y,m);for(let Tt=0;Tt<h;Tt++){let dn=Tt*ue+Te;I.addVectors(f.copy(X).multiplyScalar(Y*Math.sin(dn)),m.copy(_).multiplyScalar(Y*Math.cos(dn))),B.copy(I).normalize(),m.addVectors(g,I),I.normalize(),ne=Re+Tt*q+st,[0,1,2].forEach(Yo=>{ye[ne*3+Yo]=m.getComponent(Yo),de[ne*3+Yo]=B.getComponent(Yo)});let ed=+H+Math.sin(dn);De[ne*2]=(Qe+Y*ed)/ae,De[ne*2+1]=st/l}}m.addVectors(y,D),ne=Me+ve*q+st,[0,1,2].forEach(Tt=>{ye[ne*3+Tt]=m.getComponent(Tt),de[ne*3+Tt]=_.getComponent(Tt)}),De[ne*2]=(J+ve*L)/ae,De[ne*2+1]=st/l}}let Fe=z+2*h+le,re=1,[Ne,Oe]=[+d,Fe-1];for(let ve=Ne;ve<=Oe-1;ve++){let H=d&&ve===Oe-1;for(let xe=0;xe<q-1;xe++)b=ve*q+xe,x=b+1,w=(H?xe:b)+q,T=(H?xe+1:x)+q,ve===0?Be.push(x,T,w):ve===Fe-2?Be.push(b,x,w):Be.push(b,x,w,x,T,w)}this.setIndex(Be),this.setAttribute("position",new Se(ye,3)),this.setAttribute("normal",new Se(de,3)),this.setAttribute("uv",new Se(De,2))}};var oC=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,e){let t=Object.assign({},e?.parameters??{width:100,detail:0,corner:0,cornerSides:4},n.parameters);return{parameters:Object.assign(t,{width:Math.abs(t.width),height:Math.abs(t.height??t.width),depth:Math.abs(t.depth??t.width)})}}static build(n){let{width:e,height:t,depth:A,detail:r,corner:i,cornerSides:s}=n.parameters,o=r===0&&i!==0?new sh(e*.5,i,s):new Ea(e*.5,r);return o.scale(1,t/e,A/e),Object.assign(o,{userData:{...n,type:"IcosahedronGeometry"}})}},sh=class extends Is{constructor(e=1,t=.2,A=4){let r=(1+Math.sqrt(5))/2,i=[-1,r,0,1,r,0,-1,-r,0,1,-r,0,0,-1,r,0,1,r,0,-1,-r,0,1,-r,r,0,-1,r,0,1,-r,0,-1,-r,0,1],s=[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],o="IcosahedronGeometry";super(i,s,o,e,t,A),this.type=o}static fromJSON(e){return new sh(e.radius,e.corner,e.cornerSides)}};var aC=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,e){(n.parameters?.points??[]).forEach(A=>{Array.isArray(A)&&(A.x=A[0],A.y=A[1])});let t=Object.assign({},e?.parameters??{width:100,segments:64,verticalSegments:64,points:[{x:0,y:-50,id:0},{x:50,y:-50,id:1},{x:50,y:50,id:2},{x:0,y:50,id:3}]},n.parameters);return{parameters:Object.assign(t,{width:Math.abs(t.width),height:Math.abs(t.height??t.width),depth:Math.abs(t.depth??t.width)})}}static build(n){let{points:e,segments:t,verticalSegments:A}=n.parameters,r=new Mi;r.moveTo(e[0].x,e[0].y),r.bezierCurveTo(e[1].x,e[1].y,e[2].x,e[2].y,e[3].x,e[3].y);let i=new ba(r.extractPoints(A).shape,t);return i.rotateZ(Math.PI),Object.assign(i,{userData:{...n,type:"LatheGeometry"}})}};var Zr=new he,u0=new ht,Vp=new S,Ls=class extends Ot{constructor(){super(),this.uuid=ze.generateUUID(),this.name="",this.type="Geometry",this.vertices=[],this.colors=[],this.faces=[],this.faceVertexUvs=[[]],this.morphTargets=[],this.morphNormals=[],this.skinWeights=[],this.skinIndices=[],this.lineDistances=[],this.boundingBox=null,this.boundingSphere=null,this.elementsNeedUpdate=!1,this.verticesNeedUpdate=!1,this.uvsNeedUpdate=!1,this.normalsNeedUpdate=!1,this.colorsNeedUpdate=!1,this.lineDistancesNeedUpdate=!1,this.groupsNeedUpdate=!1}applyMatrix4(e){let t=new Wt().getNormalMatrix(e);for(let A=0,r=this.vertices.length;A<r;A++)this.vertices[A].applyMatrix4(e);for(let A=0,r=this.faces.length;A<r;A++){let i=this.faces[A];i.normal.applyMatrix3(t).normalize();for(let s=0,o=i.vertexNormals.length;s<o;s++)i.vertexNormals[s].applyMatrix3(t).normalize()}return this.boundingBox!==null&&this.computeBoundingBox(),this.boundingSphere!==null&&this.computeBoundingSphere(),this.verticesNeedUpdate=!0,this.normalsNeedUpdate=!0,this}rotateX(e){return Zr.makeRotationX(e),this.applyMatrix4(Zr),this}rotateY(e){return Zr.makeRotationY(e),this.applyMatrix4(Zr),this}rotateZ(e){return Zr.makeRotationZ(e),this.applyMatrix4(Zr),this}translate(e,t,A){return Zr.makeTranslation(e,t,A),this.applyMatrix4(Zr),this}scale(e,t,A){return Zr.makeScale(e,t,A),this.applyMatrix4(Zr),this}lookAt(e){return u0.lookAt(e),u0.updateMatrix(),this.applyMatrix4(u0.matrix),this}fromBufferGeometry(e){let t=this,A=e.index!==null?e.index:void 0,r=e.attributes;if(r.position===void 0)return console.error("THREE.Geometry.fromBufferGeometry(): Position attribute required for conversion."),this;let i=r.position,s=r.normal,o=r.color,a=r.uv,c=r.uv2;c!==void 0&&(this.faceVertexUvs[1]=[]);for(let h=0;h<i.count;h++)t.vertices.push(new S().fromBufferAttribute(i,h)),o!==void 0&&t.colors.push(new _e().fromBufferAttribute(o,h));function l(h,d,p,f){let m=o===void 0?[]:[t.colors[h].clone(),t.colors[d].clone(),t.colors[p].clone()],y=s===void 0?[]:[new S().fromBufferAttribute(s,h),new S().fromBufferAttribute(s,d),new S().fromBufferAttribute(s,p)],g=new ec(h,d,p,y,m,f);t.faces.push(g),a!==void 0&&t.faceVertexUvs[0].push([new G().fromBufferAttribute(a,h),new G().fromBufferAttribute(a,d),new G().fromBufferAttribute(a,p)]),c!==void 0&&t.faceVertexUvs[1].push([new G().fromBufferAttribute(c,h),new G().fromBufferAttribute(c,d),new G().fromBufferAttribute(c,p)])}let u=e.groups;if(u.length>0)for(let h=0;h<u.length;h++){let d=u[h],p=d.start,f=d.count;for(let m=p,y=p+f;m<y;m+=3)A!==void 0?l(A.getX(m),A.getX(m+1),A.getX(m+2),d.materialIndex):l(m,m+1,m+2,d.materialIndex)}else if(A!==void 0)for(let h=0;h<A.count;h+=3)l(A.getX(h),A.getX(h+1),A.getX(h+2));else for(let h=0;h<i.count;h+=3)l(h,h+1,h+2);return this.computeFaceNormals(),e.boundingBox!==null&&(this.boundingBox=e.boundingBox.clone()),e.boundingSphere!==null&&(this.boundingSphere=e.boundingSphere.clone()),this}center(){return this.computeBoundingBox(),this.boundingBox.getCenter(Vp).negate(),this.translate(Vp.x,Vp.y,Vp.z),this}normalize(){this.computeBoundingSphere();let e=this.boundingSphere.center,t=this.boundingSphere.radius,A=t===0?1:1/t,r=new he;return r.set(A,0,0,-A*e.x,0,A,0,-A*e.y,0,0,A,-A*e.z,0,0,0,1),this.applyMatrix4(r),this}computeFaceNormals(){let e=new S,t=new S;for(let A=0,r=this.faces.length;A<r;A++){let i=this.faces[A],s=this.vertices[i.a],o=this.vertices[i.b],a=this.vertices[i.c];e.subVectors(a,o),t.subVectors(s,o),e.cross(t),e.normalize(),i.normal.copy(e)}}computeVertexNormals(e=!0){let t=new Array(this.vertices.length);for(let A=0,r=this.vertices.length;A<r;A++)t[A]=new S;if(e){let A=new S,r=new S;for(let i=0,s=this.faces.length;i<s;i++){let o=this.faces[i],a=this.vertices[o.a],c=this.vertices[o.b],l=this.vertices[o.c];A.subVectors(l,c),r.subVectors(a,c),A.cross(r),t[o.a].add(A),t[o.b].add(A),t[o.c].add(A)}}else{this.computeFaceNormals();for(let A=0,r=this.faces.length;A<r;A++){let i=this.faces[A];t[i.a].add(i.normal),t[i.b].add(i.normal),t[i.c].add(i.normal)}}for(let A=0,r=this.vertices.length;A<r;A++)t[A].normalize();for(let A=0,r=this.faces.length;A<r;A++){let i=this.faces[A],s=i.vertexNormals;s.length===3?(s[0].copy(t[i.a]),s[1].copy(t[i.b]),s[2].copy(t[i.c])):(s[0]=t[i.a].clone(),s[1]=t[i.b].clone(),s[2]=t[i.c].clone())}this.faces.length>0&&(this.normalsNeedUpdate=!0)}computeFlatVertexNormals(){this.computeFaceNormals();for(let e=0,t=this.faces.length;e<t;e++){let A=this.faces[e],r=A.vertexNormals;r.length===3?(r[0].copy(A.normal),r[1].copy(A.normal),r[2].copy(A.normal)):(r[0]=A.normal.clone(),r[1]=A.normal.clone(),r[2]=A.normal.clone())}this.faces.length>0&&(this.normalsNeedUpdate=!0)}computeMorphNormals(){for(let t=0,A=this.faces.length;t<A;t++){let r=this.faces[t];r.__originalFaceNormal?r.__originalFaceNormal.copy(r.normal):r.__originalFaceNormal=r.normal.clone(),r.__originalVertexNormals||(r.__originalVertexNormals=[]);for(let i=0,s=r.vertexNormals.length;i<s;i++)r.__originalVertexNormals[i]?r.__originalVertexNormals[i].copy(r.vertexNormals[i]):r.__originalVertexNormals[i]=r.vertexNormals[i].clone()}let e=new Ls;e.faces=this.faces;for(let t=0,A=this.morphTargets.length;t<A;t++){if(!this.morphNormals[t]){this.morphNormals[t]={},this.morphNormals[t].faceNormals=[],this.morphNormals[t].vertexNormals=[];let i=this.morphNormals[t].faceNormals,s=this.morphNormals[t].vertexNormals;for(let o=0,a=this.faces.length;o<a;o++){let c=new S,l={a:new S,b:new S,c:new S};i.push(c),s.push(l)}}let r=this.morphNormals[t];e.vertices=this.morphTargets[t].vertices,e.computeFaceNormals(),e.computeVertexNormals();for(let i=0,s=this.faces.length;i<s;i++){let o=this.faces[i],a=r.faceNormals[i],c=r.vertexNormals[i];a.copy(o.normal),c.a.copy(o.vertexNormals[0]),c.b.copy(o.vertexNormals[1]),c.c.copy(o.vertexNormals[2])}}for(let t=0,A=this.faces.length;t<A;t++){let r=this.faces[t];r.normal=r.__originalFaceNormal,r.vertexNormals=r.__originalVertexNormals}}computeBoundingBox(){this.boundingBox===null&&(this.boundingBox=new Ct),this.boundingBox.setFromPoints(this.vertices)}computeBoundingSphere(){this.boundingSphere===null&&(this.boundingSphere=new DA),this.boundingSphere.setFromPoints(this.vertices)}merge(e,t,A=0){if(!(e&&e.isGeometry)){console.error("THREE.Geometry.merge(): geometry not an instance of THREE.Geometry.",e);return}let r,i=this.vertices.length,s=this.vertices,o=e.vertices,a=this.faces,c=e.faces,l=this.colors,u=e.colors;t!==void 0&&(r=new Wt().getNormalMatrix(t));for(let h=0,d=o.length;h<d;h++){let f=o[h].clone();t!==void 0&&f.applyMatrix4(t),s.push(f)}for(let h=0,d=u.length;h<d;h++)l.push(u[h].clone());for(let h=0,d=c.length;h<d;h++){let p=c[h],f,m,y=p.vertexNormals,g=p.vertexColors,b=new ec(p.a+i,p.b+i,p.c+i);b.normal.copy(p.normal),r!==void 0&&b.normal.applyMatrix3(r).normalize();for(let x=0,w=y.length;x<w;x++)f=y[x].clone(),r!==void 0&&f.applyMatrix3(r).normalize(),b.vertexNormals.push(f);b.color.copy(p.color);for(let x=0,w=g.length;x<w;x++)m=g[x],b.vertexColors.push(m.clone());b.materialIndex=p.materialIndex+A,a.push(b)}for(let h=0,d=e.faceVertexUvs.length;h<d;h++){let p=e.faceVertexUvs[h];this.faceVertexUvs[h]===void 0&&(this.faceVertexUvs[h]=[]);for(let f=0,m=p.length;f<m;f++){let y=p[f],g=[];for(let b=0,x=y.length;b<x;b++)g.push(y[b].clone());this.faceVertexUvs[h].push(g)}}}mergeMesh(e){if(!(e&&e.isMesh)){console.error("THREE.Geometry.mergeMesh(): mesh not an instance of THREE.Mesh.",e);return}e.matrixAutoUpdate&&e.updateMatrix(),this.merge(e.geometry,e.matrix)}mergeVertices(e=4){let t={},A=[],r=[],i=Math.pow(10,e);for(let a=0,c=this.vertices.length;a<c;a++){let l=this.vertices[a],u=Math.round(l.x*i)+"_"+Math.round(l.y*i)+"_"+Math.round(l.z*i);t[u]===void 0?(t[u]=a,A.push(this.vertices[a]),r[a]=A.length-1):r[a]=r[t[u]]}let s=[];for(let a=0,c=this.faces.length;a<c;a++){let l=this.faces[a];l.a=r[l.a],l.b=r[l.b],l.c=r[l.c];let u=[l.a,l.b,l.c];for(let h=0;h<3;h++)if(u[h]===u[(h+1)%3]){s.push(a);break}}for(let a=s.length-1;a>=0;a--){let c=s[a];this.faces.splice(c,1);for(let l=0,u=this.faceVertexUvs.length;l<u;l++)this.faceVertexUvs[l].splice(c,1)}let o=this.vertices.length-A.length;return this.vertices=A,o}setFromPoints(e){this.vertices=[];for(let t=0,A=e.length;t<A;t++){let r=e[t];this.vertices.push(new S(r.x,r.y,r.z||0))}return this}sortFacesByMaterialIndex(){let e=this.faces,t=e.length;for(let a=0;a<t;a++)e[a]._id=a;function A(a,c){return a.materialIndex-c.materialIndex}e.sort(A);let r=this.faceVertexUvs[0],i=this.faceVertexUvs[1],s,o;r&&r.length===t&&(s=[]),i&&i.length===t&&(o=[]);for(let a=0;a<t;a++){let c=e[a]._id;s&&s.push(r[c]),o&&o.push(i[c])}s&&(this.faceVertexUvs[0]=s),o&&(this.faceVertexUvs[1]=o)}toJSON(){let e={metadata:{version:4.5,type:"Geometry",generator:"Geometry.toJSON"}};if(e.uuid=this.uuid,e.type=this.type,this.name!==""&&(e.name=this.name),this.parameters!==void 0){let p=this.parameters;for(let f in p)p[f]!==void 0&&(e[f]=p[f]);return e}let t=[];for(let p=0;p<this.vertices.length;p++){let f=this.vertices[p];t.push(f.x,f.y,f.z)}let A=[],r=[],i={},s=[],o={},a=[],c={};for(let p=0;p<this.faces.length;p++){let f=this.faces[p],m=!0,y=!1,g=this.faceVertexUvs[0][p]!==void 0,b=f.normal.length()>0,x=f.vertexNormals.length>0,w=f.color.r!==1||f.color.g!==1||f.color.b!==1,T=f.vertexColors.length>0,M=0;if(M=l(M,0,0),M=l(M,1,m),M=l(M,2,y),M=l(M,3,g),M=l(M,4,b),M=l(M,5,x),M=l(M,6,w),M=l(M,7,T),A.push(M),A.push(f.a,f.b,f.c),A.push(f.materialIndex),g){let v=this.faceVertexUvs[0][p];A.push(d(v[0]),d(v[1]),d(v[2]))}if(b&&A.push(u(f.normal)),x){let v=f.vertexNormals;A.push(u(v[0]),u(v[1]),u(v[2]))}if(w&&A.push(h(f.color)),T){let v=f.vertexColors;A.push(h(v[0]),h(v[1]),h(v[2]))}}function l(p,f,m){return m?p|1<<f:p&~(1<<f)}function u(p){let f=p.x.toString()+p.y.toString()+p.z.toString();return i[f]!==void 0||(i[f]=r.length/3,r.push(p.x,p.y,p.z)),i[f]}function h(p){let f=p.r.toString()+p.g.toString()+p.b.toString();return o[f]!==void 0||(o[f]=s.length,s.push(p.getHex())),o[f]}function d(p){let f=p.x.toString()+p.y.toString();return c[f]!==void 0||(c[f]=a.length/2,a.push(p.x,p.y)),c[f]}return e.data={},e.data.vertices=t,e.data.normals=r,s.length>0&&(e.data.colors=s),a.length>0&&(e.data.uvs=[a]),e.data.faces=A,e}clone(){return new Ls().copy(this)}copy(e){this.vertices=[],this.colors=[],this.faces=[],this.faceVertexUvs=[[]],this.morphTargets=[],this.morphNormals=[],this.skinWeights=[],this.skinIndices=[],this.lineDistances=[],this.boundingBox=null,this.boundingSphere=null,this.name=e.name;let t=e.vertices;for(let h=0,d=t.length;h<d;h++)this.vertices.push(t[h].clone());let A=e.colors;for(let h=0,d=A.length;h<d;h++)this.colors.push(A[h].clone());let r=e.faces;for(let h=0,d=r.length;h<d;h++)this.faces.push(r[h].clone());for(let h=0,d=e.faceVertexUvs.length;h<d;h++){let p=e.faceVertexUvs[h];this.faceVertexUvs[h]===void 0&&(this.faceVertexUvs[h]=[]);for(let f=0,m=p.length;f<m;f++){let y=p[f],g=[];for(let b=0,x=y.length;b<x;b++){let w=y[b];g.push(w.clone())}this.faceVertexUvs[h].push(g)}}let i=e.morphTargets;for(let h=0,d=i.length;h<d;h++){let p={};if(p.name=i[h].name,i[h].vertices!==void 0){p.vertices=[];for(let f=0,m=i[h].vertices.length;f<m;f++)p.vertices.push(i[h].vertices[f].clone())}if(i[h].normals!==void 0){p.normals=[];for(let f=0,m=i[h].normals.length;f<m;f++)p.normals.push(i[h].normals[f].clone())}this.morphTargets.push(p)}let s=e.morphNormals;for(let h=0,d=s.length;h<d;h++){let p={};if(s[h].vertexNormals!==void 0){p.vertexNormals=[];for(let f=0,m=s[h].vertexNormals.length;f<m;f++){let y=s[h].vertexNormals[f],g={};g.a=y.a.clone(),g.b=y.b.clone(),g.c=y.c.clone(),p.vertexNormals.push(g)}}if(s[h].faceNormals!==void 0){p.faceNormals=[];for(let f=0,m=s[h].faceNormals.length;f<m;f++)p.faceNormals.push(s[h].faceNormals[f].clone())}this.morphNormals.push(p)}let o=e.skinWeights;for(let h=0,d=o.length;h<d;h++)this.skinWeights.push(o[h].clone());let a=e.skinIndices;for(let h=0,d=a.length;h<d;h++)this.skinIndices.push(a[h].clone());let c=e.lineDistances;for(let h=0,d=c.length;h<d;h++)this.lineDistances.push(c[h]);let l=e.boundingBox;l!==null&&(this.boundingBox=l.clone());let u=e.boundingSphere;return u!==null&&(this.boundingSphere=u.clone()),this.elementsNeedUpdate=e.elementsNeedUpdate,this.verticesNeedUpdate=e.verticesNeedUpdate,this.uvsNeedUpdate=e.uvsNeedUpdate,this.normalsNeedUpdate=e.normalsNeedUpdate,this.colorsNeedUpdate=e.colorsNeedUpdate,this.lineDistancesNeedUpdate=e.lineDistancesNeedUpdate,this.groupsNeedUpdate=e.groupsNeedUpdate,this}toBufferGeometry(){let e=new h0().fromGeometry(this),t=new Ie,A=new Float32Array(e.vertices.length*3);if(t.setAttribute("position",new Ge(A,3).copyVector3sArray(e.vertices)),e.normals.length>0){let r=new Float32Array(e.normals.length*3);t.setAttribute("normal",new Ge(r,3).copyVector3sArray(e.normals))}if(e.colors.length>0){let r=new Float32Array(e.colors.length*3);t.setAttribute("color",new Ge(r,3).copyColorsArray(e.colors))}if(e.uvs.length>0){let r=new Float32Array(e.uvs.length*2);t.setAttribute("uv",new Ge(r,2).copyVector2sArray(e.uvs))}if(e.uvs2.length>0){let r=new Float32Array(e.uvs2.length*2);t.setAttribute("uv2",new Ge(r,2).copyVector2sArray(e.uvs2))}t.groups=e.groups;for(let r in e.morphTargets){let i=[],s=e.morphTargets[r];for(let o=0,a=s.length;o<a;o++){let c=s[o],l=new Se(c.data.length*3,3);l.name=c.name,i.push(l.copyVector3sArray(c.data))}t.morphAttributes[r]=i}if(e.skinIndices.length>0){let r=new Se(e.skinIndices.length*4,4);t.setAttribute("skinIndex",r.copyVector4sArray(e.skinIndices))}if(e.skinWeights.length>0){let r=new Se(e.skinWeights.length*4,4);t.setAttribute("skinWeight",r.copyVector4sArray(e.skinWeights))}return e.boundingSphere!==null&&(t.boundingSphere=e.boundingSphere.clone()),e.boundingBox!==null&&(t.boundingBox=e.boundingBox.clone()),t}computeTangents(){console.error("THREE.Geometry: .computeTangents() has been removed.")}computeLineDistances(){console.error("THREE.Geometry: .computeLineDistances() has been removed. Use THREE.Line.computeLineDistances() instead.")}applyMatrix(e){return console.warn("THREE.Geometry: .applyMatrix() has been renamed to .applyMatrix4()."),this.applyMatrix4(e)}dispose(){this.dispatchEvent({type:"dispose"})}static createBufferGeometryFromObject(e){let t=new Ie,A=e.geometry;if(e.isPoints||e.isLine){let r=new Se(A.vertices.length*3,3),i=new Se(A.colors.length*3,3);if(t.setAttribute("position",r.copyVector3sArray(A.vertices)),t.setAttribute("color",i.copyColorsArray(A.colors)),A.lineDistances&&A.lineDistances.length===A.vertices.length){let s=new Se(A.lineDistances.length,1);t.setAttribute("lineDistance",s.copyArray(A.lineDistances))}A.boundingSphere!==null&&(t.boundingSphere=A.boundingSphere.clone()),A.boundingBox!==null&&(t.boundingBox=A.boundingBox.clone())}else e.isMesh&&(t=A.toBufferGeometry());return t}};Ls.prototype.isGeometry=!0;var h0=class{constructor(){this.vertices=[],this.normals=[],this.colors=[],this.uvs=[],this.uvs2=[],this.groups=[],this.morphTargets={},this.skinWeights=[],this.skinIndices=[],this.boundingBox=null,this.boundingSphere=null,this.verticesNeedUpdate=!1,this.normalsNeedUpdate=!1,this.colorsNeedUpdate=!1,this.uvsNeedUpdate=!1,this.groupsNeedUpdate=!1}computeGroups(e){let t=[],A,r,i,s=e.faces;for(r=0;r<s.length;r++){let o=s[r];o.materialIndex!==i&&(i=o.materialIndex,A!==void 0&&(A.count=r*3-A.start,t.push(A)),A={start:r*3,materialIndex:i})}A!==void 0&&(A.count=r*3-A.start,t.push(A)),this.groups=t}fromGeometry(e){let t=e.faces,A=e.vertices,r=e.faceVertexUvs,i=r[0]&&r[0].length>0,s=r[1]&&r[1].length>0,o=e.morphTargets,a=o.length,c;if(a>0){c=[];for(let y=0;y<a;y++)c[y]={name:o[y].name,data:[]};this.morphTargets.position=c}let l=e.morphNormals,u=l.length,h;if(u>0){h=[];for(let y=0;y<u;y++)h[y]={name:l[y].name,data:[]};this.morphTargets.normal=h}let d=e.skinIndices,p=e.skinWeights,f=d.length===A.length,m=p.length===A.length;A.length>0&&t.length===0&&console.error("THREE.DirectGeometry: Faceless geometries are not supported.");for(let y=0;y<t.length;y++){let g=t[y];this.vertices.push(A[g.a],A[g.b],A[g.c]);let b=g.vertexNormals;if(b.length===3)this.normals.push(b[0],b[1],b[2]);else{let w=g.normal;this.normals.push(w,w,w)}let x=g.vertexColors;if(x.length===3)this.colors.push(x[0],x[1],x[2]);else{let w=g.color;this.colors.push(w,w,w)}if(i===!0){let w=r[0][y];w!==void 0?this.uvs.push(w[0],w[1],w[2]):(console.warn("THREE.DirectGeometry.fromGeometry(): Undefined vertexUv ",y),this.uvs.push(new G,new G,new G))}if(s===!0){let w=r[1][y];w!==void 0?this.uvs2.push(w[0],w[1],w[2]):(console.warn("THREE.DirectGeometry.fromGeometry(): Undefined vertexUv2 ",y),this.uvs2.push(new G,new G,new G))}for(let w=0;w<a;w++){let T=o[w].vertices;c[w].data.push(T[g.a],T[g.b],T[g.c])}for(let w=0;w<u;w++){let T=l[w].vertexNormals[y];h[w].data.push(T.a,T.b,T.c)}f&&this.skinIndices.push(d[g.a],d[g.b],d[g.c]),m&&this.skinWeights.push(p[g.a],p[g.b],p[g.c])}return this.computeGroups(e),this.verticesNeedUpdate=e.verticesNeedUpdate,this.normalsNeedUpdate=e.normalsNeedUpdate,this.colorsNeedUpdate=e.colorsNeedUpdate,this.uvsNeedUpdate=e.uvsNeedUpdate,this.groupsNeedUpdate=e.groupsNeedUpdate,e.boundingSphere!==null&&(this.boundingSphere=e.boundingSphere.clone()),e.boundingBox!==null&&(this.boundingBox=e.boundingBox.clone()),this}},ec=class{constructor(e,t,A,r,i,s=0){this.a=e,this.b=t,this.c=A,this.normal=r&&r.isVector3?r:new S,this.vertexNormals=Array.isArray(r)?r:[],this.color=i&&i.isColor?i:new _e,this.vertexColors=Array.isArray(i)?i:[],this.materialIndex=s}clone(){return new this.constructor().copy(this)}copy(e){this.a=e.a,this.b=e.b,this.c=e.c,this.normal.copy(e.normal),this.color.copy(e.color),this.materialIndex=e.materialIndex;for(let t=0,A=e.vertexNormals.length;t<A;t++)this.vertexNormals[t]=e.vertexNormals[t].clone();for(let t=0,A=e.vertexColors.length;t<A;t++)this.vertexColors[t]=e.vertexColors[t].clone();return this}};var L4=["a","b","c"];function _4(n,e){switch(e){case"c":return n.c;case"b":return n.b;case"a":default:return n.a}}function d0(n,e,t){let A=Math.min(n,e),r=Math.max(n,e),i=A+"_"+r;return t.get(i)}function f0(n,e,t,A,r,i){let s=Math.min(n,e),o=Math.max(n,e),a=s+"_"+o,c;if(A.has(a))c=A.get(a);else{let l=t[s],u=t[o];c={a:l,b:u,newEdge:null,faces:[]},A.set(a,c)}c.faces.push(r),i[n].edges.push(c),i[e].edges.push(c)}function O4(n,e,t,A){let r,i,s;for(r=0,i=n.length;r<i;r++)t[r]={edges:[]};for(r=0,i=e.length;r<i;r++)s=e[r],f0(s.a,s.b,n,A,s,t),f0(s.b,s.c,n,A,s,t),f0(s.c,s.a,n,A,s,t)}function zp(n,e,t,A,r){n.push(new ec(e,t,A,void 0,void 0,r))}function tc(n,e){return Math.abs(e-n)/2+Math.min(n,e)}function Hp(n,e,t,A){n.push([e.clone(),t.clone(),A.clone()])}var Wp=class{constructor(e=1){this.subdivisions=e}modify(e){e instanceof Ie?e=new Ls().fromBufferGeometry(e):e=e.clone(),e.mergeVertices();let t=this.subdivisions;for(;t-- >0;)this._smooth(e);return e.computeFaceNormals(),e.computeVertexNormals(),e}_smooth(e){let t=new S,A,r,i,s,o,a=e.vertices,c=e.faces,l=e.faceVertexUvs[0],u=l!==void 0&&l.length>0,h=[],d=new Map;O4(a,c,h,d);let p=[],f,m,y,g,b,x,w;for(let Ae of Array.from(d.keys())){for(m=d.get(Ae),y=new S,b=3/8,x=1/8,w=m.faces.length,w!=2&&(b=.5,x=0,w!=1),y.addVectors(m.a,m.b).multiplyScalar(b),t.set(0,0,0),s=0;s<w;s++){for(g=m.faces[s],o=0;o<3&&(f=a[_4(g,L4[o])],!(f!==m.a&&f!==m.b));o++);f&&t.add(f)}t.multiplyScalar(x),y.add(t),m.newEdge=p.length,p.push(y)}let T,M,v,E,C,P,D,_=[];for(r=0,i=a.length;r<i;r++){for(P=a[r],C=h[r].edges,A=C.length,A==3?T=3/16:A>3&&(T=3/(8*A)),M=1-A*Number(T),v=T,A<=2&&(A==2?(M=3/4,v=1/8):A==1||A==0),D=P.clone().multiplyScalar(M),t.set(0,0,0),s=0;s<A;s++)E=C[s],f=E.a!==P?E.a:E.b,t.add(f);t.multiplyScalar(Number(v)),D.add(t),_.push(D)}let I=_.concat(p),B=_.length,N,W,X,F=[],k=[],Q,z,U,j,q=new G,V=new G,ue=new G;for(r=0,i=c.length;r<i;r++)g=c[r],N=Number(d0(g.a,g.b,d).newEdge)+B,W=Number(d0(g.b,g.c,d).newEdge)+B,X=Number(d0(g.c,g.a,d).newEdge)+B,zp(F,N,W,X,g.materialIndex),zp(F,g.a,N,X,g.materialIndex),zp(F,g.b,W,N,g.materialIndex),zp(F,g.c,X,W,g.materialIndex),u&&(Q=l[r],z=Q[0],U=Q[1],j=Q[2],q.set(tc(z.x,U.x),tc(z.y,U.y)),V.set(tc(U.x,j.x),tc(U.y,j.y)),ue.set(tc(z.x,j.x),tc(z.y,j.y)),Hp(k,q,V,ue),Hp(k,z,q,ue),Hp(k,U,V,q),Hp(k,j,ue,V));e.vertices=I,e.faces=F,u&&(e.faceVertexUvs[0]=k)}};var TA=new S,lC=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,e){let t=n.geometry??e?.geometry??new Ie().copy(new fn(100,100,100)),A;e===void 0?(t.computeBoundingBox(),t.boundingBox.getSize(TA),A={width:TA.x,height:TA.y,depth:TA.z,subdivisions:0}):A=e.parameters;let r={...A,...n.parameters};return{parameters:{width:Math.abs(r.width),height:Math.abs(r.height),depth:Math.abs(r.depth),subdivisions:Math.abs(r.subdivisions)},geometry:t}}static build(n){let{width:e,height:t,depth:A,subdivisions:r}=n.parameters,i=n.geometry??new Ie().copy(new fn(100,100,100)),s=i.userData.parameters;s===void 0?(i.computeBoundingBox(),i.boundingBox.getSize(TA)):TA.set(s.width,s.height,s.depth),(e!==TA.x||t!==TA.y||A!==TA.z)&&i.scale(TA.x===0?1:e/TA.x,TA.y===0?1:t/TA.y,TA.z===0?1:A/TA.z);let o=i.originalGeometry;return r>0?(o===void 0||s?.subdivisions!==r)&&(o===void 0&&(o=i),i=new Wp(r).modify(o).toBufferGeometry()):(o!==void 0&&(i=o),o=void 0,i.getAttribute("normal")===void 0&&i.computeVertexNormals()),o!==void 0&&Object.assign(i,{originalGeometry:o}),delete n.geometry,Object.assign(i,{userData:{...n,type:"NonParametricGeometry"}})}static loadFromUrl(n,e,t){new _a(t).load(n,r=>{let i=this.normalizeInputs({geometry:r});r.boundingBox.getSize(TA);let s=100/TA.x;Object.assign(i.parameters,{width:100,height:TA.y*s,depth:TA.z*s}),e(this.build(i))})}};var cC=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,e){let t=Object.assign({},e?.parameters??{width:100,depth:0,spikes:5,cornerRadius:0,extrudeBevelSize:0,extrudeBevelSegments:3},n.parameters);return{shape:n.shape&&n.shape instanceof yt?n.shape:new yt,parameters:Object.assign(t,{width:Math.abs(t.width),height:Math.abs(t.height??t.width),depth:Math.abs(t.depth??0)})}}static build(n){let{width:e,height:t,spikes:A,cornerRadius:r,depth:i,extrudeBevelSize:s,extrudeBevelSegments:o}=n.parameters,a=n.shape,c=e*.5,l=t*.5,u=0,h=0,d=2*Math.PI/A;for(let f=0;f<A;f++){let m=d*f,y=u+Math.sin(m)*c,g=h+Math.cos(m)*l;a.addPoint(a.createPoint(y,g))}a.isClosed=!0;for(let f=0,m=a.points.length;f<m;f++)a.points[f].roundness=r;a.roundness=r,a.update();let p=VA.create({shape:a,parameters:{roundness:r,depth:i,extrudeBevelSize:s,extrudeBevelSegments:o}});return Object.assign(p,{userData:{...n,type:"PolygonGeometry"}})}};var uC=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,e){let t=Object.assign({},e?.parameters??{width:100,radialSegments:4,heightSegments:1,cornerRadius:0,cornerSegments:8,openEnded:!1},n.parameters);return{parameters:Object.assign(t,{width:Math.abs(t.width),height:Math.abs(t.height??t.width),depth:Math.abs(t.depth??t.width)})}}static build(n){let{width:e,height:t,depth:A,radialSegments:r,heightSegments:i,openEnded:s,cornerRadius:o,cornerSegments:a}=n.parameters,c=new m0(e*.5,t,r,i,s,o,a);return c.scale(1,1,A/e),Object.assign(c,{userData:{...n,type:"PyramidGeometry"}})}};function oh(n,e,t){t.x=n.x*e.x,t.y=n.y,t.z=n.x*e.y}function p0(n,e,t,A,r,i){let s=e.clone().sub(n),o=t.clone().sub(n),a=s.angleTo(o);if(s.normalize(),o.normalize(),A===r){let c=s.add(o).normalize();i.copy(n).addScaledVector(c,A/Math.sin(a/2))}else{let c=s.angleTo(o);i.copy(n),i.addScaledVector(s,r/Math.sin(c)),i.addScaledVector(o,A/Math.sin(c))}}function R4(n,e,t){let A=n.clone().sub(e),r=t.clone().sub(e);return A.projectOnVector(r),A.add(e)}var m0=class extends Ie{constructor(e=.5,t=1,A=4,r=1,i=!1,s=0,o=4){super(),A=Math.floor(Math.max(3,A)),r=Math.floor(r),o=Math.floor(o);let a=[],c=[],l=[],u=[],h=0,d=t/2,p=Math.PI/A,f=e*Math.cos(Math.PI/A),m=2*Math.PI/A,y=(A-2)*Math.PI/A,g=Math.PI-y,b=new S(0,-d,0),x=new S(0,d,0),w=new G(e,-d),T=new G(f,-d),M=new G(0,x.y).sub(T),v=new G(0,x.y).sub(w),E=new G(M.y,-M.x).normalize(),C=new G(v.y,-v.x).normalize(),D=e*Math.cos(Math.PI/A)*Math.tan((Math.PI-M.angle())/2)-1e-8;s=Math.min(s,D);let _;{let k=new S(E.x,E.y,0),Q=new S(Math.cos(m)*k.x,k.y,Math.sin(m)*k.x);_=k.angleTo(Q)}let I=s/Math.tan((Math.PI-M.angle())/2),B=s/Math.tan((Math.PI-_)/2),N=new S;if(!i){c.push(b.x,b.y,b.z),l.push(0,-1,0),u.push(0,0);let k=h++,Q=[],z=w.clone(),U=I/Math.cos(Math.PI/A);z.x-=U;for(let j=0;j<A;j++){let q=j/A*Math.PI*2+p,V=new G(Math.sin(q),Math.cos(q));oh(z,V,N),c.push(N.x,N.y,N.z),l.push(0,-1,0),u.push(0,0),Q.push(h++)}for(let j=0;j<Q.length;j++)a.push(Q[j],k,Q[(j+1)%Q.length])}let W=[];{let k=new S,Q=new S,z=new S,U=new S,j=new S,q=new S;for(let V=0;V<A;V++){let ue=V/A*Math.PI*2+p,Ae=(V+.5)/A*Math.PI*2+p,K=(V+1)/A*Math.PI*2+p,Y=new G(Math.sin(ue),Math.cos(ue)),ne=new G(Math.sin(Ae),Math.cos(Ae)),le=new G(Math.sin(K),Math.cos(K));oh(w,Y,Q),oh(w,le,z),oh(E,ne,k),p0(x,Q,z,B,B,U),c.push(U.x,U.y,U.z),p0(Q,x,z,B,I,j),c.push(j.x,j.y,j.z),p0(z,Q,x,I,B,q),c.push(q.x,q.y,q.z),l.push(k.x,k.y,k.z),l.push(k.x,k.y,k.z),l.push(k.x,k.y,k.z),u.push(0,0),u.push(0,0),u.push(0,0);let se=h++,Me=h++,me=h++;if(a.push(se,Me,me),s>0){{let de=Q.clone().add(z).multiplyScalar(.5),De=x.clone().sub(de).normalize(),Ze=b.clone().sub(de).normalize().add(De).normalize().multiplyScalar(-1),R=q.clone().sub(j);X(de,R,Ze,M.angle())}let ge,ye;{let de=new S;oh(C,le,de);let De=q.clone().add(U).multiplyScalar(.5);De=R4(De,z,x);let Be=q.clone().sub(U);[ge,ye]=X(De,Be,de,_,U.y)}{let de=ge,De=de.clone().setY(0).normalize(),Be=new S(0,-1,0),Ze=De.clone().cross(Be);F(de,De,Be,Ze)}W.concat(ye);{let de=M.angle(),De=Math.PI-de,Be=x.clone();Be.y-=s/Math.sin(de-Math.PI/2);let Ze=new S,R=[];for(let J=0;J<o;J++){let ae=[],fe=Math.PI/2-De*J/o,Ce=Math.cos(fe),Fe=Math.sin(fe),re=Ae;for(let Ne=0;Ne<=J;Ne++){let Oe=Math.cos(re),ve=Math.sin(re);k.x=Ce*ve,k.y=Fe,k.z=Ce*Oe,Ze.copy(Be).addScaledVector(k,s),c.push(Ze.x,Ze.y,Ze.z),l.push(k.x,k.y,k.z),u.push(0,0),ae.push(h++),re+=Math.PI*2/J/A}R.push(ae)}ye.reverse(),R.push(ye);let L=R.length-1;for(let J=0;J<L;J++){let ae=R[J],fe=R[J+1],Ce=ae.length-1;a.push(fe[1],ae[0],fe[0]);for(let Fe=1;Fe<=Ce;Fe++)a.push(ae[Fe],ae[Fe-1],fe[Fe]),a.push(fe[Fe+1],ae[Fe],fe[Fe])}}}}}this.setIndex(a),this.setAttribute("position",new Se(c,3)),this.setAttribute("normal",new Se(l,3)),this.setAttribute("uv",new Se(u,2));function X(k,Q,z,U,j){let q=-U/2,V=(Math.PI-U)/2,ue=Q.clone().normalize().cross(z);k.addScaledVector(z,-s/Math.sin(V));let Ae=new S,K=new S,Y=1,ne=h,le=[];for(let se=0;se<=o;se++){let Me=q+se/o*U;K.set(0,0,0),K.addScaledVector(ue,Math.sin(Me)),K.addScaledVector(z,Math.cos(Me));for(let me=0;me<=Y;me++){let ge=me/Y-.5;if(Ae.copy(k),Ae.addScaledVector(Q,ge),Ae.addScaledVector(K,s),j!=null){let ye=Math.max(0,Ae.y-j);Ae.addScaledVector(Q,-ye/Q.y)}c.push(Ae.x,Ae.y,Ae.z),l.push(K.x,K.y,K.z),u.push(0,0),me===0&&le.push(h),h++}}for(let se=0;se<o;se++)for(let Me=0;Me<Y;Me++){let me=ne+Me+(Y+1)*se,ge=me+(Y+1),ye=ge+1,de=me+1;a.push(me,ge,de),a.push(ge,ye,de)}return[k.clone().addScaledVector(Q,.5),le]}function F(k,Q,z,U){let j=Math.PI/2,q=v.angle()-j,V=[],ue=new S,Ae=new S;for(let Y=0;Y<=o;Y++){let ne=[],le=Y/o;for(let se=0;se<=Y;se++){let me=((Y?se/Y:0)-.5)*g,ge=Math.cos(me),ye=Math.sin(me),de=Math.atan(Math.tan(q)*ge),De=(j+de)*le,Be=Math.cos(De),Ze=Math.sin(De);ue.set(0,0,0),ue.addScaledVector(Q,Ze*ge),ue.addScaledVector(z,Be),ue.addScaledVector(U,Ze*ye),Ae.copy(k).addScaledVector(ue,s),c.push(Ae.x,Ae.y,Ae.z),l.push(ue.x,ue.y,ue.z),u.push(0,0),ne.push(h++)}V.push(ne)}let K=V.length-1;for(let Y=0;Y<K;Y++){let ne=V[Y],le=V[Y+1],se=ne.length-1;a.push(ne[0],le[1],le[0]);for(let Me=1;Me<=se;Me++)a.push(ne[Me-1],ne[Me],le[Me]),a.push(ne[Me],le[Me+1],le[Me])}}}};var hC=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,e){let t=Object.assign({},e?.parameters??{width:100,depth:0,cornerRadius:[0,0,0,0],cornerType:1,extrudeBevelSize:0,extrudeBevelSegments:1},n.parameters),A=Object.assign(e?.ui??{enabledIndieCorners:!1},n.ui);return{shape:n.shape&&n.shape instanceof yt?n.shape:new yt,parameters:Object.assign(t,{width:Math.abs(t.width),height:Math.abs(t.height??t.width),depth:Math.abs(t.depth??0)}),ui:A}}static build(n){let e=n.shape,{width:t,height:A,cornerRadius:r,cornerType:i,depth:s,extrudeBevelSize:o,extrudeBevelSegments:a}=n.parameters,c={x:t*.5,y:A*.5},l={x:-c.x,y:-c.y},u={x:c.x,y:c.y};function h(x,w,T){return w>t&&T>A?Math.min(x*t/w,x*A/T):w>t?x*t/w:T>A?x*A/T:x}let d=[];d[0]=r[0]===0?0:h(r[0],r[0]+r[3],r[0]+r[1]),d[1]=r[1]===0?0:h(r[1],r[1]+r[2],r[1]+r[0]),d[2]=r[2]===0?0:h(r[2],r[2]+r[1],r[2]+r[3]),d[3]=r[3]===0?0:h(r[3],r[3]+r[0],r[3]+r[2]);let p=l.x,f=u.x,m=u.y,y=l.y;e.addPoint(e.createPoint(p,m)),e.addPoint(e.createPoint(f,m)),e.addPoint(e.createPoint(f,y)),e.addPoint(e.createPoint(p,y)),e.isClosed=!0;let g=!0;for(let x=0,w=e.points.length;x<w;x++)e.points[x].roundness=d[x],x>0&&d[x]!==d[x-1]&&(g=!1);g&&(e.roundness=d[0]),e.useCubicForRoundedCorners=i!==1,e.update();let b=VA.create({shape:e,parameters:{depth:s,extrudeBevelSize:o,extrudeBevelSegments:a}});return Object.assign(b,{userData:{...n,type:"RectangleGeometry"}})}};var dC=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,e){let t=Object.assign({},e?.parameters??{width:100,widthSegments:64,heightSegments:64,phiStart:0,phiLength:2*Math.PI,thetaStart:0,thetaLength:Math.PI},n.parameters);return{parameters:Object.assign(t,{width:Math.abs(t.width),height:Math.abs(t.height??t.width),depth:Math.abs(t.depth??t.width)})}}static build(n){let{width:e=100,height:t=e,depth:A=e,widthSegments:r=64,heightSegments:i=64,phiStart:s,phiLength:o,thetaStart:a,thetaLength:c}=n.parameters,l=new co(.5*e,r,i,s,o,a,c);return l.scale(1,t/e,A/e),Object.assign(l,{userData:{...n,type:"SphereGeometry"}})}};var fC=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,e){let t=Object.assign({},e?.parameters??{width:100,depth:0,widthSegments:8,heightSegments:8},n.parameters);return{parameters:Object.assign(t,{width:Math.abs(t.width),height:Math.abs(t.height??t.width),depth:0})}}static build(n){let{width:e=100,height:t=e,widthSegments:A=8,heightSegments:r=8}=n.parameters,i=new Ti(e,t,A,r);return i.scale(1,1,1),Object.assign(i,{userData:{...n,type:"PlaneGeometry"}})}};var pC=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,e){let t=Object.assign({},e?.parameters??{width:100,angle:90,cornerRadius:24,cornerSegments:8},n.parameters);return{parameters:Object.assign(t,{width:Math.abs(t.width),height:Math.abs(t.height??t.width),depth:Math.abs(t.depth??t.width)})}}static build(n){let{width:e,height:t,depth:A,angle:r,cornerRadius:i,cornerSegments:s}=n.parameters,o=new g0(e,t,A,r,i,s);return Object.assign(o,{userData:{...n,type:"BackdropGeometry"}})}},g0=class extends Ie{constructor(e=1,t=1,A=1,r=90,i=10,s=24){super(),this.type="BackdropGeometry";let o=[],a=[],c=[],l=.001;i==0&&(s=1),s=Math.max(1,Math.floor(s)),i=Math.min(i,100),r=Math.min(180-l,r),r*=Math.PI/180;let u=[],h=Math.PI/2,d=(Ae=0,K=0,Y=0)=>new S(Ae,K,Y),p=d(),f=d(),[m,y,g]=[t/2,e/2,A/2],b=-y,x=+y,[w,T,M]=[d(b,-m,+g),d(b,-m,-g),d(b,+m,-g)],v=(Ae,K=!1)=>Math.sin(Ae-Math.PI/(1+ +K)),E=(Ae,K=!1)=>Math.cos(Ae-Math.PI/(1+ +K));M.y=Math.sin(r)*t-m;let C=Math.cos(r)*t-g,P=w.z-l;r<=h?(M.z=Math.min(C,P),M.z==P&&(M.y-=(C-P)/Math.tan(h-r))):T.z=Math.min(T.z-C-g,w.z-l),p.subVectors(w,T),f.subVectors(M,T);let D=Math.min(p.length(),f.length())*i/100,_=D*Math.tan(r/2),I=D/Math.cos(r/2),B=p.clone().normalize().add(f.normalize()).setLength(I).add(T);p.set(0,v(r,!0),E(r,!0)),u.push([M,p.clone()]);let N=(Math.PI-r)/s;for(let Ae=0;Ae<=s;Ae++){let K=h+r+Ae*N;p.set(0,Math.sin(K)*_,Math.cos(K)*_),p.add(B),f.set(0,v(K),E(K)),u.push([p.clone(),f.clone()])}u.push([w,d(0,1,0)]);let W=Math.sin(N/2)*_*2,X=u.length-1,F=u[0][0].distanceTo(u[1][0]),k=u[X-1][0].distanceTo(u[X][0]),Q=F+W*s+k;u[0].push(1);for(let Ae=0;Ae<=s;Ae++)u[Ae+1].push(1-(F+Ae*W)/Q);u[X].push(0);let[z,U,j]=u[0],q,V,ue;for(let Ae=1;Ae<u.length;Ae++)[q,V,ue]=u[Ae],o.push(b,z.y,z.z,b,q.y,q.z,x,z.y,z.z,x,z.y,z.z,b,q.y,q.z,x,q.y,q.z),a.push(0,U.y,U.z,0,V.y,V.z,0,U.y,U.z,0,U.y,U.z,0,V.y,V.z,0,V.y,V.z),c.push(0,j,0,ue,1,j,1,j,0,ue,1,ue),[z,U,j]=[q,V,ue];this.setAttribute("position",new Se(o,3)),this.setAttribute("normal",new Se(a,3)),this.setAttribute("uv",new Se(c,2))}};var mC=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,e){let t=Object.assign({},e?.parameters??{width:100,depth:0,innerRadiusPercent:38.19,spikes:5,cornerRadius:0,angle:360,extrudeBevelSize:0,extrudeBevelSegments:1},n.parameters);return{shape:n.shape&&n.shape instanceof yt?n.shape:new yt,parameters:Object.assign(t,{width:Math.abs(t.width),height:Math.abs(t.height??t.width),depth:Math.abs(t.depth??0)})}}static build(n){let{width:e,height:t,innerRadiusPercent:A,spikes:r,cornerRadius:i,angle:s,depth:o,extrudeBevelSize:a,extrudeBevelSegments:c}=n.parameters,l=n.shape,u=e*.5,h=t*.5,d=0,p=0,f=s*Math.PI/360/r,m=Math.PI/2*3*-1,y=u*A/100,g=h*A/100;if(r===3&&A===50){f=2*Math.PI/r;for(let x=0;x<r;x++){let w=f*x,T=d+Math.sin(w)*u,M=p+Math.cos(w)*h;l.addPoint(l.createPoint(T,M))}}else for(let x=0;x<r;x++){let w=d+Math.cos(m)*u,T=p+Math.sin(m)*h;l.addPoint(l.createPoint(w,T)),m+=f,w=d+Math.cos(m)*y,T=p+Math.sin(m)*g,x<=r,l.addPoint(l.createPoint(w,T)),m+=f}l.isClosed=!0;for(let x=0,w=l.points.length;x<w;x++)l.points[x].roundness=i;l.roundness=i,l.update();let b=VA.create({shape:l,parameters:{roundness:i,depth:o,extrudeBevelSize:a,extrudeBevelSegments:c}});return Object.assign(b,{userData:{...n,type:"StarGeometry"}})}};var gC=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,e){let t=Object.assign({},e?.parameters??{width:100,depth:0},n.parameters);return{parameters:Object.assign(t,{width:Math.abs(t.width),height:Math.abs(t.height??t.width),depth:Math.abs(t.depth??0)})}}static build(n){let{width:e,height:t}=n.parameters,A=new Ti(e,t);return Object.assign(A,{userData:{...n,type:"TextFrameGeometry"}})}};var yC=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,e){let t=Object.assign({},e?.parameters??{width:100,radialSegments:32,tubularSegments:64,arc:Math.PI*2,cornerRadius:30,cornerSegments:8},n.parameters),A=Math.abs(t.width),r=Math.abs(t.height??t.width),i=Math.round(Math.abs(t.depth??t.width*.25));return{parameters:Object.assign(t,{width:A,height:r,depth:i})}}static build(n){let{width:e,height:t,depth:A,radialSegments:r,tubularSegments:i,arc:s,cornerRadius:o,cornerSegments:a}=n.parameters,c=B4(e,t,A,e*.5,s,i,0,0,r,o,a);return c.scale(1,t/e,1),Object.assign(c,{userData:{...n,type:"TorusGeometry"}})}};function B4(n,e,t,A,r,i,s,o,a,c,l){return[e,t]=[t,e],s=e/2,r/=2*Math.PI,r==1&&(c=0),new ih(!0,n,e,t,A,r,i,s,o,a,c,l)}var vC=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,e){let t=Object.assign({},e?.parameters??{width:100,tubularSegments:64,radialSegments:32,p:2,q:3},n.parameters);return{parameters:Object.assign(t,{width:Math.abs(t.width),height:Math.abs(t.height??t.width),depth:Math.abs(t.depth??t.width),tube:t.tube??t.width*.125})}}static build(n){let{width:e,tube:t,tubularSegments:A,radialSegments:r,p:i,q:s}=n.parameters,o=e*.5;o!==t&&(o-=t);let a=new Ca(o,t,A,r,i,s);return Object.assign(a,{userData:{...n,type:"TorusKnotGeometry"}})}};var xC=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,e){let t=Object.assign({},e?.parameters??{width:100,depth:0,spikes:5,cornerRadius:0,extrudeBevelSize:0,extrudeBevelSegments:1,isRect:!1},n.parameters);return{shape:n.shape&&n.shape instanceof yt?n.shape:new yt,parameters:Object.assign(t,{width:Math.abs(t.width),height:Math.abs(t.height??t.width*(t.isRect?1:Math.sqrt(3)/2)),depth:Math.abs(t.depth??0)})}}static build(n){let{width:e=100,height:t,cornerRadius:A,depth:r,extrudeBevelSize:i,extrudeBevelSegments:s,isRect:o}=n.parameters,a=n.shape,c=e*.5,l=t*.5;o?(a.addPoint(a.createPoint(-c,l)),a.addPoint(a.createPoint(c,-l)),a.addPoint(a.createPoint(-c,-l))):(a.addPoint(a.createPoint(0,l)),a.addPoint(a.createPoint(c,-l)),a.addPoint(a.createPoint(-c,-l))),a.isClosed=!0;for(let h=0,d=a.points.length;h<d;h++)a.points[h].roundness=A;a.roundness=A,a.update();let u=VA.create({shape:a,parameters:{roundness:A,depth:r,extrudeBevelSize:i,extrudeBevelSegments:s}});return Object.assign(u,{userData:{...n,type:"TriangleGeometry"}})}};function bC(){let n=new Ie;return n.setAttribute("position",new Ge(new Float32Array([]),3)),n.setIndex(new Ge(new Uint16Array([]),1)),n}var N4=12;var Ac=class extends Ie{constructor(t,A){super();this.charWidths=[];this.charCoords=[];this.wrappedText=[];this.vectorShapes=[];let r=bC();Object.entries(r.attributes).forEach(([i,s])=>{this.setAttribute(i,s)}),this.setIndex(r.index),this.updateFont(t.font,A),this.update(t)}async updateFont(t,A){let r=A.getFont(t);r&&(this.font=r,await r.loadingPromise)}async update(t){let A=this.font;if(this.userData={parameters:t,type:"TextGeometry"},!A||!A.isLoaded){console.warn("Cannot update text because its font is not loaded");return}let{width:r,height:i,depth:s,extrudeBevelSize:o,extrudeBevelSegments:a,text:c,textTransform:l,subdivisions:u}=t;await A.loadingPromise;let h=l===2?c.toUpperCase():l===3?c.toLowerCase():c,d=F4(t,A,h),{shapes:p,charWidths:f,charCoords:m}=await A.generateShapes(d,t),y=r*.5,g=i*.5,b=p.map(T=>new yt().fromShape(T));this.vectorShapes=b;let x=b.map(T=>VA.create({shape:T,parameters:{depth:s,extrudeBevelSegments:a,extrudeBevelSize:o,windingRule:s<=0?_t.NONZERO:_t.ODD,subdivisions:u??N4}})),w=x.length?Bi(x):bC();w.translate(-y,g,0),this.dispose(),this.wrappedText=d,this.charCoords=m,this.charWidths=f,this.deleteAttribute("extrudeNormal"),Object.entries(w.attributes).forEach(([T,M])=>{this.setAttribute(T,M)}),this.setIndex(w.index),this.computeBoundingSphere()}clone(){let t=Ss(new Ie,Ac.prototype);return t.copy(this),t}copy(t){return Object.entries(t.attributes).forEach(([A,r])=>{this.setAttribute(A,r)}),this.setIndex(t.index),this.userData={parameters:{...t.userData.parameters},type:"TextGeometry"},this}async setText(t){this.font&&await this.font.loadingPromise,await this.update({...this.userData.parameters,text:t})}get text(){return this.userData.parameters.text??""}};function F4(n,e,t){t=t??n.text;let A=[""],r="";for(let i of t)r+=i,i===" "||i===`
3137
+ }`;function d3(n,e,t){let A=new nu,r=new G,i=new G,s=new Ve,o=new ru({depthPacking:Iy}),a=new iy,c={},l=t.maxTextureSize,u={0:hA,1:Wn,2:An},h=new gt({defines:{VSM_SAMPLES:8},uniforms:{shadow_pass:{value:null},resolution:{value:new G},radius:{value:4}},vertexShader:u3,fragmentShader:h3}),d=h.clone();d.defines.HORIZONTAL_PASS=1;let p=new Ie;p.setAttribute("position",new Ge(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));let f=new sA(p,h),m=this;this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=$d,this.render=function(x,w,T){if(m.enabled===!1||m.autoUpdate===!1&&m.needsUpdate===!1||x.length===0)return;let M=n.getRenderTarget(),v=n.getActiveCubeFace(),E=n.getActiveMipmapLevel(),C=n.state;C.setBlending(Nt),C.buffers.color.setClear(1,1,1,1),C.buffers.depth.setTest(!0),C.setScissorTest(!1);for(let P=0,D=x.length;P<D;P++){let _=x[P],I=_.shadow;if(I===void 0){console.warn("THREE.WebGLShadowMap:",_,"has no shadow.");continue}if(I.autoUpdate===!1&&I.needsUpdate===!1)continue;r.copy(I.mapSize);let B=I.getFrameExtents();if(r.multiply(B),i.copy(I.mapSize),(r.x>l||r.y>l)&&(r.x>l&&(i.x=Math.floor(l/B.x),r.x=i.x*B.x,I.mapSize.x=i.x),r.y>l&&(i.y=Math.floor(l/B.y),r.y=i.y*B.y,I.mapSize.y=i.y)),I.map===null){let W=this.type!==Yc?{minFilter:Gt,magFilter:Gt}:{};I.map=new ft(r.x,r.y,W),I.map.texture.name=_.name+".shadowMap",I.camera.updateProjectionMatrix()}n.setRenderTarget(I.map),n.clear();let N=I.getViewportCount();for(let W=0;W<N;W++){let X=I.getViewport(W);s.set(i.x*X.x,i.y*X.y,i.x*X.z,i.y*X.w),C.viewport(s),I.updateMatrices(_,W),A=I.getFrustum(),b(w,T,I.camera,_,this.type)}I.isPointLightShadow!==!0&&this.type===Yc&&y(I,T),I.needsUpdate=!1}m.needsUpdate=!1,n.setRenderTarget(M,v,E)};function y(x,w){let T=e.update(f);h.defines.VSM_SAMPLES!==x.blurSamples&&(h.defines.VSM_SAMPLES=x.blurSamples,d.defines.VSM_SAMPLES=x.blurSamples,h.needsUpdate=!0,d.needsUpdate=!0),x.mapPass===null&&(x.mapPass=new ft(r.x,r.y)),h.uniforms.shadow_pass.value=x.map.texture,h.uniforms.resolution.value=x.mapSize,h.uniforms.radius.value=x.radius,n.setRenderTarget(x.mapPass),n.clear(),n.renderBufferDirect(w,null,T,h,f,null),d.uniforms.shadow_pass.value=x.mapPass.texture,d.uniforms.resolution.value=x.mapSize,d.uniforms.radius.value=x.radius,n.setRenderTarget(x.map),n.clear(),n.renderBufferDirect(w,null,T,d,f,null)}function g(x,w,T,M,v,E){let C=null,P=T.isPointLight===!0?x.customDistanceMaterial:x.customDepthMaterial;if(P!==void 0?C=P:C=T.isPointLight===!0?a:o,n.localClippingEnabled&&w.clipShadows===!0&&Array.isArray(w.clippingPlanes)&&w.clippingPlanes.length!==0||w.displacementMap&&w.displacementScale!==0||w.alphaMap&&w.alphaTest>0){let D=C.uuid,_=w.uuid,I=c[D];I===void 0&&(I={},c[D]=I);let B=I[_];B===void 0&&(B=C.clone(),I[_]=B),C=B}return C.visible=w.visible,C.wireframe=w.wireframe,E===Yc?C.side=w.shadowSide!==null?w.shadowSide:w.side:C.side=w.shadowSide!==null?w.shadowSide:u[w.side],C.alphaMap=w.alphaMap,C.alphaTest=w.alphaTest,C.clipShadows=w.clipShadows,C.clippingPlanes=w.clippingPlanes,C.clipIntersection=w.clipIntersection,C.displacementMap=w.displacementMap,C.displacementScale=w.displacementScale,C.displacementBias=w.displacementBias,C.wireframeLinewidth=w.wireframeLinewidth,C.linewidth=w.linewidth,T.isPointLight===!0&&C.isMeshDistanceMaterial===!0&&(C.referencePosition.setFromMatrixPosition(T.matrixWorld),C.nearDistance=M,C.farDistance=v),C}function b(x,w,T,M,v){if(x.visible===!1)return;if(x.layers.test(w.layers)&&(x.isMesh||x.isLine||x.isPoints)&&(x.castShadow||x.receiveShadow&&v===Yc)&&(!x.frustumCulled||A.intersectsObject(x))){x.modelViewMatrix.multiplyMatrices(T.matrixWorldInverse,x.matrixWorld);let P=e.update(x),D=x.material;if(Array.isArray(D)){let _=P.groups;for(let I=0,B=_.length;I<B;I++){let N=_[I],W=D[N.materialIndex];if(W&&W.visible){let X=g(x,W,M,T.near,T.far,v);n.renderBufferDirect(T,null,P,X,x,N)}}}else if(D.visible){let _=g(x,D,M,T.near,T.far,v);n.renderBufferDirect(T,null,P,_,x,null)}}let C=x.children;for(let P=0,D=C.length;P<D;P++)b(C[P],w,T,M,v)}}function f3(n,e,t){let A=t.isWebGL2;function r(){let H=!1,xe=new Ve,Te=null,Qe=new Ve(0,0,0,0);return{setMask:function(Re){Te!==Re&&!H&&(n.colorMask(Re,Re,Re,Re),Te=Re)},setLocked:function(Re){H=Re},setClear:function(Re,Je,be,$e,st){st===!0&&(Re*=$e,Je*=$e,be*=$e),xe.set(Re,Je,be,$e),Qe.equals(xe)===!1&&(n.clearColor(Re,Je,be,$e),Qe.copy(xe))},reset:function(){H=!1,Te=null,Qe.set(-1,0,0,0)}}}function i(){let H=!1,xe=null,Te=null,Qe=null;return{setTest:function(Re){Re?q(2929):V(2929)},setMask:function(Re){xe!==Re&&!H&&(n.depthMask(Re),xe=Re)},setFunc:function(Re){if(Te!==Re){if(Re)switch(Re){case HD:n.depthFunc(512);break;case WD:n.depthFunc(519);break;case jD:n.depthFunc(513);break;case Hg:n.depthFunc(515);break;case YD:n.depthFunc(514);break;case qD:n.depthFunc(518);break;case XD:n.depthFunc(516);break;case QD:n.depthFunc(517);break;default:n.depthFunc(515)}else n.depthFunc(515);Te=Re}},setLocked:function(Re){H=Re},setClear:function(Re){Qe!==Re&&(n.clearDepth(Re),Qe=Re)},reset:function(){H=!1,xe=null,Te=null,Qe=null}}}function s(){let H=!1,xe=null,Te=null,Qe=null,Re=null,Je=null,be=null,$e=null,st=null;return{setTest:function(vt){H||(vt?q(2960):V(2960))},setMask:function(vt){xe!==vt&&!H&&(n.stencilMask(vt),xe=vt)},setFunc:function(vt,Tt,dn){(Te!==vt||Qe!==Tt||Re!==dn)&&(n.stencilFunc(vt,Tt,dn),Te=vt,Qe=Tt,Re=dn)},setOp:function(vt,Tt,dn){(Je!==vt||be!==Tt||$e!==dn)&&(n.stencilOp(vt,Tt,dn),Je=vt,be=Tt,$e=dn)},setLocked:function(vt){H=vt},setClear:function(vt){st!==vt&&(n.clearStencil(vt),st=vt)},reset:function(){H=!1,xe=null,Te=null,Qe=null,Re=null,Je=null,be=null,$e=null,st=null}}}let o=new r,a=new i,c=new s,l={},u={},h=new WeakMap,d=[],p=null,f=!1,m=null,y=null,g=null,b=null,x=null,w=null,T=null,M=!1,v=null,E=null,C=null,P=null,D=null,_=n.getParameter(35661),I=!1,B=0,N=n.getParameter(7938);N.indexOf("WebGL")!==-1?(B=parseFloat(/^WebGL (\d)/.exec(N)[1]),I=B>=1):N.indexOf("OpenGL ES")!==-1&&(B=parseFloat(/^OpenGL ES (\d)/.exec(N)[1]),I=B>=2);let W=null,X={},F=n.getParameter(3088),k=n.getParameter(2978),Q=new Ve().fromArray(F),z=new Ve().fromArray(k);function U(H,xe,Te){let Qe=new Uint8Array(4),Re=n.createTexture();n.bindTexture(H,Re),n.texParameteri(H,10241,9728),n.texParameteri(H,10240,9728);for(let Je=0;Je<Te;Je++)n.texImage2D(xe+Je,0,6408,1,1,0,6408,5121,Qe);return Re}let j={};j[3553]=U(3553,3553,1),j[34067]=U(34067,34069,6),o.setClear(0,0,0,1),a.setClear(1),c.setClear(0),q(2929),a.setFunc(Hg),Me(!1),me(Jx),q(2884),le(Nt);function q(H){l[H]!==!0&&(n.enable(H),l[H]=!0)}function V(H){l[H]!==!1&&(n.disable(H),l[H]=!1)}function ue(H,xe){return u[H]!==xe?(n.bindFramebuffer(H,xe),u[H]=xe,A&&(H===36009&&(u[36160]=xe),H===36160&&(u[36009]=xe)),!0):!1}function Ae(H,xe){let Te=d,Qe=!1;if(H)if(Te=h.get(xe),Te===void 0&&(Te=[],h.set(xe,Te)),H.isWebGLMultipleRenderTargets){let Re=H.texture;if(Te.length!==Re.length||Te[0]!==36064){for(let Je=0,be=Re.length;Je<be;Je++)Te[Je]=36064+Je;Te.length=Re.length,Qe=!0}}else Te[0]!==36064&&(Te[0]=36064,Qe=!0);else Te[0]!==1029&&(Te[0]=1029,Qe=!0);Qe&&(t.isWebGL2?n.drawBuffers(Te):e.get("WEBGL_draw_buffers").drawBuffersWEBGL(Te))}function K(H){return p!==H?(n.useProgram(H),p=H,!0):!1}let Y={[ca]:32774,[_D]:32778,[OD]:32779};if(A)Y[Ab]=32775,Y[nb]=32776;else{let H=e.get("EXT_blend_minmax");H!==null&&(Y[Ab]=H.MIN_EXT,Y[nb]=H.MAX_EXT)}let ne={[RD]:0,[BD]:1,[ND]:768,[Lw]:770,[zD]:776,[UD]:774,[GD]:772,[FD]:769,[_w]:771,[VD]:775,[kD]:773};function le(H,xe,Te,Qe,Re,Je,be,$e){if(H===Nt){f===!0&&(V(3042),f=!1);return}if(f===!1&&(q(3042),f=!0),H!==LD){if(H!==m||$e!==M){if((y!==ca||x!==ca)&&(n.blendEquation(32774),y=ca,x=ca),$e)switch(H){case da:n.blendFuncSeparate(1,771,1,771);break;case $x:n.blendFunc(1,1);break;case eb:n.blendFuncSeparate(0,769,0,1);break;case tb:n.blendFuncSeparate(0,768,0,770);break;default:console.error("THREE.WebGLState: Invalid blending: ",H);break}else switch(H){case da:n.blendFuncSeparate(770,771,1,771);break;case $x:n.blendFunc(770,1);break;case eb:n.blendFuncSeparate(0,769,0,1);break;case tb:n.blendFunc(0,768);break;default:console.error("THREE.WebGLState: Invalid blending: ",H);break}g=null,b=null,w=null,T=null,m=H,M=$e}return}Re=Re||xe,Je=Je||Te,be=be||Qe,(xe!==y||Re!==x)&&(n.blendEquationSeparate(Y[xe],Y[Re]),y=xe,x=Re),(Te!==g||Qe!==b||Je!==w||be!==T)&&(n.blendFuncSeparate(ne[Te],ne[Qe],ne[Je],ne[be]),g=Te,b=Qe,w=Je,T=be),m=H,M=null}function se(H,xe){H.side===An?V(2884):q(2884);let Te=H.side===hA;xe&&(Te=!Te),Me(Te),H.blending===da&&H.transparent===!1?le(Nt):le(H.blending,H.blendEquation,H.blendSrc,H.blendDst,H.blendEquationAlpha,H.blendSrcAlpha,H.blendDstAlpha,H.premultipliedAlpha),a.setFunc(H.depthFunc),a.setTest(H.depthTest),a.setMask(H.depthWrite),o.setMask(H.colorWrite);let Qe=H.stencilWrite;c.setTest(Qe),Qe&&(c.setMask(H.stencilWriteMask),c.setFunc(H.stencilFunc,H.stencilRef,H.stencilFuncMask),c.setOp(H.stencilFail,H.stencilZFail,H.stencilZPass)),ye(H.polygonOffset,H.polygonOffsetFactor,H.polygonOffsetUnits),H.alphaToCoverage===!0?q(32926):V(32926)}function Me(H){v!==H&&(H?n.frontFace(2304):n.frontFace(2305),v=H)}function me(H){H!==PD?(q(2884),H!==E&&(H===Jx?n.cullFace(1029):H===DD?n.cullFace(1028):n.cullFace(1032))):V(2884),E=H}function ge(H){H!==C&&(I&&n.lineWidth(H),C=H)}function ye(H,xe,Te){H?(q(32823),(P!==xe||D!==Te)&&(n.polygonOffset(xe,Te),P=xe,D=Te)):V(32823)}function de(H){H?q(3089):V(3089)}function De(H){H===void 0&&(H=33984+_-1),W!==H&&(n.activeTexture(H),W=H)}function Be(H,xe){W===null&&De();let Te=X[W];Te===void 0&&(Te={type:void 0,texture:void 0},X[W]=Te),(Te.type!==H||Te.texture!==xe)&&(n.bindTexture(H,xe||j[H]),Te.type=H,Te.texture=xe)}function Ze(){let H=X[W];H!==void 0&&H.type!==void 0&&(n.bindTexture(H.type,null),H.type=void 0,H.texture=void 0)}function R(){try{n.compressedTexImage2D.apply(n,arguments)}catch(H){console.error("THREE.WebGLState:",H)}}function L(){try{n.texSubImage2D.apply(n,arguments)}catch(H){console.error("THREE.WebGLState:",H)}}function J(){try{n.texSubImage3D.apply(n,arguments)}catch(H){console.error("THREE.WebGLState:",H)}}function ae(){try{n.compressedTexSubImage2D.apply(n,arguments)}catch(H){console.error("THREE.WebGLState:",H)}}function fe(){try{n.texStorage2D.apply(n,arguments)}catch(H){console.error("THREE.WebGLState:",H)}}function Ce(){try{n.texStorage3D.apply(n,arguments)}catch(H){console.error("THREE.WebGLState:",H)}}function Fe(){try{n.texImage2D.apply(n,arguments)}catch(H){console.error("THREE.WebGLState:",H)}}function re(){try{n.texImage3D.apply(n,arguments)}catch(H){console.error("THREE.WebGLState:",H)}}function Ne(H){Q.equals(H)===!1&&(n.scissor(H.x,H.y,H.z,H.w),Q.copy(H))}function Oe(H){z.equals(H)===!1&&(n.viewport(H.x,H.y,H.z,H.w),z.copy(H))}function ve(){n.disable(3042),n.disable(2884),n.disable(2929),n.disable(32823),n.disable(3089),n.disable(2960),n.disable(32926),n.blendEquation(32774),n.blendFunc(1,0),n.blendFuncSeparate(1,0,1,0),n.colorMask(!0,!0,!0,!0),n.clearColor(0,0,0,0),n.depthMask(!0),n.depthFunc(513),n.clearDepth(1),n.stencilMask(4294967295),n.stencilFunc(519,0,4294967295),n.stencilOp(7680,7680,7680),n.clearStencil(0),n.cullFace(1029),n.frontFace(2305),n.polygonOffset(0,0),n.activeTexture(33984),n.bindFramebuffer(36160,null),A===!0&&(n.bindFramebuffer(36009,null),n.bindFramebuffer(36008,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),l={},W=null,X={},u={},h=new WeakMap,d=[],p=null,f=!1,m=null,y=null,g=null,b=null,x=null,w=null,T=null,M=!1,v=null,E=null,C=null,P=null,D=null,Q.set(0,0,n.canvas.width,n.canvas.height),z.set(0,0,n.canvas.width,n.canvas.height),o.reset(),a.reset(),c.reset()}return{buffers:{color:o,depth:a,stencil:c},enable:q,disable:V,bindFramebuffer:ue,drawBuffers:Ae,useProgram:K,setBlending:le,setMaterial:se,setFlipSided:Me,setCullFace:me,setLineWidth:ge,setPolygonOffset:ye,setScissorTest:de,activeTexture:De,bindTexture:Be,unbindTexture:Ze,compressedTexImage2D:R,texImage2D:Fe,texImage3D:re,texStorage2D:fe,texStorage3D:Ce,texSubImage2D:L,texSubImage3D:J,compressedTexSubImage2D:ae,scissor:Ne,viewport:Oe,reset:ve}}function p3(n,e,t,A,r,i,s){let o=r.isWebGL2,a=r.maxTextures,c=r.maxCubemapSize,l=r.maxTextureSize,u=r.maxSamples,h=e.has("WEBGL_multisampled_render_to_texture")?e.get("WEBGL_multisampled_render_to_texture"):null,d=/OculusBrowser/g.test(navigator.userAgent),p=new WeakMap,f,m=new WeakMap,y=!1;try{y=typeof OffscreenCanvas<"u"&&new OffscreenCanvas(1,1).getContext("2d")!==null}catch{}function g(R,L){return y?new OffscreenCanvas(R,L):Rd("canvas")}function b(R,L,J,ae){let fe=1;if((R.width>ae||R.height>ae)&&(fe=ae/Math.max(R.width,R.height)),fe<1||L===!0)if(typeof HTMLImageElement<"u"&&R instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&R instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&R instanceof ImageBitmap){let Ce=L?Od:Math.floor,Fe=Ce(fe*R.width),re=Ce(fe*R.height);f===void 0&&(f=g(Fe,re));let Ne=J?g(Fe,re):f;return Ne.width=Fe,Ne.height=re,Ne.getContext("2d").drawImage(R,0,0,Fe,re),console.warn("THREE.WebGLRenderer: Texture has been resized from ("+R.width+"x"+R.height+") to ("+Fe+"x"+re+")."),Ne}else return"data"in R&&console.warn("THREE.WebGLRenderer: Image in DataTexture is too big ("+R.width+"x"+R.height+")."),R;return R}function x(R){return Qg(R.width)&&Qg(R.height)}function w(R){return o?!1:R.wrapS!==tn||R.wrapT!==tn||R.minFilter!==Gt&&R.minFilter!==it}function T(R,L){return R.generateMipmaps&&L&&R.minFilter!==Gt&&R.minFilter!==it}function M(R){n.generateMipmap(R)}function v(R,L,J,ae,fe=!1){if(o===!1)return L;if(R!==null){if(n[R]!==void 0)return n[R];console.warn("THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '"+R+"'")}let Ce=L;return L===6403&&(J===5126&&(Ce=33326),J===5131&&(Ce=33325),J===5121&&(Ce=33321)),L===33319&&(J===5126&&(Ce=33328),J===5131&&(Ce=33327),J===5121&&(Ce=33323)),L===6408&&(J===5126&&(Ce=34836),J===5131&&(Ce=34842),J===5121&&(Ce=ae===qe&&fe===!1?35907:32856),J===32819&&(Ce=32854),J===32820&&(Ce=32855)),(Ce===33325||Ce===33326||Ce===33327||Ce===33328||Ce===34842||Ce===34836)&&e.get("EXT_color_buffer_float"),Ce}function E(R,L,J){return T(R,J)===!0||R.isFramebufferTexture&&R.minFilter!==Gt&&R.minFilter!==it?Math.log2(Math.max(L.width,L.height))+1:R.mipmaps!==void 0&&R.mipmaps.length>0?R.mipmaps.length:R.isCompressedTexture&&Array.isArray(R.image)?L.mipmaps.length:1}function C(R){return R===Gt||R===rb||R===ib?9728:9729}function P(R){let L=R.target;L.removeEventListener("dispose",P),_(L),L.isVideoTexture&&p.delete(L)}function D(R){let L=R.target;L.removeEventListener("dispose",D),B(L)}function _(R){let L=A.get(R);if(L.__webglInit===void 0)return;let J=R.source,ae=m.get(J);if(ae){let fe=ae[L.__cacheKey];fe.usedTimes--,fe.usedTimes===0&&I(R),Object.keys(ae).length===0&&m.delete(J)}A.remove(R)}function I(R){let L=A.get(R);n.deleteTexture(L.__webglTexture);let J=R.source,ae=m.get(J);delete ae[L.__cacheKey],s.memory.textures--}function B(R){let L=R.texture,J=A.get(R),ae=A.get(L);if(ae.__webglTexture!==void 0&&(n.deleteTexture(ae.__webglTexture),s.memory.textures--),R.depthTexture&&R.depthTexture.dispose(),R.isWebGLCubeRenderTarget)for(let fe=0;fe<6;fe++)n.deleteFramebuffer(J.__webglFramebuffer[fe]),J.__webglDepthbuffer&&n.deleteRenderbuffer(J.__webglDepthbuffer[fe]);else{if(n.deleteFramebuffer(J.__webglFramebuffer),J.__webglDepthbuffer&&n.deleteRenderbuffer(J.__webglDepthbuffer),J.__webglMultisampledFramebuffer&&n.deleteFramebuffer(J.__webglMultisampledFramebuffer),J.__webglColorRenderbuffer)for(let fe=0;fe<J.__webglColorRenderbuffer.length;fe++)J.__webglColorRenderbuffer[fe]&&n.deleteRenderbuffer(J.__webglColorRenderbuffer[fe]);J.__webglDepthRenderbuffer&&n.deleteRenderbuffer(J.__webglDepthRenderbuffer)}if(R.isWebGLMultipleRenderTargets)for(let fe=0,Ce=L.length;fe<Ce;fe++){let Fe=A.get(L[fe]);Fe.__webglTexture&&(n.deleteTexture(Fe.__webglTexture),s.memory.textures--),A.remove(L[fe])}A.remove(L),A.remove(R)}let N=0;function W(){N=0}function X(){let R=N;return R>=a&&console.warn("THREE.WebGLTextures: Trying to use "+R+" texture units while this GPU supports only "+a),N+=1,R}function F(R){let L=[];return L.push(R.wrapS),L.push(R.wrapT),L.push(R.magFilter),L.push(R.minFilter),L.push(R.anisotropy),L.push(R.internalFormat),L.push(R.format),L.push(R.type),L.push(R.generateMipmaps),L.push(R.premultiplyAlpha),L.push(R.flipY),L.push(R.unpackAlignment),L.push(R.encoding),L.join()}function k(R,L){let J=A.get(R);if(R.isVideoTexture&&Be(R),R.isRenderTargetTexture===!1&&R.version>0&&J.__version!==R.version){let ae=R.image;if(ae===null)console.warn("THREE.WebGLRenderer: Texture marked for update but no image data found.");else if(ae.complete===!1)console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete");else{Ae(J,R,L);return}}t.activeTexture(33984+L),t.bindTexture(3553,J.__webglTexture)}function Q(R,L){let J=A.get(R);if(R.version>0&&J.__version!==R.version){Ae(J,R,L);return}t.activeTexture(33984+L),t.bindTexture(35866,J.__webglTexture)}function z(R,L){let J=A.get(R);if(R.version>0&&J.__version!==R.version){Ae(J,R,L);return}t.activeTexture(33984+L),t.bindTexture(32879,J.__webglTexture)}function U(R,L){let J=A.get(R);if(R.version>0&&J.__version!==R.version){K(J,R,L);return}t.activeTexture(33984+L),t.bindTexture(34067,J.__webglTexture)}let j={[pa]:10497,[tn]:33071,[Yg]:33648},q={[Gt]:9728,[rb]:9984,[ib]:9986,[it]:9729,[nI]:9985,[Ba]:9987};function V(R,L,J){if(J?(n.texParameteri(R,10242,j[L.wrapS]),n.texParameteri(R,10243,j[L.wrapT]),(R===32879||R===35866)&&n.texParameteri(R,32882,j[L.wrapR]),n.texParameteri(R,10240,q[L.magFilter]),n.texParameteri(R,10241,q[L.minFilter])):(n.texParameteri(R,10242,33071),n.texParameteri(R,10243,33071),(R===32879||R===35866)&&n.texParameteri(R,32882,33071),(L.wrapS!==tn||L.wrapT!==tn)&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping."),n.texParameteri(R,10240,C(L.magFilter)),n.texParameteri(R,10241,C(L.minFilter)),L.minFilter!==Gt&&L.minFilter!==it&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter.")),e.has("EXT_texture_filter_anisotropic")===!0){let ae=e.get("EXT_texture_filter_anisotropic");if(L.type===Rr&&e.has("OES_texture_float_linear")===!1||o===!1&&L.type===$c&&e.has("OES_texture_half_float_linear")===!1)return;(L.anisotropy>1||A.get(L).__currentAnisotropy)&&(n.texParameterf(R,ae.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(L.anisotropy,r.getMaxAnisotropy())),A.get(L).__currentAnisotropy=L.anisotropy)}}function ue(R,L){let J=!1;R.__webglInit===void 0&&(R.__webglInit=!0,L.addEventListener("dispose",P));let ae=L.source,fe=m.get(ae);fe===void 0&&(fe={},m.set(ae,fe));let Ce=F(L);if(Ce!==R.__cacheKey){fe[Ce]===void 0&&(fe[Ce]={texture:n.createTexture(),usedTimes:0},s.memory.textures++,J=!0),fe[Ce].usedTimes++;let Fe=fe[R.__cacheKey];Fe!==void 0&&(fe[R.__cacheKey].usedTimes--,Fe.usedTimes===0&&I(L)),R.__cacheKey=Ce,R.__webglTexture=fe[Ce].texture}return J}function Ae(R,L,J){let ae=3553;L.isDataArrayTexture&&(ae=35866),L.isData3DTexture&&(ae=32879);let fe=ue(R,L),Ce=L.source;if(t.activeTexture(33984+J),t.bindTexture(ae,R.__webglTexture),Ce.version!==Ce.__currentVersion||fe===!0){n.pixelStorei(37440,L.flipY),n.pixelStorei(37441,L.premultiplyAlpha),n.pixelStorei(3317,L.unpackAlignment),n.pixelStorei(37443,0);let Fe=w(L)&&x(L.image)===!1,re=b(L.image,Fe,!1,l);re=Ze(L,re);let Ne=x(re)||o,Oe=i.convert(L.format,L.encoding),ve=i.convert(L.type),H=v(L.internalFormat,Oe,ve,L.encoding,L.isVideoTexture);V(ae,L,Ne);let xe,Te=L.mipmaps,Qe=o&&L.isVideoTexture!==!0,Re=Ce.__currentVersion===void 0||fe===!0,Je=E(L,re,Ne);if(L.isDepthTexture)H=6402,o?L.type===Rr?H=36012:L.type===wi?H=33190:L.type===Ji?H=35056:H=33189:L.type===Rr&&console.error("WebGLRenderer: Floating point depth texture requires WebGL2."),L.format===Ao&&H===6402&&L.type!==Bw&&L.type!==wi&&(console.warn("THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture."),L.type=wi,ve=i.convert(L.type)),L.format===ts&&H===6402&&(H=34041,L.type!==Ji&&(console.warn("THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture."),L.type=Ji,ve=i.convert(L.type))),Re&&(Qe?t.texStorage2D(3553,1,H,re.width,re.height):t.texImage2D(3553,0,H,re.width,re.height,0,Oe,ve,null));else if(L.isDataTexture)if(Te.length>0&&Ne){Qe&&Re&&t.texStorage2D(3553,Je,H,Te[0].width,Te[0].height);for(let be=0,$e=Te.length;be<$e;be++)xe=Te[be],Qe?t.texSubImage2D(3553,be,0,0,xe.width,xe.height,Oe,ve,xe.data):t.texImage2D(3553,be,H,xe.width,xe.height,0,Oe,ve,xe.data);L.generateMipmaps=!1}else Qe?(Re&&t.texStorage2D(3553,Je,H,re.width,re.height),t.texSubImage2D(3553,0,0,0,re.width,re.height,Oe,ve,re.data)):t.texImage2D(3553,0,H,re.width,re.height,0,Oe,ve,re.data);else if(L.isCompressedTexture){Qe&&Re&&t.texStorage2D(3553,Je,H,Te[0].width,Te[0].height);for(let be=0,$e=Te.length;be<$e;be++)xe=Te[be],L.format!==hr?Oe!==null?Qe?t.compressedTexSubImage2D(3553,be,0,0,xe.width,xe.height,Oe,xe.data):t.compressedTexImage2D(3553,be,H,xe.width,xe.height,0,xe.data):console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()"):Qe?t.texSubImage2D(3553,be,0,0,xe.width,xe.height,Oe,ve,xe.data):t.texImage2D(3553,be,H,xe.width,xe.height,0,Oe,ve,xe.data)}else if(L.isDataArrayTexture)Qe?(Re&&t.texStorage3D(35866,Je,H,re.width,re.height,re.depth),t.texSubImage3D(35866,0,0,0,0,re.width,re.height,re.depth,Oe,ve,re.data)):t.texImage3D(35866,0,H,re.width,re.height,re.depth,0,Oe,ve,re.data);else if(L.isData3DTexture)Qe?(Re&&t.texStorage3D(32879,Je,H,re.width,re.height,re.depth),t.texSubImage3D(32879,0,0,0,0,re.width,re.height,re.depth,Oe,ve,re.data)):t.texImage3D(32879,0,H,re.width,re.height,re.depth,0,Oe,ve,re.data);else if(L.isFramebufferTexture){if(Re)if(Qe)t.texStorage2D(3553,Je,H,re.width,re.height);else{let be=re.width,$e=re.height;for(let st=0;st<Je;st++)t.texImage2D(3553,st,H,be,$e,0,Oe,ve,null),be>>=1,$e>>=1}}else if(Te.length>0&&Ne){Qe&&Re&&t.texStorage2D(3553,Je,H,Te[0].width,Te[0].height);for(let be=0,$e=Te.length;be<$e;be++)xe=Te[be],Qe?t.texSubImage2D(3553,be,0,0,Oe,ve,xe):t.texImage2D(3553,be,H,Oe,ve,xe);L.generateMipmaps=!1}else Qe?(Re&&t.texStorage2D(3553,Je,H,re.width,re.height),t.texSubImage2D(3553,0,0,0,Oe,ve,re)):t.texImage2D(3553,0,H,Oe,ve,re);T(L,Ne)&&M(ae),Ce.__currentVersion=Ce.version,L.onUpdate&&L.onUpdate(L)}R.__version=L.version}function K(R,L,J){if(L.image.length!==6)return;let ae=ue(R,L),fe=L.source;if(t.activeTexture(33984+J),t.bindTexture(34067,R.__webglTexture),fe.version!==fe.__currentVersion||ae===!0){n.pixelStorei(37440,L.flipY),n.pixelStorei(37441,L.premultiplyAlpha),n.pixelStorei(3317,L.unpackAlignment),n.pixelStorei(37443,0);let Ce=L.isCompressedTexture||L.image[0].isCompressedTexture,Fe=L.image[0]&&L.image[0].isDataTexture,re=[];for(let be=0;be<6;be++)!Ce&&!Fe?re[be]=b(L.image[be],!1,!0,c):re[be]=Fe?L.image[be].image:L.image[be],re[be]=Ze(L,re[be]);let Ne=re[0],Oe=x(Ne)||o,ve=i.convert(L.format,L.encoding),H=i.convert(L.type),xe=v(L.internalFormat,ve,H,L.encoding),Te=o&&L.isVideoTexture!==!0,Qe=fe.__currentVersion===void 0||ae===!0,Re=E(L,Ne,Oe);V(34067,L,Oe);let Je;if(Ce){Te&&Qe&&t.texStorage2D(34067,Re,xe,Ne.width,Ne.height);for(let be=0;be<6;be++){Je=re[be].mipmaps;for(let $e=0;$e<Je.length;$e++){let st=Je[$e];L.format!==hr?ve!==null?Te?t.compressedTexSubImage2D(34069+be,$e,0,0,st.width,st.height,ve,st.data):t.compressedTexImage2D(34069+be,$e,xe,st.width,st.height,0,st.data):console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .setTextureCube()"):Te?t.texSubImage2D(34069+be,$e,0,0,st.width,st.height,ve,H,st.data):t.texImage2D(34069+be,$e,xe,st.width,st.height,0,ve,H,st.data)}}}else{Je=L.mipmaps,Te&&Qe&&(Je.length>0&&Re++,t.texStorage2D(34067,Re,xe,re[0].width,re[0].height));for(let be=0;be<6;be++)if(Fe){Te?t.texSubImage2D(34069+be,0,0,0,re[be].width,re[be].height,ve,H,re[be].data):t.texImage2D(34069+be,0,xe,re[be].width,re[be].height,0,ve,H,re[be].data);for(let $e=0;$e<Je.length;$e++){let vt=Je[$e].image[be].image;Te?t.texSubImage2D(34069+be,$e+1,0,0,vt.width,vt.height,ve,H,vt.data):t.texImage2D(34069+be,$e+1,xe,vt.width,vt.height,0,ve,H,vt.data)}}else{Te?t.texSubImage2D(34069+be,0,0,0,ve,H,re[be]):t.texImage2D(34069+be,0,xe,ve,H,re[be]);for(let $e=0;$e<Je.length;$e++){let st=Je[$e];Te?t.texSubImage2D(34069+be,$e+1,0,0,ve,H,st.image[be]):t.texImage2D(34069+be,$e+1,xe,ve,H,st.image[be])}}}T(L,Oe)&&M(34067),fe.__currentVersion=fe.version,L.onUpdate&&L.onUpdate(L)}R.__version=L.version}function Y(R,L,J,ae,fe){let Ce=i.convert(J.format,J.encoding),Fe=i.convert(J.type),re=v(J.internalFormat,Ce,Fe,J.encoding);A.get(L).__hasExternalTextures||(fe===32879||fe===35866?t.texImage3D(fe,0,re,L.width,L.height,L.depth,0,Ce,Fe,null):t.texImage2D(fe,0,re,L.width,L.height,0,Ce,Fe,null)),t.bindFramebuffer(36160,R),De(L)?h.framebufferTexture2DMultisampleEXT(36160,ae,fe,A.get(J).__webglTexture,0,de(L)):n.framebufferTexture2D(36160,ae,fe,A.get(J).__webglTexture,0),t.bindFramebuffer(36160,null)}function ne(R,L,J){if(n.bindRenderbuffer(36161,R),L.depthBuffer&&!L.stencilBuffer){let ae=33189;if(J||De(L)){let fe=L.depthTexture;fe&&fe.isDepthTexture&&(fe.type===Rr?ae=36012:fe.type===wi&&(ae=33190));let Ce=de(L);De(L)?h.renderbufferStorageMultisampleEXT(36161,Ce,ae,L.width,L.height):n.renderbufferStorageMultisample(36161,Ce,ae,L.width,L.height)}else n.renderbufferStorage(36161,ae,L.width,L.height);n.framebufferRenderbuffer(36160,36096,36161,R)}else if(L.depthBuffer&&L.stencilBuffer){let ae=de(L);J&&De(L)===!1?n.renderbufferStorageMultisample(36161,ae,35056,L.width,L.height):De(L)?h.renderbufferStorageMultisampleEXT(36161,ae,35056,L.width,L.height):n.renderbufferStorage(36161,34041,L.width,L.height),n.framebufferRenderbuffer(36160,33306,36161,R)}else{let ae=L.isWebGLMultipleRenderTargets===!0?L.texture:[L.texture];for(let fe=0;fe<ae.length;fe++){let Ce=ae[fe],Fe=i.convert(Ce.format,Ce.encoding),re=i.convert(Ce.type),Ne=v(Ce.internalFormat,Fe,re,Ce.encoding),Oe=de(L);J&&De(L)===!1?n.renderbufferStorageMultisample(36161,Oe,Ne,L.width,L.height):De(L)?h.renderbufferStorageMultisampleEXT(36161,Oe,Ne,L.width,L.height):n.renderbufferStorage(36161,Ne,L.width,L.height)}}n.bindRenderbuffer(36161,null)}function le(R,L){if(L&&L.isWebGLCubeRenderTarget)throw new Error("Depth Texture with cube render targets is not supported");if(t.bindFramebuffer(36160,R),!(L.depthTexture&&L.depthTexture.isDepthTexture))throw new Error("renderTarget.depthTexture must be an instance of THREE.DepthTexture");(!A.get(L.depthTexture).__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),k(L.depthTexture,0);let ae=A.get(L.depthTexture).__webglTexture,fe=de(L);if(L.depthTexture.format===Ao)De(L)?h.framebufferTexture2DMultisampleEXT(36160,36096,3553,ae,0,fe):n.framebufferTexture2D(36160,36096,3553,ae,0);else if(L.depthTexture.format===ts)De(L)?h.framebufferTexture2DMultisampleEXT(36160,33306,3553,ae,0,fe):n.framebufferTexture2D(36160,33306,3553,ae,0);else throw new Error("Unknown depthTexture format")}function se(R){let L=A.get(R),J=R.isWebGLCubeRenderTarget===!0;if(R.depthTexture&&!L.__autoAllocateDepthBuffer){if(J)throw new Error("target.depthTexture not supported in Cube render targets");le(L.__webglFramebuffer,R)}else if(J){L.__webglDepthbuffer=[];for(let ae=0;ae<6;ae++)t.bindFramebuffer(36160,L.__webglFramebuffer[ae]),L.__webglDepthbuffer[ae]=n.createRenderbuffer(),ne(L.__webglDepthbuffer[ae],R,!1)}else t.bindFramebuffer(36160,L.__webglFramebuffer),L.__webglDepthbuffer=n.createRenderbuffer(),ne(L.__webglDepthbuffer,R,!1);t.bindFramebuffer(36160,null)}function Me(R,L,J){let ae=A.get(R);L!==void 0&&Y(ae.__webglFramebuffer,R,R.texture,36064,3553),J!==void 0&&se(R)}function me(R){let L=R.texture,J=A.get(R),ae=A.get(L);R.addEventListener("dispose",D),R.isWebGLMultipleRenderTargets!==!0&&(ae.__webglTexture===void 0&&(ae.__webglTexture=n.createTexture()),ae.__version=L.version,s.memory.textures++);let fe=R.isWebGLCubeRenderTarget===!0,Ce=R.isWebGLMultipleRenderTargets===!0,Fe=x(R)||o;if(fe){J.__webglFramebuffer=[];for(let re=0;re<6;re++)J.__webglFramebuffer[re]=n.createFramebuffer()}else{if(J.__webglFramebuffer=n.createFramebuffer(),Ce)if(r.drawBuffers){let re=R.texture;for(let Ne=0,Oe=re.length;Ne<Oe;Ne++){let ve=A.get(re[Ne]);ve.__webglTexture===void 0&&(ve.__webglTexture=n.createTexture(),s.memory.textures++)}}else console.warn("THREE.WebGLRenderer: WebGLMultipleRenderTargets can only be used with WebGL2 or WEBGL_draw_buffers extension.");if(o&&R.samples>0&&De(R)===!1){let re=Ce?L:[L];J.__webglMultisampledFramebuffer=n.createFramebuffer(),J.__webglColorRenderbuffer=[],t.bindFramebuffer(36160,J.__webglMultisampledFramebuffer);for(let Ne=0;Ne<re.length;Ne++){let Oe=re[Ne];J.__webglColorRenderbuffer[Ne]=n.createRenderbuffer(),n.bindRenderbuffer(36161,J.__webglColorRenderbuffer[Ne]);let ve=i.convert(Oe.format,Oe.encoding),H=i.convert(Oe.type),xe=v(Oe.internalFormat,ve,H,Oe.encoding),Te=de(R);n.renderbufferStorageMultisample(36161,Te,xe,R.width,R.height),n.framebufferRenderbuffer(36160,36064+Ne,36161,J.__webglColorRenderbuffer[Ne])}n.bindRenderbuffer(36161,null),R.depthBuffer&&(J.__webglDepthRenderbuffer=n.createRenderbuffer(),ne(J.__webglDepthRenderbuffer,R,!0)),t.bindFramebuffer(36160,null)}}if(fe){t.bindTexture(34067,ae.__webglTexture),V(34067,L,Fe);for(let re=0;re<6;re++)Y(J.__webglFramebuffer[re],R,L,36064,34069+re);T(L,Fe)&&M(34067),t.unbindTexture()}else if(Ce){let re=R.texture;for(let Ne=0,Oe=re.length;Ne<Oe;Ne++){let ve=re[Ne],H=A.get(ve);t.bindTexture(3553,H.__webglTexture),V(3553,ve,Fe),Y(J.__webglFramebuffer,R,ve,36064+Ne,3553),T(ve,Fe)&&M(3553)}t.unbindTexture()}else{let re=3553;(R.isWebGL3DRenderTarget||R.isWebGLArrayRenderTarget)&&(o?re=R.isWebGL3DRenderTarget?32879:35866:console.error("THREE.WebGLTextures: THREE.Data3DTexture and THREE.DataArrayTexture only supported with WebGL2.")),t.bindTexture(re,ae.__webglTexture),V(re,L,Fe),Y(J.__webglFramebuffer,R,L,36064,re),T(L,Fe)&&M(re),t.unbindTexture()}R.depthBuffer&&se(R)}function ge(R){let L=x(R)||o,J=R.isWebGLMultipleRenderTargets===!0?R.texture:[R.texture];for(let ae=0,fe=J.length;ae<fe;ae++){let Ce=J[ae];if(T(Ce,L)){let Fe=R.isWebGLCubeRenderTarget?34067:3553,re=A.get(Ce).__webglTexture;t.bindTexture(Fe,re),M(Fe),t.unbindTexture()}}}function ye(R){if(o&&R.samples>0&&De(R)===!1){let L=R.isWebGLMultipleRenderTargets?R.texture:[R.texture],J=R.width,ae=R.height,fe=16384,Ce=[],Fe=R.stencilBuffer?33306:36096,re=A.get(R),Ne=R.isWebGLMultipleRenderTargets===!0;if(Ne)for(let Oe=0;Oe<L.length;Oe++)t.bindFramebuffer(36160,re.__webglMultisampledFramebuffer),n.framebufferRenderbuffer(36160,36064+Oe,36161,null),t.bindFramebuffer(36160,re.__webglFramebuffer),n.framebufferTexture2D(36009,36064+Oe,3553,null,0);t.bindFramebuffer(36008,re.__webglMultisampledFramebuffer),t.bindFramebuffer(36009,re.__webglFramebuffer);for(let Oe=0;Oe<L.length;Oe++){Ce.push(36064+Oe),R.depthBuffer&&Ce.push(Fe);let ve=re.__ignoreDepthValues!==void 0?re.__ignoreDepthValues:!1;if(ve===!1&&(R.depthBuffer&&(fe|=256),R.stencilBuffer&&(fe|=1024)),Ne&&n.framebufferRenderbuffer(36008,36064,36161,re.__webglColorRenderbuffer[Oe]),ve===!0&&(n.invalidateFramebuffer(36008,[Fe]),n.invalidateFramebuffer(36009,[Fe])),Ne){let H=A.get(L[Oe]).__webglTexture;n.framebufferTexture2D(36009,36064,3553,H,0)}n.blitFramebuffer(0,0,J,ae,0,0,J,ae,fe,9728),d&&n.invalidateFramebuffer(36008,Ce)}if(t.bindFramebuffer(36008,null),t.bindFramebuffer(36009,null),Ne)for(let Oe=0;Oe<L.length;Oe++){t.bindFramebuffer(36160,re.__webglMultisampledFramebuffer),n.framebufferRenderbuffer(36160,36064+Oe,36161,re.__webglColorRenderbuffer[Oe]);let ve=A.get(L[Oe]).__webglTexture;t.bindFramebuffer(36160,re.__webglFramebuffer),n.framebufferTexture2D(36009,36064+Oe,3553,ve,0)}t.bindFramebuffer(36009,re.__webglMultisampledFramebuffer)}}function de(R){return Math.min(u,R.samples)}function De(R){let L=A.get(R);return o&&R.samples>0&&e.has("WEBGL_multisampled_render_to_texture")===!0&&L.__useRenderToTexture!==!1}function Be(R){let L=s.render.frame;p.get(R)!==L&&(p.set(R,L),R.update())}function Ze(R,L){let J=R.encoding,ae=R.format,fe=R.type;return R.isCompressedTexture===!0||R.isVideoTexture===!0||R.format===Xg||J!==Ln&&(J===qe?o===!1?e.has("EXT_sRGB")===!0&&ae===hr?(R.format=Xg,R.minFilter=it,R.generateMipmaps=!1):L=Bd.sRGBToLinear(L):(ae!==hr||fe!==kt)&&console.warn("THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType."):console.error("THREE.WebGLTextures: Unsupported texture encoding:",J)),L}this.allocateTextureUnit=X,this.resetTextureUnits=W,this.setTexture2D=k,this.setTexture2DArray=Q,this.setTexture3D=z,this.setTextureCube=U,this.rebindTextures=Me,this.setupRenderTarget=me,this.updateRenderTargetMipmap=ge,this.updateMultisampleRenderTarget=ye,this.setupDepthRenderbuffer=se,this.setupFrameBufferTexture=Y,this.useMultisampledRTT=De}function m3(n,e,t){let A=t.isWebGL2;function r(i,s=null){let o;if(i===kt)return 5121;if(i===oI)return 32819;if(i===aI)return 32820;if(i===rI)return 5120;if(i===iI)return 5122;if(i===Bw)return 5123;if(i===sI)return 5124;if(i===wi)return 5125;if(i===Rr)return 5126;if(i===$c)return A?5131:(o=e.get("OES_texture_half_float"),o!==null?o.HALF_FLOAT_OES:null);if(i===lI)return 6406;if(i===hr)return 6408;if(i===uI)return 6409;if(i===hI)return 6410;if(i===Ao)return 6402;if(i===ts)return 34041;if(i===dI)return 6403;if(i===cI)return console.warn("THREE.WebGLRenderer: THREE.RGBFormat has been removed. Use THREE.RGBAFormat instead. https://github.com/mrdoob/three.js/pull/23228"),6408;if(i===Xg)return o=e.get("EXT_sRGB"),o!==null?o.SRGB_ALPHA_EXT:null;if(i===fI)return 36244;if(i===pI)return 33319;if(i===mI)return 33320;if(i===gI)return 36249;if(i===og||i===ag||i===lg||i===cg)if(s===qe)if(o=e.get("WEBGL_compressed_texture_s3tc_srgb"),o!==null){if(i===og)return o.COMPRESSED_SRGB_S3TC_DXT1_EXT;if(i===ag)return o.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT;if(i===lg)return o.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT;if(i===cg)return o.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT}else return null;else if(o=e.get("WEBGL_compressed_texture_s3tc"),o!==null){if(i===og)return o.COMPRESSED_RGB_S3TC_DXT1_EXT;if(i===ag)return o.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(i===lg)return o.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(i===cg)return o.COMPRESSED_RGBA_S3TC_DXT5_EXT}else return null;if(i===sb||i===ob||i===ab||i===lb)if(o=e.get("WEBGL_compressed_texture_pvrtc"),o!==null){if(i===sb)return o.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(i===ob)return o.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(i===ab)return o.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(i===lb)return o.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}else return null;if(i===yI)return o=e.get("WEBGL_compressed_texture_etc1"),o!==null?o.COMPRESSED_RGB_ETC1_WEBGL:null;if(i===cb||i===ub)if(o=e.get("WEBGL_compressed_texture_etc"),o!==null){if(i===cb)return s===qe?o.COMPRESSED_SRGB8_ETC2:o.COMPRESSED_RGB8_ETC2;if(i===ub)return s===qe?o.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:o.COMPRESSED_RGBA8_ETC2_EAC}else return null;if(i===hb||i===db||i===fb||i===pb||i===mb||i===gb||i===yb||i===vb||i===xb||i===bb||i===wb||i===Sb||i===Tb||i===Mb)if(o=e.get("WEBGL_compressed_texture_astc"),o!==null){if(i===hb)return s===qe?o.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR:o.COMPRESSED_RGBA_ASTC_4x4_KHR;if(i===db)return s===qe?o.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR:o.COMPRESSED_RGBA_ASTC_5x4_KHR;if(i===fb)return s===qe?o.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR:o.COMPRESSED_RGBA_ASTC_5x5_KHR;if(i===pb)return s===qe?o.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR:o.COMPRESSED_RGBA_ASTC_6x5_KHR;if(i===mb)return s===qe?o.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR:o.COMPRESSED_RGBA_ASTC_6x6_KHR;if(i===gb)return s===qe?o.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR:o.COMPRESSED_RGBA_ASTC_8x5_KHR;if(i===yb)return s===qe?o.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR:o.COMPRESSED_RGBA_ASTC_8x6_KHR;if(i===vb)return s===qe?o.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR:o.COMPRESSED_RGBA_ASTC_8x8_KHR;if(i===xb)return s===qe?o.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR:o.COMPRESSED_RGBA_ASTC_10x5_KHR;if(i===bb)return s===qe?o.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR:o.COMPRESSED_RGBA_ASTC_10x6_KHR;if(i===wb)return s===qe?o.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR:o.COMPRESSED_RGBA_ASTC_10x8_KHR;if(i===Sb)return s===qe?o.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR:o.COMPRESSED_RGBA_ASTC_10x10_KHR;if(i===Tb)return s===qe?o.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR:o.COMPRESSED_RGBA_ASTC_12x10_KHR;if(i===Mb)return s===qe?o.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR:o.COMPRESSED_RGBA_ASTC_12x12_KHR}else return null;if(i===Eb)if(o=e.get("EXT_texture_compression_bptc"),o!==null){if(i===Eb)return s===qe?o.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT:o.COMPRESSED_RGBA_BPTC_UNORM_EXT}else return null;return i===Ji?A?34042:(o=e.get("WEBGL_depth_texture"),o!==null?o.UNSIGNED_INT_24_8_WEBGL:null):n[i]!==void 0?n[i]:null}return{convert:r}}var sy=class extends iA{constructor(e=[]){super(),this.isArrayCamera=!0,this.cameras=e}},Ki=class extends ht{constructor(){super(),this.isGroup=!0,this.type="Group"}},g3={type:"move"},Zc=class{constructor(){this._targetRay=null,this._grip=null,this._hand=null}getHandSpace(){return this._hand===null&&(this._hand=new Ki,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 Ki,this._targetRay.matrixAutoUpdate=!1,this._targetRay.visible=!1,this._targetRay.hasLinearVelocity=!1,this._targetRay.linearVelocity=new S,this._targetRay.hasAngularVelocity=!1,this._targetRay.angularVelocity=new S),this._targetRay}getGripSpace(){return this._grip===null&&(this._grip=new Ki,this._grip.matrixAutoUpdate=!1,this._grip.visible=!1,this._grip.hasLinearVelocity=!1,this._grip.linearVelocity=new S,this._grip.hasAngularVelocity=!1,this._grip.angularVelocity=new S),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}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,A){let r=null,i=null,s=null,o=this._targetRay,a=this._grip,c=this._hand;if(e&&t.session.visibilityState!=="visible-blurred"){if(c&&e.hand){s=!0;for(let f of e.hand.values()){let m=t.getJointPose(f,A);if(c.joints[f.jointName]===void 0){let g=new Ki;g.matrixAutoUpdate=!1,g.visible=!1,c.joints[f.jointName]=g,c.add(g)}let y=c.joints[f.jointName];m!==null&&(y.matrix.fromArray(m.transform.matrix),y.matrix.decompose(y.position,y.rotation,y.scale),y.jointRadius=m.radius),y.visible=m!==null}let l=c.joints["index-finger-tip"],u=c.joints["thumb-tip"],h=l.position.distanceTo(u.position),d=.02,p=.005;c.inputState.pinching&&h>d+p?(c.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:e.handedness,target:this})):!c.inputState.pinching&&h<=d-p&&(c.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:e.handedness,target:this}))}else a!==null&&e.gripSpace&&(i=t.getPose(e.gripSpace,A),i!==null&&(a.matrix.fromArray(i.transform.matrix),a.matrix.decompose(a.position,a.rotation,a.scale),i.linearVelocity?(a.hasLinearVelocity=!0,a.linearVelocity.copy(i.linearVelocity)):a.hasLinearVelocity=!1,i.angularVelocity?(a.hasAngularVelocity=!0,a.angularVelocity.copy(i.angularVelocity)):a.hasAngularVelocity=!1));o!==null&&(r=t.getPose(e.targetRaySpace,A),r===null&&i!==null&&(r=i),r!==null&&(o.matrix.fromArray(r.transform.matrix),o.matrix.decompose(o.position,o.rotation,o.scale),r.linearVelocity?(o.hasLinearVelocity=!0,o.linearVelocity.copy(r.linearVelocity)):o.hasLinearVelocity=!1,r.angularVelocity?(o.hasAngularVelocity=!0,o.angularVelocity.copy(r.angularVelocity)):o.hasAngularVelocity=!1,this.dispatchEvent(g3)))}return o!==null&&(o.visible=r!==null),a!==null&&(a.visible=i!==null),c!==null&&(c.visible=s!==null),this}},ns=class extends jt{constructor(e,t,A,r,i,s,o,a,c,l){if(l=l!==void 0?l:Ao,l!==Ao&&l!==ts)throw new Error("DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat");A===void 0&&l===Ao&&(A=wi),A===void 0&&l===ts&&(A=Ji),super(null,r,i,s,o,a,l,A,c),this.isDepthTexture=!0,this.image={width:e,height:t},this.magFilter=o!==void 0?o:Gt,this.minFilter=a!==void 0?a:Gt,this.flipY=!1,this.generateMipmaps=!1}},oy=class extends Ot{constructor(e,t){super();let A=this,r=null,i=1,s=null,o="local-floor",a=null,c=null,l=null,u=null,h=null,d=null,p=t.getContextAttributes(),f=null,m=null,y=[],g=[],b=new iA;b.layers.enable(1),b.viewport=new Ve;let x=new iA;x.layers.enable(2),x.viewport=new Ve;let w=[b,x],T=new sy;T.layers.enable(1),T.layers.enable(2);let M=null,v=null;this.cameraAutoUpdate=!0,this.enabled=!1,this.isPresenting=!1,this.getController=function(F){let k=y[F];return k===void 0&&(k=new Zc,y[F]=k),k.getTargetRaySpace()},this.getControllerGrip=function(F){let k=y[F];return k===void 0&&(k=new Zc,y[F]=k),k.getGripSpace()},this.getHand=function(F){let k=y[F];return k===void 0&&(k=new Zc,y[F]=k),k.getHandSpace()};function E(F){let k=g.indexOf(F.inputSource);if(k===-1)return;let Q=y[k];Q!==void 0&&Q.dispatchEvent({type:F.type,data:F.inputSource})}function C(){r.removeEventListener("select",E),r.removeEventListener("selectstart",E),r.removeEventListener("selectend",E),r.removeEventListener("squeeze",E),r.removeEventListener("squeezestart",E),r.removeEventListener("squeezeend",E),r.removeEventListener("end",C),r.removeEventListener("inputsourceschange",P);for(let F=0;F<y.length;F++){let k=g[F];k!==null&&(g[F]=null,y[F].disconnect(k))}M=null,v=null,e.setRenderTarget(f),h=null,u=null,l=null,r=null,m=null,X.stop(),A.isPresenting=!1,A.dispatchEvent({type:"sessionend"})}this.setFramebufferScaleFactor=function(F){i=F,A.isPresenting===!0&&console.warn("THREE.WebXRManager: Cannot change framebuffer scale while presenting.")},this.setReferenceSpaceType=function(F){o=F,A.isPresenting===!0&&console.warn("THREE.WebXRManager: Cannot change reference space type while presenting.")},this.getReferenceSpace=function(){return a||s},this.setReferenceSpace=function(F){a=F},this.getBaseLayer=function(){return u!==null?u:h},this.getBinding=function(){return l},this.getFrame=function(){return d},this.getSession=function(){return r},this.setSession=async function(F){if(r=F,r!==null){if(f=e.getRenderTarget(),r.addEventListener("select",E),r.addEventListener("selectstart",E),r.addEventListener("selectend",E),r.addEventListener("squeeze",E),r.addEventListener("squeezestart",E),r.addEventListener("squeezeend",E),r.addEventListener("end",C),r.addEventListener("inputsourceschange",P),p.xrCompatible!==!0&&await t.makeXRCompatible(),r.renderState.layers===void 0||e.capabilities.isWebGL2===!1){let k={antialias:r.renderState.layers===void 0?p.antialias:!0,alpha:p.alpha,depth:p.depth,stencil:p.stencil,framebufferScaleFactor:i};h=new XRWebGLLayer(r,t,k),r.updateRenderState({baseLayer:h}),m=new ft(h.framebufferWidth,h.framebufferHeight,{format:hr,type:kt,encoding:e.outputEncoding})}else{let k=null,Q=null,z=null;p.depth&&(z=p.stencil?35056:33190,k=p.stencil?ts:Ao,Q=p.stencil?Ji:wi);let U={colorFormat:32856,depthFormat:z,scaleFactor:i};l=new XRWebGLBinding(r,t),u=l.createProjectionLayer(U),r.updateRenderState({layers:[u]}),m=new ft(u.textureWidth,u.textureHeight,{format:hr,type:kt,depthTexture:new ns(u.textureWidth,u.textureHeight,Q,void 0,void 0,void 0,void 0,void 0,void 0,k),stencilBuffer:p.stencil,encoding:e.outputEncoding,samples:p.antialias?4:0});let j=e.properties.get(m);j.__ignoreDepthValues=u.ignoreDepthValues}m.isXRRenderTarget=!0,this.setFoveation(1),a=null,s=await r.requestReferenceSpace(o),X.setContext(r),X.start(),A.isPresenting=!0,A.dispatchEvent({type:"sessionstart"})}};function P(F){for(let k=0;k<F.removed.length;k++){let Q=F.removed[k],z=g.indexOf(Q);z>=0&&(g[z]=null,y[z].dispatchEvent({type:"disconnected",data:Q}))}for(let k=0;k<F.added.length;k++){let Q=F.added[k],z=g.indexOf(Q);if(z===-1){for(let j=0;j<y.length;j++)if(j>=g.length){g.push(Q),z=j;break}else if(g[j]===null){g[j]=Q,z=j;break}if(z===-1)break}let U=y[z];U&&U.dispatchEvent({type:"connected",data:Q})}}let D=new S,_=new S;function I(F,k,Q){D.setFromMatrixPosition(k.matrixWorld),_.setFromMatrixPosition(Q.matrixWorld);let z=D.distanceTo(_),U=k.projectionMatrix.elements,j=Q.projectionMatrix.elements,q=U[14]/(U[10]-1),V=U[14]/(U[10]+1),ue=(U[9]+1)/U[5],Ae=(U[9]-1)/U[5],K=(U[8]-1)/U[0],Y=(j[8]+1)/j[0],ne=q*K,le=q*Y,se=z/(-K+Y),Me=se*-K;k.matrixWorld.decompose(F.position,F.quaternion,F.scale),F.translateX(Me),F.translateZ(se),F.matrixWorld.compose(F.position,F.quaternion,F.scale),F.matrixWorldInverse.copy(F.matrixWorld).invert();let me=q+se,ge=V+se,ye=ne-Me,de=le+(z-Me),De=ue*V/ge*me,Be=Ae*V/ge*me;F.projectionMatrix.makePerspective(ye,de,De,Be,me,ge)}function B(F,k){k===null?F.matrixWorld.copy(F.matrix):F.matrixWorld.multiplyMatrices(k.matrixWorld,F.matrix),F.matrixWorldInverse.copy(F.matrixWorld).invert()}this.updateCamera=function(F){if(r===null)return;T.near=x.near=b.near=F.near,T.far=x.far=b.far=F.far,(M!==T.near||v!==T.far)&&(r.updateRenderState({depthNear:T.near,depthFar:T.far}),M=T.near,v=T.far);let k=F.parent,Q=T.cameras;B(T,k);for(let U=0;U<Q.length;U++)B(Q[U],k);T.matrixWorld.decompose(T.position,T.quaternion,T.scale),F.position.copy(T.position),F.quaternion.copy(T.quaternion),F.scale.copy(T.scale),F.matrix.copy(T.matrix),F.matrixWorld.copy(T.matrixWorld);let z=F.children;for(let U=0,j=z.length;U<j;U++)z[U].updateMatrixWorld(!0);Q.length===2?I(T,b,x):T.projectionMatrix.copy(b.projectionMatrix)},this.getCamera=function(){return T},this.getFoveation=function(){if(u!==null)return u.fixedFoveation;if(h!==null)return h.fixedFoveation},this.setFoveation=function(F){u!==null&&(u.fixedFoveation=F),h!==null&&h.fixedFoveation!==void 0&&(h.fixedFoveation=F)};let N=null;function W(F,k){if(c=k.getViewerPose(a||s),d=k,c!==null){let Q=c.views;h!==null&&(e.setRenderTargetFramebuffer(m,h.framebuffer),e.setRenderTarget(m));let z=!1;Q.length!==T.cameras.length&&(T.cameras.length=0,z=!0);for(let U=0;U<Q.length;U++){let j=Q[U],q=null;if(h!==null)q=h.getViewport(j);else{let ue=l.getViewSubImage(u,j);q=ue.viewport,U===0&&(e.setRenderTargetTextures(m,ue.colorTexture,u.ignoreDepthValues?void 0:ue.depthStencilTexture),e.setRenderTarget(m))}let V=w[U];V===void 0&&(V=new iA,V.layers.enable(U),V.viewport=new Ve,w[U]=V),V.matrix.fromArray(j.transform.matrix),V.projectionMatrix.fromArray(j.projectionMatrix),V.viewport.set(q.x,q.y,q.width,q.height),U===0&&T.matrix.copy(V.matrix),z===!0&&T.cameras.push(V)}}for(let Q=0;Q<y.length;Q++){let z=g[Q],U=y[Q];z!==null&&U!==void 0&&U.update(z,k,a||s)}N&&N(F,k),d=null}let X=new Gw;X.setAnimationLoop(W),this.setAnimationLoop=function(F){N=F},this.dispose=function(){}}};function y3(n,e){function t(f,m){f.fogColor.value.copy(m.color),m.isFog?(f.fogNear.value=m.near,f.fogFar.value=m.far):m.isFogExp2&&(f.fogDensity.value=m.density)}function A(f,m,y,g,b){m.isMeshBasicMaterial||m.isMeshLambertMaterial?r(f,m):m.isMeshToonMaterial?(r(f,m),l(f,m)):m.isMeshPhongMaterial?(r(f,m),c(f,m)):m.isMeshStandardMaterial?(r(f,m),u(f,m),m.isMeshPhysicalMaterial&&h(f,m,b)):m.isMeshMatcapMaterial?(r(f,m),d(f,m)):m.isMeshDepthMaterial?r(f,m):m.isMeshDistanceMaterial?(r(f,m),p(f,m)):m.isMeshNormalMaterial?r(f,m):m.isLineBasicMaterial?(i(f,m),m.isLineDashedMaterial&&s(f,m)):m.isPointsMaterial?o(f,m,y,g):m.isSpriteMaterial?a(f,m):m.isShadowMaterial?(f.color.value.copy(m.color),f.opacity.value=m.opacity):m.isShaderMaterial&&(m.uniformsNeedUpdate=!1)}function r(f,m){f.opacity.value=m.opacity,m.color&&f.diffuse.value.copy(m.color),m.emissive&&f.emissive.value.copy(m.emissive).multiplyScalar(m.emissiveIntensity),m.map&&(f.map.value=m.map),m.alphaMap&&(f.alphaMap.value=m.alphaMap),m.bumpMap&&(f.bumpMap.value=m.bumpMap,f.bumpScale.value=m.bumpScale,m.side===hA&&(f.bumpScale.value*=-1)),m.displacementMap&&(f.displacementMap.value=m.displacementMap,f.displacementScale.value=m.displacementScale,f.displacementBias.value=m.displacementBias),m.emissiveMap&&(f.emissiveMap.value=m.emissiveMap),m.normalMap&&(f.normalMap.value=m.normalMap,f.normalScale.value.copy(m.normalScale),m.side===hA&&f.normalScale.value.negate()),m.specularMap&&(f.specularMap.value=m.specularMap),m.alphaTest>0&&(f.alphaTest.value=m.alphaTest);let y=e.get(m).envMap;if(y&&(f.envMap.value=y,f.flipEnvMap.value=y.isCubeTexture&&y.isRenderTargetTexture===!1?-1:1,f.reflectivity.value=m.reflectivity,f.ior.value=m.ior,f.refractionRatio.value=m.refractionRatio),m.lightMap){f.lightMap.value=m.lightMap;let x=n.physicallyCorrectLights!==!0?Math.PI:1;f.lightMapIntensity.value=m.lightMapIntensity*x}m.aoMap&&(f.aoMap.value=m.aoMap,f.aoMapIntensity.value=m.aoMapIntensity);let g;m.map?g=m.map:m.specularMap?g=m.specularMap:m.displacementMap?g=m.displacementMap:m.normalMap?g=m.normalMap:m.bumpMap?g=m.bumpMap:m.roughnessMap?g=m.roughnessMap:m.metalnessMap?g=m.metalnessMap:m.alphaMap?g=m.alphaMap:m.emissiveMap?g=m.emissiveMap:m.clearcoatMap?g=m.clearcoatMap:m.clearcoatNormalMap?g=m.clearcoatNormalMap:m.clearcoatRoughnessMap?g=m.clearcoatRoughnessMap:m.iridescenceMap?g=m.iridescenceMap:m.iridescenceThicknessMap?g=m.iridescenceThicknessMap:m.specularIntensityMap?g=m.specularIntensityMap:m.specularColorMap?g=m.specularColorMap:m.transmissionMap?g=m.transmissionMap:m.thicknessMap?g=m.thicknessMap:m.sheenColorMap?g=m.sheenColorMap:m.sheenRoughnessMap&&(g=m.sheenRoughnessMap),g!==void 0&&(g.isWebGLRenderTarget&&(g=g.texture),g.matrixAutoUpdate===!0&&g.updateMatrix(),f.uvTransform.value.copy(g.matrix));let b;m.aoMap?b=m.aoMap:m.lightMap&&(b=m.lightMap),b!==void 0&&(b.isWebGLRenderTarget&&(b=b.texture),b.matrixAutoUpdate===!0&&b.updateMatrix(),f.uv2Transform.value.copy(b.matrix))}function i(f,m){f.diffuse.value.copy(m.color),f.opacity.value=m.opacity}function s(f,m){f.dashSize.value=m.dashSize,f.totalSize.value=m.dashSize+m.gapSize,f.scale.value=m.scale}function o(f,m,y,g){f.diffuse.value.copy(m.color),f.opacity.value=m.opacity,f.size.value=m.size*y,f.scale.value=g*.5,m.map&&(f.map.value=m.map),m.alphaMap&&(f.alphaMap.value=m.alphaMap),m.alphaTest>0&&(f.alphaTest.value=m.alphaTest);let b;m.map?b=m.map:m.alphaMap&&(b=m.alphaMap),b!==void 0&&(b.matrixAutoUpdate===!0&&b.updateMatrix(),f.uvTransform.value.copy(b.matrix))}function a(f,m){f.diffuse.value.copy(m.color),f.opacity.value=m.opacity,f.rotation.value=m.rotation,m.map&&(f.map.value=m.map),m.alphaMap&&(f.alphaMap.value=m.alphaMap),m.alphaTest>0&&(f.alphaTest.value=m.alphaTest);let y;m.map?y=m.map:m.alphaMap&&(y=m.alphaMap),y!==void 0&&(y.matrixAutoUpdate===!0&&y.updateMatrix(),f.uvTransform.value.copy(y.matrix))}function c(f,m){f.specular.value.copy(m.specular),f.shininess.value=Math.max(m.shininess,1e-4)}function l(f,m){m.gradientMap&&(f.gradientMap.value=m.gradientMap)}function u(f,m){f.roughness.value=m.roughness,f.metalness.value=m.metalness,m.roughnessMap&&(f.roughnessMap.value=m.roughnessMap),m.metalnessMap&&(f.metalnessMap.value=m.metalnessMap),e.get(m).envMap&&(f.envMapIntensity.value=m.envMapIntensity)}function h(f,m,y){f.ior.value=m.ior,m.sheen>0&&(f.sheenColor.value.copy(m.sheenColor).multiplyScalar(m.sheen),f.sheenRoughness.value=m.sheenRoughness,m.sheenColorMap&&(f.sheenColorMap.value=m.sheenColorMap),m.sheenRoughnessMap&&(f.sheenRoughnessMap.value=m.sheenRoughnessMap)),m.clearcoat>0&&(f.clearcoat.value=m.clearcoat,f.clearcoatRoughness.value=m.clearcoatRoughness,m.clearcoatMap&&(f.clearcoatMap.value=m.clearcoatMap),m.clearcoatRoughnessMap&&(f.clearcoatRoughnessMap.value=m.clearcoatRoughnessMap),m.clearcoatNormalMap&&(f.clearcoatNormalScale.value.copy(m.clearcoatNormalScale),f.clearcoatNormalMap.value=m.clearcoatNormalMap,m.side===hA&&f.clearcoatNormalScale.value.negate())),m.iridescence>0&&(f.iridescence.value=m.iridescence,f.iridescenceIOR.value=m.iridescenceIOR,f.iridescenceThicknessMinimum.value=m.iridescenceThicknessRange[0],f.iridescenceThicknessMaximum.value=m.iridescenceThicknessRange[1],m.iridescenceMap&&(f.iridescenceMap.value=m.iridescenceMap),m.iridescenceThicknessMap&&(f.iridescenceThicknessMap.value=m.iridescenceThicknessMap)),m.transmission>0&&(f.transmission.value=m.transmission,f.transmissionSamplerMap.value=y.texture,f.transmissionSamplerSize.value.set(y.width,y.height),m.transmissionMap&&(f.transmissionMap.value=m.transmissionMap),f.thickness.value=m.thickness,m.thicknessMap&&(f.thicknessMap.value=m.thicknessMap),f.attenuationDistance.value=m.attenuationDistance,f.attenuationColor.value.copy(m.attenuationColor)),f.specularIntensity.value=m.specularIntensity,f.specularColor.value.copy(m.specularColor),m.specularIntensityMap&&(f.specularIntensityMap.value=m.specularIntensityMap),m.specularColorMap&&(f.specularColorMap.value=m.specularColorMap)}function d(f,m){m.matcap&&(f.matcap.value=m.matcap)}function p(f,m){f.referencePosition.value.copy(m.referencePosition),f.nearDistance.value=m.nearDistance,f.farDistance.value=m.farDistance}return{refreshFogUniforms:t,refreshMaterialUniforms:A}}function v3(){let n=Rd("canvas");return n.style.display="block",n}function Oy(n={}){this.isWebGLRenderer=!0;let e=n.canvas!==void 0?n.canvas:v3(),t=n.context!==void 0?n.context:null,A=n.depth!==void 0?n.depth:!0,r=n.stencil!==void 0?n.stencil:!0,i=n.antialias!==void 0?n.antialias:!1,s=n.premultipliedAlpha!==void 0?n.premultipliedAlpha:!0,o=n.preserveDrawingBuffer!==void 0?n.preserveDrawingBuffer:!1,a=n.powerPreference!==void 0?n.powerPreference:"default",c=n.failIfMajorPerformanceCaveat!==void 0?n.failIfMajorPerformanceCaveat:!1,l;t!==null?l=t.getContextAttributes().alpha:l=n.alpha!==void 0?n.alpha:!1;let u=null,h=null,d=[],p=[];this.domElement=e,this.debug={checkShaderErrors:!0},this.autoClear=!0,this.autoClearColor=!0,this.autoClearDepth=!0,this.autoClearStencil=!0,this.sortObjects=!0,this.clippingPlanes=[],this.localClippingEnabled=!1,this.outputEncoding=Ln,this.physicallyCorrectLights=!1,this.toneMapping=Si,this.toneMappingExposure=1,Object.defineProperties(this,{gammaFactor:{get:function(){return console.warn("THREE.WebGLRenderer: .gammaFactor has been removed."),2},set:function(){console.warn("THREE.WebGLRenderer: .gammaFactor has been removed.")}}});let f=this,m=!1,y=0,g=0,b=null,x=-1,w=null,T=new Ve,M=new Ve,v=null,E=e.width,C=e.height,P=1,D=null,_=null,I=new Ve(0,0,E,C),B=new Ve(0,0,E,C),N=!1,W=new nu,X=!1,F=!1,k=null,Q=new he,z=new G,U=new S,j={background:null,fog:null,environment:null,overrideMaterial:null,isScene:!0};function q(){return b===null?P:1}let V=t;function ue(O,$){for(let ie=0;ie<O.length;ie++){let te=O[ie],ce=e.getContext(te,$);if(ce!==null)return ce}return null}try{let O={alpha:!0,depth:A,stencil:r,antialias:i,premultipliedAlpha:s,preserveDrawingBuffer:o,powerPreference:a,failIfMajorPerformanceCaveat:c};if("setAttribute"in e&&e.setAttribute("data-engine",`three.js r${mo}`),e.addEventListener("webglcontextlost",H,!1),e.addEventListener("webglcontextrestored",xe,!1),e.addEventListener("webglcontextcreationerror",Te,!1),V===null){let $=["webgl2","webgl","experimental-webgl"];if(f.isWebGL1Renderer===!0&&$.shift(),V=ue($,O),V===null)throw ue($)?new Error("Error creating WebGL context with your selected attributes."):new Error("Error creating WebGL context.")}V.getShaderPrecisionFormat===void 0&&(V.getShaderPrecisionFormat=function(){return{rangeMin:1,rangeMax:1,precision:1}})}catch(O){throw console.error("THREE.WebGLRenderer: "+O.message),O}let Ae,K,Y,ne,le,se,Me,me,ge,ye,de,De,Be,Ze,R,L,J,ae,fe,Ce,Fe,re,Ne;function Oe(){Ae=new UO(V),K=new RO(V,Ae,n),Ae.init(K),re=new m3(V,Ae,K),Y=new f3(V,Ae,K),ne=new HO,le=new A3,se=new p3(V,Ae,Y,le,K,re,ne),Me=new NO(f),me=new kO(f),ge=new tL(V,K),Ne=new _O(V,Ae,ge,K),ye=new VO(V,ge,ne,Ne),de=new qO(V,ye,ge,ne),fe=new YO(V,K,se),L=new BO(le),De=new t3(f,Me,me,Ae,K,Ne,L),Be=new y3(f,le),Ze=new r3,R=new c3(Ae,K),ae=new LO(f,Me,Y,de,l,s),J=new d3(f,de,K),Ce=new OO(V,Ae,ne,K),Fe=new zO(V,Ae,ne,K),ne.programs=De.programs,f.capabilities=K,f.extensions=Ae,f.properties=le,f.renderLists=Ze,f.shadowMap=J,f.state=Y,f.info=ne}Oe();let ve=new oy(f,V);this.xr=ve,this.getContext=function(){return V},this.getContextAttributes=function(){return V.getContextAttributes()},this.forceContextLoss=function(){let O=Ae.get("WEBGL_lose_context");O&&O.loseContext()},this.forceContextRestore=function(){let O=Ae.get("WEBGL_lose_context");O&&O.restoreContext()},this.getPixelRatio=function(){return P},this.setPixelRatio=function(O){O!==void 0&&(P=O,this.setSize(E,C,!1))},this.getSize=function(O){return O.set(E,C)},this.setSize=function(O,$,ie){if(ve.isPresenting){console.warn("THREE.WebGLRenderer: Can't change size while VR device is presenting.");return}E=O,C=$,e.width=Math.floor(O*P),e.height=Math.floor($*P),ie!==!1&&(e.style.width=O+"px",e.style.height=$+"px"),this.setViewport(0,0,O,$)},this.getDrawingBufferSize=function(O){return O.set(E*P,C*P).floor()},this.setDrawingBufferSize=function(O,$,ie){E=O,C=$,P=ie,e.width=Math.floor(O*ie),e.height=Math.floor($*ie),this.setViewport(0,0,O,$)},this.getCurrentViewport=function(O){return O.copy(T)},this.getViewport=function(O){return O.copy(I)},this.setViewport=function(O,$,ie,te){O.isVector4?I.set(O.x,O.y,O.z,O.w):I.set(O,$,ie,te),Y.viewport(T.copy(I).multiplyScalar(P).floor())},this.getScissor=function(O){return O.copy(B)},this.setScissor=function(O,$,ie,te){O.isVector4?B.set(O.x,O.y,O.z,O.w):B.set(O,$,ie,te),Y.scissor(M.copy(B).multiplyScalar(P).floor())},this.getScissorTest=function(){return N},this.setScissorTest=function(O){Y.setScissorTest(N=O)},this.setOpaqueSort=function(O){D=O},this.setTransparentSort=function(O){_=O},this.getClearColor=function(O){return O.copy(ae.getClearColor())},this.setClearColor=function(){ae.setClearColor.apply(ae,arguments)},this.getClearAlpha=function(){return ae.getClearAlpha()},this.setClearAlpha=function(){ae.setClearAlpha.apply(ae,arguments)},this.clear=function(O=!0,$=!0,ie=!0){let te=0;O&&(te|=16384),$&&(te|=256),ie&&(te|=1024),V.clear(te)},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.dispose=function(){e.removeEventListener("webglcontextlost",H,!1),e.removeEventListener("webglcontextrestored",xe,!1),e.removeEventListener("webglcontextcreationerror",Te,!1),Ze.dispose(),R.dispose(),le.dispose(),Me.dispose(),me.dispose(),de.dispose(),Ne.dispose(),De.dispose(),ve.dispose(),ve.removeEventListener("sessionstart",st),ve.removeEventListener("sessionend",vt),k&&(k.dispose(),k=null),Tt.stop()};function H(O){O.preventDefault(),console.log("THREE.WebGLRenderer: Context Lost."),m=!0}function xe(){console.log("THREE.WebGLRenderer: Context Restored."),m=!1;let O=ne.autoReset,$=J.enabled,ie=J.autoUpdate,te=J.needsUpdate,ce=J.type;Oe(),ne.autoReset=O,J.enabled=$,J.autoUpdate=ie,J.needsUpdate=te,J.type=ce}function Te(O){console.error("THREE.WebGLRenderer: A WebGL context could not be created. Reason: ",O.statusMessage)}function Qe(O){let $=O.target;$.removeEventListener("dispose",Qe),Re($)}function Re(O){Je(O),le.remove(O)}function Je(O){let $=le.get(O).programs;$!==void 0&&($.forEach(function(ie){De.releaseProgram(ie)}),O.isShaderMaterial&&De.releaseShaderCache(O))}this.renderBufferDirect=function(O,$,ie,te,ce,At){$===null&&($=j);let rt=ce.isMesh&&ce.matrixWorld.determinant()<0,at=yD(O,$,ie,te,ce);Y.setMaterial(te,rt);let ot=ie.index,Lt=ie.attributes.position;if(ot===null){if(Lt===void 0||Lt.count===0)return}else if(ot.count===0)return;let mt=1;te.wireframe===!0&&(ot=ye.getWireframeAttribute(ie),mt=2),Ne.setup(ce,te,at,ie,ot);let xt,Xt=Ce;ot!==null&&(xt=ge.get(ot),Xt=Fe,Xt.setIndex(xt));let Qs=ot!==null?ot.count:Lt.count,qo=ie.drawRange.start*mt,Xo=ie.drawRange.count*mt,Ir=At!==null?At.start*mt:0,Mt=At!==null?At.count*mt:1/0,Qo=Math.max(qo,Ir),cA=Math.min(Qs,qo+Xo,Ir+Mt)-1,Lr=Math.max(0,cA-Qo+1);if(Lr!==0){if(ce.isMesh)te.wireframe===!0?(Y.setLineWidth(te.wireframeLinewidth*q()),Xt.setMode(1)):Xt.setMode(4);else if(ce.isLine){let Hi=te.linewidth;Hi===void 0&&(Hi=1),Y.setLineWidth(Hi*q()),ce.isLineSegments?Xt.setMode(1):ce.isLineLoop?Xt.setMode(2):Xt.setMode(3)}else ce.isPoints?Xt.setMode(0):ce.isSprite&&Xt.setMode(4);if(ce.isInstancedMesh)Xt.renderInstances(Qo,Lr,ce.count);else if(ie.isInstancedBufferGeometry){let Hi=Math.min(ie.instanceCount,ie._maxInstanceCount);Xt.renderInstances(Qo,Lr,Hi)}else Xt.render(Qo,Lr)}},this.compile=function(O,$){h=R.get(O),h.init(),p.push(h),O.traverseVisible(function(ie){ie.isLight&&ie.layers.test($.layers)&&(h.pushLight(ie),ie.castShadow&&h.pushShadow(ie))}),h.setupLights(f.physicallyCorrectLights),O.traverse(function(ie){let te=ie.material;if(te)if(Array.isArray(te))for(let ce=0;ce<te.length;ce++){let At=te[ce];tg(At,O,ie)}else tg(te,O,ie)}),p.pop(),h=null};let be=null;function $e(O){be&&be(O)}function st(){Tt.stop()}function vt(){Tt.start()}let Tt=new Gw;Tt.setAnimationLoop($e),typeof self<"u"&&Tt.setContext(self),this.setAnimationLoop=function(O){be=O,ve.setAnimationLoop(O),O===null?Tt.stop():Tt.start()},ve.addEventListener("sessionstart",st),ve.addEventListener("sessionend",vt),this.render=function(O,$){if($!==void 0&&$.isCamera!==!0){console.error("THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.");return}if(m===!0)return;O.autoUpdate===!0&&O.updateMatrixWorld(),$.parent===null&&$.updateMatrixWorld(),ve.enabled===!0&&ve.isPresenting===!0&&(ve.cameraAutoUpdate===!0&&ve.updateCamera($),$=ve.getCamera()),O.isScene===!0&&O.onBeforeRender(f,O,$,b),h=R.get(O,p.length),h.init(),p.push(h),Q.multiplyMatrices($.projectionMatrix,$.matrixWorldInverse),W.setFromProjectionMatrix(Q),F=this.localClippingEnabled,X=L.init(this.clippingPlanes,F,$),u=Ze.get(O,d.length),u.init(),d.push(u),dn(O,$,0,f.sortObjects),u.finish(),f.sortObjects===!0&&u.sort(D,_),X===!0&&L.beginShadows();let ie=h.state.shadowsArray;if(J.render(ie,O,$),X===!0&&L.endShadows(),this.info.autoReset===!0&&this.info.reset(),ae.render(u,O),h.setupLights(f.physicallyCorrectLights),$.isArrayCamera){let te=$.cameras;for(let ce=0,At=te.length;ce<At;ce++){let rt=te[ce];ed(u,O,rt,rt.viewport)}}else ed(u,O,$);b!==null&&(se.updateMultisampleRenderTarget(b),se.updateRenderTargetMipmap(b)),O.isScene===!0&&O.onAfterRender(f,O,$),Ne.resetDefaultState(),x=-1,w=null,p.pop(),p.length>0?h=p[p.length-1]:h=null,d.pop(),d.length>0?u=d[d.length-1]:u=null};function dn(O,$,ie,te){if(O.visible===!1)return;if(O.layers.test($.layers)){if(O.isGroup)ie=O.renderOrder;else if(O.isLOD)O.autoUpdate===!0&&O.update($);else if(O.isLight)h.pushLight(O),O.castShadow&&h.pushShadow(O);else if(O.isSprite){if(!O.frustumCulled||W.intersectsSprite(O)){te&&U.setFromMatrixPosition(O.matrixWorld).applyMatrix4(Q);let rt=de.update(O),at=O.material;at.visible&&u.push(O,rt,at,ie,U.z,null)}}else if((O.isMesh||O.isLine||O.isPoints)&&(O.isSkinnedMesh&&O.skeleton.frame!==ne.render.frame&&(O.skeleton.update(),O.skeleton.frame=ne.render.frame),!O.frustumCulled||W.intersectsObject(O))){te&&U.setFromMatrixPosition(O.matrixWorld).applyMatrix4(Q);let rt=de.update(O),at=O.material;if(Array.isArray(at)){let ot=rt.groups;for(let Lt=0,mt=ot.length;Lt<mt;Lt++){let xt=ot[Lt],Xt=at[xt.materialIndex];Xt&&Xt.visible&&u.push(O,rt,Xt,ie,U.z,xt)}}else at.visible&&u.push(O,rt,at,ie,U.z,null)}}let At=O.children;for(let rt=0,at=At.length;rt<at;rt++)dn(At[rt],$,ie,te)}function ed(O,$,ie,te){let ce=O.opaque,At=O.transmissive,rt=O.transparent;h.setupLightsView(ie),At.length>0&&Yo(ce,$,ie),te&&Y.viewport(T.copy(te)),ce.length>0&&td(ce,$,ie),At.length>0&&td(At,$,ie),rt.length>0&&td(rt,$,ie),Y.buffers.depth.setTest(!0),Y.buffers.depth.setMask(!0),Y.buffers.color.setMask(!0),Y.setPolygonOffset(!1)}function Yo(O,$,ie){let te=K.isWebGL2;k===null&&(k=new ft(1,1,{generateMipmaps:!0,type:Ae.has("EXT_color_buffer_half_float")?$c:kt,minFilter:Ba,samples:te&&i===!0?4:0})),f.getDrawingBufferSize(z),te?k.setSize(z.x,z.y):k.setSize(Od(z.x),Od(z.y));let ce=f.getRenderTarget();f.setRenderTarget(k),f.clear();let At=f.toneMapping;f.toneMapping=Si,td(O,$,ie),f.toneMapping=At,se.updateMultisampleRenderTarget(k),se.updateRenderTargetMipmap(k),f.setRenderTarget(ce)}function td(O,$,ie){let te=$.isScene===!0?$.overrideMaterial:null;for(let ce=0,At=O.length;ce<At;ce++){let rt=O[ce],at=rt.object,ot=rt.geometry,Lt=te===null?rt.material:te,mt=rt.group;at.layers.test(ie.layers)&&gD(at,$,ie,ot,Lt,mt)}}function gD(O,$,ie,te,ce,At){O.onBeforeRender(f,$,ie,te,ce,At),O.modelViewMatrix.multiplyMatrices(ie.matrixWorldInverse,O.matrixWorld),O.normalMatrix.getNormalMatrix(O.modelViewMatrix),ce.onBeforeRender(f,$,ie,te,O,At),ce.transparent===!0&&ce.side===An?(ce.side=hA,ce.needsUpdate=!0,f.renderBufferDirect(ie,$,te,ce,O,At),ce.side=Wn,ce.needsUpdate=!0,f.renderBufferDirect(ie,$,te,ce,O,At),ce.side=An):f.renderBufferDirect(ie,$,te,ce,O,At),O.onAfterRender(f,$,ie,te,ce,At)}function tg(O,$,ie){$.isScene!==!0&&($=j);let te=le.get(O),ce=h.state.lights,At=h.state.shadowsArray,rt=ce.state.version,at=De.getParameters(O,ce.state,At,$,ie),ot=De.getProgramCacheKey(at),Lt=te.programs;te.environment=O.isMeshStandardMaterial?$.environment:null,te.fog=$.fog,te.envMap=(O.isMeshStandardMaterial?me:Me).get(O.envMap||te.environment),Lt===void 0&&(O.addEventListener("dispose",Qe),Lt=new Map,te.programs=Lt);let mt=Lt.get(ot);if(mt!==void 0){if(te.currentProgram===mt&&te.lightsStateVersion===rt)return Kx(O,at),mt}else at.uniforms=De.getUniforms(O),O.onBuild(ie,at,f),O.onBeforeCompile(at,f),mt=De.acquireProgram(at,ot),Lt.set(ot,mt),te.uniforms=at.uniforms;let xt=te.uniforms;(!O.isShaderMaterial&&!O.isRawShaderMaterial||O.clipping===!0)&&(xt.clippingPlanes=L.uniform),Kx(O,at),te.needsLights=xD(O),te.lightsStateVersion=rt,te.needsLights&&(xt.ambientLightColor.value=ce.state.ambient,xt.lightProbe.value=ce.state.probe,xt.directionalLights.value=ce.state.directional,xt.directionalLightShadows.value=ce.state.directionalShadow,xt.spotLights.value=ce.state.spot,xt.spotLightShadows.value=ce.state.spotShadow,xt.rectAreaLights.value=ce.state.rectArea,xt.ltc_1.value=ce.state.rectAreaLTC1,xt.ltc_2.value=ce.state.rectAreaLTC2,xt.pointLights.value=ce.state.point,xt.pointLightShadows.value=ce.state.pointShadow,xt.hemisphereLights.value=ce.state.hemi,xt.directionalShadowMap.value=ce.state.directionalShadowMap,xt.directionalShadowMatrix.value=ce.state.directionalShadowMatrix,xt.spotShadowMap.value=ce.state.spotShadowMap,xt.spotShadowMatrix.value=ce.state.spotShadowMatrix,xt.pointShadowMap.value=ce.state.pointShadowMap,xt.pointShadowMatrix.value=ce.state.pointShadowMatrix);let Xt=mt.getUniforms(),Qs=fa.seqWithValue(Xt.seq,xt);return te.currentProgram=mt,te.uniformsList=Qs,mt}function Kx(O,$){let ie=le.get(O);ie.outputEncoding=$.outputEncoding,ie.instancing=$.instancing,ie.skinning=$.skinning,ie.morphTargets=$.morphTargets,ie.morphNormals=$.morphNormals,ie.morphColors=$.morphColors,ie.morphTargetsCount=$.morphTargetsCount,ie.numClippingPlanes=$.numClippingPlanes,ie.numIntersection=$.numClipIntersection,ie.vertexAlphas=$.vertexAlphas,ie.vertexTangents=$.vertexTangents,ie.toneMapping=$.toneMapping}function yD(O,$,ie,te,ce){$.isScene!==!0&&($=j),se.resetTextureUnits();let At=$.fog,rt=te.isMeshStandardMaterial?$.environment:null,at=b===null?f.outputEncoding:b.isXRRenderTarget===!0?b.texture.encoding:Ln,ot=(te.isMeshStandardMaterial?me:Me).get(te.envMap||rt),Lt=te.vertexColors===!0&&!!ie.attributes.color&&ie.attributes.color.itemSize===4,mt=!!te.normalMap&&!!ie.attributes.tangent,xt=!!ie.morphAttributes.position,Xt=!!ie.morphAttributes.normal,Qs=!!ie.morphAttributes.color,qo=te.toneMapped?f.toneMapping:Si,Xo=ie.morphAttributes.position||ie.morphAttributes.normal||ie.morphAttributes.color,Ir=Xo!==void 0?Xo.length:0,Mt=le.get(te),Qo=h.state.lights;if(X===!0&&(F===!0||O!==w)){let _r=O===w&&te.id===x;L.setState(te,O,_r)}let cA=!1;te.version===Mt.__version?(Mt.needsLights&&Mt.lightsStateVersion!==Qo.state.version||Mt.outputEncoding!==at||ce.isInstancedMesh&&Mt.instancing===!1||!ce.isInstancedMesh&&Mt.instancing===!0||ce.isSkinnedMesh&&Mt.skinning===!1||!ce.isSkinnedMesh&&Mt.skinning===!0||Mt.envMap!==ot||te.fog===!0&&Mt.fog!==At||Mt.numClippingPlanes!==void 0&&(Mt.numClippingPlanes!==L.numPlanes||Mt.numIntersection!==L.numIntersection)||Mt.vertexAlphas!==Lt||Mt.vertexTangents!==mt||Mt.morphTargets!==xt||Mt.morphNormals!==Xt||Mt.morphColors!==Qs||Mt.toneMapping!==qo||K.isWebGL2===!0&&Mt.morphTargetsCount!==Ir)&&(cA=!0):(cA=!0,Mt.__version=te.version);let Lr=Mt.currentProgram;cA===!0&&(Lr=tg(te,$,ce));let Hi=!1,Uc=!1,Ag=!1,$A=Lr.getUniforms(),Vc=Mt.uniforms;if(Y.useProgram(Lr.program)&&(Hi=!0,Uc=!0,Ag=!0),te.id!==x&&(x=te.id,Uc=!0),Hi||w!==O){if($A.setValue(V,"projectionMatrix",O.projectionMatrix),K.logarithmicDepthBuffer&&$A.setValue(V,"logDepthBufFC",2/(Math.log(O.far+1)/Math.LN2)),w!==O&&(w=O,Uc=!0,Ag=!0),te.isShaderMaterial||te.isMeshPhongMaterial||te.isMeshToonMaterial||te.isMeshStandardMaterial||te.envMap){let _r=$A.map.cameraPosition;_r!==void 0&&_r.setValue(V,U.setFromMatrixPosition(O.matrixWorld))}(te.isMeshPhongMaterial||te.isMeshToonMaterial||te.isMeshLambertMaterial||te.isMeshBasicMaterial||te.isMeshStandardMaterial||te.isShaderMaterial)&&$A.setValue(V,"isOrthographic",O.isOrthographicCamera===!0),(te.isMeshPhongMaterial||te.isMeshToonMaterial||te.isMeshLambertMaterial||te.isMeshBasicMaterial||te.isMeshStandardMaterial||te.isShaderMaterial||te.isShadowMaterial||ce.isSkinnedMesh)&&$A.setValue(V,"viewMatrix",O.matrixWorldInverse)}if(ce.isSkinnedMesh){$A.setOptional(V,ce,"bindMatrix"),$A.setOptional(V,ce,"bindMatrixInverse");let _r=ce.skeleton;_r&&(K.floatVertexTextures?(_r.boneTexture===null&&_r.computeBoneTexture(),$A.setValue(V,"boneTexture",_r.boneTexture,se),$A.setValue(V,"boneTextureSize",_r.boneTextureSize)):console.warn("THREE.WebGLRenderer: SkinnedMesh can only be used with WebGL 2. With WebGL 1 OES_texture_float and vertex textures support is required."))}let ng=ie.morphAttributes;return(ng.position!==void 0||ng.normal!==void 0||ng.color!==void 0&&K.isWebGL2===!0)&&fe.update(ce,ie,te,Lr),(Uc||Mt.receiveShadow!==ce.receiveShadow)&&(Mt.receiveShadow=ce.receiveShadow,$A.setValue(V,"receiveShadow",ce.receiveShadow)),Uc&&($A.setValue(V,"toneMappingExposure",f.toneMappingExposure),Mt.needsLights&&vD(Vc,Ag),At&&te.fog===!0&&Be.refreshFogUniforms(Vc,At),Be.refreshMaterialUniforms(Vc,te,P,C,k),fa.upload(V,Mt.uniformsList,Vc,se)),te.isShaderMaterial&&te.uniformsNeedUpdate===!0&&(fa.upload(V,Mt.uniformsList,Vc,se),te.uniformsNeedUpdate=!1),te.isSpriteMaterial&&$A.setValue(V,"center",ce.center),$A.setValue(V,"modelViewMatrix",ce.modelViewMatrix),$A.setValue(V,"normalMatrix",ce.normalMatrix),$A.setValue(V,"modelMatrix",ce.matrixWorld),Lr}function vD(O,$){O.ambientLightColor.needsUpdate=$,O.lightProbe.needsUpdate=$,O.directionalLights.needsUpdate=$,O.directionalLightShadows.needsUpdate=$,O.pointLights.needsUpdate=$,O.pointLightShadows.needsUpdate=$,O.spotLights.needsUpdate=$,O.spotLightShadows.needsUpdate=$,O.rectAreaLights.needsUpdate=$,O.hemisphereLights.needsUpdate=$}function xD(O){return O.isMeshLambertMaterial||O.isMeshToonMaterial||O.isMeshPhongMaterial||O.isMeshStandardMaterial||O.isShadowMaterial||O.isShaderMaterial&&O.lights===!0}this.getActiveCubeFace=function(){return y},this.getActiveMipmapLevel=function(){return g},this.getRenderTarget=function(){return b},this.setRenderTargetTextures=function(O,$,ie){le.get(O.texture).__webglTexture=$,le.get(O.depthTexture).__webglTexture=ie;let te=le.get(O);te.__hasExternalTextures=!0,te.__hasExternalTextures&&(te.__autoAllocateDepthBuffer=ie===void 0,te.__autoAllocateDepthBuffer||Ae.has("WEBGL_multisampled_render_to_texture")===!0&&(console.warn("THREE.WebGLRenderer: Render-to-texture extension was disabled because an external texture was provided"),te.__useRenderToTexture=!1))},this.setRenderTargetFramebuffer=function(O,$){let ie=le.get(O);ie.__webglFramebuffer=$,ie.__useDefaultFramebuffer=$===void 0},this.setRenderTarget=function(O,$=0,ie=0){b=O,y=$,g=ie;let te=!0;if(O){let ot=le.get(O);ot.__useDefaultFramebuffer!==void 0?(Y.bindFramebuffer(36160,null),te=!1):ot.__webglFramebuffer===void 0?se.setupRenderTarget(O):ot.__hasExternalTextures&&se.rebindTextures(O,le.get(O.texture).__webglTexture,le.get(O.depthTexture).__webglTexture)}let ce=null,At=!1,rt=!1;if(O){let ot=O.texture;(ot.isData3DTexture||ot.isDataArrayTexture)&&(rt=!0);let Lt=le.get(O).__webglFramebuffer;O.isWebGLCubeRenderTarget?(ce=Lt[$],At=!0):K.isWebGL2&&O.samples>0&&se.useMultisampledRTT(O)===!1?ce=le.get(O).__webglMultisampledFramebuffer:ce=Lt,T.copy(O.viewport),M.copy(O.scissor),v=O.scissorTest}else T.copy(I).multiplyScalar(P).floor(),M.copy(B).multiplyScalar(P).floor(),v=N;if(Y.bindFramebuffer(36160,ce)&&K.drawBuffers&&te&&Y.drawBuffers(O,ce),Y.viewport(T),Y.scissor(M),Y.setScissorTest(v),At){let ot=le.get(O.texture);V.framebufferTexture2D(36160,36064,34069+$,ot.__webglTexture,ie)}else if(rt){let ot=le.get(O.texture),Lt=$||0;V.framebufferTextureLayer(36160,36064,ot.__webglTexture,ie||0,Lt)}x=-1},this.readRenderTargetPixels=function(O,$,ie,te,ce,At,rt){if(!(O&&O.isWebGLRenderTarget)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");return}let at=le.get(O).__webglFramebuffer;if(O.isWebGLCubeRenderTarget&&rt!==void 0&&(at=at[rt]),at){Y.bindFramebuffer(36160,at);try{let ot=O.texture,Lt=ot.format,mt=ot.type;if(Lt!==hr&&re.convert(Lt)!==V.getParameter(35739)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");return}let xt=mt===$c&&(Ae.has("EXT_color_buffer_half_float")||K.isWebGL2&&Ae.has("EXT_color_buffer_float"));if(mt!==kt&&re.convert(mt)!==V.getParameter(35738)&&!(mt===Rr&&(K.isWebGL2||Ae.has("OES_texture_float")||Ae.has("WEBGL_color_buffer_float")))&&!xt){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");return}$>=0&&$<=O.width-te&&ie>=0&&ie<=O.height-ce&&V.readPixels($,ie,te,ce,re.convert(Lt),re.convert(mt),At)}finally{let ot=b!==null?le.get(b).__webglFramebuffer:null;Y.bindFramebuffer(36160,ot)}}},this.copyFramebufferToTexture=function(O,$,ie=0){let te=Math.pow(2,-ie),ce=Math.floor($.image.width*te),At=Math.floor($.image.height*te);se.setTexture2D($,0),V.copyTexSubImage2D(3553,ie,0,0,O.x,O.y,ce,At),Y.unbindTexture()},this.copyTextureToTexture=function(O,$,ie,te=0){let ce=$.image.width,At=$.image.height,rt=re.convert(ie.format),at=re.convert(ie.type);se.setTexture2D(ie,0),V.pixelStorei(37440,ie.flipY),V.pixelStorei(37441,ie.premultiplyAlpha),V.pixelStorei(3317,ie.unpackAlignment),$.isDataTexture?V.texSubImage2D(3553,te,O.x,O.y,ce,At,rt,at,$.image.data):$.isCompressedTexture?V.compressedTexSubImage2D(3553,te,O.x,O.y,$.mipmaps[0].width,$.mipmaps[0].height,rt,$.mipmaps[0].data):V.texSubImage2D(3553,te,O.x,O.y,rt,at,$.image),te===0&&ie.generateMipmaps&&V.generateMipmap(3553),Y.unbindTexture()},this.copyTextureToTexture3D=function(O,$,ie,te,ce=0){if(f.isWebGL1Renderer){console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: can only be used with WebGL2.");return}let At=O.max.x-O.min.x+1,rt=O.max.y-O.min.y+1,at=O.max.z-O.min.z+1,ot=re.convert(te.format),Lt=re.convert(te.type),mt;if(te.isData3DTexture)se.setTexture3D(te,0),mt=32879;else if(te.isDataArrayTexture)se.setTexture2DArray(te,0),mt=35866;else{console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.");return}V.pixelStorei(37440,te.flipY),V.pixelStorei(37441,te.premultiplyAlpha),V.pixelStorei(3317,te.unpackAlignment);let xt=V.getParameter(3314),Xt=V.getParameter(32878),Qs=V.getParameter(3316),qo=V.getParameter(3315),Xo=V.getParameter(32877),Ir=ie.isCompressedTexture?ie.mipmaps[0]:ie.image;V.pixelStorei(3314,Ir.width),V.pixelStorei(32878,Ir.height),V.pixelStorei(3316,O.min.x),V.pixelStorei(3315,O.min.y),V.pixelStorei(32877,O.min.z),ie.isDataTexture||ie.isData3DTexture?V.texSubImage3D(mt,ce,$.x,$.y,$.z,At,rt,at,ot,Lt,Ir.data):ie.isCompressedTexture?(console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: untested support for compressed srcTexture."),V.compressedTexSubImage3D(mt,ce,$.x,$.y,$.z,At,rt,at,ot,Ir.data)):V.texSubImage3D(mt,ce,$.x,$.y,$.z,At,rt,at,ot,Lt,Ir),V.pixelStorei(3314,xt),V.pixelStorei(32878,Xt),V.pixelStorei(3316,Qs),V.pixelStorei(3315,qo),V.pixelStorei(32877,Xo),ce===0&&te.generateMipmaps&&V.generateMipmap(mt),Y.unbindTexture()},this.initTexture=function(O){O.isCubeTexture?se.setTextureCube(O,0):O.isData3DTexture?se.setTexture3D(O,0):O.isDataArrayTexture?se.setTexture2DArray(O,0):se.setTexture2D(O,0),Y.unbindTexture()},this.resetState=function(){y=0,g=0,b=null,Y.reset(),Ne.reset()},typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}var ay=class extends Oy{};ay.prototype.isWebGL1Renderer=!0;var va=class{constructor(e,t=1,A=1e3){this.isFog=!0,this.name="",this.color=new _e(e),this.near=t,this.far=A}clone(){return new va(this.color,this.near,this.far)}toJSON(){return{type:"Fog",color:this.color.getHex(),near:this.near,far:this.far}}},sn=class extends ht{constructor(){super(),this.isScene=!0,this.type="Scene",this.background=null,this.environment=null,this.fog=null,this.overrideMaterial=null,this.autoUpdate=!0,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()),e.overrideMaterial!==null&&(this.overrideMaterial=e.overrideMaterial.clone()),this.autoUpdate=e.autoUpdate,this.matrixAutoUpdate=e.matrixAutoUpdate,this}toJSON(e){let t=super.toJSON(e);return this.fog!==null&&(t.object.fog=this.fog.toJSON()),t}},Ud=class{constructor(e,t){this.isInterleavedBuffer=!0,this.array=e,this.stride=t,this.count=e!==void 0?e.length/t:0,this.usage=qg,this.updateRange={offset:0,count:-1},this.version=0,this.uuid=Br()}onUploadCallback(){}set needsUpdate(e){e===!0&&this.version++}setUsage(e){return this.usage=e,this}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,A){e*=this.stride,A*=t.stride;for(let r=0,i=this.stride;r<i;r++)this.array[e+r]=t.array[A+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=Br()),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]),A=new this.constructor(t,this.stride);return A.setUsage(this.usage),A}onUpload(e){return this.onUploadCallback=e,this}toJSON(e){return e.arrayBuffers===void 0&&(e.arrayBuffers={}),this.array.buffer._uuid===void 0&&(this.array.buffer._uuid=Br()),e.arrayBuffers[this.array.buffer._uuid]===void 0&&(e.arrayBuffers[this.array.buffer._uuid]=Array.from(new Uint32Array(this.array.buffer))),{uuid:this.uuid,buffer:this.array.buffer._uuid,type:this.array.constructor.name,stride:this.stride}}},en=new S,io=class{constructor(e,t,A,r=!1){this.isInterleavedBufferAttribute=!0,this.name="",this.data=e,this.itemSize=t,this.offset=A,this.normalized=r===!0}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,A=this.data.count;t<A;t++)en.fromBufferAttribute(this,t),en.applyMatrix4(e),this.setXYZ(t,en.x,en.y,en.z);return this}applyNormalMatrix(e){for(let t=0,A=this.count;t<A;t++)en.fromBufferAttribute(this,t),en.applyNormalMatrix(e),this.setXYZ(t,en.x,en.y,en.z);return this}transformDirection(e){for(let t=0,A=this.count;t<A;t++)en.fromBufferAttribute(this,t),en.transformDirection(e),this.setXYZ(t,en.x,en.y,en.z);return this}setX(e,t){return this.data.array[e*this.data.stride+this.offset]=t,this}setY(e,t){return this.data.array[e*this.data.stride+this.offset+1]=t,this}setZ(e,t){return this.data.array[e*this.data.stride+this.offset+2]=t,this}setW(e,t){return this.data.array[e*this.data.stride+this.offset+3]=t,this}getX(e){return this.data.array[e*this.data.stride+this.offset]}getY(e){return this.data.array[e*this.data.stride+this.offset+1]}getZ(e){return this.data.array[e*this.data.stride+this.offset+2]}getW(e){return this.data.array[e*this.data.stride+this.offset+3]}setXY(e,t,A){return e=e*this.data.stride+this.offset,this.data.array[e+0]=t,this.data.array[e+1]=A,this}setXYZ(e,t,A,r){return e=e*this.data.stride+this.offset,this.data.array[e+0]=t,this.data.array[e+1]=A,this.data.array[e+2]=r,this}setXYZW(e,t,A,r,i){return e=e*this.data.stride+this.offset,this.data.array[e+0]=t,this.data.array[e+1]=A,this.data.array[e+2]=r,this.data.array[e+3]=i,this}clone(e){if(e===void 0){console.log("THREE.InterleavedBufferAttribute.clone(): Cloning an interleaved buffer attribute will deinterleave buffer data.");let t=[];for(let A=0;A<this.count;A++){let r=A*this.data.stride+this.offset;for(let i=0;i<this.itemSize;i++)t.push(this.data.array[r+i])}return new Ge(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 io(e.interleavedBuffers[this.data.uuid],this.itemSize,this.offset,this.normalized)}toJSON(e){if(e===void 0){console.log("THREE.InterleavedBufferAttribute.toJSON(): Serializing an interleaved buffer attribute will deinterleave buffer data.");let t=[];for(let A=0;A<this.count;A++){let r=A*this.data.stride+this.offset;for(let i=0;i<this.itemSize;i++)t.push(this.data.array[r+i])}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}}};var Vd=class extends Ge{constructor(e,t,A,r=1){typeof A=="number"&&(r=A,A=!1,console.error("THREE.InstancedBufferAttribute: The constructor now expects normalized as the third argument.")),super(e,t,A),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}};var jn=class extends ro{constructor(e){super(),this.isLineBasicMaterial=!0,this.type="LineBasicMaterial",this.color=new _e(16777215),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.linewidth=e.linewidth,this.linecap=e.linecap,this.linejoin=e.linejoin,this.fog=e.fog,this}},cw=new S,uw=new S,hw=new he,Gg=new dr,Sd=new DA,so=class extends ht{constructor(e=new Ie,t=new jn){super(),this.isLine=!0,this.type="Line",this.geometry=e,this.material=t,this.updateMorphTargets()}copy(e,t){return super.copy(e,t),this.material=e.material,this.geometry=e.geometry,this}computeLineDistances(){let e=this.geometry;if(e.index===null){let t=e.attributes.position,A=[0];for(let r=1,i=t.count;r<i;r++)cw.fromBufferAttribute(t,r-1),uw.fromBufferAttribute(t,r),A[r]=A[r-1],A[r]+=cw.distanceTo(uw);e.setAttribute("lineDistance",new Se(A,1))}else console.warn("THREE.Line.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.");return this}raycast(e,t){let A=this.geometry,r=this.matrixWorld,i=e.params.Line.threshold,s=A.drawRange;if(A.boundingSphere===null&&A.computeBoundingSphere(),Sd.copy(A.boundingSphere),Sd.applyMatrix4(r),Sd.radius+=i,e.ray.intersectsSphere(Sd)===!1)return;hw.copy(r).invert(),Gg.copy(e.ray).applyMatrix4(hw);let o=i/((this.scale.x+this.scale.y+this.scale.z)/3),a=o*o,c=new S,l=new S,u=new S,h=new S,d=this.isLineSegments?2:1,p=A.index,m=A.attributes.position;if(p!==null){let y=Math.max(0,s.start),g=Math.min(p.count,s.start+s.count);for(let b=y,x=g-1;b<x;b+=d){let w=p.getX(b),T=p.getX(b+1);if(c.fromBufferAttribute(m,w),l.fromBufferAttribute(m,T),Gg.distanceSqToSegment(c,l,h,u)>a)continue;h.applyMatrix4(this.matrixWorld);let v=e.ray.origin.distanceTo(h);v<e.near||v>e.far||t.push({distance:v,point:u.clone().applyMatrix4(this.matrixWorld),index:b,face:null,faceIndex:null,object:this})}}else{let y=Math.max(0,s.start),g=Math.min(m.count,s.start+s.count);for(let b=y,x=g-1;b<x;b+=d){if(c.fromBufferAttribute(m,b),l.fromBufferAttribute(m,b+1),Gg.distanceSqToSegment(c,l,h,u)>a)continue;h.applyMatrix4(this.matrixWorld);let T=e.ray.origin.distanceTo(h);T<e.near||T>e.far||t.push({distance:T,point:u.clone().applyMatrix4(this.matrixWorld),index:b,face:null,faceIndex:null,object:this})}}}updateMorphTargets(){let t=this.geometry.morphAttributes,A=Object.keys(t);if(A.length>0){let r=t[A[0]];if(r!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let i=0,s=r.length;i<s;i++){let o=r[i].name||String(i);this.morphTargetInfluences.push(0),this.morphTargetDictionary[o]=i}}}}},dw=new S,fw=new S,rs=class extends so{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,A=[];for(let r=0,i=t.count;r<i;r+=2)dw.fromBufferAttribute(t,r),fw.fromBufferAttribute(t,r+1),A[r]=r===0?0:A[r-1],A[r+1]=A[r]+dw.distanceTo(fw);e.setAttribute("lineDistance",new Se(A,1))}else console.warn("THREE.LineSegments.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.");return this}};var zd=class extends jt{constructor(e,t,A,r,i,s,o,a,c){super(e,t,A,r,i,s,o,a,c),this.isVideoTexture=!0,this.minFilter=s!==void 0?s:it,this.magFilter=i!==void 0?i:it,this.generateMipmaps=!1;let l=this;function u(){l.needsUpdate=!0,e.requestVideoFrameCallback(u)}"requestVideoFrameCallback"in e&&e.requestVideoFrameCallback(u)}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)}};var Yn=class{constructor(){this.type="Curve",this.arcLengthDivisions=200}getPoint(){return console.warn("THREE.Curve: .getPoint() not implemented."),null}getPointAt(e,t){let A=this.getUtoTmapping(e);return this.getPoint(A,t)}getPoints(e=5){let t=[];for(let A=0;A<=e;A++)t.push(this.getPoint(A/e));return t}getSpacedPoints(e=5){let t=[];for(let A=0;A<=e;A++)t.push(this.getPointAt(A/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=[],A,r=this.getPoint(0),i=0;t.push(0);for(let s=1;s<=e;s++)A=this.getPoint(s/e),i+=A.distanceTo(r),t.push(i),r=A;return this.cacheArcLengths=t,t}updateArcLengths(){this.needsUpdate=!0,this.getLengths()}getUtoTmapping(e,t){let A=this.getLengths(),r=0,i=A.length,s;t?s=t:s=e*A[i-1];let o=0,a=i-1,c;for(;o<=a;)if(r=Math.floor(o+(a-o)/2),c=A[r]-s,c<0)o=r+1;else if(c>0)a=r-1;else{a=r;break}if(r=a,A[r]===s)return r/(i-1);let l=A[r],h=A[r+1]-l,d=(s-l)/h;return(r+d)/(i-1)}getTangent(e,t){let r=e-1e-4,i=e+1e-4;r<0&&(r=0),i>1&&(i=1);let s=this.getPoint(r),o=this.getPoint(i),a=t||(s.isVector2?new G:new S);return a.copy(o).sub(s).normalize(),a}getTangentAt(e,t){let A=this.getUtoTmapping(e);return this.getTangent(A,t)}computeFrenetFrames(e,t){let A=new S,r=[],i=[],s=[],o=new S,a=new he;for(let d=0;d<=e;d++){let p=d/e;r[d]=this.getTangentAt(p,new S)}i[0]=new S,s[0]=new S;let c=Number.MAX_VALUE,l=Math.abs(r[0].x),u=Math.abs(r[0].y),h=Math.abs(r[0].z);l<=c&&(c=l,A.set(1,0,0)),u<=c&&(c=u,A.set(0,1,0)),h<=c&&A.set(0,0,1),o.crossVectors(r[0],A).normalize(),i[0].crossVectors(r[0],o),s[0].crossVectors(r[0],i[0]);for(let d=1;d<=e;d++){if(i[d]=i[d-1].clone(),s[d]=s[d-1].clone(),o.crossVectors(r[d-1],r[d]),o.length()>Number.EPSILON){o.normalize();let p=Math.acos(gA(r[d-1].dot(r[d]),-1,1));i[d].applyMatrix4(a.makeRotationAxis(o,p))}s[d].crossVectors(r[d],i[d])}if(t===!0){let d=Math.acos(gA(i[0].dot(i[e]),-1,1));d/=e,r[0].dot(o.crossVectors(i[0],i[e]))>0&&(d=-d);for(let p=1;p<=e;p++)i[p].applyMatrix4(a.makeRotationAxis(r[p],d*p)),s[p].crossVectors(r[p],i[p])}return{tangents:r,normals:i,binormals:s}}clone(){return new this.constructor().copy(this)}copy(e){return this.arcLengthDivisions=e.arcLengthDivisions,this}toJSON(){let e={metadata:{version:4.5,type:"Curve",generator:"Curve.toJSON"}};return e.arcLengthDivisions=this.arcLengthDivisions,e.type=this.type,e}fromJSON(e){return this.arcLengthDivisions=e.arcLengthDivisions,this}},oo=class extends Yn{constructor(e=0,t=0,A=1,r=1,i=0,s=Math.PI*2,o=!1,a=0){super(),this.isEllipseCurve=!0,this.type="EllipseCurve",this.aX=e,this.aY=t,this.xRadius=A,this.yRadius=r,this.aStartAngle=i,this.aEndAngle=s,this.aClockwise=o,this.aRotation=a}getPoint(e,t){let A=t||new G,r=Math.PI*2,i=this.aEndAngle-this.aStartAngle,s=Math.abs(i)<Number.EPSILON;for(;i<0;)i+=r;for(;i>r;)i-=r;i<Number.EPSILON&&(s?i=0:i=r),this.aClockwise===!0&&!s&&(i===r?i=-r:i=i-r);let o=this.aStartAngle+e*i,a=this.aX+this.xRadius*Math.cos(o),c=this.aY+this.yRadius*Math.sin(o);if(this.aRotation!==0){let l=Math.cos(this.aRotation),u=Math.sin(this.aRotation),h=a-this.aX,d=c-this.aY;a=h*l-d*u+this.aX,c=h*u+d*l+this.aY}return A.set(a,c)}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}},ly=class extends oo{constructor(e,t,A,r,i,s){super(e,t,A,A,r,i,s),this.isArcCurve=!0,this.type="ArcCurve"}};function Ry(){let n=0,e=0,t=0,A=0;function r(i,s,o,a){n=i,e=o,t=-3*i+3*s-2*o-a,A=2*i-2*s+o+a}return{initCatmullRom:function(i,s,o,a,c){r(s,o,c*(o-i),c*(a-s))},initNonuniformCatmullRom:function(i,s,o,a,c,l,u){let h=(s-i)/c-(o-i)/(c+l)+(o-s)/l,d=(o-s)/l-(a-s)/(l+u)+(a-o)/u;h*=l,d*=l,r(s,o,h,d)},calc:function(i){let s=i*i,o=s*i;return n+e*i+t*s+A*o}}}var Td=new S,kg=new Ry,Ug=new Ry,Vg=new Ry,cy=class extends Yn{constructor(e=[],t=!1,A="centripetal",r=.5){super(),this.isCatmullRomCurve3=!0,this.type="CatmullRomCurve3",this.points=e,this.closed=t,this.curveType=A,this.tension=r}getPoint(e,t=new S){let A=t,r=this.points,i=r.length,s=(i-(this.closed?0:1))*e,o=Math.floor(s),a=s-o;this.closed?o+=o>0?0:(Math.floor(Math.abs(o)/i)+1)*i:a===0&&o===i-1&&(o=i-2,a=1);let c,l;this.closed||o>0?c=r[(o-1)%i]:(Td.subVectors(r[0],r[1]).add(r[0]),c=Td);let u=r[o%i],h=r[(o+1)%i];if(this.closed||o+2<i?l=r[(o+2)%i]:(Td.subVectors(r[i-1],r[i-2]).add(r[i-1]),l=Td),this.curveType==="centripetal"||this.curveType==="chordal"){let d=this.curveType==="chordal"?.5:.25,p=Math.pow(c.distanceToSquared(u),d),f=Math.pow(u.distanceToSquared(h),d),m=Math.pow(h.distanceToSquared(l),d);f<1e-4&&(f=1),p<1e-4&&(p=f),m<1e-4&&(m=f),kg.initNonuniformCatmullRom(c.x,u.x,h.x,l.x,p,f,m),Ug.initNonuniformCatmullRom(c.y,u.y,h.y,l.y,p,f,m),Vg.initNonuniformCatmullRom(c.z,u.z,h.z,l.z,p,f,m)}else this.curveType==="catmullrom"&&(kg.initCatmullRom(c.x,u.x,h.x,l.x,this.tension),Ug.initCatmullRom(c.y,u.y,h.y,l.y,this.tension),Vg.initCatmullRom(c.z,u.z,h.z,l.z,this.tension));return A.set(kg.calc(a),Ug.calc(a),Vg.calc(a)),A}copy(e){super.copy(e),this.points=[];for(let t=0,A=e.points.length;t<A;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,A=this.points.length;t<A;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,A=e.points.length;t<A;t++){let r=e.points[t];this.points.push(new S().fromArray(r))}return this.closed=e.closed,this.curveType=e.curveType,this.tension=e.tension,this}};function pw(n,e,t,A,r){let i=(A-e)*.5,s=(r-t)*.5,o=n*n,a=n*o;return(2*t-2*A+i+s)*a+(-3*t+3*A-2*i-s)*o+i*n+t}function x3(n,e){let t=1-n;return t*t*e}function b3(n,e){return 2*(1-n)*n*e}function w3(n,e){return n*n*e}function Kc(n,e,t,A){return x3(n,e)+b3(n,t)+w3(n,A)}function S3(n,e){let t=1-n;return t*t*t*e}function T3(n,e){let t=1-n;return 3*t*t*n*e}function M3(n,e){return 3*(1-n)*n*n*e}function E3(n,e){return n*n*n*e}function Jc(n,e,t,A,r){return S3(n,e)+T3(n,t)+M3(n,A)+E3(n,r)}var qA=class extends Yn{constructor(e=new G,t=new G,A=new G,r=new G){super(),this.isCubicBezierCurve=!0,this.type="CubicBezierCurve",this.v0=e,this.v1=t,this.v2=A,this.v3=r}getPoint(e,t=new G){let A=t,r=this.v0,i=this.v1,s=this.v2,o=this.v3;return A.set(Jc(e,r.x,i.x,s.x,o.x),Jc(e,r.y,i.y,s.y,o.y)),A}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}},uy=class extends Yn{constructor(e=new S,t=new S,A=new S,r=new S){super(),this.isCubicBezierCurve3=!0,this.type="CubicBezierCurve3",this.v0=e,this.v1=t,this.v2=A,this.v3=r}getPoint(e,t=new S){let A=t,r=this.v0,i=this.v1,s=this.v2,o=this.v3;return A.set(Jc(e,r.x,i.x,s.x,o.x),Jc(e,r.y,i.y,s.y,o.y),Jc(e,r.z,i.z,s.z,o.z)),A}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}},XA=class extends Yn{constructor(e=new G,t=new G){super(),this.isLineCurve=!0,this.type="LineCurve",this.v1=e,this.v2=t}getPoint(e,t=new G){let A=t;return e===1?A.copy(this.v2):(A.copy(this.v2).sub(this.v1),A.multiplyScalar(e).add(this.v1)),A}getPointAt(e,t){return this.getPoint(e,t)}getTangent(e,t){let A=t||new G;return A.copy(this.v2).sub(this.v1).normalize(),A}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}},iu=class extends Yn{constructor(e=new S,t=new S){super(),this.isLineCurve3=!0,this.type="LineCurve3",this.v1=e,this.v2=t}getPoint(e,t=new S){let A=t;return e===1?A.copy(this.v2):(A.copy(this.v2).sub(this.v1),A.multiplyScalar(e).add(this.v1)),A}getPointAt(e,t){return this.getPoint(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}},_n=class extends Yn{constructor(e=new G,t=new G,A=new G){super(),this.isQuadraticBezierCurve=!0,this.type="QuadraticBezierCurve",this.v0=e,this.v1=t,this.v2=A}getPoint(e,t=new G){let A=t,r=this.v0,i=this.v1,s=this.v2;return A.set(Kc(e,r.x,i.x,s.x),Kc(e,r.y,i.y,s.y)),A}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}},hy=class extends Yn{constructor(e=new S,t=new S,A=new S){super(),this.isQuadraticBezierCurve3=!0,this.type="QuadraticBezierCurve3",this.v0=e,this.v1=t,this.v2=A}getPoint(e,t=new S){let A=t,r=this.v0,i=this.v1,s=this.v2;return A.set(Kc(e,r.x,i.x,s.x),Kc(e,r.y,i.y,s.y),Kc(e,r.z,i.z,s.z)),A}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}},xa=class extends Yn{constructor(e=[]){super(),this.isSplineCurve=!0,this.type="SplineCurve",this.points=e}getPoint(e,t=new G){let A=t,r=this.points,i=(r.length-1)*e,s=Math.floor(i),o=i-s,a=r[s===0?s:s-1],c=r[s],l=r[s>r.length-2?r.length-1:s+1],u=r[s>r.length-3?r.length-1:s+2];return A.set(pw(o,a.x,c.x,l.x,u.x),pw(o,a.y,c.y,l.y,u.y)),A}copy(e){super.copy(e),this.points=[];for(let t=0,A=e.points.length;t<A;t++){let r=e.points[t];this.points.push(r.clone())}return this}toJSON(){let e=super.toJSON();e.points=[];for(let t=0,A=this.points.length;t<A;t++){let r=this.points[t];e.points.push(r.toArray())}return e}fromJSON(e){super.fromJSON(e),this.points=[];for(let t=0,A=e.points.length;t<A;t++){let r=e.points[t];this.points.push(new G().fromArray(r))}return this}},C3=Object.freeze({__proto__:null,ArcCurve:ly,CatmullRomCurve3:cy,CubicBezierCurve:qA,CubicBezierCurve3:uy,EllipseCurve:oo,LineCurve:XA,LineCurve3:iu,QuadraticBezierCurve:_n,QuadraticBezierCurve3:hy,SplineCurve:xa}),dy=class extends Yn{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);e.equals(t)||this.curves.push(new XA(t,e))}getPoint(e,t){let A=e*this.getLength(),r=this.getCurveLengths(),i=0;for(;i<r.length;){if(r[i]>=A){let s=r[i]-A,o=this.curves[i],a=o.getLength(),c=a===0?0:1-s/a;return o.getPointAt(c,t)}i++}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 A=0,r=this.curves.length;A<r;A++)t+=this.curves[A].getLength(),e.push(t);return this.cacheLengths=e,e}getSpacedPoints(e=40){let t=[];for(let A=0;A<=e;A++)t.push(this.getPoint(A/e));return this.autoClose&&t.push(t[0]),t}getPoints(e=12){let t=[],A;for(let r=0,i=this.curves;r<i.length;r++){let s=i[r],o=s.isEllipseCurve?e*2:s.isLineCurve||s.isLineCurve3?1:s.isSplineCurve?e*s.points.length:e,a=s.getPoints(o);for(let c=0;c<a.length;c++){let l=a[c];A&&A.equals(l)||(t.push(l),A=l)}}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,A=e.curves.length;t<A;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,A=this.curves.length;t<A;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,A=e.curves.length;t<A;t++){let r=e.curves[t];this.curves.push(new C3[r.type]().fromJSON(r))}return this}},ao=class extends dy{constructor(e){super(),this.type="Path",this.currentPoint=new G,e&&this.setFromPoints(e)}setFromPoints(e){this.moveTo(e[0].x,e[0].y);for(let t=1,A=e.length;t<A;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 A=new XA(this.currentPoint.clone(),new G(e,t));return this.curves.push(A),this.currentPoint.set(e,t),this}quadraticCurveTo(e,t,A,r){let i=new _n(this.currentPoint.clone(),new G(e,t),new G(A,r));return this.curves.push(i),this.currentPoint.set(A,r),this}bezierCurveTo(e,t,A,r,i,s){let o=new qA(this.currentPoint.clone(),new G(e,t),new G(A,r),new G(i,s));return this.curves.push(o),this.currentPoint.set(i,s),this}splineThru(e){let t=[this.currentPoint.clone()].concat(e),A=new xa(t);return this.curves.push(A),this.currentPoint.copy(e[e.length-1]),this}arc(e,t,A,r,i,s){let o=this.currentPoint.x,a=this.currentPoint.y;return this.absarc(e+o,t+a,A,r,i,s),this}absarc(e,t,A,r,i,s){return this.absellipse(e,t,A,A,r,i,s),this}ellipse(e,t,A,r,i,s,o,a){let c=this.currentPoint.x,l=this.currentPoint.y;return this.absellipse(e+c,t+l,A,r,i,s,o,a),this}absellipse(e,t,A,r,i,s,o,a){let c=new oo(e,t,A,r,i,s,o,a);if(this.curves.length>0){let u=c.getPoint(0);u.equals(this.currentPoint)||this.lineTo(u.x,u.y)}this.curves.push(c);let l=c.getPoint(1);return this.currentPoint.copy(l),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}},ba=class extends Ie{constructor(e=[new G(0,.5),new G(.5,0),new G(0,-.5)],t=12,A=0,r=Math.PI*2){super(),this.type="LatheGeometry",this.parameters={points:e,segments:t,phiStart:A,phiLength:r},t=Math.floor(t),r=gA(r,0,Math.PI*2);let i=[],s=[],o=[],a=[],c=[],l=1/t,u=new S,h=new G,d=new S,p=new S,f=new S,m=0,y=0;for(let g=0;g<=e.length-1;g++)switch(g){case 0:m=e[g+1].x-e[g].x,y=e[g+1].y-e[g].y,d.x=y*1,d.y=-m,d.z=y*0,f.copy(d),d.normalize(),a.push(d.x,d.y,d.z);break;case e.length-1:a.push(f.x,f.y,f.z);break;default:m=e[g+1].x-e[g].x,y=e[g+1].y-e[g].y,d.x=y*1,d.y=-m,d.z=y*0,p.copy(d),d.x+=f.x,d.y+=f.y,d.z+=f.z,d.normalize(),a.push(d.x,d.y,d.z),f.copy(p)}for(let g=0;g<=t;g++){let b=A+g*l*r,x=Math.sin(b),w=Math.cos(b);for(let T=0;T<=e.length-1;T++){u.x=e[T].x*x,u.y=e[T].y,u.z=e[T].x*w,s.push(u.x,u.y,u.z),h.x=g/t,h.y=T/(e.length-1),o.push(h.x,h.y);let M=a[3*T+0]*x,v=a[3*T+1],E=a[3*T+0]*w;c.push(M,v,E)}}for(let g=0;g<t;g++)for(let b=0;b<e.length-1;b++){let x=b+g*e.length,w=x,T=x+e.length,M=x+e.length+1,v=x+1;i.push(w,T,v),i.push(M,v,T)}this.setIndex(i),this.setAttribute("position",new Se(s,3)),this.setAttribute("uv",new Se(o,2)),this.setAttribute("normal",new Se(c,3))}static fromJSON(e){return new ba(e.points,e.segments,e.phiStart,e.phiLength)}};var lo=class extends Ie{constructor(e=1,t=1,A=1,r=8,i=1,s=!1,o=0,a=Math.PI*2){super(),this.type="CylinderGeometry",this.parameters={radiusTop:e,radiusBottom:t,height:A,radialSegments:r,heightSegments:i,openEnded:s,thetaStart:o,thetaLength:a};let c=this;r=Math.floor(r),i=Math.floor(i);let l=[],u=[],h=[],d=[],p=0,f=[],m=A/2,y=0;g(),s===!1&&(e>0&&b(!0),t>0&&b(!1)),this.setIndex(l),this.setAttribute("position",new Se(u,3)),this.setAttribute("normal",new Se(h,3)),this.setAttribute("uv",new Se(d,2));function g(){let x=new S,w=new S,T=0,M=(t-e)/A;for(let v=0;v<=i;v++){let E=[],C=v/i,P=C*(t-e)+e;for(let D=0;D<=r;D++){let _=D/r,I=_*a+o,B=Math.sin(I),N=Math.cos(I);w.x=P*B,w.y=-C*A+m,w.z=P*N,u.push(w.x,w.y,w.z),x.set(B,M,N).normalize(),h.push(x.x,x.y,x.z),d.push(_,1-C),E.push(p++)}f.push(E)}for(let v=0;v<r;v++)for(let E=0;E<i;E++){let C=f[E][v],P=f[E+1][v],D=f[E+1][v+1],_=f[E][v+1];l.push(C,P,_),l.push(P,D,_),T+=6}c.addGroup(y,T,0),y+=T}function b(x){let w=p,T=new G,M=new S,v=0,E=x===!0?e:t,C=x===!0?1:-1;for(let D=1;D<=r;D++)u.push(0,m*C,0),h.push(0,C,0),d.push(.5,.5),p++;let P=p;for(let D=0;D<=r;D++){let I=D/r*a+o,B=Math.cos(I),N=Math.sin(I);M.x=E*N,M.y=m*C,M.z=E*B,u.push(M.x,M.y,M.z),h.push(0,C,0),T.x=B*.5+.5,T.y=N*.5*C+.5,d.push(T.x,T.y),p++}for(let D=0;D<r;D++){let _=w+D,I=P+D;x===!0?l.push(I,I+1,_):l.push(I+1,I,_),v+=3}c.addGroup(y,v,x===!0?1:2),y+=v}}static fromJSON(e){return new lo(e.radiusTop,e.radiusBottom,e.height,e.radialSegments,e.heightSegments,e.openEnded,e.thetaStart,e.thetaLength)}},wa=class extends lo{constructor(e=1,t=1,A=8,r=1,i=!1,s=0,o=Math.PI*2){super(0,e,t,A,r,i,s,o),this.type="ConeGeometry",this.parameters={radius:e,height:t,radialSegments:A,heightSegments:r,openEnded:i,thetaStart:s,thetaLength:o}}static fromJSON(e){return new wa(e.radius,e.height,e.radialSegments,e.heightSegments,e.openEnded,e.thetaStart,e.thetaLength)}},Sa=class extends Ie{constructor(e=[],t=[],A=1,r=0){super(),this.type="PolyhedronGeometry",this.parameters={vertices:e,indices:t,radius:A,detail:r};let i=[],s=[];o(r),c(A),l(),this.setAttribute("position",new Se(i,3)),this.setAttribute("normal",new Se(i.slice(),3)),this.setAttribute("uv",new Se(s,2)),r===0?this.computeVertexNormals():this.normalizeNormals();function o(g){let b=new S,x=new S,w=new S;for(let T=0;T<t.length;T+=3)d(t[T+0],b),d(t[T+1],x),d(t[T+2],w),a(b,x,w,g)}function a(g,b,x,w){let T=w+1,M=[];for(let v=0;v<=T;v++){M[v]=[];let E=g.clone().lerp(x,v/T),C=b.clone().lerp(x,v/T),P=T-v;for(let D=0;D<=P;D++)D===0&&v===T?M[v][D]=E:M[v][D]=E.clone().lerp(C,D/P)}for(let v=0;v<T;v++)for(let E=0;E<2*(T-v)-1;E++){let C=Math.floor(E/2);E%2===0?(h(M[v][C+1]),h(M[v+1][C]),h(M[v][C])):(h(M[v][C+1]),h(M[v+1][C+1]),h(M[v+1][C]))}}function c(g){let b=new S;for(let x=0;x<i.length;x+=3)b.x=i[x+0],b.y=i[x+1],b.z=i[x+2],b.normalize().multiplyScalar(g),i[x+0]=b.x,i[x+1]=b.y,i[x+2]=b.z}function l(){let g=new S;for(let b=0;b<i.length;b+=3){g.x=i[b+0],g.y=i[b+1],g.z=i[b+2];let x=m(g)/2/Math.PI+.5,w=y(g)/Math.PI+.5;s.push(x,1-w)}p(),u()}function u(){for(let g=0;g<s.length;g+=6){let b=s[g+0],x=s[g+2],w=s[g+4],T=Math.max(b,x,w),M=Math.min(b,x,w);T>.9&&M<.1&&(b<.2&&(s[g+0]+=1),x<.2&&(s[g+2]+=1),w<.2&&(s[g+4]+=1))}}function h(g){i.push(g.x,g.y,g.z)}function d(g,b){let x=g*3;b.x=e[x+0],b.y=e[x+1],b.z=e[x+2]}function p(){let g=new S,b=new S,x=new S,w=new S,T=new G,M=new G,v=new G;for(let E=0,C=0;E<i.length;E+=9,C+=6){g.set(i[E+0],i[E+1],i[E+2]),b.set(i[E+3],i[E+4],i[E+5]),x.set(i[E+6],i[E+7],i[E+8]),T.set(s[C+0],s[C+1]),M.set(s[C+2],s[C+3]),v.set(s[C+4],s[C+5]),w.copy(g).add(b).add(x).divideScalar(3);let P=m(w);f(T,C+0,g,P),f(M,C+2,b,P),f(v,C+4,x,P)}}function f(g,b,x,w){w<0&&g.x===1&&(s[b]=g.x-1),x.x===0&&x.z===0&&(s[b]=w/2/Math.PI+.5)}function m(g){return Math.atan2(g.z,-g.x)}function y(g){return Math.atan2(-g.y,Math.sqrt(g.x*g.x+g.z*g.z))}}static fromJSON(e){return new Sa(e.vertices,e.indices,e.radius,e.details)}},Ta=class extends Sa{constructor(e=1,t=0){let A=(1+Math.sqrt(5))/2,r=1/A,i=[-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,-A,0,-r,A,0,r,-A,0,r,A,-r,-A,0,-r,A,0,r,-A,0,r,A,0,-A,0,-r,A,0,-r,-A,0,r,A,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(i,s,e,t),this.type="DodecahedronGeometry",this.parameters={radius:e,detail:t}}static fromJSON(e){return new Ta(e.radius,e.detail)}};var Mi=class extends ao{constructor(e){super(e),this.uuid=Br(),this.type="Shape",this.holes=[]}getPointsHoles(e){let t=[];for(let A=0,r=this.holes.length;A<r;A++)t[A]=this.holes[A].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,A=e.holes.length;t<A;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,A=this.holes.length;t<A;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,A=e.holes.length;t<A;t++){let r=e.holes[t];this.holes.push(new ao().fromJSON(r))}return this}},P3={triangulate:function(n,e,t=2){let A=e&&e.length,r=A?e[0]*t:n.length,i=Ww(n,0,r,t,!0),s=[];if(!i||i.next===i.prev)return s;let o,a,c,l,u,h,d;if(A&&(i=O3(n,e,i,t)),n.length>80*t){o=c=n[0],a=l=n[1];for(let p=t;p<r;p+=t)u=n[p],h=n[p+1],u<o&&(o=u),h<a&&(a=h),u>c&&(c=u),h>l&&(l=h);d=Math.max(c-o,l-a),d=d!==0?1/d:0}return su(i,s,t,o,a,d),s}};function Ww(n,e,t,A,r){let i,s;if(r===W3(n,e,t,A)>0)for(i=e;i<t;i+=A)s=mw(i,n[i],n[i+1],s);else for(i=t-A;i>=e;i-=A)s=mw(i,n[i],n[i+1],s);return s&&tf(s,s.next)&&(au(s),s=s.next),s}function is(n,e){if(!n)return n;e||(e=n);let t=n,A;do if(A=!1,!t.steiner&&(tf(t,t.next)||Ht(t.prev,t,t.next)===0)){if(au(t),t=e=t.prev,t===t.next)break;A=!0}else t=t.next;while(A||t!==e);return e}function su(n,e,t,A,r,i,s){if(!n)return;!s&&i&&G3(n,A,r,i);let o=n,a,c;for(;n.prev!==n.next;){if(a=n.prev,c=n.next,i?I3(n,A,r,i):D3(n)){e.push(a.i/t),e.push(n.i/t),e.push(c.i/t),au(n),n=c.next,o=c.next;continue}if(n=c,n===o){s?s===1?(n=L3(is(n),e,t),su(n,e,t,A,r,i,2)):s===2&&_3(n,e,t,A,r,i):su(is(n),e,t,A,r,i,1);break}}}function D3(n){let e=n.prev,t=n,A=n.next;if(Ht(e,t,A)>=0)return!1;let r=n.next.next;for(;r!==n.prev;){if(ha(e.x,e.y,t.x,t.y,A.x,A.y,r.x,r.y)&&Ht(r.prev,r,r.next)>=0)return!1;r=r.next}return!0}function I3(n,e,t,A){let r=n.prev,i=n,s=n.next;if(Ht(r,i,s)>=0)return!1;let o=r.x<i.x?r.x<s.x?r.x:s.x:i.x<s.x?i.x:s.x,a=r.y<i.y?r.y<s.y?r.y:s.y:i.y<s.y?i.y:s.y,c=r.x>i.x?r.x>s.x?r.x:s.x:i.x>s.x?i.x:s.x,l=r.y>i.y?r.y>s.y?r.y:s.y:i.y>s.y?i.y:s.y,u=fy(o,a,e,t,A),h=fy(c,l,e,t,A),d=n.prevZ,p=n.nextZ;for(;d&&d.z>=u&&p&&p.z<=h;){if(d!==n.prev&&d!==n.next&&ha(r.x,r.y,i.x,i.y,s.x,s.y,d.x,d.y)&&Ht(d.prev,d,d.next)>=0||(d=d.prevZ,p!==n.prev&&p!==n.next&&ha(r.x,r.y,i.x,i.y,s.x,s.y,p.x,p.y)&&Ht(p.prev,p,p.next)>=0))return!1;p=p.nextZ}for(;d&&d.z>=u;){if(d!==n.prev&&d!==n.next&&ha(r.x,r.y,i.x,i.y,s.x,s.y,d.x,d.y)&&Ht(d.prev,d,d.next)>=0)return!1;d=d.prevZ}for(;p&&p.z<=h;){if(p!==n.prev&&p!==n.next&&ha(r.x,r.y,i.x,i.y,s.x,s.y,p.x,p.y)&&Ht(p.prev,p,p.next)>=0)return!1;p=p.nextZ}return!0}function L3(n,e,t){let A=n;do{let r=A.prev,i=A.next.next;!tf(r,i)&&jw(r,A,A.next,i)&&ou(r,i)&&ou(i,r)&&(e.push(r.i/t),e.push(A.i/t),e.push(i.i/t),au(A),au(A.next),A=n=i),A=A.next}while(A!==n);return is(A)}function _3(n,e,t,A,r,i){let s=n;do{let o=s.next.next;for(;o!==s.prev;){if(s.i!==o.i&&V3(s,o)){let a=Yw(s,o);s=is(s,s.next),a=is(a,a.next),su(s,e,t,A,r,i),su(a,e,t,A,r,i);return}o=o.next}s=s.next}while(s!==n)}function O3(n,e,t,A){let r=[],i,s,o,a,c;for(i=0,s=e.length;i<s;i++)o=e[i]*A,a=i<s-1?e[i+1]*A:n.length,c=Ww(n,o,a,A,!1),c===c.next&&(c.steiner=!0),r.push(U3(c));for(r.sort(R3),i=0;i<r.length;i++)B3(r[i],t),t=is(t,t.next);return t}function R3(n,e){return n.x-e.x}function B3(n,e){if(e=N3(n,e),e){let t=Yw(e,n);is(e,e.next),is(t,t.next)}}function N3(n,e){let t=e,A=n.x,r=n.y,i=-1/0,s;do{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<=A&&h>i){if(i=h,h===A){if(r===t.y)return t;if(r===t.next.y)return t.next}s=t.x<t.next.x?t:t.next}}t=t.next}while(t!==e);if(!s)return null;if(A===i)return s;let o=s,a=s.x,c=s.y,l=1/0,u;t=s;do A>=t.x&&t.x>=a&&A!==t.x&&ha(r<c?A:i,r,a,c,r<c?i:A,r,t.x,t.y)&&(u=Math.abs(r-t.y)/(A-t.x),ou(t,n)&&(u<l||u===l&&(t.x>s.x||t.x===s.x&&F3(s,t)))&&(s=t,l=u)),t=t.next;while(t!==o);return s}function F3(n,e){return Ht(n.prev,n,e.prev)<0&&Ht(e.next,n,n.next)<0}function G3(n,e,t,A){let r=n;do r.z===null&&(r.z=fy(r.x,r.y,e,t,A)),r.prevZ=r.prev,r.nextZ=r.next,r=r.next;while(r!==n);r.prevZ.nextZ=null,r.prevZ=null,k3(r)}function k3(n){let e,t,A,r,i,s,o,a,c=1;do{for(t=n,n=null,i=null,s=0;t;){for(s++,A=t,o=0,e=0;e<c&&(o++,A=A.nextZ,!!A);e++);for(a=c;o>0||a>0&&A;)o!==0&&(a===0||!A||t.z<=A.z)?(r=t,t=t.nextZ,o--):(r=A,A=A.nextZ,a--),i?i.nextZ=r:n=r,r.prevZ=i,i=r;t=A}i.nextZ=null,c*=2}while(s>1);return n}function fy(n,e,t,A,r){return n=32767*(n-t)*r,e=32767*(e-A)*r,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 U3(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 ha(n,e,t,A,r,i,s,o){return(r-s)*(e-o)-(n-s)*(i-o)>=0&&(n-s)*(A-o)-(t-s)*(e-o)>=0&&(t-s)*(i-o)-(r-s)*(A-o)>=0}function V3(n,e){return n.next.i!==e.i&&n.prev.i!==e.i&&!z3(n,e)&&(ou(n,e)&&ou(e,n)&&H3(n,e)&&(Ht(n.prev,n,e.prev)||Ht(n,e.prev,e))||tf(n,e)&&Ht(n.prev,n,n.next)>0&&Ht(e.prev,e,e.next)>0)}function Ht(n,e,t){return(e.y-n.y)*(t.x-e.x)-(e.x-n.x)*(t.y-e.y)}function tf(n,e){return n.x===e.x&&n.y===e.y}function jw(n,e,t,A){let r=Ed(Ht(n,e,t)),i=Ed(Ht(n,e,A)),s=Ed(Ht(t,A,n)),o=Ed(Ht(t,A,e));return!!(r!==i&&s!==o||r===0&&Md(n,t,e)||i===0&&Md(n,A,e)||s===0&&Md(t,n,A)||o===0&&Md(t,e,A))}function Md(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 Ed(n){return n>0?1:n<0?-1:0}function z3(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&&jw(t,t.next,n,e))return!0;t=t.next}while(t!==n);return!1}function ou(n,e){return Ht(n.prev,n,n.next)<0?Ht(n,e,n.next)>=0&&Ht(n,n.prev,e)>=0:Ht(n,e,n.prev)<0||Ht(n,n.next,e)<0}function H3(n,e){let t=n,A=!1,r=(n.x+e.x)/2,i=(n.y+e.y)/2;do t.y>i!=t.next.y>i&&t.next.y!==t.y&&r<(t.next.x-t.x)*(i-t.y)/(t.next.y-t.y)+t.x&&(A=!A),t=t.next;while(t!==n);return A}function Yw(n,e){let t=new py(n.i,n.x,n.y),A=new py(e.i,e.x,e.y),r=n.next,i=e.prev;return n.next=e,e.prev=n,t.next=r,r.prev=t,A.next=t,t.prev=A,i.next=A,A.prev=i,A}function mw(n,e,t,A){let r=new py(n,e,t);return A?(r.next=A.next,r.prev=A,A.next.prev=r,A.next=r):(r.prev=r,r.next=r),r}function au(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 py(n,e,t){this.i=n,this.x=e,this.y=t,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}function W3(n,e,t,A){let r=0;for(let i=e,s=t-A;i<t;i+=A)r+=(n[s]-n[i])*(n[i+1]+n[s+1]),s=i;return r}var Ma=class{static area(e){let t=e.length,A=0;for(let r=t-1,i=0;i<t;r=i++)A+=e[r].x*e[i].y-e[i].x*e[r].y;return A*.5}static isClockWise(e){return Ma.area(e)<0}static triangulateShape(e,t){let A=[],r=[],i=[];gw(e),yw(A,e);let s=e.length;t.forEach(gw);for(let a=0;a<t.length;a++)r.push(s),s+=t[a].length,yw(A,t[a]);let o=P3.triangulate(A,r);for(let a=0;a<o.length;a+=3)i.push(o.slice(a,a+3));return i}};function gw(n){let e=n.length;e>2&&n[e-1].equals(n[0])&&n.pop()}function yw(n,e){for(let t=0;t<e.length;t++)n.push(e[t].x),n.push(e[t].y)}var Ea=class extends Sa{constructor(e=1,t=0){let A=(1+Math.sqrt(5))/2,r=[-1,A,0,1,A,0,-1,-A,0,1,-A,0,0,-1,A,0,1,A,0,-1,-A,0,1,-A,A,0,-1,A,0,1,-A,0,-1,-A,0,1],i=[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,i,e,t),this.type="IcosahedronGeometry",this.parameters={radius:e,detail:t}}static fromJSON(e){return new Ea(e.radius,e.detail)}};var co=class extends Ie{constructor(e=1,t=32,A=16,r=0,i=Math.PI*2,s=0,o=Math.PI){super(),this.type="SphereGeometry",this.parameters={radius:e,widthSegments:t,heightSegments:A,phiStart:r,phiLength:i,thetaStart:s,thetaLength:o},t=Math.max(3,Math.floor(t)),A=Math.max(2,Math.floor(A));let a=Math.min(s+o,Math.PI),c=0,l=[],u=new S,h=new S,d=[],p=[],f=[],m=[];for(let y=0;y<=A;y++){let g=[],b=y/A,x=0;y==0&&s==0?x=.5/t:y==A&&a==Math.PI&&(x=-.5/t);for(let w=0;w<=t;w++){let T=w/t;u.x=-e*Math.cos(r+T*i)*Math.sin(s+b*o),u.y=e*Math.cos(s+b*o),u.z=e*Math.sin(r+T*i)*Math.sin(s+b*o),p.push(u.x,u.y,u.z),h.copy(u).normalize(),f.push(h.x,h.y,h.z),m.push(T+x,1-b),g.push(c++)}l.push(g)}for(let y=0;y<A;y++)for(let g=0;g<t;g++){let b=l[y][g+1],x=l[y][g],w=l[y+1][g],T=l[y+1][g+1];(y!==0||s>0)&&d.push(b,x,T),(y!==A-1||a<Math.PI)&&d.push(x,w,T)}this.setIndex(d),this.setAttribute("position",new Se(p,3)),this.setAttribute("normal",new Se(f,3)),this.setAttribute("uv",new Se(m,2))}static fromJSON(e){return new co(e.radius,e.widthSegments,e.heightSegments,e.phiStart,e.phiLength,e.thetaStart,e.thetaLength)}};var Ca=class extends Ie{constructor(e=1,t=.4,A=64,r=8,i=2,s=3){super(),this.type="TorusKnotGeometry",this.parameters={radius:e,tube:t,tubularSegments:A,radialSegments:r,p:i,q:s},A=Math.floor(A),r=Math.floor(r);let o=[],a=[],c=[],l=[],u=new S,h=new S,d=new S,p=new S,f=new S,m=new S,y=new S;for(let b=0;b<=A;++b){let x=b/A*i*Math.PI*2;g(x,i,s,e,d),g(x+.01,i,s,e,p),m.subVectors(p,d),y.addVectors(p,d),f.crossVectors(m,y),y.crossVectors(f,m),f.normalize(),y.normalize();for(let w=0;w<=r;++w){let T=w/r*Math.PI*2,M=-t*Math.cos(T),v=t*Math.sin(T);u.x=d.x+(M*y.x+v*f.x),u.y=d.y+(M*y.y+v*f.y),u.z=d.z+(M*y.z+v*f.z),a.push(u.x,u.y,u.z),h.subVectors(u,d).normalize(),c.push(h.x,h.y,h.z),l.push(b/A),l.push(w/r)}}for(let b=1;b<=A;b++)for(let x=1;x<=r;x++){let w=(r+1)*(b-1)+(x-1),T=(r+1)*b+(x-1),M=(r+1)*b+x,v=(r+1)*(b-1)+x;o.push(w,T,v),o.push(T,M,v)}this.setIndex(o),this.setAttribute("position",new Se(a,3)),this.setAttribute("normal",new Se(c,3)),this.setAttribute("uv",new Se(l,2));function g(b,x,w,T,M){let v=Math.cos(b),E=Math.sin(b),C=w/x*b,P=Math.cos(C);M.x=T*(2+P)*.5*v,M.y=T*(2+P)*E*.5,M.z=T*Math.sin(C)*.5}}static fromJSON(e){return new Ca(e.radius,e.tube,e.tubularSegments,e.radialSegments,e.p,e.q)}};var mA={arraySlice:function(n,e,t){return mA.isTypedArray(n)?new n.constructor(n.subarray(e,t!==void 0?t:n.length)):n.slice(e,t)},convertArray:function(n,e,t){return!n||!t&&n.constructor===e?n:typeof e.BYTES_PER_ELEMENT=="number"?new e(n):Array.prototype.slice.call(n)},isTypedArray:function(n){return ArrayBuffer.isView(n)&&!(n instanceof DataView)},getKeyframeOrder:function(n){function e(r,i){return n[r]-n[i]}let t=n.length,A=new Array(t);for(let r=0;r!==t;++r)A[r]=r;return A.sort(e),A},sortedArray:function(n,e,t){let A=n.length,r=new n.constructor(A);for(let i=0,s=0;s!==A;++i){let o=t[i]*e;for(let a=0;a!==e;++a)r[s++]=n[o+a]}return r},flattenJSON:function(n,e,t,A){let r=1,i=n[0];for(;i!==void 0&&i[A]===void 0;)i=n[r++];if(i===void 0)return;let s=i[A];if(s!==void 0)if(Array.isArray(s))do s=i[A],s!==void 0&&(e.push(i.time),t.push.apply(t,s)),i=n[r++];while(i!==void 0);else if(s.toArray!==void 0)do s=i[A],s!==void 0&&(e.push(i.time),s.toArray(t,t.length)),i=n[r++];while(i!==void 0);else do s=i[A],s!==void 0&&(e.push(i.time),t.push(s)),i=n[r++];while(i!==void 0)},subclip:function(n,e,t,A,r=30){let i=n.clone();i.name=e;let s=[];for(let a=0;a<i.tracks.length;++a){let c=i.tracks[a],l=c.getValueSize(),u=[],h=[];for(let d=0;d<c.times.length;++d){let p=c.times[d]*r;if(!(p<t||p>=A)){u.push(c.times[d]);for(let f=0;f<l;++f)h.push(c.values[d*l+f])}}u.length!==0&&(c.times=mA.convertArray(u,c.times.constructor),c.values=mA.convertArray(h,c.values.constructor),s.push(c))}i.tracks=s;let o=1/0;for(let a=0;a<i.tracks.length;++a)o>i.tracks[a].times[0]&&(o=i.tracks[a].times[0]);for(let a=0;a<i.tracks.length;++a)i.tracks[a].shift(-1*o);return i.resetDuration(),i},makeClipAdditive:function(n,e=0,t=n,A=30){A<=0&&(A=30);let r=t.tracks.length,i=e/A;for(let s=0;s<r;++s){let o=t.tracks[s],a=o.ValueTypeName;if(a==="bool"||a==="string")continue;let c=n.tracks.find(function(y){return y.name===o.name&&y.ValueTypeName===a});if(c===void 0)continue;let l=0,u=o.getValueSize();o.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline&&(l=u/3);let h=0,d=c.getValueSize();c.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline&&(h=d/3);let p=o.times.length-1,f;if(i<=o.times[0]){let y=l,g=u-l;f=mA.arraySlice(o.values,y,g)}else if(i>=o.times[p]){let y=p*u+l,g=y+u-l;f=mA.arraySlice(o.values,y,g)}else{let y=o.createInterpolant(),g=l,b=u-l;y.evaluate(i),f=mA.arraySlice(y.resultBuffer,g,b)}a==="quaternion"&&new Ke().fromArray(f).normalize().conjugate().toArray(f);let m=c.times.length;for(let y=0;y<m;++y){let g=y*d+h;if(a==="quaternion")Ke.multiplyQuaternionsFlat(c.values,g,f,0,c.values,g);else{let b=d-h*2;for(let x=0;x<b;++x)c.values[g+x]-=f[x]}}}return n.blendMode=vI,n}},Pa=class{constructor(e,t,A,r){this.parameterPositions=e,this._cachedIndex=0,this.resultBuffer=r!==void 0?r:new t.constructor(A),this.sampleValues=t,this.valueSize=A,this.settings=null,this.DefaultSettings_={}}evaluate(e){let t=this.parameterPositions,A=this._cachedIndex,r=t[A],i=t[A-1];A:{e:{let s;t:{n:if(!(e<r)){for(let o=A+2;;){if(r===void 0){if(e<i)break n;return A=t.length,this._cachedIndex=A,this.copySampleValue_(A-1)}if(A===o)break;if(i=r,r=t[++A],e<r)break e}s=t.length;break t}if(!(e>=i)){let o=t[1];e<o&&(A=2,i=o);for(let a=A-2;;){if(i===void 0)return this._cachedIndex=0,this.copySampleValue_(0);if(A===a)break;if(r=i,i=t[--A-1],e>=i)break e}s=A,A=0;break t}break A}for(;A<s;){let o=A+s>>>1;e<t[o]?s=o:A=o+1}if(r=t[A],i=t[A-1],i===void 0)return this._cachedIndex=0,this.copySampleValue_(0);if(r===void 0)return A=t.length,this._cachedIndex=A,this.copySampleValue_(A-1)}this._cachedIndex=A,this.intervalChanged_(A,i,r)}return this.interpolate_(A,i,e,r)}getSettings_(){return this.settings||this.DefaultSettings_}copySampleValue_(e){let t=this.resultBuffer,A=this.sampleValues,r=this.valueSize,i=e*r;for(let s=0;s!==r;++s)t[s]=A[i+s];return t}interpolate_(){throw new Error("call to abstract method")}intervalChanged_(){}},my=class extends Pa{constructor(e,t,A,r){super(e,t,A,r),this._weightPrev=-0,this._offsetPrev=-0,this._weightNext=-0,this._offsetNext=-0,this.DefaultSettings_={endingStart:Cb,endingEnd:Cb}}intervalChanged_(e,t,A){let r=this.parameterPositions,i=e-2,s=e+1,o=r[i],a=r[s];if(o===void 0)switch(this.getSettings_().endingStart){case Pb:i=e,o=2*t-A;break;case Db:i=r.length-2,o=t+r[i]-r[i+1];break;default:i=e,o=A}if(a===void 0)switch(this.getSettings_().endingEnd){case Pb:s=e,a=2*A-t;break;case Db:s=1,a=A+r[1]-r[0];break;default:s=e-1,a=t}let c=(A-t)*.5,l=this.valueSize;this._weightPrev=c/(t-o),this._weightNext=c/(a-A),this._offsetPrev=i*l,this._offsetNext=s*l}interpolate_(e,t,A,r){let i=this.resultBuffer,s=this.sampleValues,o=this.valueSize,a=e*o,c=a-o,l=this._offsetPrev,u=this._offsetNext,h=this._weightPrev,d=this._weightNext,p=(A-t)/(r-t),f=p*p,m=f*p,y=-h*m+2*h*f-h*p,g=(1+h)*m+(-1.5-2*h)*f+(-.5+h)*p+1,b=(-1-d)*m+(1.5+d)*f+.5*p,x=d*m-d*f;for(let w=0;w!==o;++w)i[w]=y*s[l+w]+g*s[c+w]+b*s[a+w]+x*s[u+w];return i}},gy=class extends Pa{constructor(e,t,A,r){super(e,t,A,r)}interpolate_(e,t,A,r){let i=this.resultBuffer,s=this.sampleValues,o=this.valueSize,a=e*o,c=a-o,l=(A-t)/(r-t),u=1-l;for(let h=0;h!==o;++h)i[h]=s[c+h]*u+s[a+h]*l;return i}},yy=class extends Pa{constructor(e,t,A,r){super(e,t,A,r)}interpolate_(e){return this.copySampleValue_(e-1)}},pr=class{constructor(e,t,A,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=mA.convertArray(t,this.TimeBufferType),this.values=mA.convertArray(A,this.ValueBufferType),this.setInterpolation(r||this.DefaultInterpolation)}static toJSON(e){let t=e.constructor,A;if(t.toJSON!==this.toJSON)A=t.toJSON(e);else{A={name:e.name,times:mA.convertArray(e.times,Array),values:mA.convertArray(e.values,Array)};let r=e.getInterpolation();r!==e.DefaultInterpolation&&(A.interpolation=r)}return A.type=e.ValueTypeName,A}InterpolantFactoryMethodDiscrete(e){return new yy(this.times,this.values,this.getValueSize(),e)}InterpolantFactoryMethodLinear(e){return new gy(this.times,this.values,this.getValueSize(),e)}InterpolantFactoryMethodSmooth(e){return new my(this.times,this.values,this.getValueSize(),e)}setInterpolation(e){let t;switch(e){case Ld:t=this.InterpolantFactoryMethodDiscrete;break;case _d:t=this.InterpolantFactoryMethodLinear;break;case ug:t=this.InterpolantFactoryMethodSmooth;break}if(t===void 0){let A="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(A);return console.warn("THREE.KeyframeTrack:",A),this}return this.createInterpolant=t,this}getInterpolation(){switch(this.createInterpolant){case this.InterpolantFactoryMethodDiscrete:return Ld;case this.InterpolantFactoryMethodLinear:return _d;case this.InterpolantFactoryMethodSmooth:return ug}}getValueSize(){return this.values.length/this.times.length}shift(e){if(e!==0){let t=this.times;for(let A=0,r=t.length;A!==r;++A)t[A]+=e}return this}scale(e){if(e!==1){let t=this.times;for(let A=0,r=t.length;A!==r;++A)t[A]*=e}return this}trim(e,t){let A=this.times,r=A.length,i=0,s=r-1;for(;i!==r&&A[i]<e;)++i;for(;s!==-1&&A[s]>t;)--s;if(++s,i!==0||s!==r){i>=s&&(s=Math.max(s,1),i=s-1);let o=this.getValueSize();this.times=mA.arraySlice(A,i,s),this.values=mA.arraySlice(this.values,i*o,s*o)}return this}validate(){let e=!0,t=this.getValueSize();t-Math.floor(t)!==0&&(console.error("THREE.KeyframeTrack: Invalid value size in track.",this),e=!1);let A=this.times,r=this.values,i=A.length;i===0&&(console.error("THREE.KeyframeTrack: Track is empty.",this),e=!1);let s=null;for(let o=0;o!==i;o++){let a=A[o];if(typeof a=="number"&&isNaN(a)){console.error("THREE.KeyframeTrack: Time is not a valid number.",this,o,a),e=!1;break}if(s!==null&&s>a){console.error("THREE.KeyframeTrack: Out of order keys.",this,o,a,s),e=!1;break}s=a}if(r!==void 0&&mA.isTypedArray(r))for(let o=0,a=r.length;o!==a;++o){let c=r[o];if(isNaN(c)){console.error("THREE.KeyframeTrack: Value is not a valid number.",this,o,c),e=!1;break}}return e}optimize(){let e=mA.arraySlice(this.times),t=mA.arraySlice(this.values),A=this.getValueSize(),r=this.getInterpolation()===ug,i=e.length-1,s=1;for(let o=1;o<i;++o){let a=!1,c=e[o],l=e[o+1];if(c!==l&&(o!==1||c!==e[0]))if(r)a=!0;else{let u=o*A,h=u-A,d=u+A;for(let p=0;p!==A;++p){let f=t[u+p];if(f!==t[h+p]||f!==t[d+p]){a=!0;break}}}if(a){if(o!==s){e[s]=e[o];let u=o*A,h=s*A;for(let d=0;d!==A;++d)t[h+d]=t[u+d]}++s}}if(i>0){e[s]=e[i];for(let o=i*A,a=s*A,c=0;c!==A;++c)t[a+c]=t[o+c];++s}return s!==e.length?(this.times=mA.arraySlice(e,0,s),this.values=mA.arraySlice(t,0,s*A)):(this.times=e,this.values=t),this}clone(){let e=mA.arraySlice(this.times,0),t=mA.arraySlice(this.values,0),A=this.constructor,r=new A(this.name,e,t);return r.createInterpolant=this.createInterpolant,r}};pr.prototype.TimeBufferType=Float32Array;pr.prototype.ValueBufferType=Float32Array;pr.prototype.DefaultInterpolation=_d;var uo=class extends pr{};uo.prototype.ValueTypeName="bool";uo.prototype.ValueBufferType=Array;uo.prototype.DefaultInterpolation=Ld;uo.prototype.InterpolantFactoryMethodLinear=void 0;uo.prototype.InterpolantFactoryMethodSmooth=void 0;var vy=class extends pr{};vy.prototype.ValueTypeName="color";var xy=class extends pr{};xy.prototype.ValueTypeName="number";var by=class extends Pa{constructor(e,t,A,r){super(e,t,A,r)}interpolate_(e,t,A,r){let i=this.resultBuffer,s=this.sampleValues,o=this.valueSize,a=(A-t)/(r-t),c=e*o;for(let l=c+o;c!==l;c+=4)Ke.slerpFlat(i,0,s,c-o,s,c,a);return i}},lu=class extends pr{InterpolantFactoryMethodLinear(e){return new by(this.times,this.values,this.getValueSize(),e)}};lu.prototype.ValueTypeName="quaternion";lu.prototype.DefaultInterpolation=_d;lu.prototype.InterpolantFactoryMethodSmooth=void 0;var ho=class extends pr{};ho.prototype.ValueTypeName="string";ho.prototype.ValueBufferType=Array;ho.prototype.DefaultInterpolation=Ld;ho.prototype.InterpolantFactoryMethodLinear=void 0;ho.prototype.InterpolantFactoryMethodSmooth=void 0;var wy=class extends pr{};wy.prototype.ValueTypeName="vector";var vw={enabled:!1,files:{},add:function(n,e){this.enabled!==!1&&(this.files[n]=e)},get:function(n){if(this.enabled!==!1)return this.files[n]},remove:function(n){delete this.files[n]},clear:function(){this.files={}}},cu=class{constructor(e,t,A){let r=this,i=!1,s=0,o=0,a,c=[];this.onStart=void 0,this.onLoad=e,this.onProgress=t,this.onError=A,this.itemStart=function(l){o++,i===!1&&r.onStart!==void 0&&r.onStart(l,s,o),i=!0},this.itemEnd=function(l){s++,r.onProgress!==void 0&&r.onProgress(l,s,o),s===o&&(i=!1,r.onLoad!==void 0&&r.onLoad())},this.itemError=function(l){r.onError!==void 0&&r.onError(l)},this.resolveURL=function(l){return a?a(l):l},this.setURLModifier=function(l){return a=l,this},this.addHandler=function(l,u){return c.push(l,u),this},this.removeHandler=function(l){let u=c.indexOf(l);return u!==-1&&c.splice(u,2),this},this.getHandler=function(l){for(let u=0,h=c.length;u<h;u+=2){let d=c[u],p=c[u+1];if(d.global&&(d.lastIndex=0),d.test(l))return p}return null}}},j3=new cu,Da=class{constructor(e){this.manager=e!==void 0?e:j3,this.crossOrigin="anonymous",this.withCredentials=!1,this.path="",this.resourcePath="",this.requestHeader={}}load(){}loadAsync(e,t){let A=this;return new Promise(function(r,i){A.load(e,r,t,i)})}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}},xi={},Ia=class extends Da{constructor(e){super(e)}load(e,t,A,r){e===void 0&&(e=""),this.path!==void 0&&(e=this.path+e),e=this.manager.resolveURL(e);let i=vw.get(e);if(i!==void 0)return this.manager.itemStart(e),setTimeout(()=>{t&&t(i),this.manager.itemEnd(e)},0),i;if(xi[e]!==void 0){xi[e].push({onLoad:t,onProgress:A,onError:r});return}xi[e]=[],xi[e].push({onLoad:t,onProgress:A,onError:r});let s=new Request(e,{headers:new Headers(this.requestHeader),credentials:this.withCredentials?"include":"same-origin"}),o=this.mimeType,a=this.responseType;fetch(s).then(c=>{if(c.status===200||c.status===0){if(c.status===0&&console.warn("THREE.FileLoader: HTTP Status 0 received."),typeof ReadableStream>"u"||c.body===void 0||c.body.getReader===void 0)return c;let l=xi[e],u=c.body.getReader(),h=c.headers.get("Content-Length"),d=h?parseInt(h):0,p=d!==0,f=0,m=new ReadableStream({start(y){g();function g(){u.read().then(({done:b,value:x})=>{if(b)y.close();else{f+=x.byteLength;let w=new ProgressEvent("progress",{lengthComputable:p,loaded:f,total:d});for(let T=0,M=l.length;T<M;T++){let v=l[T];v.onProgress&&v.onProgress(w)}y.enqueue(x),g()}})}}});return new Response(m)}else throw Error(`fetch for "${c.url}" responded with ${c.status}: ${c.statusText}`)}).then(c=>{switch(a){case"arraybuffer":return c.arrayBuffer();case"blob":return c.blob();case"document":return c.text().then(l=>new DOMParser().parseFromString(l,o));case"json":return c.json();default:if(o===void 0)return c.text();{let u=/charset="?([^;"\s]*)"?/i.exec(o),h=u&&u[1]?u[1].toLowerCase():void 0,d=new TextDecoder(h);return c.arrayBuffer().then(p=>d.decode(p))}}}).then(c=>{vw.add(e,c);let l=xi[e];delete xi[e];for(let u=0,h=l.length;u<h;u++){let d=l[u];d.onLoad&&d.onLoad(c)}}).catch(c=>{let l=xi[e];if(l===void 0)throw this.manager.itemError(e),c;delete xi[e];for(let u=0,h=l.length;u<h;u++){let d=l[u];d.onError&&d.onError(c)}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}};var La=class extends ht{constructor(e,t=1){super(),this.isLight=!0,this.type="Light",this.color=new _e(e),this.intensity=t}dispose(){}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,this.groundColor!==void 0&&(t.object.groundColor=this.groundColor.getHex()),this.distance!==void 0&&(t.object.distance=this.distance),this.angle!==void 0&&(t.object.angle=this.angle),this.decay!==void 0&&(t.object.decay=this.decay),this.penumbra!==void 0&&(t.object.penumbra=this.penumbra),this.shadow!==void 0&&(t.object.shadow=this.shadow.toJSON()),t}},fo=class extends La{constructor(e,t,A){super(e,A),this.isHemisphereLight=!0,this.type="HemisphereLight",this.position.copy(ht.DefaultUp),this.updateMatrix(),this.groundColor=new _e(t)}copy(e,t){return super.copy(e,t),this.groundColor.copy(e.groundColor),this}},xw=new he,bw=new S,ww=new S,uu=class{constructor(e){this.camera=e,this.bias=0,this.normalBias=0,this.radius=1,this.blurSamples=8,this.mapSize=new G(512,512),this.map=null,this.mapPass=null,this.matrix=new he,this.autoUpdate=!0,this.needsUpdate=!1,this._frustum=new nu,this._frameExtents=new G(1,1),this._viewportCount=1,this._viewports=[new Ve(0,0,1,1)]}getViewportCount(){return this._viewportCount}getFrustum(){return this._frustum}updateMatrices(e){let t=this.camera,A=this.matrix;bw.setFromMatrixPosition(e.matrixWorld),t.position.copy(bw),ww.setFromMatrixPosition(e.target.matrixWorld),t.lookAt(ww),t.updateMatrixWorld(),xw.multiplyMatrices(t.projectionMatrix,t.matrixWorldInverse),this._frustum.setFromProjectionMatrix(xw),A.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),A.multiply(t.projectionMatrix),A.multiply(t.matrixWorldInverse)}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.bias=e.bias,this.radius=e.radius,this.mapSize.copy(e.mapSize),this}clone(){return new this.constructor().copy(this)}toJSON(){let e={};return this.bias!==0&&(e.bias=this.bias),this.normalBias!==0&&(e.normalBias=this.normalBias),this.radius!==1&&(e.radius=this.radius),(this.mapSize.x!==512||this.mapSize.y!==512)&&(e.mapSize=this.mapSize.toArray()),e.camera=this.camera.toJSON(!1).object,delete e.camera.matrix,e}},Sy=class extends uu{constructor(){super(new iA(50,1,.5,500)),this.isSpotLightShadow=!0,this.focus=1}updateMatrices(e){let t=this.camera,A=eu*2*e.angle*this.focus,r=this.mapSize.width/this.mapSize.height,i=e.distance||t.far;(A!==t.fov||r!==t.aspect||i!==t.far)&&(t.fov=A,t.aspect=r,t.far=i,t.updateProjectionMatrix()),super.updateMatrices(e)}copy(e){return super.copy(e),this.focus=e.focus,this}},Hd=class extends La{constructor(e,t,A=0,r=Math.PI/3,i=0,s=1){super(e,t),this.isSpotLight=!0,this.type="SpotLight",this.position.copy(ht.DefaultUp),this.updateMatrix(),this.target=new ht,this.distance=A,this.angle=r,this.penumbra=i,this.decay=s,this.shadow=new Sy}get power(){return this.intensity*Math.PI}set power(e){this.intensity=e/Math.PI}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.shadow=e.shadow.clone(),this}},Sw=new he,jc=new S,zg=new S,Ty=class extends uu{constructor(){super(new iA(90,1,.5,500)),this.isPointLightShadow=!0,this._frameExtents=new G(4,2),this._viewportCount=6,this._viewports=[new Ve(2,1,1,1),new Ve(0,1,1,1),new Ve(3,1,1,1),new Ve(1,1,1,1),new Ve(3,0,1,1),new Ve(1,0,1,1)],this._cubeDirections=[new S(1,0,0),new S(-1,0,0),new S(0,0,1),new S(0,0,-1),new S(0,1,0),new S(0,-1,0)],this._cubeUps=[new S(0,1,0),new S(0,1,0),new S(0,1,0),new S(0,1,0),new S(0,0,1),new S(0,0,-1)]}updateMatrices(e,t=0){let A=this.camera,r=this.matrix,i=e.distance||A.far;i!==A.far&&(A.far=i,A.updateProjectionMatrix()),jc.setFromMatrixPosition(e.matrixWorld),A.position.copy(jc),zg.copy(A.position),zg.add(this._cubeDirections[t]),A.up.copy(this._cubeUps[t]),A.lookAt(zg),A.updateMatrixWorld(),r.makeTranslation(-jc.x,-jc.y,-jc.z),Sw.multiplyMatrices(A.projectionMatrix,A.matrixWorldInverse),this._frustum.setFromProjectionMatrix(Sw)}},Wd=class extends La{constructor(e,t,A=0,r=1){super(e,t),this.isPointLight=!0,this.type="PointLight",this.distance=A,this.decay=r,this.shadow=new Ty}get power(){return this.intensity*4*Math.PI}set power(e){this.intensity=e/(4*Math.PI)}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}},My=class extends uu{constructor(){super(new ya(-5,5,5,-5,.5,500)),this.isDirectionalLightShadow=!0}},jd=class extends La{constructor(e,t){super(e,t),this.isDirectionalLight=!0,this.type="DirectionalLight",this.position.copy(ht.DefaultUp),this.updateMatrix(),this.target=new ht,this.shadow=new My}dispose(){this.shadow.dispose()}copy(e){return super.copy(e),this.target=e.target.clone(),this.shadow=e.shadow.clone(),this}};var Ey=class extends Ie{constructor(){super(),this.isInstancedBufferGeometry=!0,this.type="InstancedBufferGeometry",this.instanceCount=1/0}copy(e){return super.copy(e),this.instanceCount=e.instanceCount,this}clone(){return new this.constructor().copy(this)}toJSON(){let e=super.toJSON(this);return e.instanceCount=this.instanceCount,e.isInstancedBufferGeometry=!0,e}},_a=class extends Da{constructor(e){super(e)}load(e,t,A,r){let i=this,s=new Ia(i.manager);s.setPath(i.path),s.setRequestHeader(i.requestHeader),s.setWithCredentials(i.withCredentials),s.load(e,function(o){try{t(i.parse(JSON.parse(o)))}catch(a){r?r(a):console.error(a),i.manager.itemError(e)}},A,r)}parse(e){let t={},A={};function r(d,p){if(t[p]!==void 0)return t[p];let m=d.interleavedBuffers[p],y=i(d,m.buffer),g=Ad(m.type,y),b=new Ud(g,m.stride);return b.uuid=m.uuid,t[p]=b,b}function i(d,p){if(A[p]!==void 0)return A[p];let m=d.arrayBuffers[p],y=new Uint32Array(m).buffer;return A[p]=y,y}let s=e.isInstancedBufferGeometry?new Ey:new Ie,o=e.data.index;if(o!==void 0){let d=Ad(o.type,o.array);s.setIndex(new Ge(d,1))}let a=e.data.attributes;for(let d in a){let p=a[d],f;if(p.isInterleavedBufferAttribute){let m=r(e.data,p.data);f=new io(m,p.itemSize,p.offset,p.normalized)}else{let m=Ad(p.type,p.array),y=p.isInstancedBufferAttribute?Vd:Ge;f=new y(m,p.itemSize,p.normalized)}p.name!==void 0&&(f.name=p.name),p.usage!==void 0&&f.setUsage(p.usage),p.updateRange!==void 0&&(f.updateRange.offset=p.updateRange.offset,f.updateRange.count=p.updateRange.count),s.setAttribute(d,f)}let c=e.data.morphAttributes;if(c)for(let d in c){let p=c[d],f=[];for(let m=0,y=p.length;m<y;m++){let g=p[m],b;if(g.isInterleavedBufferAttribute){let x=r(e.data,g.data);b=new io(x,g.itemSize,g.offset,g.normalized)}else{let x=Ad(g.type,g.array);b=new Ge(x,g.itemSize,g.normalized)}g.name!==void 0&&(b.name=g.name),f.push(b)}s.morphAttributes[d]=f}e.data.morphTargetsRelative&&(s.morphTargetsRelative=!0);let u=e.data.groups||e.data.drawcalls||e.data.offsets;if(u!==void 0)for(let d=0,p=u.length;d!==p;++d){let f=u[d];s.addGroup(f.start,f.count,f.materialIndex)}let h=e.data.boundingSphere;if(h!==void 0){let d=new S;h.center!==void 0&&d.fromArray(h.center),s.boundingSphere=new DA(d,h.radius)}return e.name&&(s.name=e.name),e.userData&&(s.userData=e.userData),s}};var Yd=class{constructor(e=!0){this.autoStart=e,this.startTime=0,this.oldTime=0,this.elapsedTime=0,this.running=!1}start(){this.startTime=Tw(),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=Tw();e=(t-this.oldTime)/1e3,this.oldTime=t,this.elapsedTime+=e}return e}};function Tw(){return(typeof performance>"u"?Date:performance).now()}var By="\\[\\]\\.:\\/",Y3=new RegExp("["+By+"]","g"),Ny="[^"+By+"]",q3="[^"+By.replace("\\.","")+"]",X3=/((?:WC+[\/:])*)/.source.replace("WC",Ny),Q3=/(WCOD+)?/.source.replace("WCOD",q3),Z3=/(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC",Ny),K3=/\.(WC+)(?:\[(.+)\])?/.source.replace("WC",Ny),J3=new RegExp("^"+X3+Q3+Z3+K3+"$"),$3=["material","materials","bones"],Cy=class{constructor(e,t,A){let r=A||Et.parseTrackName(t);this._targetGroup=e,this._bindings=e.subscribe_(t,r)}getValue(e,t){this.bind();let A=this._targetGroup.nCachedObjects_,r=this._bindings[A];r!==void 0&&r.getValue(e,t)}setValue(e,t){let A=this._bindings;for(let r=this._targetGroup.nCachedObjects_,i=A.length;r!==i;++r)A[r].setValue(e,t)}bind(){let e=this._bindings;for(let t=this._targetGroup.nCachedObjects_,A=e.length;t!==A;++t)e[t].bind()}unbind(){let e=this._bindings;for(let t=this._targetGroup.nCachedObjects_,A=e.length;t!==A;++t)e[t].unbind()}},Et=class{constructor(e,t,A){this.path=t,this.parsedPath=A||Et.parseTrackName(t),this.node=Et.findNode(e,this.parsedPath.nodeName)||e,this.rootNode=e,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}static create(e,t,A){return e&&e.isAnimationObjectGroup?new Et.Composite(e,t,A):new Et(e,t,A)}static sanitizeNodeName(e){return e.replace(/\s/g,"_").replace(Y3,"")}static parseTrackName(e){let t=J3.exec(e);if(t===null)throw new Error("PropertyBinding: Cannot parse trackName: "+e);let A={nodeName:t[2],objectName:t[3],objectIndex:t[4],propertyName:t[5],propertyIndex:t[6]},r=A.nodeName&&A.nodeName.lastIndexOf(".");if(r!==void 0&&r!==-1){let i=A.nodeName.substring(r+1);$3.indexOf(i)!==-1&&(A.nodeName=A.nodeName.substring(0,r),A.objectName=i)}if(A.propertyName===null||A.propertyName.length===0)throw new Error("PropertyBinding: can not parse propertyName from trackName: "+e);return A}static findNode(e,t){if(t===void 0||t===""||t==="."||t===-1||t===e.name||t===e.uuid)return e;if(e.skeleton){let A=e.skeleton.getBoneByName(t);if(A!==void 0)return A}if(e.children){let A=function(i){for(let s=0;s<i.length;s++){let o=i[s];if(o.name===t||o.uuid===t)return o;let a=A(o.children);if(a)return a}return null},r=A(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 A=this.resolvedProperty;for(let r=0,i=A.length;r!==i;++r)e[t++]=A[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 A=this.resolvedProperty;for(let r=0,i=A.length;r!==i;++r)A[r]=e[t++]}_setValue_array_setNeedsUpdate(e,t){let A=this.resolvedProperty;for(let r=0,i=A.length;r!==i;++r)A[r]=e[t++];this.targetObject.needsUpdate=!0}_setValue_array_setMatrixWorldNeedsUpdate(e,t){let A=this.resolvedProperty;for(let r=0,i=A.length;r!==i;++r)A[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,A=t.objectName,r=t.propertyName,i=t.propertyIndex;if(e||(e=Et.findNode(this.rootNode,t.nodeName)||this.rootNode,this.node=e),this.getValue=this._getValue_unavailable,this.setValue=this._setValue_unavailable,!e){console.error("THREE.PropertyBinding: Trying to update node for track: "+this.path+" but it wasn't found.");return}if(A){let c=t.objectIndex;switch(A){case"materials":if(!e.material){console.error("THREE.PropertyBinding: Can not bind to material as node does not have a material.",this);return}if(!e.material.materials){console.error("THREE.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){console.error("THREE.PropertyBinding: Can not bind to bones as node does not have a skeleton.",this);return}e=e.skeleton.bones;for(let l=0;l<e.length;l++)if(e[l].name===c){c=l;break}break;default:if(e[A]===void 0){console.error("THREE.PropertyBinding: Can not bind to objectName of node undefined.",this);return}e=e[A]}if(c!==void 0){if(e[c]===void 0){console.error("THREE.PropertyBinding: Trying to bind to objectIndex of objectName, but is undefined.",this,e);return}e=e[c]}}let s=e[r];if(s===void 0){let c=t.nodeName;console.error("THREE.PropertyBinding: Trying to update property for track: "+c+"."+r+" but it wasn't found.",e);return}let o=this.Versioning.None;this.targetObject=e,e.needsUpdate!==void 0?o=this.Versioning.NeedsUpdate:e.matrixWorldNeedsUpdate!==void 0&&(o=this.Versioning.MatrixWorldNeedsUpdate);let a=this.BindingType.Direct;if(i!==void 0){if(r==="morphTargetInfluences"){if(!e.geometry){console.error("THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.",this);return}if(!e.geometry.morphAttributes){console.error("THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.morphAttributes.",this);return}e.morphTargetDictionary[i]!==void 0&&(i=e.morphTargetDictionary[i])}a=this.BindingType.ArrayElement,this.resolvedProperty=s,this.propertyIndex=i}else s.fromArray!==void 0&&s.toArray!==void 0?(a=this.BindingType.HasFromToArray,this.resolvedProperty=s):Array.isArray(s)?(a=this.BindingType.EntireArray,this.resolvedProperty=s):this.propertyName=r;this.getValue=this.GetterByBindingType[a],this.setValue=this.SetterByBindingTypeAndVersioning[a][o]}unbind(){this.node=null,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}};Et.Composite=Cy;Et.prototype.BindingType={Direct:0,EntireArray:1,ArrayElement:2,HasFromToArray:3};Et.prototype.Versioning={None:0,NeedsUpdate:1,MatrixWorldNeedsUpdate:2};Et.prototype.GetterByBindingType=[Et.prototype._getValue_direct,Et.prototype._getValue_array,Et.prototype._getValue_arrayElement,Et.prototype._getValue_toArray];Et.prototype.SetterByBindingTypeAndVersioning=[[Et.prototype._setValue_direct,Et.prototype._setValue_direct_setNeedsUpdate,Et.prototype._setValue_direct_setMatrixWorldNeedsUpdate],[Et.prototype._setValue_array,Et.prototype._setValue_array_setNeedsUpdate,Et.prototype._setValue_array_setMatrixWorldNeedsUpdate],[Et.prototype._setValue_arrayElement,Et.prototype._setValue_arrayElement_setNeedsUpdate,Et.prototype._setValue_arrayElement_setMatrixWorldNeedsUpdate],[Et.prototype._setValue_fromArray,Et.prototype._setValue_fromArray_setNeedsUpdate,Et.prototype._setValue_fromArray_setMatrixWorldNeedsUpdate]];var we=class{constructor(e){typeof e=="string"&&(console.warn("THREE.Uniform: Type parameter is no longer needed."),e=arguments[1]),this.value=e}clone(){return new we(this.value.clone===void 0?this.value:this.value.clone())}};var Oa=class{constructor(e,t,A=0,r=1/0){this.ray=new dr(e,t),this.near=A,this.far=r,this.camera=null,this.layers=new tu,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.near+t.far)/(t.near-t.far)).unproject(t),this.ray.direction.set(0,0,-1).transformDirection(t.matrixWorld),this.camera=t):console.error("THREE.Raycaster: Unsupported camera type: "+t.type)}intersectObject(e,t=!0,A=[]){return Py(e,this,A,t),A.sort(Mw),A}intersectObjects(e,t=!0,A=[]){for(let r=0,i=e.length;r<i;r++)Py(e[r],this,A,t);return A.sort(Mw),A}};function Mw(n,e){return n.distance-e.distance}function Py(n,e,t,A){if(n.layers.test(e.layers)&&n.raycast(e,t),A===!0){let r=n.children;for(let i=0,s=r.length;i<s;i++)Py(r[i],e,t,!0)}}var hu=class{constructor(e=1,t=0,A=0){return this.radius=e,this.phi=t,this.theta=A,this}set(e,t,A){return this.radius=e,this.phi=t,this.theta=A,this}copy(e){return this.radius=e.radius,this.phi=e.phi,this.theta=e.theta,this}makeSafe(){return this.phi=Math.max(1e-6,Math.min(Math.PI-1e-6,this.phi)),this}setFromVector3(e){return this.setFromCartesianCoords(e.x,e.y,e.z)}setFromCartesianCoords(e,t,A){return this.radius=Math.sqrt(e*e+t*t+A*A),this.radius===0?(this.theta=0,this.phi=0):(this.theta=Math.atan2(e,A),this.phi=Math.acos(gA(t/this.radius,-1,1))),this}clone(){return new this.constructor().copy(this)}};var Ew=new G,qd=class{constructor(e=new G(1/0,1/0),t=new G(-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,A=e.length;t<A;t++)this.expandByPoint(e[t]);return this}setFromCenterAndSize(e,t){let A=Ew.copy(t).multiplyScalar(.5);return this.min.copy(e).sub(A),this.max.copy(e).add(A),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 Ew.copy(e).clamp(this.min,this.max).sub(e).length()}intersect(e){return this.min.max(e.min),this.max.min(e.max),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)}},Cw=new S,Cd=new S,vA=class{constructor(e=new S,t=new S){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){Cw.subVectors(e,this.start),Cd.subVectors(this.end,this.start);let A=Cd.dot(Cd),i=Cd.dot(Cw)/A;return t&&(i=gA(i,0,1)),i}closestPointToPoint(e,t,A){let r=this.closestPointToPointParameter(e,t);return this.delta(A).multiplyScalar(r).add(this.start)}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)}},Pw=new S,Xd=class extends ht{constructor(e,t){super(),this.light=e,this.light.updateMatrixWorld(),this.matrix=e.matrixWorld,this.matrixAutoUpdate=!1,this.color=t;let A=new Ie,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,o=1,a=32;s<a;s++,o++){let c=s/a*Math.PI*2,l=o/a*Math.PI*2;r.push(Math.cos(c),Math.sin(c),1,Math.cos(l),Math.sin(l),1)}A.setAttribute("position",new Se(r,3));let i=new jn({fog:!1,toneMapped:!1});this.cone=new rs(A,i),this.add(this.cone),this.update()}dispose(){this.cone.geometry.dispose(),this.cone.material.dispose()}update(){this.light.updateMatrixWorld();let e=this.light.distance?this.light.distance:1e3,t=e*Math.tan(this.light.angle);this.cone.scale.set(t,t,e),Pw.setFromMatrixPosition(this.light.target.matrixWorld),this.cone.lookAt(Pw),this.color!==void 0?this.cone.material.color.set(this.color):this.cone.material.color.copy(this.light.color)}};var Qd=class extends sA{constructor(e,t,A){let r=new co(t,4,2),i=new Au({wireframe:!0,fog:!1,toneMapped:!1});super(r,i),this.light=e,this.light.updateMatrixWorld(),this.color=A,this.type="PointLightHelper",this.matrix=this.light.matrixWorld,this.matrixAutoUpdate=!1,this.update()}dispose(){this.geometry.dispose(),this.material.dispose()}update(){this.color!==void 0?this.material.color.set(this.color):this.material.color.copy(this.light.color)}};var Dw=new S,Pd=new S,Iw=new S,Zd=class extends ht{constructor(e,t,A){super(),this.light=e,this.light.updateMatrixWorld(),this.matrix=e.matrixWorld,this.matrixAutoUpdate=!1,this.color=A,t===void 0&&(t=1);let r=new Ie;r.setAttribute("position",new Se([-t,t,0,t,t,0,t,-t,0,-t,-t,0,-t,t,0],3));let i=new jn({fog:!1,toneMapped:!1});this.lightPlane=new so(r,i),this.add(this.lightPlane),r=new Ie,r.setAttribute("position",new Se([0,0,0,0,0,1],3)),this.targetLine=new so(r,i),this.add(this.targetLine),this.update()}dispose(){this.lightPlane.geometry.dispose(),this.lightPlane.material.dispose(),this.targetLine.geometry.dispose(),this.targetLine.material.dispose()}update(){Dw.setFromMatrixPosition(this.light.matrixWorld),Pd.setFromMatrixPosition(this.light.target.matrixWorld),Iw.subVectors(Pd,Dw),this.lightPlane.lookAt(Pd),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(Pd),this.targetLine.scale.z=Iw.length()}},Dd=new S,Qt=new fr,qn=class extends rs{constructor(e){let t=new Ie,A=new jn({color:16777215,vertexColors:!0,toneMapped:!1}),r=[],i=[],s={};o("n1","n2"),o("n2","n4"),o("n4","n3"),o("n3","n1"),o("f1","f2"),o("f2","f4"),o("f4","f3"),o("f3","f1"),o("n1","f1"),o("n2","f2"),o("n3","f3"),o("n4","f4"),o("p","n1"),o("p","n2"),o("p","n3"),o("p","n4"),o("u1","u2"),o("u2","u3"),o("u3","u1"),o("c","t"),o("p","c"),o("cn1","cn2"),o("cn3","cn4"),o("cf1","cf2"),o("cf3","cf4");function o(p,f){a(p),a(f)}function a(p){r.push(0,0,0),i.push(0,0,0),s[p]===void 0&&(s[p]=[]),s[p].push(r.length/3-1)}t.setAttribute("position",new Se(r,3)),t.setAttribute("color",new Se(i,3)),super(t,A),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 c=new _e(16755200),l=new _e(16711680),u=new _e(43775),h=new _e(16777215),d=new _e(3355443);this.setColors(c,l,u,h,d)}setColors(e,t,A,r,i){let o=this.geometry.getAttribute("color");o.setXYZ(0,e.r,e.g,e.b),o.setXYZ(1,e.r,e.g,e.b),o.setXYZ(2,e.r,e.g,e.b),o.setXYZ(3,e.r,e.g,e.b),o.setXYZ(4,e.r,e.g,e.b),o.setXYZ(5,e.r,e.g,e.b),o.setXYZ(6,e.r,e.g,e.b),o.setXYZ(7,e.r,e.g,e.b),o.setXYZ(8,e.r,e.g,e.b),o.setXYZ(9,e.r,e.g,e.b),o.setXYZ(10,e.r,e.g,e.b),o.setXYZ(11,e.r,e.g,e.b),o.setXYZ(12,e.r,e.g,e.b),o.setXYZ(13,e.r,e.g,e.b),o.setXYZ(14,e.r,e.g,e.b),o.setXYZ(15,e.r,e.g,e.b),o.setXYZ(16,e.r,e.g,e.b),o.setXYZ(17,e.r,e.g,e.b),o.setXYZ(18,e.r,e.g,e.b),o.setXYZ(19,e.r,e.g,e.b),o.setXYZ(20,e.r,e.g,e.b),o.setXYZ(21,e.r,e.g,e.b),o.setXYZ(22,e.r,e.g,e.b),o.setXYZ(23,e.r,e.g,e.b),o.setXYZ(24,t.r,t.g,t.b),o.setXYZ(25,t.r,t.g,t.b),o.setXYZ(26,t.r,t.g,t.b),o.setXYZ(27,t.r,t.g,t.b),o.setXYZ(28,t.r,t.g,t.b),o.setXYZ(29,t.r,t.g,t.b),o.setXYZ(30,t.r,t.g,t.b),o.setXYZ(31,t.r,t.g,t.b),o.setXYZ(32,A.r,A.g,A.b),o.setXYZ(33,A.r,A.g,A.b),o.setXYZ(34,A.r,A.g,A.b),o.setXYZ(35,A.r,A.g,A.b),o.setXYZ(36,A.r,A.g,A.b),o.setXYZ(37,A.r,A.g,A.b),o.setXYZ(38,r.r,r.g,r.b),o.setXYZ(39,r.r,r.g,r.b),o.setXYZ(40,i.r,i.g,i.b),o.setXYZ(41,i.r,i.g,i.b),o.setXYZ(42,i.r,i.g,i.b),o.setXYZ(43,i.r,i.g,i.b),o.setXYZ(44,i.r,i.g,i.b),o.setXYZ(45,i.r,i.g,i.b),o.setXYZ(46,i.r,i.g,i.b),o.setXYZ(47,i.r,i.g,i.b),o.setXYZ(48,i.r,i.g,i.b),o.setXYZ(49,i.r,i.g,i.b),o.needsUpdate=!0}update(){let e=this.geometry,t=this.pointMap,A=1,r=1;Qt.projectionMatrixInverse.copy(this.camera.projectionMatrixInverse),rA("c",t,e,Qt,0,0,-1),rA("t",t,e,Qt,0,0,1),rA("n1",t,e,Qt,-A,-r,-1),rA("n2",t,e,Qt,A,-r,-1),rA("n3",t,e,Qt,-A,r,-1),rA("n4",t,e,Qt,A,r,-1),rA("f1",t,e,Qt,-A,-r,1),rA("f2",t,e,Qt,A,-r,1),rA("f3",t,e,Qt,-A,r,1),rA("f4",t,e,Qt,A,r,1),rA("u1",t,e,Qt,A*.7,r*1.1,-1),rA("u2",t,e,Qt,-A*.7,r*1.1,-1),rA("u3",t,e,Qt,0,r*2,-1),rA("cf1",t,e,Qt,-A,0,1),rA("cf2",t,e,Qt,A,0,1),rA("cf3",t,e,Qt,0,-r,1),rA("cf4",t,e,Qt,0,r,1),rA("cn1",t,e,Qt,-A,0,-1),rA("cn2",t,e,Qt,A,0,-1),rA("cn3",t,e,Qt,0,-r,-1),rA("cn4",t,e,Qt,0,r,-1),e.getAttribute("position").needsUpdate=!0}dispose(){this.geometry.dispose(),this.material.dispose()}};function rA(n,e,t,A,r,i,s){Dd.set(r,i,s).unproject(A);let o=e[n];if(o!==void 0){let a=t.getAttribute("position");for(let c=0,l=o.length;c<l;c++)a.setXYZ(o[c],Dd.x,Dd.y,Dd.z)}}var po=class extends rs{constructor(e,t=16776960){let A=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],i=new Ie;i.setIndex(new Ge(A,1)),i.setAttribute("position",new Se(r,3)),super(i,new jn({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))}};var Kd=class extends rs{constructor(e=1){let t=[0,0,0,e,0,0,0,0,0,0,e,0,0,0,0,0,0,e],A=[1,0,0,1,.6,0,0,1,0,.6,1,0,0,0,1,0,.6,1],r=new Ie;r.setAttribute("position",new Se(t,3)),r.setAttribute("color",new Se(A,3));let i=new jn({vertexColors:!0,toneMapped:!1});super(r,i),this.type="AxesHelper"}setColors(e,t,A){let r=new _e,i=this.geometry.attributes.color.array;return r.set(e),r.toArray(i,0),r.toArray(i,3),r.set(t),r.toArray(i,6),r.toArray(i,9),r.set(A),r.toArray(i,12),r.toArray(i,15),this.geometry.attributes.color.needsUpdate=!0,this}dispose(){this.geometry.dispose(),this.material.dispose()}};var{floatView:Pj,uint32View:Dj,baseTable:Ij,shiftTable:Lj,mantissaTable:_j,exponentTable:Oj,offsetTable:Rj}=eB();function eB(){let n=new ArrayBuffer(4),e=new Float32Array(n),t=new Uint32Array(n),A=new Uint32Array(512),r=new Uint32Array(512);for(let a=0;a<256;++a){let c=a-127;c<-27?(A[a]=0,A[a|256]=32768,r[a]=24,r[a|256]=24):c<-14?(A[a]=1024>>-c-14,A[a|256]=1024>>-c-14|32768,r[a]=-c-1,r[a|256]=-c-1):c<=15?(A[a]=c+15<<10,A[a|256]=c+15<<10|32768,r[a]=13,r[a|256]=13):c<128?(A[a]=31744,A[a|256]=64512,r[a]=24,r[a|256]=24):(A[a]=31744,A[a|256]=64512,r[a]=13,r[a|256]=13)}let i=new Uint32Array(2048),s=new Uint32Array(64),o=new Uint32Array(64);for(let a=1;a<1024;++a){let c=a<<13,l=0;for(;(c&8388608)===0;)c<<=1,l-=8388608;c&=-8388609,l+=947912704,i[a]=c|l}for(let a=1024;a<2048;++a)i[a]=939524096+(a-1024<<13);for(let a=1;a<31;++a)s[a]=a<<23;s[31]=1199570944,s[32]=2147483648;for(let a=33;a<63;++a)s[a]=2147483648+(a-32<<23);s[63]=3347054592;for(let a=1;a<64;++a)a!==32&&(o[a]=1024);return{floatView:e,uint32View:t,baseTable:A,shiftTable:r,mantissaTable:i,exponentTable:s,offsetTable:o}}var Jd=class extends ft{constructor(e,t,A){console.error('THREE.WebGLMultisampleRenderTarget has been removed. Use a normal render target and set the "samples" property to greater 0 to enable multisampling.'),super(e,t,A),this.samples=4}};typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("register",{detail:{revision:mo}}));typeof window<"u"&&(window.__THREE__?console.warn("WARNING: Multiple instances of Three.js being imported."):window.__THREE__=mo);var Fa=".",du=Symbol("target"),Fy=Symbol("unsubscribe");function fu(n){return n instanceof Date||n instanceof Set||n instanceof Map||n instanceof WeakSet||n instanceof WeakMap||ArrayBuffer.isView(n)}function qw(n){return(typeof n=="object"?n===null:typeof n!="function")||n instanceof RegExp}var Rn=Array.isArray;function go(n){return typeof n=="symbol"}var tB={after:(n,e)=>Rn(n)?n.slice(e.length):e===""?n:n.slice(e.length+1),concat:(n,e)=>Rn(n)?(n=[...n],e&&n.push(e),n):e&&e.toString!==void 0?(n!==""&&(n+=Fa),go(e)?n+e.toString():n+e):n,initial:n=>{if(Rn(n))return n.slice(0,-1);if(n==="")return n;let e=n.lastIndexOf(Fa);return e===-1?"":n.slice(0,e)},last:n=>{if(Rn(n))return n[n.length-1]||"";if(n==="")return n;let e=n.lastIndexOf(Fa);return e===-1?n:n.slice(e+1)},walk:(n,e)=>{if(Rn(n))for(let t of n)e(t);else if(n!==""){let t=0,A=n.indexOf(Fa);if(A===-1)e(n);else for(;t<n.length;)A===-1&&(A=n.length),e(n.slice(t,A)),t=A+1,A=n.indexOf(Fa,t)}},get(n,e){return this.walk(e,t=>{n&&(n=n[t])}),n}},on=tB;function Gy(n){return typeof n=="object"&&typeof n.next=="function"}function ky(n,e,t,A,r){let i=n.next;if(e.name==="entries")n.next=function(){let s=i.call(this);return s.done===!1&&(s.value[0]=r(s.value[0],e,s.value[0],A),s.value[1]=r(s.value[1],e,s.value[0],A)),s};else if(e.name==="values"){let s=t[du].keys();n.next=function(){let o=i.call(this);return o.done===!1&&(o.value=r(o.value,e,s.next().value,A)),o}}else n.next=function(){let s=i.call(this);return s.done===!1&&(s.value=r(s.value,e,s.value,A)),s};return n}function Af(n,e,t){return n.isUnsubscribed||e.ignoreSymbols&&go(t)||e.ignoreUnderscores&&t.charAt(0)==="_"||"ignoreKeys"in e&&e.ignoreKeys.includes(t)}var pu=class{constructor(e){this._equals=e,this._proxyCache=new WeakMap,this._pathCache=new WeakMap,this.isUnsubscribed=!1}_getDescriptorCache(){return this._descriptorCache===void 0&&(this._descriptorCache=new WeakMap),this._descriptorCache}_getProperties(e){let t=this._getDescriptorCache(),A=t.get(e);return A===void 0&&(A={},t.set(e,A)),A}_getOwnPropertyDescriptor(e,t){if(this.isUnsubscribed)return Reflect.getOwnPropertyDescriptor(e,t);let A=this._getProperties(e),r=A[t];return r===void 0&&(r=Reflect.getOwnPropertyDescriptor(e,t),A[t]=r),r}getProxy(e,t,A,r){if(this.isUnsubscribed)return e;let i=e[r],s=i||e;this._pathCache.set(s,t);let o=this._proxyCache.get(s);return o===void 0&&(o=i===void 0?new Proxy(e,A):e,this._proxyCache.set(s,o)),o}getPath(e){return this.isUnsubscribed?void 0:this._pathCache.get(e)}isDetached(e,t){return!Object.is(e,on.get(t,this.getPath(e)))}defineProperty(e,t,A){return Reflect.defineProperty(e,t,A)?(this.isUnsubscribed||(this._getProperties(e)[t]=A),!0):!1}setProperty(e,t,A,r,i){if(!this._equals(i,A)||!(t in e)){let s=this._getOwnPropertyDescriptor(e,t);return s!==void 0&&"set"in s?Reflect.set(e,t,A,r):Reflect.set(e,t,A)}return!0}deleteProperty(e,t,A){if(Reflect.deleteProperty(e,t)){if(!this.isUnsubscribed){let r=this._getDescriptorCache().get(e);r&&(delete r[t],this._pathCache.delete(A))}return!0}return!1}isSameDescriptor(e,t,A){let r=this._getOwnPropertyDescriptor(t,A);return e!==void 0&&r!==void 0&&Object.is(e.value,r.value)&&(e.writable||!1)===(r.writable||!1)&&(e.enumerable||!1)===(r.enumerable||!1)&&(e.configurable||!1)===(r.configurable||!1)&&e.get===r.get&&e.set===r.set}isGetInvariant(e,t){let A=this._getOwnPropertyDescriptor(e,t);return A!==void 0&&A.configurable!==!0&&A.writable!==!0}unsubscribe(){this._descriptorCache=null,this._pathCache=null,this._proxyCache=null,this.isUnsubscribed=!0}};function Ga(n){return toString.call(n)==="[object Object]"}function ka(){return!0}function ss(n,e){return n.length!==e.length||n.some((t,A)=>e[A]!==t)}var nf=new Set(["hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]);var AB=new Set(["concat","includes","indexOf","join","keys","lastIndexOf"]),Uy={push:ka,pop:ka,shift:ka,unshift:ka,copyWithin:ss,reverse:ss,sort:ss,splice:ss,flat:ss,fill:ss},Xw=new Set([...nf,...AB,...Object.keys(Uy)]);function Ua(n,e){if(n.size!==e.size)return!0;for(let t of n)if(!e.has(t))return!0;return!1}var Vy=["keys","values","entries"],zy=new Set(["has","toString"]),Hy={add:Ua,clear:Ua,delete:Ua,forEach:Ua},Qw=new Set([...zy,...Object.keys(Hy),...Vy]);function Va(n,e){if(n.size!==e.size)return!0;let t;for(let[A,r]of n)if(t=e.get(A),t!==r||t===void 0&&!e.has(A))return!0;return!1}var nB=new Set([...zy,"get"]),Wy={set:Va,clear:Va,delete:Va,forEach:Va},Zw=new Set([...nB,...Object.keys(Wy),...Vy]);var LA=class{constructor(e,t,A,r){this._path=t,this._isChanged=!1,this._clonedCache=new Set,this._hasOnValidate=r,this._changes=r?[]:null,this.clone=t===void 0?e:this._shallowClone(e)}static isHandledMethod(e){return nf.has(e)}_shallowClone(e){let t=e;if(Ga(e))t={...e};else if(Rn(e))t=[...e];else if(e instanceof Date)t=new Date(e);else if(e instanceof Set)t=new Set([...e].map(A=>this._shallowClone(A)));else if(e instanceof Map){t=new Map;for(let[A,r]of e.entries())t.set(A,this._shallowClone(r))}return this._clonedCache.add(t),t}preferredThisArg(e,t,A,r){return e?(Rn(r)?this._onIsChanged=Uy[t]:r instanceof Set?this._onIsChanged=Hy[t]:r instanceof Map&&(this._onIsChanged=Wy[t]),r):A}update(e,t,A){let r=on.after(e,this._path);if(t!=="length"){let i=this.clone;on.walk(r,s=>{i&&i[s]&&(this._clonedCache.has(i[s])||(i[s]=this._shallowClone(i[s])),i=i[s])}),this._hasOnValidate&&this._changes.push({path:r,property:t,previous:A}),i&&i[t]&&(i[t]=A)}this._isChanged=!0}undo(e){let t;for(let A=this._changes.length-1;A!==-1;A--)t=this._changes[A],on.get(e,t.path)[t.property]=t.previous}isChanged(e){return this._onIsChanged===void 0?this._isChanged:this._onIsChanged(this.clone,e)}};var za=class extends LA{static isHandledMethod(e){return Xw.has(e)}};var mu=class extends LA{undo(e){e.setTime(this.clone.getTime())}isChanged(e,t){return!t(this.clone.valueOf(),e.valueOf())}};var Ha=class extends LA{static isHandledMethod(e){return Qw.has(e)}undo(e){for(let t of this.clone)e.add(t);for(let t of e)this.clone.has(t)||e.delete(t)}};var Wa=class extends LA{static isHandledMethod(e){return Zw.has(e)}undo(e){for(let[t,A]of this.clone.entries())e.set(t,A);for(let t of e.keys())this.clone.has(t)||e.delete(t)}};var gu=class extends LA{constructor(e,t,A,r){super(void 0,t,A,r),this._arg1=A[0],this._weakValue=e.has(this._arg1)}isChanged(e){return this._weakValue!==e.has(this._arg1)}undo(e){this._weakValue&&!e.has(this._arg1)?e.add(this._arg1):e.delete(this._arg1)}};var yu=class extends LA{constructor(e,t,A,r){super(void 0,t,A,r),this._weakKey=A[0],this._weakHas=e.has(this._weakKey),this._weakValue=e.get(this._weakKey)}isChanged(e){return this._weakValue!==e.get(this._weakKey)}undo(e){let t=e.has(this._weakKey);this._weakHas&&!t?e.set(this._weakKey,this._weakValue):!this._weakHas&&t?e.delete(this._weakKey):this._weakValue!==e.get(this._weakKey)&&e.set(this._weakKey,this._weakValue)}};var gr=class{constructor(e){this._stack=[],this._hasOnValidate=e}static isHandledType(e){return Ga(e)||Rn(e)||fu(e)}static isHandledMethod(e,t){return Ga(e)?LA.isHandledMethod(t):Rn(e)?za.isHandledMethod(t):e instanceof Set?Ha.isHandledMethod(t):e instanceof Map?Wa.isHandledMethod(t):fu(e)}get isCloning(){return this._stack.length>0}start(e,t,A){let r=LA;Rn(e)?r=za:e instanceof Date?r=mu:e instanceof Set?r=Ha:e instanceof Map?r=Wa:e instanceof WeakSet?r=gu:e instanceof WeakMap&&(r=yu),this._stack.push(new r(e,t,A,this._hasOnValidate))}update(e,t,A){this._stack[this._stack.length-1].update(e,t,A)}preferredThisArg(e,t,A){let{name:r}=e,i=gr.isHandledMethod(A,r);return this._stack[this._stack.length-1].preferredThisArg(i,r,t,A)}isChanged(e,t,A){return this._stack[this._stack.length-1].isChanged(e,t,A)}undo(e){this._previousClone!==void 0&&this._previousClone.undo(e)}stop(){return this._previousClone=this._stack.pop(),this._previousClone.clone}};var rB={equals:Object.is,isShallow:!1,pathAsArray:!1,ignoreSymbols:!1,ignoreUnderscores:!1,ignoreDetached:!1,details:!1},jy=(n,e,t={})=>{t={...rB,...t};let A=Symbol("ProxyTarget"),{equals:r,isShallow:i,ignoreDetached:s,details:o}=t,a=new pu(r),c=typeof t.onValidate=="function",l=new gr(c),u=(g,b,x,w,T)=>!c||l.isCloning||t.onValidate(on.concat(a.getPath(g),b),x,w,T)===!0,h=(g,b,x,w)=>{!Af(a,t,b)&&!(s&&a.isDetached(g,n))&&d(a.getPath(g),b,x,w)},d=(g,b,x,w,T)=>{l.isCloning?l.update(g,b,w):e(on.concat(g,b),x,w,T)},p=g=>g&&(g[A]||g),f=(g,b,x,w)=>qw(g)||x==="constructor"||i&&!gr.isHandledMethod(b,x)||Af(a,t,x)||a.isGetInvariant(b,x)||s&&a.isDetached(b,n)?g:(w===void 0&&(w=a.getPath(b)),a.getProxy(g,on.concat(w,x),m,A)),m={get(g,b,x){if(go(b)){if(b===A||b===du)return g;if(b===Fy&&!a.isUnsubscribed&&a.getPath(g).length===0)return a.unsubscribe(),g}let w=fu(g)?Reflect.get(g,b):Reflect.get(g,b,x);return f(w,g,b)},set(g,b,x,w){x=p(x);let T=g[A]||g,M=T[b];if(r(M,x)&&b in g)return!0;let v=u(g,b,x,M);return v&&a.setProperty(T,b,x,w,M)?(h(g,b,g[b],M),!0):!v},defineProperty(g,b,x){if(!a.isSameDescriptor(x,g,b)){let w=g[b];u(g,b,x.value,w)&&a.defineProperty(g,b,x,w)&&h(g,b,x.value,w)}return!0},deleteProperty(g,b){if(!Reflect.has(g,b))return!0;let x=Reflect.get(g,b),w=u(g,b,void 0,x);return w&&a.deleteProperty(g,b,x)?(h(g,b,void 0,x),!0):!w},apply(g,b,x){let w=b[A]||b;if(a.isUnsubscribed)return Reflect.apply(g,w,x);if((o===!1||o!==!0&&!o.includes(g.name))&&gr.isHandledType(w)){let T=on.initial(a.getPath(g)),M=gr.isHandledMethod(w,g.name);l.start(w,T,x);let v=Reflect.apply(g,l.preferredThisArg(g,b,w),M?x.map(P=>p(P)):x),E=l.isChanged(w,r),C=l.stop();if(gr.isHandledType(v)&&M&&(b instanceof Map&&g.name==="get"&&(T=on.concat(T,x[0])),v=a.getProxy(v,T,m)),E){let P={name:g.name,args:x,result:v},D=l.isCloning?on.initial(T):T,_=l.isCloning?on.last(T):"";u(on.get(n,D),_,w,C,P)?d(D,_,w,C,P):l.undo(w)}return(b instanceof Map||b instanceof Set)&&Gy(v)?ky(v,g,b,T,f):v}return Reflect.apply(g,b,x)}},y=a.getProxy(n,t.pathAsArray?[]:"",m);return e=e.bind(y),c&&(t.onValidate=t.onValidate.bind(y)),y};jy.target=n=>n&&n[du]||n;jy.unsubscribe=n=>n[Fy]||n;var Yy=jy;var iB=typeof global=="object"&&global&&global.Object===Object&&global,rf=iB;var sB=typeof self=="object"&&self&&self.Object===Object&&self,oB=rf||sB||Function("return this")(),Kt=oB;var aB=Kt.Symbol,_A=aB;var Kw=Object.prototype,lB=Kw.hasOwnProperty,cB=Kw.toString,vu=_A?_A.toStringTag:void 0;function uB(n){var e=lB.call(n,vu),t=n[vu];try{n[vu]=void 0;var A=!0}catch{}var r=cB.call(n);return A&&(e?n[vu]=t:delete n[vu]),r}var Jw=uB;var hB=Object.prototype,dB=hB.toString;function fB(n){return dB.call(n)}var $w=fB;var pB="[object Null]",mB="[object Undefined]",eS=_A?_A.toStringTag:void 0;function gB(n){return n==null?n===void 0?mB:pB:eS&&eS in Object(n)?Jw(n):$w(n)}var Bn=gB;function yB(n){return n!=null&&typeof n=="object"}var xA=yB;var vB="[object Symbol]";function xB(n){return typeof n=="symbol"||xA(n)&&Bn(n)==vB}var os=xB;function bB(n,e){for(var t=-1,A=n==null?0:n.length,r=Array(A);++t<A;)r[t]=e(n[t],t,n);return r}var sf=bB;var wB=Array.isArray,Jt=wB;var SB=1/0,tS=_A?_A.prototype:void 0,AS=tS?tS.toString:void 0;function nS(n){if(typeof n=="string")return n;if(Jt(n))return sf(n,nS)+"";if(os(n))return AS?AS.call(n):"";var e=n+"";return e=="0"&&1/n==-SB?"-0":e}var rS=nS;var TB=/\s/;function MB(n){for(var e=n.length;e--&&TB.test(n.charAt(e)););return e}var iS=MB;var EB=/^\s+/;function CB(n){return n&&n.slice(0,iS(n)+1).replace(EB,"")}var sS=CB;function PB(n){var e=typeof n;return n!=null&&(e=="object"||e=="function")}var zt=PB;var oS=0/0,DB=/^[-+]0x[0-9a-f]+$/i,IB=/^0b[01]+$/i,LB=/^0o[0-7]+$/i,_B=parseInt;function OB(n){if(typeof n=="number")return n;if(os(n))return oS;if(zt(n)){var e=typeof n.valueOf=="function"?n.valueOf():n;n=zt(e)?e+"":e}if(typeof n!="string")return n===0?n:+n;n=sS(n);var t=IB.test(n);return t||LB.test(n)?_B(n.slice(2),t?2:8):DB.test(n)?oS:+n}var qy=OB;function RB(n){return n}var of=RB;var BB="[object AsyncFunction]",NB="[object Function]",FB="[object GeneratorFunction]",GB="[object Proxy]";function kB(n){if(!zt(n))return!1;var e=Bn(n);return e==NB||e==FB||e==BB||e==GB}var ja=kB;var UB=Kt["__core-js_shared__"],af=UB;var aS=function(){var n=/[^.]+$/.exec(af&&af.keys&&af.keys.IE_PROTO||"");return n?"Symbol(src)_1."+n:""}();function VB(n){return!!aS&&aS in n}var lS=VB;var zB=Function.prototype,HB=zB.toString;function WB(n){if(n!=null){try{return HB.call(n)}catch{}try{return n+""}catch{}}return""}var Ei=WB;var jB=/[\\^$.*+?()[\]{}|]/g,YB=/^\[object .+?Constructor\]$/,qB=Function.prototype,XB=Object.prototype,QB=qB.toString,ZB=XB.hasOwnProperty,KB=RegExp("^"+QB.call(ZB).replace(jB,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function JB(n){if(!zt(n)||lS(n))return!1;var e=ja(n)?KB:YB;return e.test(Ei(n))}var cS=JB;function $B(n,e){return n?.[e]}var uS=$B;function eN(n,e){var t=uS(n,e);return cS(t)?t:void 0}var pn=eN;var tN=pn(Kt,"WeakMap"),lf=tN;var hS=Object.create,AN=function(){function n(){}return function(e){if(!zt(e))return{};if(hS)return hS(e);n.prototype=e;var t=new n;return n.prototype=void 0,t}}(),dS=AN;function nN(n,e,t){switch(t.length){case 0:return n.call(e);case 1:return n.call(e,t[0]);case 2:return n.call(e,t[0],t[1]);case 3:return n.call(e,t[0],t[1],t[2])}return n.apply(e,t)}var fS=nN;function rN(n,e){var t=-1,A=n.length;for(e||(e=Array(A));++t<A;)e[t]=n[t];return e}var cf=rN;var iN=800,sN=16,oN=Date.now;function aN(n){var e=0,t=0;return function(){var A=oN(),r=sN-(A-t);if(t=A,r>0){if(++e>=iN)return arguments[0]}else e=0;return n.apply(void 0,arguments)}}var pS=aN;function lN(n){return function(){return n}}var mS=lN;var cN=function(){try{var n=pn(Object,"defineProperty");return n({},"",{}),n}catch{}}(),Ya=cN;var uN=Ya?function(n,e){return Ya(n,"toString",{configurable:!0,enumerable:!1,value:mS(e),writable:!0})}:of,gS=uN;var hN=pS(gS),uf=hN;function dN(n,e){for(var t=-1,A=n==null?0:n.length;++t<A&&e(n[t],t,n)!==!1;);return n}var yS=dN;var fN=9007199254740991,pN=/^(?:0|[1-9]\d*)$/;function mN(n,e){var t=typeof n;return e=e??fN,!!e&&(t=="number"||t!="symbol"&&pN.test(n))&&n>-1&&n%1==0&&n<e}var as=mN;function gN(n,e,t){e=="__proto__"&&Ya?Ya(n,e,{configurable:!0,enumerable:!0,value:t,writable:!0}):n[e]=t}var qa=gN;function yN(n,e){return n===e||n!==n&&e!==e}var Nr=yN;var vN=Object.prototype,xN=vN.hasOwnProperty;function bN(n,e,t){var A=n[e];(!(xN.call(n,e)&&Nr(A,t))||t===void 0&&!(e in n))&&qa(n,e,t)}var Xa=bN;function wN(n,e,t,A){var r=!t;t||(t={});for(var i=-1,s=e.length;++i<s;){var o=e[i],a=A?A(t[o],n[o],o,t,n):void 0;a===void 0&&(a=n[o]),r?qa(t,o,a):Xa(t,o,a)}return t}var Xn=wN;var vS=Math.max;function SN(n,e,t){return e=vS(e===void 0?n.length-1:e,0),function(){for(var A=arguments,r=-1,i=vS(A.length-e,0),s=Array(i);++r<i;)s[r]=A[e+r];r=-1;for(var o=Array(e+1);++r<e;)o[r]=A[r];return o[e]=t(s),fS(n,this,o)}}var hf=SN;function TN(n,e){return uf(hf(n,e,of),n+"")}var xS=TN;var MN=9007199254740991;function EN(n){return typeof n=="number"&&n>-1&&n%1==0&&n<=MN}var Qa=EN;function CN(n){return n!=null&&Qa(n.length)&&!ja(n)}var ls=CN;function PN(n,e,t){if(!zt(t))return!1;var A=typeof e;return(A=="number"?ls(t)&&as(e,t.length):A=="string"&&e in t)?Nr(t[e],n):!1}var bS=PN;function DN(n){return xS(function(e,t){var A=-1,r=t.length,i=r>1?t[r-1]:void 0,s=r>2?t[2]:void 0;for(i=n.length>3&&typeof i=="function"?(r--,i):void 0,s&&bS(t[0],t[1],s)&&(i=r<3?void 0:i,r=1),e=Object(e);++A<r;){var o=t[A];o&&n(e,o,A,i)}return e})}var wS=DN;var IN=Object.prototype;function LN(n){var e=n&&n.constructor,t=typeof e=="function"&&e.prototype||IN;return n===t}var Za=LN;function _N(n,e){for(var t=-1,A=Array(n);++t<n;)A[t]=e(t);return A}var SS=_N;var ON="[object Arguments]";function RN(n){return xA(n)&&Bn(n)==ON}var Xy=RN;var TS=Object.prototype,BN=TS.hasOwnProperty,NN=TS.propertyIsEnumerable,FN=Xy(function(){return arguments}())?Xy:function(n){return xA(n)&&BN.call(n,"callee")&&!NN.call(n,"callee")},Ci=FN;function GN(){return!1}var MS=GN;var PS=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ES=PS&&typeof module=="object"&&module&&!module.nodeType&&module,kN=ES&&ES.exports===PS,CS=kN?Kt.Buffer:void 0,UN=CS?CS.isBuffer:void 0,VN=UN||MS,Pi=VN;var zN="[object Arguments]",HN="[object Array]",WN="[object Boolean]",jN="[object Date]",YN="[object Error]",qN="[object Function]",XN="[object Map]",QN="[object Number]",ZN="[object Object]",KN="[object RegExp]",JN="[object Set]",$N="[object String]",eF="[object WeakMap]",tF="[object ArrayBuffer]",AF="[object DataView]",nF="[object Float32Array]",rF="[object Float64Array]",iF="[object Int8Array]",sF="[object Int16Array]",oF="[object Int32Array]",aF="[object Uint8Array]",lF="[object Uint8ClampedArray]",cF="[object Uint16Array]",uF="[object Uint32Array]",Ut={};Ut[nF]=Ut[rF]=Ut[iF]=Ut[sF]=Ut[oF]=Ut[aF]=Ut[lF]=Ut[cF]=Ut[uF]=!0;Ut[zN]=Ut[HN]=Ut[tF]=Ut[WN]=Ut[AF]=Ut[jN]=Ut[YN]=Ut[qN]=Ut[XN]=Ut[QN]=Ut[ZN]=Ut[KN]=Ut[JN]=Ut[$N]=Ut[eF]=!1;function hF(n){return xA(n)&&Qa(n.length)&&!!Ut[Bn(n)]}var DS=hF;function dF(n){return function(e){return n(e)}}var Ka=dF;var IS=typeof exports=="object"&&exports&&!exports.nodeType&&exports,xu=IS&&typeof module=="object"&&module&&!module.nodeType&&module,fF=xu&&xu.exports===IS,Qy=fF&&rf.process,pF=function(){try{var n=xu&&xu.require&&xu.require("util").types;return n||Qy&&Qy.binding&&Qy.binding("util")}catch{}}(),Di=pF;var LS=Di&&Di.isTypedArray,mF=LS?Ka(LS):DS,Ja=mF;var gF=Object.prototype,yF=gF.hasOwnProperty;function vF(n,e){var t=Jt(n),A=!t&&Ci(n),r=!t&&!A&&Pi(n),i=!t&&!A&&!r&&Ja(n),s=t||A||r||i,o=s?SS(n.length,String):[],a=o.length;for(var c in n)(e||yF.call(n,c))&&!(s&&(c=="length"||r&&(c=="offset"||c=="parent")||i&&(c=="buffer"||c=="byteLength"||c=="byteOffset")||as(c,a)))&&o.push(c);return o}var df=vF;function xF(n,e){return function(t){return n(e(t))}}var ff=xF;var bF=ff(Object.keys,Object),_S=bF;var wF=Object.prototype,SF=wF.hasOwnProperty;function TF(n){if(!Za(n))return _S(n);var e=[];for(var t in Object(n))SF.call(n,t)&&t!="constructor"&&e.push(t);return e}var OS=TF;function MF(n){return ls(n)?df(n):OS(n)}var $a=MF;function EF(n){var e=[];if(n!=null)for(var t in Object(n))e.push(t);return e}var RS=EF;var CF=Object.prototype,PF=CF.hasOwnProperty;function DF(n){if(!zt(n))return RS(n);var e=Za(n),t=[];for(var A in n)A=="constructor"&&(e||!PF.call(n,A))||t.push(A);return t}var BS=DF;function IF(n){return ls(n)?df(n,!0):BS(n)}var Fr=IF;var LF=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,_F=/^\w*$/;function OF(n,e){if(Jt(n))return!1;var t=typeof n;return t=="number"||t=="symbol"||t=="boolean"||n==null||os(n)?!0:_F.test(n)||!LF.test(n)||e!=null&&n in Object(e)}var NS=OF;var RF=pn(Object,"create"),Ii=RF;function BF(){this.__data__=Ii?Ii(null):{},this.size=0}var FS=BF;function NF(n){var e=this.has(n)&&delete this.__data__[n];return this.size-=e?1:0,e}var GS=NF;var FF="__lodash_hash_undefined__",GF=Object.prototype,kF=GF.hasOwnProperty;function UF(n){var e=this.__data__;if(Ii){var t=e[n];return t===FF?void 0:t}return kF.call(e,n)?e[n]:void 0}var kS=UF;var VF=Object.prototype,zF=VF.hasOwnProperty;function HF(n){var e=this.__data__;return Ii?e[n]!==void 0:zF.call(e,n)}var US=HF;var WF="__lodash_hash_undefined__";function jF(n,e){var t=this.__data__;return this.size+=this.has(n)?0:1,t[n]=Ii&&e===void 0?WF:e,this}var VS=jF;function el(n){var e=-1,t=n==null?0:n.length;for(this.clear();++e<t;){var A=n[e];this.set(A[0],A[1])}}el.prototype.clear=FS;el.prototype.delete=GS;el.prototype.get=kS;el.prototype.has=US;el.prototype.set=VS;var Zy=el;function YF(){this.__data__=[],this.size=0}var zS=YF;function qF(n,e){for(var t=n.length;t--;)if(Nr(n[t][0],e))return t;return-1}var cs=qF;var XF=Array.prototype,QF=XF.splice;function ZF(n){var e=this.__data__,t=cs(e,n);if(t<0)return!1;var A=e.length-1;return t==A?e.pop():QF.call(e,t,1),--this.size,!0}var HS=ZF;function KF(n){var e=this.__data__,t=cs(e,n);return t<0?void 0:e[t][1]}var WS=KF;function JF(n){return cs(this.__data__,n)>-1}var jS=JF;function $F(n,e){var t=this.__data__,A=cs(t,n);return A<0?(++this.size,t.push([n,e])):t[A][1]=e,this}var YS=$F;function tl(n){var e=-1,t=n==null?0:n.length;for(this.clear();++e<t;){var A=n[e];this.set(A[0],A[1])}}tl.prototype.clear=zS;tl.prototype.delete=HS;tl.prototype.get=WS;tl.prototype.has=jS;tl.prototype.set=YS;var us=tl;var eG=pn(Kt,"Map"),hs=eG;function tG(){this.size=0,this.__data__={hash:new Zy,map:new(hs||us),string:new Zy}}var qS=tG;function AG(n){var e=typeof n;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?n!=="__proto__":n===null}var XS=AG;function nG(n,e){var t=n.__data__;return XS(e)?t[typeof e=="string"?"string":"hash"]:t.map}var ds=nG;function rG(n){var e=ds(this,n).delete(n);return this.size-=e?1:0,e}var QS=rG;function iG(n){return ds(this,n).get(n)}var ZS=iG;function sG(n){return ds(this,n).has(n)}var KS=sG;function oG(n,e){var t=ds(this,n),A=t.size;return t.set(n,e),this.size+=t.size==A?0:1,this}var JS=oG;function Al(n){var e=-1,t=n==null?0:n.length;for(this.clear();++e<t;){var A=n[e];this.set(A[0],A[1])}}Al.prototype.clear=qS;Al.prototype.delete=QS;Al.prototype.get=ZS;Al.prototype.has=KS;Al.prototype.set=JS;var yo=Al;var aG="Expected a function";function Ky(n,e){if(typeof n!="function"||e!=null&&typeof e!="function")throw new TypeError(aG);var t=function(){var A=arguments,r=e?e.apply(this,A):A[0],i=t.cache;if(i.has(r))return i.get(r);var s=n.apply(this,A);return t.cache=i.set(r,s)||i,s};return t.cache=new(Ky.Cache||yo),t}Ky.Cache=yo;var $S=Ky;var lG=500;function cG(n){var e=$S(n,function(A){return t.size===lG&&t.clear(),A}),t=e.cache;return e}var e1=cG;var uG=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,hG=/\\(\\)?/g,dG=e1(function(n){var e=[];return n.charCodeAt(0)===46&&e.push(""),n.replace(uG,function(t,A,r,i){e.push(r?i.replace(hG,"$1"):A||t)}),e}),t1=dG;function fG(n){return n==null?"":rS(n)}var A1=fG;function pG(n,e){return Jt(n)?n:NS(n,e)?[n]:t1(A1(n))}var Qn=pG;var mG=1/0;function gG(n){if(typeof n=="string"||os(n))return n;var e=n+"";return e=="0"&&1/n==-mG?"-0":e}var fs=gG;function yG(n,e){e=Qn(e,n);for(var t=0,A=e.length;n!=null&&t<A;)n=n[fs(e[t++])];return t&&t==A?n:void 0}var pf=yG;function vG(n,e){for(var t=-1,A=e.length,r=n.length;++t<A;)n[r+t]=e[t];return n}var nl=vG;var n1=_A?_A.isConcatSpreadable:void 0;function xG(n){return Jt(n)||Ci(n)||!!(n1&&n&&n[n1])}var r1=xG;function i1(n,e,t,A,r){var i=-1,s=n.length;for(t||(t=r1),r||(r=[]);++i<s;){var o=n[i];e>0&&t(o)?e>1?i1(o,e-1,t,A,r):nl(r,o):A||(r[r.length]=o)}return r}var s1=i1;function bG(n){var e=n==null?0:n.length;return e?s1(n,1):[]}var o1=bG;function wG(n){return uf(hf(n,void 0,o1),n+"")}var mf=wG;var SG=ff(Object.getPrototypeOf,Object),rl=SG;var TG="[object Object]",MG=Function.prototype,EG=Object.prototype,a1=MG.toString,CG=EG.hasOwnProperty,PG=a1.call(Object);function DG(n){if(!xA(n)||Bn(n)!=TG)return!1;var e=rl(n);if(e===null)return!0;var t=CG.call(e,"constructor")&&e.constructor;return typeof t=="function"&&t instanceof t&&a1.call(t)==PG}var gf=DG;function IG(n,e,t){var A=-1,r=n.length;e<0&&(e=-e>r?0:r+e),t=t>r?r:t,t<0&&(t+=r),r=e>t?0:t-e>>>0,e>>>=0;for(var i=Array(r);++A<r;)i[A]=n[A+e];return i}var l1=IG;function LG(){this.__data__=new us,this.size=0}var c1=LG;function _G(n){var e=this.__data__,t=e.delete(n);return this.size=e.size,t}var u1=_G;function OG(n){return this.__data__.get(n)}var h1=OG;function RG(n){return this.__data__.has(n)}var d1=RG;var BG=200;function NG(n,e){var t=this.__data__;if(t instanceof us){var A=t.__data__;if(!hs||A.length<BG-1)return A.push([n,e]),this.size=++t.size,this;t=this.__data__=new yo(A)}return t.set(n,e),this.size=t.size,this}var f1=NG;function il(n){var e=this.__data__=new us(n);this.size=e.size}il.prototype.clear=c1;il.prototype.delete=u1;il.prototype.get=h1;il.prototype.has=d1;il.prototype.set=f1;var ps=il;function FG(n,e){return n&&Xn(e,$a(e),n)}var p1=FG;function GG(n,e){return n&&Xn(e,Fr(e),n)}var m1=GG;var x1=typeof exports=="object"&&exports&&!exports.nodeType&&exports,g1=x1&&typeof module=="object"&&module&&!module.nodeType&&module,kG=g1&&g1.exports===x1,y1=kG?Kt.Buffer:void 0,v1=y1?y1.allocUnsafe:void 0;function UG(n,e){if(e)return n.slice();var t=n.length,A=v1?v1(t):new n.constructor(t);return n.copy(A),A}var yf=UG;function VG(n,e){for(var t=-1,A=n==null?0:n.length,r=0,i=[];++t<A;){var s=n[t];e(s,t,n)&&(i[r++]=s)}return i}var b1=VG;function zG(){return[]}var vf=zG;var HG=Object.prototype,WG=HG.propertyIsEnumerable,w1=Object.getOwnPropertySymbols,jG=w1?function(n){return n==null?[]:(n=Object(n),b1(w1(n),function(e){return WG.call(n,e)}))}:vf,sl=jG;function YG(n,e){return Xn(n,sl(n),e)}var S1=YG;var qG=Object.getOwnPropertySymbols,XG=qG?function(n){for(var e=[];n;)nl(e,sl(n)),n=rl(n);return e}:vf,xf=XG;function QG(n,e){return Xn(n,xf(n),e)}var T1=QG;function ZG(n,e,t){var A=e(n);return Jt(n)?A:nl(A,t(n))}var bf=ZG;function KG(n){return bf(n,$a,sl)}var bu=KG;function JG(n){return bf(n,Fr,xf)}var wf=JG;var $G=pn(Kt,"DataView"),Sf=$G;var ek=pn(Kt,"Promise"),Tf=ek;var tk=pn(Kt,"Set"),Mf=tk;var M1="[object Map]",Ak="[object Object]",E1="[object Promise]",C1="[object Set]",P1="[object WeakMap]",D1="[object DataView]",nk=Ei(Sf),rk=Ei(hs),ik=Ei(Tf),sk=Ei(Mf),ok=Ei(lf),vo=Bn;(Sf&&vo(new Sf(new ArrayBuffer(1)))!=D1||hs&&vo(new hs)!=M1||Tf&&vo(Tf.resolve())!=E1||Mf&&vo(new Mf)!=C1||lf&&vo(new lf)!=P1)&&(vo=function(n){var e=Bn(n),t=e==Ak?n.constructor:void 0,A=t?Ei(t):"";if(A)switch(A){case nk:return D1;case rk:return M1;case ik:return E1;case sk:return C1;case ok:return P1}return e});var Li=vo;var ak=Object.prototype,lk=ak.hasOwnProperty;function ck(n){var e=n.length,t=new n.constructor(e);return e&&typeof n[0]=="string"&&lk.call(n,"index")&&(t.index=n.index,t.input=n.input),t}var I1=ck;var uk=Kt.Uint8Array,ol=uk;function hk(n){var e=new n.constructor(n.byteLength);return new ol(e).set(new ol(n)),e}var al=hk;function dk(n,e){var t=e?al(n.buffer):n.buffer;return new n.constructor(t,n.byteOffset,n.byteLength)}var L1=dk;var fk=/\w*$/;function pk(n){var e=new n.constructor(n.source,fk.exec(n));return e.lastIndex=n.lastIndex,e}var _1=pk;var O1=_A?_A.prototype:void 0,R1=O1?O1.valueOf:void 0;function mk(n){return R1?Object(R1.call(n)):{}}var B1=mk;function gk(n,e){var t=e?al(n.buffer):n.buffer;return new n.constructor(t,n.byteOffset,n.length)}var Ef=gk;var yk="[object Boolean]",vk="[object Date]",xk="[object Map]",bk="[object Number]",wk="[object RegExp]",Sk="[object Set]",Tk="[object String]",Mk="[object Symbol]",Ek="[object ArrayBuffer]",Ck="[object DataView]",Pk="[object Float32Array]",Dk="[object Float64Array]",Ik="[object Int8Array]",Lk="[object Int16Array]",_k="[object Int32Array]",Ok="[object Uint8Array]",Rk="[object Uint8ClampedArray]",Bk="[object Uint16Array]",Nk="[object Uint32Array]";function Fk(n,e,t){var A=n.constructor;switch(e){case Ek:return al(n);case yk:case vk:return new A(+n);case Ck:return L1(n,t);case Pk:case Dk:case Ik:case Lk:case _k:case Ok:case Rk:case Bk:case Nk:return Ef(n,t);case xk:return new A;case bk:case Tk:return new A(n);case wk:return _1(n);case Sk:return new A;case Mk:return B1(n)}}var N1=Fk;function Gk(n){return typeof n.constructor=="function"&&!Za(n)?dS(rl(n)):{}}var Cf=Gk;var kk="[object Map]";function Uk(n){return xA(n)&&Li(n)==kk}var F1=Uk;var G1=Di&&Di.isMap,Vk=G1?Ka(G1):F1,k1=Vk;var zk="[object Set]";function Hk(n){return xA(n)&&Li(n)==zk}var U1=Hk;var V1=Di&&Di.isSet,Wk=V1?Ka(V1):U1,z1=Wk;var jk=1,Yk=2,qk=4,H1="[object Arguments]",Xk="[object Array]",Qk="[object Boolean]",Zk="[object Date]",Kk="[object Error]",W1="[object Function]",Jk="[object GeneratorFunction]",$k="[object Map]",eU="[object Number]",j1="[object Object]",tU="[object RegExp]",AU="[object Set]",nU="[object String]",rU="[object Symbol]",iU="[object WeakMap]",sU="[object ArrayBuffer]",oU="[object DataView]",aU="[object Float32Array]",lU="[object Float64Array]",cU="[object Int8Array]",uU="[object Int16Array]",hU="[object Int32Array]",dU="[object Uint8Array]",fU="[object Uint8ClampedArray]",pU="[object Uint16Array]",mU="[object Uint32Array]",Ft={};Ft[H1]=Ft[Xk]=Ft[sU]=Ft[oU]=Ft[Qk]=Ft[Zk]=Ft[aU]=Ft[lU]=Ft[cU]=Ft[uU]=Ft[hU]=Ft[$k]=Ft[eU]=Ft[j1]=Ft[tU]=Ft[AU]=Ft[nU]=Ft[rU]=Ft[dU]=Ft[fU]=Ft[pU]=Ft[mU]=!0;Ft[Kk]=Ft[W1]=Ft[iU]=!1;function Pf(n,e,t,A,r,i){var s,o=e&jk,a=e&Yk,c=e&qk;if(t&&(s=r?t(n,A,r,i):t(n)),s!==void 0)return s;if(!zt(n))return n;var l=Jt(n);if(l){if(s=I1(n),!o)return cf(n,s)}else{var u=Li(n),h=u==W1||u==Jk;if(Pi(n))return yf(n,o);if(u==j1||u==H1||h&&!r){if(s=a||h?{}:Cf(n),!o)return a?T1(n,m1(s,n)):S1(n,p1(s,n))}else{if(!Ft[u])return r?n:{};s=N1(n,u,o)}}i||(i=new ps);var d=i.get(n);if(d)return d;i.set(n,s),z1(n)?n.forEach(function(m){s.add(Pf(m,e,t,m,n,i))}):k1(n)&&n.forEach(function(m,y){s.set(y,Pf(m,e,t,y,n,i))});var p=c?a?wf:bu:a?Fr:$a,f=l?void 0:p(n);return yS(f||n,function(m,y){f&&(y=m,m=n[y]),Xa(s,y,Pf(m,e,t,y,n,i))}),s}var Df=Pf;var gU=1,yU=4;function vU(n){return Df(n,gU|yU)}var wu=vU;var xU="__lodash_hash_undefined__";function bU(n){return this.__data__.set(n,xU),this}var Y1=bU;function wU(n){return this.__data__.has(n)}var q1=wU;function If(n){var e=-1,t=n==null?0:n.length;for(this.__data__=new yo;++e<t;)this.add(n[e])}If.prototype.add=If.prototype.push=Y1;If.prototype.has=q1;var X1=If;function SU(n,e){for(var t=-1,A=n==null?0:n.length;++t<A;)if(e(n[t],t,n))return!0;return!1}var Q1=SU;function TU(n,e){return n.has(e)}var Z1=TU;var MU=1,EU=2;function CU(n,e,t,A,r,i){var s=t&MU,o=n.length,a=e.length;if(o!=a&&!(s&&a>o))return!1;var c=i.get(n),l=i.get(e);if(c&&l)return c==e&&l==n;var u=-1,h=!0,d=t&EU?new X1:void 0;for(i.set(n,e),i.set(e,n);++u<o;){var p=n[u],f=e[u];if(A)var m=s?A(f,p,u,e,n,i):A(p,f,u,n,e,i);if(m!==void 0){if(m)continue;h=!1;break}if(d){if(!Q1(e,function(y,g){if(!Z1(d,g)&&(p===y||r(p,y,t,A,i)))return d.push(g)})){h=!1;break}}else if(!(p===f||r(p,f,t,A,i))){h=!1;break}}return i.delete(n),i.delete(e),h}var Lf=CU;function PU(n){var e=-1,t=Array(n.size);return n.forEach(function(A,r){t[++e]=[r,A]}),t}var K1=PU;function DU(n){var e=-1,t=Array(n.size);return n.forEach(function(A){t[++e]=A}),t}var J1=DU;var IU=1,LU=2,_U="[object Boolean]",OU="[object Date]",RU="[object Error]",BU="[object Map]",NU="[object Number]",FU="[object RegExp]",GU="[object Set]",kU="[object String]",UU="[object Symbol]",VU="[object ArrayBuffer]",zU="[object DataView]",$1=_A?_A.prototype:void 0,Jy=$1?$1.valueOf:void 0;function HU(n,e,t,A,r,i,s){switch(t){case zU:if(n.byteLength!=e.byteLength||n.byteOffset!=e.byteOffset)return!1;n=n.buffer,e=e.buffer;case VU:return!(n.byteLength!=e.byteLength||!i(new ol(n),new ol(e)));case _U:case OU:case NU:return Nr(+n,+e);case RU:return n.name==e.name&&n.message==e.message;case FU:case kU:return n==e+"";case BU:var o=K1;case GU:var a=A&IU;if(o||(o=J1),n.size!=e.size&&!a)return!1;var c=s.get(n);if(c)return c==e;A|=LU,s.set(n,e);var l=Lf(o(n),o(e),A,r,i,s);return s.delete(n),l;case UU:if(Jy)return Jy.call(n)==Jy.call(e)}return!1}var eT=HU;var WU=1,jU=Object.prototype,YU=jU.hasOwnProperty;function qU(n,e,t,A,r,i){var s=t&WU,o=bu(n),a=o.length,c=bu(e),l=c.length;if(a!=l&&!s)return!1;for(var u=a;u--;){var h=o[u];if(!(s?h in e:YU.call(e,h)))return!1}var d=i.get(n),p=i.get(e);if(d&&p)return d==e&&p==n;var f=!0;i.set(n,e),i.set(e,n);for(var m=s;++u<a;){h=o[u];var y=n[h],g=e[h];if(A)var b=s?A(g,y,h,e,n,i):A(y,g,h,n,e,i);if(!(b===void 0?y===g||r(y,g,t,A,i):b)){f=!1;break}m||(m=h=="constructor")}if(f&&!m){var x=n.constructor,w=e.constructor;x!=w&&"constructor"in n&&"constructor"in e&&!(typeof x=="function"&&x instanceof x&&typeof w=="function"&&w instanceof w)&&(f=!1)}return i.delete(n),i.delete(e),f}var tT=qU;var XU=1,AT="[object Arguments]",nT="[object Array]",_f="[object Object]",QU=Object.prototype,rT=QU.hasOwnProperty;function ZU(n,e,t,A,r,i){var s=Jt(n),o=Jt(e),a=s?nT:Li(n),c=o?nT:Li(e);a=a==AT?_f:a,c=c==AT?_f:c;var l=a==_f,u=c==_f,h=a==c;if(h&&Pi(n)){if(!Pi(e))return!1;s=!0,l=!1}if(h&&!l)return i||(i=new ps),s||Ja(n)?Lf(n,e,t,A,r,i):eT(n,e,a,t,A,r,i);if(!(t&XU)){var d=l&&rT.call(n,"__wrapped__"),p=u&&rT.call(e,"__wrapped__");if(d||p){var f=d?n.value():n,m=p?e.value():e;return i||(i=new ps),r(f,m,t,A,i)}}return h?(i||(i=new ps),tT(n,e,t,A,r,i)):!1}var iT=ZU;function sT(n,e,t,A,r){return n===e?!0:n==null||e==null||!xA(n)&&!xA(e)?n!==n&&e!==e:iT(n,e,t,A,sT,r)}var oT=sT;function KU(n,e){return n!=null&&e in Object(n)}var aT=KU;function JU(n,e,t){e=Qn(e,n);for(var A=-1,r=e.length,i=!1;++A<r;){var s=fs(e[A]);if(!(i=n!=null&&t(n,s)))break;n=n[s]}return i||++A!=r?i:(r=n==null?0:n.length,!!r&&Qa(r)&&as(s,r)&&(Jt(n)||Ci(n)))}var lT=JU;function $U(n,e){return n!=null&&lT(n,e,aT)}var cT=$U;function eV(n){return function(e,t,A){for(var r=-1,i=Object(e),s=A(e),o=s.length;o--;){var a=s[n?o:++r];if(t(i[a],a,i)===!1)break}return e}}var uT=eV;var tV=uT(),hT=tV;var AV=function(){return Kt.Date.now()},Of=AV;var nV="Expected a function",rV=Math.max,iV=Math.min;function sV(n,e,t){var A,r,i,s,o,a,c=0,l=!1,u=!1,h=!0;if(typeof n!="function")throw new TypeError(nV);e=qy(e)||0,zt(t)&&(l=!!t.leading,u="maxWait"in t,i=u?rV(qy(t.maxWait)||0,e):i,h="trailing"in t?!!t.trailing:h);function d(T){var M=A,v=r;return A=r=void 0,c=T,s=n.apply(v,M),s}function p(T){return c=T,o=setTimeout(y,e),l?d(T):s}function f(T){var M=T-a,v=T-c,E=e-M;return u?iV(E,i-v):E}function m(T){var M=T-a,v=T-c;return a===void 0||M>=e||M<0||u&&v>=i}function y(){var T=Of();if(m(T))return g(T);o=setTimeout(y,f(T))}function g(T){return o=void 0,h&&A?d(T):(A=r=void 0,s)}function b(){o!==void 0&&clearTimeout(o),c=0,A=a=r=o=void 0}function x(){return o===void 0?s:g(Of())}function w(){var T=Of(),M=m(T);if(A=arguments,r=this,a=T,M){if(o===void 0)return p(a);if(u)return clearTimeout(o),o=setTimeout(y,e),d(a)}return o===void 0&&(o=setTimeout(y,e)),s}return w.cancel=b,w.flush=x,w}var Su=sV;function oV(n,e,t){(t!==void 0&&!Nr(n[e],t)||t===void 0&&!(e in n))&&qa(n,e,t)}var Tu=oV;function aV(n){return xA(n)&&ls(n)}var dT=aV;function lV(n,e){if(!(e==="constructor"&&typeof n[e]=="function")&&e!="__proto__")return n[e]}var Mu=lV;function cV(n){return Xn(n,Fr(n))}var fT=cV;function uV(n,e,t,A,r,i,s){var o=Mu(n,t),a=Mu(e,t),c=s.get(a);if(c){Tu(n,t,c);return}var l=i?i(o,a,t+"",n,e,s):void 0,u=l===void 0;if(u){var h=Jt(a),d=!h&&Pi(a),p=!h&&!d&&Ja(a);l=a,h||d||p?Jt(o)?l=o:dT(o)?l=cf(o):d?(u=!1,l=yf(a,!0)):p?(u=!1,l=Ef(a,!0)):l=[]:gf(a)||Ci(a)?(l=o,Ci(o)?l=fT(o):(!zt(o)||ja(o))&&(l=Cf(a))):u=!1}u&&(s.set(a,l),r(l,a,A,i,s),s.delete(a)),Tu(n,t,l)}var pT=uV;function mT(n,e,t,A,r){n!==e&&hT(e,function(i,s){if(r||(r=new ps),zt(i))pT(n,e,s,t,mT,A,r);else{var o=A?A(Mu(n,s),i,s+"",n,e,r):void 0;o===void 0&&(o=i),Tu(n,s,o)}},Fr)}var gT=mT;function hV(n){var e=n==null?0:n.length;return e?n[e-1]:void 0}var yT=hV;function dV(n,e){return e.length<2?n:pf(n,l1(e,0,-1))}var vT=dV;function fV(n,e){return oT(n,e)}var $y=fV;var pV=wS(function(n,e,t){gT(n,e,t)}),ll=pV;function mV(n,e){return e=Qn(e,n),n=vT(n,e),n==null||delete n[fs(yT(e))]}var xT=mV;function gV(n){return gf(n)?void 0:n}var bT=gV;var yV=1,vV=2,xV=4,bV=mf(function(n,e){var t={};if(n==null)return t;var A=!1;e=sf(e,function(i){return i=Qn(i,n),A||(A=i.length>1),i}),Xn(n,wf(n),t),A&&(t=Df(t,yV|vV|xV,bT));for(var r=e.length;r--;)xT(t,e[r]);return t}),cl=bV;function wV(n,e,t,A){if(!zt(n))return n;e=Qn(e,n);for(var r=-1,i=e.length,s=i-1,o=n;o!=null&&++r<i;){var a=fs(e[r]),c=t;if(a==="__proto__"||a==="constructor"||a==="prototype")return n;if(r!=s){var l=o[a];c=A?A(l,a,o):void 0,c===void 0&&(c=zt(l)?l:as(e[r+1])?[]:{})}Xa(o,a,c),o=o[a]}return n}var wT=wV;function SV(n,e,t){for(var A=-1,r=e.length,i={};++A<r;){var s=e[A],o=pf(n,s);t(o,s)&&wT(i,Qn(s,n),o)}return i}var ST=SV;function TV(n,e){return ST(n,e,function(t,A){return cT(n,A)})}var TT=TV;var MV=mf(function(n,e){return n==null?{}:TT(n,e)}),ul=MV;var ET,CT=new Promise(n=>{ET=n}),MT=!1;async function PT(){if(MT)return;let n=await import("./physics.js");await n.init(),ET(n),MT=!0}var Bt=class{modifyById(e,t){let A=this;if(A[e]===void 0)throw new Error("not expected");{let i={...A,[e]:t};return Object.setPrototypeOf(i,Bt.prototype),i}}add(e,t){return this.runOp({type:1,id:e,data:t})?.data??this}runOp(e){let t=this;if(e.type===1){let A=t[e.id],r;A===void 0?r={type:2,id:e.id}:r={type:1,id:e.id,data:A};let{id:i,data:s}=e,o={...t,[i]:s};return Object.setPrototypeOf(o,Bt.prototype),{data:o,actual:e,reverse:r}}else if(e.type===2){let{id:A}=e,r=t[A];if(r===void 0)return null;{let i={...t};return Object.setPrototypeOf(i,Bt.prototype),delete i[A],{data:i,actual:e,reverse:{type:1,id:A,data:r}}}}return null}};function Eu(n){if(n.deepFreeze!==void 0){n.deepFreeze(n);return}let e=Object.getOwnPropertyNames(n);for(let t of e){let A=n[t];A&&typeof A=="object"&&Eu(A)}return Object.freeze(n)}function DT(n,e){let t=0;for(;t<n.length&&t<e.length;){if(n[t]<e[t])return-1;if(n[t]>e[t])return 1;t+=1}return t!==e.length?-1:t!==n.length?1:0}var hl=class extends Error{};var He=class extends Array{constructor(...t){super(...t);Object.setPrototypeOf(this,He.prototype)}deepFreeze(){let t=0;for(;t<this.length;)Eu(this[t]),t++}fillCaches0(t){this.objCaches.set(t.id,t)}fillCaches(){if(this.objCaches===void 0){this.objCaches=new Map,Object.getOwnPropertyDescriptor(this,"objCaches").enumerable=!1;for(let t of this)this.fillCaches0(t)}}randomId(){this.fillCaches();let t=Array.from(this.objCaches.keys());if(t.length!==0)return t[Math.max(0,Math.floor(Math.random()*t.length)-1)]}data(t){return this.get(t)?.data}get(t){return this.fillCaches(),this.objCaches.get(t)}modifyById(t,A){if(this.get(t)===void 0)throw new Error("not expected");{let i=this,s=i.findIndex(c=>c.id===t);if(s<0)throw new Error("not expected");let o=i[s];return i=[...i],i[s]={...o,data:A},this.modifyArrayBy(i)}}modifyArrayBy(t){Object.setPrototypeOf(t,He.prototype);let A=t;return IT()||A.fillCaches(),A}runOp(t){switch(t.type){case 4:return this.addOp(t);case 5:return this.deleteOp(t);case 6:return this.moveOp(t)}return null}addOp(t){let{fi:A,id:r,data:i}=t,s=this,o={fi:A,id:r,data:i};return s=[...s,o],s.sort((c,l)=>c.fi-l.fi),t.localIndex=s.indexOf(o),{data:this.modifyArrayBy(s),actual:t,reverse:{type:5,id:r}}}deleteOp(t){let{id:A}=t,r=this,i=r.findIndex(a=>a.id===A);if(i===-1)return null;t.localIndex=i,r=[...r];let s=r.splice(i,1)[0];return{data:this.modifyArrayBy(r),actual:t,reverse:{type:4,...s}}}moveOp(t){let{fi:A,id:r}=t,i=this;i=[...i];let s=i.findIndex(l=>l.id===r);if(s===-1)return null;let o=i[s].fi,a={...i[s],fi:A};return i[s]=a,i.sort((l,u)=>l.fi-u.fi),t.localIndex=i.indexOf(a),{data:this.modifyArrayBy(i),actual:t,reverse:{type:6,fi:o,id:r}}}previous(t){if(t===null)return this.length===0?null:this[this.length-1].id;let A=null;for(let r of this){if(r.id===t)return A;A=r.id}return null}insertBeforeHelper(t,A){return this.insertAfterHelper(this.previous(t),A)}insertAfterHelper(t,A){let r=this;if(t===null){if(r.length===0)return Gr(0,A,A);{let i=r[0].fi;return Gr(i-A,i,A)}}else{let i=this.get(t);if(i===void 0)throw new Error("illegal args");let s=r.find(o=>o.fi>i.fi);if(s===void 0){let o=r[r.length-1].fi;return Gr(o,o+A,A)}else return Gr(i.fi,s.fi,A)}}};function Rf(n){let e={...n};return Object.setPrototypeOf(e,Object.getPrototypeOf(n)),e}function Gr(n,e,t){if(n===void 0?e===void 0?(n=0,e=10):n=e-10:e===void 0&&(e=n+10),n>e){let i=n;n=e,e=i}let A=[],r=1/(t+1);for(let i=0;i<t;i++){let s=n+(e-n)*(i+.75+Math.random()*.5)*r;A.push(s)}return A}function dl(n){return n instanceof Uint8Array||n instanceof Uint16Array||n instanceof Uint32Array||n instanceof Int8Array||n instanceof Int16Array||n instanceof Int32Array||n instanceof Float32Array||n instanceof Float64Array}function IT(){return typeof process<"u"}function LT(n,e){for(let t of n)e(t.id,t.data)!==!0&&LT(t.children,e)}function _T(n,e){if(e(n.id,n.data)!==!0)for(let t of n.children)_T(t,e)}var qt=class extends Array{constructor(...t){super(...t);Object.setPrototypeOf(this,qt.prototype)}deepFreeze(){let t=0;for(;t<this.length;)Eu(this[t]),t++}fillCaches0(t,A){this.objCaches.set(t.id,t),this.parentCaches.set(t.id,A);for(let r of t.children)this.fillCaches0(r,t.id)}fillCaches(){if(this.objCaches===void 0){this.objCaches=new Map,this.parentCaches=new Map;for(let t of this)this.fillCaches0(t,null)}}randomId(){this.fillCaches();let t=Array.from(this.objCaches.keys());if(t.length!==0)return t[Math.max(0,Math.floor(Math.random()*t.length)-1)]}nonExistOrDescendantOf(t,A){if(!this.has(t))return!0;for(;t;){let r=this.parent(t);if(r===A)return!0;t=r}return!1}isDescendantOf(t,A){for(;t;){let r=this.parent(t);if(r===A)return!0;t=r}return!1}data(t){return this.get(t)?.data}has(t){return this.childrenOf(t)!==void 0}get(t){return this.fillCaches(),this.objCaches.get(t)}childrenOf(t){return t===null?this:this.get(t)?.children}traverseFrom(t,A){if(t===null)this.traverse(A);else{let r=this.get(t);r&&_T(r,A)}}traverse(t){LT(this,t)}totalSize(){return this.fillCaches(),this.objCaches.size}parent(t){return this.fillCaches(),this.parentCaches.get(t)}childrenArray(t){return t===null?this:this.get(t).children}modifyById(t,A){if(this.get(t)===void 0)throw new Error("not expected");{let i=this.parent(t),s=this.childrenArray(i),o=s.findIndex(l=>l.id===t);if(o<0)throw new Error("not expected");let a=s[o];return s=[...s],s[o]={...a,data:A},this.modifyArrayBy(i,s)}}modifyArrayBy(t,A){let r=t,i=A;for(;r!==null;){let o=i,a=r;if(r=this.parent(r),r===void 0)throw new Error;i=this.childrenArray(r);let c=i.findIndex(l=>l.id===a);if(c<0)throw new Error;i=[...i],i[c]={...i[c],children:o}}Object.setPrototypeOf(i,qt.prototype);let s=i;return s.fillCaches(),s}runOp(t){switch(t.type){case 7:return this.addOp(t);case 8:return this.deleteOp(t);case 9:return this.moveOp(t)}return null}checkDuplicatedIdRec({id:t,children:A}){if(this.get(t)!==void 0)return!0;for(let r of A)if(this.checkDuplicatedIdRec(r))return!0;return!1}addOp(t){let{parent:A,fi:r,id:i,data:s,children:o}=t;if(A!==null&&this.get(A)===void 0)return null;if(this.checkDuplicatedIdRec(t))return null;{let a=A,c=this.childrenArray(a),l={fi:r,id:i,data:s,children:o};return c=[...c,l],c.sort((h,d)=>h.fi-d.fi),t.localIndex=c.indexOf(l),{data:this.modifyArrayBy(a,c),actual:t,reverse:{type:8,id:i}}}}deleteOp(t){let{id:A}=t;if(this.get(A)===null)return null;{let r=this.parent(A);if(r===void 0)return null;let i=this.childrenArray(r),s=i.findIndex(c=>c.id===A);t.localIndex=s,i=[...i];let o=i.splice(s,1)[0];return{data:this.modifyArrayBy(r,i),actual:t,reverse:{type:7,...o,parent:r}}}}moveOp(t){let{parent:A,fi:r,id:i}=t;if(A!==null&&this.get(A)===void 0)return this.deleteOp({type:8,id:i});if(A!==null){let d=A;for(;d!==null;){if(d===void 0)throw new Error;if(d===i)throw new hl("cyclic tree");d=this.parent(d)}}let s=this.parent(i);if(s===void 0)return null;let o=s,a=this.childrenArray(s),c=a.findIndex(d=>d.id===i);a=[...a];let l=a.splice(c,1)[0],u=this.modifyArrayBy(s,a);s=A,a=u.childrenArray(s);let h=l.fi;return l={...l,fi:r},a=[...a,l],a.sort((d,p)=>d.fi-p.fi),t.localIndex=a.indexOf(l),u=u.modifyArrayBy(s,a),{data:u,actual:t,reverse:{type:9,parent:o,fi:h,id:i}}}previous(t,A){if(A===null){let i=this.childrenArray(t);return i.length===0?null:i[i.length-1].id}let r=null;for(let i of this.childrenArray(t)){if(i.id===A)return r;r=i.id}return null}traverseSortNext(t){let A=this.parent(t);if(A!==void 0){let r=this.childrenArray(A),i=r.findIndex(s=>s.id===t)+1;if(i<r.length)return r[i].id;if(A)return this.traverseSortNext(A)}}sortNext(t){let A=this.childrenArray(t);return A.length>0?A[0].id:this.traverseSortNext(t)}traverseSortPrevious(t){let A=this.childrenArray(t);return A.length>0?this.traverseSortPrevious(A[A.length-1].id):t}sortPrevious(t){let A=this.parent(t);if(A!==void 0){let r=this.childrenArray(A),i=r.findIndex(s=>s.id===t)-1;return i>=0?this.traverseSortPrevious(r[i].id):A}}getAllSorted(t){let A=[];for(let r of t){let i=this.getWithSortKey(r.id);i!==void 0&&A.push({...r,...i})}A.sort((r,i)=>DT(r.sortKey,i.sortKey));for(let r of A)delete r.sortKey;return A}getWithSortKey(t){var A=t;let r=[],i=this.get(A),s=i;if(i!==void 0){for(;A;)r.splice(0,0,i.fi),A=this.parent(A),A!==null&&(i=this.get(A));return{...s,sortKey:r}}}insertBeforeHelper(t,A,r){return this.insertAfterHelper(t,this.previous(t,A),r)}insertAfterHelper(t,A,r){let i=this.childrenArray(t);if(A===null){if(i.length===0)return Gr(0,r,r);{let s=i[0].fi;return Gr(s-r,s,r)}}else{let s=this.get(A);if(s===void 0||this.parent(A)!==t)throw new Error("illegal args");let o=i.find(a=>a.fi>s.fi);if(o===void 0){let a=i[i.length-1].fi;return Gr(a,a+r,r)}else return Gr(s.fi,o.fi,r)}}};var fl;(e=>{function n(t,A){if(A.type!==0)return null;if(Array.isArray(t)){let r=A.props,i={},s=[...t],o=!1;if(r)for(let a of Object.keys(r)){let c=parseInt(a);if(isNaN(c))throw new Error("wrong index");i[a]=s[c],s[c]=r[a],o=!0}return o?{data:s,actual:A,reverse:{type:0,props:i}}:null}else{let r=A.props,i={},s={...t},o=!1;if(r)for(let a of Object.keys(r)){i[a]=s[a];let c=r[a];c===void 0?delete s[a]:s[a]=c,o=!0}return o?{data:s,actual:A,reverse:{type:0,props:i}}:null}}e.runOp=n})(fl||(fl={}));function pl(n){return n&&typeof n=="object"&&n instanceof UA}var UA=class{unusedFunOverridesTable(e){}runOp(e){let t=[],A=this,r=0,i={};for(;r<e.path.length;){if(t.push(A),A=A===void 0?void 0:A[e.path[r]],A!==void 0&&!pl(A))return null;r+=1}A=A?Rf(A):new UA;for(let[a,c]of Object.entries(e.props)){let l=A[a];i[a]=l,c===void 0?delete A[a]:A[a]=c}for(;r>0;){if(Object.keys(A).length===0){let a=t[r-1];a&&(A=Rf(a),delete A[e.path[r-1]])}else{let a=t[r-1];if(a){let c=Rf(a);c[e.path[r-1]]=A,A=c}else{let c=new UA;c[e.path[r-1]]=A,A=c}}r-=1}let s=Object.setPrototypeOf(A,UA.prototype),o={...e,props:i};return{data:s,actual:e,reverse:o}}},ev;(A=>{function n(r,i){return Cu(r,i)??r}A.apply=n;function e(r,i){return OT(r,i)}A.merge=e;function t(r,i){let s=0,o=i.path,a=r;for(;s<o.length&&a!==void 0;){if(a=_i.zoomOnce(a,o[s]),a===void 0)return i;if(!pl(a))return;s+=1}if(a===void 0)return i;if(!!pl(a))if(i.type===0){let c={...i.props};for(let l of Object.keys(a))delete c[l];return{...i,props:c}}else if(i.type===1||i.type===4||i.type===7){let c=tv([i],a);return c?(console.log(c),c):i}else return i}A.filterOp=t})(ev||(ev={}));function tv(n,e){if(e===void 0)return;let t=!1,A=n.map(r=>{let i=r.id,s=Cu(r.data,e[i]);if(t=t||s!==void 0,s===void 0&&(s=r.data),r.children){let o=tv(r.children,e);return o!==void 0?t=!0:o=r.children,{...r,id:i,data:s,children:o}}else return{...r,id:i,data:s}});if(t)return A}function EV(n,e){if(e===void 0)return;let t=!1,A=n.map(r=>{let i=r.id,s=Cu(r.data,e[i]);return t=t||s!==void 0,s===void 0&&(s=r.data),{...r,id:i,data:s}});if(t)return Object.setPrototypeOf(A,Object.getPrototypeOf(n)),A}function Cu(n,e){if(!pl(e))return e;if(n instanceof qt){let t=tv(n,e);return t!==void 0&&Object.setPrototypeOf(t,Object.getPrototypeOf(n)),t}else{if(n instanceof He)return EV(n,e);if(Array.isArray(n)){let t=!1,A=n.map((r,i)=>{let s=Cu(r,e[i]);return t=t||s!==void 0,s===void 0&&(s=r),s});return t?(Object.setPrototypeOf(A,Object.getPrototypeOf(n)),A):void 0}else if(n&&typeof n=="object"){let t={},A=!1;for(let[r,i]of Object.entries(n)){let s=Cu(i,e[r]);A=A||s!==void 0,s===void 0&&(s=i),t[r]=s}return A?(Object.setPrototypeOf(t,Object.getPrototypeOf(n)),t):void 0}}}function OT(n,e){if(n===void 0)return e;if(e===void 0)return n;if(!pl(e))return e;if(!pl(n))return ev.apply(n,e);let t=new Set;for(let r of Object.keys(n))t.add(r);for(let r of Object.keys(e))t.add(r);let A=new UA;for(let r of t){let i=OT(n===void 0?void 0:n[r],e===void 0?void 0:e[r]);A[r]=i}return A}function RT(n,e){let t={cur:[],result:[],len:0};return n=Pu(n,e,t)??n,[n,t.result]}function Bf(n,e){return n===null?null:(n.cur[n.len]=e,n.len+=1,n)}function Nf(n){n&&(n.len-=1)}function CV(n){if(n===null)return null;n.result.push(n.cur.slice(0,n.len))}function BT(n,e,t){let A=!1,r=n.map(i=>{let s=i.id,o=e[s];if(o!==void 0&&typeof o=="string"&&(A=!0,s=o,t!==null))throw new Error("not supported");let a=Pu(i.data,e,Bf(t,s));Nf(t),A=A||a!==void 0,a===void 0&&(a=i.data);let c=BT(i.children,e,t);return c!==void 0?A=!0:c=i.children,{...i,id:s,data:a,children:c}});if(A)return r}function PV(n,e,t){let A=!1,r=n.map(i=>{let s=i.id,o=e[s];if(o!==void 0&&typeof o=="string"&&(A=!0,s=o,t!==null))throw new Error("not supported");let a=Pu(i.data,e,Bf(t,s));return Nf(t),A=A||a!==void 0,a===void 0&&(a=i.data),{...i,id:s,data:a}});if(A)return Object.setPrototypeOf(r,Object.getPrototypeOf(n)),r}function Pu(n,e,t){if(n instanceof qt){let A=BT(n,e,t);return A!==void 0&&Object.setPrototypeOf(A,Object.getPrototypeOf(n)),A}else{if(n instanceof He)return PV(n,e,t);if(Array.isArray(n)){let A=!1,r=n.map((i,s)=>{let o=Pu(i,e,Bf(t,s));return Nf(t),A=A||o!==void 0,o===void 0&&(o=i),o});return A?(Object.setPrototypeOf(r,Object.getPrototypeOf(n)),r):void 0}else if(n&&typeof n=="object"&&!dl(n)){let A={},r=!1;for(let[i,s]of Object.entries(n))if(i!=="name"&&i!=="text"){let o=e[i];if(typeof o=="string"){if(t!==null)throw new Error("not supported");r=!0,i=o}let a=Pu(s,e,Bf(t,i));Nf(t),r=r||a!==void 0,a===void 0&&(a=s),A[i]=a}else A[i]=s;return r?(Object.setPrototypeOf(A,Object.getPrototypeOf(n)),A):void 0}else if(typeof n=="string"){let A=e[n];if(A!==void 0){if(n.length!==36)throw new Error("for now you should only call this method when the key is a uuid");CV(t)}return A}else return}}var NT;(e=>{function n(t,A){let r=_i.zoom(A,t.path);if(typeof r=="object"){let i={};for(let s of Object.keys(t.props))i[s]=r[s];return{...t,props:i}}else return{...t,props:{}}}e.replaceProps=n})(NT||(NT={}));var ms;(o=>{function n(a,c){return{...a,path:a.path.slice(c)}}o.drop=n;function e(a,c){return t(a,c)?.data??a}o.applySimple=e;function t(a,c){let l=c.path;for(var u=[];;){let h;if(a instanceof UA&&c.type===0&&(h=a.runOp({...c,path:l.slice(u.length)}),h===null&&(h=void 0)),u.length===l.length&&(a instanceof qt||a instanceof He||a instanceof Bt?h=a.runOp(c):h=fl.runOp(a,c)),h!==void 0)if(h!==null){let f=h.data;for(let m=u.length-1;m>=0;m--){let y=l[m],g=u[m];if(g instanceof qt){if(typeof y=="number")throw new Error("illegal arg");f=g.modifyById(y,f)}else if(g instanceof He){if(typeof y=="number")throw new Error("illegal arg");f=g.modifyById(y,f)}else if(g instanceof Bt){if(typeof y=="number")throw new Error("illegal arg");f=g.modifyById(y,f)}else if(g instanceof UA){let b={...g,[y]:f};f=Object.setPrototypeOf(b,UA.prototype)}else if(typeof g=="object")if(Array.isArray(g)){if(typeof y=="string"&&(y=parseInt(y),isNaN(y)))throw new Error("Invalid path");let b=f;f=[...g],f[y]=b}else f={...g,[y]:f};else return null}return{data:f,actual:{...h.actual,path:l},reverse:{...h.reverse,path:l}}}else return null;let d=l[u.length],p;if(a instanceof qt){if(typeof d=="number")throw new Error("");p=a.get(d)?.data}else if(a instanceof He){if(typeof d=="number")throw new Error("");p=a.get(d)?.data}else a!==null&&(p=a[d]);if(p!==void 0)u.push(a),a=p;else return null}}o.apply=t;function A(a,c){for(let l=0;l<a.length&&l<c.length;l++)if(a[l]!==c[l])return!0;return!1}o.pathDisjoint=A;function r(a,c){if(a.length!==c.length)return!1;for(let l=0;l<a.length;l++)if(a[l]!==c[l])return!1;return!0}o.pathEq=r;function i(a,c){return A(a.path,c.path)}o.commutative=i;function s(a,c){return a.type===0&&c.type===0&&r(a.path,c.path)?Object.keys(a.props).every(l=>c.props[l]!==void 0):!1}o.subsumed=s})(ms||(ms={}));var FT;(a=>{function n(){return[]}a.empty=n;function e(c,l){let u=[];for(let h of c){let[d,...p]=h.path;d===l&&u.push({...h,path:p})}return u}a.removePrefix=e;function t(c,l){return c.map(u=>({...u,path:[l,...u.path]}))}a.addPrefix=t;function A(c,l){return[...c,...l]}a.concat=A;function r(c,l){return[...c.filter(h=>!l.some(d=>ms.subsumed(h,d))),...l]}a.compress=r;function i(c,l){return c.every(u=>l.every(h=>ms.commutative(u,h)))}a.commutative=i;function s(c,l){for(let u of l){let h=o(c,u);h!==null&&(c=h.data)}return c}a.applyAll=s;function o(c,l){var u=c;let h=[],d=[];for(let p of l)try{if(p.type===3){let f=_i.zoom(u,[...p.path,p.id]),m=ms.apply(u,{...p,type:2});if(m!==null){u=m.data;let[y,g]=RT(u,{[p.id]:f});u=y;for(let b of g){let x=b[b.length-1];b.splice(b.length-1,1),h.push({type:0,path:b,props:{[x]:f}}),d.push({type:0,path:b,props:{[x]:p.id}})}d.push(m.reverse),h.push(m.actual)}}else{let f=ms.apply(u,p);f!==null&&(h.push(f.actual),u=f.data,d.push(f.reverse))}}catch(f){if(f instanceof hl)return null;throw f}return{data:u,actual:h,reverse:d.reverse()}}a.apply=o})(FT||(FT={}));var GT=Symbol(),Du=Symbol(),xo=class{reportOp(e,t,A=[]){let r=this;if(t===null)return;r._current=t.data;let i=A;for(;!(r instanceof Gf);){let s=r._path,o=r._current;if(s!==""&&i.splice(0,0,s),r=r._parent,r===null)return;r.update(s,o)}r.push(i,e,t.actual,t.reverse)}deleteChildren(e){if(this._children){let t=this._children[e];if(t){let A=t[Du];A&&A(),delete this._children[e]}}}},nv=class extends xo{constructor(e,t,A){super(),this._parent=e,this._path=t,this._current=A}update(e,t){if(Array.isArray(this._current)){if(typeof e=="string"&&(e=parseInt(e),isNaN(e)))throw new Error("Invalid path");this._current=[...this._current],this._current[e]=t}else this._current={...this._current,[e]:t}}runOp(e){this.reportOp(e,fl.runOp(this._current,e),e.path)}},rv=class extends xo{constructor(e,t,A){super(),this._parent=e,this._path=t,this._current=A}update(e,t){this._current={...this._current,[e]:t},Object.setPrototypeOf(this._current,Bt.prototype)}runOp(e){this.reportOp(e,this._current.runOp(e))}},kT={get(n,e){if(e===Du)return()=>{n._parent=null};if(e===GT)return n._current;let{_current:t,_children:A}=n;if(e==="push"&&Array.isArray(t))throw new Error("not supported to expand array");let r=A===void 0?void 0:A[e];if(r!==void 0)return r;let i=t[e],s=kf(n,e,i);return s!==i?(A===void 0&&(A={},n._children=A),A[e]=s,s):i},has(n,e){return e in n._current},ownKeys(n){return Reflect.ownKeys(n._current)},defineProperty(){throw Error("not supported")},getPrototypeOf(n){return Object.getPrototypeOf(n._current)},setPrototypeOf(){throw Error("not supported")},getOwnPropertyDescriptor(n,e){let t=n._current,A=Reflect.getOwnPropertyDescriptor(t,e);return A&&{writable:!0,configurable:!0,enumerable:A.enumerable,value:t[e]}}},DV={...kT,set(n,e,t){let A={type:0,props:{[e]:mn(t)??t}};return n.deleteChildren(e),n.runOp(A),!0},deleteProperty(n,e){let t={type:0,props:{[e]:void 0}};return n.deleteChildren(e),n.runOp(t),!0}},IV={...kT,set(n,e,t){return t===void 0?this.deleteProperty(n,e):(n.deleteChildren(e),n.runOp({type:1,id:e,data:t})),!0},deleteProperty(n,e){return n.runOp({type:2,id:e}),!0}},ml=class extends xo{constructor(e,t,A){super(),this._children={},this._parent=e,this._path=t,this._current=A,this[Du]=()=>{this._parent=null}}unproxy(){return this._current}update(e,t){this._current=this._current.modifyById(e,t)}runOp(e){this.reportOp(e,this._current.runOp(e))}randomId(){return this._current.randomId()}isDescendantOf(e,t){return this._current.isDescendantOf(e,t)}childrenOf(e){return this._current.childrenOf(e)}traverse(e){return this._current.traverse(e)}get(e){return this._current.get(e)}parent(e){return this._current.parent(e)}traverse(e){this._current.traverse((t,A)=>{e(t,this.data(t))})}data(e){let{_current:t,_children:A}=this,r=A===void 0?void 0:A[e];if(r!==void 0)return r;let i=t.get(e)?.data,s=kf(this,e,i);return s!==i?(A===void 0&&(A={},this._children=A),A[e]=s,s):i}add(e,t,A,r,i){this.runOp({type:7,parent:e,fi:t,id:A,data:r,children:i})}move(e,t,A){this.runOp({type:9,parent:e,fi:t,id:A})}insertAfter(e,t,A){let r=this._current.insertAfterHelper(e,t,A.length);for(let i=0;i<A.length;i++){let s=A[i];this.add(e,r[i],s.id,s.data,s.children)}}insertBefore(e,t,A){let r=this._current.insertBeforeHelper(e,t,A.length);for(let i=0;i<A.length;i++){let s=A[i];this.add(e,r[i],s.id,s.data,s.children)}}moveAfter(e,t,A){let r=this._current.insertAfterHelper(e,t,A.length);for(let i=0;i<A.length;i++){let s=A[i];this.move(e,r[i],s)}}moveBefore(e,t,A){let r=this._current.insertBeforeHelper(e,t,A.length);for(let i=0;i<A.length;i++){let s=A[i];this.move(e,r[i],s)}}delete(e){this.deleteChildren(e),this.runOp({type:8,id:e})}sortNext(e){return this._current.sortNext(e)}sortPrevious(e){return this._current.sortPrevious(e)}getAllSorted(e){return this._current.getAllSorted(e)}},Ff=class extends xo{constructor(e,t,A){super(),this._parent=e,this._path=t,this._current=A,this[Du]=()=>{this._parent=null}}feedOp(e){let{path:t,...A}=e;this.reportOp(A,ms.apply(this._current,e),t)}},gl=class extends xo{constructor(e,t,A){super(),this._children={},this._parent=e,this._path=t,this._current=A,this[Du]=()=>{this._parent=null}}unproxy(){return this._current}get length(){return this._current.length}forEach(e){let t=this.length;for(let A=0;A<t;A++){let r=this._current[A].id,i=this._current[A].fi;e(this.data(this._current[A].id),r,i)}}find(e){let t=this.length;for(let A=0;A<t;A++){let r=this._current[A].id;if(e(this.data(r),r))return this.get(r)}}update(e,t){this._current=this._current.modifyById(e,t)}randomId(){return this._current.randomId()}get(e){return{...this._current.get(e),data:this.data(e)}}data(e){let{_current:t,_children:A}=this,r=A===void 0?void 0:A[e];if(r!==void 0)return r;let i=t.get(e)?.data,s=kf(this,e,i);return s!==i?(A===void 0&&(A={},this._children=A),A[e]=s,s):i}runOp(e){this.reportOp(e,this._current.runOp(e))}add(e,t,A){this.runOp({type:4,fi:e,id:t,data:A})}move(e,t){this.runOp({type:6,fi:e,id:t})}insertAfter(e,t){let A=this._current.insertAfterHelper(e,t.length);for(let r=0;r<t.length;r++){let i=t[r];this.add(A[r],i.id,i.data)}}insertBefore(e,t){let A=this._current.insertBeforeHelper(e,t.length);for(let r=0;r<t.length;r++){let i=t[r];this.add(A[r],i.id,i.data)}}moveAfter(e,t){let A=this._current.insertAfterHelper(e,t.length);for(let r=0;r<t.length;r++){let i=t[r];this.move(A[r],i)}}moveBefore(e,t){let A=this._current.insertBeforeHelper(e,t.length);for(let r=0;r<t.length;r++){let i=t[r];this.move(A[r],i)}}delete(e){this.deleteChildren(e),this.runOp({type:5,id:e})}};function Av(n,e,t){if(n.length>0){let A=n[n.length-1];if(A.type===0&&e.type===0&&_i.equal(A.path,t)){Object.assign(A.props,e.props);return}}n.push({...e,path:t})}var Gf=class{constructor(e){this.ts=[],this.actual=[],this.reverse=[],this._current=e}update(e,t){if(e!=="")throw new Error("");this._current=t}push(e,t,A,r){Av(this.ts,t,e),Av(this.actual,A,e),Av(this.reverse,r,e)}result(){return{data:this._current,ts:this.ts,actual:this.actual,reverse:this.reverse.reverse()}}};function kf(n,e,t){return t instanceof qt?new ml(n,e,t):t instanceof He?new gl(n,e,t):t instanceof UA?new Ff(n,e,t):t instanceof Bt?new Proxy(new rv(n,e,t),IV):t!==null&&typeof t=="object"?dl(t)?t:new Proxy(new nv(n,e,t),DV):t}function iv(n){let e=new Gf(n);return[kf(e,"",n),e]}function sv(n,e){let[t,A]=iv(n);return e(t),A.result()}function mn(n){return n instanceof ml||n instanceof gl||n instanceof Ff?n._current:n!==null&&typeof n=="object"?n[GT]:n}var _i;(r=>{function n(i,s){if(s.length===i.length)for(var o=0;o<i.length;){if(i[o]!==s[o])return!1;o+=1}else return!1;return!0}r.equal=n;function e(i,s,o){let a=A(o,i);if(a!==void 0&&typeof a=="object"&&a!==null){let c={...s};return Object.keys(a).forEach(l=>{delete c[l]}),c}else return s}r.removeOverridden=e;function t(i,s){if((i instanceof qt||i instanceof ml)&&typeof s=="string")return i.data(s);if((i instanceof He||i instanceof gl)&&typeof s=="string")return i.data(s);if(typeof s=="number"&&Array.isArray(i))return i[s];if(typeof s=="string"&&typeof i=="object"&&i!==null)return i[s]}r.zoomOnce=t;function A(i,s,o=0){for(;o<s.length&&i!==void 0;)i=t(i,s[o]),o+=1;return i}r.zoom=A})(_i||(_i={}));var Uf=class{},Iu=class extends Uf{constructor(t){super();this.id=t}},Lu=class extends Uf{constructor(t){super();this.data=t}};var av;try{av=new TextDecoder}catch{}var Le,ys,Z=0;var qT=[],lv=qT,cv=0,gn={},bt,gs,Zn=0,kr=0,Nn,Oi,an=[],Pt,UT={useRecords:!1,mapsAsObjects:!0},_u=class{},hv=new _u;hv.name="MessagePack 0xC1";var yl=!1,Ur=class{constructor(e){e&&(e.useRecords===!1&&e.mapsAsObjects===void 0&&(e.mapsAsObjects=!0),e.structures?e.structures.sharedLength=e.structures.length:e.getStructures&&((e.structures=[]).uninitialized=!0,e.structures.sharedLength=0)),Object.assign(this,e)}unpack(e,t){if(Le)return JT(()=>(zf(),this?this.unpack(e,t):Ur.prototype.unpack.call(UT,e,t)));ys=t>-1?t:e.length,Z=0,cv=0,kr=0,gs=null,lv=qT,Nn=null,Le=e;try{Pt=e.dataView||(e.dataView=new DataView(e.buffer,e.byteOffset,e.byteLength))}catch(A){throw Le=null,e instanceof Uint8Array?A:new Error("Source must be a Uint8Array or Buffer but was a "+(e&&typeof e=="object"?e.constructor.name:typeof e))}if(this instanceof Ur){if(gn=this,this.structures)return bt=this.structures,Vf();(!bt||bt.length>0)&&(bt=[])}else gn=UT,(!bt||bt.length>0)&&(bt=[]);return Vf()}unpackMultiple(e,t){let A,r=0;try{yl=!0;let i=e.length,s=this?this.unpack(e,i):jf.unpack(e,i);if(t){for(t(s);Z<i;)if(r=Z,t(Vf())===!1)return}else{for(A=[s];Z<i;)r=Z,A.push(Vf());return A}}catch(i){throw i.lastPosition=r,i.values=A,i}finally{yl=!1,zf()}}_mergeStructures(e,t){e=e||[];for(let A=0,r=e.length;A<r;A++){let i=e[A];i&&(i.isShared=!0,A>=32&&(i.highByte=A-32>>5))}e.sharedLength=e.length;for(let A in t||[])if(A>=0){let r=e[A],i=t[A];i&&(r&&((e.restoreStructures||(e.restoreStructures=[]))[A]=r),e[A]=i)}return this.structures=e}decode(e,t){return this.unpack(e,t)}};function Vf(){try{if(!gn.trusted&&!yl){let e=bt.sharedLength||0;e<bt.length&&(bt.length=e)}let n=$t();if(Z==ys)bt.restoreStructures&&VT(),bt=null,Le=null,Oi&&(Oi=null);else if(Z>ys){let e=new Error("Unexpected end of MessagePack data");throw e.incomplete=!0,e}else if(!yl)throw new Error("Data read, but end of buffer not reached");return n}catch(n){throw bt.restoreStructures&&VT(),zf(),(n instanceof RangeError||n.message.startsWith("Unexpected end of buffer"))&&(n.incomplete=!0),n}}function VT(){for(let n in bt.restoreStructures)bt[n]=bt.restoreStructures[n];bt.restoreStructures=null}function $t(){let n=Le[Z++];if(n<160)if(n<128){if(n<64)return n;{let e=bt[n&63]||gn.getStructures&&XT()[n&63];return e?(e.read||(e.read=dv(e,n&63)),e.read()):n}}else if(n<144)if(n-=128,gn.mapsAsObjects){let e={};for(let t=0;t<n;t++)e[ZT()]=$t();return e}else{let e=new Map;for(let t=0;t<n;t++)e.set($t(),$t());return e}else{n-=144;let e=new Array(n);for(let t=0;t<n;t++)e[t]=$t();return e}else if(n<192){let e=n-160;if(kr>=Z)return gs.slice(Z-Zn,(Z+=e)-Zn);if(kr==0&&ys<140){let t=e<16?fv(e):QT(e);if(t!=null)return t}return uv(e)}else{let e;switch(n){case 192:return null;case 193:return Nn?(e=$t(),e>0?Nn[1].slice(Nn.position1,Nn.position1+=e):Nn[0].slice(Nn.position0,Nn.position0-=e)):hv;case 194:return!1;case 195:return!0;case 196:return ov(Le[Z++]);case 197:return e=Pt.getUint16(Z),Z+=2,ov(e);case 198:return e=Pt.getUint32(Z),Z+=4,ov(e);case 199:return bo(Le[Z++]);case 200:return e=Pt.getUint16(Z),Z+=2,bo(e);case 201:return e=Pt.getUint32(Z),Z+=4,bo(e);case 202:if(e=Pt.getFloat32(Z),gn.useFloat32>2){let t=Wf[(Le[Z]&127)<<1|Le[Z+1]>>7];return Z+=4,(t*e+(e>0?.5:-.5)>>0)/t}return Z+=4,e;case 203:return e=Pt.getFloat64(Z),Z+=8,e;case 204:return Le[Z++];case 205:return e=Pt.getUint16(Z),Z+=2,e;case 206:return e=Pt.getUint32(Z),Z+=4,e;case 207:return gn.int64AsNumber?(e=Pt.getUint32(Z)*4294967296,e+=Pt.getUint32(Z+4)):e=Pt.getBigUint64(Z),Z+=8,e;case 208:return Pt.getInt8(Z++);case 209:return e=Pt.getInt16(Z),Z+=2,e;case 210:return e=Pt.getInt32(Z),Z+=4,e;case 211:return gn.int64AsNumber?(e=Pt.getInt32(Z)*4294967296,e+=Pt.getUint32(Z+4)):e=Pt.getBigInt64(Z),Z+=8,e;case 212:if(e=Le[Z++],e==114)return YT(Le[Z++]&63);{let t=an[e];if(t)return t.read?(Z++,t.read($t())):t.noBuffer?(Z++,t()):t(Le.subarray(Z,++Z));throw new Error("Unknown extension "+e)}case 213:return e=Le[Z],e==114?(Z++,YT(Le[Z++]&63,Le[Z++])):bo(2);case 214:return bo(4);case 215:return bo(8);case 216:return bo(16);case 217:return e=Le[Z++],kr>=Z?gs.slice(Z-Zn,(Z+=e)-Zn):_V(e);case 218:return e=Pt.getUint16(Z),Z+=2,kr>=Z?gs.slice(Z-Zn,(Z+=e)-Zn):OV(e);case 219:return e=Pt.getUint32(Z),Z+=4,kr>=Z?gs.slice(Z-Zn,(Z+=e)-Zn):RV(e);case 220:return e=Pt.getUint16(Z),Z+=2,HT(e);case 221:return e=Pt.getUint32(Z),Z+=4,HT(e);case 222:return e=Pt.getUint16(Z),Z+=2,WT(e);case 223:return e=Pt.getUint32(Z),Z+=4,WT(e);default:if(n>=224)return n-256;if(n===void 0){let t=new Error("Unexpected end of MessagePack data");throw t.incomplete=!0,t}throw new Error("Unknown MessagePack token "+n)}}}var LV=/^[a-zA-Z_$][a-zA-Z\d_$]*$/;function dv(n,e){function t(){if(t.count++>2){let r=n.read=new Function("r","return function(){return {"+n.map(i=>LV.test(i)?i+":r()":"["+JSON.stringify(i)+"]:r()").join(",")+"}}")($t);return n.highByte===0&&(n.read=zT(e,n.read)),r()}let A={};for(let r=0,i=n.length;r<i;r++){let s=n[r];A[s]=$t()}return A}return t.count=0,n.highByte===0?zT(e,t):t}var zT=(n,e)=>function(){let t=Le[Z++];if(t===0)return e();let A=n<32?-(n+(t<<5)):n+(t<<5),r=bt[A]||XT()[A];if(!r)throw new Error("Record id is not defined for "+A);return r.read||(r.read=dv(r,n)),r.read()};function XT(){let n=JT(()=>(Le=null,gn.getStructures()));return bt=gn._mergeStructures(n,bt)}var uv=Hf,_V=Hf,OV=Hf,RV=Hf;function Hf(n){let e;if(n<16&&(e=fv(n)))return e;if(n>64&&av)return av.decode(Le.subarray(Z,Z+=n));let t=Z+n,A=[];for(e="";Z<t;){let r=Le[Z++];if((r&128)===0)A.push(r);else if((r&224)===192){let i=Le[Z++]&63;A.push((r&31)<<6|i)}else if((r&240)===224){let i=Le[Z++]&63,s=Le[Z++]&63;A.push((r&31)<<12|i<<6|s)}else if((r&248)===240){let i=Le[Z++]&63,s=Le[Z++]&63,o=Le[Z++]&63,a=(r&7)<<18|i<<12|s<<6|o;a>65535&&(a-=65536,A.push(a>>>10&1023|55296),a=56320|a&1023),A.push(a)}else A.push(r);A.length>=4096&&(e+=OA.apply(String,A),A.length=0)}return A.length>0&&(e+=OA.apply(String,A)),e}function HT(n){let e=new Array(n);for(let t=0;t<n;t++)e[t]=$t();return e}function WT(n){if(gn.mapsAsObjects){let e={};for(let t=0;t<n;t++)e[ZT()]=$t();return e}else{let e=new Map;for(let t=0;t<n;t++)e.set($t(),$t());return e}}var OA=String.fromCharCode;function QT(n){let e=Z,t=new Array(n);for(let A=0;A<n;A++){let r=Le[Z++];if((r&128)>0){Z=e;return}t[A]=r}return OA.apply(String,t)}function fv(n){if(n<4)if(n<2){if(n===0)return"";{let e=Le[Z++];if((e&128)>1){Z-=1;return}return OA(e)}}else{let e=Le[Z++],t=Le[Z++];if((e&128)>0||(t&128)>0){Z-=2;return}if(n<3)return OA(e,t);let A=Le[Z++];if((A&128)>0){Z-=3;return}return OA(e,t,A)}else{let e=Le[Z++],t=Le[Z++],A=Le[Z++],r=Le[Z++];if((e&128)>0||(t&128)>0||(A&128)>0||(r&128)>0){Z-=4;return}if(n<6){if(n===4)return OA(e,t,A,r);{let i=Le[Z++];if((i&128)>0){Z-=5;return}return OA(e,t,A,r,i)}}else if(n<8){let i=Le[Z++],s=Le[Z++];if((i&128)>0||(s&128)>0){Z-=6;return}if(n<7)return OA(e,t,A,r,i,s);let o=Le[Z++];if((o&128)>0){Z-=7;return}return OA(e,t,A,r,i,s,o)}else{let i=Le[Z++],s=Le[Z++],o=Le[Z++],a=Le[Z++];if((i&128)>0||(s&128)>0||(o&128)>0||(a&128)>0){Z-=8;return}if(n<10){if(n===8)return OA(e,t,A,r,i,s,o,a);{let c=Le[Z++];if((c&128)>0){Z-=9;return}return OA(e,t,A,r,i,s,o,a,c)}}else if(n<12){let c=Le[Z++],l=Le[Z++];if((c&128)>0||(l&128)>0){Z-=10;return}if(n<11)return OA(e,t,A,r,i,s,o,a,c,l);let u=Le[Z++];if((u&128)>0){Z-=11;return}return OA(e,t,A,r,i,s,o,a,c,l,u)}else{let c=Le[Z++],l=Le[Z++],u=Le[Z++],h=Le[Z++];if((c&128)>0||(l&128)>0||(u&128)>0||(h&128)>0){Z-=12;return}if(n<14){if(n===12)return OA(e,t,A,r,i,s,o,a,c,l,u,h);{let d=Le[Z++];if((d&128)>0){Z-=13;return}return OA(e,t,A,r,i,s,o,a,c,l,u,h,d)}}else{let d=Le[Z++],p=Le[Z++];if((d&128)>0||(p&128)>0){Z-=14;return}if(n<15)return OA(e,t,A,r,i,s,o,a,c,l,u,h,d,p);let f=Le[Z++];if((f&128)>0){Z-=15;return}return OA(e,t,A,r,i,s,o,a,c,l,u,h,d,p,f)}}}}}function ov(n){return gn.copyBuffers?Uint8Array.prototype.slice.call(Le,Z,Z+=n):Le.subarray(Z,Z+=n)}function bo(n){let e=Le[Z++];if(an[e])return an[e](Le.subarray(Z,Z+=n));throw new Error("Unknown extension type "+e)}var jT=new Array(4096);function ZT(){let n=Le[Z++];if(n>=160&&n<192){if(n=n-160,kr>=Z)return gs.slice(Z-Zn,(Z+=n)-Zn);if(!(kr==0&&ys<180))return uv(n)}else return Z--,$t();let e=(n<<5^(n>1?Pt.getUint16(Z):n>0?Le[Z]:0))&4095,t=jT[e],A=Z,r=Z+n-3,i,s=0;if(t&&t.bytes==n){for(;A<r;){if(i=Pt.getUint32(A),i!=t[s++]){A=1879048192;break}A+=4}for(r+=3;A<r;)if(i=Le[A++],i!=t[s++]){A=1879048192;break}if(A===r)return Z=A,t.string;r-=3,A=Z}for(t=[],jT[e]=t,t.bytes=n;A<r;)i=Pt.getUint32(A),t.push(i),A+=4;for(r+=3;A<r;)i=Le[A++],t.push(i);let o=n<16?fv(n):QT(n);return o!=null?t.string=o:t.string=uv(n)}var YT=(n,e)=>{var t=$t();let A=n;e!==void 0&&(n=n<32?-((e<<5)+n):(e<<5)+n,t.highByte=e);let r=bt[n];return r&&r.isShared&&((bt.restoreStructures||(bt.restoreStructures=[]))[n]=r),bt[n]=t,t.read=dv(t,A),t.read()},KT=typeof self=="object"?self:global;an[0]=()=>{};an[0].noBuffer=!0;an[101]=()=>{let n=$t();return(KT[n[0]]||Error)(n[1])};an[105]=n=>{let e=Pt.getUint32(Z-4);Oi||(Oi=new Map);let t=Le[Z],A;t>=144&&t<160||t==220||t==221?A=[]:A={};let r={target:A};Oi.set(e,r);let i=$t();return r.used?Object.assign(A,i):(r.target=i,i)};an[112]=n=>{let e=Pt.getUint32(Z-4),t=Oi.get(e);return t.used=!0,t.target};an[115]=()=>new Set($t());var pv=["Int8","Uint8","Uint8Clamped","Int16","Uint16","Int32","Uint32","Float32","Float64","BigInt64","BigUint64"].map(n=>n+"Array");an[116]=n=>{let e=n[0],t=pv[e];if(!t)throw new Error("Could not find typed array for code "+e);return new KT[t](Uint8Array.prototype.slice.call(n,1).buffer)};an[120]=()=>{let n=$t();return new RegExp(n[0],n[1])};an[98]=n=>{let e=(n[0]<<24)+(n[1]<<16)+(n[2]<<8)+n[3],t=Z;Z+=e-4,Nn=[$t(),$t()],Nn.position0=0,Nn.position1=0;let A=Z;Z=t;try{return $t()}finally{Z=A}};an[255]=n=>n.length==4?new Date((n[0]*16777216+(n[1]<<16)+(n[2]<<8)+n[3])*1e3):n.length==8?new Date(((n[0]<<22)+(n[1]<<14)+(n[2]<<6)+(n[3]>>2))/1e6+((n[3]&3)*4294967296+n[4]*16777216+(n[5]<<16)+(n[6]<<8)+n[7])*1e3):n.length==12?new Date(((n[0]<<24)+(n[1]<<16)+(n[2]<<8)+n[3])/1e6+((n[4]&128?-281474976710656:0)+n[6]*1099511627776+n[7]*4294967296+n[8]*16777216+(n[9]<<16)+(n[10]<<8)+n[11])*1e3):new Date("invalid");function JT(n){let e=ys,t=Z,A=cv,r=Zn,i=kr,s=gs,o=lv,a=Oi,c=Nn,l=new Uint8Array(Le.slice(0,ys)),u=bt,h=bt.slice(0,bt.length),d=gn,p=yl,f=n();return ys=e,Z=t,cv=A,Zn=r,kr=i,gs=s,lv=o,Oi=a,Nn=c,Le=l,yl=p,bt=u,bt.splice(0,bt.length,...h),gn=d,Pt=new DataView(Le.buffer,Le.byteOffset,Le.byteLength),f}function zf(){Le=null,Oi=null,bt=null}function $T(n){n.unpack?an[n.type]=n.unpack:an[n.type]=n}var Wf=new Array(147);for(let n=0;n<256;n++)Wf[n]=+("1e"+Math.floor(45.15-n*.30103));var jf=new Ur({useRecords:!1}),BV=jf.unpack,NV=jf.unpackMultiple,FV=jf.unpack,Yf={NEVER:0,ALWAYS:1,DECIMAL_ROUND:3,DECIMAL_FIT:4},GV=new Float32Array(1),L$=new Uint8Array(GV.buffer,0,4);var qf;try{qf=new TextEncoder}catch{}var Xf,gv,Qf=typeof Buffer<"u",mv=Qf?Buffer.allocUnsafeSlow:Uint8Array,nM=Qf?Buffer:Uint8Array,eM=Qf?4294967296:2144337920,oe,oA,ee=0,Vr,zr=null,kV=/[\u0080-\uFFFF]/,Ou=Symbol("record-id"),wo=class extends Ur{constructor(e){super(e),this.offset=0;let t,A,r,i,s,o,a=0,c=nM.prototype.utf8Write?function(v,E,C){return oe.utf8Write(v,E,C)}:qf&&qf.encodeInto?function(v,E){return qf.encodeInto(v,oe.subarray(E)).written}:!1,l=this;e||(e={});let u=e&&e.sequential,h=e.structures||e.saveStructures,d=e.maxSharedStructures;if(d==null&&(d=h?32:0),d>8160)throw new Error("Maximum maxSharedStructure is 8160");let p=e.maxOwnStructures;p==null&&(p=h?32:64),u&&!e.saveStructures&&(this.structures=[]);let f=d>32||p+d>64,m=d+64,y=d+p+64;if(y>8256)throw new Error("Maximum maxSharedStructure + maxOwnStructure is 8192");let g=[],b=0,x=0;this.pack=this.encode=function(v,E){if(oe||(oe=new mv(8192),oA=new DataView(oe.buffer,0,8192),ee=0),Vr=oe.length-10,Vr-ee<2048?(oe=new mv(oe.length),oA=new DataView(oe.buffer,0,oe.length),Vr=oe.length-10,ee=0):ee=ee+7&2147483640,A=ee,o=l.structuredClone?new Map:null,l.bundleStrings?(zr=["",""],oe[ee++]=214,oe[ee++]=98,zr.position=ee-A,ee+=4):zr=null,r=l.structures,r){r.uninitialized&&(r=l._mergeStructures(l.getStructures()));let C=r.sharedLength||0;if(C>d)throw new Error("Shared structures is larger than maximum shared structures, try increasing maxSharedStructures to "+r.sharedLength);if(!r.transitions){r.transitions=Object.create(null);for(let P=0;P<C;P++){let D=r[P];if(!D)continue;let _,I=r.transitions;for(let B=0,N=D.length;B<N;B++){let W=D[B];_=I[W],_||(_=I[W]=Object.create(null)),I=_}I[Ou]=P+64}a=C}u||(r.nextId=C+64)}i&&(i=!1),s=r||[];try{if(w(v),zr){oA.setUint32(zr.position+A,ee-zr.position-A);let C=zr;zr=null,w(C[0]),w(C[1])}if(l.offset=ee,o&&o.idsToInsert){ee+=o.idsToInsert.length*6,ee>Vr&&M(ee),l.offset=ee;let C=VV(oe.subarray(A,ee),o.idsToInsert);return o=null,C}return E&iM?(oe.start=A,oe.end=ee,oe):oe.subarray(A,ee)}finally{if(r){if(x<10&&x++,b>1e4)r.transitions=null,x=0,b=0,g.length>0&&(g=[]);else if(g.length>0&&!u){for(let C=0,P=g.length;C<P;C++)g[C][Ou]=0;g=[]}if(i&&l.saveStructures){let C=r.sharedLength||d;r.length>C&&(r=r.slice(0,C));let P=oe.subarray(A,ee);return l.saveStructures(r,a)===!1?(l._mergeStructures(l.getStructures()),l.pack(v)):(a=C,P)}}E&XV&&(ee=A)}};let w=v=>{ee>Vr&&(oe=M(ee));var E=typeof v,C;if(E==="string"){let P=v.length;if(zr&&P>=8&&P<4096){let I=kV.test(v);zr[I?0:1]+=v,oe[ee++]=193,w(I?-P:P);return}let D;P<32?D=1:P<256?D=2:P<65536?D=3:D=5;let _=P*3;if(ee+_>Vr&&(oe=M(ee+_)),P<64||!c){let I,B,N,W=ee+D;for(I=0;I<P;I++)B=v.charCodeAt(I),B<128?oe[W++]=B:B<2048?(oe[W++]=B>>6|192,oe[W++]=B&63|128):(B&64512)===55296&&((N=v.charCodeAt(I+1))&64512)===56320?(B=65536+((B&1023)<<10)+(N&1023),I++,oe[W++]=B>>18|240,oe[W++]=B>>12&63|128,oe[W++]=B>>6&63|128,oe[W++]=B&63|128):(oe[W++]=B>>12|224,oe[W++]=B>>6&63|128,oe[W++]=B&63|128);C=W-ee-D}else C=c(v,ee+D,_);C<32?oe[ee++]=160|C:C<256?(D<2&&oe.copyWithin(ee+2,ee+1,ee+1+C),oe[ee++]=217,oe[ee++]=C):C<65536?(D<3&&oe.copyWithin(ee+3,ee+2,ee+2+C),oe[ee++]=218,oe[ee++]=C>>8,oe[ee++]=C&255):(D<5&&oe.copyWithin(ee+5,ee+3,ee+3+C),oe[ee++]=219,oA.setUint32(ee,C),ee+=4),ee+=C}else if(E==="number")if(v>>>0===v)v<64?oe[ee++]=v:v<256?(oe[ee++]=204,oe[ee++]=v):v<65536?(oe[ee++]=205,oe[ee++]=v>>8,oe[ee++]=v&255):(oe[ee++]=206,oA.setUint32(ee,v),ee+=4);else if(v>>0===v)v>=-32?oe[ee++]=256+v:v>=-128?(oe[ee++]=208,oe[ee++]=v+256):v>=-32768?(oe[ee++]=209,oA.setInt16(ee,v),ee+=2):(oe[ee++]=210,oA.setInt32(ee,v),ee+=4);else{let P;if((P=this.useFloat32)>0&&v<4294967296&&v>=-2147483648){oe[ee++]=202,oA.setFloat32(ee,v);let D;if(P<4||(D=v*Wf[(oe[ee]&127)<<1|oe[ee+1]>>7])>>0===D){ee+=4;return}else ee--}oe[ee++]=203,oA.setFloat64(ee,v),ee+=8}else if(E==="object")if(!v)oe[ee++]=192;else{if(o){let D=o.get(v);if(D){if(!D.id){let _=o.idsToInsert||(o.idsToInsert=[]);D.id=_.push(D)}oe[ee++]=214,oe[ee++]=112,oA.setUint32(ee,D.id),ee+=4;return}else o.set(v,{offset:ee-A})}let P=v.constructor;if(P===Object)T(v,!0);else if(P===Array){C=v.length,C<16?oe[ee++]=144|C:C<65536?(oe[ee++]=220,oe[ee++]=C>>8,oe[ee++]=C&255):(oe[ee++]=221,oA.setUint32(ee,C),ee+=4);for(let D=0;D<C;D++)w(v[D])}else if(P===Map){C=v.size,C<16?oe[ee++]=128|C:C<65536?(oe[ee++]=222,oe[ee++]=C>>8,oe[ee++]=C&255):(oe[ee++]=223,oA.setUint32(ee,C),ee+=4);for(let[D,_]of v)w(D),w(_)}else{for(let D=0,_=Xf.length;D<_;D++){let I=gv[D];if(v instanceof I){let B=Xf[D];if(B.write){B.type&&(oe[ee++]=212,oe[ee++]=B.type,oe[ee++]=0),w(B.write.call(this,v));return}let N=oe,W=oA,X=ee;oe=null;let F;try{F=B.pack.call(this,v,k=>(oe=N,N=null,ee+=k,ee>Vr&&M(ee),{target:oe,targetView:oA,position:ee-k}),w)}finally{N&&(oe=N,oA=W,ee=X,Vr=oe.length-10)}F&&(F.length+ee>Vr&&M(F.length+ee),ee=UV(F,oe,ee,B.type));return}}T(v,!v.hasOwnProperty)}}else if(E==="boolean")oe[ee++]=v?195:194;else if(E==="bigint"){if(v<BigInt(1)<<BigInt(63)&&v>=-(BigInt(1)<<BigInt(63)))oe[ee++]=211,oA.setBigInt64(ee,v);else if(v<BigInt(1)<<BigInt(64)&&v>0)oe[ee++]=207,oA.setBigUint64(ee,v);else if(this.largeBigIntToFloat)oe[ee++]=203,oA.setFloat64(ee,Number(v));else throw new RangeError(v+" was too large to fit in MessagePack 64-bit integer format, set largeBigIntToFloat to convert to float-64");ee+=8}else if(E==="undefined")this.encodeUndefinedAsNil?oe[ee++]=192:(oe[ee++]=212,oe[ee++]=0,oe[ee++]=0);else if(E==="function")w(this.writeFunction&&this.writeFunction());else throw new Error("Unknown type: "+E)},T=this.useRecords===!1?this.variableMapSize?v=>{let E=Object.keys(v),C=E.length;C<16?oe[ee++]=128|C:C<65536?(oe[ee++]=222,oe[ee++]=C>>8,oe[ee++]=C&255):(oe[ee++]=223,oA.setUint32(ee,C),ee+=4);let P;for(let D=0;D<C;D++)w(P=E[D]),w(v[P])}:(v,E)=>{oe[ee++]=222;let C=ee-A;ee+=2;let P=0;for(let D in v)(E||v.hasOwnProperty(D))&&(w(D),w(v[D]),P++);oe[C+++A]=P>>8,oe[C+A]=P&255}:v=>{let E=Object.keys(v),C,P=s.transitions||(s.transitions=Object.create(null)),D=0;for(let I=0,B=E.length;I<B;I++){let N=E[I];C=P[N],C||(C=P[N]=Object.create(null),D++),P=C}let _=P[Ou];if(_)_>=96&&f?(oe[ee++]=((_-=96)&31)+96,oe[ee++]=_>>5):oe[ee++]=_;else{_=s.nextId,_||(_=64),_<m&&this.shouldShareStructure&&!this.shouldShareStructure(E)?(_=s.nextOwnId,_<y||(_=m),s.nextOwnId=_+1):(_>=y&&(_=m),s.nextId=_+1);let I=E.highByte=_>=96&&f?_-96>>5:-1;P[Ou]=_,s[_-64]=E,_<m?(E.isShared=!0,s.sharedLength=_-63,i=!0,I>=0?(oe[ee++]=(_&31)+96,oe[ee++]=I):oe[ee++]=_):(I>=0?(oe[ee++]=213,oe[ee++]=114,oe[ee++]=(_&31)+96,oe[ee++]=I):(oe[ee++]=212,oe[ee++]=114,oe[ee++]=_),D&&(b+=x*D),g.length>=p&&(g.shift()[Ou]=0),g.push(P),w(E))}for(let I=0,B=E.length;I<B;I++)w(v[E[I]])},M=v=>{let E;if(v>16777216){if(v-A>eM)throw new Error("Packed buffer would be larger than maximum buffer size");E=Math.min(eM,Math.round(Math.max((v-A)*(v>67108864?1.25:2),4194304)/4096)*4096)}else E=(Math.max(v-A<<2,oe.length-1)>>12)+1<<12;let C=new mv(E);return oA=new DataView(C.buffer,0,E),oe.copy?oe.copy(C,0,A,v):C.set(oe.slice(A,v)),ee-=A,A=0,Vr=C.length-10,oe=C}}useBuffer(e){oe=e,oA=new DataView(oe.buffer,oe.byteOffset,oe.byteLength),ee=0}};gv=[Date,Set,Error,RegExp,ArrayBuffer,Object.getPrototypeOf(Uint8Array.prototype).constructor,_u];Xf=[{pack(n,e,t){let A=n.getTime()/1e3;if((this.useTimestamp32||n.getMilliseconds()===0)&&A>=0&&A<4294967296){let{target:r,targetView:i,position:s}=e(6);r[s++]=214,r[s++]=255,i.setUint32(s,A)}else if(A>0&&A<17179869184){let{target:r,targetView:i,position:s}=e(10);r[s++]=215,r[s++]=255,i.setUint32(s,n.getMilliseconds()*4e6+(A/1e3/4294967296>>0)),i.setUint32(s+4,A)}else if(isNaN(A)){if(this.onInvalidDate)return e(0),t(this.onInvalidDate());let{target:r,targetView:i,position:s}=e(3);r[s++]=212,r[s++]=255,r[s++]=255}else{let{target:r,targetView:i,position:s}=e(15);r[s++]=199,r[s++]=12,r[s++]=255,i.setUint32(s,n.getMilliseconds()*1e6),i.setBigInt64(s+4,BigInt(Math.floor(A)))}}},{pack(n,e,t){let A=Array.from(n),{target:r,position:i}=e(this.structuredClone?3:0);this.structuredClone&&(r[i++]=212,r[i++]=115,r[i++]=0),t(A)}},{pack(n,e,t){let{target:A,position:r}=e(this.structuredClone?3:0);this.structuredClone&&(A[r++]=212,A[r++]=101,A[r++]=0),t([n.name,n.message])}},{pack(n,e,t){let{target:A,position:r}=e(this.structuredClone?3:0);this.structuredClone&&(A[r++]=212,A[r++]=120,A[r++]=0),t([n.source,n.flags])}},{pack(n,e){this.structuredClone?tM(n,16,e):AM(Qf?Buffer.from(n):new Uint8Array(n),e)}},{pack(n,e){let t=n.constructor;t!==nM&&this.structuredClone?tM(n,pv.indexOf(t.name),e):AM(n,e)}},{pack(n,e){let{target:t,position:A}=e(1);t[A]=193}}];function tM(n,e,t,A){let r=n.byteLength;if(r+1<256){var{target:i,position:s}=t(4+r);i[s++]=199,i[s++]=r+1}else if(r+1<65536){var{target:i,position:s}=t(5+r);i[s++]=200,i[s++]=r+1>>8,i[s++]=r+1&255}else{var{target:i,position:s,targetView:o}=t(7+r);i[s++]=201,o.setUint32(s,r+1),s+=4}i[s++]=116,i[s++]=e,i.set(new Uint8Array(n.buffer,n.byteOffset,n.byteLength),s)}function AM(n,e){let t=n.byteLength;var A,r;if(t<256){var{target:A,position:r}=e(t+2);A[r++]=196,A[r++]=t}else if(t<65536){var{target:A,position:r}=e(t+3);A[r++]=197,A[r++]=t>>8,A[r++]=t&255}else{var{target:A,position:r,targetView:i}=e(t+5);A[r++]=198,i.setUint32(r,t),r+=4}A.set(n,r)}function UV(n,e,t,A){let r=n.length;switch(r){case 1:e[t++]=212;break;case 2:e[t++]=213;break;case 4:e[t++]=214;break;case 8:e[t++]=215;break;case 16:e[t++]=216;break;default:r<256?(e[t++]=199,e[t++]=r):r<65536?(e[t++]=200,e[t++]=r>>8,e[t++]=r&255):(e[t++]=201,e[t++]=r>>24,e[t++]=r>>16&255,e[t++]=r>>8&255,e[t++]=r&255)}return e[t++]=A,e.set(n,t),t+=r,t}function VV(n,e){let t,A=e.length*6,r=n.length-A;for(e.sort((i,s)=>i.offset>s.offset?1:-1);t=e.pop();){let i=t.offset,s=t.id;n.copyWithin(i+A,i,r),A-=6;let o=i+A;n[o++]=214,n[o++]=105,n[o++]=s>>24,n[o++]=s>>16&255,n[o++]=s>>8&255,n[o++]=s&255,r=i}return n}function vs(n){if(n.Class){if(!n.pack&&!n.write)throw new Error("Extension has no pack or write function");if(n.pack&&!n.type)throw new Error("Extension has no type (numeric code to identify the extension)");gv.unshift(n.Class),Xf.unshift(n)}$T(n)}var rM=new wo({useRecords:!1}),zV=rM.pack,HV=rM.pack;var{NEVER:WV,ALWAYS:jV,DECIMAL_ROUND:YV,DECIMAL_FIT:qV}=Yf,iM=512,XV=1024;var sM=new wo({structuredClone:!0});vs({Class:Bt.prototype.constructor,type:1,write(n){return{...n}},read(n){return Object.setPrototypeOf(n,Bt.prototype),n}});vs({Class:He.prototype.constructor,type:2,write(n){return[...n]},read(n){return Object.setPrototypeOf(n,He.prototype),n}});vs({Class:qt.prototype.constructor,type:3,write(n){return[...n]},read(n){return Object.setPrototypeOf(n,qt.prototype),n}});vs({Class:Iu.prototype.constructor,type:4,write(n){return n.id},read(n){return new Iu(n)}});vs({Class:Lu.prototype.constructor,type:5,write(n){return n.data},read(n){return new Lu(n)}});vs({Class:UA.prototype.constructor,type:6,write(n){return{...n}},read(n){return Object.setPrototypeOf(n,UA.prototype),n}});function QV(n){var e=0;if(n.length===0)return e;for(let t=0;t<n.length;t++){let A=n[t];e=(e<<5)-e+A,e=e&e}return e}function yv(n){if(dl(n))return n;if(Array.isArray(n))return n.map(yv);if(typeof n=="object"&&n!==null){let e={};for(let t of Object.keys(n).sort())e[t]=yv(n[t]);return Object.setPrototypeOf(e,Object.getPrototypeOf(n)),e}else return n}var Zf;(A=>{function n(r){return sM.pack(r)}A.serialize=n;function e(r){return sM.unpack(r)}A.deserialize=e;function t(r){return QV(n(yv(r))).toString()}A.checksum=t})(Zf||(Zf={}));var Ru={["LookAt"]:[],["Follow"]:[],["MouseHover"]:["Transition"],["Scroll"]:["Transition"],["Start"]:["Transition","Audio","Video"],["Conditional"]:["Transition","Audio","Video"],["MouseDown"]:["Transition","Audio","Video","Link"],["MouseUp"]:["Transition","Audio","Video","Link"],["KeyDown"]:["Transition","Audio","Video","Link"],["KeyUp"]:["Transition","Audio","Video","Link"],["GameControl"]:["Transition","Audio"],["Collision"]:["Transition","Audio"]},oM;(t=>{function n(A){return A.type==="MouseDown"||A.type==="MouseUp"||A.type==="KeyDown"||A.type==="KeyUp"}t.is=n;function e(A){return A==="MouseDown"||A==="MouseUp"?{type:A,toggle:!1,actions:new He}:{type:A,key:void 0,toggle:!1,actions:new He}}t.defaultData=e})(oM||(oM={}));var Kf;(t=>{function n(A){return{type:"Property",value:[A??null,"position","x"]}}t.propertyDefaultData=n,t.valueDefaultData={type:"Literal",value:0}})(Kf||(Kf={}));var vv;(A=>{function n(r){return{type:"Comparison",operator:"==",lOperand:Kf.propertyDefaultData(r),rOperand:{...Kf.valueDefaultData}}}A.comparisonDefaultData=n;function e(r){return{type:"Distance",toObject:r??null,fromObject:r??null,distance:200}}A.distanceDefaultData=e;function t(r,i){return{type:"State",object:r??null,state:i??null}}A.stateDefaultData=t})(vv||(vv={}));var aM;(t=>{function n(A){return A.type==="Conditional"}t.is=n;function e(A){return{type:"Conditional",inActions:new He,outActions:new He,condition:vv.distanceDefaultData(A)}}t.defaultData=e})(aM||(aM={}));var lM;(e=>e.defaultData={type:"Follow",maxDelta:0,dampingFactor:1,plane:"custom",resetOnPointerLeave:!0})(lM||(lM={}));var cM;(e=>e.defaultData={type:"LookAt",distance:1e3,dampingFactor:1,tilt:"up",axis:"z",plane:"custom",resetOnPointerLeave:!0})(cM||(cM={}));var uM;(t=>{function n(A){return A.type==="MouseHover"}t.is=n;function e(){return{type:"MouseHover",actions:new He}}t.defaultData=e})(uM||(uM={}));var hM;(t=>{function n(A){return A.type==="Scroll"}t.is=n;function e(){return{type:"Scroll",steps:100,actions:new He}}t.defaultData=e})(hM||(hM={}));var dM;(t=>{function n(A){return A.type==="Start"}t.is=n;function e(){return{type:"Start",actions:new He}}t.defaultData=e})(dM||(dM={}));var fM;(t=>{function n(A){return A.type==="Collision"}t.is=n;function e(){return{type:"Collision",toggle:!1,target:"character",actions:new He}}t.defaultData=e})(fM||(fM={}));var So;(t=>{function n(A,r){return A[0]===r[0]&&A[1]===r[1]}t.isEqual=n;function e(A,r,i){return[A[0]+(r[0]-A[0])*i,A[1]+(r[1]-A[1])*i]}t.lerp=e})(So||(So={}));var vl;(r=>{function n(i,s){return i[0]===s[0]&&i[1]===s[1]&&i[2]===s[2]}r.isEqual=n;function e(i,s){return[i[0]+s[0],i[1]+s[1],i[2]+s[2]]}r.add=e;function t(i,s){return[i[0]-s[0],i[1]-s[1],i[2]-s[2]]}r.sub=t;function A(i,s,o){return[i[0]+(s[0]-i[0])*o,i[1]+(s[1]-i[1])*o,i[2]+(s[2]-i[2])*o]}r.lerp=A})(vl||(vl={}));var Bu;(t=>{function n(A,r){return A[0]===r[0]&&A[1]===r[1]&&A[2]===r[2]&&A[3]===r[3]}t.isEqual=n;function e(A,r,i){return[A[0]+(r[0]-A[0])*i,A[1]+(r[1]-A[1])*i,A[2]+(r[2]-A[2])*i,A[3]+(r[3]-A[3])*i]}t.lerp=e})(Bu||(Bu={}));var xs;(r=>{r.identity=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];function e(i,s){for(let o=0;o<16;o++)if(i[o]!==s[o])return!1;return!0}r.isEqual=e;function t(i){return i??r.identity}r.simplify=t;function A(i,s){let o=s.slice(0);for(var a=0,c=s.length;a<c;a+=3){let l=i[3]*s[a]+i[7]*s[a+1]+i[11]*s[a+2]+i[15];o[a]=(i[0]*s[a]+i[4]*s[a+1]+i[8]*s[a+2]+i[12])/l,o[a+1]=(i[1]*s[a]+i[5]*s[a+1]+i[9]*s[a+2]+i[13])/l,o[a+2]=(i[2]*s[a]+i[6]*s[a+1]+i[10]*s[a+2]+i[14])/l}return o}r.applyMatrix4=A})(xs||(xs={}));var QA;(c=>{function n(l){return typeof l=="object"&&typeof l.r=="number"&&typeof l.g=="number"&&typeof l.b=="number"}c.isRGB=n,c.white={r:1,g:1,b:1},c.red={r:1,g:0,b:0},c.black={r:0,g:0,b:0};function r(l){return{r:Math.round(l.r*255),g:Math.round(l.g*255),b:Math.round(l.b*255),a:1}}c.toRgb255a1=r;function i(l){return{r:l.r,g:l.g,b:l.b}}c.clone=i;function s(l){return l=Math.floor(l),{r:(l>>16&255)/255,g:(l>>8&255)/255,b:(l&255)/255}}c.fromHex=s;function o(l,u){return l.r===u.r&&l.g===u.g&&l.b===u.b}c.equals=o;function a(l,u,h){return{r:l.r+(u.r-l.r)*h,g:l.g+(u.g-l.g)*h,b:l.b+(u.b-l.b)*h}}c.lerp=a})(QA||(QA={}));var yn;(o=>{o.white={...QA.white,a:1},o.transparent={...QA.white,a:0};function t(a){return{r:a[0],g:a[1],b:a[2],a:a[3]}}o.from0to1=t;function A(a,c){return{...QA.fromHex(a),a:c}}o.fromHexAndA=A;function r(a){return{r:Math.round(a.r*255),g:Math.round(a.g*255),b:Math.round(a.b*255),a:a.a}}o.toRgb255a1=r;function i(a,c){return QA.equals(a,c)&&a.a===c.a}o.equals=i;function s(a,c,l){return{r:a.r+(c.r-a.r)*l,g:a.g+(c.g-a.g)*l,b:a.b+(c.b-a.b)*l,a:a.a+(c.a-a.a)*l}}o.lerp=s})(yn||(yn={}));var Jf;(e=>e.identity={position:[0,0,0],rotation:[0,0,0],scale:[1,1,1]})(Jf||(Jf={}));var pM;(e=>e.defaultData={mass:1,stiffness:80,damping:10,velocity:0})(pM||(pM={}));var mM;(e=>e.defaultData={control1:[.5,.05],control2:[.1,.3]})(mM||(mM={}));var bs;(t=>{t.all=["PerspectiveCamera","OrthographicCamera"];function e(A){return t.all.includes(A)}t.is=e})(bs||(bs={}));var To;(r=>{r.DefaultUp=[0,1,0],r.DefaultTargetOffset=1e3,r.defaultData={far:1e5,type:"OrthographicCamera",perspective:{near:5,fov:45,zoom:1},orthographic:{near:-1e5,zoom:1},up:r.DefaultUp,isUpVectorFlipped:!1,targetOffset:r.DefaultTargetOffset};function A(i){return i.type==="PerspectiveCamera"?i.perspective.zoom:i.orthographic.zoom}r.getZoom=A})(To||(To={}));var Mo;(t=>{function n(A,r=.1){return{disabled:!1,type:"linear",hideBase:!1,count:3,radial:{radius:Math.max(A[0],A[1])*2,start:0,end:360,alignment:!1,axis:"y",scale:[1,1,1],rotation:[0,0,0],position:[0,0,0]},toObject:{object:"",spreadType:"random",scale:[0,0,0],rotation:[0,0,0],position:[0,0,0],axis:"x",seed:0,count:99,align:"normal"},linear:{scale:[1,1,1],rotation:[0,0,0],position:[A[0]+A[0]*r,0,0]},grid:{count:[2,2,2],size:A.map(i=>i*(1+r)),useCenter:!0},randomness:!1,randomnessObject:{strength:100,scale:[0,0,0],rotation:[0,0,0],position:[0,0,0],movement:1,seed:0,freqScale:10,noiseType:"perlin"}}}t.defaultData=n;function e(A,r){let i={...A};if(xv.forEach(s=>{Object.assign(i,{[s]:r[s]??A[s]})}),i.radial={...A.radial},r.radial){let s=A.radial,o=r.radial;bv.forEach(a=>{Object.assign(i.radial,{[a]:o[a]??s[a]})})}if(i.linear={...A.linear},r.linear){let s=A.linear,o=r.linear;wv.forEach(a=>{Object.assign(i.linear,{[a]:o[a]??s[a]})})}if(i.grid={...A.grid},r.grid){let s=A.grid,o=r.grid;Sv.forEach(a=>{Object.assign(i.grid,{[a]:o[a]??s[a]})})}if(i.toObject={...A.toObject},r.toObject){let s=A.toObject,o=r.toObject;Tv.forEach(a=>{Object.assign(i.toObject,{[a]:o[a]??s[a]})})}if(i.randomnessObject={...A.randomnessObject},r.randomnessObject){let s=A.randomnessObject,o=r.randomnessObject;Mv.forEach(a=>{Object.assign(i.randomnessObject,{[a]:o[a]??s[a]})})}return i}t.merge=e})(Mo||(Mo={}));var gM;(e=>e.defaultData={radial:{},linear:{},grid:{},toObject:{},randomnessObject:{}})(gM||(gM={}));var xv=["count"],bv=["radius","start","end","position","scale","rotation"],wv=["position","scale","rotation"],Sv=["count","size"],Tv=["count","position","scale","rotation"],Mv=["strength","scale","rotation","position","movement","seed","freqScale"];var Eo;(t=>{let n={opacity:1,blendFunction:13,enabled:!1};t.defaultData={enabled:!1,pixelation:{...n,blendFunction:16,granularity:15},bloom:{...n,blendFunction:16,intensity:1,blurScale:1,luminanceThreshold:.25,luminanceSmoothing:.025,kernelSize:3},chromaticAberration:{...n,offset:[2,2]},vignette:{...n,darkness:1,offset:0},hueSaturation:{...n,hue:3,saturation:0},brightnessContrast:{...n,brightness:.25,contrast:0},depthOfField:{...n,focalLength:2,focusDistance:2,bokehScale:2},noise:{...n,blendFunction:16}}})(Eo||(Eo={}));var $f;(t=>{t.all=["PointLight","SpotLight","DirectionalLight","HemisphereLight"];function e(A){return t.all.includes(A)}t.is=e})($f||($f={}));var ep;(t=>{function n(A){return e(A)}t.defaultData=n;function e(A){if(A==="PointLight")return{type:A,color:yn.white,intensity:1,distance:2e3,decay:1,shadows:!0,shadowResolution:1024,shadowRadius:1,depth:1e5};if(A==="SpotLight")return{type:A,color:yn.white,intensity:1,distance:2e3,decay:1,shadows:!0,penumbra:0,angle:30/180*Math.PI,depth:1e5,shadowResolution:1024,shadowRadius:1};if(A==="DirectionalLight")return{type:A,color:yn.white,intensity:1,shadows:!0,size:1e3,depth:1e5,shadowResolution:1024,shadowRadius:1};throw new Error("not implemented")}})(ep||(ep={}));var Ev;(t=>{t.defaultData={castShadow:!0,receiveShadow:!0};function e(A,r){return A.castShadow===r.castShadow&&A.receiveShadow===r.receiveShadow}t.equals=e})(Ev||(Ev={}));var Cv;(t=>{t.defaultData={flatShading:!1,wireframe:!1,side:0};function e(A,r){return A.flatShading===r.flatShading&&A.side===r.side&&A.wireframe===r.wireframe}t.equals=e})(Cv||(Cv={}));var tp;(e=>e.defaultData={...Cv.defaultData,...Ev.defaultData,cloner:null,booleanExclude:null})(tp||(tp={}));var yM="data:video/mp4;base64,AAAAIGZ0eXBpc29tAAACAGlzb21pc28yYXZjMW1wNDEAAAAIZnJlZQADQJhtZGF0AAGl4AAAAB4GBRpHVkrcXExDP5TvxRE80UOoAf/MzP8CAAehIIAAABh4JbggAz8Y7EI2/GkPZNGfzo5EehQLVTuuP0OBFOxILTFxsVf9a2/45D1ui52qjvtpmvj5DWLGXspDlksmn3Y4x5JuVpYnIJtUmm3F5gP9TkUUEAPXtgZeTPyfI+QyzV5WdAUpW/QRj3WGhARBKOF7cfLxTjMa/fQHR8DJxcJUTlBZM5OU/iRvy3I5Q07/vm8iE2S3g8vQRUYkz7XvCOzTpPwulWS9N29NmnjyGD80r1j6BT/S6k0ac4ZuBoYDr9CiV6GjcklJwft7rgcinlto+oi8yqYNlLB1KCP9PokAG6Jw8eMlwq7BQH0tToxe7GTF6SQyNxtTbH5mO9AkkhYxPpvrWPT0gVRRqkQfgpbVdAVpvy0P13tpfo4MCgWY64sjO5fF5vzeVUu1rUrZRvTLmzvxlF+R+rama7VOLmpMP0RSU/ackmkv7PJely5QuXzyANUBhJiVTC64qvWVEi2FqlPZChFCNc/4uNS2oG/4MLxrBV56VXBNYGJkQg2CqdnPvRkuCQab2abuGHMw1eLMS5zoRmO63cnVoef6qL5Aio5zmY60W+SCeu8BC+Lu4Ks70+mB/xXLuOiFSsxqYAQ8d88VYJmNfDw9p4pw24+Cp0j0mT4rkxdGSsw3nTNTCqRZOAp7BaHHSPsJIyC42ZyHxenF31bZ7zcnkWSn607K5t95rkul97kUmoGt+tOo8B1gXWp4afz2tvug2CsOhvEZMzznsQBreRnFB6v5+MQPqquqMnT6ep4J8VsKNjyvPFoX9CJuw10bv5RbQK5Fhc5uaadRKVyF4mmBOWHhbQiu+ritEzNQGFN7yDoWfoV9p0jvlswHWXzQN7V3jf0nl5Apm/htbs/CkQTe/EK2sl5RjC9zABqw4fBLDqv1mVN0HwcXVDzP4vexawplrnN/gZhvSkJ8zuSe+UbPG6sqdUn1Qqpe3811qbptDnL9TCq0mO5+h7hgOp3MqnbfVSqLJY9o5b18dFSDM2FQRNjgzs47w9KRyviVZKKeqtlbsOGUoAS2FmCUwriaC6FKUrwH+iKRL2rb34MXDBH95VCv/ncYt+B15Qe450tsg2v0bSG7kPJ6SUxxkjVMmA6/SgQo5H2ol1St3NI/1bO/HA4driDr07i1N8zJjSH6HE6mO043JoVwoxS84nIc3a1XIpriVZKB6Um3W1BDBYsYgkc4wdNc12cfDuP02dSfrPxtq6foeuctdWknnxbDMUfHk3n9RakEt/eMGI+rQ3BO7lQXeNqovMs5t9HtMseXfNIOuBGsacNXwjrGS6gYqLV13Hkkpu4utqAVGEASebSnDx1vcWWtT5O4rCS5tOB3Q+IRYJDZKC1WBrzg1evektkjhgll/OvSpk90D4X1MKbVQkSZLR5IFieHhnoYvsI7l8D5jY6f8efiwNyhoyyCdXzv9F3yPQg8IN5pRlmgTTpt7ThLqCAMuu16zvi7X9+nkguPr+RWDFIVRv4YQ0kDjHsz0jM0hu2TWVgDlqejsFZ5jybC57rfJ+ey8TSfp49UbunOKfeeLahs+1OLiamOofqofX+sHami8avf8+UMGT9sPXOt/FNC2D/gM7GZoOqIadUVW33xT27qj/IibgSHEOUaeVBXA+SOGDsP+5YoILY72p1E8Ok+s+RBDag6gS1JkE9OaUSXLMWDwsN49k5sM5PiN7Lm4bm+L++usPKpZxSjQgbZ3R4ylzJNywJd9NriJgnm03B5WFEtLQ9yjZCo1+y5ZJGrHNM4UGIf61abPcyrHtF95s67kgGa5/G6Vt/ezyisYUpvjebnJk6YAvprZu2325EVEG02sHPoioeIrneYV4tJJFJP4zosY642jxOQYslldP4yh9YPpwc2NzCUJcmXuPGwfJQ4LK8V2i2S+i+M0ewhX60jtJ7ubwxMkmibRDs3GE/LBMQ6OlOqEC5GWKIUxljr/YJGYe9oUqq4YIYDRgXV1OnXeRLoVFnlnmIfPwe4rbH4NVlroUpYEU15OIETBtHiE39BvxC74ejVJoyu2K+SK7ygUljutqyO18WLEPUWWTVRbF91Rf/IxcGJZo0VdwQcTZDdFv1qIFA1fDD33QC/1ZyUnF9K4s47M4srU51dSUbZ7ceiu7EQwUhksC5GM+xgOypuv6/jp+fF0gm+cqXggFQZTsUiJK7avALehRdUnmR7p/fKu+X3Flq6NZYLvheUvXC0lzW9ojLOtvggROKxAfQVdhLW49J4LLyNelBFmwyi0NTvY9CS0BCpciWkz/G1sVLUDC3uEXrh5gi3CqFZSYtGC9hwgRURFCuaeQimYA2BEfBP/BsJJ9pSOp6NBL3Ya+RxrnYu+ULGxkgfh84PhbIcEjj9dCtfQnDYFZUvCopqmQNWVxIWEtYZ/XDq/udA7lbU5I4YIxA8VNHsh7+/1BPikLYTZWEiVbwwFckWnEKdOegbyJmyfLCt8lroWf+TDus0+eF5aJZRpzS1ktggc7eyiiJnm86aIcqCRSbwFHbgpWf7PmTH3qVtJY5SU3hGrcobXZKJYihOWo/ZMbJcOX+RgZ+8BpxVnTFwBnBNVXF5EBs9P54tw+SWWv8xMdoOoVJiw6zkv27T2NGs471H305vkq2dHh7HZWDqgVVCOhw2R6508DGQdP/2DKcMIpa/v2Wo6YBsxIl7S2ebdDu+inqc1RkofXc4S6GjeJYKhhYwNfxuxBVMMNtMxbHLPP15CM0Wks5ExwD+oNjuYwxFgR2ya3OTkSJQdbPG63kX6RZTzsim4C/m19XSd4aVPM7NigfyDWi1IK2QogYd49PbOnGjp8/+gkUzAK/C04o8Z7iQ2PnTnpQOVzR1EqqH/xR0JEgCG/SsVqMn/86gXH/IIFN9dTYQKE2ASHM0mwfIwK1EXFUSciQbiQ79WHLrUJLldsWPjfZh1/0WP7WC4yJFhxJuD2tM+IP61dTgZdfUdFfMMylE5Jhc/AsecivWncV87v+/Y1oecoeb7qSa+K9y7QtNAM3TUyV0DkmCHyXKoUTlnQC9OQIRbS+iX0G1lpDLCOCxXR/tAjX66V0r8E62F/MRiliHqUTKPs45E9JHma09EOPA3p30f7gX2O+BUtj0jZOmvn8dbxyKMXEyj0D14a+6AeFtzOHS0VXyH9VBBqzyxgJlSQBgWhwvTA3RQHRv2ERnkwWrXmINcYMSPTOYvw+zahSjK3cgAPt8rBUqlbJxB+QRj3oo0lRLMOgNIRBMEvp+uzj7CGx4u5daVF84MLue8Yw4cEs3AZF+5E7Ck8RXZoNMBUFSJoo6Bc0TCD3eusWwNsv+tnLyXK2HOuWSnH0uCKqwTgl/CcUd/r2H003k8NhfKWaO3r2IUuEfkeSxQhpkzkrfePZSY4OGuj1Inl/l5MD8lFqTXUR2AteHGGeglfJkPq6P+Apsa5jcbIg3jipyINemhFO3MLf8iZQlN09D4NgvkKBOO3rEOjlFsMwby8tChNng748JbLxG9oiCXfyH5iXp+BsaYqlVgTaQg/GmyAXJOETlHzXPSnBql8H4qSd0jc4uGsaARFr0c1wjAT9woHrn7GaGZ1lMuyNRoJtvPrN7zEyjM1+w5fs/uLFBvbbUwDASsUI+qVCFbVL+qFBn1rEJleSKyv+wutNr4UcTlw8NRNTC50iheNiSqxa7Td9ZbvBbiJOj/F1GziT+vJdBgPsCVp3sU7OHWmImi/Xxt2bDL9JcKe2ILP851WB+QPAvdAcc8Mm2vrjKvu3bxF4OL2kP4Voj6h2MzpPpRwkioOof+2bovAllA8m52u24iF7epSNsCic7IVUZUzU7NSukVAE0pZl/qZoiHfL+NYoAwvR7ODREBobzncs9RQTzmvWT4IWifiV+FI66g0Y+/dOS45H3fNP8Ixp31MFOsJAcDCo3x6RkuKDKh0uXokroWd6L4HMcY4iQo4vSZRZr/2cFGXYOvNJP0YINw/EbX38+WAsSfnPcCYAdlF/Wv34sQqRRLOJI4l4jzBFa8efbNlVWiexUF1mviR4hu+B6WsknY1A8zsOKwSPHoLG+kEn0wPYhE0pgIICnDS81KgIXgqJPWHHIRv/kDNI/xy60AhNpTI3sdvktTIGkLPv0CZA6RRl2RCM48ThHxSlEFcfl7wej4kmSEyQmtSdbyPdZMBIDa7cWedUAYueGQfgrmG/GDOV3dj8tucTSUoteF/DblJdnuSLyUQamFE76nSyQbPYv4YmmYawp+mD3nD1WfAWMszdILzMLgSKhJD8HLHKuedwZipXGPR4WaqexVn6n9Yah8aBLmGuxFqdxJuYU+7IMh5ITrNq/E5vztCbuZYSvtyC6Zex7I1u6eg6akP0j54M0Ph+duurX6Yn0G38Rw3gT5LhRd4CcrSfbSzAWdJtGfeQZlaWf9TOu0BJzFAo0AsgQelWN/2+14dUZnUF7d9jDJgWhw0A9V+hAKqXnvCtQd1C28QYrKTJGwcktia4TeBvxMGwCql3bjRGDlX3aoOEEumvuJLAauuEK7AA19rMhhaI3r7Ki/Hsrf7ld2BTbEUQAkhHdJW+oydjFPe9W1p117gQ0LTWoCJpIJKTFYz9DRx5ytx2k+O3XsWlbVx+jtZ4nVyeIbuDPh4wyWJWHdU1QKOmW8VwDFB5xeXAUev+DTtO80U5MNcZGVn0hsR8gJ0tFhmY1XA7IU/m4HDcV1X9Ef8ZWIKRBqY920yhtqTZs7J17CyUV4QkLCCAwCmk2l15ZaxE88Xb3ntI88SztCjeZxCdqzSRO/5tQ2Uulgqf4EoXy8RINEhLS70eMtdW0cnqmRtMs9QVu6J500woPjRGmbVfa0KDR7v3iYsS6paTUgK3kdeM8FoK7vWrjc4ziR80oGqmR4mdbkShgk74u+JKZymaSMWVVbAJwx2Wlozzj/MF/yV766ox5Ipejs+ig+bAYzlAsELmFgv6xhYbqUz4ar8Te5FnAgOcu3BS723gisNaCRWMU+GhiAYliDQR+MjbF8X6V16s2E4c7JGoWOTGD0Vcr//uyXVvVUedDuMVqvaph283f8dk3V1qpQ/bt+xQ4S8s/fPhn7d0JIYm0yiLGgXpIpRv4CmQvh45HRrHEfI42Hc7PEYooAjW7EiZqfWHZtJCJhgyuxn2F4FAJHyxnoUA5SSoi8skKM6/5ctKDxB8ugzK5kvB2Uq8tA77omQYBH8GXtJp2JEY8MPMOcdOPjphQqEEXJp0XgOGZs0AnpQLvDUQka4MW6gxMCLGYhVmfHVRRB5WH0EL3rgDIYnrcm3NjUGkM1ytD0ECYVZKcEQHUyRD2XnnWriCMdfKnBZYgDt37lN7TKbJe/Od5WEnKX644OFHhASSGIxOt0LUh0I4vxp7iTMvVmEfDzfuxgHYyWa5qHorrarMAS3QQDerD+oxvmBgfK4htgXD4TRaW9WXFb/miKPwhdB1mlCAqBqYAd2kjos/r3iDLUOtXQmejM7GvsPS2UQpLBo5gO1Uj0qeH5CtnRCMNl5sOCWn0O9PfMELMPXGQ80aQHEE39p/xwiRrVdtf/vX//mAA7eVGYbeVH/AUxP9aC6oGI73YmmGwT1Gs/BDtNTdMTsnLJMKXl6mAFe7T4VYE+g8stbKXz3O9sC0FwYEzHkPZI144DOKC8dJYKRAI8ajRvve1JPJEH0eBUW4P9jJSXNT78jjCgAGemU0g5El3mzIiDH3iD7DXt+4iOZtStCquKHz9L22xjMeHqzpqM4I30o5k2HjKaEej7wJJ7dB9feB+bND1g032/RdVA6BHMDso9b55I8DMCsqdOKtP++cX/MWdQvRaB+z2O//8d9qYABtCABkwXAossj7DJXVT9IJqp22PlTQ9nWsCRchIbUAh7IAHhgDOAETL5hHXeNXQW+xHIU52xl/IX4pyK0aROeXMUX6kY5s4KjDCXUt8d+p3quAQdGmRy2RzBgiBS9vQuJ+Bavyr5GaOnR0q9ygjYOXNe8KeAKyP4HfVyZYwIDZMKV2FIGtKjvMDe2wvvGdasN6hY9dlXEWNRD3vbfzEj1isCMT6n+C2iuFR8wyTCcs/cUb6pu7vFoyl6j2Qtn6urabJ6YupQ96lpGIMR22qDNA7LtrmVrrxj1KU/Jw3Rionhe1tSVc+pCYuEQDJTyxjj+JssARNKk/fBYGmwqf5Q00qrUCohKwBcBNjBlKMDbldxbC1bHTDDjnhUEtwMmirR6mBgs5MioFOA3NMJ2bNpeHynLC5vKKsEh1jUkQkQUUQb721T795oyu4W94upxFNPUkyMytUSwNvQcrukip4B9mSxjCwdLwhAGq9ELSd0SRdBAnWQmS4tbwA7Mx21WtW4EgEu3ed2zB/SvoDrdaLw1D2TrqVR+nUDO0xIZz1Og07WvDAZ0I+t6vTNKXXsvf8C/Fz5k3hsGos4G7jxQI14mDH+JaCRtn+BXJ0sCq+nRXYsk6I0td/pJv3/t6jLuj4PJ9jEn0ls+cksEIdAD5wWoqgMWgbknxHYomwRYXiELPD3tHLnvVmmm0WD/+dWNtyZpfmh95vFtWL4Fkk0UD1z9BFFn+wiwDNBQ7i1C7CVoydzQry5hwU0IG1GEGA0h1+s8u5w3IhxJ3B5m5xX5ATXwNnjdVLw75pzCbvc01tloczu2wCvrAuiEb2yb2ai3ysykT3nM0x4fYaAtOonTCgHsg8lAtvt3mFfkgMZYj7FkKVnqTciXaPhySLdKTTPmLNdkq2Z+OaAmzVLynr8yxBZtCwSBsKrO+Ag3A0uQR/+aLhK34/PG9n0ebmcShFP8Y/X5uXwnyTA0m5J5KVLlm73HqgJxNrgDkWY6k9eEWQGtfmQeJm2cb3K/3bfkEi0R2T6B88MWNmxLkyYbPAS8L+x6zcT3KncXr8maA0gBYapbyLZZML0JU+JZhq5XbPb6svP7A6yVIDg2z/WgMf/945usfaHqx4A9rB4Hdm9+RId97V6YTpgdRX/ph2kBhdTbYanVR4WQuD1KR4tQeE9JE1Oz7U+J8umxU0n71Aj8rYe0xcSykSm2N9NQ3MruHsR/6853MvLnnW/x4KMPc1mGit6TvmAgbVHoC94Oilw5ZMz9fWJO4XBRSB0i3PxxTgW7xuuyvSIISRYTj1XBAQwVGIGJOoikl020SrSJpp1NCdknPTwvFyHiClSIzhQ6LOirHFI0VIQJ8dvRrCkgvOoivdfnVRSSQGkyRbvIG2hY8ZHnLOJEr49UpVCkZTZDonKZ5mReFUz1r6mO4TASL+5JXOj1hGSHneyuQoEYznnH/TwmVa/RrmzEnmN8fBUHzTueo6H8Tg0jMrSMt1O7E1BlTrBJMFkWGfSvrfa0jKj/Vak5vYMDrZBV2Cs7wLmD0BBemCvz79yQce2V4Dw1CrAOR2KNeUamECWf2Y7X55OGn05OXBl03/xPuAhKxzBcfAgxnp+vJAdB0MCIHbRI3lthBnFtfXy1X9k/HOB3CLqjql36ZhBrhYi0kOofnsHmwzXAEljO/ngwchuDvd+8tunB4+bfDNaF2l3OC4xlwIxvqa26QI83rtLZY8U2b7K+/WFXxWvncYxdzanwPnbwAbz79/0YoYn51gQbbQzP68ye20yAhrg4K/L8OLV0oqwag0HEEKMrB3R/rtYH35dHj+qVAo15O/MgldbuUkorc99VYShzSTIB0CytnvJnxZY/uLj3KA0tBmHdoK1BqHzedRXhH1hjHyugcd9aJGCLzi4hG1Aw5VG/gBm2WyeKuZUQa6+6yRf8VJMD8YKhcRahx5B30Bs68U4yCxgLEWjUlnlvopGajZ8TMs2EdtqJlFulMUWNTtIGBT/r23x+drF4qrhaqGMDXKkaSivg4OKG7iXkUG3D1HmDXSMYaZ1qEih3ZDrRFGFsEp7ZqXr67u5PwHgf60g7njVQNZ2AhHtw+osfRSxyNRYArKWuaNejHQYGKmrWtYmGwbfpiSJe7VebIFBPA7H+rAepFI0Q8/K6v6DXDrEPgSRzLSCWqv2FDMBmTFLVG3f7d5PbTaa9BBjBHOhHHNQ7lzg1rCvycogJkGqk4fjdzkNxzceJs8xaa/g7hSMLOx1Cg6HlQxZmxipdWHQxANPx5f4NgIXDpIrOY1fVTq1446/zBoNQEibKXsbsxtB02xZ6yldn+J9Y1njYnVY8EZ3VPp8hchp7VJ0eNtGnEyYuTr9ECvMmtHORGph0ayNc4vlzEIbPtvtb4esA/8rUDAlbAqiFziVqtftkxsaaqni7kdPeho3p9PvhtfV+KxXXHvGqV7n8NwtUXrk2y/WGCDXaaPKl00l8HS4gLuujEsCA4e6Uu+kx93oKiZpzIi3iagaGurEiPLGdUyfN7hKA65sL3ZVTdbmJjrUEQF+Dh8bIX3jle1mb4jguk+e+MH0Py8axlcIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG/cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4CEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4mAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4mAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4mAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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Lb/mqRv1RGizssN0zl5LaFhWN+cgTuNPIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4mAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4mAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4mAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4mAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4mAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4mAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4mAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4mAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4mAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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";var xl;(t=>(t.defaultVideo={data:yM,thumb:"/_assets/_videos/catThumb.png",type:"video",name:"Cat video"},t.maxSize=3e7))(xl||(xl={}));var Ap=["mode","gradientType","noiseType","displacementType","projection","cnormal","crop","axis","side"],vM=["wrapping","image","video"],ln;(r=>{function n(i,s){ll(i,s)}r.patch=n;function e(i,s){return i==="light"&&s?t(s):A(i)}r.defaultData=e;function t(i){switch(i){case"phong":return{category:"phong",specular:{r:.2,g:.2,b:.2},shininess:5,type:"light",alpha:.6,visible:!0,mode:0};case"toon":return{category:"toon",specular:{r:.2,g:.2,b:.2},shininess:10,type:"light",alpha:1,visible:!0,mode:0};case"lambert":return{category:"lambert",emissive:{r:0,g:0,b:0},type:"light",alpha:1,visible:!0,mode:0};case"physical":return{category:"physical",roughness:.2,metalness:.2,reflectivity:.2,type:"light",alpha:1,visible:!0,mode:0}}}function A(i){switch(i){case"texture":return{alpha:1,visible:!0,size:[128,128],mode:0,axis:"x",side:2,type:"texture",projection:0,texture:{image:"image_0",wrapping:1001,repeat:[1,1],offset:[0,0]},crop:!1};case"video":return{alpha:1,visible:!0,size:[128,128],mode:0,axis:"x",side:2,type:"video",projection:0,texture:{video:xl.defaultVideo,wrapping:1001,repeat:[1,1],offset:[0,0]},crop:!0};case"color":return{type:"color",alpha:1,visible:!0,mode:0,color:QA.fromHex(4737101)};case"depth":return{type:"depth",alpha:1,visible:!0,mode:0,gradientType:1,smooth:!1,isVector:!0,isWorldSpace:!1,origin:[0,0,0],direction:[1,0,0],colors:[[1,1,1,1],[0,0,0,1]],steps:[0,1],near:50,far:200};case"normal":return{type:"normal",alpha:1,visible:!0,mode:0,cnormal:[1,1,1]};case"gradient":return{type:"gradient",alpha:1,visible:!0,mode:0,gradientType:0,smooth:!1,colors:[[0,0,0,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1]],steps:[0,1,1,1,1,1,1,1,1,1],num:2,angle:0,offset:[0,0],morph:[0,0]};case"noise":return{type:"noise",alpha:1,visible:!0,mode:0,size:[100,100,100],noiseType:0,scale:1,move:1,colorA:{...QA.fromHex(6710886),a:1},colorB:{...QA.fromHex(6710886),a:1},colorC:{...QA.fromHex(16777215),a:1},colorD:{...QA.fromHex(16777215),a:1},distortion:[1,1],fA:[1.7,9.2],fB:[8.3,2.8]};case"fresnel":return{type:"fresnel",alpha:1,visible:!0,mode:0,color:yn.fromHexAndA(16777215,1),bias:.1,scale:1,intensity:2,factor:1};case"rainbow":return{type:"rainbow",alpha:1,visible:!0,mode:0,filmThickness:30,movement:0,wavelengths:[0,0,0],noiseStrength:0,noiseScale:1,offset:[0,0,0]};case"toon":return{type:"toon",alpha:1,visible:!0,mode:0,positioning:2,colors:[[0,0,0,1],[.5,.5,.5,1],[.5,.5,.5,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1]],steps:[0,.475,.525,1,1,1,1,1,1,1],num:4,source:[0,1e3,0],isWorldSpace:!0,noiseStrength:0,noiseScale:1,shadowColor:yn.fromHexAndA(0,0),offset:[0,0,0]};case"outline":return{type:"outline",alpha:1,visible:!0,mode:0,outlineColor:yn.fromHexAndA(0,1),contourColor:yn.fromHexAndA(0,1),outlineWidth:2,contourWidth:5,outlineThreshold:.4,contourThreshold:0,outlineSmoothing:0,contourFrequency:10,contourDirection:[0,1,0],positionalLines:!1,compensation:!0};case"matcap":return{type:"matcap",alpha:1,visible:!0,mode:0,texture:{image:"matcap_0",wrapping:1001,repeat:[1,1],offset:[0,0]}};case"transmission":return{type:"transmission",alpha:1,visible:!0,mode:0,thickness:10,ior:1.5,roughness:1};case"displace":return{type:"displace",displacementType:"noise",noiseType:0,scale:10,movement:1,offset:[0,0,0],intensity:8,visible:!0}}}})(ln||(ln={}));var bA;(a=>{function n(c){return!c.layers.some(u=>u.data.type==="texture"&&u.data.projection!==0||u.data.type==="depth"&&!u.data.isWorldSpace||u.data.type==="noise"||u.data.type==="displace")}a.isMergable=n;function e(c){let l="";return c.layers.forEach(u=>{Object.entries(u.data).forEach(([h,d])=>{l+=`${h}${d}`,Array.isArray(d)?d.forEach(p=>l+=`${p}`):typeof d=="object"?Object.values(d).forEach(p=>{typeof p=="number"?l+=`${p.toFixed(4)}`:l+=`${p}`}):l+=`${d}`})}),l}a.getHash=e;function t(c,l){let u=0;for(let h of c.layers)if(h.data.type!=="displace"&&"alpha"in h.data&&h.data.type!=="light"&&h.data.type!=="fresnel"&&h.data.type!=="texture"&&h.data.type!=="matcap"&&h.data.type!=="rainbow"&&h.data.type!=="outline"){let d=h.data.visible?h.data.alpha:0;if(d==1&&h.data.type=="depth"||h.data.type=="gradient"){for(let p of h.data.colors)if(p[3]<1){d=p[3];break}}else if(d==1&&h.data.type=="noise"){let p=l.color(h.data.colorA).a,f=l.color(h.data.colorB).a,m=l.color(h.data.colorC).a,y=l.color(h.data.colorD).a,g=Math.min(p,Math.min(f,Math.min(m,y)));g<1&&(d=g)}u+=(1-u)*d}return u<1}a.isTransparent=t;function A(){return{layers:new He}}a.defaultEmptyData=A;function r(c="layer1",l="layer2"){return i("phong",c,l)}a.defaultData=r;function i(c,l="layer1",u="layer2"){let h=new He;return h.push({fi:0,data:ln.defaultData("light",c),id:l}),h.push({fi:1,data:ln.defaultData("color"),id:u}),{layers:h}}a.defaultTwoLayerData=i;function s(c,l="phong",u="layer1",h="layer2"){let d=ln.defaultData("texture");Object.assign(d.texture,{image:c});let p=new He;return p.push({fi:0,data:d,id:u}),p.push({fi:1,data:ln.defaultData("light",l),id:h}),{layers:p}}a.defaultTwoLayerTextureData=s;function o(c,l="phong",u="layer1",h="layer2"){let d=ln.defaultData("video");Object.assign(d.texture,{video:c});let p=new He;return p.push({fi:0,data:d,id:u}),p.push({fi:1,data:ln.defaultData("light",l),id:h}),{layers:p}}a.defaultTwoLayerVideoTextureData=o})(bA||(bA={}));var bl;(e=>{function n(){return{points:new He,roundness:0,shapeHoles:[],isClosed:!1}}e.defaultData=n})(bl||(bl={}));var wl;(e=>{function n(t){return t==="PolygonGeometry"||t==="RectangleGeometry"||t==="StarGeometry"||t==="TriangleGeometry"||t==="EllipseGeometry"}e.is2DParametricMesh=n})(wl||(wl={}));var ws;(e=>{function n(t){if(t==="RectangleGeometry")return{width:320,height:320,type:t,cornerRadius:[0,0,0,0],cornerType:0,depth:0,extrudeBevelSize:0,extrudeBevelSegments:1};if(t==="VectorGeometry")return{width:1,height:1,type:t,subdivisions:12,shape:bl.defaultData(),depth:0,extrudeBevelSize:0,extrudeBevelSegments:1};if(t==="BooleanGeometry")return{type:t,operation:2,width:0,height:0,depth:0,phongAngle:35};if(t==="TextGeometry")return{type:t,width:100,height:100,depth:0,horizontalAlign:1,verticalAlign:1,fontSize:16,lineHeight:1.2,letterSpacing:0,text:"",textTransform:1,font:"Roboto_regular",extrudeBevelSize:0,extrudeBevelSegments:1};throw new Error("not implemented")}e.defaultData=n})(ws||(ws={}));var Nu;(r=>{r.identity={...Jf.identity,hiddenMatrix:xs.identity};function e(i){return{position:i.position,rotation:i.rotation,scale:i.scale,hiddenMatrix:i.hiddenMatrix}}r.fromObject=e;function t(i,s){return{position:s?.position||i.position,rotation:s?.rotation||i.rotation,scale:s?.scale||i.scale,hiddenMatrix:s?.hiddenMatrix||i.hiddenMatrix}}r.merge=t;function A(i,s){return{position:vl.isEqual(i.position,s.position)?null:s.position,rotation:vl.isEqual(i.rotation,s.rotation)?null:s.rotation,scale:vl.isEqual(i.scale,s.scale)?null:s.scale,hiddenMatrix:xs.isEqual(i.hiddenMatrix,s.hiddenMatrix)?null:s.hiddenMatrix}}r.diff=A})(Nu||(Nu={}));var Pv;(e=>e.defaultData={fusedBody:!0,rigidBody:"positioned",density:1,pointMass:0,gravityScale:1,friction:.5,damping:0,restitution:.2,colliderType:"convex",enabledRotation:[!0,!0,!0],enabledTranslation:[!0,!0,!0]})(Pv||(Pv={}));var yr;(e=>e.defaultData={states:new He,events:new He,visible:!0,raycastLock:!1,physics:null,...Nu.identity})(yr||(yr={}));var xM;(e=>e.defaultData={type:"Empty",cloner:null,...yr.defaultData})(xM||(xM={}));var Co;(e=>e.defaultData={type:"Mesh",...yr.defaultData,...tp.defaultData})(Co||(Co={}));var np;(e=>e.defaultData={...yr.defaultData,...Nu.identity,...To.defaultData})(np||(np={}));var rp;(e=>{function n(t){return{...yr.defaultData,...ep.defaultData(t)}}e.defaultData=n})(rp||(rp={}));var ip;(r=>(r.defaultCamera={position:[0,0,1e3],scale:[1,1,1],rotation:[0,0,0],hiddenMatrix:xs.identity,name:"Play Camera",visible:!0,raycastLock:!1,physics:Pv.defaultData,states:new He,events:new He,...To.defaultData},r.defaultMeshObject={name:"Rectangle",...yr.defaultData,...Co.defaultData,geometry:ws.defaultData("RectangleGeometry"),material:bA.defaultTwoLayerData("phong","layer1","layer2")},r.defaultBooleanObject={name:"Boolean",...yr.defaultData,...Co.defaultData,geometry:ws.defaultData("BooleanGeometry"),material:bA.defaultTwoLayerData("phong","layer1","layer2")},r.defaultTextObject={name:"Text",...yr.defaultData,...Co.defaultData,geometry:ws.defaultData("TextGeometry"),material:bA.defaultTwoLayerData("phong","layer1","layer2")}))(ip||(ip={}));var Fu;(t=>{function n(A,r){if(r===void 0)return A;let i={...A};return"material"in i&&"material"in r&&r.material&&(i.material=sv(i.material,s=>{if(typeof s!="string")for(let[o,a]of Object.entries(r.material.layers)){let c=s.layers.data(o);c&&ln.patch(c,a)}}).data),i.materials&&r.materials&&(i.materials=sv(i.materials,s=>{for(let o=0;o<i.materials.length;o++){let a=r.materials[o];if(typeof a!="string")for(let[c,l]of Object.entries(a.layers)){let u=s[o]?.layers?.data(c);u&&ln.patch(u,l)}}}).data),i}t.patchMaterialState=n;function e(A,r){if(r===void 0)return A;let i={...A};if(Object.assign(i,Nu.merge(i,r)),bs.is(A.type)){i.orthographic={...i.orthographic},i.perspective={...i.perspective};let s=r;s.orthographic?.zoom!==void 0&&(i.orthographic.zoom=s.orthographic.zoom),s.perspective?.zoom!==void 0&&(i.perspective.zoom=s.perspective.zoom),s.isUpVectorFlipped!==void 0&&(i.isUpVectorFlipped=s.isUpVectorFlipped),s.targetOffset!==void 0&&(i.targetOffset=s.targetOffset)}else if(A.type==="Mesh")i.geometry={...i.geometry},Object.assign(i.geometry,r.geometry),i=n(i,r),i.cloner&&"cloner"in r&&Object.assign(i,{cloner:Mo.merge(i.cloner,r.cloner)});else if(A.type==="Empty")i.cloner&&"cloner"in r&&Object.assign(i,{cloner:Mo.merge(i.cloner,r.cloner)});else if($f.is(A.type)){let s=r;s.intensity!==void 0&&(i.intensity=s.intensity),s.color!==void 0&&(typeof s.color=="string"?i.color=s.color:i.color=QA.clone(s.color))}return i}t.patch=e})(Fu||(Fu={}));var Gu;(e=>e.defaultData={enabled:!1,useBackgroundColor:!1,color:QA.white,near:.1,far:2e3})(Gu||(Gu={}));var Sl;(e=>e.defaultData={enablePan:!0,enableZoom:!0,enableRotate:!0,enableDamping:!0,rotationLimitsMode:0,rotationVerticalOffset:{min:Math.PI/4,max:Math.PI/4},rotationHorizontalOffset:{min:Math.PI/4,max:Math.PI/4},rotationSoftLimit:2,panLimitsMode:0,panVerticalOffset:{min:250,max:250},panHorizontalOffset:{min:250,max:250},panSoftLimit:2,zoomLimitsEnabled:!1,zoomLimits:{min:.1,max:2},autoRotate:!1,autoRotateSpeed:2,autoRotateClockwise:!0,hoverRotatePanMode:0,hoverRotatePanStrength:20,isTouchZoom:!0,orbitTouches:2,panTouches:3,resetHoverEffectOnPointerLeave:!0})(Sl||(Sl={}));var Ri;(e=>e.defaultData={orbitControls:Sl.defaultData,playCamera:null,withBackground:!0,preventScroll:!1,settings:{image:{format:"jpg",ratio:1},video:{format:"mp4",imageFormat:"jpg",fps:30,mbps:80,ratio:1,stopMode:"manual",duration:5e3},web:{compress:!0,preset:1,preload:!0}},stopRaycast:!0,joystickSizeAndXYOffset:Array(12).fill(0).map((t,A)=>{let r=0,i=0;return A<5?i=-30:A<10&&(i=30),A===0||A===10||A===5?r=30:(A===4||A===11||A===9)&&(r=-30),[120,[r,i],"show"]}),gameControlObject:null})(Ri||(Ri={}));var cn;(e=>e.defaultData={ambientLight:{enabled:!0,type:"HemisphereLight",color:{r:.8274509803921568,g:.8274509803921568,b:.8274509803921568},intensity:.75,depth:100,groundColor:{r:.5098039215686274,g:.5098039215686274,b:.5098039215686274},softShadows:!0,softShadowQuality:"low"},usePhysics:!1,gravity:-10,pixelsPerMeter:200,skinWidthRelative:.02,stepThreshRelative:.3,slopeThresh:65})(cn||(cn={}));var sp;(A=>{function n(){let r=new qt,i=ip.defaultMeshObject;return r.push({fi:-1,data:{...rp.defaultData("DirectionalLight"),position:[200,300,300],name:"Directional Light",intensity:.7},id:"830a2708-8ed9-49cf-a68e-085299899103",children:[]}),r.push({fi:1,id:"7ba78968-2a55-48f2-b14c-5191da3e075e",data:i,children:[]}),r}A.defaultData={backgroundColor:yn.fromHexAndA(1908256,1),postprocessing:Eo.defaultData,fog:Gu.defaultData,objects:n(),environment:cn.defaultData,publish:Ri.defaultData},A.emptyData=function(){return{backgroundColor:yn.fromHexAndA(1908256,1),postprocessing:Eo.defaultData,fog:Gu.defaultData,objects:new qt,environment:cn.defaultData,publish:Ri.defaultData}}})(sp||(sp={}));function Ss(n,e){return Object.setPrototypeOf(n,e),n}var ZV=()=>typeof window>"u"?!1:window.navigator.userAgent.toLowerCase().includes(" electron/"),KV=()=>typeof window>"u"?!1:window.navigator.platform.toUpperCase().includes("MAC"),JV=()=>typeof window>"u"?!1:/iPad|iPhone|iPod/.test(window.navigator.userAgent)||Po&&"ontouchend"in document,$V=()=>typeof window>"u"?!1:window.navigator.userAgent.toLowerCase().indexOf("firefox")>-1,ez=()=>typeof window>"u"?!1:"ontouchstart"in window||navigator.maxTouchPoints>0,tz=()=>{if(typeof window>"u")return!1;let n=navigator.userAgent,e=navigator.vendor;return/Safari/i.test(n)&&/Apple Computer/.test(e)},Az=()=>{if(typeof window>"u")return null;let e=navigator.userAgent.match(/Version\/(\d+\.\d)/);return e&&e[1]},mte=ZV(),Po=KV(),ku=JV(),bM=$V(),wA=ez(),Tl=tz(),Ml=Number(Az());function wM(n){return Array.isArray(n)?n:[n]}function Uu(n){return Po?n.metaKey:n.ctrlKey}var et=[],ap={},Vu={},op={};function SM(n){et.includes(n)||et.push(n)}function El(n){delete ap[n.pointerId];for(let e=0;e<et.length;e++)if(et[e].pointerId===n.pointerId){et.splice(e,1);break}}function lp(n){if(n.pointerType!=="touch")return;let e=ap[n.pointerId];e===void 0&&(e={x:0,y:0},ap[n.pointerId]=e),e.x=n.pageX,e.y=n.pageY}function cp(n){let e=n.pointerId===et[0].pointerId?et[1]:et[0];return ap[e.pointerId]}function TM(n){Vu[n.key]=!0,op[n.key]=op[n.key]===void 0?1:op[n.key]+1}function MM(n){if(Po&&Vu.Meta)for(let e in Vu)Vu[e]=!1;else Vu[n.key]=!1;op={}}function EM(n){n.addEventListener("pointerdown",SM,!0),n.addEventListener("pointerdown",lp,!0),n.addEventListener("pointermove",lp,!0),n.addEventListener("pointerup",El,!0),n.addEventListener("pointercancel",El,!0),n.addEventListener("pointerleave",El,!0),window.addEventListener("keydown",TM,!0),window.addEventListener("keyup",MM,!0)}function CM(n){n.removeEventListener("pointerdown",SM,!0),n.removeEventListener("pointerdown",lp,!0),n.removeEventListener("pointermove",lp,!0),n.removeEventListener("pointerup",El,!0),n.removeEventListener("pointercancel",El,!0),n.removeEventListener("pointerleave",El,!0),window.removeEventListener("keydown",TM,!0),window.removeEventListener("keyup",MM,!0)}var Cl;(t=>{function n(){let A={};return A["89b10010-844c-11ec-a8a3-0242ac120002"]={r:.5,g:.5,b:.5,a:1,name:"Default Color"},Ss(A,Bt.prototype)}t.defaultColors=n;function e(){return{materials:new Bt,images:new Bt,videos:new Bt,colors:new Bt,audios:new Bt,fonts:new Bt,penumbraSize:[.5,.5,.5]}}t.emptyData=e})(Cl||(Cl={}));function PM(n){n.layers.forEach(e=>{if(e.type==="depth"&&e.colorA!==void 0){let t=e.colorA,A=e.colorB,r=[[t.r,t.g,t.b,t.a],[A.r,A.g,A.b,A.a]],i=[0,1];for(let o=2;o<10;o++)r.push(r[1]),i.push(1);let s={...ul(mn(e),"type","visible","isVector","isWorldSpace","origin","alpha","mode"),near:Math.max(0,e.near),far:Math.max(0,e.far),colors:r,steps:i,num:2,direction:[1,0,0],smooth:!1,gradientType:1};Object.assign(e,s)}else if(e.type==="depth"&&e.gradientType===1&&(e.near<0||e.far<0)){let t={...mn(e),near:Math.max(e.near,0),far:Math.max(e.far,0)};Object.assign(e,t)}})}function up(n,e){Object.values(n.shared.materials).forEach(t=>e(t))}function hp(n,e){n.scene.objects.traverse((t,A)=>{"materials"in A?A.materials.forEach(r=>{typeof r!="string"&&e(r)}):"material"in A&&typeof A.material!="string"&&e(A.material)})}function nz(n){Object.assign(n.scene.publish,{orbitControls:{...Sl.defaultData,...mn(n.scene.publish.orbitControls)}})}function rz(n){Object.assign(n.scene.publish.settings,{video:{...Ri.defaultData.settings.video,...mn(n.scene.publish.settings.video)}})}function iz(n){function e(t){if(t.layers){for(let A of Object.values(t.layers))if(A){for(let[r,i]of Object.entries(A))if((Ap.includes(r)||typeof i=="boolean")&&delete A[r],r==="texture")for(let[s,o]of Object.entries(i))(vM.includes(s)||typeof o=="boolean")&&delete i[s]}}}n.scene.objects.traverse((t,A)=>{A.states.forEach(r=>{let i=r;i.material?e(i.material):i.materials&&i.materials.forEach(s=>{e(s)})})})}function sz(n){n.scene.publish.withBackground=!0}function oz(n){n.scene.publish.settings.web={compress:!0,preload:!0,preset:1}}function az(n){n.scene.objects.traverse((e,t)=>{let A=t.cloner;A&&(A.radial.scale=A.radial.scale.map(r=>r+1),A.linear.scale=A.linear.scale.map(r=>r+1))})}function lz(n){n.scene.objects.traverse((e,t)=>{let A=t.geometry;A&&(A.type==="DodecahedronGeometry"||A.type==="IcosahedronGeometry")&&(A.detail=Math.round(A.detail))})}function cz(n){n.scene.objects.traverse((e,t)=>{let A=n.scene.objects.parent(e);t.type==="Mesh"&&(!A||n.scene.objects.data(A).geometry?.type!=="BooleanGeometry")&&(t.booleanExclude=null)})}function DM(n){n.layers===void 0&&Object.assign(n,bA.defaultTwoLayerData("lambert"))}function Dv(n){!n.layers||n.layers.forEach(e=>{if(e.type==="depth"&&e.colors.length===10){let t=[...e.colors];t.push(e.colors[9]);let A=[...e.steps];A.push(e.steps[9]);let r={...mn(e),colors:t,steps:A};Object.assign(e,r)}})}function uz(n){n.scene.objects.traverse((e,t)=>{t.type==="Mesh"&&(t.geometry.type==="BooleanGeometry"||t.geometry.type==="SubdivGeometry")&&(t.geometry.phongAngle=35)})}function IM(n){n.scene.objects.traverse((e,t)=>{"materials"in t?t.materials.forEach(A=>{typeof A!="string"&&Dv(A)}):"material"in t&&typeof t.material!="string"&&Dv(t.material)}),Object.values(n.shared.materials).forEach(e=>Dv(e))}function hz(n){n.scene.environment.ambientLight.softShadows=!1,n.scene.environment.ambientLight.softShadowQuality="low",n.scene.objects.traverse((e,t)=>{(t.type==="DirectionalLight"||t.type==="SpotLight")&&(t.shadowResolution=1024,t.shadowRadius=1,t.depth=1e5)}),n.shared.penumbraSize=new Array(5).fill(.5)}function dz(n){n.shared.audios=Ss({},Bt.prototype)}function fz(n){n.shared.videos=Ss({},Bt.prototype)}function pz(n){let e=n.shared.materials;Object.entries(e).forEach(([t,A])=>{if(!A.layers){let r={name:"Untitled Material",layers:[{fi:0,data:{type:"light",category:"phong",alpha:.6,visible:!0,mode:0,specular:{r:.2,g:.2,b:.2},shininess:5},id:"layer1"},{fi:1,data:{type:"color",alpha:1,visible:!0,mode:0,color:{r:.2823529411764706,g:.2823529411764706,b:.30196078431372547}},id:"layer2"}]};Object.assign(e,{[t]:r})}})}function mz(n){Object.entries(mn(n.shared.images)).filter(A=>A[1].asset===!1).map(A=>A[0]).forEach(A=>{delete n.shared.images[A]}),Object.entries(mn(n.shared.audios)).filter(A=>A[1].asset===!1).map(A=>A[0]).forEach(A=>{delete n.shared.audios[A]})}function gz(n){n.scene.publish.settings.web.preload=!1}function LM(n){n.layers&&n.layers.forEach(e=>{e.type==="depth"&&e.num!==void 0&&(e.colors=e.colors.slice(0,e.num),e.steps=e.steps.slice(0,e.num),delete e.num)})}function yz(n){n.shared.fonts=Ss({},Bt.prototype)}function vz(n){return n.replace(".typeface","").replace(/optimer/gi,"open sans").replace("space_mono","space mono").replace(/alma_mono/gi,"varela round").replace(/droid_sans_mono/gi,"noto sans mono").replace(/droid_sans|gentilis|gnomon_(simple|foreground)|helvetiker/gi,"roboto").replace(/droid_serif/gi,"roboto slab").replace("_sans"," sans").replace("crimson_text","crimson text").replace("medium_medium","medium").replace("fatface_fatface","fatface").replace("100hairline","thin").replace("200thin","extralight").replace("300light","light").replace("500medium","medium").replace("600semi","semibold").replace("800heavy","extrabold").replace("900black","black").replace(/bodoni_(11|16|24|36|48|72|96)([^_])/gi,"bodoni_$1_$2").replace(/bodoni_(11|16|24|36|48|72|96)/gi,"bodoni moda").replace(/(thin|hairline)(_regular)?/gi,"100").replace(/(extra|ultra)light(_regular)?/gi,"200").replace(/light(_regular)?/gi,"300").replace(/_book|_normal|_roman/gi,"_regular").replace(/medium(_regular)?/gi,"500").replace(/(semi|demi)bold(_regular)?/gi,"600").replace(/(extra|ultra)bold(_regular)?/gi,"800").replace(/bold(_regular)?/gi,"700").replace(/(black|heavy|fatface)(_regular)?/gi,"900").replace(/([1-9]00)_italic/gi,"$1italic").replace(/regularitalic/gi,"italic").replace(/regularitalic/gi,"italic").split(" ").map(t=>t.charAt(0).toUpperCase()+t.slice(1)).join(" ")}function xz(n){let e=[];n.scene.objects.traverse((t,A)=>{let r=A;if(r.type==="TextFrame"){let i=bA.defaultTwoLayerData("phong"),s=typeof r.color=="string"?n.shared.colors[r.color]:r.color;i.layers[1].data.color={r:s.r,g:s.g,b:s.b},i.layers[1].data.alpha=r.alpha;let o=vz(r.font);n.shared.fonts[o]===void 0&&(n.shared.fonts[o]={name:o});let a={name:r.name,...yr.defaultData,...Co.defaultData,flatShading:!1,wireframe:!1,geometry:{...ws.defaultData("TextGeometry"),width:r.width,height:r.height,font:o,depth:0,horizontalAlign:r.horizontalAlign,verticalAlign:r.verticalAlign,fontSize:r.fontSize*1.40625,lineHeight:r.lineHeight/1.40625,letterSpacing:r.letterSpacing-1,text:r.text,textTransform:r.textTransform,extrudeBevelSize:0,extrudeBevelSegments:1},material:i,states:mn(r.states),events:mn(r.events),visible:r.visible,raycastLock:r.raycastLock,position:r.position,rotation:r.rotation,scale:r.scale,hiddenMatrix:r.hiddenMatrix},c=mn(n.scene.objects).parent(t);n.scene.objects.insertAfter(c??null,t,[{id:t+"new",data:a,children:[]}]),e.push(t)}}),e.forEach(t=>{n.scene.objects.delete(t)})}function bz(n){let e={0:"MouseDown",1:"MouseUp",2:"MouseHover",5:"KeyDown",6:"KeyUp",7:"Start",9:"LookAt",10:"Follow",11:"Scroll",12:"Audio",13:"GameControl"};n.scene.objects.traverse((t,A)=>{A.events.forEach(r=>{if(!!e[Number(r.type)])if(Object.assign(r,{type:e[Number(r.type)]}),r.type==="Audio"&&"audioEvent"in r&&(Object.assign(r,{playAudio:r.audioEvent}),delete r.audioEvent),r.type==="GameControl")Object.assign(r,{gameActions:{idle:new He,move:new He,jump:new He}});else{let i=new He;Object.assign(r,{actions:i}),(r.type==="MouseDown"||r.type==="MouseUp"||r.type==="KeyDown"||r.type==="KeyUp")&&"url"in r&&i.push({fi:0,id:ze.generateUUID(),data:{type:"Link",url:r.url,delay:0}}),"targets"in r&&(r.targets.forEach((s,o,a)=>{let c={state:void 0,repeat:0,delay:0,delayDirection:void 0,direction:"normal",duration:0,easing:4},l={easing:s.easing,duration:s.duration};s.easing===6?Object.assign(l,ul(s,"mass","stiffness","damping","velocity")):s.easing===5&&Object.assign(l,{control1:{...s.control1},control2:{...s.control2}});let u={repeat:s.repeat?-1:0,delay:s.delay,delayDirection:s.delayDirection,direction:s.cycle&&s.rewind?"pingpong-rewind":s.cycle?"pingpong":"normal"},h={state:s.state,...u,...l},d={allowSlerp:!0,type:"Transition",object:s.object,repeat:0,delay:0,delayDirection:void 0,direction:"normal",tweens:new He({fi:0,id:ze.generateUUID(),data:c},{fi:1,id:ze.generateUUID(),data:h})};i.push({fi:a,id:o,data:d})}),delete r.targets)}})})}function wz(n){n.scene.objects.traverse((e,t)=>{function A(r,i){let s=new He,o=[];if(t.events.forEach((a,c,l)=>{if(a.type==="Audio"&&a.trigger===i){let u;o.push(c),a.interaction==="play"?u={...ul(a,"interaction","audio","delay","volume","loop"),triggerAfter:"after"in a?a.after:void 0,toggle:"after"in a?a.toggle:void 0,type:"Audio"}:(a.interaction==="pause"||a.interaction==="stop")&&(u={...ul(a,"interaction","delay","object","playAudio"),type:"Audio"}),u&&s.push({fi:l,id:c,data:u})}}),o.forEach(a=>t.events.delete(a)),s.length){let a=t.events.find(c=>c.type===r)?.data;a?"actions"in a&&a.actions.insertBefore(null,s):t.events.insertBefore(null,[{id:ze.generateUUID(),data:{type:r,actions:s}}])}}A("Start","start"),A("MouseDown","mouseDown"),A("MouseUp","mouseUp"),A("KeyDown","keyDown"),A("KeyUp","keyUp")})}function _M(n){let e=n.layers.find(t=>t.type==="light")?.data;if(e?.category==="basic"){let t=ln.defaultData("light","phong"),A=e;Object.assign(A,t),A.visible=!1}}function Sz(n){up(n,_M),hp(n,_M)}function Tz(n){n.scene.objects.traverse((e,t)=>{t.type==="Mesh"&&t.geometry.type==="SubdivGeometry"&&(t.geometry.scaleBaked||(t.geometry.scaleBaked=[1,1,1]))})}function Mz(n){n.scene.objects.traverse((e,t)=>{(t.type==="Empty"||t.type==="Mesh")&&t.cloner&&!t.cloner.randomnessObject&&!t.cloner.toObject&&!t.cloner.randomness&&(t.cloner={...t.cloner,toObject:{object:"",spreadType:"random",scale:[0,0,0],rotation:[0,0,0],position:[0,0,0],axis:"x",seed:0,count:99,align:"normal"},randomness:!1,randomnessObject:{strength:100,scale:[0,0,0],rotation:[0,0,0],position:[0,0,0],movement:1,seed:0,freqScale:10,noiseType:"perlin"}})})}var OM=25;function RM(n){let e=n.schema??0;e!==OM&&(console.warn("updating from ",e,"to ",OM),e<1&&(hp(n,PM),up(n,PM),n.schema=1),e<2&&(nz(n),n.schema=2),e<3&&(iz(n),n.schema=3),e<4&&(sz(n),n.schema=4),e<5&&(oz(n),n.schema=5),e<6&&(az(n),n.schema=6),e<7&&(lz(n),n.schema=7),e<8&&(cz(n),n.schema=8),e<9&&(IM(n),n.schema=9),e<10&&(uz(n),n.schema=10),e<11&&(hz(n),n.schema=11),e<12&&(IM(n),n.schema=12),e<13&&(dz(n),n.schema=13),e<14&&(pz(n),n.schema=14),e<15&&(mz(n),n.schema=15),e<16&&(gz(n),n.schema=16),e<17&&(hp(n,LM),up(n,LM),n.schema=17),e<18&&(hp(n,DM),up(n,DM),n.schema=18),e<19&&(rz(n),n.schema=19),e<20&&(yz(n),xz(n),n.schema=20),e<21&&(bz(n),wz(n),n.schema=21),e<22&&(Sz(n),n.schema=22),e<23&&(Tz(n),n.schema=23),e<24&&(Mz(n),n.schema=24),e<25&&(fz(n),n.schema=25))}var dp;(e=>e.emptyImage={data:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVQYV2NgYAAAAAMAAWgmWQ0AAAAASUVORK5CYII="})(dp||(dp={}));function Bi(n,e=!1){let t=n[0].index!==null,A=new Set(Object.keys(n[0].attributes)),r=new Set(Object.keys(n[0].morphAttributes)),i={},s={},o=n[0].morphTargetsRelative,a=new Ie,c=0;for(let l=0;l<n.length;++l){let u=n[l],h=0;if(t!==(u.index!==null))return console.error("THREE.BufferGeometryUtils: .mergeBufferGeometries() failed with geometry at index "+l+". All geometries must have compatible attributes; make sure index attribute exists among all geometries, or in none of them."),null;for(let d in u.attributes){if(!A.has(d))return console.error("THREE.BufferGeometryUtils: .mergeBufferGeometries() failed with geometry at index "+l+'. All geometries must have compatible attributes; make sure "'+d+'" attribute exists among all geometries, or in none of them.'),null;i[d]===void 0&&(i[d]=[]),i[d].push(u.attributes[d]),h++}if(h!==A.size)return console.error("THREE.BufferGeometryUtils: .mergeBufferGeometries() failed with geometry at index "+l+". Make sure all geometries have the same number of attributes."),null;if(o!==u.morphTargetsRelative)return console.error("THREE.BufferGeometryUtils: .mergeBufferGeometries() failed with geometry at index "+l+". .morphTargetsRelative must be consistent throughout all geometries."),null;for(let d in u.morphAttributes){if(!r.has(d))return console.error("THREE.BufferGeometryUtils: .mergeBufferGeometries() failed with geometry at index "+l+". .morphAttributes must be consistent throughout all geometries."),null;s[d]===void 0&&(s[d]=[]),s[d].push(u.morphAttributes[d])}if(a.userData.mergedUserData=a.userData.mergedUserData||[],a.userData.mergedUserData.push(u.userData),e){let d;if(t)d=u.index.count;else if(u.attributes.position!==void 0)d=u.attributes.position.count;else return console.error("THREE.BufferGeometryUtils: .mergeBufferGeometries() failed with geometry at index "+l+". The geometry must have either an index or a position attribute"),null;a.addGroup(c,d,l),c+=d}}if(t){let l=0,u=[];for(let h=0;h<n.length;++h){let d=n[h].index;for(let p=0;p<d.count;++p)u.push(d.getX(p)+l);l+=n[h].attributes.position.count}a.setIndex(u)}for(let l in i){let u=BM(i[l]);if(!u)return console.error("THREE.BufferGeometryUtils: .mergeBufferGeometries() failed while trying to merge the "+l+" attribute."),null;a.setAttribute(l,u)}for(let l in s){let u=s[l][0].length;if(u===0)break;a.morphAttributes=a.morphAttributes||{},a.morphAttributes[l]=[];for(let h=0;h<u;++h){let d=[];for(let f=0;f<s[l].length;++f)d.push(s[l][f][h]);let p=BM(d);if(!p)return console.error("THREE.BufferGeometryUtils: .mergeBufferGeometries() failed while trying to merge the "+l+" morphAttribute."),null;a.morphAttributes[l].push(p)}}return a}function BM(n){let e,t,A,r=0;for(let o=0;o<n.length;++o){let a=n[o];if(a.isInterleavedBufferAttribute)return console.error("THREE.BufferGeometryUtils: .mergeBufferAttributes() failed. InterleavedBufferAttributes are not supported."),null;if(e===void 0&&(e=a.array.constructor),e!==a.array.constructor)return console.error("THREE.BufferGeometryUtils: .mergeBufferAttributes() failed. BufferAttribute.array must be of consistent array types across matching attributes."),null;if(t===void 0&&(t=a.itemSize),t!==a.itemSize)return console.error("THREE.BufferGeometryUtils: .mergeBufferAttributes() failed. BufferAttribute.itemSize must be consistent across matching attributes."),null;if(A===void 0&&(A=a.normalized),A!==a.normalized)return console.error("THREE.BufferGeometryUtils: .mergeBufferAttributes() failed. BufferAttribute.normalized must be consistent across matching attributes."),null;r+=a.array.length}let i=new e(r),s=0;for(let o=0;o<n.length;++o)i.set(n[o].array,s),s+=n[o].array.length;return new Ge(i,t,A)}var fp;(t=>(t.defaultColliderData={type:"capsule",height:200,radius:50,position:[0,0,0],rotation:[0,0,0]},t.defaultDataThirdPerson={moveMode:"walk",speedTranslate:1e3,speedRotate:100,rotationMode:"normal",rotBy:"keys",rotByTouch:"drag",delayPos:[.3,.3],delayRot:[.3,.3],keyAssignments:[["moveNegZ","W"],["moveNegX","A"],["movePosZ","S"],["movePosX","D"],["rotPosX","\u25B2"],["rotPosY","\u25C0"],["rotNegX","\u25BC"],["rotNegY","\u25B6"],["jump","Space"]],touchControl:!0,joystickPosLoc:5,joystickRotLoc:11,jumpTouchButtonLoc:9,collider:t.defaultColliderData,colliderHelperVisible:!0,collisionEnabled:!0,jumpPower:100,resetYPosition:-3e3,alignToGround:!1,autoOrientMove:!0,orientWith:"camera",orientMode:"radial",delayPosCamera:.3,delayRotCamera:.3,camera:"",cameraXAxis:"Limit",cameraYAxis:"Free",cameraRotXLimits:[0,Math.PI/2],cameraRotYLimits:[-Math.PI/2,Math.PI/2],gameActions:{idle:new He,move:new He,jump:new He}}))(fp||(fp={}));var NM=Math.pow(2,-24);var Do=class{constructor(){}};function Kn(n,e,t){return t.min.x=e[n],t.min.y=e[n+1],t.min.z=e[n+2],t.max.x=e[n+3],t.max.y=e[n+4],t.max.z=e[n+5],t}function Iv(n){let e=-1,t=-1/0;for(let A=0;A<3;A++){let r=n[A+3]-n[A];r>t&&(t=r,e=A)}return e}function Lv(n,e){e.set(n)}function _v(n,e,t){let A,r;for(let i=0;i<3;i++){let s=i+3;A=n[i],r=e[i],t[i]=A<r?A:r,A=n[s],r=e[s],t[s]=A>r?A:r}}function zu(n,e,t){for(let A=0;A<3;A++){let r=e[n+2*A],i=e[n+2*A+1],s=r-i,o=r+i;s<t[A]&&(t[A]=s),o>t[A+3]&&(t[A+3]=o)}}function Dl(n){let e=n[3]-n[0],t=n[4]-n[1],A=n[5]-n[2];return 2*(e*t+t*A+A*e)}function Pz(n,e){if(!n.index){let t=n.attributes.position.count,A=e.useSharedArrayBuffer?SharedArrayBuffer:ArrayBuffer,r;t>65535?r=new Uint32Array(new A(4*t)):r=new Uint16Array(new A(2*t)),n.setIndex(new Ge(r,1));for(let i=0;i<t;i++)r[i]=i}}function Dz(n){if(!n.groups||!n.groups.length)return[{offset:0,count:n.index.count/3}];let e=[],t=new Set;for(let r of n.groups)t.add(r.start),t.add(r.start+r.count);let A=Array.from(t.values()).sort((r,i)=>r-i);for(let r=0;r<A.length-1;r++){let i=A[r],s=A[r+1];e.push({offset:i/3,count:(s-i)/3})}return e}function Rv(n,e,t,A,r=null){let i=1/0,s=1/0,o=1/0,a=-1/0,c=-1/0,l=-1/0,u=1/0,h=1/0,d=1/0,p=-1/0,f=-1/0,m=-1/0,y=r!==null;for(let g=e*6,b=(e+t)*6;g<b;g+=6){let x=n[g+0],w=n[g+1],T=x-w,M=x+w;T<i&&(i=T),M>a&&(a=M),y&&x<u&&(u=x),y&&x>p&&(p=x);let v=n[g+2],E=n[g+3],C=v-E,P=v+E;C<s&&(s=C),P>c&&(c=P),y&&v<h&&(h=v),y&&v>f&&(f=v);let D=n[g+4],_=n[g+5],I=D-_,B=D+_;I<o&&(o=I),B>l&&(l=B),y&&D<d&&(d=D),y&&D>m&&(m=D)}A[0]=i,A[1]=s,A[2]=o,A[3]=a,A[4]=c,A[5]=l,y&&(r[0]=u,r[1]=h,r[2]=d,r[3]=p,r[4]=f,r[5]=m)}function Iz(n,e,t,A){let r=1/0,i=1/0,s=1/0,o=-1/0,a=-1/0,c=-1/0;for(let l=e*6,u=(e+t)*6;l<u;l+=6){let h=n[l+0];h<r&&(r=h),h>o&&(o=h);let d=n[l+2];d<i&&(i=d),d>a&&(a=d);let p=n[l+4];p<s&&(s=p),p>c&&(c=p)}A[0]=r,A[1]=i,A[2]=s,A[3]=o,A[4]=a,A[5]=c}function Lz(n,e,t,A,r){let i=t,s=t+A-1,o=r.pos,a=r.axis*2;for(;;){for(;i<=s&&e[i*6+a]<o;)i++;for(;i<=s&&e[s*6+a]>=o;)s--;if(i<s){for(let c=0;c<3;c++){let l=n[i*3+c];n[i*3+c]=n[s*3+c],n[s*3+c]=l;let u=e[i*6+c*2+0];e[i*6+c*2+0]=e[s*6+c*2+0],e[s*6+c*2+0]=u;let h=e[i*6+c*2+1];e[i*6+c*2+1]=e[s*6+c*2+1],e[s*6+c*2+1]=h}i++,s--}else return i}}var Ni=32,_z=(n,e)=>n.candidate-e.candidate,Ts=new Array(Ni).fill().map(()=>({count:0,bounds:new Float32Array(6),rightCacheBounds:new Float32Array(6),leftCacheBounds:new Float32Array(6),candidate:0})),pp=new Float32Array(6);function Oz(n,e,t,A,r,i){let s=-1,o=0;if(i===0)s=Iv(e),s!==-1&&(o=(e[s]+e[s+3])/2);else if(i===1)s=Iv(n),s!==-1&&(o=Rz(t,A,r,s));else if(i===2){let a=Dl(n),c=1.25*r,l=A*6,u=(A+r)*6;for(let h=0;h<3;h++){let d=e[h],m=(e[h+3]-d)/Ni;if(r<Ni/4){let y=[...Ts];y.length=r;let g=0;for(let x=l;x<u;x+=6,g++){let w=y[g];w.candidate=t[x+2*h],w.count=0;let{bounds:T,leftCacheBounds:M,rightCacheBounds:v}=w;for(let E=0;E<3;E++)v[E]=1/0,v[E+3]=-1/0,M[E]=1/0,M[E+3]=-1/0,T[E]=1/0,T[E+3]=-1/0;zu(x,t,T)}y.sort(_z);let b=r;for(let x=0;x<b;x++){let w=y[x];for(;x+1<b&&y[x+1].candidate===w.candidate;)y.splice(x+1,1),b--}for(let x=l;x<u;x+=6){let w=t[x+2*h];for(let T=0;T<b;T++){let M=y[T];w>=M.candidate?zu(x,t,M.rightCacheBounds):(zu(x,t,M.leftCacheBounds),M.count++)}}for(let x=0;x<b;x++){let w=y[x],T=w.count,M=r-w.count,v=w.leftCacheBounds,E=w.rightCacheBounds,C=0;T!==0&&(C=Dl(v)/a);let P=0;M!==0&&(P=Dl(E)/a);let D=1+1.25*(C*T+P*M);D<c&&(s=h,c=D,o=w.candidate)}}else{for(let b=0;b<Ni;b++){let x=Ts[b];x.count=0,x.candidate=d+m+b*m;let w=x.bounds;for(let T=0;T<3;T++)w[T]=1/0,w[T+3]=-1/0}for(let b=l;b<u;b+=6){let T=~~((t[b+2*h]-d)/m);T>=Ni&&(T=Ni-1);let M=Ts[T];M.count++,zu(b,t,M.bounds)}let y=Ts[Ni-1];Lv(y.bounds,y.rightCacheBounds);for(let b=Ni-2;b>=0;b--){let x=Ts[b],w=Ts[b+1];_v(x.bounds,w.rightCacheBounds,x.rightCacheBounds)}let g=0;for(let b=0;b<Ni-1;b++){let x=Ts[b],w=x.count,T=x.bounds,v=Ts[b+1].rightCacheBounds;w!==0&&(g===0?Lv(T,pp):_v(T,pp,pp)),g+=w;let E=0,C=0;g!==0&&(E=Dl(pp)/a);let P=r-g;P!==0&&(C=Dl(v)/a);let D=1+1.25*(E*g+C*P);D<c&&(s=h,c=D,o=x.candidate)}}}}else console.warn(`MeshBVH: Invalid build strategy value ${i} used.`);return{axis:s,pos:o}}function Rz(n,e,t,A){let r=0;for(let i=e,s=e+t;i<s;i++)r+=n[i*6+A*2];return r/t}function Bz(n,e){let t=n.attributes.position,A=t.array,r=n.index.array,i=r.length/3,s=new Float32Array(i*6),o=t.offset||0,a=3;t.isInterleavedBufferAttribute&&(a=t.data.stride);for(let c=0;c<i;c++){let l=c*3,u=c*6,h=r[l+0]*a+o,d=r[l+1]*a+o,p=r[l+2]*a+o;for(let f=0;f<3;f++){let m=A[h+f],y=A[d+f],g=A[p+f],b=m;y<b&&(b=y),g<b&&(b=g);let x=m;y>x&&(x=y),g>x&&(x=g);let w=(x-b)/2,T=f*2;s[u+T+0]=b+w,s[u+T+1]=w+(Math.abs(b)+w)*NM,b<e[f]&&(e[f]=b),x>e[f+3]&&(e[f+3]=x)}}return s}function Nz(n,e){function t(y){h&&h(y/d)}function A(y,g,b,x=null,w=0){if(!p&&w>=a&&(p=!0,c&&(console.warn(`MeshBVH: Max depth of ${a} reached when generating BVH. Consider increasing maxDepth.`),console.warn(n))),b<=l||w>=a)return t(g+b),y.offset=g,y.count=b,y;let T=Oz(y.boundingData,x,s,g,b,u);if(T.axis===-1)return t(g+b),y.offset=g,y.count=b,y;let M=Lz(o,s,g,b,T);if(M===g||M===g+b)t(g+b),y.offset=g,y.count=b;else{y.splitAxis=T.axis;let v=new Do,E=g,C=M-g;y.left=v,v.boundingData=new Float32Array(6),Rv(s,E,C,v.boundingData,i),A(v,E,C,i,w+1);let P=new Do,D=M,_=b-C;y.right=P,P.boundingData=new Float32Array(6),Rv(s,D,_,P.boundingData,i),A(P,D,_,i,w+1)}return y}Pz(n,e);let r=new Float32Array(6),i=new Float32Array(6),s=Bz(n,r),o=n.index.array,a=e.maxDepth,c=e.verbose,l=e.maxLeafTris,u=e.strategy,h=e.onProgress,d=n.index.count/3,p=!1,f=[],m=Dz(n);if(m.length===1){let y=m[0],g=new Do;g.boundingData=r,Iz(s,y.offset,y.count,i),A(g,y.offset,y.count,i),f.push(g)}else for(let y of m){let g=new Do;g.boundingData=new Float32Array(6),Rv(s,y.offset,y.count,g.boundingData,i),A(g,y.offset,y.count,i),f.push(g)}return f}function kM(n,e){let t=Nz(n,e),A,r,i,s=[],o=e.useSharedArrayBuffer?SharedArrayBuffer:ArrayBuffer;for(let l=0;l<t.length;l++){let u=t[l],h=a(u),d=new o(32*h);A=new Float32Array(d),r=new Uint32Array(d),i=new Uint16Array(d),c(0,u),s.push(d)}return s;function a(l){return l.count?1:1+a(l.left)+a(l.right)}function c(l,u){let h=l/4,d=l/2,p=!!u.count,f=u.boundingData;for(let m=0;m<6;m++)A[h+m]=f[m];if(p){let m=u.offset,y=u.count;return r[h+6]=m,i[d+14]=y,i[d+15]=65535,l+32}else{let m=u.left,y=u.right,g=u.splitAxis,b;if(b=c(l+32,m),b/4>Math.pow(2,32))throw new Error("MeshBVH: Cannot store child pointer greater than 32 bits.");return r[h+6]=b/4,b=c(b,y),r[h+7]=g,b}}}var vn=class{constructor(){this.min=1/0,this.max=-1/0}setFromPointsField(e,t){let A=1/0,r=-1/0;for(let i=0,s=e.length;i<s;i++){let a=e[i][t];A=a<A?a:A,r=a>r?a:r}this.min=A,this.max=r}setFromPoints(e,t){let A=1/0,r=-1/0;for(let i=0,s=t.length;i<s;i++){let o=t[i],a=e.dot(o);A=a<A?a:A,r=a>r?a:r}this.min=A,this.max=r}isSeparated(e){return this.min>e.max||e.min>this.max}};vn.prototype.setFromBox=function(){let n=new S;return function(t,A){let r=A.min,i=A.max,s=1/0,o=-1/0;for(let a=0;a<=1;a++)for(let c=0;c<=1;c++)for(let l=0;l<=1;l++){n.x=r.x*a+i.x*(1-a),n.y=r.y*c+i.y*(1-c),n.z=r.z*l+i.z*(1-l);let u=t.dot(n);s=Math.min(u,s),o=Math.max(u,o)}this.min=s,this.max=o}}();var fAe=function(){let n=new vn;return function(t,A){let r=t.points,i=t.satAxes,s=t.satBounds,o=A.points,a=A.satAxes,c=A.satBounds;for(let l=0;l<3;l++){let u=s[l],h=i[l];if(n.setFromPoints(h,o),u.isSeparated(n))return!1}for(let l=0;l<3;l++){let u=c[l],h=a[l];if(n.setFromPoints(h,r),u.isSeparated(n))return!1}}}();var Fz=function(){let n=new S,e=new S,t=new S;return function(r,i,s){let o=r.start,a=n,c=i.start,l=e;t.subVectors(o,c),n.subVectors(r.end,i.start),e.subVectors(i.end,i.start);let u=t.dot(l),h=l.dot(a),d=l.dot(l),p=t.dot(a),m=a.dot(a)*d-h*h,y,g;m!==0?y=(u*h-p*d)/m:y=0,g=(u+y*h)/d,s.x=y,s.y=g}}(),Hu=function(){let n=new G,e=new S,t=new S;return function(r,i,s,o){Fz(r,i,n);let a=n.x,c=n.y;if(a>=0&&a<=1&&c>=0&&c<=1){r.at(a,s),i.at(c,o);return}else if(a>=0&&a<=1){c<0?i.at(0,o):i.at(1,o),r.closestPointToPoint(o,!0,s);return}else if(c>=0&&c<=1){a<0?r.at(0,s):r.at(1,s),i.closestPointToPoint(s,!0,o);return}else{let l;a<0?l=r.start:l=r.end;let u;c<0?u=i.start:u=i.end;let h=e,d=t;if(r.closestPointToPoint(u,!0,e),i.closestPointToPoint(l,!0,t),h.distanceToSquared(u)<=d.distanceToSquared(l)){s.copy(h),o.copy(u);return}else{s.copy(l),o.copy(d);return}}}}(),UM=function(){let n=new S,e=new S,t=new yA,A=new vA;return function(i,s){let{radius:o,center:a}=i,{a:c,b:l,c:u}=s;if(A.start=c,A.end=l,A.closestPointToPoint(a,!0,n).distanceTo(a)<=o||(A.start=c,A.end=u,A.closestPointToPoint(a,!0,n).distanceTo(a)<=o)||(A.start=l,A.end=u,A.closestPointToPoint(a,!0,n).distanceTo(a)<=o))return!0;let f=s.getPlane(t);if(Math.abs(f.distanceToPoint(a))<=o){let y=f.projectPoint(a,e);if(s.containsPoint(y))return!0}return!1}}();var Gz=1e-15;function Il(n){return Math.abs(n)<Gz}var xn=class extends Zt{constructor(...e){super(...e),this.isExtendedTriangle=!0,this.satAxes=new Array(4).fill().map(()=>new S),this.satBounds=new Array(4).fill().map(()=>new vn),this.points=[this.a,this.b,this.c],this.sphere=new DA,this.plane=new yA,this.needsUpdate=!0}intersectsSphere(e){return UM(e,this)}update(){let e=this.a,t=this.b,A=this.c,r=this.points,i=this.satAxes,s=this.satBounds,o=i[0],a=s[0];this.getNormal(o),a.setFromPoints(o,r);let c=i[1],l=s[1];c.subVectors(e,t),l.setFromPoints(c,r);let u=i[2],h=s[2];u.subVectors(t,A),h.setFromPoints(u,r);let d=i[3],p=s[3];d.subVectors(A,e),p.setFromPoints(d,r),this.sphere.setFromPoints(this.points),this.plane.setFromNormalAndCoplanarPoint(o,e),this.needsUpdate=!1}};xn.prototype.closestPointToSegment=function(){let n=new S,e=new S,t=new vA;return function(r,i=null,s=null){let{start:o,end:a}=r,c=this.points,l,u=1/0;for(let h=0;h<3;h++){let d=(h+1)%3;t.start.copy(c[h]),t.end.copy(c[d]),Hu(t,r,n,e),l=n.distanceToSquared(e),l<u&&(u=l,i&&i.copy(n),s&&s.copy(e))}return this.closestPointToPoint(o,n),l=o.distanceToSquared(n),l<u&&(u=l,i&&i.copy(n),s&&s.copy(o)),this.closestPointToPoint(a,n),l=a.distanceToSquared(n),l<u&&(u=l,i&&i.copy(n),s&&s.copy(a)),Math.sqrt(u)}}();xn.prototype.intersectsTriangle=function(){let n=new xn,e=new Array(3),t=new Array(3),A=new vn,r=new vn,i=new S,s=new S,o=new S,a=new S,c=new vA,l=new vA,u=new vA;return function(d,p=null){this.needsUpdate&&this.update(),d.isExtendedTriangle?d.needsUpdate&&d.update():(n.copy(d),n.update(),d=n);let f=this.plane,m=d.plane;if(Math.abs(f.normal.dot(m.normal))>1-1e-10){let y=this.satBounds,g=this.satAxes;t[0]=d.a,t[1]=d.b,t[2]=d.c;for(let w=0;w<4;w++){let T=y[w],M=g[w];if(A.setFromPoints(M,t),T.isSeparated(A))return!1}let b=d.satBounds,x=d.satAxes;e[0]=this.a,e[1]=this.b,e[2]=this.c;for(let w=0;w<4;w++){let T=b[w],M=x[w];if(A.setFromPoints(M,e),T.isSeparated(A))return!1}for(let w=0;w<4;w++){let T=g[w];for(let M=0;M<4;M++){let v=x[M];if(i.crossVectors(T,v),A.setFromPoints(i,e),r.setFromPoints(i,t),A.isSeparated(r))return!1}}return p&&(console.warn("ExtendedTriangle.intersectsTriangle: Triangles are coplanar which does not support an output edge. Setting edge to 0, 0, 0."),p.start.set(0,0,0),p.end.set(0,0,0)),!0}else{let y=this.points,g=!1,b=0;for(let _=0;_<3;_++){let I=y[_],B=y[(_+1)%3];c.start.copy(I),c.end.copy(B),c.delta(s);let N=g?l.start:l.end,W=Il(m.distanceToPoint(I));if(Il(m.normal.dot(s))&&W){l.copy(c),b=2;break}if((m.intersectLine(c,N)||W)&&!Il(N.distanceTo(B))){if(b++,g)break;g=!0}}if(b===1&&this.containsPoint(l.start))return p&&(p.start.copy(l.start),p.end.copy(l.start)),!0;if(b!==2)return!1;let x=d.points,w=!1,T=0;for(let _=0;_<3;_++){let I=x[_],B=x[(_+1)%3];c.start.copy(I),c.end.copy(B),c.delta(o);let N=w?u.start:u.end,W=Il(f.distanceToPoint(I));if(Il(f.normal.dot(o))&&W){u.copy(c),T=2;break}if((f.intersectLine(c,N)||W)&&!Il(N.distanceTo(B))){if(T++,w)break;w=!0}}if(T===1&&this.containsPoint(u.start))return p&&(p.start.copy(u.start),p.end.copy(u.start)),!0;if(T!==2)return!1;if(l.delta(s),u.delta(o),s.dot(o)<0){let _=u.start;u.start=u.end,u.end=_}let M=l.start.dot(s),v=l.end.dot(s),E=u.start.dot(s),C=u.end.dot(s),P=v<E,D=M<C;return M!==C&&E!==v&&P===D?!1:(p&&(a.subVectors(l.start,u.start),a.dot(s)>0?p.start.copy(l.start):p.start.copy(u.start),a.subVectors(l.end,u.end),a.dot(s)<0?p.end.copy(l.end):p.end.copy(u.end)),!0)}}}();xn.prototype.distanceToPoint=function(){let n=new S;return function(t){return this.closestPointToPoint(t,n),t.distanceTo(n)}}();xn.prototype.distanceToTriangle=function(){let n=new S,e=new S,t=["a","b","c"],A=new vA,r=new vA;return function(s,o=null,a=null){let c=o||a?A:null;if(this.intersectsTriangle(s,c))return(o||a)&&(o&&c.getCenter(o),a&&c.getCenter(a)),0;let l=1/0;for(let u=0;u<3;u++){let h,d=t[u],p=s[d];this.closestPointToPoint(p,n),h=p.distanceToSquared(n),h<l&&(l=h,o&&o.copy(n),a&&a.copy(p));let f=this[d];s.closestPointToPoint(f,n),h=f.distanceToSquared(n),h<l&&(l=h,o&&o.copy(f),a&&a.copy(n))}for(let u=0;u<3;u++){let h=t[u],d=t[(u+1)%3];A.set(this[h],this[d]);for(let p=0;p<3;p++){let f=t[p],m=t[(p+1)%3];r.set(s[f],s[m]),Hu(A,r,n,e);let y=n.distanceToSquared(e);y<l&&(l=y,o&&o.copy(n),a&&a.copy(e))}}return Math.sqrt(l)}}();var bn=class extends Ct{constructor(...e){super(...e),this.isOrientedBox=!0,this.matrix=new he,this.invMatrix=new he,this.points=new Array(8).fill().map(()=>new S),this.satAxes=new Array(3).fill().map(()=>new S),this.satBounds=new Array(3).fill().map(()=>new vn),this.alignedSatBounds=new Array(3).fill().map(()=>new vn),this.needsUpdate=!1}set(e,t,A){super.set(e,t),this.matrix.copy(A),this.needsUpdate=!0}copy(e){super.copy(e),this.matrix.copy(e.matrix),this.needsUpdate=!0}};bn.prototype.update=function(){return function(){let e=this.matrix,t=this.min,A=this.max,r=this.points;for(let c=0;c<=1;c++)for(let l=0;l<=1;l++)for(let u=0;u<=1;u++){let h=1*c|2*l|4*u,d=r[h];d.x=c?A.x:t.x,d.y=l?A.y:t.y,d.z=u?A.z:t.z,d.applyMatrix4(e)}let i=this.satBounds,s=this.satAxes,o=r[0];for(let c=0;c<3;c++){let l=s[c],u=i[c],h=1<<c,d=r[h];l.subVectors(o,d),u.setFromPoints(l,r)}let a=this.alignedSatBounds;a[0].setFromPointsField(r,"x"),a[1].setFromPointsField(r,"y"),a[2].setFromPointsField(r,"z"),this.invMatrix.copy(this.matrix).invert(),this.needsUpdate=!1}}();bn.prototype.intersectsBox=function(){let n=new vn;return function(t){this.needsUpdate&&this.update();let A=t.min,r=t.max,i=this.satBounds,s=this.satAxes,o=this.alignedSatBounds;if(n.min=A.x,n.max=r.x,o[0].isSeparated(n)||(n.min=A.y,n.max=r.y,o[1].isSeparated(n))||(n.min=A.z,n.max=r.z,o[2].isSeparated(n)))return!1;for(let a=0;a<3;a++){let c=s[a],l=i[a];if(n.setFromBox(c,t),l.isSeparated(n))return!1}return!0}}();bn.prototype.intersectsTriangle=function(){let n=new xn,e=new Array(3),t=new vn,A=new vn,r=new S;return function(s){this.needsUpdate&&this.update(),s.isExtendedTriangle?s.needsUpdate&&s.update():(n.copy(s),n.update(),s=n);let o=this.satBounds,a=this.satAxes;e[0]=s.a,e[1]=s.b,e[2]=s.c;for(let h=0;h<3;h++){let d=o[h],p=a[h];if(t.setFromPoints(p,e),d.isSeparated(t))return!1}let c=s.satBounds,l=s.satAxes,u=this.points;for(let h=0;h<3;h++){let d=c[h],p=l[h];if(t.setFromPoints(p,u),d.isSeparated(t))return!1}for(let h=0;h<3;h++){let d=a[h];for(let p=0;p<4;p++){let f=l[p];if(r.crossVectors(d,f),t.setFromPoints(r,e),A.setFromPoints(r,u),t.isSeparated(A))return!1}}return!0}}();bn.prototype.closestPointToPoint=function(){return function(e,t){return this.needsUpdate&&this.update(),t.copy(e).applyMatrix4(this.invMatrix).clamp(this.min,this.max).applyMatrix4(this.matrix),t}}();bn.prototype.distanceToPoint=function(){let n=new S;return function(t){return this.closestPointToPoint(t,n),t.distanceTo(n)}}();bn.prototype.distanceToBox=function(){let n=["x","y","z"],e=new Array(12).fill().map(()=>new vA),t=new Array(12).fill().map(()=>new vA),A=new S,r=new S;return function(s,o=0,a=null,c=null){if(this.needsUpdate&&this.update(),this.intersectsBox(s))return(a||c)&&(s.getCenter(r),this.closestPointToPoint(r,A),s.closestPointToPoint(A,r),a&&a.copy(A),c&&c.copy(r)),0;let l=o*o,u=s.min,h=s.max,d=this.points,p=1/0;for(let m=0;m<8;m++){let y=d[m];r.copy(y).clamp(u,h);let g=y.distanceToSquared(r);if(g<p&&(p=g,a&&a.copy(y),c&&c.copy(r),g<l))return Math.sqrt(g)}let f=0;for(let m=0;m<3;m++)for(let y=0;y<=1;y++)for(let g=0;g<=1;g++){let b=(m+1)%3,x=(m+2)%3,w=y<<b|g<<x,T=1<<m|y<<b|g<<x,M=d[w],v=d[T];e[f].set(M,v);let C=n[m],P=n[b],D=n[x],_=t[f],I=_.start,B=_.end;I[C]=u[C],I[P]=y?u[P]:h[P],I[D]=g?u[D]:h[P],B[C]=h[C],B[P]=y?u[P]:h[P],B[D]=g?u[D]:h[P],f++}for(let m=0;m<=1;m++)for(let y=0;y<=1;y++)for(let g=0;g<=1;g++){r.x=m?h.x:u.x,r.y=y?h.y:u.y,r.z=g?h.z:u.z,this.closestPointToPoint(r,A);let b=r.distanceToSquared(A);if(b<p&&(p=b,a&&a.copy(A),c&&c.copy(r),b<l))return Math.sqrt(b)}for(let m=0;m<12;m++){let y=e[m];for(let g=0;g<12;g++){let b=t[g];Hu(y,b,A,r);let x=A.distanceToSquared(r);if(x<p&&(p=x,a&&a.copy(A),c&&c.copy(r),x<l))return Math.sqrt(x)}}return Math.sqrt(p)}}();var gp=new S,yp=new S,vp=new S,VM=new G,zM=new G,HM=new G,WM=new S;function kz(n,e,t,A,r,i){let s;return i===hA?s=n.intersectTriangle(A,t,e,!0,r):s=n.intersectTriangle(e,t,A,i!==An,r),s===null?null:{distance:n.origin.distanceTo(r),point:r.clone()}}function Uz(n,e,t,A,r,i,s){gp.fromBufferAttribute(e,A),yp.fromBufferAttribute(e,r),vp.fromBufferAttribute(e,i);let o=kz(n,gp,yp,vp,WM,s);if(o){t&&(VM.fromBufferAttribute(t,A),zM.fromBufferAttribute(t,r),HM.fromBufferAttribute(t,i),o.uv=Zt.getUV(WM,gp,yp,vp,VM,zM,HM,new G));let a={a:A,b:r,c:i,normal:new S,materialIndex:0};Zt.getNormal(gp,yp,vp,a.normal),o.face=a,o.faceIndex=A}return o}function Nv(n,e,t,A,r){let i=A*3,s=n.index.getX(i),o=n.index.getX(i+1),a=n.index.getX(i+2),c=Uz(t,n.attributes.position,n.attributes.uv,s,o,a,e);return c?(c.faceIndex=A,r&&r.push(c),c):null}function jM(n,e,t,A,r,i){for(let s=A,o=A+r;s<o;s++)Nv(n,e,t,s,i)}function YM(n,e,t,A,r){let i=1/0,s=null;for(let o=A,a=A+r;o<a;o++){let c=Nv(n,e,t,o);c&&c.distance<i&&(s=c,i=c.distance)}return s}function Fv(n,e,t){return n===null||(n.point.applyMatrix4(e.matrixWorld),n.distance=n.point.distanceTo(t.ray.origin),n.object=e,n.distance<t.near||n.distance>t.far)?null:n}function Jn(n,e,t,A){let r=n.a,i=n.b,s=n.c,o=e,a=e+1,c=e+2;t&&(o=t.getX(e),a=t.getX(e+1),c=t.getX(e+2)),r.x=A.getX(o),r.y=A.getY(o),r.z=A.getZ(o),i.x=A.getX(a),i.y=A.getY(a),i.z=A.getZ(a),s.x=A.getX(c),s.y=A.getY(c),s.z=A.getZ(c)}function Gv(n,e,t,A,r,i,s){let o=t.index,a=t.attributes.position;for(let c=n,l=e+n;c<l;c++)if(Jn(s,c*3,o,a),s.needsUpdate=!0,A(s,c,r,i))return!0;return!1}var Ll=class{constructor(e){this._getNewPrimitive=e,this._primitives=[]}getPrimitive(){let e=this._primitives;return e.length===0?this._getNewPrimitive():e.pop()}releasePrimitive(e){this._primitives.push(e)}};function Fi(n,e){return e[n+15]===65535}function Io(n,e){return e[n+6]}function _l(n,e){return e[n+14]}function Ol(n){return n+8}function Rl(n,e){return e[n+6]}function qM(n,e){return e[n+7]}var Bl=new Ct,bp=new S,zz=["x","y","z"];function wp(n,e,t,A,r){let i=n*2,s=Nl,o=Ms,a=Es;if(Fi(i,o)){let l=Io(n,a),u=_l(i,o);jM(e,t,A,l,u,r)}else{let l=Ol(n);Tp(l,s,A,bp)&&wp(l,e,t,A,r);let u=Rl(n,a);Tp(u,s,A,bp)&&wp(u,e,t,A,r)}}function Sp(n,e,t,A){let r=n*2,i=Nl,s=Ms,o=Es;if(Fi(r,s)){let c=Io(n,o),l=_l(r,s);return YM(e,t,A,c,l)}else{let c=qM(n,o),l=zz[c],h=A.direction[l]>=0,d,p;h?(d=Ol(n),p=Rl(n,o)):(d=Rl(n,o),p=Ol(n));let m=Tp(d,i,A,bp)?Sp(d,e,t,A):null;if(m){let b=m.point[l];if(h?b<=i[p+c]:b>=i[p+c+3])return m}let g=Tp(p,i,A,bp)?Sp(p,e,t,A):null;return m&&g?m.distance<=g.distance?m:g:m||g||null}}var XM=function(){let n,e,t=[],A=new Ll(()=>new Ct);return function(...s){n=A.getPrimitive(),e=A.getPrimitive(),t.push(n,e);let o=r(...s);A.releasePrimitive(n),A.releasePrimitive(e),t.pop(),t.pop();let a=t.length;return a>0&&(e=t[a-1],n=t[a-2]),o};function r(i,s,o,a,c=null,l=0,u=0){function h(b){let x=b*2,w=Ms,T=Es;for(;!Fi(x,w);)b=Ol(b),x=b*2;return Io(b,T)}function d(b){let x=b*2,w=Ms,T=Es;for(;!Fi(x,w);)b=Rl(b,T),x=b*2;return Io(b,T)+_l(x,w)}let p=i*2,f=Nl,m=Ms,y=Es;if(Fi(p,m)){let b=Io(i,y),x=_l(p,m);return Kn(i,f,n),a(b,x,!1,u,l+i,n)}else{let b=Ol(i),x=Rl(i,y),w=b,T=x,M,v,E,C;if(c&&(E=n,C=e,Kn(w,f,E),Kn(T,f,C),M=c(E),v=c(C),v<M)){w=x,T=b;let W=M;M=v,v=W,E=C}E||(E=n,Kn(w,f,E));let P=Fi(w*2,m),D=o(E,P,M,u+1,l+w),_;if(D===2){let W=h(w),F=d(w)-W;_=a(W,F,!0,u+1,l+w,E)}else _=D&&r(w,s,o,a,c,l,u+1);if(_)return!0;C=e,Kn(T,f,C);let I=Fi(T*2,m),B=o(C,I,v,u+1,l+T),N;if(B===2){let W=h(T),F=d(T)-W;N=a(W,F,!0,u+1,l+T,C)}else N=B&&r(T,s,o,a,c,l,u+1);return!!N}}}(),QM=function(){let n=new xn,e=new xn,t=new he,A=new bn,r=new bn;return function i(s,o,a,c,l=null){let u=s*2,h=Nl,d=Ms,p=Es;if(l===null&&(a.boundingBox||a.computeBoundingBox(),A.set(a.boundingBox.min,a.boundingBox.max,c),l=A),Fi(u,d)){let m=o,y=m.index,g=m.attributes.position,b=a.index,x=a.attributes.position,w=Io(s,p),T=_l(u,d);if(t.copy(c).invert(),a.boundsTree)return Kn(s,h,r),r.matrix.copy(t),r.needsUpdate=!0,a.boundsTree.shapecast({intersectsBounds:v=>r.intersectsBox(v),intersectsTriangle:v=>{v.a.applyMatrix4(c),v.b.applyMatrix4(c),v.c.applyMatrix4(c),v.needsUpdate=!0;for(let E=w*3,C=(T+w)*3;E<C;E+=3)if(Jn(e,E,y,g),e.needsUpdate=!0,v.intersectsTriangle(e))return!0;return!1}});for(let M=w*3,v=T+w*3;M<v;M+=3){Jn(n,M,y,g),n.a.applyMatrix4(t),n.b.applyMatrix4(t),n.c.applyMatrix4(t),n.needsUpdate=!0;for(let E=0,C=b.count;E<C;E+=3)if(Jn(e,E,b,x),e.needsUpdate=!0,n.intersectsTriangle(e))return!0}}else{let m=s+8,y=p[s+6];return Kn(m,h,Bl),!!(l.intersectsBox(Bl)&&i(m,o,a,c,l)||(Kn(y,h,Bl),l.intersectsBox(Bl)&&i(y,o,a,c,l)))}}}();function Tp(n,e,t,A){return Kn(n,e,Bl),t.intersectBox(Bl,A)}var kv=[],xp,Nl,Ms,Es;function Fl(n){xp&&kv.push(xp),xp=n,Nl=new Float32Array(n),Ms=new Uint16Array(n),Es=new Uint32Array(n)}function Wu(){xp=null,Nl=null,Ms=null,Es=null,kv.length&&Fl(kv.pop())}var Uv=Symbol("skip tree generation"),Vv=new Ct,zv=new Ct,Gl=new he,Lo=new bn,ju=new bn,Yu=new S,Mp=new S,Hz=new S,Wz=new S,jz=new S,ZM=new Ct,Hr=new Ll(()=>new xn),eA=class{static serialize(e,t={}){if(t.isBufferGeometry)return console.warn("MeshBVH.serialize: The arguments for the function have changed. See documentation for new signature."),eA.serialize(arguments[0],{cloneBuffers:arguments[2]===void 0?!0:arguments[2]});t={cloneBuffers:!0,...t};let A=e.geometry,r=e._roots,i=A.getIndex(),s;return t.cloneBuffers?s={roots:r.map(o=>o.slice()),index:i.array.slice()}:s={roots:r,index:i.array},s}static deserialize(e,t,A={}){if(typeof A=="boolean")return console.warn("MeshBVH.deserialize: The arguments for the function have changed. See documentation for new signature."),eA.deserialize(arguments[0],arguments[1],{setIndex:arguments[2]===void 0?!0:arguments[2]});A={setIndex:!0,...A};let{index:r,roots:i}=e,s=new eA(t,{...A,[Uv]:!0});if(s._roots=i,A.setIndex){let o=t.getIndex();if(o===null){let a=new Ge(e.index,1,!1);t.setIndex(a)}else o.array!==r&&(o.array.set(r),o.needsUpdate=!0)}return s}constructor(e,t={}){if(e.isBufferGeometry){if(e.index&&e.index.isInterleavedBufferAttribute)throw new Error("MeshBVH: InterleavedBufferAttribute is not supported for the index attribute.")}else throw new Error("MeshBVH: Only BufferGeometries are supported.");if(t=Object.assign({strategy:0,maxDepth:40,maxLeafTris:10,verbose:!0,useSharedArrayBuffer:!1,setBoundingBox:!0,onProgress:null,[Uv]:!1},t),t.useSharedArrayBuffer&&typeof SharedArrayBuffer>"u")throw new Error("MeshBVH: SharedArrayBuffer is not available.");this._roots=null,t[Uv]||(this._roots=kM(e,t),!e.boundingBox&&t.setBoundingBox&&(e.boundingBox=this.getBoundingBox(new Ct))),this.geometry=e}refit(e=null){e&&Array.isArray(e)&&(e=new Set(e));let t=this.geometry,A=t.index.array,r=t.attributes.position,i=r.array,s=r.offset||0,o=3;r.isInterleavedBufferAttribute&&(o=r.data.stride);let a,c,l,u,h=0,d=this._roots;for(let f=0,m=d.length;f<m;f++)a=d[f],c=new Uint32Array(a),l=new Uint16Array(a),u=new Float32Array(a),p(0,h),h+=a.byteLength;function p(f,m,y=!1){let g=f*2;if(l[g+15]===65535){let x=c[f+6],w=l[g+14],T=1/0,M=1/0,v=1/0,E=-1/0,C=-1/0,P=-1/0;for(let D=3*x,_=3*(x+w);D<_;D++){let I=A[D]*o+s,B=i[I+0],N=i[I+1],W=i[I+2];B<T&&(T=B),B>E&&(E=B),N<M&&(M=N),N>C&&(C=N),W<v&&(v=W),W>P&&(P=W)}return u[f+0]!==T||u[f+1]!==M||u[f+2]!==v||u[f+3]!==E||u[f+4]!==C||u[f+5]!==P?(u[f+0]=T,u[f+1]=M,u[f+2]=v,u[f+3]=E,u[f+4]=C,u[f+5]=P,!0):!1}else{let x=f+8,w=c[f+6],T=x+m,M=w+m,v=y,E=!1,C=!1;e?v||(E=e.has(T),C=e.has(M),v=!E&&!C):(E=!0,C=!0);let P=v||E,D=v||C,_=!1;P&&(_=p(x,m,v));let I=!1;D&&(I=p(w,m,v));let B=_||I;if(B)for(let N=0;N<3;N++){let W=x+N,X=w+N,F=u[W],k=u[W+3],Q=u[X],z=u[X+3];u[f+N]=F<Q?F:Q,u[f+N+3]=k>z?k:z}return B}}}traverse(e,t=0){let A=this._roots[t],r=new Uint32Array(A),i=new Uint16Array(A);s(0);function s(o,a=0){let c=o*2,l=i[c+15]===65535;if(l){let u=r[o+6],h=i[c+14];e(a,l,new Float32Array(A,o*4,6),u,h)}else{let u=o+32/4,h=r[o+6],d=r[o+7];e(a,l,new Float32Array(A,o*4,6),d)||(s(u,a+1),s(h,a+1))}}}raycast(e,t=Wn){let A=this._roots,r=this.geometry,i=[],s=t.isMaterial,o=Array.isArray(t),a=r.groups,c=s?t.side:t;for(let l=0,u=A.length;l<u;l++){let h=o?t[a[l].materialIndex].side:c,d=i.length;if(Fl(A[l]),wp(0,r,h,e,i),Wu(),o){let p=a[l].materialIndex;for(let f=d,m=i.length;f<m;f++)i[f].face.materialIndex=p}}return i}raycastFirst(e,t=Wn){let A=this._roots,r=this.geometry,i=t.isMaterial,s=Array.isArray(t),o=null,a=r.groups,c=i?t.side:t;for(let l=0,u=A.length;l<u;l++){let h=s?t[a[l].materialIndex].side:c;Fl(A[l]);let d=Sp(0,r,h,e);Wu(),d!=null&&(o==null||d.distance<o.distance)&&(o=d,s&&(d.face.materialIndex=a[l].materialIndex))}return o}intersectsGeometry(e,t){let A=this.geometry,r=!1;for(let i of this._roots)if(Fl(i),r=QM(0,A,e,t),Wu(),r)break;return r}shapecast(e,t,A){let r=this.geometry;if(e instanceof Function){if(t){let h=t;t=(d,p,f,m)=>{let y=p*3;return h(d,y,y+1,y+2,f,m)}}e={boundsTraverseOrder:A,intersectsBounds:e,intersectsTriangle:t,intersectsRange:null},console.warn("MeshBVH: Shapecast function signature has changed and now takes an object of callbacks as a second argument. See docs for new signature.")}let i=Hr.getPrimitive(),{boundsTraverseOrder:s,intersectsBounds:o,intersectsRange:a,intersectsTriangle:c}=e;if(a&&c){let h=a;a=(d,p,f,m,y)=>h(d,p,f,m,y)?!0:Gv(d,p,r,c,f,m,i)}else a||(c?a=(h,d,p,f)=>Gv(h,d,r,c,p,f,i):a=(h,d,p)=>p);let l=!1,u=0;for(let h of this._roots){if(Fl(h),l=XM(0,r,o,a,s,u),Wu(),l)break;u+=h.byteLength}return Hr.releasePrimitive(i),l}bvhcast(e,t,A){let{intersectsRanges:r,intersectsTriangles:i}=A,s=this.geometry.index,o=this.geometry.attributes.position,a=e.geometry.index,c=e.geometry.attributes.position;Gl.copy(t).invert();let l=Hr.getPrimitive(),u=Hr.getPrimitive();if(i){let d=function(p,f,m,y,g,b,x,w){for(let T=m,M=m+y;T<M;T++){Jn(u,T*3,a,c),u.a.applyMatrix4(t),u.b.applyMatrix4(t),u.c.applyMatrix4(t),u.needsUpdate=!0;for(let v=p,E=p+f;v<E;v++)if(Jn(l,v*3,s,o),l.needsUpdate=!0,i(l,u,v,T,g,b,x,w))return!0}return!1};if(r){let p=r;r=function(f,m,y,g,b,x,w,T){return p(f,m,y,g,b,x,w,T)?!0:d(f,m,y,g,b,x,w,T)}}else r=d}e.getBoundingBox(zv),zv.applyMatrix4(t);let h=this.shapecast({intersectsBounds:d=>zv.intersectsBox(d),intersectsRange:(d,p,f,m,y,g)=>(Vv.copy(g),Vv.applyMatrix4(Gl),e.shapecast({intersectsBounds:b=>Vv.intersectsBox(b),intersectsRange:(b,x,w,T,M)=>r(d,p,b,x,m,y,T,M)}))});return Hr.releasePrimitive(l),Hr.releasePrimitive(u),h}intersectsBox(e,t){return Lo.set(e.min,e.max,t),Lo.needsUpdate=!0,this.shapecast({intersectsBounds:A=>Lo.intersectsBox(A),intersectsTriangle:A=>Lo.intersectsTriangle(A)})}intersectsSphere(e){return this.shapecast({intersectsBounds:t=>e.intersectsBox(t),intersectsTriangle:t=>t.intersectsSphere(e)})}closestPointToGeometry(e,t,A={},r={},i=0,s=1/0){e.boundingBox||e.computeBoundingBox(),Lo.set(e.boundingBox.min,e.boundingBox.max,t),Lo.needsUpdate=!0;let o=this.geometry,a=o.attributes.position,c=o.index,l=e.attributes.position,u=e.index,h=Hr.getPrimitive(),d=Hr.getPrimitive(),p=Mp,f=Hz,m=null,y=null;r&&(m=Wz,y=jz);let g=1/0,b=null,x=null;return Gl.copy(t).invert(),ju.matrix.copy(Gl),this.shapecast({boundsTraverseOrder:w=>Lo.distanceToBox(w),intersectsBounds:(w,T,M)=>M<g&&M<s?(T&&(ju.min.copy(w.min),ju.max.copy(w.max),ju.needsUpdate=!0),!0):!1,intersectsRange:(w,T)=>{if(e.boundsTree)return e.boundsTree.shapecast({boundsTraverseOrder:M=>ju.distanceToBox(M),intersectsBounds:(M,v,E)=>E<g&&E<s,intersectsRange:(M,v)=>{for(let E=M*3,C=(M+v)*3;E<C;E+=3){Jn(d,E,u,l),d.a.applyMatrix4(t),d.b.applyMatrix4(t),d.c.applyMatrix4(t),d.needsUpdate=!0;for(let P=w*3,D=(w+T)*3;P<D;P+=3){Jn(h,P,c,a),h.needsUpdate=!0;let _=h.distanceToTriangle(d,p,m);if(_<g&&(f.copy(p),y&&y.copy(m),g=_,b=P/3,x=E/3),_<i)return!0}}}});{let M=u?u.count:l.count;for(let v=0,E=M;v<E;v+=3){Jn(d,v,u,l),d.a.applyMatrix4(t),d.b.applyMatrix4(t),d.c.applyMatrix4(t),d.needsUpdate=!0;for(let C=w*3,P=(w+T)*3;C<P;C+=3){Jn(h,C,c,a),h.needsUpdate=!0;let D=h.distanceToTriangle(d,p,m);if(D<g&&(f.copy(p),y&&y.copy(m),g=D,b=C/3,x=v/3),D<i)return!0}}}}}),Hr.releasePrimitive(h),Hr.releasePrimitive(d),g===1/0?null:(A.point?A.point.copy(f):A.point=f.clone(),A.distance=g,A.faceIndex=b,r&&(r.point?r.point.copy(y):r.point=y.clone(),r.point.applyMatrix4(Gl),f.applyMatrix4(Gl),r.distance=f.sub(r.point).length(),r.faceIndex=x),A)}closestPointToPoint(e,t={},A=0,r=1/0){let i=A*A,s=r*r,o=1/0,a=null;if(this.shapecast({boundsTraverseOrder:l=>(Yu.copy(e).clamp(l.min,l.max),Yu.distanceToSquared(e)),intersectsBounds:(l,u,h)=>h<o&&h<s,intersectsTriangle:(l,u)=>{l.closestPointToPoint(e,Yu);let h=e.distanceToSquared(Yu);return h<o&&(Mp.copy(Yu),o=h,a=u),h<i}}),o===1/0)return null;let c=Math.sqrt(o);return t.point?t.point.copy(Mp):t.point=Mp.clone(),t.distance=c,t.faceIndex=a,t}getBoundingBox(e){return e.makeEmpty(),this._roots.forEach(A=>{Kn(0,new Float32Array(A),ZM),e.union(ZM)}),e}},KM=eA.prototype.raycast;eA.prototype.raycast=function(...n){if(n[0].isMesh){console.warn('MeshBVH: The function signature and results frame for "raycast" has changed. See docs for new signature.');let[e,t,A,r]=n;return KM.call(this,A,e.material).forEach(s=>{s=Fv(s,e,t),s&&r.push(s)}),r}else return KM.apply(this,n)};var JM=eA.prototype.raycastFirst;eA.prototype.raycastFirst=function(...n){if(n[0].isMesh){console.warn('MeshBVH: The function signature and results frame for "raycastFirst" has changed. See docs for new signature.');let[e,t,A]=n;return Fv(JM.call(this,A,e.material),e,t)}else return JM.apply(this,n)};var $M=eA.prototype.closestPointToPoint;eA.prototype.closestPointToPoint=function(...n){if(n[0].isMesh){console.warn('MeshBVH: The function signature and results frame for "closestPointToPoint" has changed. See docs for new signature.'),n.unshift();let e=n[1],t={};return n[1]=t,$M.apply(this,n),e&&e.copy(t.point),t.distance}else return $M.apply(this,n)};var eE=eA.prototype.closestPointToGeometry;eA.prototype.closestPointToGeometry=function(...n){let e=n[2],t=n[3];if(e&&e.isVector3||t&&t.isVector3){console.warn('MeshBVH: The function signature and results frame for "closestPointToGeometry" has changed. See docs for new signature.');let A={},r={},i=n[1];return n[2]=A,n[3]=r,eE.apply(this,n),e&&e.copy(A.point),t&&t.copy(r.point).applyMatrix4(i),A.distance}else return eE.apply(this,n)};var tE=eA.prototype.refit;eA.prototype.refit=function(...n){let e=n[0],t=n[1];if(t&&(t instanceof Set||Array.isArray(t))){console.warn('MeshBVH: The function signature for "refit" has changed. See docs for new signature.');let A=new Set;t.forEach(r=>A.add(r)),e&&e.forEach(r=>A.add(r)),tE.call(this,A)}else tE.apply(this,n)};["intersectsGeometry","shapecast","intersectsBox","intersectsSphere"].forEach(n=>{let e=eA.prototype[n];eA.prototype[n]=function(...t){return(t[0]===null||t[0].isMesh)&&(t.shift(),console.warn(`MeshBVH: The function signature for "${n}" has changed and no longer takes Mesh. See docs for new signature.`)),e.apply(this,t)}});var Hl=sg(nE());var Yz=.5*(Math.sqrt(3)-1),qu=(3-Math.sqrt(3))/6,qz=1/3,Wr=1/6,ane=(Math.sqrt(5)-1)/4,lne=(5-Math.sqrt(5))/20,Xu=n=>Math.floor(n)|0,rE=new Float64Array([1,1,-1,1,1,-1,-1,-1,1,0,-1,0,1,0,-1,0,0,1,0,-1,0,1,0,-1]),Wv=new Float64Array([1,1,0,-1,1,0,1,-1,0,-1,-1,0,1,0,1,-1,0,1,1,0,-1,-1,0,-1,0,1,1,0,-1,1,0,1,-1,0,-1,-1]);function Ep(n=Math.random){let e=sE(n),t=new Float64Array(e).map(r=>rE[r%12*2]),A=new Float64Array(e).map(r=>rE[r%12*2+1]);return function(i,s){let o=0,a=0,c=0,l=(i+s)*Yz,u=Xu(i+l),h=Xu(s+l),d=(u+h)*qu,p=u-d,f=h-d,m=i-p,y=s-f,g,b;m>y?(g=1,b=0):(g=0,b=1);let x=m-g+qu,w=y-b+qu,T=m-1+2*qu,M=y-1+2*qu,v=u&255,E=h&255,C=.5-m*m-y*y;if(C>=0){let _=v+e[E],I=t[_],B=A[_];C*=C,o=C*C*(I*m+B*y)}let P=.5-x*x-w*w;if(P>=0){let _=v+g+e[E+b],I=t[_],B=A[_];P*=P,a=P*P*(I*x+B*w)}let D=.5-T*T-M*M;if(D>=0){let _=v+1+e[E+1],I=t[_],B=A[_];D*=D,c=D*D*(I*T+B*M)}return 70*(o+a+c)}}function iE(n=Math.random){let e=sE(n),t=new Float64Array(e).map(i=>Wv[i%12*3]),A=new Float64Array(e).map(i=>Wv[i%12*3+1]),r=new Float64Array(e).map(i=>Wv[i%12*3+2]);return function(s,o,a){let c,l,u,h,d=(s+o+a)*qz,p=Xu(s+d),f=Xu(o+d),m=Xu(a+d),y=(p+f+m)*Wr,g=p-y,b=f-y,x=m-y,w=s-g,T=o-b,M=a-x,v,E,C,P,D,_;w>=T?T>=M?(v=1,E=0,C=0,P=1,D=1,_=0):w>=M?(v=1,E=0,C=0,P=1,D=0,_=1):(v=0,E=0,C=1,P=1,D=0,_=1):T<M?(v=0,E=0,C=1,P=0,D=1,_=1):w<M?(v=0,E=1,C=0,P=0,D=1,_=1):(v=0,E=1,C=0,P=1,D=1,_=0);let I=w-v+Wr,B=T-E+Wr,N=M-C+Wr,W=w-P+2*Wr,X=T-D+2*Wr,F=M-_+2*Wr,k=w-1+3*Wr,Q=T-1+3*Wr,z=M-1+3*Wr,U=p&255,j=f&255,q=m&255,V=.6-w*w-T*T-M*M;if(V<0)c=0;else{let Y=U+e[j+e[q]];V*=V,c=V*V*(t[Y]*w+A[Y]*T+r[Y]*M)}let ue=.6-I*I-B*B-N*N;if(ue<0)l=0;else{let Y=U+v+e[j+E+e[q+C]];ue*=ue,l=ue*ue*(t[Y]*I+A[Y]*B+r[Y]*N)}let Ae=.6-W*W-X*X-F*F;if(Ae<0)u=0;else{let Y=U+P+e[j+D+e[q+_]];Ae*=Ae,u=Ae*Ae*(t[Y]*W+A[Y]*X+r[Y]*F)}let K=.6-k*k-Q*Q-z*z;if(K<0)h=0;else{let Y=U+1+e[j+1+e[q+1]];K*=K,h=K*K*(t[Y]*k+A[Y]*Q+r[Y]*z)}return 32*(c+l+u+h)}}function sE(n){let t=new Uint8Array(512);for(let A=0;A<512/2;A++)t[A]=A;for(let A=0;A<512/2-1;A++){let r=A+~~(n()*(256-A)),i=t[A];t[A]=t[r],t[r]=i}for(let A=256;A<512;A++)t[A]=t[A-256];return t}var vr=new Zt,Cp=class{constructor(e){this.weightAttribute=null;let t=e.geometry;if(!t.isBufferGeometry||t.attributes.position.itemSize!==3)throw new Error("THREE.MeshSurfaceSampler: Requires BufferGeometry triangle mesh.");t.index&&(t=t.toNonIndexed()),this.geometry=t,this.randomFunction=Math.random,this.positionAttribute=this.geometry.getAttribute("position"),this.distribution=null}build(){let e=this.positionAttribute,t=new Float32Array(e.count/3);for(let r=0;r<e.count;r+=3){let i=1;vr.a.fromBufferAttribute(e,r),vr.b.fromBufferAttribute(e,r+1),vr.c.fromBufferAttribute(e,r+2),i*=vr.getArea(),t[r/3]=i}this.distribution=new Float32Array(e.count/3);let A=0;for(let r=0;r<t.length;r++)A+=t[r],this.distribution[r]=A;return this}setRandomGenerator(e){return this.randomFunction=e,this}sample(e,t){if(this.distribution){let A=this.distribution[this.distribution.length-1],r=this.binarySearch(this.randomFunction()*A);return this.sampleFace(r,e,t)}}binarySearch(e){if(!this.distribution)return 0;let t=this.distribution,A=0,r=t.length-1,i=-1;for(;A<=r;){let s=Math.ceil((A+r)/2);if(s===0||t[s-1]<=e&&t[s]>e){i=s;break}else e<t[s]?r=s-1:A=s+1}return i}sampleFace(e,t,A){let r=this.randomFunction(),i=this.randomFunction();return r+i>1&&(r=1-r,i=1-i),vr.a.fromBufferAttribute(this.positionAttribute,e*3),vr.b.fromBufferAttribute(this.positionAttribute,e*3+1),vr.c.fromBufferAttribute(this.positionAttribute,e*3+2),t.set(0,0,0).addScaledVector(vr.a,r).addScaledVector(vr.b,i).addScaledVector(vr.c,1-(r+i)),vr.getNormal(A),this}};function RA(n,e){return e.color(n)}var $n=n=>"isEntity"in n,tA=n=>"isAbstractMesh"in n,Vt=n=>n!==null&&n.objectType==="BooleanObject",oE=n=>n.objectType==="CombinedCamera",aE=n=>$n(n)&&(n.objectType==="LightDirectional"||n.objectType==="LightSpot"||n.objectType==="LightPoint");var jv=n=>n.objectType==="EmptyObject",Pp=n=>"objectHelper"in n;function Yv(n,e){let t=!1;e.position&&(n.position.fromArray(e.position),t=!0),e.rotation&&(n.rotation.fromArray(e.rotation),t=!0),e.scale&&(t=!0,n.scale.fromArray(e.scale)),e.hiddenMatrix!==void 0&&"hiddenMatrix"in n&&(t=!0,n.hiddenMatrix.fromArray(e.hiddenMatrix??xs.identity)),t&&(n.updateMatrix(),Vt(n.parent)&&tA(n)&&n.invalidateDownstreamBooleanData(!0).recomputeBoolean()),e.position&&e.rotation&&e.scale&&e.hiddenMatrix!==void 0&&n.updateWorldMatrix(!1,!0),n.objectType==="CombinedCamera"&&(e.isUpVectorFlipped!==void 0&&(n.isUpVectorFlipped=e.isUpVectorFlipped),n.updateUp())}function Xz(n,e){Yv(n,e),e.name!==void 0&&(n.name=e.name),e.visible!==void 0&&(n.visible=e.visible)}function lE(n,e,t){Xz(n,e),e.color!==void 0&&(n.color=RA(e.color,t)),e.intensity!==void 0&&(n.intensity=e.intensity),e.shadows!==void 0&&!(n instanceof fo)&&(n.castShadow=e.shadows),n.shadow&&!(n instanceof fo)&&e.depth!==void 0&&(n.shadow.camera.far=e.depth,n.shadow.needsUpdate=!0)}function cE(n,e){n.shadow.camera.right=e/2,n.shadow.camera.left=-e/2,n.shadow.camera.top=e/2,n.shadow.camera.bottom=-e/2,n.shadow.needsUpdate=!0}var Dp=n=>class extends n{hasEntityChild(){return this.children.some(t=>$n(t))}isDescendantOf(t){t instanceof ht&&(t=t.uuid);let A=this;for(;A.parent;){if(A.parent.uuid===t)return!0;A=A.parent}return!1}attach(t,A){this.updateWorldMatrix(!0,!1);let r=new he().copy(this.matrixWorld).invert();return t.parent!==null&&(t.parent.updateWorldMatrix(!0,!1),r.multiply(t.parent.matrixWorld)),$n(t)?t.hiddenMatrix.premultiply(r):t.applyMatrix4(r),t.updateWorldMatrix(!1,!1),this.add(t),A!==void 0&&(this.children.pop(),this.children.splice(A,0,t)),this}copy(t,A=!0){if(this.name=t.name,this.up.copy(t.up),this.position.copy(t.position),this.rotation.order=t.rotation.order,this.quaternion.copy(t.quaternion),this.scale.copy(t.scale),this.matrix.copy(t.matrix),this.matrixWorld.copy(t.matrixWorld),this.matrixAutoUpdate=t.matrixAutoUpdate,this.matrixWorldNeedsUpdate=t.matrixWorldNeedsUpdate,this.layers.mask=t.layers.mask,this.visible=t.visible,this.castShadow=t.castShadow,this.receiveShadow=t.receiveShadow,this.frustumCulled=t.frustumCulled,this.renderOrder=t.renderOrder,this.userData=JSON.parse(JSON.stringify(t.userData)),A===!0)for(let r=0;r<t.children.length;r++){let i=t.children[r];this.add(i.clone())}return this}};var kl=new Ct,er=new S,jr=new S,Ul=new he,hE=[new S(-1,1,1),new S(-1,-1,1),new S(1,-1,1),new S(1,1,1),new S(-1,1,-1),new S(-1,-1,-1),new S(1,-1,-1),new S(1,1,-1)],Qz=[[0,3],[1,2],[5,6],[4,7],[0,1],[3,2],[7,6],[4,5],[0,4],[1,5],[2,6],[3,7]],Zz=[[0,2],[7,5],[4,1],[3,6],[4,3],[1,6]];function Kz(n,e,t=0,A=e.count){let r=1/0,i=1/0,s=1/0,o=-1/0,a=-1/0,c=-1/0;for(let l=t;l<A;l++){let u=e.getX(l),h=e.getY(l),d=e.getZ(l);u<r&&(r=u),h<i&&(i=h),d<s&&(s=d),u>o&&(o=u),h>a&&(a=h),d>c&&(c=d)}return n.min.set(r,i,s),n.max.set(o,a,c),n}var uE=(n,e,t)=>{if(tA(n)){let A=n.geometry.userData.parameters,r=n.geometry.getAttribute("position"),i=n.geometry.userData.type;i==="SubdivGeometry"?er.copy(n.originalGeometry.boundingSphere.center):i==="TextGeometry"||wl.is2DParametricMesh(i)?er.set(0,0,A.depth*.5):i==="ConeGeometry"||i==="CubeGeometry"||i==="CylinderGeometry"||i==="DodecahedronGeometry"||i==="HelixGeometry"||i==="IcosahedronGeometry"||i==="PyramidGeometry"||i==="SphereGeometry"||i==="PlaneGeometry"||i==="BackdropGeometry"||i==="TorusGeometry"||i==="TorusKnotGeometry"?er.set(0,0,0):r!==void 0&&(Kz(kl,r,n.geometry.drawRange.start,n.geometry.drawRange.count<1/0?n.geometry.drawRange.count:r.count),kl.getCenter(er)),n.forceComputeSize?kl.getSize(jr).multiplyScalar(.5):jr.set(A.width,A.height,A.depth??0).multiplyScalar(.5)}else if(Pp(n)&&n.objectHelper.visible){let A=n.geometryHelper.getAttribute("position");kl.setFromArray(A.array),kl.getCenter(er),kl.getSize(jr).multiplyScalar(.5)}else er.setScalar(0),jr.setScalar(0);Ul.copy(e).multiply(n.matrixWorld),jr.x===0&&jr.y===0&&jr.z===0?t.push(new S(er.x,er.y,er.z).applyMatrix4(Ul)):hE.forEach(A=>{t.push(A.clone().multiply(jr).add(er).applyMatrix4(Ul))})},Qu=class extends Ct{constructor(){super(...arguments);this.matrix=new he;this.vertices=[];this.faces=[];this.edges=[];this.centerEdges=[]}copy(t){return super.copy(t),this.matrix.copy(t.matrix),this.vertices=t.vertices.map(A=>A.clone()),this.faces=t.faces.map(A=>A.clone()),this.edges=t.edges.map(A=>A.clone()),this.centerEdges=t.centerEdges.map(A=>A.clone()),this}setFromObjectSize(t,A=!1){t.updateWorldMatrix(!1,A),this.makeEmpty(),this.matrix.copy(t.matrixWorld);let r=new he().copy(t.matrixWorld).invert();return this.expandByObjectSize(t,r,A)}expandByObjectSize(t,A,r=!1){let i=[];return r===!0?t.traverseEntity(s=>{s.visible&&uE(s,A,i)}):uE(t,A,i),this.setFromPoints(i)}getCenter(t){return t=super.getCenter(t),t.applyMatrix4(this.matrix),t}getPositionToCenter(t){return t=super.getCenter(t),t.applyMatrix4(Ul.copy(this.matrix).setPosition(0,0,0)),t}computeVertices(){this.getSize(jr).multiplyScalar(.5),this.getCenter(er),Ul.copy(this.matrix).setPosition(er),this.vertices=hE.map(t=>t.clone().multiply(jr).applyMatrix4(Ul))}computeEdges(){this.vertices.length>0&&this.computeVertices(),this.edges=Qz.map(([t,A])=>new vA(this.vertices[t],this.vertices[A])),this.centerEdges=this.edges.map(t=>t.getCenter(new S))}computeFaces(){this.vertices.length>0&&this.computeVertices(),this.faces=Zz.map(([t,A])=>this.vertices[t].clone().add(this.vertices[A]).multiplyScalar(.5))}};var tr=n=>"isEntity"in n,dE=n=>"isAbstractMesh"in n,Ar=n=>class extends Dp(n){constructor(){super(...arguments);this.objectType="";this.isEntity=!0;this.raycastLock=!1;this.scaleLock=!1;this.hiddenMatrix=new he;this._singleBBox=new Qu;this._recursiveBBox=new Qu;this.singleBBoxNeedsUpdate=!0;this.recursiveBBoxNeedsUpdate=!0;this.forceComputeSize=!1;this.currentState=null;this.currentTransitionAction=null}get singleBBox(){return this.singleBBoxNeedsUpdate&&(this.singleBBoxNeedsUpdate=!1,this._singleBBox.setFromObjectSize(this,!1),this._singleBBox.computeVertices(),this._singleBBox.computeEdges(),this._singleBBox.computeFaces()),this._singleBBox}get recursiveBBox(){return this.recursiveBBoxNeedsUpdate&&(this.recursiveBBoxNeedsUpdate=!1,this._recursiveBBox.setFromObjectSize(this,!0),this._recursiveBBox.computeVertices(),this._recursiveBBox.computeEdges(),this._recursiveBBox.computeFaces()),this._recursiveBBox}resetBBoxNeedsUpdate(){this.singleBBoxNeedsUpdate=!0,this.recursiveBBoxNeedsUpdate=!0,this.traverseAncestors(A=>{tr(A)&&(A.singleBBoxNeedsUpdate=!0,A.recursiveBBoxNeedsUpdate=!0)}),this.traverseEntity(A=>{A.singleBBoxNeedsUpdate=!0,A.recursiveBBoxNeedsUpdate=!0})}traverseEntity(A){A(this);for(let r of this.children)tr(r)&&r.traverseEntity(A)}traverseVisibleEntity(A){A(this);for(let r of this.children)tr(r)&&r.visible&&r.traverseVisibleEntity(A)}updateMatrix(){super.updateMatrix(),this.dispatchEvent({type:"updateMatrix"})}updateMatrixWorld(A){this.matrixAutoUpdate&&this.updateMatrix(),(this.matrixWorldNeedsUpdate||A)&&(this.parent===null?this.matrixWorld.multiplyMatrices(this.hiddenMatrix,this.matrix):(this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.hiddenMatrix),this.matrixWorld.multiplyMatrices(this.matrixWorld,this.matrix)),this.matrixWorldNeedsUpdate=!1,A=!0);for(let r of this.children)r.updateMatrixWorld(A)}updateWorldMatrix(A,r){let i=this.parent;if(A&&i!==null&&i.updateWorldMatrix(!0,!1),this.matrixAutoUpdate&&this.updateMatrix(),this.parent===null?this.matrixWorld.multiplyMatrices(this.hiddenMatrix,this.matrix):(this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.hiddenMatrix),this.matrixWorld.multiplyMatrices(this.matrixWorld,this.matrix)),r)for(let s of this.children)s.updateWorldMatrix(!1,!0)}clone(A){return new this.constructor().copy(this,A)}copy(A,r=!0){if(super.copy(A,!1),this.raycastLock=A.raycastLock,this.scaleLock=A.scaleLock,this.hiddenMatrix.copy(A.hiddenMatrix),r===!0)for(let i of A.children)tr(i)&&this.add(i.clone());return this}keepChildrenMatrixWorld(){let A=new he,r=this.matrixWorld.clone();this.updateWorldMatrix(!1,!1),A.copy(this.matrixWorld).invert(),A.multiply(r);for(let i of this.children)tr(i)&&i.hiddenMatrix.premultiply(A)}toObjectTransformState(A=[]){this.updateWorldMatrix(!0,!1);let r={position:this.position.toArray(),rotation:[this.rotation.x,this.rotation.y,this.rotation.z],scale:this.scale.toArray(),hiddenMatrix:this.hiddenMatrix.toArray()};return cl(r,A)}fromObjectTransformState(A){return A.position&&this.position.fromArray(A.position),A.rotation&&this.rotation.fromArray(A.rotation),A.scale&&this.scale.fromArray(A.scale),A.hiddenMatrix&&this.hiddenMatrix.fromArray(A.hiddenMatrix),this.updateMatrix(),this}toState(A=[]){let r={name:this.name,visible:this.visible,raycastLock:this.raycastLock,...this.toObjectTransformState(A)};return cl(r,A)}fromState(A,r){return A.name&&(this.name=A.name),A.raycastLock!==void 0&&(this.raycastLock=A.raycastLock),A.type!=="OrthographicCamera"&&A.type!=="PerspectiveCamera"&&(this.matrixAutoUpdate=!1),A.visible!==void 0&&(this.visible=A.visible),this.fromObjectTransformState(A),this}};var qv=class extends ht{},Jz=n=>n.type==="Mesh",Yr=class extends qv{constructor(t){super();this.object=t;this.hiddenMatrix=new he;this.uuidOrigin=t.uuid,this.matrixAutoUpdate=!0;for(let A of this.object.children)if(tr(A)){let r=new Yr(A);r.visible=!0,this.add(r),r.matrixAutoUpdate=!1,r.matrix=A.matrix.clone(),r.matrix.premultiply(A.hiddenMatrix)}}get castShadow(){return this.object.castShadow}set castShadow(t){}get receiveShadow(){return this.object.receiveShadow}set receiveShadow(t){}get isMesh(){return Jz(this.object)}updateMatrixWorld(t){this.matrixAutoUpdate&&this.updateMatrix(),(this.matrixWorldNeedsUpdate||t)&&(this.parent===null?this.matrixWorld.multiplyMatrices(this.hiddenMatrix,this.matrix):(this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.hiddenMatrix),this.matrixWorld.multiplyMatrices(this.matrixWorld,this.matrix)),this.matrixWorldNeedsUpdate=!1,t=!0);for(let A of this.children)A.updateMatrixWorld(t)}get isLight(){return this.object.isLight}get layers(){return this.object.layers}set layers(t){}get isCamera(){return!1}get geometry(){if(this.object.geometry)return this.object.geometry}get material(){if(this.object.material)return this.object.material}};var pE,Vl=new Promise(n=>{pE=n}),fE=!1;async function mE(){if(fE)return;let e=!1?".":"https://unpkg.com/@splinetool/modelling-wasm@0.9.153/build",[t,A]=await Promise.all([import("./process.js"),fetch(`${e}/process.wasm`).then(s=>s.arrayBuffer())]),r=t.default,i=await r({wasmBinary:A});pE(i),fE=!0}var gE=-1,e4=1,yE={x:[1,0,0],"-x":[-1,0,0],y:[0,1,0],"-y":[0,-1,0],z:[0,0,1],"-z":[0,0,-1]},vE={polygon_center:0,edge:1,vertex:2},Zu=(n,e)=>(t,A)=>!e||t===0||n===0?0:n*A/100,tt=(n,e)=>{let t=Math.abs(e),A=t*-1;return(n-gE)*(t-A)/(e4-gE)+A};function xE(n){let e=[],t={};for(var A=0,r=n.length;A<r;A++){var i=JSON.stringify(n[A].pos.map(s=>Math.round(s*1e4)/1e4));t[i]||(e.push(n[A]),t[i]=!0)}return e}var t4=new S,Ip=new S,A4=new S,n4=new S;function zl(n,e){let t=A4.fromArray(n),A=n4.fromArray(e);Ip.copy(A).sub(t);let r=Ip.length();return Ip.normalize().multiplyScalar(r*.5),t4.copy(t).add(Ip).toArray()}var nr=new Zt,Lp=new S,_p=new S,_o=new S;function bE(n){let e=[];for(let t=0;t<=n.index.count;t++)if(Lp.fromArray(n.index.array,t*3),nr.setFromAttributeAndIndices(n.attributes.position,Lp.x,Lp.y,Lp.z),nr.getNormal(_p),nr.getMidpoint(_o),!(isNaN(_o.x)||isNaN(_o.y)||isNaN(_o.z))){let{a:A,b:r,c:i}=nr,s=A.toArray(),o=r.toArray(),a=i.toArray(),c=A.distanceTo(r),l=r.distanceTo(i),u=i.distanceTo(A),h=zl(s,o),d=zl(o,a),p=zl(a,s),f=[c,l,u],m=Math.max(...f),y=f.filter(x=>Math.round(x)===Math.round(m)).length>1,g=[],b=nr.getMidpoint(_o).toArray();m===c&&!y&&(g=[d,p,p],b=h),m===l&&!y&&(g=[h,p,p],b=d),m===u&&!y&&(g=[h,d,d],b=p),y&&(g=[h,d,p]),e.push({vertices:[s,o,a],faceCenters:g,midpoint:b,norm:nr.getNormal(_p).toArray()})}return e}function wE(n){let e=[],{position:t}=n.attributes;for(let A=0;A<t.count;A++){nr.setFromAttributeAndIndices(t,A*3,A*3+1,A*3+2),nr.getNormal(_p),nr.getMidpoint(_o);let r=nr.a.toArray(),i=nr.b.toArray(),s=nr.c.toArray();e.push({vertices:[r,i,s],faceCenters:[zl(r,i),zl(i,s),zl(s,r)],midpoint:_o.toArray(),norm:_p.toArray()})}return e}var r4=4,i4=.5,Xv=n=>.5*(1-Math.cos(n*Math.PI)),Qv=class{constructor(){this.perlin=new Array(4095+1)}noise(e,t=0,A=0){if(this.perlin==null){this.perlin=new Array(4095+1);for(let y=0;y<4095+1;y++)this.perlin[y]=Math.random()}e<0&&(e=-e),t<0&&(t=-t),A<0&&(A=-A);let r=Math.floor(e),i=Math.floor(t),s=Math.floor(A),o=e-r,a=t-i,c=A-s,l,u,h=0,d=.5,p,f,m;for(let y=0;y<r4;y++){let g=r+(i<<4)+(s<<8);l=Xv(o),u=Xv(a),p=this.perlin[g&4095],p+=l*(this.perlin[g+1&4095]-p),f=this.perlin[g+16&4095],f+=l*(this.perlin[g+16+1&4095]-f),p+=u*(f-p),g+=256,f=this.perlin[g&4095],f+=l*(this.perlin[g+1&4095]-f),m=this.perlin[g+16&4095],m+=l*(this.perlin[g+16+1&4095]-m),f+=u*(m-f),p+=Xv(c)*(f-p),h+=p*d,d*=i4,r<<=1,o*=2,i<<=1,a*=2,s<<=1,c*=2,o>=1&&(r++,o--),a>=1&&(i++,a--),c>=1&&(s++,c--)}return h}noiseSeed(e){let t=(()=>{let s,o;return{setSeed(a){o=s=(a??Math.random()*4294967296)>>>0},getSeed(){return s},rand(){return o=(1664525*o+1013904223)%4294967296,o/4294967296}}})();t.setSeed(e),this.perlin=new Array(4095+1);for(let A=0;A<4095+1;A++)this.perlin[A]=t.rand()}},SE=Qv;var un=1e-4,qr,EE,CE,PE,TE=new S,ME=new S;Vl.then(n=>{qr=n,EE=[qr.get_face_center,qr.get_edge_midpoint,qr.get_vertex_position],CE=[qr.get_face_normal,qr.get_edge_normal,qr.get_vertex_normal],PE=[qr.face_count,qr.edge_count,qr.vertex_count]});var s4=new he,o4=new he,Cs=new S,Oo=new S,Ku=new S,Zv=new S,a4=new S,l4=new S;var Gi=new SE,Ro=class extends ht{constructor(t,A={}){super();this.objectForSample=void 0;this.object=t;let r=t.recursiveBBox.getSize(new S),i=.1;this.parameters=Mo.defaultData(r.toArray(),i),ll(this.parameters,A),this.update(),this.setHideBase(this.parameters.hideBase)}setHideBase(t){this.parameters.hideBase=t}update(){switch(this._updateCount(),this.parameters.type){case"radial":this._updateRadial(this.parameters);break;case"linear":this._updateLinear(this.parameters);break;case"grid":this._updateGrid(this.parameters);break;case"toObject":this._updateToObject(this.parameters)}this.parameters.type==="toObject"?this.objectForSample&&this.objectForSample.children.forEach(t=>t.updateMatrix()):this.children.forEach(t=>t.updateMatrix())}_updateCount(t){let A;if(t!==void 0?A=t:A=this.parameters.type==="grid"?this.parameters.grid.count[0]*this.parameters.grid.count[1]*this.parameters.grid.count[2]:this.parameters.count,this.parameters.type==="toObject"&&!this.parameters.toObject.object&&(A=0),this.parameters.type==="toObject"&&this.objectForSample){for(let i=0,s=this.children.length;i<s;++i)this.remove(this.children[0]);let r=[...this.objectForSample.children].filter(i=>i instanceof Yr&&i.uuidOrigin===this.object.uuid);if(r.length===A)return;if(r.length<A)for(let i=0,s=A-r.length;i<s;++i){let o=new Yr(this.object);o.visible=!0,this.objectForSample.add(o),this.parameters.hideBase&&this.setHideBase(!0)}else for(let i=0,s=r.length-A;i<s;++i)this.objectForSample.remove(r[i])}else{if(this.children.length===A)return;if(this.children.length<A)for(let r=0,i=A-this.children.length;r<i;++r){let s=new Yr(this.object);s.visible=!0,this.add(s),this.parameters.hideBase&&this.setHideBase(!0)}else for(let r=0,i=this.children.length-A;r<i;++r)this.remove(this.children[0])}}_updateRadial(t){let A=t.radial,r=A.start*ze.DEG2RAD,i=A.end*ze.DEG2RAD,s=r-i,o=new Yt(A.rotation[0],A.rotation[1],A.rotation[2]),a;switch(A.axis){case"z":a=new S(0,0,1);break;case"y":a=new S(0,1,0);break;default:case"x":a=new S(1,0,0);break}let c=t.randomnessObject,l=c.noiseType==="perlin";Gi.noiseSeed(c.seed);let u=Ep((0,Hl.default)(c.seed)),h=Zu(c.strength,this.parameters.randomness);for(let[d,p]of this.children.entries()){let f=d*(c.freqScale/10)+c.movement,m=l?Gi.noise(f):u(f,f);p.scale.x=A.scale[0]+h(d,tt(m,c.scale[0]))||un,p.scale.y=A.scale[1]+h(d,tt(m,c.scale[1]))||un,p.scale.z=A.scale[2]+h(d,tt(m,c.scale[2]))||un,p.position.setScalar(0);let y=s/t.count*d-r;switch(A.axis){case"x":p.rotation.set(0,y,0);break;case"y":p.rotation.set(0,0,y);break;case"z":p.rotation.set(y,0,0);break}p.translateOnAxis(a,A.radius),p.position.x+=A.position[0]+h(d,tt(m,c.position[0])),p.position.y+=A.position[1]+h(d,tt(m,c.position[1])),p.position.z+=A.position[2]+h(d,tt(m,c.position[2]));let g=h(d,tt(m,c.rotation[0])),b=h(d,tt(m,c.rotation[1])),x=h(d,tt(m,c.rotation[2]));A.alignment===!0?(p.rotation.x+=o.x+g,p.rotation.y+=o.y+b,p.rotation.z+=o.z+x):p.rotation.set(o.x+g,o.y+b,o.z+x)}}_updateLinear(t){if(t.type!=="linear")throw new Error;let A=t.linear,r=new Yt(A.rotation[0],A.rotation[1],A.rotation[2]),i=t.randomnessObject,s=i.noiseType==="perlin";Gi.noiseSeed(i.seed);let o=Ep((0,Hl.default)(i.seed)),a=Zu(i.strength,this.parameters.randomness);for(let[c,l]of this.children.entries()){let u=c*(i.freqScale/10)+i.movement,h=s?Gi.noise(u):o(u,u),d=a(c,tt(h,i.rotation[0])),p=a(c,tt(h,i.rotation[1])),f=a(c,tt(h,i.rotation[2]));l.scale.x=1+(A.scale[0]-1)*c+a(c,tt(h,i.scale[0]))||un,l.scale.y=1+(A.scale[1]-1)*c+a(c,tt(h,i.scale[1]))||un,l.scale.z=1+(A.scale[2]-1)*c+a(c,tt(h,i.scale[2]))||un,l.rotation.x=r.x*c+d,l.rotation.y=r.y*c+p,l.rotation.z=r.z*c+f,l.position.x=A.position[0]*c+a(c,tt(h,i.position[0])),l.position.y=A.position[1]*c+a(c,tt(h,i.position[1])),l.position.z=A.position[2]*c+a(c,tt(h,i.position[2]))}}_updateGrid(t){let A=0,r=t.grid,i=t.randomnessObject,s=Zu(i.strength,this.parameters.randomness),o=i.noiseType==="perlin";Gi.noiseSeed(i.seed);let a=iE((0,Hl.default)(i.seed));if(r.useCenter===!0){let c={x:r.count[0]%2===0?2:1,y:r.count[1]%2===0?2:1,z:r.count[2]%2===0?2:1},l=new S(r.size[0]*(r.count[0]-c.x)*.5,r.size[1]*(r.count[1]-c.y)*.5,r.size[2]*(r.count[2]-c.z)*.5);for(let u=0;u<r.count[0];u++)for(let h=0;h<r.count[1];h++)for(let d=0;d<r.count[2];d++){let p=[(u+1)*(i.freqScale/10)+i.movement,(h+1)*(i.freqScale/10)+i.movement,(d+1)*(i.freqScale/10)+i.movement],f=o?Gi.noise(...p):a(...p),m=this.children[A++];m.scale.x=1+s(A,tt(f,i.scale[0]))||un,m.scale.y=1+s(A,tt(f,i.scale[1]))||un,m.scale.z=1+s(A,tt(f,i.scale[2]))||un;let y=s(A,tt(f,i.rotation[0])),g=s(A,tt(f,i.rotation[1])),b=s(A,tt(f,i.rotation[2]));m.rotation.set(y,g,b),m.position.x=r.size[0]*u-l.x+s(A,tt(f,i.position[0])),m.position.y=r.size[1]*h-l.y+s(A,tt(f,i.position[1])),m.position.z=r.size[2]*d-l.z+s(A,tt(f,i.position[2]))}}else for(let c=0;c<r.count[0];c++)for(let l=0;l<r.count[1];l++)for(let u=0;u<r.count[2];u++){let h=[(c+1)*(i.freqScale/10)+i.movement,(l+1)*(i.freqScale/10)+i.movement,(u+1)*(i.freqScale/10)+i.movement],d=o?Gi.noise(...h):a(...h),p=this.children[A++];p.scale.x=1+s(A,tt(d,i.scale[0]))||un,p.scale.y=1+s(A,tt(d,i.scale[1]))||un,p.scale.z=1+s(A,tt(d,i.scale[2]))||un;let f=s(A,tt(d,i.rotation[0])),m=s(A,tt(d,i.rotation[1])),y=s(A,tt(d,i.rotation[2]));p.rotation.set(f,m,y),p.position.x=r.size[0]*c+s(A,tt(d,i.position[0])),p.position.y=-r.size[1]*l+s(A,tt(d,i.position[1])),p.position.z=-r.size[2]*u+s(A,tt(d,i.position[2]))}}_updateToObject(t){if(t.type!=="toObject")throw new Error;let{toObject:A}=t,r=new Yt(A.rotation[0],A.rotation[1],A.rotation[2]),i=t.randomnessObject,s=i.noiseType==="perlin";Gi.noiseSeed(i.seed);let o=Ep((0,Hl.default)(i.seed)),a=Zu(i.strength,this.parameters.randomness);if(!A.object){for(let[,y]of this.children.entries())y.position.set(0,0,0),y.scale.setScalar(1),y.rotation.set(0,0,0);this.objectForSample=void 0;return}if(!this.objectForSample)return;let c=this.getSubdivData(),l=[],u=y=>{let g=y.length,b=y.map(T=>T[0]).reduce((T,M)=>T+M,0),x=y.map(T=>T[1]).reduce((T,M)=>T+M,0),w=y.map(T=>T[2]).reduce((T,M)=>T+M,0);return[b/g,x/g,w/g]},h=y=>Math.round(y*1e6)/1e6;c.forEach(y=>{let g=c.filter(b=>h(y.pos[0])===h(b.pos[0])&&h(y.pos[1])===h(b.pos[1])&&h(y.pos[2])===h(b.pos[2]));g.length>1?l.push({pos:y.pos,norm:u(g.map(b=>b.norm))}):l.push(y)});let d=xE(l);if(c.length>0){let y=Math.round(d.length*A.count/100);this._updateCount(y)}this.objectForSample.updateMatrixWorld();let p=new Cp(this.objectForSample).build(),f=yE[A.axis],m=this.objectForSample.children.filter(y=>y instanceof Yr&&y.uuidOrigin===this.object.uuid);p.setRandomGenerator((0,Hl.default)(this.object.uuid+A.seed));for(let[y,g]of m.entries()){let b=y*(i.freqScale/10)+i.movement,x=s?Gi.noise(b):o(b,b),w=a(y,tt(x,i.rotation[0])),T=a(y,tt(x,i.rotation[1])),M=a(y,tt(x,i.rotation[2]));A.spreadType==="random"?p.sample(Ku,Zv):(d.length&&(Ku.fromArray(d[y].pos),Zv.fromArray(d[y].norm)),this.objectForSample.objectType==="SubdivObject"&&Ku.applyMatrix4(s4.copy(this.objectForSample.matrixWorld).invert())),Ku.applyMatrix4(this.object.hiddenMatrix.clone().invert()),g.position.copy(Ku),Cs.fromArray(f);let v=A.align==="normal"?Zv:this.object.getWorldDirection(l4),E=Oo.fromArray(A.position);Oo.x+=Oo.x+a(y,tt(x,i.position[0])),Oo.y+=Oo.y+a(y,tt(x,i.position[1])),Oo.z+=Oo.z+a(y,tt(x,i.position[2]));let C=Math.acos(v.dot(Cs)),P=a4.crossVectors(Cs,v).normalize(),D=o4.makeRotationAxis(P,C),_=v.clone().cross(this.object.up).normalize(),I=_.clone().cross(v).normalize(),B=new he().makeBasis(_,v,I),N=new S(Cs.y,Cs.z,Cs.x).normalize(),W=N.clone().cross(Cs).normalize(),X=new he().makeBasis(N,Cs,W).invert(),F=new he().multiplyMatrices(B,X);g.rotation.setFromRotationMatrix(F),E.applyMatrix4(D),g.position.add(E),g.rotation.x=g.rotation.x+r.x+w,g.rotation.y=g.rotation.y+r.y+T,g.rotation.z=g.rotation.z+r.z+M,g.scale.setScalar(1),g.scale.x=g.scale.x+A.scale[0]+a(y,tt(x,i.scale[0]))||un,g.scale.y=g.scale.y+A.scale[1]+a(y,tt(x,i.scale[1]))||un,g.scale.z=g.scale.z+A.scale[2]+a(y,tt(x,i.scale[2]))||un,g.scale.multiply(this.object.scale),g.hiddenMatrix=this.object.hiddenMatrix}}setObjectForSample(t){this.objectForSample=t}getSubdivData(){if(!this.objectForSample)return[];let t=this.parameters.toObject.spreadType;if(t==="random")return[];if(this.objectForSample.objectType==="SubdivObject"){let A=this.objectForSample,r=vE[t],i=PE[r],s=EE[r],o=CE[r],a=[],c=i(A.subdivPointer);for(let l=0;l<=c-1;l++){let u=s(A.subdivPointer,l),h=o(A.subdivPointer,l);TE.fromArray(u).applyMatrix4(A.matrixWorld),ME.fromArray(h),a.push({pos:TE.toArray(),norm:ME.toArray()})}return a}else return(this.objectForSample.geometry.index?bE(this.objectForSample.geometry):wE(this.objectForSample.geometry)).map((r,i)=>t==="polygon_center"?{pos:r.midpoint,norm:r.norm}:t==="vertex"?[{pos:r.vertices[0],norm:r.norm},{pos:r.vertices[1],norm:r.norm},{pos:r.vertices[2],norm:r.norm}]:t==="edge"?[{pos:r.faceCenters[0],norm:r.norm},{pos:r.faceCenters[1],norm:r.norm},{pos:r.faceCenters[2],norm:r.norm}]:[]).flat()}removeSampleObjectClones(){if(this.objectForSample)for(var t=this.objectForSample.children.length-1;t>=0;t--){let A=this.objectForSample.children[t];A instanceof Yr&&A.uuidOrigin===this.object.uuid&&this.objectForSample.remove(A)}}fromClonerState(t){if(!t)return this;t.hideBase!==void 0&&this.setHideBase(t.hideBase);let A=t.hasOwnProperty("type");return t.toObject?.hasOwnProperty("object")&&!!this.parameters.toObject.object&&!t.toObject.object&&(this.removeSampleObjectClones(),this.setObjectForSample(void 0)),this.parameters.type==="toObject"&&(A?t.type!=="toObject":!1)&&(this.removeSampleObjectClones(),this.setObjectForSample(void 0)),ll(this.parameters,t),this.update(),this}};var Xr=n=>{var e;return e=class extends n{constructor(){super(...arguments);this.isObjectHelper=!0}},e.geometryHelper=new fn(30,30,30),e};var Op=new dr,Kv=new DA,DE=new he,Qr=(n,e,t,A,r=!1)=>{let i=e,s=n.matrixWorld;if(i.boundingSphere===null&&i.computeBoundingSphere(),Kv.copy(i.boundingSphere),Kv.applyMatrix4(s),t.ray.intersectsSphere(Kv)===!1||(DE.copy(s).invert(),Op.copy(t.ray).applyMatrix4(DE),i.boundingBox!==null&&Op.intersectsBox(i.boundingBox)===!1))return;let o,a,c,l,u=i.index,h=i.attributes.position,d=i.drawRange,p,f;if(r===!1){let y=Math.max(0,d.start),g=Math.min(u.count,d.start+d.count);for(p=y,f=g;p<f;p+=3)if(a=u.getX(p),c=u.getX(p+1),l=u.getX(p+2),o=m(n,t,Op,h,a,c,l),o){o.faceIndex=Math.floor(p/3),A.push(o);return}}else{let g=i.attributes.position,b=new S,x=new S,w=new S,T=new S,M=2,E=1/((n.scale.x+n.scale.y+n.scale.z)/3),C=E*E,P=Math.max(0,d.start),D=Math.min(g.count,d.start+d.count);for(let _=P,I=D-1;_<I;_+=M){if(b.fromBufferAttribute(g,_),x.fromBufferAttribute(g,_+1),Op.distanceSqToSegment(b,x,T,w)>C)continue;T.applyMatrix4(n.matrixWorld);let N=t.ray.origin.distanceTo(T);N<t.near||N>t.far||A.push({distance:N,point:w.clone().applyMatrix4(n.matrixWorld),object:n})}}function m(y,g,b,x,w,T,M){let v=new S,E=new S,C=new S,P=new S,D=new S;if(v.fromBufferAttribute(x,w),E.fromBufferAttribute(x,T),C.fromBufferAttribute(x,M),b.intersectTriangle(v,E,C,!1,P)===null)return null;D.copy(P),D.applyMatrix4(y.matrixWorld);let I=g.ray.origin.distanceTo(D);return I<g.near||I>g.far?null:{faceIndex:1,distance:I,point:D.clone(),object:y}}};var Rp=new S,rr=new fr,Jv=class extends rs{constructor(t){let A=new Ie,r=new jn({color:16777215,vertexColors:!0,toneMapped:!1}),i=[],s=[],o={},a=new _e(15711266),c=new _e(15711266),l=new _e(2857471);u("n1","n2",a),u("n2","n4",a),u("n4","n3",a),u("n3","n1",a),u("f1","f2",a),u("f2","f4",a),u("f4","f3",a),u("f3","f1",a),u("n1","f1",a),u("n2","f2",a),u("n3","f3",a),u("n4","f4",a),u("p","n1",c),u("p","n2",c),u("p","n3",c),u("p","n4",c),u("u1","u2",l),u("u2","u3",l),u("u3","u1",l);function u(d,p,f){h(d,f),h(p,f)}function h(d,p){i.push(0,0,0),s.push(p.r,p.g,p.b),o[d]===void 0&&(o[d]=[]),o[d].push(i.length/3-1)}A.setAttribute("position",new Se(i,3)),A.setAttribute("color",new Se(s,3));super(A,r);this.type="CameraHelper",this.camera=t,this.camera.updateProjectionMatrix&&this.camera.updateProjectionMatrix(),this.matrix=t.matrixWorld,this.matrixAutoUpdate=!1,this.pointMap=o,this.update()}update(){let t=this.geometry,A=this.pointMap,r=!0;rr.projectionMatrixInverse.elements=[.5112609807824982,-0,-0,-0,-0,.41421356237309503,-0,-0,-0,-0,-0,-.099999,-0,-0,-1.0000000000000002,.100001];let i=1,s=1,o=r?.8:1e-4;xr("n1",A,t,rr,-i,-s,o),xr("n2",A,t,rr,i,-s,o),xr("n3",A,t,rr,-i,s,o),xr("n4",A,t,rr,i,s,o);let a=o;xr("f1",A,t,rr,-i,-s,a),xr("f2",A,t,rr,i,-s,a),xr("f3",A,t,rr,-i,s,a),xr("f4",A,t,rr,i,s,a);let c=a,l=.5;xr("u1",A,t,rr,i*.7*l,s*1.1,c),xr("u2",A,t,rr,-i*.7*l,s*1.1,c),xr("u3",A,t,rr,0,s*(1.1+.9*l),c),t.getAttribute("position").needsUpdate=!0}dispose(){this.geometry.dispose(),this.material.dispose()}};function xr(n,e,t,A,r,i,s){Rp.set(r,i,s).unproject(A);let o=e[n];if(o!==void 0){let a=t.getAttribute("position");for(let c=0,l=o.length;c<l;c++)a.setXYZ(o[c],Rp.x,Rp.y,Rp.z)}}var Bp=class extends Xr(Jv){constructor(t){super(t);this.object=t;this.object=t,this.name=`CombinedCameraHelper: ${t.uuid}`}updateMatrixWorld(t){super.updateMatrixWorld(t),this.updateTarget()}updateTarget(){let t=this.object.getTarget();this.updateWorldMatrix(!0,!1),this.worldToLocal(t)}raycast(t,A){Qr(this.object,this.geometry,t,A,!0)}};var Wl=class extends Xr(Zd){constructor(t,A=15,r=10066329){super(t,A,r);this.object=t;this.added=!1;this.name=`DirectionalLightHelper: ${t.uuid}`}raycast(t,A){Qr(this.object,Wl.geometryHelper,t,A)}};var jl=class extends Xr(Kd){constructor(t,A=15){super(A);this.object=t;this.object.updateMatrixWorld(),this.name=`EmptyObjectHelper: ${t.uuid}`,this.matrix=t.matrixWorld,this.matrixAutoUpdate=!1}raycast(t,A){Qr(this.object,jl.geometryHelper,t,A)}update(){}};var Yl=class extends Xr(Qd){constructor(t,A=15,r=6710886){super(t,A,r);this.object=t;this.name=`PointLightHelper: ${t.uuid}`}raycast(t,A){Qr(this.object,Yl.geometryHelper,t,A)}};var Np=class extends Xr(Xd){constructor(t,A=6710886){super(t,A);this.object=t;this.name=`SpotLightHelper: ${t.uuid}`}raycast(t,A){Qr(this.object,Np.geometryHelper,t,A)}update(){if(this.object!==void 0){let t=Np._vector,A=this.object.distance?this.object.distance:1e3,r=A*Math.tan(this.object.angle);this.cone.scale.set(r,r,A),t.setFromMatrixPosition(this.object.target.matrixWorld),this.cone.lookAt(t);let i=this.color!==void 0?this.color:this.light.color;if(this.cone.material instanceof Array)for(let s=0,o=this.cone.material.length;s<o;s++)this.cone.material[s].color.set(i);else this.cone.material.color.set(i)}}},Ju=Np;Ju._vector=new S;var $u=1e-12,ql=class{constructor(e){this.position=new G;this.startPosition=new G;this.uuid=ze.generateUUID();this.position=e.clone()}start(){this.reset()}reset(){this.startPosition.copy(this.position)}applyOffset(e){this.position.copy(this.startPosition).add(e)}copy(e){return this.position.copy(e.position),this.startPosition.copy(e.startPosition),this}clone(){return new ql(this.position).copy(this)}toJSON(){return[this.position.x,this.position.y]}},Xl=class extends ql{constructor(t){super(t.position);this.parent=t}copy(t){return super.copy(t),this}clone(){return new Xl(this.parent).copy(this)}},br=class extends ql{constructor(t,A){super(A);this.controls=[];this.roundness=0;this.areControlsDirectionsMirrored=!0;this.uuid=t,this.controls.push(new Xl(this),new Xl(this))}static create(t,A){let r=new br(t,new G(...A.position));return r.controls[0].position.set(...A.controlPrevious.position),r.controls[1].position.set(...A.controlNext.position),r.roundness=A.roundness,r.areControlsDirectionsMirrored=A.areControlsDirectionsMirrored,r}getOppositeControl(t){let A=this.controls.indexOf(t);return A===0?this.controls[1]:A===1?this.controls[0]:null}applyOffsetToControls(t,A=1){for(let r=0,i=this.controls.length;r<i;r++){let s=this.controls[r];this.position.distanceTo(s.position)<=A?s.position.copy(this.position):s.applyOffset(t)}}controlsMoved(){return!(this.position.equals(this.controls[0].position)&&this.position.equals(this.controls[1].position))}copy(t){return super.copy(t),this.controls[0].copy(t.controls[0]),this.controls[1].copy(t.controls[1]),this.roundness=t.roundness,this.uuid=t.uuid,this}clone(){return new br(this.uuid,this.position).copy(this)}toJSON(){return super.toJSON().concat(this.controls[0].toJSON(),this.controls[1].toJSON(),[this.roundness])}computeTangents(){let t=this.curveBefore?.getTangentAt(1),A=this.curveAfter?.getTangentAt(0);return[t,A]}computeNormals(t=new G,A=new G){let[r,i]=this.computeTangents();return r&&i&&(IE(r,t),IE(i,A)),[t,A]}computeTangent(t=new G){let[A,r]=this.computeTangents();return A&&r&&t.copy(A).add(r).normalize(),t}computeNormal(t=new G){let[A,r]=this.computeNormals();return t.copy(A).add(r).normalize(),t}};function IE(n,e=new G){let t=n.length();return e.set(-n.y/t,n.x/t)}var e0=n=>n,Ql=new G,Fp=new G,u4=new G,h4=new G,d4=new G,f4=new G,_E=new S,OE=new S;function RE(n){let e=new G;e.addVectors(n.v0,Ql.subVectors(n.v1,n.v0).multiplyScalar(2/3));let t=new G;return t.addVectors(n.v2,Fp.subVectors(n.v1,n.v2).multiplyScalar(2/3)),new qA(n.v0,e,t,n.v2)}function eh(n,e,t=Number.EPSILON){return Math.abs(n-e)<t}function p4(n,e,t=Number.EPSILON){return n.distanceTo(e)<t}function m4(n,e,t=Number.EPSILON){return n.distanceTo(e)<t}function t0(n,e,t){let A=Math.sqrt(Math.pow(e.x-n.x,2)+Math.pow(e.y-n.y,2)),r=Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2)),i=Math.sqrt(Math.pow(t.x-n.x,2)+Math.pow(t.y-n.y,2));return Math.acos((r*r+A*A-i*i)/(2*r*A))}function BE(n,e,t){return LE(n,e)&&LE(e,t)&&$v(n.position,e.position,t.position)}function $v(n,e,t){return Ql.copy(e).sub(n).cross(Fp.copy(t).sub(n))===0}function NE(n,e,t,A,r){let i=Math.sqrt(Math.pow(e.x-n.x,2)+Math.pow(e.y-n.y,2)),s=(n.y+e.y)/2,o=(n.x+e.x)/2,a=Math.sqrt(Math.pow(t,2)-Math.pow(i/2,2))*(n.y-e.y)/i,c=Math.sqrt(Math.pow(t,2)-Math.pow(i/2,2))*(e.x-n.x)/i;return A.set(o+a,s+c),r.set(o-a,s-c),[A,r]}function FE(n,e,t){let A=n.distanceTo(t),r=e.distanceTo(t);return A<r?e:n}function GE(n,e,t,A,r,i){let s=e.x-n.x,o=e.y-n.y,a=t.x-n.x,c=t.y-n.y,l=Math.sqrt((s+a)*(s+a)+(o+c)*(o+c)),u;return t0(e,n,t)>Math.PI&&(l*=-1),eh(c,o)?u=(o+c)*(A/l-.5)*8/3/(s-a):u=(s+a)*(A/l-.5)*8/3/(c-o),r.set(e.x-u*o,e.y+u*s),i.set(t.x+u*c,t.y-u*a),[r,i]}function A0(n,e){return n.position.equals(n.controls[1].position)&&e.position.equals(e.controls[0].position)}function LE(n,e){return $v(n.position,n.controls[1].position,e.position)&&$v(n.position,e.controls[0].position,e.position)}function kE(n,e,t,A,r=.5){let i=Ql.subVectors(e,n).multiplyScalar(r).add(n),s=Fp.subVectors(t,e).multiplyScalar(r).add(e),o=u4.subVectors(A,t).multiplyScalar(r).add(t),a=i,c=h4.subVectors(s,i).multiplyScalar(r).add(i),l=d4.subVectors(o,s).multiplyScalar(r).add(s),u=o,h=f4.subVectors(l,c).multiplyScalar(r).add(c);return[n.x,n.y,a.x,a.y,c.x,c.y,h.x,h.y,l.x,l.y,u.x,u.y,A.x,A.y]}function UE(n,e,t=12,A=!0){let r=OE.set(0,0,0),i,s=0,o=[];for(let a=0;a<e.length;a++){let c=e0(e[a]),l=Ql,u=Ps(c,t);o.push(u);for(let h=0;h<=u;h++)if(c instanceof qA||c instanceof _n||c instanceof XA){if(c.getPoint(h/u,l),r.set(l.x,l.y,0),i!==void 0&&m4(i,r))continue;i===void 0&&(i=_E),i.copy(r),n.setXYZ(s,r.x,r.y,r.z),s++}}return A&&s>1&&!(n.getX(s-1)===n.getX(0)&&n.getY(s-1)===n.getY(0)&&n.getZ(s-1)===n.getZ(0))&&(n.setXYZ(s,n.getX(0),n.getY(0),n.getZ(0)),s++),n}function VE(n,e,t,A=12,r=!0){let i=OE.set(0,0,0),s=0,o=[];for(let a=0;a<e.length;a++){if(t[a]===!1)continue;let c,l=e0(e[a]),u=Ql,h=Ps(l,A);o.push(h);for(let d=0;d<=h;d++)if(l instanceof qA||l instanceof _n||l instanceof XA){if(l.getPoint(d/h,u),i.set(u.x,u.y,0),c?.equals(i))continue;c===void 0?c=_E:(n.setXYZ(s,c.x,c.y,c.z),s++,n.setXYZ(s,i.x,i.y,i.z),s++),c.copy(i)}}return r&&s>1&&!(n.getX(s-1)===n.getX(0)&&n.getY(s-1)===n.getY(0)&&n.getZ(s-1)===n.getZ(0))&&(n.setXYZ(s,n.getX(0),n.getY(0),n.getZ(0)),s++),o}function n0(n,e=12,t=!1){let A=[];for(let r=0,i=n.length;r<i;r++){let s=n[r],o=0;if(t&&s.roundedCurveCorner!==void 0){let a=Ps(s.roundedCurveCorner,e)*.5;r>0&&(A[r-1]+=a),o+=a}s.curveAfter!==void 0&&(o+=Ps(s.curveAfter,e)),A.push(o)}return n.length>0&&t&&n[0].roundedCurveCorner!==void 0&&(A[n.length-1]+=Ps(n[0].roundedCurveCorner,e)*.5),A}function Ps(n,e=12){return n&&n instanceof oo?e*2:n&&(n instanceof XA||n instanceof iu)?1:n&&n instanceof xa?e*n.points.length:e}function zE(n,e,t=12,A=!0){let r,i=0;for(let s=0;s<e.length;s++){let o=e0(e[s]),a=Ps(o,t),c=Ql;for(let l=0;l<=a;l++)if(o instanceof qA||o instanceof _n||o instanceof XA){if(o.getPoint(l/a,c),r!==void 0&&p4(r,c,$u))continue;r===void 0&&(r=Fp),r.copy(c),n.push(c.x,c.y),i++}}return eh(n[0],n[n.length-2],$u)&&eh(n[1],n[n.length-1],$u)&&(n.pop(),n.pop()),A&&i>1&&!(eh(n[i-1],n[1],$u)&&eh(n[i-2],n[0],$u))&&(n.push(n[0],n[1]),i++),n}var r0=new G,g4=new G,y4=new G,v4=new G,x4=new G,b4=new G,yt=class extends Mi{constructor(t=100,A=100){super();this.points=[];this.shapeHoles=[];this.eventDispatcher=new Ot;this.plane=new yA(new S(0,0,-1));this.subdivision=0;this.controlSnapDistance=4;this.pointIDs=0;this.isMesh2D=!1;this._roundness=0;this.isClosed=!1;this.useCubicForRoundedCorners=!0;this.uuid=ze.generateUUID();this.needsUpdate=!1;this.roundedCurves=[];this._width=t,this._height=A}static createFromState(t,A,r){let i=new yt;return i.isClosed=t.isClosed,i.points=t.points.map(s=>br.create(s.id,s.data)),typeof t.roundness=="number"&&(i.roundness=t.roundness),i.shapeHoles=t.shapeHoles.map(s=>yt.createFromState(s)),A!==void 0&&r!==void 0&&i.applySize(A,r),i.update(),i}get width(){return this._width}get height(){return this._height}get roundness(){return this._roundness}set roundness(t){if(this._roundness!==t){this._roundness=t;for(let A=0,r=this.points.length;A<r;A++)this.points[A].roundness=t;this.needsUpdate=!0}}getPointsIndexesByIds(t){return t.map(A=>this.getPointIndexById(A)).filter(A=>A>=0)}getPointIndexById(t){let A=this.points.length,r=this.points.findIndex(i=>i.uuid===t);if(r<0){let i=A;for(let s=0,o=this.shapeHoles.length;s<o;s++){let a=this.shapeHoles[s],c=a.points.length,l=a.getPointIndexById(t);if(l<0)i+=c;else return l+i}}return r}getLineIndexById(t){return this.getPointIndexById(t)}getBezierPoint(t){if(t<=this.points.length-1)return this.points[t];if(this.shapeHoles.length>0){let A=this.points.length;for(let r=0,i=this.shapeHoles.length;r<i;r++){let s=this.shapeHoles[r],o=t-A;if(o<=s.points.length-1)return s.points[o];A+=s.points.length}}throw new Error("This shape does not have a point for this index: "+t)}getBezierPointIndex(t){let A=this.points.indexOf(t);if(A>=0)return A;if(A=this.points.length,this.shapeHoles.length>0)for(let r=0,i=this.shapeHoles.length;r<i;r++){let s=this.shapeHoles[r],o=s.points.indexOf(t);if(o>=0)return A+o;A+=s.points.length}return-1}getAllPoints(){let t=[].concat(...this.shapeHoles.map(A=>A.points));return[...this.points,...t]}applySize(t,A){t===0&&(t=.001),A===0&&(A=.001),this._width=t,this._height=A}applyScale(t,A){let r=r0.set(t,A);for(let i=0,s=this.points.length;i<s;i++){let o=this.points[i];o.position.multiply(r),o.controls[0].position.multiply(r),o.controls[1].position.multiply(r)}for(let i=0,s=this.shapeHoles.length;i<s;i++)this.shapeHoles[i].applyScale(t,A);this._update(!1)}createPoint(t,A=0,r=ze.generateUUID()){let i;t instanceof G?i=t:i=new G(t,A);let s=new br(r,i);return s.roundness=this.roundness,s}addPoint(t){this.points.push(t),this.needsUpdate=!0}addPointAt(t,A){this.points.splice(A,0,t),this.needsUpdate=!0}getPointByUuid(t){for(let A=0,r=this.points.length;A<r;A++){let i=this.points[A];if(i.uuid===t)return i}for(let A=0,r=this.shapeHoles.length;A<r;A++){let s=this.shapeHoles[A].getPointByUuid(t);if(s)return s}}getFirstPoint(){return this.points[0]}getLastPoint(){return this.points[this.points.length-1]}removePoint(t){let A=this.points.indexOf(t);A>=0&&this.points.splice(A,1),this.needsUpdate=!0}removePointById(t){let A=this.points.find(r=>r.uuid===t);A&&this.removePoint(A)}update(t=!0){for(let A=0,r=this.shapeHoles.length;A<r;A++)this.shapeHoles[A].update(!1);this._update(t)}extractShapePointsToBuffer(t,A=12,r=!1){this.subdivision=A,this.curveDivisions===void 0&&this.computeCurveDivisions(A);let i=r?this.roundedCurveDivisions:this.curveDivisions;return UE(t,r?this.roundedCurves:this.curves,A,this.autoClose),i.reduce((s,o)=>s+o,0)+1}computeCurveDivisions(t=12){return this.curveDivisions=n0(this.points,t,!1),this.roundedCurveDivisions=n0(this.points,t,!0),this.curveDivisions}extractFilteredShapePointsToBuffer(t,A,r=12){return VE(t,this.curves,A,r,this.autoClose).reduce((s,o)=>s+o,0)*2}extractShapePointsToFlatArray(t,A=12){return this.subdivision=A,this.curveDivisions===void 0&&this.computeCurveDivisions(A),zE(t,this.roundedCurves,A,this.autoClose)}getCurveIndexFromVertexId(t,A=!1){let r=0;this.curveDivisions===void 0&&this.computeCurveDivisions(this.subdivision);let i=A?this.roundedCurveDivisions:this.curveDivisions,s=0;A&&this.points[0].roundedCurveCorner!==void 0&&(s=Ps(this.points[0].roundedCurveCorner,this.subdivision)*.5);let o=t-s;o<0&&(o+=i.reduce((a,c)=>a+c,0));for(let a=0,c=i.length;a<c;a++){let l=i[a];if(o<r+l)return[a,(o-r+1)/l];r+=l}return[0,1]}getCurveT(t,A,r){let i=this.points[t],s=this.points[t>=this.points.length-1?0:t+1],o=this.curveDivisions,a=o[t];if(A0(i,s)){let u=i.position.distanceTo(s.position);return i.position.distanceTo(r0.set(r.x,r.y))/u}let c=0;for(let u=0;u<t;u++)c+=o[u];return(A-c)/a}dispose(){this.eventDispatcher=null}_applyCurveForPoint(t,A){A0(A,t)?this.lineTo(t.position.x,t.position.y):this.bezierCurveTo(A.controls[1].position.x,A.controls[1].position.y,t.controls[0].position.x,t.controls[0].position.y,t.position.x,t.position.y);let r=this.curves[this.curves.length-1];t.curveBefore=r,A.curveAfter=r;let i=r.clone();t.roundedCurveBefore=i,A.roundedCurveAfter=i,t.roundedCurveCorner=void 0,this.roundedCurves.push(i)}_update(t=!0){if(this.curves=[],this.roundedCurves=[],!this.points.length)return;for(let r=0,i=this.points.length;r<i;r++){let s=this.points[r];if(r===0)this.moveTo(s.position.x,s.position.y);else{let o=this.points[r-1];this._applyCurveForPoint(s,o)}}let A=this.getLastPoint();if(A?.curveAfter&&(A.curveAfter=void 0),this.isClosed){let r=this.points[0],i=this.points[this.points.length-1];this._applyCurveForPoint(r,i)}if(this.points.length>2){let r=0;for(let i=0,s=this.points.length;i<s;i++){let o=this.points[i],a=this.points[i-1]??this.points[this.points.length-1],c=this.points[i+1]??this.points[0],l=o.roundness,u=a&&c&&BE(a,o,c);if(!o.controlsMoved()&&l>0&&!u){let h=o.curveBefore,d=o.curveAfter;if(h===void 0||d===void 0)continue;let p=o.roundedCurveBefore,f=o.roundedCurveAfter,m=h.getLength(),y=d.getLength(),g=Math.min(l,m*.499),b=Math.min(l,y*.499),x=Math.min(g,b),w=1-x/m,T=x/y,M=h.getPointAt(w,r0),v=d.getPointAt(T,g4);this._subSplitCurve(h,p,w,M,void 0),this._subSplitCurve(d,f,T,void 0,v);let E;if(this.useCubicForRoundedCorners){let C=t0(M,o.position,v)/2,P=Math.tan(C)*M.distanceTo(o.position),[D,_]=NE(M,v,P,y4,v4),I=FE(D,_,o.position),[B,N]=GE(I,M,v,P,x4,b4);E=new qA(M.clone(),B.clone(),N.clone(),v.clone())}else E=new _n(M.clone(),o.position.clone(),v.clone());o.roundedCurveCorner=E,this.roundedCurves.splice(i+r,0,E),r++}}}t&&this.eventDispatcher?.dispatchEvent({type:"update"})}_subSplitCurve(t,A,r,i,s){if(t instanceof XA)i!==void 0&&A.v2.copy(i),s!==void 0&&A.v1.copy(s);else{let o=t,a=A,c=o.getUtoTmapping(r,0),l=kE(o.v0,o.v1,o.v2,o.v3,c);return i!==void 0&&(a.v0.set(l[0],l[1]),a.v1.set(l[2],l[3]),a.v2.set(l[4],l[5]),a.v3.set(l[6],l[7])),s!==void 0&&(a.v0.set(l[6],l[7]),a.v1.set(l[8],l[9]),a.v2.set(l[10],l[11]),a.v3.set(l[12],l[13])),a}return A}clone(){let t=new yt(this._width,this._height);return t.points=this.points.map(A=>A.clone()),t.isClosed=this.isClosed,t.roundness=this.roundness,t.isMesh2D=this.isMesh2D,t.shapeHoles=this.shapeHoles.map(A=>A.clone()),t}toJSON(){return{points:this.points.reduce((t,A)=>t.concat(A.toJSON()),[]),shapeHoles:this.shapeHoles.map(t=>t.toJSON()),isClosed:this.isClosed,roundness:this.roundness}}fromJSON(t){this.points=[],this.pointIDs=0;let A=t.points.length/7;for(let r=0;r<A;r++){let i=r*7,s=t.points[i+0],o=t.points[i+1],a=t.points[i+2],c=t.points[i+3],l=t.points[i+4],u=t.points[i+5],h=t.points[i+6],d=new br(ze.generateUUID(),new G(s,o));d.controls[0].position.set(a,c),d.controls[1].position.set(l,u),d.roundness=h,this.points.push(d)}return this.shapeHoles=t.shapeHoles?.length?t.shapeHoles.map(r=>{let i=new yt;return i.fromJSON(r),i}):[],this.isClosed=t.isClosed,this._roundness=t.roundness,this._update(),this}fromShape(t){let A=(i,s)=>{s instanceof qA&&s.v3.equals(i.position)&&i.controls[0].position.copy(s.v2)},r=i=>{let s=[],o,a;for(o=0,a=i.length;o<a;o++)i[o]instanceof _n&&(i[o]=RE(i[o]));for(o=0,a=i.length;o<a;o++){let u=i[o],h=o>0?i[o-1]:null,d;u instanceof qA?(d=this.createPoint(u.v0),d.controls[1].position.copy(u.v1)):u instanceof XA&&(d=this.createPoint(u.v1)),d!==void 0&&(h!==null&&A(d,h),s.push(d))}let c=i[i.length-1],l=!1;return c instanceof qA?c.v3.equals(s[0].position)&&(s[0].controls[0].position.copy(c.v2),l=!0):c instanceof XA&&c.v2.equals(s[0].position)&&(l=!0),this.isClosed=l,s};return this.points=r(t.curves),t instanceof Mi&&(this.shapeHoles=t.holes.map(i=>{let s=new yt;return s.fromShape(i),s})),this.update(),this}};var _t;(function(n){n[n.ODD=0]="ODD",n[n.NONZERO=1]="NONZERO",n[n.POSITIVE=2]="POSITIVE",n[n.NEGATIVE=3]="NEGATIVE",n[n.ABS_GEQ_TWO=4]="ABS_GEQ_TWO"})(_t||(_t={}));var SA;(function(n){n[n.POLYGONS=0]="POLYGONS",n[n.CONNECTED_POLYGONS=1]="CONNECTED_POLYGONS",n[n.BOUNDARY_CONTOURS=2]="BOUNDARY_CONTOURS"})(SA||(SA={}));function We(n,e){if(!n)throw e||"Assertion Failed!"}var ke=function(){function n(){}return n.vertEq=function(e,t){return e.s===t.s&&e.t===t.t},n.vertLeq=function(e,t){return e.s<t.s||e.s===t.s&&e.t<=t.t},n.transLeq=function(e,t){return e.t<t.t||e.t===t.t&&e.s<=t.s},n.edgeGoesLeft=function(e){return n.vertLeq(e.Dst,e.Org)},n.edgeGoesRight=function(e){return n.vertLeq(e.Org,e.Dst)},n.vertL1dist=function(e,t){return Math.abs(e.s-t.s)+Math.abs(e.t-t.t)},n.edgeEval=function(e,t,A){We(n.vertLeq(e,t)&&n.vertLeq(t,A));var r=t.s-e.s,i=A.s-t.s;return r+i>0?r<i?t.t-e.t+(e.t-A.t)*(r/(r+i)):t.t-A.t+(A.t-e.t)*(i/(r+i)):0},n.edgeSign=function(e,t,A){We(n.vertLeq(e,t)&&n.vertLeq(t,A));var r=t.s-e.s,i=A.s-t.s;return r+i>0?(t.t-A.t)*r+(t.t-e.t)*i:0},n.transEval=function(e,t,A){We(n.transLeq(e,t)&&n.transLeq(t,A));var r=t.t-e.t,i=A.t-t.t;return r+i>0?r<i?t.s-e.s+(e.s-A.s)*(r/(r+i)):t.s-A.s+(A.s-e.s)*(i/(r+i)):0},n.transSign=function(e,t,A){We(n.transLeq(e,t)&&n.transLeq(t,A));var r=t.t-e.t,i=A.t-t.t;return r+i>0?(t.s-A.s)*r+(t.s-e.s)*i:0},n.vertCCW=function(e,t,A){return e.s*(t.t-A.t)+t.s*(A.t-e.t)+A.s*(e.t-t.t)>=0},n.interpolate=function(e,t,A,r){return e=e<0?0:e,A=A<0?0:A,e<=A?A===0?(t+r)/2:t+(r-t)*(e/(e+A)):r+(t-r)*(A/(e+A))},n.intersect=function(e,t,A,r,i){var s,o,a;n.vertLeq(e,t)||(a=e,e=t,t=a),n.vertLeq(A,r)||(a=A,A=r,r=a),n.vertLeq(e,A)||(a=e,e=A,A=a,a=t,t=r,r=a),n.vertLeq(A,t)?n.vertLeq(t,r)?(s=n.edgeEval(e,A,t),o=n.edgeEval(A,t,r),s+o<0&&(s=-s,o=-o),i.s=n.interpolate(s,A.s,o,t.s)):(s=n.edgeSign(e,A,t),o=-n.edgeSign(e,r,t),s+o<0&&(s=-s,o=-o),i.s=n.interpolate(s,A.s,o,r.s)):i.s=(A.s+t.s)/2,n.transLeq(e,t)||(a=e,e=t,t=a),n.transLeq(A,r)||(a=A,A=r,r=a),n.transLeq(e,A)||(a=e,e=A,A=a,a=t,t=r,r=a),n.transLeq(A,t)?n.transLeq(t,r)?(s=n.transEval(e,A,t),o=n.transEval(A,t,r),s+o<0&&(s=-s,o=-o),i.t=n.interpolate(s,A.t,o,t.t)):(s=n.transSign(e,A,t),o=-n.transSign(e,r,t),s+o<0&&(s=-s,o=-o),i.t=n.interpolate(s,A.t,o,r.t)):i.t=(A.t+t.t)/2},n}(),th=function(){function n(){this.next=null,this.prev=null,this.anEdge=null,this.trail=null,this.n=0,this.marked=!1,this.inside=!1}return n}(),Gp=function(){function n(e){this.side=e,this.next=null,this.Org=null,this.Sym=null,this.Onext=null,this.Lnext=null,this.Lface=null,this.activeRegion=null,this.winding=0}return Object.defineProperty(n.prototype,"Rface",{get:function(){return this.Sym.Lface},set:function(e){this.Sym.Lface=e},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"Dst",{get:function(){return this.Sym.Org},set:function(e){this.Sym.Org=e},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"Oprev",{get:function(){return this.Sym.Lnext},set:function(e){this.Sym.Lnext=e},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"Lprev",{get:function(){return this.Onext.Sym},set:function(e){this.Onext.Sym=e},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"Dprev",{get:function(){return this.Lnext.Sym},set:function(e){this.Lnext.Sym=e},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"Rprev",{get:function(){return this.Sym.Onext},set:function(e){this.Sym.Onext=e},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"Dnext",{get:function(){return this.Sym.Onext.Sym},set:function(e){this.Sym.Onext.Sym=e},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"Rnext",{get:function(){return this.Sym.Lnext.Sym},set:function(e){this.Sym.Lnext.Sym=e},enumerable:!0,configurable:!0}),n}(),Zl=function(){function n(){this.next=null,this.prev=null,this.anEdge=null,this.coords=[0,0,0],this.s=0,this.t=0,this.pqHandle=0,this.n=0,this.idx=0}return n}(),HE=function(){function n(){var e=new Zl,t=new th,A=new Gp(0),r=new Gp(1);e.next=e.prev=e,e.anEdge=null,t.next=t.prev=t,A.next=A,A.Sym=r,r.next=r,r.Sym=A,this.vHead=e,this.fHead=t,this.eHead=A,this.eHeadSym=r}return n.prototype.makeEdge_=function(e){var t=new Gp(0),A=new Gp(1);e.Sym.side<e.side&&(e=e.Sym);var r=e.Sym.next;return A.next=r,r.Sym.next=t,t.next=e,e.Sym.next=A,t.Sym=A,t.Onext=t,t.Lnext=A,t.Org=null,t.Lface=null,t.winding=0,t.activeRegion=null,A.Sym=t,A.Onext=A,A.Lnext=t,A.Org=null,A.Lface=null,A.winding=0,A.activeRegion=null,t},n.prototype.splice_=function(e,t){var A=e.Onext,r=t.Onext;A.Sym.Lnext=t,r.Sym.Lnext=e,e.Onext=r,t.Onext=A},n.prototype.makeVertex_=function(e,t,A){var r=e;We(r,"Vertex can't be null!");var i=A.prev;r.prev=i,i.next=r,r.next=A,A.prev=r,r.anEdge=t;var s=t;do s.Org=r,s=s.Onext;while(s!==t)},n.prototype.makeFace_=function(e,t,A){var r=e;We(r,"Face can't be null");var i=A.prev;r.prev=i,i.next=r,r.next=A,A.prev=r,r.anEdge=t,r.trail=null,r.marked=!1,r.inside=A.inside;var s=t;do s.Lface=r,s=s.Lnext;while(s!==t)},n.prototype.killEdge_=function(e){e.Sym.side<e.side&&(e=e.Sym);var t=e.next,A=e.Sym.next;t.Sym.next=A,A.Sym.next=t},n.prototype.killVertex_=function(e,t){var A=e.anEdge,r=A;do r.Org=t,r=r.Onext;while(r!==A);var i=e.prev,s=e.next;s.prev=i,i.next=s},n.prototype.killFace_=function(e,t){var A=e.anEdge,r=A;do r.Lface=t,r=r.Lnext;while(r!==A);var i=e.prev,s=e.next;s.prev=i,i.next=s},n.prototype.makeEdge=function(){var e=new Zl,t=new Zl,A=new th,r=this.makeEdge_(this.eHead);return this.makeVertex_(e,r,this.vHead),this.makeVertex_(t,r.Sym,this.vHead),this.makeFace_(A,r,this.fHead),r},n.prototype.splice=function(e,t){var A=!1,r=!1;if(e!==t){if(t.Org!==e.Org&&(r=!0,this.killVertex_(t.Org,e.Org)),t.Lface!==e.Lface&&(A=!0,this.killFace_(t.Lface,e.Lface)),this.splice_(t,e),!r){var i=new Zl;this.makeVertex_(i,t,e.Org),e.Org.anEdge=e}if(!A){var s=new th;this.makeFace_(s,t,e.Lface),e.Lface.anEdge=e}}},n.prototype.delete=function(e){var t=e.Sym,A=!1;if(e.Lface!==e.Rface&&(A=!0,this.killFace_(e.Lface,e.Rface)),e.Onext===e)this.killVertex_(e.Org,null);else if(e.Rface.anEdge=e.Oprev,e.Org.anEdge=e.Onext,this.splice_(e,e.Oprev),!A){var r=new th;this.makeFace_(r,e,e.Lface)}t.Onext===t?(this.killVertex_(t.Org,null),this.killFace_(t.Lface,null)):(e.Lface.anEdge=t.Oprev,t.Org.anEdge=t.Onext,this.splice_(t,t.Oprev)),this.killEdge_(e)},n.prototype.addEdgeVertex=function(e){var t=this.makeEdge_(e),A=t.Sym;this.splice_(t,e.Lnext),t.Org=e.Dst;var r=new Zl;return this.makeVertex_(r,A,t.Org),t.Lface=A.Lface=e.Lface,t},n.prototype.splitEdge=function(e){var t=this.addEdgeVertex(e),A=t.Sym;return this.splice_(e.Sym,e.Sym.Oprev),this.splice_(e.Sym,A),e.Dst=A.Org,A.Dst.anEdge=A.Sym,A.Rface=e.Rface,A.winding=e.winding,A.Sym.winding=e.Sym.winding,A.idx=e.idx,A.Sym.idx=e.Sym.idx,A},n.prototype.connect=function(e,t){var A=!1,r=this.makeEdge_(e),i=r.Sym;if(t.Lface!==e.Lface&&(A=!0,this.killFace_(t.Lface,e.Lface)),this.splice_(r,e.Lnext),this.splice_(i,t),r.Org=e.Dst,i.Org=t.Org,r.Lface=i.Lface=e.Lface,e.Lface.anEdge=i,!A){var s=new th;this.makeFace_(s,r,e.Lface)}return r},n.prototype.zapFace=function(e){var t=e.anEdge,A,r,i,s,o;r=t.Lnext;do A=r,r=A.Lnext,A.Lface=null,A.Rface===null&&(A.Onext===A?this.killVertex_(A.Org,null):(A.Org.anEdge=A.Onext,this.splice_(A,A.Oprev)),i=A.Sym,i.Onext===i?this.killVertex_(i.Org,null):(i.Org.anEdge=i.Onext,this.splice_(i,i.Oprev)),this.killEdge_(A));while(A!=t);s=e.prev,o=e.next,o.prev=s,s.next=o},n.prototype.countFaceVerts_=function(e){var t=e.anEdge,A=0;do A++,t=t.Lnext;while(t!==e.anEdge);return A},n.prototype.mergeConvexFaces=function(e){var t,A,r,i,s,o,a;for(t=this.fHead.next;t!==this.fHead;t=t.next)if(!!t.inside)for(A=t.anEdge,s=A.Org;r=A.Lnext,i=A.Sym,i&&i.Lface&&i.Lface.inside&&(o=this.countFaceVerts_(t),a=this.countFaceVerts_(i.Lface),o+a-2<=e&&ke.vertCCW(A.Lprev.Org,A.Org,i.Lnext.Lnext.Org)&&ke.vertCCW(i.Lprev.Org,i.Org,A.Lnext.Lnext.Org)&&(r=i.Lnext,this.delete(i),A=null,i=null)),!(A&&A.Lnext.Org===s);)A=r;return!0},n.prototype.check=function(){var e=this.fHead,t=this.vHead,A=this.eHead,r,i,s,o,a,c;for(i=e,i=e;(r=i.next)!==e;i=r){We(r.prev===i),a=r.anEdge;do We(a.Sym!==a),We(a.Sym.Sym===a),We(a.Lnext.Onext.Sym===a),We(a.Onext.Sym.Lnext===a),We(a.Lface===r),a=a.Lnext;while(a!==r.anEdge)}for(We(r.prev===i&&r.anEdge===null),o=t,o=t;(s=o.next)!==t;o=s){We(s.prev===o),a=s.anEdge;do We(a.Sym!==a),We(a.Sym.Sym===a),We(a.Lnext.Onext.Sym===a),We(a.Onext.Sym.Lnext===a),We(a.Org===s),a=a.Onext;while(a!==s.anEdge)}for(We(s.prev===o&&s.anEdge===null),c=A,c=A;(a=c.next)!==A;c=a)We(a.Sym.next===c.Sym),We(a.Sym!==a),We(a.Sym.Sym===a),We(a.Org!==null),We(a.Dst!==null),We(a.Lnext.Onext.Sym===a),We(a.Onext.Sym.Lnext===a);We(a.Sym.next===c.Sym&&a.Sym===this.eHeadSym&&a.Sym.Sym===a&&a.Org===null&&a.Dst===null&&a.Lface===null&&a.Rface===null)},n}(),WE=function(){function n(){this.handle=null}return n}(),jE=function(){function n(){this.key=null,this.node=0}return n}(),w4=function(){function n(e,t){this.leq=t,this.max=0,this.nodes=[],this.handles=[],this.initialized=!1,this.freeList=0,this.size=0,this.max=e,this.nodes=[],this.handles=[];for(var A=0;A<e+1;A++)this.nodes[A]=new WE,this.handles[A]=new jE;this.initialized=!1,this.nodes[1].handle=1,this.handles[1].key=null}return n.prototype.floatDown_=function(e){var t=this.nodes,A=this.handles,r,i,s;for(r=t[e].handle;;){if(s=e<<1,s<this.size&&this.leq(A[t[s+1].handle].key,A[t[s].handle].key)&&++s,We(s<=this.max),i=t[s].handle,s>this.size||this.leq(A[r].key,A[i].key)){t[e].handle=r,A[r].node=e;break}t[e].handle=i,A[i].node=e,e=s}},n.prototype.floatUp_=function(e){var t=this.nodes,A=this.handles,r,i,s;for(r=t[e].handle;;){if(s=e>>1,i=t[s].handle,s===0||this.leq(A[i].key,A[r].key)){t[e].handle=r,A[r].node=e;break}t[e].handle=i,A[i].node=e,e=s}},n.prototype.init=function(){for(var e=this.size;e>=1;--e)this.floatDown_(e);this.initialized=!0},n.prototype.min=function(){return this.handles[this.nodes[1].handle].key},n.prototype.insert=function(e){var t,A;if(t=++this.size,t*2>this.max){this.max*=2;var r,i;for(i=this.nodes.length,this.nodes.length=this.max+1,r=i;r<this.nodes.length;r++)this.nodes[r]=new WE;for(i=this.handles.length,this.handles.length=this.max+1,r=i;r<this.handles.length;r++)this.handles[r]=new jE}return this.freeList===0?A=t:(A=this.freeList,this.freeList=this.handles[A].node),this.nodes[t].handle=A,this.handles[A].node=t,this.handles[A].key=e,this.initialized&&this.floatUp_(t),A},n.prototype.extractMin=function(){var e=this.nodes,t=this.handles,A=e[1].handle,r=t[A].key;return this.size>0&&(e[1].handle=e[this.size].handle,t[e[1].handle].node=1,t[A].key=null,t[A].node=this.freeList,this.freeList=A,--this.size,this.size>0&&this.floatDown_(1)),r},n.prototype.delete=function(e){var t=this.nodes,A=this.handles,r;We(e>=1&&e<=this.max&&A[e].key!==null),r=A[e].node,t[r].handle=t[this.size].handle,A[t[r].handle].node=r,--this.size,r<=this.size&&(r<=1||this.leq(A[t[r>>1].handle].key,A[t[r].handle].key)?this.floatDown_(r):this.floatUp_(r)),A[e].key=null,A[e].node=this.freeList,this.freeList=e},n}(),i0=function(){function n(){this.eUp=null,this.nodeUp=null,this.windingNumber=0,this.inside=!1,this.sentinel=!1,this.dirty=!1,this.fixUpperEdge=!1}return n}(),YE=function(){function n(){this.key=null,this.next=null,this.prev=null}return n}(),S4=function(){function n(e,t){this.frame=e,this.leq=t,this.head=new YE,this.head.next=this.head,this.head.prev=this.head}return n.prototype.min=function(){return this.head.next},n.prototype.max=function(){return this.head.prev},n.prototype.insert=function(e){return this.insertBefore(this.head,e)},n.prototype.search=function(e){var t=this.head;do t=t.next;while(t.key!==null&&!this.leq(this.frame,e,t.key));return t},n.prototype.insertBefore=function(e,t){do e=e.prev;while(e.key!==null&&!this.leq(this.frame,e.key,t));var A=new YE;return A.key=t,A.next=e.next,e.next.prev=A,A.prev=e,e.next=A,A},n.prototype.delete=function(e){e.next.prev=e.prev,e.prev.next=e.next},n}(),T4=function(){function n(){}return n.regionBelow=function(e){return e.nodeUp.prev.key},n.regionAbove=function(e){return e.nodeUp.next.key},n.debugEvent=function(e){},n.addWinding=function(e,t){e.winding+=t.winding,e.Sym.winding+=t.Sym.winding},n.edgeLeq=function(e,t,A){var r=e.event,i=t.eUp,s=A.eUp;if(i.Dst===r)return s.Dst===r?ke.vertLeq(i.Org,s.Org)?ke.edgeSign(s.Dst,i.Org,s.Org)<=0:ke.edgeSign(i.Dst,s.Org,i.Org)>=0:ke.edgeSign(s.Dst,r,s.Org)<=0;if(s.Dst===r)return ke.edgeSign(i.Dst,r,i.Org)>=0;var o=ke.edgeEval(i.Dst,r,i.Org),a=ke.edgeEval(s.Dst,r,s.Org);return o>=a},n.deleteRegion=function(e,t){t.fixUpperEdge&&We(t.eUp.winding===0),t.eUp.activeRegion=null,e.dict.delete(t.nodeUp)},n.fixUpperEdge=function(e,t,A){We(t.fixUpperEdge),e.mesh.delete(t.eUp),t.fixUpperEdge=!1,t.eUp=A,A.activeRegion=t},n.topLeftRegion=function(e,t){var A=t.eUp.Org,r;do t=n.regionAbove(t);while(t.eUp.Org===A);if(t.fixUpperEdge){if(r=e.mesh.connect(n.regionBelow(t).eUp.Sym,t.eUp.Lnext),r===null)return null;n.fixUpperEdge(e,t,r),t=n.regionAbove(t)}return t},n.topRightRegion=function(e){var t=e.eUp.Dst;do e=n.regionAbove(e);while(e.eUp.Dst===t);return e},n.addRegionBelow=function(e,t,A){var r=new i0;return r.eUp=A,r.nodeUp=e.dict.insertBefore(t.nodeUp,r),r.fixUpperEdge=!1,r.sentinel=!1,r.dirty=!1,A.activeRegion=r,r},n.isWindingInside=function(e,t){switch(e.windingRule){case _t.ODD:return(t&1)!==0;case _t.NONZERO:return t!==0;case _t.POSITIVE:return t>0;case _t.NEGATIVE:return t<0;case _t.ABS_GEQ_TWO:return t>=2||t<=-2}throw new Error("Invalid winding rulle")},n.computeWinding=function(e,t){t.windingNumber=n.regionAbove(t).windingNumber+t.eUp.winding,t.inside=n.isWindingInside(e,t.windingNumber)},n.finishRegion=function(e,t){var A=t.eUp,r=A.Lface;r.inside=t.inside,r.anEdge=A,n.deleteRegion(e,t)},n.finishLeftRegions=function(e,t,A){for(var r,i=null,s=t,o=t.eUp;s!==A;){if(s.fixUpperEdge=!1,i=n.regionBelow(s),r=i.eUp,r.Org!=o.Org){if(!i.fixUpperEdge){n.finishRegion(e,s);break}r=e.mesh.connect(o.Lprev,r.Sym),n.fixUpperEdge(e,i,r)}o.Onext!==r&&(e.mesh.splice(r.Oprev,r),e.mesh.splice(o,r)),n.finishRegion(e,s),o=i.eUp,s=i}return o},n.addRightEdges=function(e,t,A,r,i,s){var o,a,c,l,u=!0;c=A;do We(ke.vertLeq(c.Org,c.Dst)),n.addRegionBelow(e,t,c.Sym),c=c.Onext;while(c!==r);for(i===null&&(i=n.regionBelow(t).eUp.Rprev),a=t,l=i;o=n.regionBelow(a),c=o.eUp.Sym,c.Org===l.Org;)c.Onext!==l&&(e.mesh.splice(c.Oprev,c),e.mesh.splice(l.Oprev,c)),o.windingNumber=a.windingNumber-c.winding,o.inside=n.isWindingInside(e,o.windingNumber),a.dirty=!0,!u&&n.checkForRightSplice(e,a)&&(n.addWinding(c,l),n.deleteRegion(e,a),e.mesh.delete(l)),u=!1,a=o,l=c;a.dirty=!0,We(a.windingNumber-c.winding===o.windingNumber),s&&n.walkDirtyRegions(e,a)},n.spliceMergeVertices=function(e,t,A){e.mesh.splice(t,A)},n.vertexWeights=function(e,t,A){var r=ke.vertL1dist(t,e),i=ke.vertL1dist(A,e),s=.5*i/(r+i),o=.5*r/(r+i);e.coords[0]+=s*t.coords[0]+o*A.coords[0],e.coords[1]+=s*t.coords[1]+o*A.coords[1],e.coords[2]+=s*t.coords[2]+o*A.coords[2]},n.getIntersectData=function(e,t,A,r,i,s){t.coords[0]=t.coords[1]=t.coords[2]=0,t.idx=-1,n.vertexWeights(t,A,r),n.vertexWeights(t,i,s)},n.checkForRightSplice=function(e,t){var A=n.regionBelow(t),r=t.eUp,i=A.eUp;if(ke.vertLeq(r.Org,i.Org)){if(ke.edgeSign(i.Dst,r.Org,i.Org)>0)return!1;ke.vertEq(r.Org,i.Org)?r.Org!==i.Org&&(e.pq.delete(r.Org.pqHandle),n.spliceMergeVertices(e,i.Oprev,r)):(e.mesh.splitEdge(i.Sym),e.mesh.splice(r,i.Oprev),t.dirty=A.dirty=!0)}else{if(ke.edgeSign(r.Dst,i.Org,r.Org)<0)return!1;n.regionAbove(t).dirty=t.dirty=!0,e.mesh.splitEdge(r.Sym),e.mesh.splice(i.Oprev,r)}return!0},n.checkForLeftSplice=function(e,t){var A=n.regionBelow(t),r=t.eUp,i=A.eUp,s;if(We(!ke.vertEq(r.Dst,i.Dst)),ke.vertLeq(r.Dst,i.Dst)){if(ke.edgeSign(r.Dst,i.Dst,r.Org)<0)return!1;n.regionAbove(t).dirty=t.dirty=!0,s=e.mesh.splitEdge(r),e.mesh.splice(i.Sym,s),s.Lface.inside=t.inside}else{if(ke.edgeSign(i.Dst,r.Dst,i.Org)>0)return!1;t.dirty=A.dirty=!0,s=e.mesh.splitEdge(i),e.mesh.splice(r.Lnext,i.Sym),s.Rface.inside=t.inside}return!0},n.checkForIntersect=function(e,t){var A=n.regionBelow(t),r=t.eUp,i=A.eUp,s=r.Org,o=i.Org,a=r.Dst,c=i.Dst,l,u,h=new Zl,d,p;if(We(!ke.vertEq(c,a)),We(ke.edgeSign(a,e.event,s)<=0),We(ke.edgeSign(c,e.event,o)>=0),We(s!==e.event&&o!==e.event),We(!t.fixUpperEdge&&!A.fixUpperEdge),s===o||(l=Math.min(s.t,a.t),u=Math.max(o.t,c.t),l>u))return!1;if(ke.vertLeq(s,o)){if(ke.edgeSign(c,s,o)>0)return!1}else if(ke.edgeSign(a,o,s)<0)return!1;return n.debugEvent(e),ke.intersect(a,s,c,o,h),We(Math.min(s.t,a.t)<=h.t),We(h.t<=Math.max(o.t,c.t)),We(Math.min(c.s,a.s)<=h.s),We(h.s<=Math.max(o.s,s.s)),ke.vertLeq(h,e.event)&&(h.s=e.event.s,h.t=e.event.t),d=ke.vertLeq(s,o)?s:o,ke.vertLeq(d,h)&&(h.s=d.s,h.t=d.t),ke.vertEq(h,s)||ke.vertEq(h,o)?(n.checkForRightSplice(e,t),!1):!ke.vertEq(a,e.event)&&ke.edgeSign(a,e.event,h)>=0||!ke.vertEq(c,e.event)&&ke.edgeSign(c,e.event,h)<=0?c===e.event?(e.mesh.splitEdge(r.Sym),e.mesh.splice(i.Sym,r),t=n.topLeftRegion(e,t),r=n.regionBelow(t).eUp,n.finishLeftRegions(e,n.regionBelow(t),A),n.addRightEdges(e,t,r.Oprev,r,r,!0),!0):a===e.event?(e.mesh.splitEdge(i.Sym),e.mesh.splice(r.Lnext,i.Oprev),A=t,t=n.topRightRegion(t),p=n.regionBelow(t).eUp.Rprev,A.eUp=i.Oprev,i=n.finishLeftRegions(e,A,null),n.addRightEdges(e,t,i.Onext,r.Rprev,p,!0),!0):(ke.edgeSign(a,e.event,h)>=0&&(n.regionAbove(t).dirty=t.dirty=!0,e.mesh.splitEdge(r.Sym),r.Org.s=e.event.s,r.Org.t=e.event.t),ke.edgeSign(c,e.event,h)<=0&&(t.dirty=A.dirty=!0,e.mesh.splitEdge(i.Sym),i.Org.s=e.event.s,i.Org.t=e.event.t),!1):(e.mesh.splitEdge(r.Sym),e.mesh.splitEdge(i.Sym),e.mesh.splice(i.Oprev,r),r.Org.s=h.s,r.Org.t=h.t,r.Org.pqHandle=e.pq.insert(r.Org),n.getIntersectData(e,r.Org,s,a,o,c),n.regionAbove(t).dirty=t.dirty=A.dirty=!0,!1)},n.walkDirtyRegions=function(e,t){for(var A=n.regionBelow(t),r,i;;){for(;A.dirty;)t=A,A=n.regionBelow(A);if(!t.dirty&&(A=t,t=n.regionAbove(t),t===null||!t.dirty))return;if(t.dirty=!1,r=t.eUp,i=A.eUp,r.Dst!==i.Dst&&n.checkForLeftSplice(e,t)&&(A.fixUpperEdge?(n.deleteRegion(e,A),e.mesh.delete(i),A=n.regionBelow(t),i=A.eUp):t.fixUpperEdge&&(n.deleteRegion(e,t),e.mesh.delete(r),t=n.regionAbove(A),r=t.eUp)),r.Org!==i.Org)if(r.Dst!==i.Dst&&!t.fixUpperEdge&&!A.fixUpperEdge&&(r.Dst===e.event||i.Dst===e.event)){if(n.checkForIntersect(e,t))return}else n.checkForRightSplice(e,t);r.Org===i.Org&&r.Dst===i.Dst&&(n.addWinding(i,r),n.deleteRegion(e,t),e.mesh.delete(r),t=n.regionAbove(A))}},n.connectRightVertex=function(e,t,A){var r,i=A.Onext,s=n.regionBelow(t),o=t.eUp,a=s.eUp,c=!1;if(o.Dst!==a.Dst&&n.checkForIntersect(e,t),ke.vertEq(o.Org,e.event)&&(e.mesh.splice(i.Oprev,o),t=n.topLeftRegion(e,t),i=n.regionBelow(t).eUp,n.finishLeftRegions(e,n.regionBelow(t),s),c=!0),ke.vertEq(a.Org,e.event)&&(e.mesh.splice(A,a.Oprev),A=n.finishLeftRegions(e,s,null),c=!0),c){n.addRightEdges(e,t,A.Onext,i,i,!0);return}ke.vertLeq(a.Org,o.Org)?r=a.Oprev:r=o,r=e.mesh.connect(A.Lprev,r),n.addRightEdges(e,t,r,r.Onext,r.Onext,!1),r.Sym.activeRegion.fixUpperEdge=!0,n.walkDirtyRegions(e,t)},n.connectLeftDegenerate=function(e,t,A){var r,i,s,o,a;if(r=t.eUp,ke.vertEq(r.Org,A)){We(!1),n.spliceMergeVertices(e,r,A.anEdge);return}if(!ke.vertEq(r.Dst,A)){e.mesh.splitEdge(r.Sym),t.fixUpperEdge&&(e.mesh.delete(r.Onext),t.fixUpperEdge=!1),e.mesh.splice(A.anEdge,r),n.sweepEvent(e,A);return}We(!1),t=n.topRightRegion(t),a=n.regionBelow(t),s=a.eUp.Sym,i=o=s.Onext,a.fixUpperEdge&&(We(i!==s),n.deleteRegion(e,a),e.mesh.delete(s),s=i.Oprev),e.mesh.splice(A.anEdge,s),ke.edgeGoesLeft(i)||(i=null),n.addRightEdges(e,t,s.Onext,o,i,!0)},n.connectLeftVertex=function(e,t){var A,r,i,s,o,a,c=new i0;if(c.eUp=t.anEdge.Sym,A=e.dict.search(c).key,r=n.regionBelow(A),!!r){if(s=A.eUp,o=r.eUp,ke.edgeSign(s.Dst,t,s.Org)===0){n.connectLeftDegenerate(e,A,t);return}if(i=ke.vertLeq(o.Dst,s.Dst)?A:r,A.inside||i.fixUpperEdge){if(i===A)a=e.mesh.connect(t.anEdge.Sym,s.Lnext);else{var l=e.mesh.connect(o.Dnext,t.anEdge);a=l.Sym}i.fixUpperEdge?n.fixUpperEdge(e,i,a):n.computeWinding(e,n.addRegionBelow(e,A,a)),n.sweepEvent(e,t)}else n.addRightEdges(e,A,t.anEdge,t.anEdge,null,!0)}},n.sweepEvent=function(e,t){e.event=t,n.debugEvent(e);for(var A=t.anEdge;A.activeRegion===null;)if(A=A.Onext,A===t.anEdge){n.connectLeftVertex(e,t);return}var r=n.topLeftRegion(e,A.activeRegion);We(r!==null);var i=n.regionBelow(r),s=i.eUp,o=n.finishLeftRegions(e,i,null);o.Onext===s?n.connectRightVertex(e,r,o):n.addRightEdges(e,r,o.Onext,s,s,!0)},n.addSentinel=function(e,t,A,r){var i=new i0,s=e.mesh.makeEdge();s.Org.s=A,s.Org.t=r,s.Dst.s=t,s.Dst.t=r,e.event=s.Dst,i.eUp=s,i.windingNumber=0,i.inside=!1,i.fixUpperEdge=!1,i.sentinel=!0,i.dirty=!1,i.nodeUp=e.dict.insert(i)},n.initEdgeDict=function(e){e.dict=new S4(e,n.edgeLeq);var t=e.bmax[0]-e.bmin[0],A=e.bmax[1]-e.bmin[1],r=e.bmin[0]-t,i=e.bmax[0]+t,s=e.bmin[1]-A,o=e.bmax[1]+A;n.addSentinel(e,r,i,s),n.addSentinel(e,r,i,o)},n.doneEdgeDict=function(e){for(var t,A=0;(t=e.dict.min().key)!==null;)t.sentinel||(We(t.fixUpperEdge),We(++A===1)),We(t.windingNumber===0),n.deleteRegion(e,t)},n.removeDegenerateEdges=function(e){var t,A,r,i=e.mesh.eHead;for(t=i.next;t!==i;t=A)A=t.next,r=t.Lnext,ke.vertEq(t.Org,t.Dst)&&t.Lnext.Lnext!==t&&(n.spliceMergeVertices(e,r,t),e.mesh.delete(t),t=r,r=t.Lnext),r.Lnext===t&&(r!==t&&((r===A||r===A.Sym)&&(A=A.next),e.mesh.delete(r)),(t===A||t===A.Sym)&&(A=A.next),e.mesh.delete(t))},n.initPriorityQ=function(e){var t,A,r,i=0;for(r=e.mesh.vHead,A=r.next;A!==r;A=A.next)i++;for(i+=8,t=e.pq=new w4(i,ke.vertLeq),r=e.mesh.vHead,A=r.next;A!==r;A=A.next)A.pqHandle=t.insert(A);return A!==r?!1:(t.init(),!0)},n.donePriorityQ=function(e){e.pq=null},n.removeDegenerateFaces=function(e,t){var A,r,i;for(A=t.fHead.next;A!==t.fHead;A=r)r=A.next,i=A.anEdge,We(i.Lnext!==i),i.Lnext.Lnext===i&&(n.addWinding(i.Onext,i),e.mesh.delete(i));return!0},n.computeInterior=function(e,t){t===void 0&&(t=!0);var A,r;if(n.removeDegenerateEdges(e),!n.initPriorityQ(e))return!1;for(n.initEdgeDict(e);(A=e.pq.extractMin())!==null;){for(;r=e.pq.min(),!(r===null||!ke.vertEq(r,A));)r=e.pq.extractMin(),n.spliceMergeVertices(e,A.anEdge,r.anEdge);n.sweepEvent(e,A)}return e.event=e.dict.min().key.eUp.Org,n.debugEvent(e),n.doneEdgeDict(e),n.donePriorityQ(e),n.removeDegenerateFaces(e,e.mesh)?(t&&e.mesh.check(),!0):!1},n}(),M4=function(){function n(){this.mesh=new HE,this.normal=[0,0,0],this.sUnit=[0,0,0],this.tUnit=[0,0,0],this.bmin=[0,0],this.bmax=[0,0],this.windingRule=_t.ODD,this.dict=null,this.pq=null,this.event=null,this.vertexIndexCounter=0,this.vertices=[],this.vertexIndices=[],this.vertexCount=0,this.elements=[],this.elementCount=0}return n.prototype.dot_=function(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]},n.prototype.normalize_=function(e){var t=e[0]*e[0]+e[1]*e[1]+e[2]*e[2];if(!t)throw"Zero-size vector!";t=Math.sqrt(t),e[0]/=t,e[1]/=t,e[2]/=t},n.prototype.longAxis_=function(e){var t=0;return Math.abs(e[1])>Math.abs(e[0])&&(t=1),Math.abs(e[2])>Math.abs(e[t])&&(t=2),t},n.prototype.computeNormal_=function(e){var t,A,r,i,s,o,a=[0,0,0],c=[0,0,0],l=[0,0,0],u=[0,0,0],h=[0,0,0],d=[null,null,null],p=[null,null,null],f=this.mesh.vHead;t=f.next;for(var m=0;m<3;++m)i=t.coords[m],c[m]=i,p[m]=t,a[m]=i,d[m]=t;for(t=f.next;t!==f;t=t.next)for(var y=0;y<3;++y)i=t.coords[y],i<c[y]&&(c[y]=i,p[y]=t),i>a[y]&&(a[y]=i,d[y]=t);var g=0;if(a[1]-c[1]>a[0]-c[0]&&(g=1),a[2]-c[2]>a[g]-c[g]&&(g=2),c[g]>=a[g]){e[0]=0,e[1]=0,e[2]=1;return}for(o=0,A=p[g],r=d[g],l[0]=A.coords[0]-r.coords[0],l[1]=A.coords[1]-r.coords[1],l[2]=A.coords[2]-r.coords[2],t=f.next;t!==f;t=t.next)u[0]=t.coords[0]-r.coords[0],u[1]=t.coords[1]-r.coords[1],u[2]=t.coords[2]-r.coords[2],h[0]=l[1]*u[2]-l[2]*u[1],h[1]=l[2]*u[0]-l[0]*u[2],h[2]=l[0]*u[1]-l[1]*u[0],s=h[0]*h[0]+h[1]*h[1]+h[2]*h[2],s>o&&(o=s,e[0]=h[0],e[1]=h[1],e[2]=h[2]);o<=0&&(e[0]=e[1]=e[2]=0,e[this.longAxis_(l)]=1)},n.prototype.checkOrientation_=function(){for(var e=this.mesh.fHead,t,A=this.mesh.vHead,r,i=0,s=e.next;s!==e;s=s.next)if(r=s.anEdge,!(r.winding<=0))do i+=(r.Org.s-r.Dst.s)*(r.Org.t+r.Dst.t),r=r.Lnext;while(r!==s.anEdge);if(i<0){for(t=A.next;t!==A;t=t.next)t.t=-t.t;this.tUnit[0]=-this.tUnit[0],this.tUnit[1]=-this.tUnit[1],this.tUnit[2]=-this.tUnit[2]}},n.prototype.projectPolygon_=function(){var e=this.mesh.vHead,t=[0,0,0],A,r,i=!1;t[0]=this.normal[0],t[1]=this.normal[1],t[2]=this.normal[2],!t[0]&&!t[1]&&!t[2]&&(this.computeNormal_(t),i=!0),A=this.sUnit,r=this.tUnit;var s=this.longAxis_(t);A[s]=0,A[(s+1)%3]=1,A[(s+2)%3]=0,r[s]=0,r[(s+1)%3]=0,r[(s+2)%3]=t[s]>0?1:-1;for(var o=e.next;o!==e;o=o.next)o.s=this.dot_(o.coords,A),o.t=this.dot_(o.coords,r);i&&this.checkOrientation_();for(var a=!0,c=e.next;c!==e;c=c.next)a?(this.bmin[0]=this.bmax[0]=c.s,this.bmin[1]=this.bmax[1]=c.t,a=!1):(c.s<this.bmin[0]&&(this.bmin[0]=c.s),c.s>this.bmax[0]&&(this.bmax[0]=c.s),c.t<this.bmin[1]&&(this.bmin[1]=c.t),c.t>this.bmax[1]&&(this.bmax[1]=c.t))},n.prototype.addWinding_=function(e,t){e.winding+=t.winding,e.Sym.winding+=t.Sym.winding},n.prototype.tessellateMonoRegion_=function(e,t){var A,r;if(A=t.anEdge,!(A.Lnext!==A&&A.Lnext.Lnext!==A))throw"Mono region invalid";for(;ke.vertLeq(A.Dst,A.Org);A=A.Lprev);for(;ke.vertLeq(A.Org,A.Dst);A=A.Lnext);r=A.Lprev;for(var i=void 0;A.Lnext!==r;)if(ke.vertLeq(A.Dst,r.Org)){for(;r.Lnext!==A&&(ke.edgeGoesLeft(r.Lnext)||ke.edgeSign(r.Org,r.Dst,r.Lnext.Dst)<=0);)i=e.connect(r.Lnext,r),r=i.Sym;r=r.Lprev}else{for(;r.Lnext!==A&&(ke.edgeGoesRight(A.Lprev)||ke.edgeSign(A.Dst,A.Org,A.Lprev.Org)>=0);)i=e.connect(A,A.Lprev),A=i.Sym;A=A.Lnext}if(r.Lnext===A)throw"Mono region invalid";for(;r.Lnext.Lnext!==A;)i=e.connect(r.Lnext,r),r=i.Sym;return!0},n.prototype.tessellateInterior_=function(e){for(var t,A=e.fHead.next;A!==e.fHead;A=t)if(t=A.next,A.inside&&!this.tessellateMonoRegion_(e,A))return!1;return!0},n.prototype.discardExterior_=function(e){for(var t,A=e.fHead.next;A!==e.fHead;A=t)t=A.next,A.inside||e.zapFace(A)},n.prototype.setWindingNumber_=function(e,t,A){for(var r,i=e.eHead.next;i!==e.eHead;i=r)r=i.next,i.Rface.inside!==i.Lface.inside?i.winding=i.Lface.inside?t:-t:A?e.delete(i):i.winding=0},n.prototype.getNeighbourFace_=function(e){return!e.Rface||!e.Rface.inside?-1:e.Rface.n},n.prototype.outputPolymesh_=function(e,t,A,r){var i,s=0,o=0,a;A>3&&e.mergeConvexFaces(A);for(var c=e.vHead.next;c!==e.vHead;c=c.next)c.n=-1;for(var l=e.fHead.next;l!==e.fHead;l=l.next)if(l.n=-1,!!l.inside){i=l.anEdge,a=0;do{var c=i.Org;c.n===-1&&(c.n=o,o++),a++,i=i.Lnext}while(i!==l.anEdge);if(a>A)throw"Face vertex greater that support polygon";l.n=s,++s}this.elementCount=s,t===SA.CONNECTED_POLYGONS&&(s*=2),this.elements=[],this.elements.length=s*A,this.vertexCount=o,this.vertices=[],this.vertices.length=o*r,this.vertexIndices=[],this.vertexIndices.length=o;for(var c=e.vHead.next;c!==e.vHead;c=c.next)if(c.n!==-1){var u=c.n*r;this.vertices[u+0]=c.coords[0],this.vertices[u+1]=c.coords[1],r>2&&(this.vertices[u+2]=c.coords[2]),this.vertexIndices[c.n]=c.idx}for(var h=0,l=e.fHead.next;l!==e.fHead;l=l.next)if(!!l.inside){i=l.anEdge,a=0;do{var c=i.Org;this.elements[h++]=c.n,a++,i=i.Lnext}while(i!==l.anEdge);for(var d=a;d<A;++d)this.elements[h++]=-1;if(t===SA.CONNECTED_POLYGONS){i=l.anEdge;do this.elements[h++]=this.getNeighbourFace_(i),i=i.Lnext;while(i!==l.anEdge);for(var p=a;p<A;++p)this.elements[h++]=-1}}},n.prototype.outputContours_=function(e,t){var A,r,i=0,s=0;this.vertexCount=0,this.elementCount=0;for(var o=e.fHead.next;o!==e.fHead;o=o.next)if(!!o.inside){r=A=o.anEdge;do this.vertexCount++,A=A.Lnext;while(A!==r);this.elementCount++}this.elements=[],this.elements.length=this.elementCount*2,this.vertices=[],this.vertices.length=this.vertexCount*t,this.vertexIndices=[],this.vertexIndices.length=this.vertexCount;var a=0,c=0,l=0;i=0;for(var o=e.fHead.next;o!==e.fHead;o=o.next)if(!!o.inside){s=0,r=A=o.anEdge;do this.vertices[a++]=A.Org.coords[0],this.vertices[a++]=A.Org.coords[1],t>2&&(this.vertices[a++]=A.Org.coords[2]),this.vertexIndices[c++]=this.vertexIdCallback?this.vertexIdCallback(A):A.Org.idx,s++,A=A.Lnext;while(A!==r);this.elements[l++]=i,this.elements[l++]=s,i+=s}},n.prototype.addContour=function(e,t){this.mesh===null&&(this.mesh=new HE),e<2&&(e=2),e>3&&(e=3);for(var A=null,r=0;r<t.length;r+=e)A===null?(A=this.mesh.makeEdge(),this.mesh.splice(A,A.Sym)):(this.mesh.splitEdge(A),A=A.Lnext),A.Org.coords[0]=t[r+0],A.Org.coords[1]=t[r+1],e>2?A.Org.coords[2]=t[r+2]:A.Org.coords[2]=0,A.Org.idx=this.vertexIndexCounter++,this.edgeCreateCallback&&this.edgeCreateCallback(A),A.winding=1,A.Sym.winding=-1},n.prototype.tesselate=function(e,t,A,r,i,s){if(e===void 0&&(e=_t.ODD),t===void 0&&(t=SA.POLYGONS),s===void 0&&(s=!0),this.vertices=[],this.elements=[],this.vertexIndices=[],this.vertexIndexCounter=0,i&&(this.normal[0]=i[0],this.normal[1]=i[1],this.normal[2]=i[2]),this.windingRule=e,r<2&&(r=2),r>3&&(r=3),!this.mesh)return!1;this.projectPolygon_(),T4.computeInterior(this,s);var o=this.mesh;return t===SA.BOUNDARY_CONTOURS?this.setWindingNumber_(o,1,!0):this.tessellateInterior_(o),s&&o.check(),t===SA.BOUNDARY_CONTOURS?this.outputContours_(o,r):this.outputPolymesh_(o,t,A,r),!0},n}();function Bo(n){var e=n.windingRule,t=e===void 0?_t.ODD:e,A=n.elementType,r=A===void 0?SA.POLYGONS:A,i=n.polySize,s=i===void 0?3:i,o=n.vertexSize,a=o===void 0?2:o,c=n.normal,l=c===void 0?[0,0,1]:c,u=n.contours,h=u===void 0?[]:u,d=n.strict,p=d===void 0?!0:d,f=n.debug,m=f===void 0?!1:f;if(!h&&p)throw new Error("Contours can't be empty");if(!!h){var y=new M4;n.edgeCreateCallback&&(y.edgeCreateCallback=n.edgeCreateCallback),n.vertexIdCallback&&(y.vertexIdCallback=n.vertexIdCallback);for(var g=0;g<h.length;g++)y.addContour(a||2,h[g]);return y.tesselate(t,r,s,a,l,p),{vertices:y.vertices,vertexIndices:y.vertexIndices,vertexCount:y.vertexCount,elements:y.elements,elementCount:y.elementCount,mesh:m?y.mesh:void 0}}}var Iie=_t.ODD,Lie=_t.NONZERO,_ie=_t.POSITIVE,Oie=_t.NEGATIVE,Rie=_t.ABS_GEQ_TWO,Bie=SA.POLYGONS,Nie=SA.CONNECTED_POLYGONS,Fie=SA.BOUNDARY_CONTOURS;var Kl=class extends Ie{constructor(t,A=12,r={}){super();this.type="ShapeGeometry";this.windingRule=_t.ODD;this.elementType=SA.POLYGONS;this.polySize=3;this.vertexSize=2;this.strict=!0;this._shape=t,this._curveSegments=A,this._triangulationOptions=Object.assign({windingRule:_t.ODD,elementType:SA.POLYGONS,polySize:3,vertexSize:2,strict:!0},r);let i=this._shape.extractShapePointsToFlatArray([],this._curveSegments),s=this._shape.shapeHoles.map(p=>p.extractShapePointsToFlatArray([],this._curveSegments)),o,a=!0,c=!0,l,u;for(let p=0,f=i.length/2;p<f;p++){let m=p*2,y=i[m+0],g=i[m+1];if(l!==void 0&&y!==l&&(a=!1),u!==void 0&&g!==u&&(c=!1),l=y,u=g,!a&&!c)break}!a&&!c&&(o=Bo({contours:[i,...s],windingRule:this._triangulationOptions.windingRule,elementType:this._triangulationOptions.elementType,polySize:this._triangulationOptions.polySize,vertexSize:this._triangulationOptions.vertexSize,strict:this._triangulationOptions.strict}));let h=o?.vertexCount??1,d=o?.elementCount??1;if(this._positionAttribute=new Ge(new Float32Array(h*3),3),this._normalAttribute=new Ge(new Float32Array(h*3),3),this._uvAttribute=new Ge(new Float32Array(h*2),2),this._indexAttribute=new Ge(new Uint32Array(d*3),1),o){let p=1/0,f=-1/0,m=1/0,y=-1/0;for(let x=0,w=h;x<w;x++){let T=x*2,M=o.vertices[T+0],v=o.vertices[T+1];M<p&&(p=M),M>f&&(f=M),v<m&&(m=v),v>y&&(y=v)}let g=f-p,b=y-m;for(let x=0,w=h;x<w;x++){let T=x*2,M=o.vertices[T+0],v=o.vertices[T+1],E=(M-p)/g,C=(v-m)/b;this._positionAttribute.setXYZ(x,M,v,0),this._normalAttribute.setXYZ(x,0,0,1),this._uvAttribute.setXY(x,E,C)}for(let x=0,w=d;x<w;x++){let T=x*3,M=o.elements[T+0],v=o.elements[T+1],E=o.elements[T+2];this._indexAttribute.setX(T+0,M),this._indexAttribute.setX(T+1,v),this._indexAttribute.setX(T+2,E)}}this.setAttribute("position",this._positionAttribute),this.setAttribute("normal",this._normalAttribute),this.setAttribute("uv",this._uvAttribute),this.setIndex(this._indexAttribute),this.setDrawRange(0,(o?.elementCount??1)*3)}clone(){let t=new Kl(this._shape,this._curveSegments);return t.userData=wu(this.userData),t}};var kp=class{constructor(e=256,t=!1){this.capacity=e,this.size=0,this.debug=t,this.debug&&console.log(`allocating with cap ${e}`);let A=e*kp.eSize;this.buffer=new ArrayBuffer(A);let r=Float32Array.BYTES_PER_ELEMENT,i=0;this.positions=new Float32Array(this.buffer,i*r,3*e),i+=3*e,this.normals=new Float32Array(this.buffer,i*r,3*e),i+=3*e,this.uvs=new Float32Array(this.buffer,i*r,2*e)}realloc(e,t=!1){if(e<this.size)throw Error("cannot shrink buffer");if(e<=this.capacity&&!t)return;this.debug&&console.log(`resizing from ${this.capacity} \u2192 ${e}`);let A=e*kp.eSize,r=new ArrayBuffer(A),i=Float32Array.BYTES_PER_ELEMENT,s=0,o=new Float32Array(r,s*i,3*e);s+=3*e;let a=new Float32Array(r,s*i,3*e);s+=3*e;let c=new Float32Array(r,s*i,2*e);o.set(this.positions.slice(0,this.size*3)),a.set(this.normals.slice(0,this.size*3)),c.set(this.uvs.slice(0,this.size*2)),this.buffer=r,this.positions=o,this.normals=a,this.uvs=c,this.capacity=e}get(e=1){let t=this.size+e;if(t>this.capacity){let r=this.capacity;for(;t>r;)r*=2;this.realloc(r)}let A=this.size;return this.size=t,A}reserve(e){let t=this.size+e;t>this.capacity&&this.realloc(t)}shrink(){this.debug&&console.log(`shrinking ${this.capacity} \u2192 ${this.size}`),this.realloc(this.size,!0)}},Ah=kp;Ah.eSize=(3+3+2)*Float32Array.BYTES_PER_ELEMENT;var s0=(n,e)=>([t,A])=>(A<t&&(A+=e),(n>=t?n:n+e)<=A),Jl=class extends Ie{constructor(t,A,r=0,i=12,s=3,o=_t.ODD){super();this.type="ShapeGeometry";this.vertexCache={};this._shape=t,this._depth=A,this._bevel=r,this._curveSegments=i,this._bevelSegmentsInput=s,r<=0?(this._bevelSize=0,this._bevelSegments=0):(this._bevelSize=Math.min(r,A/2-1e-12),this._bevelSegments=Math.floor(s));let a=this._shape.extractShapePointsToFlatArray([],i),c=this._shape.shapeHoles.map(v=>{let E=v.extractShapePointsToFlatArray([],i),C=[];for(let P=E.length-1;P>=1;P-=2){let D=E[P-1],_=E[P-0];C.push(D,_)}return C}),l=Bo({windingRule:o,elementType:SA.BOUNDARY_CONTOURS,vertexSize:2,strict:!0,contours:[a]}),u=Bo({windingRule:_t.ODD,elementType:SA.BOUNDARY_CONTOURS,vertexSize:2,strict:!0,contours:[...c]});if(!l)throw new Error("error generating geometry");let h=l.elementCount;if(u){l.elementCount+=u.elementCount;for(let v=0;v<u.elements.length;v++){let E=u.elements[v],C=v%2===0?l.vertexCount:0;l.elements.push(E+C)}for(let v=0;v<u.vertexIndices.length;v++){let E=u.vertexIndices[v],C=l.vertexCount;l.vertexIndices.push(E+C)}for(let v=0;v<u.vertices.length;v++){let E=u.vertices[v];l.vertices.push(E)}}let d=1/0,p=-1/0,f=1/0,m=-1/0;for(let v=0,E=l.vertexCount;v<E;v++){let C=v*2,P=l.vertices[C+0],D=l.vertices[C+1];P<d&&(d=P),P>p&&(p=P),D<f&&(f=D),D>m&&(m=D)}this._minX=d,this._minY=f,this._width=p-d,this._height=m-f;let y=l.vertexCount*2*(2+this._bevelSegments);this._buffer=new Ah(y);let g=[],b=[];for(let v=l.elementCount-1;v>=0;v--){let E=v>=h,C=v*2,P=l.elements[C+0],D=l.elements[C+1],_=P+D,I={start:P,count:D,normals:[],continuous:[],concave:[]},B=P,N=_-1,W=P+1,X=this._shape.roundedCurves.length;do{let z=B-P,U=l.vertices[N*2+0],j=l.vertices[N*2+1],q=l.vertices[B*2+0],V=l.vertices[B*2+1],ue=l.vertices[W*2+0],Ae=l.vertices[W*2+1],K=q-U,Y=V-j,ne=Math.sqrt(K*K+Y*Y);K/=ne,Y/=ne;let le=q-ue,se=V-Ae,Me=Math.sqrt(le*le+se*se);le/=Me,se/=Me,I.normals[z*2+0]=-se,I.normals[z*2+1]=le,I.concave[z]=K*se-Y*le>0;let me=l.vertexIndices[B];if(Array.isArray(me))I.continuous[z]=!1;else{let[ge,ye]=this._shape.getCurveIndexFromVertexId(me-1,!0);if(ye>0&&ye<1)I.continuous[z]=!0;else{let de=ye===1?ge+1:ge-1;de=(de+X)%X;let De=ye===1?0:1,Be=this._shape.roundedCurves[ge].getTangent(ye),Ze=this._shape.roundedCurves[de].getTangent(De);I.continuous[z]=Be.dot(Ze)>.95}}E&&(I.normals[z*2+0]*=-1,I.normals[z*2+1]*=-1),[N,B,W]=[B,W,W+1],W>=_&&(W-=D)}while(W!==P+1);let F=[];F.push({bevelI:0,angle:0,size:0,boundary:{vertices:l.vertices.slice(P*2,_*2),vertexCount:D,vertexIndices:new Array(D).fill(!0).map((z,U)=>[U,U]),elements:[0,D],elementCount:1,mesh:null},reverseMap:[],insetPoints:l.vertices.slice(P*2,_*2)});for(let z=1;z<=this._bevelSegments;z++){let U=z/this._bevelSegments*Math.PI/2,j=(1-Math.cos(U))*this._bevelSize,q=[],V=[],ue=[],Ae=[],K=0;for(let ne=0;ne<D;ne++){let le=ne*2,se=(ne-1+D)%D*2,Me=l.vertices[I.start*2+le+0],me=l.vertices[I.start*2+le+1],ge=-I.normals[se+0]*j,ye=-I.normals[se+1]*j,de=-I.normals[le+0]*j,De=-I.normals[le+1]*j;if(I.concave[ne]||!I.concave[ne]&&E){let Be=Math.atan2(ye,ge),Ze=Math.atan2(De,de);Ze>Be&&(Ze-=Math.PI*2);let R=Ze-Be;if(I.continuous[ne]||E){let L=Be+R/2,J=Math.cos(L)*j,ae=Math.sin(L)*j;q[2*K+0]=Me+J*(E?-1:1),q[2*K+1]=me+ae*(E?-1:1),Ae[K]=ne,K++}else{let L=Math.max(1,Math.floor(i/4*Math.abs(R)/Math.PI));for(let J=0;J<=L;J++){let ae=Be+R*(J/L),fe=Math.cos(ae)*j,Ce=Math.sin(ae)*j;q[2*K+0]=Me+fe,q[2*K+1]=me+Ce,Ae[K]=ne,K++}}}else q[2*K+0]=Me+ge,q[2*K+1]=me+ye,Ae[K]=ne,V[ne]=K,K++,q[2*K+0]=Me,q[2*K+1]=me,Ae[K]=ne,K++,q[2*K+0]=Me+de,q[2*K+1]=me+De,Ae[K]=ne,ue[ne]=K,K++}let Y=Bo({windingRule:_t.POSITIVE,elementType:SA.BOUNDARY_CONTOURS,vertexSize:2,strict:!0,contours:[q],edgeCreateCallback:ne=>{let se=ne.Org.idx,Me=Ae[se],me=Ae[(se+1)%Ae.length];ne.idx=[Me,me],ne.Sym.idx=[me,Me]},vertexIdCallback:ne=>{let le=ne.Lprev.idx;return[le?le[1]:0,ne.idx[0]]}});if(!Y)throw console.log("Error"),new Error(`error generating bevel geometry for ${z}'th loop`);if(!Y.vertexCount)break;for(let ne=0;ne<Y.vertexIndices.length;ne++){let[le,se]=Y.vertexIndices[ne];if(le===se)continue;let Me=se;se<le&&(Me+=D);for(let me=le;me<Me;me++){let ge=me%D,ye=(me+1)%D;if(!I.continuous[ge]||!I.continuous[ye]){Y.vertexIndices[ne]=[le,ge],Y.vertexIndices.splice(ne+1,0,[ye,se]),Y.vertices.splice((ne+1)*2,0,Y.vertices[ne*2],Y.vertices[ne*2+1]);break}}}F.push({bevelI:z,angle:U,size:j,boundary:Y,reverseMap:Ae,insetPoints:q})}let k=(z,U,j)=>{let q=0,V=z.boundary.vertexIndices.length;for(;q<V&&j(z.boundary.vertexIndices[U]);)U=(U+1)%V,q++;return q},Q=g.length;for(let z=1;z<F.length;z++){let U=F[z-1],j=F[z],q=U.boundary.vertexIndices.length,V=j.boundary.vertexIndices.length;if(!q||!V)break;let ue=I.concave.length,Ae=0,K=s0(Ae,D);for(;!U.boundary.vertexIndices.filter(K).length||!j.boundary.vertexIndices.filter(K).length;)Ae++,K=s0(Ae,D);let Y=U.boundary.vertexIndices.findIndex(K),ne=j.boundary.vertexIndices.findIndex(K);do Y=(Y+1)%q;while(K(U.boundary.vertexIndices[Y]));do ne=(ne+1)%V;while(K(j.boundary.vertexIndices[ne]));Ae=(Ae+1)%D;let le=Ae,se=this.buildBevelVert(I,U,(Y-1+q)%q),Me=this.buildBevelVert(I,j,(ne-1+V)%V),me=se,ge=Me,ye,de,De=!1;do{K=s0(Ae,D);let Be=k(U,Y,K),Ze=k(j,ne,K),R=De;if(De=!1,Be&&!Ze){for(let L=0;L<Be;L++)ye=this.buildBevelVert(I,U,(Y+L)%q,L/(Be-1)),g.push(me.topN,ye.topP,ge.topN),g.push(ye.bottomP,me.bottomN,ge.bottomN),me=ye;De=!0}else if(!Be&&Ze)for(let L=0;L<Ze;L++)de=this.buildBevelVert(I,j,(ne+L)%V,L/(Ze-1)),g.push(ge.topN,me.topP,de.topP),g.push(me.bottomP,ge.bottomN,de.bottomP),ge=de;else if(Be&&Ze)if(ye=this.buildBevelVert(I,U,Y,0),de=this.buildBevelVert(I,j,ne,0),R?(g.push(me.topN,de.topP,ge.topN),g.push(me.topN,ye.topP,de.topP),g.push(de.bottomP,me.bottomN,ge.bottomN),g.push(de.bottomP,ye.bottomP,me.bottomN)):(g.push(ge.topN,me.topN,ye.topP),g.push(ge.topN,ye.topP,de.topP),g.push(ye.bottomP,me.bottomN,ge.bottomN),g.push(ye.bottomP,ge.bottomN,de.bottomP)),me=ye,ge=de,Be===Ze)for(let L=1;L<Be;L++)ye=this.buildBevelVert(I,U,(Y+L)%q,L/(Be-1)),de=this.buildBevelVert(I,j,(ne+L)%V,L/(Ze-1)),g.push(me.topN,ye.topP,ge.topN),g.push(ge.topN,ye.topP,de.topP),g.push(ye.bottomP,me.bottomN,ge.bottomN),g.push(ye.bottomP,ge.bottomN,de.bottomP),me=ye,ge=de;else if(Be>Ze){let L=Be/Ze,J=0;for(let ae=1;ae<Be;ae++)ye=this.buildBevelVert(I,U,(Y+ae)%q,ae/(Be-1)),g.push(me.topN,ye.topP,ge.topN),g.push(ye.bottomP,me.bottomN,ge.bottomN),me=ye,ae>(J+1)*L&&(J++,de=this.buildBevelVert(I,j,(ne+J)%V,J/(Ze-1)),g.push(ge.topN,ye.topP,de.topP),g.push(ye.bottomP,ge.bottomN,de.bottomP),ge=de)}else{let L=Ze/Be,J=0;for(let ae=1;ae<Ze;ae++)de=this.buildBevelVert(I,j,(ne+ae)%V,ae/(Ze-1)),g.push(ge.topN,ye.topP,de.topP),g.push(ye.bottomP,ge.bottomN,de.bottomP),ge=de,ae>(J+1)*L&&(J++,ye=this.buildBevelVert(I,U,(Y+J)%q,J/(Be-1)),g.push(me.topN,ye.topP,ge.topN),g.push(ye.bottomP,me.bottomN,ge.bottomN),me=ye)}Y=(Y+Be)%q,ne=(ne+Ze)%V,Ae=(Ae+1)%ue}while(Ae!==le)}{let z=F[0];for(let U=0,j=z.boundary.vertexCount;U<j;U++){let q=this.buildBevelVert(I,z,U),V=this.buildBevelVert(I,z,(U+1)%j);g.push(V.topP,q.topN,q.bottomN),g.push(V.topP,q.bottomN,V.bottomP)}}if(E){let z=[];for(let U=g.length-1;U>=Q+2;U-=3){let j=g[U-2],q=g[U-1],V=g[U-0];z.push(V,q,j)}g.splice(Q,g.length-Q,...z)}if(E){let z=[];for(let U=F[F.length-1].boundary.vertices.length-1;U>=1;U-=2){let j=F[F.length-1].boundary.vertices[U-1],q=F[F.length-1].boundary.vertices[U-0];z.push(j,q)}b.push(z)}if(!E){let z=F[F.length-1],U=Bo({windingRule:F.length>1?_t.POSITIVE:_t.ODD,elementType:SA.POLYGONS,vertexSize:2,strict:!0,contours:[z.insetPoints,...b]});if(!U)throw new Error("Error generating geometry for surface");c.length===0&&Object.assign(this,{capStartIndex:g.length});for(let j=0;j<U.elementCount*3;j+=3){let q=this.buildSurfaceVert(U,U.elements[j+0]),V=this.buildSurfaceVert(U,U.elements[j+1]),ue=this.buildSurfaceVert(U,U.elements[j+2]);g.push(q.top,V.top,ue.top),g.push(ue.bottom,V.bottom,q.bottom)}}this.vertexCache={}}this._buffer.shrink();let x=new Ge(Uint32Array.from(g),1),w=new Ge(this._buffer.positions,3),T=new Ge(this._buffer.normals,3),M=new Ge(this._buffer.uvs,2);w.needsUpdate=!0,T.needsUpdate=!0,M.needsUpdate=!0,x.needsUpdate=!0,this.setAttribute("position",w),this.setAttribute("normal",T),this.setAttribute("uv",M),this.setIndex(x)}buildSurfaceVert(t,A){let r=A.toString();if(r in this.vertexCache)return this.vertexCache[r];let i=t.vertices[A*2+0],s=t.vertices[A*2+1],o=(i-this._minX)/this._width,a=(s-this._minY)/this._height,c=this._buffer.get(2),l=c*3,u=c*2,h={top:c+0,bottom:c+1};return this._buffer.positions[l+0]=i,this._buffer.positions[l+1]=s,this._buffer.positions[l+2]=this._depth,this._buffer.normals[l+0]=0,this._buffer.normals[l+1]=0,this._buffer.normals[l+2]=1,this._buffer.uvs[u+0]=o,this._buffer.uvs[u+1]=a,this._buffer.positions[l+3]=i,this._buffer.positions[l+4]=s,this._buffer.positions[l+5]=0,this._buffer.normals[l+3]=0,this._buffer.normals[l+4]=0,this._buffer.normals[l+5]=-1,this._buffer.uvs[u+2]=o,this._buffer.uvs[u+3]=a,this.vertexCache[r]=h,h}buildBevelVert(t,A,r,i=1){let s=`${A.bevelI}:${r}`;if(s in this.vertexCache)return this.vertexCache[s];let[o,a]=A.boundary.vertexIndices[r],c,l,u,h;o!==a?(l=o,c=a,h=!1,u=t.continuous[l]&&t.continuous[c]):(c=o,l=(c-1+t.count)%t.count,h=t.concave[c]&&A.bevelI>0,u=t.continuous[c]||h);let d=Math.cos(A.angle),p=Math.sin(A.angle),f=r*2,m=c*2,y=l*2,g=A.boundary.vertices[f+0],b=A.boundary.vertices[f+1],x=(1-p)*this._bevelSize,w=(g-this._minX)/this._width,T=(b-this._minY)/this._height,M=t.normals[m+0],v=t.normals[m+1],E=t.normals[y+0],C=t.normals[y+1];if(h){let B=E-M,N=C-v;M=M+B*(1-i),v=v+N*(1-i);let W=Math.sqrt(M*M+v*v);M/=W,v/=W}let P=this._buffer.get(u?2:4),D=P*3,_=P*2,I={i:r,fi:c,topP:P+0,topN:P+0,bottomP:P+1,bottomN:P+1};return this._buffer.positions[D+0]=g,this._buffer.positions[D+1]=b,this._buffer.positions[D+2]=this._depth-x,this._buffer.normals[D+0]=M*d,this._buffer.normals[D+1]=v*d,this._buffer.normals[D+2]=p,this._buffer.uvs[_+0]=w,this._buffer.uvs[_+1]=T,this._buffer.positions[D+3]=g,this._buffer.positions[D+4]=b,this._buffer.positions[D+5]=x,this._buffer.normals[D+3]=M*d,this._buffer.normals[D+4]=v*d,this._buffer.normals[D+5]=-p,this._buffer.uvs[_+2]=T,this._buffer.uvs[_+3]=w,u||(P+=2,D+=6,_+=4,I.topP=P+0,I.bottomP=P+1,this._buffer.positions[D+0]=g,this._buffer.positions[D+1]=b,this._buffer.positions[D+2]=this._depth-x,this._buffer.normals[D+0]=E*d,this._buffer.normals[D+1]=C*d,this._buffer.normals[D+2]=p,this._buffer.uvs[_+0]=w,this._buffer.uvs[_+1]=T,this._buffer.positions[D+3]=g,this._buffer.positions[D+4]=b,this._buffer.positions[D+5]=x,this._buffer.normals[D+3]=E*d,this._buffer.normals[D+4]=C*d,this._buffer.normals[D+5]=-p,this._buffer.uvs[_+2]=T,this._buffer.uvs[_+3]=w),this.vertexCache[s]=I,I}clone(){let t=new Jl(this._shape,this._depth,this._bevel,this._curveSegments,this._bevelSegmentsInput);return t.userData=wu(this.userData),t}};var VA=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,e){let t=Object.assign({},e?.parameters??{width:100,subdivisions:40,roundness:0,extrudeBevelSize:0,extrudeBevelSegments:3,windingRule:_t.ODD},n.parameters),A=Math.abs(t.width),r=Math.abs(t.height??t.width),i=Math.abs(t.depth??0),s=n.shape??e?.shape,o=s?.roundness??t.roundness;s!==void 0&&(s instanceof yt?(s.width!==A||s.height!==r)&&s.applySize(A,r):s=new yt(A,r).fromJSON(s),n.parameters?.roundness!==void 0&&n.parameters?.roundness>0&&s.update(!1));let a=s??new yt(A,r);return{parameters:Object.assign(t,{width:A,height:r,depth:i,roundness:o}),shape:a}}static build(n){let{depth:e,extrudeBevelSize:t,extrudeBevelSegments:A,subdivisions:r,roundness:i,windingRule:s}=n.parameters;n.shape.roundness=i;let o;return e<=0?o=new Kl(n.shape,r,{windingRule:s}):o=new Jl(n.shape,e,t,r,A,s),Object.assign(o,{userData:{...n,type:"VectorGeometry"}})}};var XE=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,e){let t=Object.assign({},e?.parameters??{width:100,radialSegments:64,heightSegments:1,openEnded:!1,thetaStart:0,thetaLength:360,cornerRadius:0,cornerSegments:8,hollow:0},n.parameters),A=t.width/2,r=t.radiusTop??A,i=t.radiusBottom??A;return r===i?(r=A,i=A):r>i?(r=A,i=i*A/r):(r=r*A/i,i=A),{parameters:Object.assign(t,{width:Math.abs(t.width),height:Math.abs(t.height??t.width),depth:Math.abs(t.depth??t.width),radiusTop:r,radiusBottom:i})}}static build(n){let{width:e,depth:t,height:A,radialSegments:r,heightSegments:i,openEnded:s,thetaStart:o,thetaLength:a,radiusTop:c,radiusBottom:l,cornerRadius:u,cornerSegments:h,hollow:d}=n.parameters,p;return u||d?p=new nh(c,l,A,r,i,s,o,a*Math.PI/180,u,u,h,d):p=new lo(c,l,A,r,i,s,o,a*Math.PI/180),p.scale(1,1,t/e),Object.assign(p,{userData:{...n,type:"CylinderGeometry"}})}};function Ds(n,e,t){t.x=n.x*e.x,t.y=n.y,t.z=n.x*e.y}function qE(n){return new G(n.y,-n.x)}var nh=class extends Ie{constructor(e,t,A,r,i,s,o,a,c,l,u,h,d=!1){super(),this.type="RoundedCylinderBufferGeometry",e=e!==void 0?e:1,t=t!==void 0?t:1,A=A||1,r=Math.floor(r)||8,i=Math.floor(i)||1,s=s!==void 0?s:!1,o=o!==void 0?o:0,a=a!==void 0?a:Math.PI*2,s&&(c=0,l=0);let p=[],f=[],m=[],y=[],g=0,b=A/2,x=new S,w=new S;d&&e==0&&(e=c),d&&t==0&&(t=l);let T=new G(e,b),M=new G(t,-b),v=null,E=null,C=null,P=null,D=T.clone().sub(M),_=0,I=0,B=0;h>0&&(_=Math.min(e,t)*(1-h),I=e-_,B=t-_);let N=T.clone();N.x-=_;let W=Math.PI-D.angle(),X=D.angle(),F=Math.tan(X/2),k=Math.tan(W/2),Q=F+k,z=h?Q:k,U=h?Q:F;if(c=Math.min(c,(e-I)/z,D.length()/Q),l=Math.min(l,(t-B)/U,D.length()/Q),c>0){let K=c/F;v=T.clone().sub(new G(K,c)),h&&(C=v.clone(),C.x-=_-Q*c),T.sub(D.clone().setLength(K))}if(l>0){let K=l/k;E=M.clone().sub(new G(K,-l)),M.add(D.clone().setLength(K)),h&&(P=E.clone(),P.x-=_-Q*l,N.sub(D.clone().setLength(K)))}D=T.clone().sub(M);let j=D.length()<.5,q=[];for(let K=0;K<=r;K++){let Y=[],ne=K/r,le=ne*a+o,se=new G(Math.sin(le),Math.cos(le));P&&E?(V(Y,ne,se,W,l,P,-1,!0),V(Y,ne,se,X,l,E,-1,!1)):E?(ue(Y,se,E.x,0,-1),V(Y,ne,se,X,l,E,-1,!1)):s||ue(Y,se,t,B,-1);let Me=qE(D).normalize();if(Ds(Me,se,x),!j)for(let me=0;me<=i;me++){let ge=me/i,ye=D.clone().multiplyScalar(ge).add(M);Ds(ye,se,w),f.push(w.x,w.y,w.z),m.push(x.x,x.y,x.z),y.push(ne,.5+w.y/A),Y.push(g++)}if(C&&v?(V(Y,ne,se,W,c,v,1,!1),V(Y,ne,se,X,c,C,1,!0)):v?(V(Y,ne,se,W,c,v,1,!1),ue(Y,se,v.x,0,1)):s||ue(Y,se,e,I,1),h&&!j){let me=qE(D).multiplyScalar(-1).normalize();Ds(me,se,x);for(let ge=0;ge<=i;ge++){let ye=ge/i,de=D.clone().multiplyScalar(-ye).add(N);Ds(de,se,w),f.push(w.x,w.y,w.z),m.push(x.x,x.y,x.z),y.push(ne,.5+w.y/A),Y.push(g++)}}h&&!s&&Y.push(Y[0]),q.push(Y)}for(let K=0;K<q.length-1;K++)for(let Y=0;Y<q[0].length-1;Y++){if(s&&h&&Y==i)continue;let ne=q[K][Y],le=q[K+1][Y],se=q[K+1][Y+1],Me=q[K][Y+1],me=f[se*3+0],ge=f[se*3+2];p.push(ne,le,Me),(me!=0||ge!=0)&&p.push(le,se,Me)}a<Math.PI*2&&(Ae(-1,q[0],o),Ae(1,q[q.length-1],o+a)),this.setIndex(p),this.setAttribute("position",new Se(f,3)),this.setAttribute("normal",new Se(m,3)),this.setAttribute("uv",new Se(y,2));function V(K,Y,ne,le,se,Me,me,ge){for(let ye=0;ye<u+1;ye++){let de=ye/u,De=me<0?de:1-de;ge&&(De-=1),De*=le;let Be=new G(Math.sin(De),Math.cos(De)*me),Ze=Be.clone().multiplyScalar(se).add(Me);Ds(Ze,ne,w),f.push(w.x,w.y,w.z),Ds(Be,ne,x),m.push(x.x,x.y,x.z),y.push(Y,.5+w.y/A),K.push(g++)}}function ue(K,Y,ne,le,se){let Me=new S,me=new G,ge=[ne,le];se<0&&ge.reverse();for(let ye of ge)me.set(ye,b*se),Ds(me,Y,Me),f.push(Me.x,Me.y,Me.z),m.push(0,se,0),y.push(.5,.5),K.push(g++)}function Ae(K,Y,ne){let le=new G(Math.sin(ne),Math.cos(ne)),se=new G(-Math.cos(ne),Math.sin(ne)),Me=new S,me=K<0?(de,De,Be)=>p.push(de,De,Be):(de,De,Be)=>p.push(de,Be,De),ge=new G((e+t+I+B)/4,0);Ds(ge,le,Me),f.push(Me.x,Me.y,Me.z),m.push(se.x,0,se.y),y.push(.5,.5);let ye=g++;for(let de of Y){let De=f.slice(de*3,de*3+3);f.push(...De),m.push(se.x,0,se.y);let Be=y.slice(de*2,de*2+2);y.push(...Be),g++}for(let de=ye+1;de<g-1;de++)me(ye,de,de+1);me(ye,g-1,ye+1)}}};var QE=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,e){let t=Object.assign({},e?.parameters??{width:100,radialSegments:32,heightSegments:8,openEnded:!1,thetaStart:0,thetaLength:360,cornerRadiusTop:0,cornerRadiusBottom:0,cornerSegments:8},n.parameters);return{parameters:Object.assign(t,{width:Math.abs(t.width),height:Math.abs(t.height??t.width),depth:Math.abs(t.depth??t.width)})}}static build(n){let{width:e,depth:t,height:A,radialSegments:r,heightSegments:i,openEnded:s,thetaStart:o,thetaLength:a,cornerRadiusTop:c,cornerRadiusBottom:l,cornerSegments:u}=n.parameters,h;return c>0||l>0||a<360?h=new nh(0,e/2,A,r,i,s,o,a*Math.PI/180,c,l,u,0,!0):h=new wa(e/2,A,r,i,s),h.scale(1,1,t/e),Object.assign(h,{userData:{...n,type:"ConeGeometry"}})}};var ZE=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,e){let t=Object.assign({},e?.parameters??{width:100,widthSegments:1,heightSegments:1,depthSegments:1,cornerRadius:0,cornerSegments:8},n.parameters);return{parameters:Object.assign(t,{width:Math.abs(t.width),height:Math.abs(t.height??t.width),depth:Math.abs(t.depth??t.width)})}}static build(n){let{width:e,height:t,depth:A,widthSegments:r,heightSegments:i,depthSegments:s,cornerRadius:o,cornerSegments:a}=n.parameters,c;return o==0?c=new fn(e,t,A,r,i,s):c=new a0(e,t,A,r,i,s,o,a),Object.assign(c,{userData:{...n,type:"CubeGeometry"}})}},o0=Math.PI/2,a0=class extends Ie{constructor(e=1,t=1,A=1,r=1,i=1,s=1,o=0,a=4){super(),this.type="BoxGeometry";let c=this;r=Math.floor(r),i=Math.floor(i),s=Math.floor(s),a=Math.floor(a),o=Math.min(o,e/2,t/2,A/2);let l=[],u=[],h=[],d=[],p=0,f=0;m("z","y","x",-1,-1,A,t,e,s,i,0),m("z","y","x",1,-1,A,t,-e,s,i,1),m("x","z","y",1,1,e,A,t,r,s,2),m("x","z","y",1,-1,e,A,-t,r,s,3),m("x","y","z",1,-1,e,t,A,r,i,4),m("x","y","z",-1,-1,e,t,-A,r,i,5),o>0&&(y("z","y","x",-1,-1,1,A,t,e,s,0),y("z","y","x",1,-1,-1,A,t,e,s,1),y("z","y","x",-1,1,-1,A,t,e,s,1),y("z","y","x",1,1,1,A,t,e,s,0),y("x","y","z",-1,-1,-1,e,t,A,r,0),y("x","y","z",1,-1,1,e,t,A,r,1),y("x","y","z",-1,1,1,e,t,A,r,0),y("x","y","z",1,1,-1,e,t,A,r,1),y("y","x","z",-1,-1,1,t,e,A,i,0),y("y","x","z",1,-1,-1,t,e,A,i,1),y("y","x","z",1,1,1,t,e,A,i,1),y("y","x","z",-1,1,-1,t,e,A,i,0),g(1,1,1),g(-1,1,1),g(1,-1,1),g(-1,-1,1),g(1,1,-1),g(-1,1,-1),g(1,-1,-1),g(-1,-1,-1)),this.setIndex(l),this.setAttribute("position",new Se(u,3)),this.setAttribute("normal",new Se(h,3)),this.setAttribute("uv",new Se(d,2));function m(b,x,w,T,M,v,E,C,P,D,_){let I=(v-2*o)/P,B=(E-2*o)/D,N=v/2-o,W=E/2-o,X=C/2,F=P+1,k=D+1,Q=0,z=0,U=new S;for(let j=0;j<k;j++){let q=j*B-W;for(let V=0;V<F;V++){let ue=V*I-N;U[b]=ue*T,U[x]=q*M,U[w]=X,u.push(U.x,U.y,U.z),U[b]=0,U[x]=0,U[w]=C>0?1:-1,h.push(U.x,U.y,U.z),d.push(V/P),d.push(1-j/D),Q+=1}}for(let j=0;j<D;j++)for(let q=0;q<P;q++){let V=p+q+F*j,ue=p+q+F*(j+1),Ae=p+(q+1)+F*(j+1),K=p+(q+1)+F*j;l.push(V,ue,K),l.push(ue,Ae,K),z+=6}c.addGroup(f,z,_),f+=z,p+=Q}function y(b,x,w,T,M,v,E,C,P,D,_){let I=(E-2*o)/D,B=E/2-o,N=C/2-o,W=P/2,X=D+1,F=0,k=0,Q=new S,z=new S;for(let U=0;U<a+1;U++){let j=U/a*o0,q=Math.sin(j)*o,V=(1-Math.cos(j))*o,ue=Math.sin(j),Ae=Math.cos(j);Q[x]=(N+q)*M,Q[w]=(W-V)*v,z[b]=0,z[x]=ue*Math.sign(Q[x]),z[w]=Ae*Math.sign(Q[w]);for(let K=0;K<X;K++){let Y=K*I-B;Q[b]=Y*T,u.push(Q.x,Q.y,Q.z),h.push(z.x,z.y,z.z),d.push(K/D),d.push(0),F+=1}}for(let U=0;U<a;U++)for(let j=0;j<D;j++){let q=p+j+X*U,V=p+j+X*(U+1),ue=p+(j+1)+X*(U+1),Ae=p+(j+1)+X*U;l.push(q,V,Ae),l.push(V,ue,Ae),k+=6}c.addGroup(f,k,_),f+=k,p+=F}function g(b,x,w){let T=new S,M=new S(e/2,t/2,A/2);M.subScalar(o);let v=[],E=b*x*w>0?(P,D,_)=>l.push(P,D,_):(P,D,_)=>l.push(P,_,D);for(let P=0;P<=a;P++){let D=[],_=o0*(1-P/a),I=Math.cos(_),B=Math.sin(_),N=0;for(let W=0;W<=P;W++){let X=Math.cos(N),F=Math.sin(N);T.x=I*X,T.y=B,T.z=I*F;let k=M.clone().addScaledVector(T,o);u.push(b*k.x,x*k.y,w*k.z),h.push(b*T.x,x*T.y,w*T.z),d.push(0,0),D.push(p++),N+=o0/P}v.push(D)}let C=v.length-1;for(let P=0;P<C;P++){let D=v[P],_=v[P+1],I=D.length-1;E(D[0],_[1],_[0]);for(let B=1;B<=I;B++)E(D[B-1],D[B],_[B]),E(D[B],_[B+1],_[B])}}}};var Is=class extends Ie{constructor(e=[],t=[],A="",r=1,i=.2,s=4){super(),this.type="PolyhedronGeometryRound";let o=[],a=[],c=[];l(),u(),this.setAttribute("position",new Se(o,3)),this.setAttribute("normal",new Se(c,3)),this.setAttribute("uv",new Se(a,2));return;function l(){i=Math.min(1-1e-5,i),i==0&&(s=0);let d={IcosahedronGeometry:5,DodecahedronGeometry:3,HexahedronGeometry:3,OctahedronGeometry:4,TetrahedronGeometry:3}[A],p=new S,f=p.clone(),m=new Zt,y=i*r,g=r-y,b=s+1,x=new S,w=(F,k)=>x.subVectors(F,k).normalize(),T=(F,k)=>Array(F).fill(void 0).map(k),M=T(e.length/3,(F,k)=>new S().fromArray(e,k*3).setLength(r)),v=[],E=1e6;for(let F=0;F<M.length;F++){let k=M[F],Q=[],z,U,j,q=1e10,V=-1;for(;(V=t.indexOf(F,V+1))!=-1;){let Y=V-V%3;z=t[Y+(V+1)%3],U=t[Y+(V+2)%3],j=k.distanceToSquared(M[z]),q=Math.min(q,j),Q.push([z,U,j])}q+=1e-6;let ue=[],Ae=0,K=Q.length;for(let Y=0;Y<K;Y++){[z,U,j]=Q[Ae];let ne=v[z]?.includes(F)==!0;j<=q&&ue.push(z+ +ne*E),Ae=Q.findIndex(le=>le[0]==U)}v.push(ue)}let C=[];{let F=0,k=0,Q,z,U=d==3;for(let j=0;j<=s;j++){Q=j*(j+1)/2,z=(j+1)*(j+2)/2;for(let q=0;q<s-j;q++)[F,k]=[Q+q+j+2,z+q+j+3],C.push(Q,z,...U?[k,Q]:[F,z],k,F),[Q,z]=[F,k];C.push(Q,z,Q+s+2)}}let P=p.clone(),D=p.clone(),_=p.clone(),I=p.clone(),B=p.clone(),N=[],W=T(M.length,()=>T(d,()=>p.clone()));for(let F=0;F<M.length;F++){p.copy(M[F]).normalize(),P.copy(p).multiplyScalar(g);let k=v[F];for(let ue=0;ue<k.length;ue++){let Ae=k[ue],K=k[(ue+1)%d];m.setFromPointsAndIndices(M,F,Ae%E,K%E),m.b.sub(m.a).setLength(1e10).add(m.a),m.c.sub(m.a).setLength(1e10).add(m.a),m.closestPointToPoint(P,W[F][ue])}let Q=[],z=[],U=[],j=new S;s==0&&[...W[F]].reduce((ue,Ae)=>ue.add(Ae),j).multiplyScalar(1/d);for(let ue=0;ue<d;ue++){let Ae=[],K=(ue-1+d)%d,Y=W[F][K],ne=W[F][ue];p.copy(Y).sub(P),f.copy(ne).sub(P);let le=P.angleTo(p),se=p.angleTo(f),Me=Math.cos(le)*y;s==0?D.copy(j):D.copy(P).setLength(g+Me),z.push(Me);let me=[D,Y,ne];for(let ge=0;ge<2;ge++){let ye=me[ge],de=me[ge+1];I.subVectors(ye,P),B.subVectors(de,P),_.crossVectors(I,B).normalize();for(let De=0;De<b;De++){let Be=[le,se][ge]*De/b;p.copy(I).applyAxisAngle(_,Be).add(P),Q.push(p.clone()),ge&&(w(p,P),Ae.push([De==0?ye:p.clone(),x.clone()]))}ge&&(w(de,P),Ae.push([de,x.clone()]))}U.push(Ae)}N.push(U);let q=2*b,V=2;for(let ue=0;ue<d;ue++){let Ae=q*ue,K=q*((ue+1)%d),Y=[Q[Ae]];for(let le=1;le<b;le++){I=Q[Ae+le],B=Q[K+le],Y.push(I);for(let se=1,Me=le-V+1;se<=Me;se++)p.lerpVectors(I,B,se/(Me+1)),p.sub(P).setLength(z[ue]).add(P),Y.push(p.clone());Y.push(B)}for(let le=0;le<b;le++)Y.push(Q[le+b+Ae]);Y.push(Q[K+b]);let ne=C.map(le=>Y[le]);o.push(...ne.map(le=>[le.x,le.y,le.z]).flat()),c.push(...ne.map(le=>(w(le,P),[x.x,x.y,x.z])).flat())}}let X=[];for(let F=0;F<v.length;F++)for(let k=0;k<d;k++){let Q=v[F][k];if(Q<E){let z=v[Q].findIndex(q=>q%E==F),U=N[F][k],j=N[Q][z];for(let q=0;q<b;q++){let V=U[q],ue=j[b-q],Ae=U[q+1],K=j[b-(q+1)];[V,ue,Ae,Ae,ue,K].forEach(Y=>{o.push(Y[0].x,Y[0].y,Y[0].z),c.push(Y[1].x,Y[1].y,Y[1].z)})}X.push(U[0][0],j[b][0],U[b][0],j[0][0])}}for(;X.length;){let F,k,Q,z;[F,k]=X.splice(0,2);let U=[F];for(;F!=k;)U.push(k),Q=X.indexOf(k),z=Q%2,k=X.splice(Q-z,2)[1-z];x.subVectors(U[0],U[1]).cross(p.subVectors(U[0],U[2])).normalize();let j=x.dot(U[0])<0;j&&x.negate();for(let q=1;q<=U.length-2;q++)[U[q+ +j],U[q+1-+j],U[0]].forEach(V=>{o.push(V.x,V.y,V.z),c.push(x.x,x.y,x.z)})}}function u(){let h=new S;for(let M=0;M<o.length;M+=3){h.x=o[M+0],h.y=o[M+1],h.z=o[M+2];let v=w(h)/2/Math.PI+.5,E=T(h)/Math.PI+.5;a.push(v,1-E)}let d=new S,p=new S,f=new S,m=new S,y=new G,g=new G,b=new G,x=(M,v,E,C)=>{C<0&&M.x===1&&(a[v]=M.x-1),E.x===0&&E.z===0&&(a[v]=C/2/Math.PI+.5)};for(let M=0,v=0;M<o.length;M+=9,v+=6){d.set(o[M+0],o[M+1],o[M+2]),p.set(o[M+3],o[M+4],o[M+5]),f.set(o[M+6],o[M+7],o[M+8]),y.set(a[v+0],a[v+1]),g.set(a[v+2],a[v+3]),b.set(a[v+4],a[v+5]),m.copy(d).add(p).add(f).divideScalar(3);let E=w(m);x(y,v+0,d,E),x(g,v+2,p,E),x(b,v+4,f,E)}for(let M=0;M<a.length;M+=6){let v=a[M+0],E=a[M+2],C=a[M+4],P=Math.max(v,E,C),D=Math.min(v,E,C);P>.9&&D<.1&&(v<.2&&(a[M+0]+=1),E<.2&&(a[M+2]+=1),C<.2&&(a[M+4]+=1))}function w(M){return Math.atan2(M.z,-M.x)}function T(M){return Math.atan2(-M.y,Math.sqrt(M.x*M.x+M.z*M.z))}}}static fromJSON(e){return new Is(e.vertices,e.indices,e.radius,e.corner,e.cornerSides)}};var KE=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,e){let t=Object.assign({},e?.parameters??{width:100,detail:0,corner:0,cornerSides:4},n.parameters);return{parameters:Object.assign(t,{width:Math.abs(t.width),height:Math.abs(t.height??t.width),depth:Math.abs(t.depth??t.width)})}}static build(n){let{width:e,height:t,depth:A,detail:r,corner:i,cornerSides:s}=n.parameters,o=r===0&&i!==0?new rh(e*.5,i,s):new Ta(e*.5,r);return o.scale(1,t/e,A/e),Object.assign(o,{userData:{...n,type:"DodecahedronGeometry"}})}},rh=class extends Is{constructor(e=1,t=.2,A=4){let r=(1+Math.sqrt(5))/2,i=1/r,s=[-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,-i,-r,0,-i,r,0,i,-r,0,i,r,-i,-r,0,-i,r,0,i,-r,0,i,r,0,-r,0,-i,r,0,-i,-r,0,i,r,0,i],o=[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],a="DodecahedronGeometry";super(s,o,a,e,t,A),this.type=a}static fromJSON(e){return new rh(e.radius,e.corner,e.cornerSides)}};var c0=Math.PI*2;function l0({x:n,y:e},t,A,r,i){return{x:n*t+r,y:e*A+i}}function E4(n,e){let t=e===1.5707963267948966?.551915024494:e===-1.5707963267948966?-.551915024494:1.3333333333333333*Math.tan(e/4),A=Math.cos(n),r=Math.sin(n),i=Math.cos(n+e),s=Math.sin(n+e);return[{x:A-r*t,y:r+A*t},{x:i+s*t,y:s-i*t},{x:i,y:s}]}function JE(n,e,t,A){let r=n*A-e*t<0?-1:1,i=Math.min(1,Math.max(-1,n*t+e*A));return r*Math.acos(i)}function C4(n,e,t,A,r,i,s,o,a,c){let l=Math.pow(r,2),u=Math.pow(i,2),h=Math.pow(s,2),d=Math.pow(o,2),p=l*u-l*d-u*h;p<0&&(p=0),p/=l*d+u*h,p=Math.sqrt(p)*(a===c?-1:1);let f=p*r/i*o,m=p*-i/r*s,y=f+(n+t)/2,g=m+(e+A)/2,b=(s-f)/r,x=(o-m)/i,w=(-s-f)/r,T=(-o-m)/i,M=JE(1,0,b,x),v=JE(b,x,w,T);return!c&&v>0&&(v-=c0),c&&v<0&&(v+=c0),{centerx:y,centery:g,ang1:M,ang2:v}}function $E({px:n,py:e,cx:t,cy:A,rx:r,ry:i,largeArcFlag:s,sweepFlag:o}){let a=[];if(r===0||i===0)return[];let c=(n-t)/2,l=(e-A)/2;if(c===0&&l===0)return[];r=Math.abs(r),i=Math.abs(i);let u=Math.pow(c,2)/Math.pow(r,2)+Math.pow(l,2)/Math.pow(i,2);u>1&&(r*=Math.sqrt(u),i*=Math.sqrt(u));let h=C4(n,e,t,A,r,i,c,l,s,o),{ang1:d,ang2:p}=h,{centerx:f,centery:m}=h,y=Math.abs(p)/(c0/4);Math.abs(1-y)<1e-7&&(y=1);let g=Math.max(Math.ceil(y),1);p/=g;for(let b=0;b<g;b++)a.push(E4(d,p)),d+=p;return a.map(b=>{let{x,y:w}=l0(b[0],r,i,f,m),{x:T,y:M}=l0(b[1],r,i,f,m),{x:v,y:E}=l0(b[2],r,i,f,m);return{x1:x,y1:w,x2:T,y2:M,x:v,y:E}})}var tC=Math.PI*2,AC=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,e){let t=Object.assign({},e?.parameters??{width:100,depth:0,spikes:64,angle:360,innerRadius:0,extrudeBevelSize:0,extrudeBevelSegments:1},n.parameters);return{shape:n.shape&&n.shape instanceof yt?n.shape:new yt,parameters:Object.assign(t,{width:Math.abs(t.width),height:Math.abs(t.height??t.width),depth:Math.abs(t.depth??0)})}}static build(n){let{width:e,height:t,spikes:A,angle:r,innerRadius:i,depth:s,extrudeBevelSize:o,extrudeBevelSegments:a}=n.parameters,c=n.shape,l=e*.5,u=t*.5,h=P4(c,l,u,r*Math.PI/180,A,i);c.isClosed=!0,c.update();let d=VA.create({shape:c,parameters:{subdivisions:h,depth:s,extrudeBevelSize:o,extrudeBevelSegments:a}});return Object.assign(d,{userData:{...n,type:"EllipseGeometry"}})}};function P4(n,e,t,A,r,i){if(A>=tC)return r>30||r%4===0?(I4(n,e,t,i),Math.round(r/4)):eC(n,A,r,e,t,i);let s={x:0,y:t},o=A+Math.PI*.5,a={x:Math.cos(o)*e,y:Math.sin(o)*t},c=$E({px:s.x,py:s.y,cx:a.x,cy:a.y,rx:e,ry:t,largeArcFlag:A>Math.PI,sweepFlag:!0});return r>30||r%c.length===0?D4(n,s.x,s.y,c,r,e,t,i):eC(n,A,r,e,t,i)}function D4(n,e,t,A,r,i,s,o){let a=Math.round(r/A.length);n.addPoint($l(e,t));for(let c=0,l=A.length;c<l;c++){let u=A[c],h=n.points[c],d=$l(u.x,u.y);h.controls[1].position.set(u.x1,u.y1),d.controls[0].position.set(u.x2,u.y2),n.addPoint(d)}return o>0?nC(n,i,s,o):n.addPoint($l(0,0)),a}function eC(n,e,t,A,r,i){let s=-e/t;for(let o=0;o<=t;o++){let a=s*o,c=Math.sin(a)*A,l=Math.cos(a)*r;n.addPoint($l(c,l))}return e<tC?i>0?nC(n,A,r,i):n.addPoint($l(0,0)):(n.removePoint(n.points[n.points.length-1]),i>0&&rC(n,A,r,i)),1}function I4(n,e,t,A=0,r=0,i=0){let s=.5522847498,o=e*s,a=t*s;n.addPoint(Up(r-e,i,r-e,i-a,r-e,i+a)),n.addPoint(Up(r,i+t,r-o,i+t,r+o,i+t)),n.addPoint(Up(r+e,i,r+e,i+a,r+e,i-a)),n.addPoint(Up(r,i-t,r+o,i-t,r-o,i-t)),A>0&&rC(n,e,t,A)}function $l(n,e){return new br(ze.generateUUID(),new G(n,e))}function Up(n,e,t,A,r,i){let s=$l(n,e);return s.controls[0].position.set(t,A),s.controls[1].position.set(r,i),s}function nC(n,e,t,A){iC(n,e,t,A).forEach(i=>n.addPoint(i))}function rC(n,e,t,A){let r=iC(n,e,t,A),i=new yt;r.forEach(s=>i.addPoint(s)),i.isClosed=!0,n.shapeHoles.push(i)}function iC(n,e,t,A){let r=A*e/100,i=r*(Math.abs(t)/Math.abs(e)),s=new G(r/e,i/t),o=n.points.map(a=>{let c=a.clone();return c.uuid=ze.generateUUID(),c}).reverse();return o.forEach(a=>{a.position.multiply(s);let c=a.controls[0].position.clone().multiply(s),l=a.controls[1].position.clone().multiply(s);a.controls[0].position.copy(l),a.controls[1].position.copy(c)}),o}var sC=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,e){let t=Object.assign({},e?.parameters??{width:100,revolutions:2,segments:40,pathRadius:10,pathType:0,pathSegments:30,cornerRadius:30,cornerSegments:4},n.parameters),A=Math.abs(t.width),r=Math.abs(t.height??A),i=Math.abs(t.depth??A),s=Math.abs(Math.min(A,i))/2;return{parameters:Object.assign(t,{width:A,height:r,depth:i,radius:s,segments:Math.round(t.segments),pathSegments:Math.round(t.pathSegments),cornerSegments:Math.round(t.cornerSegments)})}}static build(n){let{width:e,height:t,depth:A,radius:r,revolutions:i,segments:s,pathRadius:o,pathType:a,pathSegments:c,cornerRadius:l,cornerSegments:u}=n.parameters,h=new ih(!1,e,t,A,r,i,s,o,a,c,l,u);return Object.assign(h,{userData:{...n,type:"HelixGeometry"}})}},ih=class extends Ie{constructor(e=!0,t=1,A=1,r=1,i=1,s=1,o=1,a=1,c=1,l=1,u=1,h=1){super();let d=e&&s===1;d&&(h=0),u>100&&(u=100);let p=()=>new S,f=new S,m=p(),y=p(),g=p(),b,x,w,T,M,v,E,C,P=p(),D=p(),_=p(),I=p(),B=p(),N=p(),W=p(),X=p(),F=A-2*a+.001,k=F/s,Q=Math.ceil(o*s),z=Q+1,U=F/Q,j=-F/2,q=l+1,V=2*Math.PI/l,ue=Math.PI/2/h,Ae=.01,K=Math.min((1-u/100)*a,a-Ae),Y=a-K,ne=0,le=2,se=h*le+le,Me=q*se/le,me=Me+q*z,ge=q*(z+se),[ye,de,De]=[3,3,2].map(ve=>Array(ge*ve).fill(0)),Be=[],Ze=i-a;function R(ve,H){let xe=Math.PI/2;v=H*U,C=2*Math.PI*(v%k)/k+xe,v+=j,E=Math.sin(C)*Ze,M=Math.cos(C)*Ze,e?ve.set(M,E,v):ve.set(M,v,E)}R(f,-1e-10),R(m,0),P.copy(f),R(f,1);let L=f.distanceTo(m),J=d?0:Y+K,ae=L*Q+2*J,fe=K,Ce=ae-J;for(let ve=0;ve<=Q;ve++){R(y,ve),X.subVectors(y,P).normalize(),P.copy(y),N.copy(y).setComponent(+e+1,0).normalize(),W.crossVectors(X,N).normalize();let H=ve===0,xe=ve===Q,Te=H?3*Math.PI/2:ue,Qe=H?fe:Ce,Re=H?q:me,Je=H?0:ge-q,be=X.clone().multiplyScalar(H?-Y:Y).add(y),$e=X.clone().multiplyScalar(H?-1:1).normalize();for(let st=0;st<q;st++){let vt=st*V;if(D.addVectors(f.copy(N).multiplyScalar(a*Math.cos(vt)),m.copy(W).multiplyScalar(a*Math.sin(vt))),_.copy(D).normalize(),H||xe){d||(ne=Je+st,[0,1,2].forEach(Tt=>{ye[ne*3+Tt]=be.getComponent(Tt),de[ne*3+Tt]=$e.getComponent(Tt)}),De[ne*2]=+xe,De[ne*2+1]=st/l),m.copy(_).multiplyScalar(K),g.addVectors(y,m);for(let Tt=0;Tt<h;Tt++){let dn=Tt*ue+Te;I.addVectors(f.copy(X).multiplyScalar(Y*Math.sin(dn)),m.copy(_).multiplyScalar(Y*Math.cos(dn))),B.copy(I).normalize(),m.addVectors(g,I),I.normalize(),ne=Re+Tt*q+st,[0,1,2].forEach(Yo=>{ye[ne*3+Yo]=m.getComponent(Yo),de[ne*3+Yo]=B.getComponent(Yo)});let ed=+H+Math.sin(dn);De[ne*2]=(Qe+Y*ed)/ae,De[ne*2+1]=st/l}}m.addVectors(y,D),ne=Me+ve*q+st,[0,1,2].forEach(Tt=>{ye[ne*3+Tt]=m.getComponent(Tt),de[ne*3+Tt]=_.getComponent(Tt)}),De[ne*2]=(J+ve*L)/ae,De[ne*2+1]=st/l}}let Fe=z+2*h+le,re=1,[Ne,Oe]=[+d,Fe-1];for(let ve=Ne;ve<=Oe-1;ve++){let H=d&&ve===Oe-1;for(let xe=0;xe<q-1;xe++)b=ve*q+xe,x=b+1,w=(H?xe:b)+q,T=(H?xe+1:x)+q,ve===0?Be.push(x,T,w):ve===Fe-2?Be.push(b,x,w):Be.push(b,x,w,x,T,w)}this.setIndex(Be),this.setAttribute("position",new Se(ye,3)),this.setAttribute("normal",new Se(de,3)),this.setAttribute("uv",new Se(De,2))}};var oC=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,e){let t=Object.assign({},e?.parameters??{width:100,detail:0,corner:0,cornerSides:4},n.parameters);return{parameters:Object.assign(t,{width:Math.abs(t.width),height:Math.abs(t.height??t.width),depth:Math.abs(t.depth??t.width)})}}static build(n){let{width:e,height:t,depth:A,detail:r,corner:i,cornerSides:s}=n.parameters,o=r===0&&i!==0?new sh(e*.5,i,s):new Ea(e*.5,r);return o.scale(1,t/e,A/e),Object.assign(o,{userData:{...n,type:"IcosahedronGeometry"}})}},sh=class extends Is{constructor(e=1,t=.2,A=4){let r=(1+Math.sqrt(5))/2,i=[-1,r,0,1,r,0,-1,-r,0,1,-r,0,0,-1,r,0,1,r,0,-1,-r,0,1,-r,r,0,-1,r,0,1,-r,0,-1,-r,0,1],s=[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],o="IcosahedronGeometry";super(i,s,o,e,t,A),this.type=o}static fromJSON(e){return new sh(e.radius,e.corner,e.cornerSides)}};var aC=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,e){(n.parameters?.points??[]).forEach(A=>{Array.isArray(A)&&(A.x=A[0],A.y=A[1])});let t=Object.assign({},e?.parameters??{width:100,segments:64,verticalSegments:64,points:[{x:0,y:-50,id:0},{x:50,y:-50,id:1},{x:50,y:50,id:2},{x:0,y:50,id:3}]},n.parameters);return{parameters:Object.assign(t,{width:Math.abs(t.width),height:Math.abs(t.height??t.width),depth:Math.abs(t.depth??t.width)})}}static build(n){let{points:e,segments:t,verticalSegments:A}=n.parameters,r=new Mi;r.moveTo(e[0].x,e[0].y),r.bezierCurveTo(e[1].x,e[1].y,e[2].x,e[2].y,e[3].x,e[3].y);let i=new ba(r.extractPoints(A).shape,t);return i.rotateZ(Math.PI),Object.assign(i,{userData:{...n,type:"LatheGeometry"}})}};var Zr=new he,u0=new ht,Vp=new S,Ls=class extends Ot{constructor(){super(),this.uuid=ze.generateUUID(),this.name="",this.type="Geometry",this.vertices=[],this.colors=[],this.faces=[],this.faceVertexUvs=[[]],this.morphTargets=[],this.morphNormals=[],this.skinWeights=[],this.skinIndices=[],this.lineDistances=[],this.boundingBox=null,this.boundingSphere=null,this.elementsNeedUpdate=!1,this.verticesNeedUpdate=!1,this.uvsNeedUpdate=!1,this.normalsNeedUpdate=!1,this.colorsNeedUpdate=!1,this.lineDistancesNeedUpdate=!1,this.groupsNeedUpdate=!1}applyMatrix4(e){let t=new Wt().getNormalMatrix(e);for(let A=0,r=this.vertices.length;A<r;A++)this.vertices[A].applyMatrix4(e);for(let A=0,r=this.faces.length;A<r;A++){let i=this.faces[A];i.normal.applyMatrix3(t).normalize();for(let s=0,o=i.vertexNormals.length;s<o;s++)i.vertexNormals[s].applyMatrix3(t).normalize()}return this.boundingBox!==null&&this.computeBoundingBox(),this.boundingSphere!==null&&this.computeBoundingSphere(),this.verticesNeedUpdate=!0,this.normalsNeedUpdate=!0,this}rotateX(e){return Zr.makeRotationX(e),this.applyMatrix4(Zr),this}rotateY(e){return Zr.makeRotationY(e),this.applyMatrix4(Zr),this}rotateZ(e){return Zr.makeRotationZ(e),this.applyMatrix4(Zr),this}translate(e,t,A){return Zr.makeTranslation(e,t,A),this.applyMatrix4(Zr),this}scale(e,t,A){return Zr.makeScale(e,t,A),this.applyMatrix4(Zr),this}lookAt(e){return u0.lookAt(e),u0.updateMatrix(),this.applyMatrix4(u0.matrix),this}fromBufferGeometry(e){let t=this,A=e.index!==null?e.index:void 0,r=e.attributes;if(r.position===void 0)return console.error("THREE.Geometry.fromBufferGeometry(): Position attribute required for conversion."),this;let i=r.position,s=r.normal,o=r.color,a=r.uv,c=r.uv2;c!==void 0&&(this.faceVertexUvs[1]=[]);for(let h=0;h<i.count;h++)t.vertices.push(new S().fromBufferAttribute(i,h)),o!==void 0&&t.colors.push(new _e().fromBufferAttribute(o,h));function l(h,d,p,f){let m=o===void 0?[]:[t.colors[h].clone(),t.colors[d].clone(),t.colors[p].clone()],y=s===void 0?[]:[new S().fromBufferAttribute(s,h),new S().fromBufferAttribute(s,d),new S().fromBufferAttribute(s,p)],g=new ec(h,d,p,y,m,f);t.faces.push(g),a!==void 0&&t.faceVertexUvs[0].push([new G().fromBufferAttribute(a,h),new G().fromBufferAttribute(a,d),new G().fromBufferAttribute(a,p)]),c!==void 0&&t.faceVertexUvs[1].push([new G().fromBufferAttribute(c,h),new G().fromBufferAttribute(c,d),new G().fromBufferAttribute(c,p)])}let u=e.groups;if(u.length>0)for(let h=0;h<u.length;h++){let d=u[h],p=d.start,f=d.count;for(let m=p,y=p+f;m<y;m+=3)A!==void 0?l(A.getX(m),A.getX(m+1),A.getX(m+2),d.materialIndex):l(m,m+1,m+2,d.materialIndex)}else if(A!==void 0)for(let h=0;h<A.count;h+=3)l(A.getX(h),A.getX(h+1),A.getX(h+2));else for(let h=0;h<i.count;h+=3)l(h,h+1,h+2);return this.computeFaceNormals(),e.boundingBox!==null&&(this.boundingBox=e.boundingBox.clone()),e.boundingSphere!==null&&(this.boundingSphere=e.boundingSphere.clone()),this}center(){return this.computeBoundingBox(),this.boundingBox.getCenter(Vp).negate(),this.translate(Vp.x,Vp.y,Vp.z),this}normalize(){this.computeBoundingSphere();let e=this.boundingSphere.center,t=this.boundingSphere.radius,A=t===0?1:1/t,r=new he;return r.set(A,0,0,-A*e.x,0,A,0,-A*e.y,0,0,A,-A*e.z,0,0,0,1),this.applyMatrix4(r),this}computeFaceNormals(){let e=new S,t=new S;for(let A=0,r=this.faces.length;A<r;A++){let i=this.faces[A],s=this.vertices[i.a],o=this.vertices[i.b],a=this.vertices[i.c];e.subVectors(a,o),t.subVectors(s,o),e.cross(t),e.normalize(),i.normal.copy(e)}}computeVertexNormals(e=!0){let t=new Array(this.vertices.length);for(let A=0,r=this.vertices.length;A<r;A++)t[A]=new S;if(e){let A=new S,r=new S;for(let i=0,s=this.faces.length;i<s;i++){let o=this.faces[i],a=this.vertices[o.a],c=this.vertices[o.b],l=this.vertices[o.c];A.subVectors(l,c),r.subVectors(a,c),A.cross(r),t[o.a].add(A),t[o.b].add(A),t[o.c].add(A)}}else{this.computeFaceNormals();for(let A=0,r=this.faces.length;A<r;A++){let i=this.faces[A];t[i.a].add(i.normal),t[i.b].add(i.normal),t[i.c].add(i.normal)}}for(let A=0,r=this.vertices.length;A<r;A++)t[A].normalize();for(let A=0,r=this.faces.length;A<r;A++){let i=this.faces[A],s=i.vertexNormals;s.length===3?(s[0].copy(t[i.a]),s[1].copy(t[i.b]),s[2].copy(t[i.c])):(s[0]=t[i.a].clone(),s[1]=t[i.b].clone(),s[2]=t[i.c].clone())}this.faces.length>0&&(this.normalsNeedUpdate=!0)}computeFlatVertexNormals(){this.computeFaceNormals();for(let e=0,t=this.faces.length;e<t;e++){let A=this.faces[e],r=A.vertexNormals;r.length===3?(r[0].copy(A.normal),r[1].copy(A.normal),r[2].copy(A.normal)):(r[0]=A.normal.clone(),r[1]=A.normal.clone(),r[2]=A.normal.clone())}this.faces.length>0&&(this.normalsNeedUpdate=!0)}computeMorphNormals(){for(let t=0,A=this.faces.length;t<A;t++){let r=this.faces[t];r.__originalFaceNormal?r.__originalFaceNormal.copy(r.normal):r.__originalFaceNormal=r.normal.clone(),r.__originalVertexNormals||(r.__originalVertexNormals=[]);for(let i=0,s=r.vertexNormals.length;i<s;i++)r.__originalVertexNormals[i]?r.__originalVertexNormals[i].copy(r.vertexNormals[i]):r.__originalVertexNormals[i]=r.vertexNormals[i].clone()}let e=new Ls;e.faces=this.faces;for(let t=0,A=this.morphTargets.length;t<A;t++){if(!this.morphNormals[t]){this.morphNormals[t]={},this.morphNormals[t].faceNormals=[],this.morphNormals[t].vertexNormals=[];let i=this.morphNormals[t].faceNormals,s=this.morphNormals[t].vertexNormals;for(let o=0,a=this.faces.length;o<a;o++){let c=new S,l={a:new S,b:new S,c:new S};i.push(c),s.push(l)}}let r=this.morphNormals[t];e.vertices=this.morphTargets[t].vertices,e.computeFaceNormals(),e.computeVertexNormals();for(let i=0,s=this.faces.length;i<s;i++){let o=this.faces[i],a=r.faceNormals[i],c=r.vertexNormals[i];a.copy(o.normal),c.a.copy(o.vertexNormals[0]),c.b.copy(o.vertexNormals[1]),c.c.copy(o.vertexNormals[2])}}for(let t=0,A=this.faces.length;t<A;t++){let r=this.faces[t];r.normal=r.__originalFaceNormal,r.vertexNormals=r.__originalVertexNormals}}computeBoundingBox(){this.boundingBox===null&&(this.boundingBox=new Ct),this.boundingBox.setFromPoints(this.vertices)}computeBoundingSphere(){this.boundingSphere===null&&(this.boundingSphere=new DA),this.boundingSphere.setFromPoints(this.vertices)}merge(e,t,A=0){if(!(e&&e.isGeometry)){console.error("THREE.Geometry.merge(): geometry not an instance of THREE.Geometry.",e);return}let r,i=this.vertices.length,s=this.vertices,o=e.vertices,a=this.faces,c=e.faces,l=this.colors,u=e.colors;t!==void 0&&(r=new Wt().getNormalMatrix(t));for(let h=0,d=o.length;h<d;h++){let f=o[h].clone();t!==void 0&&f.applyMatrix4(t),s.push(f)}for(let h=0,d=u.length;h<d;h++)l.push(u[h].clone());for(let h=0,d=c.length;h<d;h++){let p=c[h],f,m,y=p.vertexNormals,g=p.vertexColors,b=new ec(p.a+i,p.b+i,p.c+i);b.normal.copy(p.normal),r!==void 0&&b.normal.applyMatrix3(r).normalize();for(let x=0,w=y.length;x<w;x++)f=y[x].clone(),r!==void 0&&f.applyMatrix3(r).normalize(),b.vertexNormals.push(f);b.color.copy(p.color);for(let x=0,w=g.length;x<w;x++)m=g[x],b.vertexColors.push(m.clone());b.materialIndex=p.materialIndex+A,a.push(b)}for(let h=0,d=e.faceVertexUvs.length;h<d;h++){let p=e.faceVertexUvs[h];this.faceVertexUvs[h]===void 0&&(this.faceVertexUvs[h]=[]);for(let f=0,m=p.length;f<m;f++){let y=p[f],g=[];for(let b=0,x=y.length;b<x;b++)g.push(y[b].clone());this.faceVertexUvs[h].push(g)}}}mergeMesh(e){if(!(e&&e.isMesh)){console.error("THREE.Geometry.mergeMesh(): mesh not an instance of THREE.Mesh.",e);return}e.matrixAutoUpdate&&e.updateMatrix(),this.merge(e.geometry,e.matrix)}mergeVertices(e=4){let t={},A=[],r=[],i=Math.pow(10,e);for(let a=0,c=this.vertices.length;a<c;a++){let l=this.vertices[a],u=Math.round(l.x*i)+"_"+Math.round(l.y*i)+"_"+Math.round(l.z*i);t[u]===void 0?(t[u]=a,A.push(this.vertices[a]),r[a]=A.length-1):r[a]=r[t[u]]}let s=[];for(let a=0,c=this.faces.length;a<c;a++){let l=this.faces[a];l.a=r[l.a],l.b=r[l.b],l.c=r[l.c];let u=[l.a,l.b,l.c];for(let h=0;h<3;h++)if(u[h]===u[(h+1)%3]){s.push(a);break}}for(let a=s.length-1;a>=0;a--){let c=s[a];this.faces.splice(c,1);for(let l=0,u=this.faceVertexUvs.length;l<u;l++)this.faceVertexUvs[l].splice(c,1)}let o=this.vertices.length-A.length;return this.vertices=A,o}setFromPoints(e){this.vertices=[];for(let t=0,A=e.length;t<A;t++){let r=e[t];this.vertices.push(new S(r.x,r.y,r.z||0))}return this}sortFacesByMaterialIndex(){let e=this.faces,t=e.length;for(let a=0;a<t;a++)e[a]._id=a;function A(a,c){return a.materialIndex-c.materialIndex}e.sort(A);let r=this.faceVertexUvs[0],i=this.faceVertexUvs[1],s,o;r&&r.length===t&&(s=[]),i&&i.length===t&&(o=[]);for(let a=0;a<t;a++){let c=e[a]._id;s&&s.push(r[c]),o&&o.push(i[c])}s&&(this.faceVertexUvs[0]=s),o&&(this.faceVertexUvs[1]=o)}toJSON(){let e={metadata:{version:4.5,type:"Geometry",generator:"Geometry.toJSON"}};if(e.uuid=this.uuid,e.type=this.type,this.name!==""&&(e.name=this.name),this.parameters!==void 0){let p=this.parameters;for(let f in p)p[f]!==void 0&&(e[f]=p[f]);return e}let t=[];for(let p=0;p<this.vertices.length;p++){let f=this.vertices[p];t.push(f.x,f.y,f.z)}let A=[],r=[],i={},s=[],o={},a=[],c={};for(let p=0;p<this.faces.length;p++){let f=this.faces[p],m=!0,y=!1,g=this.faceVertexUvs[0][p]!==void 0,b=f.normal.length()>0,x=f.vertexNormals.length>0,w=f.color.r!==1||f.color.g!==1||f.color.b!==1,T=f.vertexColors.length>0,M=0;if(M=l(M,0,0),M=l(M,1,m),M=l(M,2,y),M=l(M,3,g),M=l(M,4,b),M=l(M,5,x),M=l(M,6,w),M=l(M,7,T),A.push(M),A.push(f.a,f.b,f.c),A.push(f.materialIndex),g){let v=this.faceVertexUvs[0][p];A.push(d(v[0]),d(v[1]),d(v[2]))}if(b&&A.push(u(f.normal)),x){let v=f.vertexNormals;A.push(u(v[0]),u(v[1]),u(v[2]))}if(w&&A.push(h(f.color)),T){let v=f.vertexColors;A.push(h(v[0]),h(v[1]),h(v[2]))}}function l(p,f,m){return m?p|1<<f:p&~(1<<f)}function u(p){let f=p.x.toString()+p.y.toString()+p.z.toString();return i[f]!==void 0||(i[f]=r.length/3,r.push(p.x,p.y,p.z)),i[f]}function h(p){let f=p.r.toString()+p.g.toString()+p.b.toString();return o[f]!==void 0||(o[f]=s.length,s.push(p.getHex())),o[f]}function d(p){let f=p.x.toString()+p.y.toString();return c[f]!==void 0||(c[f]=a.length/2,a.push(p.x,p.y)),c[f]}return e.data={},e.data.vertices=t,e.data.normals=r,s.length>0&&(e.data.colors=s),a.length>0&&(e.data.uvs=[a]),e.data.faces=A,e}clone(){return new Ls().copy(this)}copy(e){this.vertices=[],this.colors=[],this.faces=[],this.faceVertexUvs=[[]],this.morphTargets=[],this.morphNormals=[],this.skinWeights=[],this.skinIndices=[],this.lineDistances=[],this.boundingBox=null,this.boundingSphere=null,this.name=e.name;let t=e.vertices;for(let h=0,d=t.length;h<d;h++)this.vertices.push(t[h].clone());let A=e.colors;for(let h=0,d=A.length;h<d;h++)this.colors.push(A[h].clone());let r=e.faces;for(let h=0,d=r.length;h<d;h++)this.faces.push(r[h].clone());for(let h=0,d=e.faceVertexUvs.length;h<d;h++){let p=e.faceVertexUvs[h];this.faceVertexUvs[h]===void 0&&(this.faceVertexUvs[h]=[]);for(let f=0,m=p.length;f<m;f++){let y=p[f],g=[];for(let b=0,x=y.length;b<x;b++){let w=y[b];g.push(w.clone())}this.faceVertexUvs[h].push(g)}}let i=e.morphTargets;for(let h=0,d=i.length;h<d;h++){let p={};if(p.name=i[h].name,i[h].vertices!==void 0){p.vertices=[];for(let f=0,m=i[h].vertices.length;f<m;f++)p.vertices.push(i[h].vertices[f].clone())}if(i[h].normals!==void 0){p.normals=[];for(let f=0,m=i[h].normals.length;f<m;f++)p.normals.push(i[h].normals[f].clone())}this.morphTargets.push(p)}let s=e.morphNormals;for(let h=0,d=s.length;h<d;h++){let p={};if(s[h].vertexNormals!==void 0){p.vertexNormals=[];for(let f=0,m=s[h].vertexNormals.length;f<m;f++){let y=s[h].vertexNormals[f],g={};g.a=y.a.clone(),g.b=y.b.clone(),g.c=y.c.clone(),p.vertexNormals.push(g)}}if(s[h].faceNormals!==void 0){p.faceNormals=[];for(let f=0,m=s[h].faceNormals.length;f<m;f++)p.faceNormals.push(s[h].faceNormals[f].clone())}this.morphNormals.push(p)}let o=e.skinWeights;for(let h=0,d=o.length;h<d;h++)this.skinWeights.push(o[h].clone());let a=e.skinIndices;for(let h=0,d=a.length;h<d;h++)this.skinIndices.push(a[h].clone());let c=e.lineDistances;for(let h=0,d=c.length;h<d;h++)this.lineDistances.push(c[h]);let l=e.boundingBox;l!==null&&(this.boundingBox=l.clone());let u=e.boundingSphere;return u!==null&&(this.boundingSphere=u.clone()),this.elementsNeedUpdate=e.elementsNeedUpdate,this.verticesNeedUpdate=e.verticesNeedUpdate,this.uvsNeedUpdate=e.uvsNeedUpdate,this.normalsNeedUpdate=e.normalsNeedUpdate,this.colorsNeedUpdate=e.colorsNeedUpdate,this.lineDistancesNeedUpdate=e.lineDistancesNeedUpdate,this.groupsNeedUpdate=e.groupsNeedUpdate,this}toBufferGeometry(){let e=new h0().fromGeometry(this),t=new Ie,A=new Float32Array(e.vertices.length*3);if(t.setAttribute("position",new Ge(A,3).copyVector3sArray(e.vertices)),e.normals.length>0){let r=new Float32Array(e.normals.length*3);t.setAttribute("normal",new Ge(r,3).copyVector3sArray(e.normals))}if(e.colors.length>0){let r=new Float32Array(e.colors.length*3);t.setAttribute("color",new Ge(r,3).copyColorsArray(e.colors))}if(e.uvs.length>0){let r=new Float32Array(e.uvs.length*2);t.setAttribute("uv",new Ge(r,2).copyVector2sArray(e.uvs))}if(e.uvs2.length>0){let r=new Float32Array(e.uvs2.length*2);t.setAttribute("uv2",new Ge(r,2).copyVector2sArray(e.uvs2))}t.groups=e.groups;for(let r in e.morphTargets){let i=[],s=e.morphTargets[r];for(let o=0,a=s.length;o<a;o++){let c=s[o],l=new Se(c.data.length*3,3);l.name=c.name,i.push(l.copyVector3sArray(c.data))}t.morphAttributes[r]=i}if(e.skinIndices.length>0){let r=new Se(e.skinIndices.length*4,4);t.setAttribute("skinIndex",r.copyVector4sArray(e.skinIndices))}if(e.skinWeights.length>0){let r=new Se(e.skinWeights.length*4,4);t.setAttribute("skinWeight",r.copyVector4sArray(e.skinWeights))}return e.boundingSphere!==null&&(t.boundingSphere=e.boundingSphere.clone()),e.boundingBox!==null&&(t.boundingBox=e.boundingBox.clone()),t}computeTangents(){console.error("THREE.Geometry: .computeTangents() has been removed.")}computeLineDistances(){console.error("THREE.Geometry: .computeLineDistances() has been removed. Use THREE.Line.computeLineDistances() instead.")}applyMatrix(e){return console.warn("THREE.Geometry: .applyMatrix() has been renamed to .applyMatrix4()."),this.applyMatrix4(e)}dispose(){this.dispatchEvent({type:"dispose"})}static createBufferGeometryFromObject(e){let t=new Ie,A=e.geometry;if(e.isPoints||e.isLine){let r=new Se(A.vertices.length*3,3),i=new Se(A.colors.length*3,3);if(t.setAttribute("position",r.copyVector3sArray(A.vertices)),t.setAttribute("color",i.copyColorsArray(A.colors)),A.lineDistances&&A.lineDistances.length===A.vertices.length){let s=new Se(A.lineDistances.length,1);t.setAttribute("lineDistance",s.copyArray(A.lineDistances))}A.boundingSphere!==null&&(t.boundingSphere=A.boundingSphere.clone()),A.boundingBox!==null&&(t.boundingBox=A.boundingBox.clone())}else e.isMesh&&(t=A.toBufferGeometry());return t}};Ls.prototype.isGeometry=!0;var h0=class{constructor(){this.vertices=[],this.normals=[],this.colors=[],this.uvs=[],this.uvs2=[],this.groups=[],this.morphTargets={},this.skinWeights=[],this.skinIndices=[],this.boundingBox=null,this.boundingSphere=null,this.verticesNeedUpdate=!1,this.normalsNeedUpdate=!1,this.colorsNeedUpdate=!1,this.uvsNeedUpdate=!1,this.groupsNeedUpdate=!1}computeGroups(e){let t=[],A,r,i,s=e.faces;for(r=0;r<s.length;r++){let o=s[r];o.materialIndex!==i&&(i=o.materialIndex,A!==void 0&&(A.count=r*3-A.start,t.push(A)),A={start:r*3,materialIndex:i})}A!==void 0&&(A.count=r*3-A.start,t.push(A)),this.groups=t}fromGeometry(e){let t=e.faces,A=e.vertices,r=e.faceVertexUvs,i=r[0]&&r[0].length>0,s=r[1]&&r[1].length>0,o=e.morphTargets,a=o.length,c;if(a>0){c=[];for(let y=0;y<a;y++)c[y]={name:o[y].name,data:[]};this.morphTargets.position=c}let l=e.morphNormals,u=l.length,h;if(u>0){h=[];for(let y=0;y<u;y++)h[y]={name:l[y].name,data:[]};this.morphTargets.normal=h}let d=e.skinIndices,p=e.skinWeights,f=d.length===A.length,m=p.length===A.length;A.length>0&&t.length===0&&console.error("THREE.DirectGeometry: Faceless geometries are not supported.");for(let y=0;y<t.length;y++){let g=t[y];this.vertices.push(A[g.a],A[g.b],A[g.c]);let b=g.vertexNormals;if(b.length===3)this.normals.push(b[0],b[1],b[2]);else{let w=g.normal;this.normals.push(w,w,w)}let x=g.vertexColors;if(x.length===3)this.colors.push(x[0],x[1],x[2]);else{let w=g.color;this.colors.push(w,w,w)}if(i===!0){let w=r[0][y];w!==void 0?this.uvs.push(w[0],w[1],w[2]):(console.warn("THREE.DirectGeometry.fromGeometry(): Undefined vertexUv ",y),this.uvs.push(new G,new G,new G))}if(s===!0){let w=r[1][y];w!==void 0?this.uvs2.push(w[0],w[1],w[2]):(console.warn("THREE.DirectGeometry.fromGeometry(): Undefined vertexUv2 ",y),this.uvs2.push(new G,new G,new G))}for(let w=0;w<a;w++){let T=o[w].vertices;c[w].data.push(T[g.a],T[g.b],T[g.c])}for(let w=0;w<u;w++){let T=l[w].vertexNormals[y];h[w].data.push(T.a,T.b,T.c)}f&&this.skinIndices.push(d[g.a],d[g.b],d[g.c]),m&&this.skinWeights.push(p[g.a],p[g.b],p[g.c])}return this.computeGroups(e),this.verticesNeedUpdate=e.verticesNeedUpdate,this.normalsNeedUpdate=e.normalsNeedUpdate,this.colorsNeedUpdate=e.colorsNeedUpdate,this.uvsNeedUpdate=e.uvsNeedUpdate,this.groupsNeedUpdate=e.groupsNeedUpdate,e.boundingSphere!==null&&(this.boundingSphere=e.boundingSphere.clone()),e.boundingBox!==null&&(this.boundingBox=e.boundingBox.clone()),this}},ec=class{constructor(e,t,A,r,i,s=0){this.a=e,this.b=t,this.c=A,this.normal=r&&r.isVector3?r:new S,this.vertexNormals=Array.isArray(r)?r:[],this.color=i&&i.isColor?i:new _e,this.vertexColors=Array.isArray(i)?i:[],this.materialIndex=s}clone(){return new this.constructor().copy(this)}copy(e){this.a=e.a,this.b=e.b,this.c=e.c,this.normal.copy(e.normal),this.color.copy(e.color),this.materialIndex=e.materialIndex;for(let t=0,A=e.vertexNormals.length;t<A;t++)this.vertexNormals[t]=e.vertexNormals[t].clone();for(let t=0,A=e.vertexColors.length;t<A;t++)this.vertexColors[t]=e.vertexColors[t].clone();return this}};var L4=["a","b","c"];function _4(n,e){switch(e){case"c":return n.c;case"b":return n.b;case"a":default:return n.a}}function d0(n,e,t){let A=Math.min(n,e),r=Math.max(n,e),i=A+"_"+r;return t.get(i)}function f0(n,e,t,A,r,i){let s=Math.min(n,e),o=Math.max(n,e),a=s+"_"+o,c;if(A.has(a))c=A.get(a);else{let l=t[s],u=t[o];c={a:l,b:u,newEdge:null,faces:[]},A.set(a,c)}c.faces.push(r),i[n].edges.push(c),i[e].edges.push(c)}function O4(n,e,t,A){let r,i,s;for(r=0,i=n.length;r<i;r++)t[r]={edges:[]};for(r=0,i=e.length;r<i;r++)s=e[r],f0(s.a,s.b,n,A,s,t),f0(s.b,s.c,n,A,s,t),f0(s.c,s.a,n,A,s,t)}function zp(n,e,t,A,r){n.push(new ec(e,t,A,void 0,void 0,r))}function tc(n,e){return Math.abs(e-n)/2+Math.min(n,e)}function Hp(n,e,t,A){n.push([e.clone(),t.clone(),A.clone()])}var Wp=class{constructor(e=1){this.subdivisions=e}modify(e){e instanceof Ie?e=new Ls().fromBufferGeometry(e):e=e.clone(),e.mergeVertices();let t=this.subdivisions;for(;t-- >0;)this._smooth(e);return e.computeFaceNormals(),e.computeVertexNormals(),e}_smooth(e){let t=new S,A,r,i,s,o,a=e.vertices,c=e.faces,l=e.faceVertexUvs[0],u=l!==void 0&&l.length>0,h=[],d=new Map;O4(a,c,h,d);let p=[],f,m,y,g,b,x,w;for(let Ae of Array.from(d.keys())){for(m=d.get(Ae),y=new S,b=3/8,x=1/8,w=m.faces.length,w!=2&&(b=.5,x=0,w!=1),y.addVectors(m.a,m.b).multiplyScalar(b),t.set(0,0,0),s=0;s<w;s++){for(g=m.faces[s],o=0;o<3&&(f=a[_4(g,L4[o])],!(f!==m.a&&f!==m.b));o++);f&&t.add(f)}t.multiplyScalar(x),y.add(t),m.newEdge=p.length,p.push(y)}let T,M,v,E,C,P,D,_=[];for(r=0,i=a.length;r<i;r++){for(P=a[r],C=h[r].edges,A=C.length,A==3?T=3/16:A>3&&(T=3/(8*A)),M=1-A*Number(T),v=T,A<=2&&(A==2?(M=3/4,v=1/8):A==1||A==0),D=P.clone().multiplyScalar(M),t.set(0,0,0),s=0;s<A;s++)E=C[s],f=E.a!==P?E.a:E.b,t.add(f);t.multiplyScalar(Number(v)),D.add(t),_.push(D)}let I=_.concat(p),B=_.length,N,W,X,F=[],k=[],Q,z,U,j,q=new G,V=new G,ue=new G;for(r=0,i=c.length;r<i;r++)g=c[r],N=Number(d0(g.a,g.b,d).newEdge)+B,W=Number(d0(g.b,g.c,d).newEdge)+B,X=Number(d0(g.c,g.a,d).newEdge)+B,zp(F,N,W,X,g.materialIndex),zp(F,g.a,N,X,g.materialIndex),zp(F,g.b,W,N,g.materialIndex),zp(F,g.c,X,W,g.materialIndex),u&&(Q=l[r],z=Q[0],U=Q[1],j=Q[2],q.set(tc(z.x,U.x),tc(z.y,U.y)),V.set(tc(U.x,j.x),tc(U.y,j.y)),ue.set(tc(z.x,j.x),tc(z.y,j.y)),Hp(k,q,V,ue),Hp(k,z,q,ue),Hp(k,U,V,q),Hp(k,j,ue,V));e.vertices=I,e.faces=F,u&&(e.faceVertexUvs[0]=k)}};var TA=new S,lC=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,e){let t=n.geometry??e?.geometry??new Ie().copy(new fn(100,100,100)),A;e===void 0?(t.computeBoundingBox(),t.boundingBox.getSize(TA),A={width:TA.x,height:TA.y,depth:TA.z,subdivisions:0}):A=e.parameters;let r={...A,...n.parameters};return{parameters:{width:Math.abs(r.width),height:Math.abs(r.height),depth:Math.abs(r.depth),subdivisions:Math.abs(r.subdivisions)},geometry:t}}static build(n){let{width:e,height:t,depth:A,subdivisions:r}=n.parameters,i=n.geometry??new Ie().copy(new fn(100,100,100)),s=i.userData.parameters;s===void 0?(i.computeBoundingBox(),i.boundingBox.getSize(TA)):TA.set(s.width,s.height,s.depth),(e!==TA.x||t!==TA.y||A!==TA.z)&&i.scale(TA.x===0?1:e/TA.x,TA.y===0?1:t/TA.y,TA.z===0?1:A/TA.z);let o=i.originalGeometry;return r>0?(o===void 0||s?.subdivisions!==r)&&(o===void 0&&(o=i),i=new Wp(r).modify(o).toBufferGeometry()):(o!==void 0&&(i=o),o=void 0,i.getAttribute("normal")===void 0&&i.computeVertexNormals()),o!==void 0&&Object.assign(i,{originalGeometry:o}),delete n.geometry,Object.assign(i,{userData:{...n,type:"NonParametricGeometry"}})}static loadFromUrl(n,e,t){new _a(t).load(n,r=>{let i=this.normalizeInputs({geometry:r});r.boundingBox.getSize(TA);let s=100/TA.x;Object.assign(i.parameters,{width:100,height:TA.y*s,depth:TA.z*s}),e(this.build(i))})}};var cC=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,e){let t=Object.assign({},e?.parameters??{width:100,depth:0,spikes:5,cornerRadius:0,extrudeBevelSize:0,extrudeBevelSegments:3},n.parameters);return{shape:n.shape&&n.shape instanceof yt?n.shape:new yt,parameters:Object.assign(t,{width:Math.abs(t.width),height:Math.abs(t.height??t.width),depth:Math.abs(t.depth??0)})}}static build(n){let{width:e,height:t,spikes:A,cornerRadius:r,depth:i,extrudeBevelSize:s,extrudeBevelSegments:o}=n.parameters,a=n.shape,c=e*.5,l=t*.5,u=0,h=0,d=2*Math.PI/A;for(let f=0;f<A;f++){let m=d*f,y=u+Math.sin(m)*c,g=h+Math.cos(m)*l;a.addPoint(a.createPoint(y,g))}a.isClosed=!0;for(let f=0,m=a.points.length;f<m;f++)a.points[f].roundness=r;a.roundness=r,a.update();let p=VA.create({shape:a,parameters:{roundness:r,depth:i,extrudeBevelSize:s,extrudeBevelSegments:o}});return Object.assign(p,{userData:{...n,type:"PolygonGeometry"}})}};var uC=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,e){let t=Object.assign({},e?.parameters??{width:100,radialSegments:4,heightSegments:1,cornerRadius:0,cornerSegments:8,openEnded:!1},n.parameters);return{parameters:Object.assign(t,{width:Math.abs(t.width),height:Math.abs(t.height??t.width),depth:Math.abs(t.depth??t.width)})}}static build(n){let{width:e,height:t,depth:A,radialSegments:r,heightSegments:i,openEnded:s,cornerRadius:o,cornerSegments:a}=n.parameters,c=new m0(e*.5,t,r,i,s,o,a);return c.scale(1,1,A/e),Object.assign(c,{userData:{...n,type:"PyramidGeometry"}})}};function oh(n,e,t){t.x=n.x*e.x,t.y=n.y,t.z=n.x*e.y}function p0(n,e,t,A,r,i){let s=e.clone().sub(n),o=t.clone().sub(n),a=s.angleTo(o);if(s.normalize(),o.normalize(),A===r){let c=s.add(o).normalize();i.copy(n).addScaledVector(c,A/Math.sin(a/2))}else{let c=s.angleTo(o);i.copy(n),i.addScaledVector(s,r/Math.sin(c)),i.addScaledVector(o,A/Math.sin(c))}}function R4(n,e,t){let A=n.clone().sub(e),r=t.clone().sub(e);return A.projectOnVector(r),A.add(e)}var m0=class extends Ie{constructor(e=.5,t=1,A=4,r=1,i=!1,s=0,o=4){super(),A=Math.floor(Math.max(3,A)),r=Math.floor(r),o=Math.floor(o);let a=[],c=[],l=[],u=[],h=0,d=t/2,p=Math.PI/A,f=e*Math.cos(Math.PI/A),m=2*Math.PI/A,y=(A-2)*Math.PI/A,g=Math.PI-y,b=new S(0,-d,0),x=new S(0,d,0),w=new G(e,-d),T=new G(f,-d),M=new G(0,x.y).sub(T),v=new G(0,x.y).sub(w),E=new G(M.y,-M.x).normalize(),C=new G(v.y,-v.x).normalize(),D=e*Math.cos(Math.PI/A)*Math.tan((Math.PI-M.angle())/2)-1e-8;s=Math.min(s,D);let _;{let k=new S(E.x,E.y,0),Q=new S(Math.cos(m)*k.x,k.y,Math.sin(m)*k.x);_=k.angleTo(Q)}let I=s/Math.tan((Math.PI-M.angle())/2),B=s/Math.tan((Math.PI-_)/2),N=new S;if(!i){c.push(b.x,b.y,b.z),l.push(0,-1,0),u.push(0,0);let k=h++,Q=[],z=w.clone(),U=I/Math.cos(Math.PI/A);z.x-=U;for(let j=0;j<A;j++){let q=j/A*Math.PI*2+p,V=new G(Math.sin(q),Math.cos(q));oh(z,V,N),c.push(N.x,N.y,N.z),l.push(0,-1,0),u.push(0,0),Q.push(h++)}for(let j=0;j<Q.length;j++)a.push(Q[j],k,Q[(j+1)%Q.length])}let W=[];{let k=new S,Q=new S,z=new S,U=new S,j=new S,q=new S;for(let V=0;V<A;V++){let ue=V/A*Math.PI*2+p,Ae=(V+.5)/A*Math.PI*2+p,K=(V+1)/A*Math.PI*2+p,Y=new G(Math.sin(ue),Math.cos(ue)),ne=new G(Math.sin(Ae),Math.cos(Ae)),le=new G(Math.sin(K),Math.cos(K));oh(w,Y,Q),oh(w,le,z),oh(E,ne,k),p0(x,Q,z,B,B,U),c.push(U.x,U.y,U.z),p0(Q,x,z,B,I,j),c.push(j.x,j.y,j.z),p0(z,Q,x,I,B,q),c.push(q.x,q.y,q.z),l.push(k.x,k.y,k.z),l.push(k.x,k.y,k.z),l.push(k.x,k.y,k.z),u.push(0,0),u.push(0,0),u.push(0,0);let se=h++,Me=h++,me=h++;if(a.push(se,Me,me),s>0){{let de=Q.clone().add(z).multiplyScalar(.5),De=x.clone().sub(de).normalize(),Ze=b.clone().sub(de).normalize().add(De).normalize().multiplyScalar(-1),R=q.clone().sub(j);X(de,R,Ze,M.angle())}let ge,ye;{let de=new S;oh(C,le,de);let De=q.clone().add(U).multiplyScalar(.5);De=R4(De,z,x);let Be=q.clone().sub(U);[ge,ye]=X(De,Be,de,_,U.y)}{let de=ge,De=de.clone().setY(0).normalize(),Be=new S(0,-1,0),Ze=De.clone().cross(Be);F(de,De,Be,Ze)}W.concat(ye);{let de=M.angle(),De=Math.PI-de,Be=x.clone();Be.y-=s/Math.sin(de-Math.PI/2);let Ze=new S,R=[];for(let J=0;J<o;J++){let ae=[],fe=Math.PI/2-De*J/o,Ce=Math.cos(fe),Fe=Math.sin(fe),re=Ae;for(let Ne=0;Ne<=J;Ne++){let Oe=Math.cos(re),ve=Math.sin(re);k.x=Ce*ve,k.y=Fe,k.z=Ce*Oe,Ze.copy(Be).addScaledVector(k,s),c.push(Ze.x,Ze.y,Ze.z),l.push(k.x,k.y,k.z),u.push(0,0),ae.push(h++),re+=Math.PI*2/J/A}R.push(ae)}ye.reverse(),R.push(ye);let L=R.length-1;for(let J=0;J<L;J++){let ae=R[J],fe=R[J+1],Ce=ae.length-1;a.push(fe[1],ae[0],fe[0]);for(let Fe=1;Fe<=Ce;Fe++)a.push(ae[Fe],ae[Fe-1],fe[Fe]),a.push(fe[Fe+1],ae[Fe],fe[Fe])}}}}}this.setIndex(a),this.setAttribute("position",new Se(c,3)),this.setAttribute("normal",new Se(l,3)),this.setAttribute("uv",new Se(u,2));function X(k,Q,z,U,j){let q=-U/2,V=(Math.PI-U)/2,ue=Q.clone().normalize().cross(z);k.addScaledVector(z,-s/Math.sin(V));let Ae=new S,K=new S,Y=1,ne=h,le=[];for(let se=0;se<=o;se++){let Me=q+se/o*U;K.set(0,0,0),K.addScaledVector(ue,Math.sin(Me)),K.addScaledVector(z,Math.cos(Me));for(let me=0;me<=Y;me++){let ge=me/Y-.5;if(Ae.copy(k),Ae.addScaledVector(Q,ge),Ae.addScaledVector(K,s),j!=null){let ye=Math.max(0,Ae.y-j);Ae.addScaledVector(Q,-ye/Q.y)}c.push(Ae.x,Ae.y,Ae.z),l.push(K.x,K.y,K.z),u.push(0,0),me===0&&le.push(h),h++}}for(let se=0;se<o;se++)for(let Me=0;Me<Y;Me++){let me=ne+Me+(Y+1)*se,ge=me+(Y+1),ye=ge+1,de=me+1;a.push(me,ge,de),a.push(ge,ye,de)}return[k.clone().addScaledVector(Q,.5),le]}function F(k,Q,z,U){let j=Math.PI/2,q=v.angle()-j,V=[],ue=new S,Ae=new S;for(let Y=0;Y<=o;Y++){let ne=[],le=Y/o;for(let se=0;se<=Y;se++){let me=((Y?se/Y:0)-.5)*g,ge=Math.cos(me),ye=Math.sin(me),de=Math.atan(Math.tan(q)*ge),De=(j+de)*le,Be=Math.cos(De),Ze=Math.sin(De);ue.set(0,0,0),ue.addScaledVector(Q,Ze*ge),ue.addScaledVector(z,Be),ue.addScaledVector(U,Ze*ye),Ae.copy(k).addScaledVector(ue,s),c.push(Ae.x,Ae.y,Ae.z),l.push(ue.x,ue.y,ue.z),u.push(0,0),ne.push(h++)}V.push(ne)}let K=V.length-1;for(let Y=0;Y<K;Y++){let ne=V[Y],le=V[Y+1],se=ne.length-1;a.push(ne[0],le[1],le[0]);for(let Me=1;Me<=se;Me++)a.push(ne[Me-1],ne[Me],le[Me]),a.push(ne[Me],le[Me+1],le[Me])}}}};var hC=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,e){let t=Object.assign({},e?.parameters??{width:100,depth:0,cornerRadius:[0,0,0,0],cornerType:1,extrudeBevelSize:0,extrudeBevelSegments:1},n.parameters),A=Object.assign(e?.ui??{enabledIndieCorners:!1},n.ui);return{shape:n.shape&&n.shape instanceof yt?n.shape:new yt,parameters:Object.assign(t,{width:Math.abs(t.width),height:Math.abs(t.height??t.width),depth:Math.abs(t.depth??0)}),ui:A}}static build(n){let e=n.shape,{width:t,height:A,cornerRadius:r,cornerType:i,depth:s,extrudeBevelSize:o,extrudeBevelSegments:a}=n.parameters,c={x:t*.5,y:A*.5},l={x:-c.x,y:-c.y},u={x:c.x,y:c.y};function h(x,w,T){return w>t&&T>A?Math.min(x*t/w,x*A/T):w>t?x*t/w:T>A?x*A/T:x}let d=[];d[0]=r[0]===0?0:h(r[0],r[0]+r[3],r[0]+r[1]),d[1]=r[1]===0?0:h(r[1],r[1]+r[2],r[1]+r[0]),d[2]=r[2]===0?0:h(r[2],r[2]+r[1],r[2]+r[3]),d[3]=r[3]===0?0:h(r[3],r[3]+r[0],r[3]+r[2]);let p=l.x,f=u.x,m=u.y,y=l.y;e.addPoint(e.createPoint(p,m)),e.addPoint(e.createPoint(f,m)),e.addPoint(e.createPoint(f,y)),e.addPoint(e.createPoint(p,y)),e.isClosed=!0;let g=!0;for(let x=0,w=e.points.length;x<w;x++)e.points[x].roundness=d[x],x>0&&d[x]!==d[x-1]&&(g=!1);g&&(e.roundness=d[0]),e.useCubicForRoundedCorners=i!==1,e.update();let b=VA.create({shape:e,parameters:{depth:s,extrudeBevelSize:o,extrudeBevelSegments:a}});return Object.assign(b,{userData:{...n,type:"RectangleGeometry"}})}};var dC=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,e){let t=Object.assign({},e?.parameters??{width:100,widthSegments:64,heightSegments:64,phiStart:0,phiLength:2*Math.PI,thetaStart:0,thetaLength:Math.PI},n.parameters);return{parameters:Object.assign(t,{width:Math.abs(t.width),height:Math.abs(t.height??t.width),depth:Math.abs(t.depth??t.width)})}}static build(n){let{width:e=100,height:t=e,depth:A=e,widthSegments:r=64,heightSegments:i=64,phiStart:s,phiLength:o,thetaStart:a,thetaLength:c}=n.parameters,l=new co(.5*e,r,i,s,o,a,c);return l.scale(1,t/e,A/e),Object.assign(l,{userData:{...n,type:"SphereGeometry"}})}};var fC=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,e){let t=Object.assign({},e?.parameters??{width:100,depth:0,widthSegments:8,heightSegments:8},n.parameters);return{parameters:Object.assign(t,{width:Math.abs(t.width),height:Math.abs(t.height??t.width),depth:0})}}static build(n){let{width:e=100,height:t=e,widthSegments:A=8,heightSegments:r=8}=n.parameters,i=new Ti(e,t,A,r);return i.scale(1,1,1),Object.assign(i,{userData:{...n,type:"PlaneGeometry"}})}};var pC=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,e){let t=Object.assign({},e?.parameters??{width:100,angle:90,cornerRadius:24,cornerSegments:8},n.parameters);return{parameters:Object.assign(t,{width:Math.abs(t.width),height:Math.abs(t.height??t.width),depth:Math.abs(t.depth??t.width)})}}static build(n){let{width:e,height:t,depth:A,angle:r,cornerRadius:i,cornerSegments:s}=n.parameters,o=new g0(e,t,A,r,i,s);return Object.assign(o,{userData:{...n,type:"BackdropGeometry"}})}},g0=class extends Ie{constructor(e=1,t=1,A=1,r=90,i=10,s=24){super(),this.type="BackdropGeometry";let o=[],a=[],c=[],l=.001;i==0&&(s=1),s=Math.max(1,Math.floor(s)),i=Math.min(i,100),r=Math.min(180-l,r),r*=Math.PI/180;let u=[],h=Math.PI/2,d=(Ae=0,K=0,Y=0)=>new S(Ae,K,Y),p=d(),f=d(),[m,y,g]=[t/2,e/2,A/2],b=-y,x=+y,[w,T,M]=[d(b,-m,+g),d(b,-m,-g),d(b,+m,-g)],v=(Ae,K=!1)=>Math.sin(Ae-Math.PI/(1+ +K)),E=(Ae,K=!1)=>Math.cos(Ae-Math.PI/(1+ +K));M.y=Math.sin(r)*t-m;let C=Math.cos(r)*t-g,P=w.z-l;r<=h?(M.z=Math.min(C,P),M.z==P&&(M.y-=(C-P)/Math.tan(h-r))):T.z=Math.min(T.z-C-g,w.z-l),p.subVectors(w,T),f.subVectors(M,T);let D=Math.min(p.length(),f.length())*i/100,_=D*Math.tan(r/2),I=D/Math.cos(r/2),B=p.clone().normalize().add(f.normalize()).setLength(I).add(T);p.set(0,v(r,!0),E(r,!0)),u.push([M,p.clone()]);let N=(Math.PI-r)/s;for(let Ae=0;Ae<=s;Ae++){let K=h+r+Ae*N;p.set(0,Math.sin(K)*_,Math.cos(K)*_),p.add(B),f.set(0,v(K),E(K)),u.push([p.clone(),f.clone()])}u.push([w,d(0,1,0)]);let W=Math.sin(N/2)*_*2,X=u.length-1,F=u[0][0].distanceTo(u[1][0]),k=u[X-1][0].distanceTo(u[X][0]),Q=F+W*s+k;u[0].push(1);for(let Ae=0;Ae<=s;Ae++)u[Ae+1].push(1-(F+Ae*W)/Q);u[X].push(0);let[z,U,j]=u[0],q,V,ue;for(let Ae=1;Ae<u.length;Ae++)[q,V,ue]=u[Ae],o.push(b,z.y,z.z,b,q.y,q.z,x,z.y,z.z,x,z.y,z.z,b,q.y,q.z,x,q.y,q.z),a.push(0,U.y,U.z,0,V.y,V.z,0,U.y,U.z,0,U.y,U.z,0,V.y,V.z,0,V.y,V.z),c.push(0,j,0,ue,1,j,1,j,0,ue,1,ue),[z,U,j]=[q,V,ue];this.setAttribute("position",new Se(o,3)),this.setAttribute("normal",new Se(a,3)),this.setAttribute("uv",new Se(c,2))}};var mC=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,e){let t=Object.assign({},e?.parameters??{width:100,depth:0,innerRadiusPercent:38.19,spikes:5,cornerRadius:0,angle:360,extrudeBevelSize:0,extrudeBevelSegments:1},n.parameters);return{shape:n.shape&&n.shape instanceof yt?n.shape:new yt,parameters:Object.assign(t,{width:Math.abs(t.width),height:Math.abs(t.height??t.width),depth:Math.abs(t.depth??0)})}}static build(n){let{width:e,height:t,innerRadiusPercent:A,spikes:r,cornerRadius:i,angle:s,depth:o,extrudeBevelSize:a,extrudeBevelSegments:c}=n.parameters,l=n.shape,u=e*.5,h=t*.5,d=0,p=0,f=s*Math.PI/360/r,m=Math.PI/2*3*-1,y=u*A/100,g=h*A/100;if(r===3&&A===50){f=2*Math.PI/r;for(let x=0;x<r;x++){let w=f*x,T=d+Math.sin(w)*u,M=p+Math.cos(w)*h;l.addPoint(l.createPoint(T,M))}}else for(let x=0;x<r;x++){let w=d+Math.cos(m)*u,T=p+Math.sin(m)*h;l.addPoint(l.createPoint(w,T)),m+=f,w=d+Math.cos(m)*y,T=p+Math.sin(m)*g,x<=r,l.addPoint(l.createPoint(w,T)),m+=f}l.isClosed=!0;for(let x=0,w=l.points.length;x<w;x++)l.points[x].roundness=i;l.roundness=i,l.update();let b=VA.create({shape:l,parameters:{roundness:i,depth:o,extrudeBevelSize:a,extrudeBevelSegments:c}});return Object.assign(b,{userData:{...n,type:"StarGeometry"}})}};var gC=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,e){let t=Object.assign({},e?.parameters??{width:100,depth:0},n.parameters);return{parameters:Object.assign(t,{width:Math.abs(t.width),height:Math.abs(t.height??t.width),depth:Math.abs(t.depth??0)})}}static build(n){let{width:e,height:t}=n.parameters,A=new Ti(e,t);return Object.assign(A,{userData:{...n,type:"TextFrameGeometry"}})}};var yC=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,e){let t=Object.assign({},e?.parameters??{width:100,radialSegments:32,tubularSegments:64,arc:Math.PI*2,cornerRadius:30,cornerSegments:8},n.parameters),A=Math.abs(t.width),r=Math.abs(t.height??t.width),i=Math.round(Math.abs(t.depth??t.width*.25));return{parameters:Object.assign(t,{width:A,height:r,depth:i})}}static build(n){let{width:e,height:t,depth:A,radialSegments:r,tubularSegments:i,arc:s,cornerRadius:o,cornerSegments:a}=n.parameters,c=B4(e,t,A,e*.5,s,i,0,0,r,o,a);return c.scale(1,t/e,1),Object.assign(c,{userData:{...n,type:"TorusGeometry"}})}};function B4(n,e,t,A,r,i,s,o,a,c,l){return[e,t]=[t,e],s=e/2,r/=2*Math.PI,r==1&&(c=0),new ih(!0,n,e,t,A,r,i,s,o,a,c,l)}var vC=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,e){let t=Object.assign({},e?.parameters??{width:100,tubularSegments:64,radialSegments:32,p:2,q:3},n.parameters);return{parameters:Object.assign(t,{width:Math.abs(t.width),height:Math.abs(t.height??t.width),depth:Math.abs(t.depth??t.width),tube:t.tube??t.width*.125})}}static build(n){let{width:e,tube:t,tubularSegments:A,radialSegments:r,p:i,q:s}=n.parameters,o=e*.5;o!==t&&(o-=t);let a=new Ca(o,t,A,r,i,s);return Object.assign(a,{userData:{...n,type:"TorusKnotGeometry"}})}};var xC=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,e){let t=Object.assign({},e?.parameters??{width:100,depth:0,spikes:5,cornerRadius:0,extrudeBevelSize:0,extrudeBevelSegments:1,isRect:!1},n.parameters);return{shape:n.shape&&n.shape instanceof yt?n.shape:new yt,parameters:Object.assign(t,{width:Math.abs(t.width),height:Math.abs(t.height??t.width*(t.isRect?1:Math.sqrt(3)/2)),depth:Math.abs(t.depth??0)})}}static build(n){let{width:e=100,height:t,cornerRadius:A,depth:r,extrudeBevelSize:i,extrudeBevelSegments:s,isRect:o}=n.parameters,a=n.shape,c=e*.5,l=t*.5;o?(a.addPoint(a.createPoint(-c,l)),a.addPoint(a.createPoint(c,-l)),a.addPoint(a.createPoint(-c,-l))):(a.addPoint(a.createPoint(0,l)),a.addPoint(a.createPoint(c,-l)),a.addPoint(a.createPoint(-c,-l))),a.isClosed=!0;for(let h=0,d=a.points.length;h<d;h++)a.points[h].roundness=A;a.roundness=A,a.update();let u=VA.create({shape:a,parameters:{roundness:A,depth:r,extrudeBevelSize:i,extrudeBevelSegments:s}});return Object.assign(u,{userData:{...n,type:"TriangleGeometry"}})}};function bC(){let n=new Ie;return n.setAttribute("position",new Ge(new Float32Array([]),3)),n.setIndex(new Ge(new Uint16Array([]),1)),n}var N4=12;var Ac=class extends Ie{constructor(t,A){super();this.charWidths=[];this.charCoords=[];this.wrappedText=[];this.vectorShapes=[];let r=bC();Object.entries(r.attributes).forEach(([i,s])=>{this.setAttribute(i,s)}),this.setIndex(r.index),this.updateFont(t.font,A),this.update(t)}async updateFont(t,A){let r=A.getFont(t);r&&(this.font=r,await r.loadingPromise)}async update(t){let A=this.font;if(this.userData={parameters:t,type:"TextGeometry"},!A||!A.isLoaded){console.warn("Cannot update text because its font is not loaded");return}let{width:r,height:i,depth:s,extrudeBevelSize:o,extrudeBevelSegments:a,text:c,textTransform:l,subdivisions:u}=t;await A.loadingPromise;let h=l===2?c.toUpperCase():l===3?c.toLowerCase():c,d=F4(t,A,h),{shapes:p,charWidths:f,charCoords:m}=await A.generateShapes(d,t),y=r*.5,g=i*.5,b=p.map(T=>new yt().fromShape(T));this.vectorShapes=b;let x=b.map(T=>VA.create({shape:T,parameters:{depth:s,extrudeBevelSegments:a,extrudeBevelSize:o,windingRule:s<=0?_t.NONZERO:_t.ODD,subdivisions:u??N4}})),w=x.length?Bi(x):bC();w.translate(-y,g,0),this.dispose(),this.wrappedText=d,this.charCoords=m,this.charWidths=f,this.deleteAttribute("extrudeNormal"),Object.entries(w.attributes).forEach(([T,M])=>{this.setAttribute(T,M)}),this.setIndex(w.index),this.computeBoundingSphere()}clone(){let t=Ss(new Ie,Ac.prototype);return t.copy(this),t}copy(t){return Object.entries(t.attributes).forEach(([A,r])=>{this.setAttribute(A,r)}),this.setIndex(t.index),this.userData={parameters:{...t.userData.parameters},type:"TextGeometry"},this}async setText(t){this.font&&await this.font.loadingPromise,await this.update({...this.userData.parameters,text:t})}get text(){return this.userData.parameters.text??""}};function F4(n,e,t){t=t??n.text;let A=[""],r="";for(let i of t)r+=i,i===" "||i===`
3138
3138
  `?(A[A.length-1]+=r,r="",i===`
3139
- `&&A.push("")):e.getTextWidth(A[A.length-1]+r,n)>n.width&&(A[A.length-1].length&&A.push(""),e.getTextWidth(A[A.length-1]+r,n)>n.width&&(r.length===1?(A[A.length-1]+=r,r=""):(A[A.length-1]+=r.slice(0,-1),r=r[r.length-1],A.push(""))));return A[A.length-1]+=r,A}function jp(n,e){return G4(n)}function G4(n){let e={parameters:n,type:n.type};if(n.type==="VectorGeometry"){let A=yt.createFromState(n.shape,n.width,n.height);e.shape=A}else n.type==="NonParametricGeometry"&&(n.data.groups&&n.data.groups.forEach(A=>A.materialIndex=Math.max(A.materialIndex??0,0)),e.geometry=new _a().parse(n));let t;try{t=ah(e)}catch(A){console.error(A)}if(!t){let A=yt.createFromState(bl.defaultData(),100,100);e.shape=A,t=ah(e)}return t}var Ye;Vl.then(n=>{Ye=n});var wC=new Float32Array([10,10,0,-10,10,0,-10,-10,0,10,-10,0]),SC=new Uint32Array([0,1,2,3]),TC=new Uint8Array([4]),ir=class{static build(n,e,t,A,r){let i,s,o,a=n?.phongAngle??e?.phongAngle??35;if(A===!1&&(a=-1),n.positionWASM!==void 0){t&&t!==0&&(Ye.free_bvh(t),Ye.free_subdivision_surface(t));try{i=ir.allocate(n,r)}catch(c){console.error(c,n),i=ir.allocate({positionWASM:wC,indexWASM:SC,verticesPerFaceWASM:TC},r)}Ye.set_destination_refinement_level(i,0),s=ir.buildLevel(i,!0,a)}else i=t,n.phongAngle!==void 0&&(s=ir.buildLevel(i,!0,a));return n.subdivisions!==void 0&&(Ye.set_destination_refinement_level(i,n.subdivisions),n.subdivisions>0?o=ir.buildLevel(i,!1,a):o=null),{subdivPointer:i,originalGeometry:s,subdividedGeometry:o}}static primitiveToQuads(n,e){n.widthSegments>16&&(n.widthSegments=16),n.heightSegments>16&&(n.heightSegments=16),n.depthSegments>16&&(n.depthSegments=16),n.radialSegments>16&&(n.radialSegments=16),n.type==="DodecahedronGeometry"&&(n.detail=0);let t=n.shape!==void 0?e.geometry:jp(n),A,r,i,s;({positions:A,triIndices:s}=lh(t.getAttribute("position"),t.getIndex()));let o;if(n.type==="CylinderGeometry"&&n.cornerRadius===0&&n.hollow===0&&n.openEnded===!1){let a=n.radialSegments*n.heightSegments*3*2,c=a+n.radialSegments*3;o=[a,c]}return{indices:r,verticesPerFace:i}=b0(A,s,t,o),{positions:A,indices:r,verticesPerFace:i}}static allocate(n,e){let t,A,r,i=[],s=[];n.positionWASM&&n.positionWASM.length>0?(t=n.positionWASM,A=n.indexWASM,r=n.verticesPerFaceWASM):(t=wC,A=SC,r=TC);let o=t.length,a=A.length,c=r.length,l=t.length+i.length+s.length,u=A.length+r.length,h=l*Float32Array.BYTES_PER_ELEMENT+u*Uint32Array.BYTES_PER_ELEMENT,d=l*Float32Array.BYTES_PER_ELEMENT,p=u*Uint32Array.BYTES_PER_ELEMENT,f=Ye._malloc(h),m=new Float32Array(Ye.HEAPF32.buffer,f,l),y=new Uint32Array(Ye.HEAPU32.buffer,f+d,u);m.set(t,0),m.set(i,t.length),m.set(s,t.length+i.length),y.set(A,0),y.set(r,A.length);let g;n?.scaleBaked?.some(x=>x!==1)&&(g=new he().makeScale(...n.scaleBaked)),e&&(g?g.premultiply(e):g=e);let b=g?Ye.alloc_subdivision_surface2(f,o,f+d,a,f+d+A.length*Uint32Array.BYTES_PER_ELEMENT,c,g.elements):Ye.alloc_subdivision_surface(f,o,f+d,a,f+d+A.length*Uint32Array.BYTES_PER_ELEMENT,c);return Ye._free(f),b}static buildLevel(n,e,t,A,r){let i=r?Ye.get_mesh_data2(n,e?Ye.Level.CONTROL:Ye.Level.REFINED,t,r.elements):Ye.get_mesh_data(n,e?Ye.Level.CONTROL:Ye.Level.REFINED,t),s=8,o=Ye.HEAPU32.subarray(i>>2,(i>>2)+s),a=o.subarray(4,4+4),c=0,l=Ye.HEAPU32[o[c]>>2],u=Ye.HEAPF32.subarray(l>>2,(l>>2)+a[c]);c++;let h=Ye.HEAPU32[o[c]>>2],d=Ye.HEAPF32.subarray(h>>2,(h>>2)+a[c]);c++;let p=Ye.HEAPU32[o[c]>>2],f=Ye.HEAPU32.subarray(p>>2,(p>>2)+a[c]);c++;let m=Ye.HEAPU32[o[c]>>2],y=Ye.HEAPU32.subarray(m>>2,(m>>2)+a[c]);if(c++,A===void 0){let g=new Ie;if(g.setIndex(new As(y,1)),g.setAttribute("position",new Se(u,3)),g.setAttribute("normal",new Se(d,3)),e){g.setAttribute("faceMap",new As(f,1));let b=new Float32Array(d.length/3*4).fill(0);g.setAttribute("color",new Ge(b,4))}return Ye.free_mesh_data(i),g.userData.type="SubdivGeometry",g}A.getAttribute("position").copyArray(u),A.getAttribute("normal").copyArray(d),A.attributes.position.needsUpdate=!0,A.attributes.normal.needsUpdate=!0,Ye.free_mesh_data(i)}static buildControlCageWireframe(n,e,t){let A=Ye.get_wireframe_data_for_base_level(n),r=4,i=Ye.HEAPU32.subarray(A>>2,(A>>2)+r),s=i.subarray(2,2+2),o=0,a=Ye.HEAPU32[i[o]>>2],c=Ye.HEAPF32.subarray(a>>2,(a>>2)+s[o]);o++;let l=Ye.HEAPU32[i[o]>>2],u=Ye.HEAPU32.subarray(l>>2,(l>>2)+s[o]);if(e===void 0){let h=new Ie;h.setAttribute("position",new Se(c,3));let d=new Float32Array(c.length);for(let p=0,f=c.length;p<f;)d[p++]=t.r,d[p++]=t.g,d[p++]=t.b;return h.setAttribute("color",new Ge(d,3)),h.setIndex(new As(u,1)),Ye.free_wireframe_data_for_base_level(A),h}e.getAttribute("position").copyArray(c),e.attributes.position.needsUpdate=!0,Ye.free_wireframe_data_for_base_level(A)}static updateCollabMesh(n,e,t){let A=e===0;A||Ye.set_destination_refinement_level(n,e);let r=t?Ye.get_topological_data2(n,A?Ye.Level.CONTROL:Ye.Level.REFINED,t.elements):Ye.get_topological_data(n,A?Ye.Level.CONTROL:Ye.Level.REFINED),i=6,s=Ye.HEAPU32.subarray(r>>2,(r>>2)+i),o=s.subarray(3,3+3),a=0,c=Ye.HEAPU32[s[a]>>2],l=new Float32Array(Ye.HEAPF32.subarray(c>>2,(c>>2)+o[a]));a++;let u=Ye.HEAPU32[s[a]>>2],h=new Uint32Array(Ye.HEAPU32.subarray(u>>2,(u>>2)+o[a]));a++;let d=Ye.HEAPU32[s[a]>>2],p=new Uint8Array(Ye.HEAPU32.subarray(d>>2,(d>>2)+o[a]));return Ye.free_topological_data(r),{positions:l,indices:h,verticesPerFace:p}}};var MC=["getX","getY","getZ"];function lh(n,e){let t={},A=e?e.count:n.count,r=0,i=[],s=[],o=1e4;for(let c=0;c<A;c++){let l=e?e.getX(c):c,u="";for(let h=0;h<3;h++)u+=`${~~(n[MC[h]](l)*o)},`;if(u in t)i.push(t[u]);else{for(let h=0;h<3;h++)s.push(n[MC[h]](l));t[u]=r,i.push(r),r++}}let a=[];for(let c=0;c<i.length;c+=3)i[c]===i[c+1]||i[c]===i[c+2]||i[c+1]===i[c+2]||a.push(i[c],i[c+1],i[c+2]);return{positions:s,triIndices:a}}var Yp=new S,y0=new S,v0=new S,x0=new S;function b0(n,e,t,A){let r=[],i=[];if(t.userData.shape!==void 0&&t.userData.parameters.depth===0&&t.userData.shape.shapeHoles.length===0){let s=t.userData.shape.extractShapePointsToFlatArray([]),o=t.userData.parameters.spikes;if(t.userData.type==="EllipseGeometry"&&o<=24&&o%4===0&&t.userData.parameters.angle>=360){let l=s.length/2/o;s=s.filter((u,h)=>Math.floor(h/2)%l===0)}let a=0;for(let l=0;l<s.length;l+=2)a+=(s[l]-s[(l===0?s.length:l)-2])*(s[l+1]+s[(l===0?s.length:l)-1]);n.length=0;let c=0;if(a<0)for(let l=0;l<s.length;l+=2)n.push(s[l],s[l+1],0),r.push(c++);else for(let l=s.length-2;l>=0;l-=2)n.push(s[l],s[l+1],0),r.push(c++);return i.push(c),{indices:r,verticesPerFace:i}}for(let s=0,o=t.capStartIndex??e.length;s<o;)if(e[s+1]===e[s+3]&&e[s+2]===e[s+5]||e[s+0]===e[s+3]&&e[s+2]===e[s+4]){Yp.set(n[e[s]*3],n[e[s]*3+1],n[e[s]*3+2]),y0.set(n[e[s+1]*3],n[e[s+1]*3+1],n[e[s+1]*3+2]),v0.set(n[e[s+4]*3],n[e[s+4]*3+1],n[e[s+4]*3+2]),x0.set(n[e[s+5]*3],n[e[s+5]*3+1],n[e[s+5]*3+2]),y0.sub(Yp).normalize(),v0.sub(Yp).normalize(),x0.sub(Yp).normalize();let a=y0.cross(v0).dot(x0);Math.abs(a)>.005||A&&A.some((c,l)=>l%2===1?!1:s>=A[l]&&s<A[l+1])?(r.push(e[s],e[s+1],e[s+2]),i.push(3),s+=3):(r.push(e[s],e[s+1],e[s+4],e[s+5]),i.push(4),s+=6)}else r.push(e[s],e[s+1],e[s+2]),i.push(3),s+=3;if(t.capStartIndex!==void 0){let s=[],o=[],a=0,c=new Float32Array([t.userData.parameters.depth])[0];for(let l=0,u=0;l<n.length;l+=3,u++)n[l+2]===0&&(s.push(u),a++),n[l+2]===c&&o.push(u);if(t.userData.parameters.extrudeBevelSize===0){let l=o[0];o[0]=o[1],o[1]=l}s.reverse(),r.push(...s,...o),i.push(a,a)}return{indices:r,verticesPerFace:i}}var wr={};ED(wr,{calcBoolean:()=>V4,calcBooleanTopological:()=>U4,freeMeshSet:()=>W4,getMeshSet:()=>z4,transformMeshSet:()=>H4});var CC,PC=new Promise(n=>{CC=n}),EC=!1;async function DC(){if(EC)return;let e=!1?".":"https://unpkg.com/@splinetool/boolean-wasm@0.9.152/build",[t,A]=await Promise.all([import("./boolean.js"),fetch(`${e}/boolean.wasm`).then(s=>s.arrayBuffer())]),r=t.default,i=await r({wasmBinary:A});CC(i),EC=!0}var lt,nc;PC.then(n=>lt=n);function k4(n,e,t){let A,{positions:r,triIndices:i}=lh(n.getAttribute("position"),n.getIndex()),s;if(e&&t){let{indices:o,verticesPerFace:a}=b0(r,i,n);s=a.length,A=[];for(let c=0,l=0;c<s;c++){A.push(a[c]);for(let u=0;u<a[c];u++)A.push(o[l++])}}else{let o=i.length;A=Array(o+o/3),s=0;for(let a=0,c=0;c<A.length;)A[c++]=3,s++,A[c++]=i[a++],A[c++]=i[a++],A[c++]=i[a++]}return{positions:r,faceIndices:A,nFaces:s}}function IC(n){let e=n.length,t=e*Uint32Array.BYTES_PER_ELEMENT,A=e*Float32Array.BYTES_PER_ELEMENT,r=Number.isInteger(n[0])?t:A,i=lt._malloc(r);return(Number.isInteger(n[0])?new Uint32Array(lt.HEAPU32.buffer,i,e):new Float32Array(lt.HEAPF32.buffer,i,e)).set(n,0),i}function LC(n){switch(n){case 0:return lt.OP.UNION;case 1:return lt.OP.INTERSECTION;case 2:return lt.OP.A_MINUS_B;case 3:return lt.OP.B_MINUS_A;case 4:return lt.OP.SYMMETRIC_DIFFERENCE;case 5:return lt.OP.ALL;default:throw new Error("Unknown boolean operation "+n)}}function U4(n,e){nc===void 0&&(nc=lt.init_csg());let t=IC(n),A=lt.csg_calc_topological(nc,t,n.length,LC(e));lt._free(t);let r=6,i=lt.HEAPU32.subarray(A>>2,(A>>2)+r),s=i.subarray(3,3+3),o=0,a=lt.HEAPU32[i[o]>>2],c=new Float32Array(lt.HEAPF32.subarray(a>>2,(a>>2)+s[o]));o++;let l=lt.HEAPU32[i[o]>>2],u=new Uint32Array(lt.HEAPU32.subarray(l>>2,(l>>2)+s[o]));o++;let h=lt.HEAPU32[i[o]>>2],d=new Uint8Array(lt.HEAPU32.subarray(h>>2,(h>>2)+s[o]));return lt.free_mesh_data(A),{positions:c,indices:u,verticesPerFace:d}}function V4(n,e,t,A){nc===void 0&&(nc=lt.init_csg());let r=IC(n),i=lt.csg_calc(nc,r,n.length,A,LC(e));lt._free(r);let s=5,o=lt.HEAPU32.subarray(i>>2,(i>>2)+s),a=o.subarray(2,2+3),c=0,l=lt.HEAPU32[o[c]>>2],u=lt.HEAPF32.subarray(l>>2,(l>>2)+a[c]);c++;let h=lt.HEAPU32[o[c]>>2],d=lt.HEAPF32.subarray(h>>2,(h>>2)+a[c]);c++;let p=a[c];t.setAttribute("position",new Se(u,3)),t.setAttribute("normal",new Se(d,3));let f=lt.HEAPF32.subarray((i>>2)+5,(i>>2)+5+6);return t.boundingSphere===null&&(t.boundingSphere=new DA),t.boundingSphere.center.set(f[0],f[1],f[2]),t.boundingSphere.radius=(f[3]**2+f[4]**2+f[5]**2)**.5,t.userData.parameters={width:f[3]*2,height:f[4]*2,depth:f[5]*2},lt.free_mesh_data(i),p}function z4(n,e,t){if(lt===void 0)return-1;let A,r,i;if(e&&n.userData.positions!==void 0){let m=n.userData;i=m.verticesPerFace.length,A=m.positions,r=Array(m.verticesPerFace.reduce((y,g)=>y+g,0)+i);for(let y=0,g=0,b=0;y<m.verticesPerFace.length;y++){r[b++]=m.verticesPerFace[y];for(let x=0;x<m.verticesPerFace[y];x++)r[b++]=m.indices[g++]}}else({positions:A,faceIndices:r,nFaces:i}=k4(n,e,t));let s=A.length,o=r.length,a=A.length,c=r.length,l=a*Float32Array.BYTES_PER_ELEMENT+c*Uint32Array.BYTES_PER_ELEMENT,u=a*Float32Array.BYTES_PER_ELEMENT,h=c*Uint32Array.BYTES_PER_ELEMENT,d=lt._malloc(l),p=new Float32Array(lt.HEAPF32.buffer,d,a),f=new Uint32Array(lt.HEAPU32.buffer,d+u,c);return p.set(A,0),f.set(r,0),lt.get_csg_mesh(d,s,d+u,o,i)}function H4(n,e){lt.transform_csg_mesh(n,e.elements)}function W4(n){lt.free_csg_mesh(n)}var w0={ConeGeometry:QE,CubeGeometry:ZE,CylinderGeometry:XE,DodecahedronGeometry:KE,EllipseGeometry:AC,HelixGeometry:sC,IcosahedronGeometry:oC,LatheGeometry:aC,NonParametricGeometry:lC,PolygonGeometry:cC,PyramidGeometry:uC,RectangleGeometry:hC,SphereGeometry:dC,PlaneGeometry:fC,BackdropGeometry:pC,StarGeometry:mC,TextFrameGeometry:gC,TorusGeometry:yC,TorusKnotGeometry:vC,TriangleGeometry:xC,VectorGeometry:VA},ah=n=>w0[n.type].create(n);var ch=class{constructor(e){e=e??{},this.name=e.name,this.type=e.type,this.node=e.node,this.size=e.size,this.needsUpdate=e.needsUpdate}get value(){return this.node.value}set value(e){this.node.value=e}};var BA=class{constructor(e){this.hashProperties=void 0;this.isNode=!0;this.shortcuts={};this.uuid=ze.generateUUID(),this.type=e,this.name=""}analyze(e,t){t=t??{},e.analyzing=!0,this.build(e.addFlow(t.slot,t.cache,t.context),"v4"),e.clearVertexNodeCode(),e.clearFragmentNodeCode(),e.removeFlow(),e.analyzing=!1}analyzeAndFlow(e,t,A){return A=A??{},this.analyze(e,A),this.flow(e,t,A)}flow(e,t,A){A=A??{},e.addFlow(A.slot,A.cache,A.context);let r={result:this.build(e,t),code:e.clearNodeCode(),extra:e.context.extra};return e.removeFlow(),r}build(e,t,A){t=t??this.getType(e,t);let r=e.getNodeData(A??this);return e.analyzing&&this.appendDepsNode(e,r,t),e.nodes.indexOf(this)===-1&&e.nodes.push(this),this.updateFrame!==void 0&&e.updaters.indexOf(this)===-1&&e.updaters.push(this),this.generate(e,t,A)}updateFrame(e){}generateReadonly(e,t,A,r,i,s){return""}generate(e,t,A,r,i){return""}parse(e,t,A,r){}appendDepsNode(e,t,A){t.deps=(t.deps||0)+1;let r=e.getTypeLength(A);(r>(t.outputMax||0)||this.getType(e,A))&&(t.outputMax=r,t.output=A)}setName(e){this.name=e}getName(){return this.name}getType(e,t){return t==="sampler2D"||t==="samplerCube"?t:this.type}getHash(){let e="{",t,A;for(t in this)A=this[t],A instanceof BA&&(e+='"'+t+'":'+A.getHash()+",");if(this.hashProperties)for(let r=0;r<this.hashProperties.length;r++)t=this.hashProperties[r],A=this[t],e+='"'+t+'":"'+String(A)+'",';return e+='"id":"'+this.uuid+'"}',e}};var S0=class{constructor(){this.nodes={};this.keywords={}}add(e){this.nodes[e.name]=e}addKeyword(e,t,A){A=A!==void 0?A:!0,this.keywords[e]={callback:t,cache:A}}remove(e){delete this.nodes[e.name]}removeKeyword(e){delete this.keywords[e]}get(e){return this.nodes[e]}getKeyword(e,t){return this.keywords[e].callback(t)}getKeywordData(e){return this.keywords[e]}contains(e){return this.nodes[e]!==void 0}containsKeyword(e){return this.keywords[e]!==void 0}},MA=new S0;var Ue=class extends BA{constructor(t,A){super(t);this.scope="";A=A??{},this.shared=A.shared!==void 0?A.shared:!0,this.unique=A.unique!==void 0?A.unique:!1}build(t,A,r,i){if(A=A??this.getType(t),this.getShared(t,A)){let s=this.getUnique(t,A);s&&this.uuid===void 0&&(this.uuid=ze.generateUUID()),r=t.getUUID(r??this.getUUID(),!s);let o=t.getNodeData(r),a=o.output||this.getType(t);if(t.analyzing)return(o.deps||0)>0||this.getLabel()?(this.appendDepsNode(t,o,A),this.generate(t,A,r)):super.build(t,A,r);if(s)return o.name=o.name||super.build(t,A,r),o.name;if(!this.getLabel()&&(!this.getShared(t,a)||t.context.ignoreCache||o.deps===1))return super.build(t,A,r);r=this.getUUID(!1);let c=this.getTemp(t,r);if(c)return t.format(c,a,A);{c=super.generate(t,A,r,o.output,i);let l=this.generate(t,a,r);return t.addNodeCode(c+" = "+l+";"),t.format(c,a,A)}}return super.build(t,A,r)}getShared(t,A){return A!=="sampler2D"&&A!=="samplerCube"&&this.shared}getUnique(t,A){return this.unique}setLabel(t){return this.label=t,this}getLabel(){return this.label}getUUID(t){let A=this.uuid;return typeof this.scope=="string"&&(A=this.scope+"-"+A),A}getTemp(t,A){A=A||this.uuid;let r=t.getVars()[A];return r?r.name:void 0}generate(t,A,r,i,s){return this.getShared(t,A)||console.error("TempNode is not shared"),r=r??this.uuid,t.getTempVar(r,i??this.getType(t),s,this.getLabel()).name}};var Rt=class extends Ue{constructor(t,A){A=A??{},A.shared=A.shared!==void 0?A.shared:!1;super(t,A);this.readonly=!1}setReadonly(t){return this.readonly=t,this.hashProperties=this.readonly?["value"]:void 0,this}getReadonly(){return this.readonly}generate(t,A,r,i,s,o){r=t.getUUID(r??this.getUUID()),i=i??this.getType(t);let a=t.getNodeData(r);return this.getReadonly()&&this.generateReadonly!==void 0?this.generateReadonly(t,A,r,i,s,o):t.isShader("vertex")?(a.vertex||(a.vertex=t.createVertexUniform(i,this,s,o,this.getLabel())),t.format(a.vertex.name,i,A)):(a.fragment||(a.fragment=t.createFragmentUniform(i,this,s,o,this.getLabel())),t.format(a.fragment.name,i,A))}};var NA=class extends Rt{constructor(t=0,A){super("v2");this.nodeType="Vector2";this.value=t instanceof G?t:new G(t,A)}get x(){return this.value.x}set x(t){this.value.x=t}get y(){return this.value.y}set y(t){this.value.y=t}generateReadonly(t,A,r,i,s,o){return t.format("vec2("+this.value.x+", "+this.value.y+")",i,A)}};var zA=class extends Rt{constructor(t=0,A,r){super("v3");this.nodeType="Vector3";this.value=t instanceof S?t:new S(t,A,r)}get x(){return this.value.x}set x(t){this.value.x=t}get y(){return this.value.y}set y(t){this.value.y=t}get z(){return this.value.z}set z(t){this.value.z=t}generateReadonly(t,A,r,i,s,o){return t.format("vec3("+this.value.x+", "+this.value.y+", "+this.value.z+")",i,A)}};var AA=class extends _e{constructor(t,A,r,i){super(t,A,r);this.isColorA=!0;this.a=i}setRGBA(t,A,r,i){super.setRGB(t,A,r),this.a=i}copy(t){return super.copy(t),this.a="a"in t?t.a:1,this}clone(){return new this.constructor(this.r,this.g,this.b,this.a)}get x(){return this.r}get y(){return this.g}get z(){return this.b}get w(){return this.a}set x(t){this.r=t}set y(t){this.g=t}set z(t){this.b=t}set w(t){this.a=t}};var sr=class extends Rt{constructor(t){super("v4");this.nodeType="Vector4";this.value=t instanceof AA?t:new AA(t.r,t.g,t.b,t.a)}generateReadonly(t,A,r,i,s,o){return t.format("vec4("+this.value.r+", "+this.value.g+", "+this.value.b+", "+this.value.a+")",i,A)}};var j4=/^\s*([a-z_0-9]+)\s([a-z_0-9]+)\s*\((.*?)\)/i,_C=/[a-z_0-9]+/gi,Ee=class extends Ue{constructor(t,A,r,i,s){super(s);this.src="";this.nodeType="Function";this.useKeywords=!0;this.includes=[];this.extensions={};this.keywords={};this.isMethod=s===void 0,this.isInterface=!1,this.parse(t,A,r,i)}getShared(t,A){return!this.isMethod}getType(t){return t.getTypeByFormat(this.type)}getInputByName(t){if(this.inputs){let A=this.inputs.length;for(;A--;)if(this.inputs[A].name===t)return this.inputs[A]}}getIncludeByName(t){if(this.includes){let A=this.includes.length;for(;A--;)if(this.includes[A].name===t)return this.includes[A]}}generate(t,A,r,i,s){let o,a=0,c=this.src;if(this.includes)for(let u=0;u<this.includes.length;u++)t.include(this.includes[u],this);for(let u in this.extensions)t.extensions[u]=!0;let l=[];for(;o=_C.exec(this.src);)l.push(o);for(let u=0;u<l.length;u++){let h=l[u],d=h[0],p=this.isMethod?!this.getInputByName(d):!0,f=d;if(this.keywords[d]||this.useKeywords&&p&&MA.containsKeyword(d)){let m=this.keywords[d];if(!m){let y=MA.getKeywordData(d);y.cache&&(m=t.keywords[d]),m=m||MA.getKeyword(d,t),y.cache&&(t.keywords[d]=m)}f=m.build(t)}d!==f&&c[h.index+a-1]!=="."&&(c=c.substring(0,h.index+a)+f+c.substring(h.index+d.length+a),a+=f.length-d.length),this.getIncludeByName(f)===void 0&&MA.contains(f)&&t.include(MA.get(f))}return A==="source"?c:this.isMethod?(this.isInterface||t.include(this,void 0,c),this.name):t.format("( "+c+" )",this.getType(t),A)}parse(t,A,r,i){if(this.src=t||"",this.includes=A??[],this.extensions=r??{},this.keywords=i??{},this.isMethod){let s=j4.exec(this.src);if(this.inputs=[],s&&s.length==4){this.type=s[1],this.name=s[2];let o=s[3].match(_C);if(o){let a=0;for(;a<o.length;){let c=o[a++],l;c==="in"||c==="out"||c==="inout"?l=o[a++]:(l=c,c="");let u=o[a++];this.inputs.push({name:u,type:l,qualifier:c})}}this.isInterface=this.src.indexOf("{")===-1}else this.type="",this.name=""}}};var Y4=/^([a-z_0-9]+)\s([a-z_0-9]+)\s?\=?\s?(.*?)(\;|$)/i,T0=class extends Ue{constructor(t="",A){super();this.src="";this.useDefine=!1;this.nodeType="Const";this.parse(t||T0.PI,void 0,void 0,void 0,A)}getType(t){return t.getTypeByFormat(this.type)}parse(t,A,r,i,s){this.src=t||"";let o,a,c="",l=Y4.exec(t);this.useDefine=s??this.src.charAt(0)==="#",l&&l.length>1?(a=l[1],o=l[2],c=l[3]):(o=this.src,a="f"),this.name=o,this.type=a,this.value=c}build(t,A){if(A==="source"){if(this.value)return this.useDefine?"#define "+this.name+" "+this.value:"const "+this.type+" "+this.name+" = "+this.value+";";if(this.useDefine)return this.src}return t.include(this),t.format(this.name,this.getType(t),A)}generate(t,A,r,i,s){return t.format(this.name,this.getType(t),A)}},pt=T0;pt.PI="PI",pt.PI2="PI2",pt.RECIPROCAL_PI="RECIPROCAL_PI",pt.RECIPROCAL_PI2="RECIPROCAL_PI2",pt.LOG2="LOG2",pt.EPSILON="EPSILON";var q4=new RegExp(`^structs*([a-z_0-9]+)s*{s*((.|
3139
+ `&&A.push("")):e.getTextWidth(A[A.length-1]+r,n)>n.width&&(A[A.length-1].length&&A.push(""),e.getTextWidth(A[A.length-1]+r,n)>n.width&&(r.length===1?(A[A.length-1]+=r,r=""):(A[A.length-1]+=r.slice(0,-1),r=r[r.length-1],A.push(""))));return A[A.length-1]+=r,A}function jp(n,e){return G4(n)}function G4(n){let e={parameters:n,type:n.type};if(n.type==="VectorGeometry"){let A=yt.createFromState(n.shape,n.width,n.height);e.shape=A}else n.type==="NonParametricGeometry"&&(n.data.groups&&n.data.groups.forEach(A=>A.materialIndex=Math.max(A.materialIndex??0,0)),e.geometry=new _a().parse(n));let t;try{t=ah(e)}catch(A){console.error(A)}if(!t){let A=yt.createFromState(bl.defaultData(),100,100);e.shape=A,t=ah(e)}return t}var Ye;Vl.then(n=>{Ye=n});var wC=new Float32Array([10,10,0,-10,10,0,-10,-10,0,10,-10,0]),SC=new Uint32Array([0,1,2,3]),TC=new Uint8Array([4]),ir=class{static build(n,e,t,A,r){let i,s,o,a=n?.phongAngle??e?.phongAngle??35;if(A===!1&&(a=-1),n.positionWASM!==void 0){t&&t!==0&&(Ye.free_bvh(t),Ye.free_subdivision_surface(t));try{i=ir.allocate(n,r)}catch(c){console.error(c,n),i=ir.allocate({positionWASM:wC,indexWASM:SC,verticesPerFaceWASM:TC},r)}Ye.set_destination_refinement_level(i,0),s=ir.buildLevel(i,!0,a)}else i=t,n.phongAngle!==void 0&&(s=ir.buildLevel(i,!0,a));return n.subdivisions!==void 0&&(Ye.set_destination_refinement_level(i,n.subdivisions),n.subdivisions>0?o=ir.buildLevel(i,!1,a):o=null),{subdivPointer:i,originalGeometry:s,subdividedGeometry:o}}static primitiveToQuads(n,e){n.widthSegments>16&&(n.widthSegments=16),n.heightSegments>16&&(n.heightSegments=16),n.depthSegments>16&&(n.depthSegments=16),n.radialSegments>16&&(n.radialSegments=16),n.type==="DodecahedronGeometry"&&(n.detail=0);let t=n.shape!==void 0?e.geometry:jp(n),A,r,i,s;({positions:A,triIndices:s}=lh(t.getAttribute("position"),t.getIndex()));let o;if(n.type==="CylinderGeometry"&&n.cornerRadius===0&&n.hollow===0&&n.openEnded===!1){let a=n.radialSegments*n.heightSegments*3*2,c=a+n.radialSegments*3;o=[a,c]}return{indices:r,verticesPerFace:i}=b0(A,s,t,o),{positions:A,indices:r,verticesPerFace:i}}static allocate(n,e){let t,A,r,i=[],s=[];n.positionWASM&&n.positionWASM.length>0?(t=n.positionWASM,A=n.indexWASM,r=n.verticesPerFaceWASM):(t=wC,A=SC,r=TC);let o=t.length,a=A.length,c=r.length,l=t.length+i.length+s.length,u=A.length+r.length,h=l*Float32Array.BYTES_PER_ELEMENT+u*Uint32Array.BYTES_PER_ELEMENT,d=l*Float32Array.BYTES_PER_ELEMENT,p=u*Uint32Array.BYTES_PER_ELEMENT,f=Ye._malloc(h),m=new Float32Array(Ye.HEAPF32.buffer,f,l),y=new Uint32Array(Ye.HEAPU32.buffer,f+d,u);m.set(t,0),m.set(i,t.length),m.set(s,t.length+i.length),y.set(A,0),y.set(r,A.length);let g;n?.scaleBaked?.some(x=>x!==1)&&(g=new he().makeScale(...n.scaleBaked)),e&&(g?g.premultiply(e):g=e);let b=g?Ye.alloc_subdivision_surface2(f,o,f+d,a,f+d+A.length*Uint32Array.BYTES_PER_ELEMENT,c,g.elements):Ye.alloc_subdivision_surface(f,o,f+d,a,f+d+A.length*Uint32Array.BYTES_PER_ELEMENT,c);return Ye._free(f),b}static buildLevel(n,e,t,A,r){let i=r?Ye.get_mesh_data2(n,e?Ye.Level.CONTROL:Ye.Level.REFINED,t,r.elements):Ye.get_mesh_data(n,e?Ye.Level.CONTROL:Ye.Level.REFINED,t),s=8,o=Ye.HEAPU32.subarray(i>>2,(i>>2)+s),a=o.subarray(4,4+4),c=0,l=Ye.HEAPU32[o[c]>>2],u=Ye.HEAPF32.subarray(l>>2,(l>>2)+a[c]);c++;let h=Ye.HEAPU32[o[c]>>2],d=Ye.HEAPF32.subarray(h>>2,(h>>2)+a[c]);c++;let p=Ye.HEAPU32[o[c]>>2],f=Ye.HEAPU32.subarray(p>>2,(p>>2)+a[c]);c++;let m=Ye.HEAPU32[o[c]>>2],y=Ye.HEAPU32.subarray(m>>2,(m>>2)+a[c]);if(c++,A===void 0){let g=new Ie;if(g.setIndex(new As(y,1)),g.setAttribute("position",new Se(u,3)),g.setAttribute("normal",new Se(d,3)),e){g.setAttribute("faceMap",new As(f,1));let b=new Float32Array(d.length/3*4).fill(0);g.setAttribute("color",new Ge(b,4))}return Ye.free_mesh_data(i),g.userData.type="SubdivGeometry",g}A.getAttribute("position").copyArray(u),A.getAttribute("normal").copyArray(d),A.attributes.position.needsUpdate=!0,A.attributes.normal.needsUpdate=!0,Ye.free_mesh_data(i)}static buildControlCageWireframe(n,e,t){let A=Ye.get_wireframe_data_for_base_level(n),r=4,i=Ye.HEAPU32.subarray(A>>2,(A>>2)+r),s=i.subarray(2,2+2),o=0,a=Ye.HEAPU32[i[o]>>2],c=Ye.HEAPF32.subarray(a>>2,(a>>2)+s[o]);o++;let l=Ye.HEAPU32[i[o]>>2],u=Ye.HEAPU32.subarray(l>>2,(l>>2)+s[o]);if(e===void 0){let h=new Ie;h.setAttribute("position",new Se(c,3));let d=new Float32Array(c.length);for(let p=0,f=c.length;p<f;)d[p++]=t.r,d[p++]=t.g,d[p++]=t.b;return h.setAttribute("color",new Ge(d,3)),h.setIndex(new As(u,1)),Ye.free_wireframe_data_for_base_level(A),h}e.getAttribute("position").copyArray(c),e.attributes.position.needsUpdate=!0,Ye.free_wireframe_data_for_base_level(A)}static updateCollabMesh(n,e,t){let A=e===0;A||Ye.set_destination_refinement_level(n,e);let r=t?Ye.get_topological_data2(n,A?Ye.Level.CONTROL:Ye.Level.REFINED,t.elements):Ye.get_topological_data(n,A?Ye.Level.CONTROL:Ye.Level.REFINED),i=6,s=Ye.HEAPU32.subarray(r>>2,(r>>2)+i),o=s.subarray(3,3+3),a=0,c=Ye.HEAPU32[s[a]>>2],l=new Float32Array(Ye.HEAPF32.subarray(c>>2,(c>>2)+o[a]));a++;let u=Ye.HEAPU32[s[a]>>2],h=new Uint32Array(Ye.HEAPU32.subarray(u>>2,(u>>2)+o[a]));a++;let d=Ye.HEAPU32[s[a]>>2],p=new Uint8Array(Ye.HEAPU32.subarray(d>>2,(d>>2)+o[a]));return Ye.free_topological_data(r),{positions:l,indices:h,verticesPerFace:p}}};var MC=["getX","getY","getZ"];function lh(n,e){let t={},A=e?e.count:n.count,r=0,i=[],s=[],o=1e4;for(let c=0;c<A;c++){let l=e?e.getX(c):c,u="";for(let h=0;h<3;h++)u+=`${~~(n[MC[h]](l)*o)},`;if(u in t)i.push(t[u]);else{for(let h=0;h<3;h++)s.push(n[MC[h]](l));t[u]=r,i.push(r),r++}}let a=[];for(let c=0;c<i.length;c+=3)i[c]===i[c+1]||i[c]===i[c+2]||i[c+1]===i[c+2]||a.push(i[c],i[c+1],i[c+2]);return{positions:s,triIndices:a}}var Yp=new S,y0=new S,v0=new S,x0=new S;function b0(n,e,t,A){let r=[],i=[];if(t.userData.shape!==void 0&&t.userData.parameters.depth===0&&t.userData.shape.shapeHoles.length===0){let s=t.userData.shape.extractShapePointsToFlatArray([]),o=t.userData.parameters.spikes;if(t.userData.type==="EllipseGeometry"&&o<=24&&o%4===0&&t.userData.parameters.angle>=360){let l=s.length/2/o;s=s.filter((u,h)=>Math.floor(h/2)%l===0)}let a=0;for(let l=0;l<s.length;l+=2)a+=(s[l]-s[(l===0?s.length:l)-2])*(s[l+1]+s[(l===0?s.length:l)-1]);n.length=0;let c=0;if(a<0)for(let l=0;l<s.length;l+=2)n.push(s[l],s[l+1],0),r.push(c++);else for(let l=s.length-2;l>=0;l-=2)n.push(s[l],s[l+1],0),r.push(c++);return i.push(c),{indices:r,verticesPerFace:i}}for(let s=0,o=t.capStartIndex??e.length;s<o;)if(e[s+1]===e[s+3]&&e[s+2]===e[s+5]||e[s+0]===e[s+3]&&e[s+2]===e[s+4]){Yp.set(n[e[s]*3],n[e[s]*3+1],n[e[s]*3+2]),y0.set(n[e[s+1]*3],n[e[s+1]*3+1],n[e[s+1]*3+2]),v0.set(n[e[s+4]*3],n[e[s+4]*3+1],n[e[s+4]*3+2]),x0.set(n[e[s+5]*3],n[e[s+5]*3+1],n[e[s+5]*3+2]),y0.sub(Yp).normalize(),v0.sub(Yp).normalize(),x0.sub(Yp).normalize();let a=y0.cross(v0).dot(x0);Math.abs(a)>.005||A&&A.some((c,l)=>l%2===1?!1:s>=A[l]&&s<A[l+1])?(r.push(e[s],e[s+1],e[s+2]),i.push(3),s+=3):(r.push(e[s],e[s+1],e[s+4],e[s+5]),i.push(4),s+=6)}else r.push(e[s],e[s+1],e[s+2]),i.push(3),s+=3;if(t.capStartIndex!==void 0){let s=[],o=[],a=0,c=new Float32Array([t.userData.parameters.depth])[0];for(let l=0,u=0;l<n.length;l+=3,u++)n[l+2]===0&&(s.push(u),a++),n[l+2]===c&&o.push(u);if(t.userData.parameters.extrudeBevelSize===0){let l=o[0];o[0]=o[1],o[1]=l}s.reverse(),r.push(...s,...o),i.push(a,a)}return{indices:r,verticesPerFace:i}}var wr={};ED(wr,{calcBoolean:()=>V4,calcBooleanTopological:()=>U4,freeMeshSet:()=>W4,getMeshSet:()=>z4,transformMeshSet:()=>H4});var CC,PC=new Promise(n=>{CC=n}),EC=!1;async function DC(){if(EC)return;let e=!1?".":"https://unpkg.com/@splinetool/boolean-wasm@0.9.153/build",[t,A]=await Promise.all([import("./boolean.js"),fetch(`${e}/boolean.wasm`).then(s=>s.arrayBuffer())]),r=t.default,i=await r({wasmBinary:A});CC(i),EC=!0}var lt,nc;PC.then(n=>lt=n);function k4(n,e,t){let A,{positions:r,triIndices:i}=lh(n.getAttribute("position"),n.getIndex()),s;if(e&&t){let{indices:o,verticesPerFace:a}=b0(r,i,n);s=a.length,A=[];for(let c=0,l=0;c<s;c++){A.push(a[c]);for(let u=0;u<a[c];u++)A.push(o[l++])}}else{let o=i.length;A=Array(o+o/3),s=0;for(let a=0,c=0;c<A.length;)A[c++]=3,s++,A[c++]=i[a++],A[c++]=i[a++],A[c++]=i[a++]}return{positions:r,faceIndices:A,nFaces:s}}function IC(n){let e=n.length,t=e*Uint32Array.BYTES_PER_ELEMENT,A=e*Float32Array.BYTES_PER_ELEMENT,r=Number.isInteger(n[0])?t:A,i=lt._malloc(r);return(Number.isInteger(n[0])?new Uint32Array(lt.HEAPU32.buffer,i,e):new Float32Array(lt.HEAPF32.buffer,i,e)).set(n,0),i}function LC(n){switch(n){case 0:return lt.OP.UNION;case 1:return lt.OP.INTERSECTION;case 2:return lt.OP.A_MINUS_B;case 3:return lt.OP.B_MINUS_A;case 4:return lt.OP.SYMMETRIC_DIFFERENCE;case 5:return lt.OP.ALL;default:throw new Error("Unknown boolean operation "+n)}}function U4(n,e){nc===void 0&&(nc=lt.init_csg());let t=IC(n),A=lt.csg_calc_topological(nc,t,n.length,LC(e));lt._free(t);let r=6,i=lt.HEAPU32.subarray(A>>2,(A>>2)+r),s=i.subarray(3,3+3),o=0,a=lt.HEAPU32[i[o]>>2],c=new Float32Array(lt.HEAPF32.subarray(a>>2,(a>>2)+s[o]));o++;let l=lt.HEAPU32[i[o]>>2],u=new Uint32Array(lt.HEAPU32.subarray(l>>2,(l>>2)+s[o]));o++;let h=lt.HEAPU32[i[o]>>2],d=new Uint8Array(lt.HEAPU32.subarray(h>>2,(h>>2)+s[o]));return lt.free_mesh_data(A),{positions:c,indices:u,verticesPerFace:d}}function V4(n,e,t,A){nc===void 0&&(nc=lt.init_csg());let r=IC(n),i=lt.csg_calc(nc,r,n.length,A,LC(e));lt._free(r);let s=5,o=lt.HEAPU32.subarray(i>>2,(i>>2)+s),a=o.subarray(2,2+3),c=0,l=lt.HEAPU32[o[c]>>2],u=lt.HEAPF32.subarray(l>>2,(l>>2)+a[c]);c++;let h=lt.HEAPU32[o[c]>>2],d=lt.HEAPF32.subarray(h>>2,(h>>2)+a[c]);c++;let p=a[c];t.setAttribute("position",new Se(u,3)),t.setAttribute("normal",new Se(d,3));let f=lt.HEAPF32.subarray((i>>2)+5,(i>>2)+5+6);return t.boundingSphere===null&&(t.boundingSphere=new DA),t.boundingSphere.center.set(f[0],f[1],f[2]),t.boundingSphere.radius=(f[3]**2+f[4]**2+f[5]**2)**.5,t.userData.parameters={width:f[3]*2,height:f[4]*2,depth:f[5]*2},lt.free_mesh_data(i),p}function z4(n,e,t){if(lt===void 0)return-1;let A,r,i;if(e&&n.userData.positions!==void 0){let m=n.userData;i=m.verticesPerFace.length,A=m.positions,r=Array(m.verticesPerFace.reduce((y,g)=>y+g,0)+i);for(let y=0,g=0,b=0;y<m.verticesPerFace.length;y++){r[b++]=m.verticesPerFace[y];for(let x=0;x<m.verticesPerFace[y];x++)r[b++]=m.indices[g++]}}else({positions:A,faceIndices:r,nFaces:i}=k4(n,e,t));let s=A.length,o=r.length,a=A.length,c=r.length,l=a*Float32Array.BYTES_PER_ELEMENT+c*Uint32Array.BYTES_PER_ELEMENT,u=a*Float32Array.BYTES_PER_ELEMENT,h=c*Uint32Array.BYTES_PER_ELEMENT,d=lt._malloc(l),p=new Float32Array(lt.HEAPF32.buffer,d,a),f=new Uint32Array(lt.HEAPU32.buffer,d+u,c);return p.set(A,0),f.set(r,0),lt.get_csg_mesh(d,s,d+u,o,i)}function H4(n,e){lt.transform_csg_mesh(n,e.elements)}function W4(n){lt.free_csg_mesh(n)}var w0={ConeGeometry:QE,CubeGeometry:ZE,CylinderGeometry:XE,DodecahedronGeometry:KE,EllipseGeometry:AC,HelixGeometry:sC,IcosahedronGeometry:oC,LatheGeometry:aC,NonParametricGeometry:lC,PolygonGeometry:cC,PyramidGeometry:uC,RectangleGeometry:hC,SphereGeometry:dC,PlaneGeometry:fC,BackdropGeometry:pC,StarGeometry:mC,TextFrameGeometry:gC,TorusGeometry:yC,TorusKnotGeometry:vC,TriangleGeometry:xC,VectorGeometry:VA},ah=n=>w0[n.type].create(n);var ch=class{constructor(e){e=e??{},this.name=e.name,this.type=e.type,this.node=e.node,this.size=e.size,this.needsUpdate=e.needsUpdate}get value(){return this.node.value}set value(e){this.node.value=e}};var BA=class{constructor(e){this.hashProperties=void 0;this.isNode=!0;this.shortcuts={};this.uuid=ze.generateUUID(),this.type=e,this.name=""}analyze(e,t){t=t??{},e.analyzing=!0,this.build(e.addFlow(t.slot,t.cache,t.context),"v4"),e.clearVertexNodeCode(),e.clearFragmentNodeCode(),e.removeFlow(),e.analyzing=!1}analyzeAndFlow(e,t,A){return A=A??{},this.analyze(e,A),this.flow(e,t,A)}flow(e,t,A){A=A??{},e.addFlow(A.slot,A.cache,A.context);let r={result:this.build(e,t),code:e.clearNodeCode(),extra:e.context.extra};return e.removeFlow(),r}build(e,t,A){t=t??this.getType(e,t);let r=e.getNodeData(A??this);return e.analyzing&&this.appendDepsNode(e,r,t),e.nodes.indexOf(this)===-1&&e.nodes.push(this),this.updateFrame!==void 0&&e.updaters.indexOf(this)===-1&&e.updaters.push(this),this.generate(e,t,A)}updateFrame(e){}generateReadonly(e,t,A,r,i,s){return""}generate(e,t,A,r,i){return""}parse(e,t,A,r){}appendDepsNode(e,t,A){t.deps=(t.deps||0)+1;let r=e.getTypeLength(A);(r>(t.outputMax||0)||this.getType(e,A))&&(t.outputMax=r,t.output=A)}setName(e){this.name=e}getName(){return this.name}getType(e,t){return t==="sampler2D"||t==="samplerCube"?t:this.type}getHash(){let e="{",t,A;for(t in this)A=this[t],A instanceof BA&&(e+='"'+t+'":'+A.getHash()+",");if(this.hashProperties)for(let r=0;r<this.hashProperties.length;r++)t=this.hashProperties[r],A=this[t],e+='"'+t+'":"'+String(A)+'",';return e+='"id":"'+this.uuid+'"}',e}};var S0=class{constructor(){this.nodes={};this.keywords={}}add(e){this.nodes[e.name]=e}addKeyword(e,t,A){A=A!==void 0?A:!0,this.keywords[e]={callback:t,cache:A}}remove(e){delete this.nodes[e.name]}removeKeyword(e){delete this.keywords[e]}get(e){return this.nodes[e]}getKeyword(e,t){return this.keywords[e].callback(t)}getKeywordData(e){return this.keywords[e]}contains(e){return this.nodes[e]!==void 0}containsKeyword(e){return this.keywords[e]!==void 0}},MA=new S0;var Ue=class extends BA{constructor(t,A){super(t);this.scope="";A=A??{},this.shared=A.shared!==void 0?A.shared:!0,this.unique=A.unique!==void 0?A.unique:!1}build(t,A,r,i){if(A=A??this.getType(t),this.getShared(t,A)){let s=this.getUnique(t,A);s&&this.uuid===void 0&&(this.uuid=ze.generateUUID()),r=t.getUUID(r??this.getUUID(),!s);let o=t.getNodeData(r),a=o.output||this.getType(t);if(t.analyzing)return(o.deps||0)>0||this.getLabel()?(this.appendDepsNode(t,o,A),this.generate(t,A,r)):super.build(t,A,r);if(s)return o.name=o.name||super.build(t,A,r),o.name;if(!this.getLabel()&&(!this.getShared(t,a)||t.context.ignoreCache||o.deps===1))return super.build(t,A,r);r=this.getUUID(!1);let c=this.getTemp(t,r);if(c)return t.format(c,a,A);{c=super.generate(t,A,r,o.output,i);let l=this.generate(t,a,r);return t.addNodeCode(c+" = "+l+";"),t.format(c,a,A)}}return super.build(t,A,r)}getShared(t,A){return A!=="sampler2D"&&A!=="samplerCube"&&this.shared}getUnique(t,A){return this.unique}setLabel(t){return this.label=t,this}getLabel(){return this.label}getUUID(t){let A=this.uuid;return typeof this.scope=="string"&&(A=this.scope+"-"+A),A}getTemp(t,A){A=A||this.uuid;let r=t.getVars()[A];return r?r.name:void 0}generate(t,A,r,i,s){return this.getShared(t,A)||console.error("TempNode is not shared"),r=r??this.uuid,t.getTempVar(r,i??this.getType(t),s,this.getLabel()).name}};var Rt=class extends Ue{constructor(t,A){A=A??{},A.shared=A.shared!==void 0?A.shared:!1;super(t,A);this.readonly=!1}setReadonly(t){return this.readonly=t,this.hashProperties=this.readonly?["value"]:void 0,this}getReadonly(){return this.readonly}generate(t,A,r,i,s,o){r=t.getUUID(r??this.getUUID()),i=i??this.getType(t);let a=t.getNodeData(r);return this.getReadonly()&&this.generateReadonly!==void 0?this.generateReadonly(t,A,r,i,s,o):t.isShader("vertex")?(a.vertex||(a.vertex=t.createVertexUniform(i,this,s,o,this.getLabel())),t.format(a.vertex.name,i,A)):(a.fragment||(a.fragment=t.createFragmentUniform(i,this,s,o,this.getLabel())),t.format(a.fragment.name,i,A))}};var NA=class extends Rt{constructor(t=0,A){super("v2");this.nodeType="Vector2";this.value=t instanceof G?t:new G(t,A)}get x(){return this.value.x}set x(t){this.value.x=t}get y(){return this.value.y}set y(t){this.value.y=t}generateReadonly(t,A,r,i,s,o){return t.format("vec2("+this.value.x+", "+this.value.y+")",i,A)}};var zA=class extends Rt{constructor(t=0,A,r){super("v3");this.nodeType="Vector3";this.value=t instanceof S?t:new S(t,A,r)}get x(){return this.value.x}set x(t){this.value.x=t}get y(){return this.value.y}set y(t){this.value.y=t}get z(){return this.value.z}set z(t){this.value.z=t}generateReadonly(t,A,r,i,s,o){return t.format("vec3("+this.value.x+", "+this.value.y+", "+this.value.z+")",i,A)}};var AA=class extends _e{constructor(t,A,r,i){super(t,A,r);this.isColorA=!0;this.a=i}setRGBA(t,A,r,i){super.setRGB(t,A,r),this.a=i}copy(t){return super.copy(t),this.a="a"in t?t.a:1,this}clone(){return new this.constructor(this.r,this.g,this.b,this.a)}get x(){return this.r}get y(){return this.g}get z(){return this.b}get w(){return this.a}set x(t){this.r=t}set y(t){this.g=t}set z(t){this.b=t}set w(t){this.a=t}};var sr=class extends Rt{constructor(t){super("v4");this.nodeType="Vector4";this.value=t instanceof AA?t:new AA(t.r,t.g,t.b,t.a)}generateReadonly(t,A,r,i,s,o){return t.format("vec4("+this.value.r+", "+this.value.g+", "+this.value.b+", "+this.value.a+")",i,A)}};var j4=/^\s*([a-z_0-9]+)\s([a-z_0-9]+)\s*\((.*?)\)/i,_C=/[a-z_0-9]+/gi,Ee=class extends Ue{constructor(t,A,r,i,s){super(s);this.src="";this.nodeType="Function";this.useKeywords=!0;this.includes=[];this.extensions={};this.keywords={};this.isMethod=s===void 0,this.isInterface=!1,this.parse(t,A,r,i)}getShared(t,A){return!this.isMethod}getType(t){return t.getTypeByFormat(this.type)}getInputByName(t){if(this.inputs){let A=this.inputs.length;for(;A--;)if(this.inputs[A].name===t)return this.inputs[A]}}getIncludeByName(t){if(this.includes){let A=this.includes.length;for(;A--;)if(this.includes[A].name===t)return this.includes[A]}}generate(t,A,r,i,s){let o,a=0,c=this.src;if(this.includes)for(let u=0;u<this.includes.length;u++)t.include(this.includes[u],this);for(let u in this.extensions)t.extensions[u]=!0;let l=[];for(;o=_C.exec(this.src);)l.push(o);for(let u=0;u<l.length;u++){let h=l[u],d=h[0],p=this.isMethod?!this.getInputByName(d):!0,f=d;if(this.keywords[d]||this.useKeywords&&p&&MA.containsKeyword(d)){let m=this.keywords[d];if(!m){let y=MA.getKeywordData(d);y.cache&&(m=t.keywords[d]),m=m||MA.getKeyword(d,t),y.cache&&(t.keywords[d]=m)}f=m.build(t)}d!==f&&c[h.index+a-1]!=="."&&(c=c.substring(0,h.index+a)+f+c.substring(h.index+d.length+a),a+=f.length-d.length),this.getIncludeByName(f)===void 0&&MA.contains(f)&&t.include(MA.get(f))}return A==="source"?c:this.isMethod?(this.isInterface||t.include(this,void 0,c),this.name):t.format("( "+c+" )",this.getType(t),A)}parse(t,A,r,i){if(this.src=t||"",this.includes=A??[],this.extensions=r??{},this.keywords=i??{},this.isMethod){let s=j4.exec(this.src);if(this.inputs=[],s&&s.length==4){this.type=s[1],this.name=s[2];let o=s[3].match(_C);if(o){let a=0;for(;a<o.length;){let c=o[a++],l;c==="in"||c==="out"||c==="inout"?l=o[a++]:(l=c,c="");let u=o[a++];this.inputs.push({name:u,type:l,qualifier:c})}}this.isInterface=this.src.indexOf("{")===-1}else this.type="",this.name=""}}};var Y4=/^([a-z_0-9]+)\s([a-z_0-9]+)\s?\=?\s?(.*?)(\;|$)/i,T0=class extends Ue{constructor(t="",A){super();this.src="";this.useDefine=!1;this.nodeType="Const";this.parse(t||T0.PI,void 0,void 0,void 0,A)}getType(t){return t.getTypeByFormat(this.type)}parse(t,A,r,i,s){this.src=t||"";let o,a,c="",l=Y4.exec(t);this.useDefine=s??this.src.charAt(0)==="#",l&&l.length>1?(a=l[1],o=l[2],c=l[3]):(o=this.src,a="f"),this.name=o,this.type=a,this.value=c}build(t,A){if(A==="source"){if(this.value)return this.useDefine?"#define "+this.name+" "+this.value:"const "+this.type+" "+this.name+" = "+this.value+";";if(this.useDefine)return this.src}return t.include(this),t.format(this.name,this.getType(t),A)}generate(t,A,r,i,s){return t.format(this.name,this.getType(t),A)}},pt=T0;pt.PI="PI",pt.PI2="PI2",pt.RECIPROCAL_PI="RECIPROCAL_PI",pt.RECIPROCAL_PI2="RECIPROCAL_PI2",pt.LOG2="LOG2",pt.EPSILON="EPSILON";var q4=new RegExp(`^structs*([a-z_0-9]+)s*{s*((.|
3140
3140
  )*?)}`,"gim"),X4=new RegExp("s*(w*?)s*(w*?)(=|;)","gim"),rc=class extends Ue{constructor(t=""){super();this.inputs=[];this.src="";this.nodeType="Struct";this.parse(t)}getType(t){return t.getTypeByFormat(this.name)}getInputByName(t){let A=this.inputs.length;for(;A--;)if(this.inputs[A].name===t)return this.inputs[A]}generate(t,A,r,i,s){return A==="source"?this.src+";":t.format("( "+this.src+" )",this.getType(t),A)}parse(t=""){this.src=t,this.inputs=[];let A=q4.exec(t);if(A){let r=A[2],i;for(;i=X4.exec(r);)this.inputs.push({type:i[1],name:i[2]});this.name=A[1]}else this.name="";this.type=this.name}};var ic=class extends Ue{constructor(t){super("v2",{shared:!1});this.nodeType="UV";this.index=t??0}generate(t,A){t.requires.uv[this.index]=!0;let r=this.index>0?this.index+1:"",i=t.isShader("vertex")?"uv"+r:"vUv"+r;return t.format(i,this.getType(t),A)}};MA.addKeyword("uv",function(){return new ic});MA.addKeyword("uv2",function(){return new ic(1)});var No=class extends Ue{constructor(t,A){super("v4");this.nodeType="ColorSpace";this.input=t,this.method=A??No.LINEAR_TO_LINEAR,this.hashProperties=["method"]}static getEncodingComponents(t){switch(t){case Ln:return["Linear"];case qe:return["sRGB"];default:return[]}}generate(t,A){let r=this.input.build(t,"v4"),i=this.getType(t),s=No.Nodes[this.method],o=t.include(s);if(o===No.LINEAR_TO_LINEAR)return t.format(r,i,A);if(s.inputs?.length===2){let a=this.factor.build(t,"f");return t.format(o+"( "+r+", "+a+" )",i,A)}else return t.format(o+"( "+r+" )",i,A)}fromEncoding(t){let A=No.getEncodingComponents(t);this.method="LinearTo"+A[0],this.factor=A[1]}fromDecoding(t){let A=No.getEncodingComponents(t);this.method=A[0]+"ToLinear",this.factor=A[1]}},hn=No;hn.Nodes={LinearToLinear:new Ee(["vec4 LinearToLinear( in vec4 value ) {"," return value;","}"].join(`
3141
3141
  `)),sRGBToLinear:new Ee(["vec4 sRGBToLinear( 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.w );","}"].join(`
3142
3142
  `)),LinearTosRGB:new Ee(["vec4 LinearTosRGB( 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.w );","}"].join(`
@@ -4219,7 +4219,7 @@ vec3 sphericalTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec
4219
4219
  outgoingLight = spe_blend( diffuseColor, outgoingLight, ${o.result}, ${a.result} );
4220
4220
  }
4221
4221
  `),c&&u.push(c.code,`outgoingLight = spe_blend(outgoingLight, ${c.result}, 1.0, SPE_BLENDING_NORMAL);`),l?u.push(`gl_FragColor = vec4( outgoingLight, accumAlpha * ${l.result} );`):u.push("gl_FragColor = vec4( outgoingLight, 1.0 );"),u.push("#include <encodings_fragment>","#include <fog_fragment>","#include <dithering_fragment>"),A=u.join(`
4222
- `)}return A}};function RC(n,e){switch(n.type){case"fresnel":return eH(n,e);case"gradient":return tH(n);case"depth":return AH(n);case"normal":return nH(n);case"noise":return rH(n,e);case"rainbow":return iH(n);case"toon":return sH(n,e);case"outline":return oH(n,e);case"transmission":return aH(n,e);case"color":return $4(n,e)}}function J4(n){return{type:n.type}}function ei(n){let{alpha:e,mode:t}=n;return{...J4(n),alpha:e,mode:t}}function $4(n,e){return{...ei(n),color:RA(n.color,e)}}function eH(n,e){let{bias:t,scale:A,intensity:r,factor:i,color:s}=n;return{...ei(n),color:RA(s,e),bias:t,scale:A,intensity:r,factor:i}}function tH(n){let{gradientType:e,smooth:t,colors:A,steps:r,angle:i,offset:s,morph:o}=n;return{...ei(n),gradientType:e,smooth:t,colors:A.map(a=>new Ve(a[0],a[1],a[2],a[3])),num:A.length,steps:r,offset:new G(...s),morph:new G(...o),angle:i}}function AH(n){let{gradientType:e,near:t,far:A,isVector:r,isWorldSpace:i,origin:s,direction:o,colors:a,steps:c,smooth:l}=n;return{...ei(n),gradientType:e,near:t,far:A,isVector:r,isWorldSpace:i,origin:new S(...s),direction:o?new S(...o):new S(1,0,0),colors:a.map(u=>u!==void 0?new Ve(u[0],u[1],u[2],u[3]):new Ve(0,0,0,0)),steps:c.slice(0,a.length),smooth:l}}function nH(n){let{cnormal:e}=n;return{...ei(n),cnormal:new S(e[0],e[1],e[2])}}function rH(n,e){return{...ei(n),scale:n.scale,move:n.move,fA:new G(...n.fA),fB:new G(...n.fB),size:new S(...n.size),distortion:new G(...n.distortion),colorA:RA(n.colorA,e),colorB:RA(n.colorB,e),colorC:RA(n.colorC,e),colorD:RA(n.colorD,e),noiseType:n.noiseType}}function iH(n){return{...ei(n),filmThickness:n.filmThickness,movement:n.movement,wavelengths:new S(...n.wavelengths),noiseStrength:n.noiseStrength,noiseScale:n.noiseScale,offset:new S(...n.offset)}}function sH(n,e){return{...ei(n),positioning:n.positioning,colors:n.colors.map(t=>new Ve(t[0],t[1],t[2],t[3])),num:n.colors.length,steps:n.steps,source:new S(...n.source),isWorldSpace:n.isWorldSpace,noiseStrength:n.noiseStrength,noiseScale:n.noiseScale,shadowColor:RA(n.shadowColor,e),offset:new S(...n.offset)}}function oH(n,e){return{...ei(n),outlineColor:RA(n.outlineColor,e),contourColor:RA(n.contourColor,e),outlineWidth:n.outlineWidth,contourWidth:n.contourWidth,outlineThreshold:n.outlineThreshold,contourThreshold:n.contourThreshold,outlineSmoothing:n.outlineSmoothing,contourFrequency:n.contourFrequency,contourDirection:n.contourDirection,positionalLines:n.positionalLines,compensation:n.compensation}}function aH(n,e){return{...ei(n),thickness:n.thickness,ior:n.ior,roughness:n.roughness}}var Os=class extends AA{};var Kp=class{constructor(e=1e3*10){this.timeout=e;this.cache=new Map;this.head={data:null,time:0,src:null,next:null,prev:null};this.tail={data:null,time:1/0,src:null,next:null,prev:null};this.hasClean=!1;this.head.next=this.tail,this.tail.prev=this.head}log(...e){}scheduleCleanup(){this.hasClean||(this.log("scheduled cleanup"),this.hasClean=!0,setTimeout(()=>{this.hasClean=!1,this.log("cleaning");let e=Date.now(),t=this.head.next;for(;t.time<e-this.timeout;)this.dispose(t.src,t.data),this.cache.delete(t.src),t=t.next,t.prev=this.head,this.head.next=t;this.head.next!==this.tail?this.scheduleCleanup():this.log("no more cleanup")},this.timeout+1e3))}load(e){let t=Date.now(),A=this.cache.get(e);return A===void 0?(A={data:this.create(e),src:e,time:t,next:null,prev:null},this.cache.set(e,A)):(A.time=t,A.prev.next=A.next,A.next.prev=A.prev),A.prev=this.tail.prev,A.next=this.tail,this.tail.prev.next=A,this.tail.prev=A,this.scheduleCleanup(),A.data}};var B0=class extends Kp{create(e){return URL.createObjectURL(new Blob([e]))}dispose(e,t){URL.revokeObjectURL(t)}},R0;function BC(n){return typeof n=="string"?n:(R0||(R0=new B0),R0.load(n))}var ko=class{constructor(e,t){this.data=e;this.onImageLoad=t;this.loaded=!1;this.isVideo=!1;this.isVideo=e.type=="video",this.updateSrc(e.data)}async updateSrc(e){if(typeof document>"u")return;this.dispose(),this.loaded=!1;let t=()=>{this.loaded=!0;let r=[1e3,1001,1002];for(let i of r){let s=this[i];s&&(s.image=this.img,s.needsUpdate=!0)}this.onImageLoad&&this.onImageLoad()};if(this.isVideo){if(this.img=document.createElement("video"),this.img.preload="auto",this.img.playsInline=!0,this.img.currentTime=.01,this.img.muted=!0,this.img.pause(),typeof e!="string"){var A=new FileReader;A.readAsDataURL(new Blob([e],{type:"video/mp4"}));let r;await new Promise(i=>{A.onloadend=s=>{r=s.target?.result,i(null)}}),this.img.src=r}else this.img.src=e;this.img.onloadeddata=t}else this.img=new Image,this.img.src=BC(e),this.img.onload=t}getTexture(e){let t=this[e];if(t)return t;{let A;return this.isVideo?A=new zd(this.img,void 0,e,e):A=new jt(this.img,void 0,e,e),this.loaded&&(A.needsUpdate=!0),this[e]=A,A}}dispose(){this[1e3]?.dispose(),this[1e3]=void 0,this[1001]?.dispose(),this[1001]=void 0,this[1002]?.dispose(),this[1002]=void 0}};1e3,1001,1002;var ti=class extends ko{};var Rs=class extends Rt{};var N0={noise:["noiseType"],texture:["projection","axis","side"],video:["projection","axis","side"],displace:["noiseType"],depth:["smooth","isWorldSpace","gradientType","isVector"]},F0={depth:["colors"]};function lH(n,e,t){let A=N0[n.type],r=F0[n.type];if(r!==void 0){let i=n.color;if(r.includes(e)){let s=i[e]?.value?.length;if(s!==void 0&&s!==t.length)return!0}}return A!==void 0?A.includes(e):!1}function G0(n,e,t){let A=t.uniforms[`f${t.id}_texture`];if(!A)return!1;let r=!1,i=n;if("image"in i){let s=i.image,o=e.image(s),a=A;a instanceof ti||a.image.dispose(),a.image=o}if("video"in i){let s=i.video,o=e.video(s),a=A;a instanceof ti||a.image.dispose(),a.image=o}if("wrapping"in i){let s=A;s.wrap=i.wrapping}if("repeat"in i||"offset"in i){let s="mat",o=t.uniforms[`f${t.id}_${s}`];"repeat"in i&&(o.repeat=i.repeat),"offset"in i&&(o.offset=i.offset),o.updateMatrix()}return r}function NC(n,e,t,A){let r=!1;for(let[i,s]of Object.entries(n)){if(!i||s===void 0)continue;if(k0(i,t,A)){i==="visible"&&t.type==="light"&&(r=!0);continue}t.visible=A.visible;let o=t.uniforms[`f${t.id}_${i}`];if(!!o&&!(o instanceof Rs))switch(r=r||lH(t,i,s),o.constructor){case St:if(typeof s=="string"){let a=e.getColor(s);a&&(o.value=a);break}else{let a=s;o.value instanceof Os?o.value=new AA(a.r,a.g,a.b,a.a):o.setRGBA(a);break}case sr:if(typeof s=="string"){let a=e.getColor(s);a&&(o.value=a);break}else{let a=s;o.value instanceof Os?o.value=new AA(a.r,a.g,a.b,a.a):o.value.setRGBA(a.r,a.g,a.b,a.a);break}case NA:{let a=s;o.value.setX(a[0]),o.value.setY(a[1]);break}case zA:{let a=s;o.value.setX(a[0]),o.value.setY(a[1]),o.value.setZ(a[2]);break}case wn:{G0(s,e,t);break}case Mr:{o.value=s.map(a=>new Ve(...a));break}default:{o.value=s;break}}}return r}var U0=class extends Ue{constructor(t,A,r){super("v3");this.nodeType="Matcap";this.texture=t,this.alpha=A,this.mode=r,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(t,A){if(t.isShader("fragment")){t.addFragmentVariable(this.calpha,"float");let r=t.include(U0.Nodes.matcap);t.require("normal"),t.requires.normal=!0;let i=[];return i.push(this.texture.generate(t,"t")),i.push("normal"),i.push(this.alpha.build(t,"f")),i.push(this.mode.build(t,"i")),i.push(this.calpha),t.format(r+"("+i.join(",")+")",this.getType(t),A)}else return console.warn("MatcapNode is not compatible with "+t.shader+" shader."),t.format("vec3( 0.0 )",this.getType(t),A)}},Ph=U0;Ph.Nodes=function(){return{matcap:new Ee(`vec3 matcap(sampler2D matcapTex, vec3 normal, float alpha, int mode, out float calpha) {
4222
+ `)}return A}};function RC(n,e){switch(n.type){case"fresnel":return eH(n,e);case"gradient":return tH(n);case"depth":return AH(n);case"normal":return nH(n);case"noise":return rH(n,e);case"rainbow":return iH(n);case"toon":return sH(n,e);case"outline":return oH(n,e);case"transmission":return aH(n,e);case"color":return $4(n,e)}}function J4(n){return{type:n.type}}function ei(n){let{alpha:e,mode:t}=n;return{...J4(n),alpha:e,mode:t}}function $4(n,e){return{...ei(n),color:RA(n.color,e)}}function eH(n,e){let{bias:t,scale:A,intensity:r,factor:i,color:s}=n;return{...ei(n),color:RA(s,e),bias:t,scale:A,intensity:r,factor:i}}function tH(n){let{gradientType:e,smooth:t,colors:A,steps:r,angle:i,offset:s,morph:o}=n;return{...ei(n),gradientType:e,smooth:t,colors:A.map(a=>new Ve(a[0],a[1],a[2],a[3])),num:A.length,steps:r,offset:new G(...s),morph:new G(...o),angle:i}}function AH(n){let{gradientType:e,near:t,far:A,isVector:r,isWorldSpace:i,origin:s,direction:o,colors:a,steps:c,smooth:l}=n;return{...ei(n),gradientType:e,near:t,far:A,isVector:r,isWorldSpace:i,origin:new S(...s),direction:o?new S(...o):new S(1,0,0),colors:a.map(u=>u!==void 0?new Ve(u[0],u[1],u[2],u[3]):new Ve(0,0,0,0)),steps:c.slice(0,a.length),smooth:l}}function nH(n){let{cnormal:e}=n;return{...ei(n),cnormal:new S(e[0],e[1],e[2])}}function rH(n,e){return{...ei(n),scale:n.scale,move:n.move,fA:new G(...n.fA),fB:new G(...n.fB),size:new S(...n.size),distortion:new G(...n.distortion),colorA:RA(n.colorA,e),colorB:RA(n.colorB,e),colorC:RA(n.colorC,e),colorD:RA(n.colorD,e),noiseType:n.noiseType}}function iH(n){return{...ei(n),filmThickness:n.filmThickness,movement:n.movement,wavelengths:new S(...n.wavelengths),noiseStrength:n.noiseStrength,noiseScale:n.noiseScale,offset:new S(...n.offset)}}function sH(n,e){return{...ei(n),positioning:n.positioning,colors:n.colors.map(t=>new Ve(t[0],t[1],t[2],t[3])),num:n.colors.length,steps:n.steps,source:new S(...n.source),isWorldSpace:n.isWorldSpace,noiseStrength:n.noiseStrength,noiseScale:n.noiseScale,shadowColor:RA(n.shadowColor,e),offset:new S(...n.offset)}}function oH(n,e){return{...ei(n),outlineColor:RA(n.outlineColor,e),contourColor:RA(n.contourColor,e),outlineWidth:n.outlineWidth,contourWidth:n.contourWidth,outlineThreshold:n.outlineThreshold,contourThreshold:n.contourThreshold,outlineSmoothing:n.outlineSmoothing,contourFrequency:n.contourFrequency,contourDirection:n.contourDirection,positionalLines:n.positionalLines,compensation:n.compensation}}function aH(n,e){return{...ei(n),thickness:n.thickness,ior:n.ior,roughness:n.roughness}}var Os=class extends AA{};var Kp=class{constructor(e=1e3*10){this.timeout=e;this.cache=new Map;this.head={data:null,time:0,src:null,next:null,prev:null};this.tail={data:null,time:1/0,src:null,next:null,prev:null};this.hasClean=!1;this.head.next=this.tail,this.tail.prev=this.head}log(...e){}scheduleCleanup(){this.hasClean||(this.log("scheduled cleanup"),this.hasClean=!0,setTimeout(()=>{this.hasClean=!1,this.log("cleaning");let e=Date.now(),t=this.head.next;for(;t.time<e-this.timeout;)this.dispose(t.src,t.data),this.cache.delete(t.src),t=t.next,t.prev=this.head,this.head.next=t;this.head.next!==this.tail?this.scheduleCleanup():this.log("no more cleanup")},this.timeout+1e3))}load(e){let t=Date.now(),A=this.cache.get(e);return A===void 0?(A={data:this.create(e),src:e,time:t,next:null,prev:null},this.cache.set(e,A)):(A.time=t,A.prev.next=A.next,A.next.prev=A.prev),A.prev=this.tail.prev,A.next=this.tail,this.tail.prev.next=A,this.tail.prev=A,this.scheduleCleanup(),A.data}};var B0=class extends Kp{create(e){return URL.createObjectURL(new Blob([e]))}dispose(e,t){URL.revokeObjectURL(t)}},R0;function BC(n){return typeof n=="string"?n:(R0||(R0=new B0),R0.load(n))}var ko=class{constructor(e,t){this.data=e;this.onImageLoad=t;this.loaded=!1;this.isVideo=!1;this.isVideo=e.type=="video",this.updateSrc(e.data)}async updateSrc(e){if(typeof document>"u")return;this.dispose(),this.loaded=!1;let t=()=>{this.loaded=!0;let r=[1e3,1001,1002];for(let i of r){let s=this[i];s&&(s.image=this.img,s.needsUpdate=!0)}this.onImageLoad&&this.onImageLoad()};if(this.isVideo){if(this.img=document.createElement("video"),this.img.preload="auto",this.img.playsInline=!0,this.img.currentTime=.01,this.img.autoplay=!0,this.img.muted=!0,this.img.pause(),typeof e!="string"){var A=new FileReader;A.readAsDataURL(new Blob([e],{type:"video/mp4"}));let r;await new Promise(i=>{A.onloadend=s=>{r=s.target?.result,i(null)}}),this.img.src=r}else this.img.src=e;this.img.onloadeddata=t}else this.img=new Image,this.img.src=BC(e),this.img.onload=t}getTexture(e){let t=this[e];if(t)return t;{let A;return this.isVideo?A=new zd(this.img,void 0,e,e):A=new jt(this.img,void 0,e,e),this.loaded&&(A.needsUpdate=!0),this[e]=A,A}}dispose(){this[1e3]?.dispose(),this[1e3]=void 0,this[1001]?.dispose(),this[1001]=void 0,this[1002]?.dispose(),this[1002]=void 0}};1e3,1001,1002;var ti=class extends ko{};var Rs=class extends Rt{};var N0={noise:["noiseType"],texture:["projection","axis","side"],video:["projection","axis","side"],displace:["noiseType"],depth:["smooth","isWorldSpace","gradientType","isVector"]},F0={depth:["colors"]};function lH(n,e,t){let A=N0[n.type],r=F0[n.type];if(r!==void 0){let i=n.color;if(r.includes(e)){let s=i[e]?.value?.length;if(s!==void 0&&s!==t.length)return!0}}return A!==void 0?A.includes(e):!1}function G0(n,e,t){let A=t.uniforms[`f${t.id}_texture`];if(!A)return!1;let r=!1,i=n;if("image"in i){let s=i.image,o=e.image(s),a=A;a instanceof ti||a.image.dispose(),a.image=o}if("video"in i){let s=i.video,o=e.video(s),a=A;a instanceof ti||a.image.dispose(),a.image=o}if("wrapping"in i){let s=A;s.wrap=i.wrapping}if("repeat"in i||"offset"in i){let s="mat",o=t.uniforms[`f${t.id}_${s}`];"repeat"in i&&(o.repeat=i.repeat),"offset"in i&&(o.offset=i.offset),o.updateMatrix()}return r}function NC(n,e,t,A){let r=!1;for(let[i,s]of Object.entries(n)){if(!i||s===void 0)continue;if(k0(i,t,A)){i==="visible"&&t.type==="light"&&(r=!0);continue}t.visible=A.visible;let o=t.uniforms[`f${t.id}_${i}`];if(!!o&&!(o instanceof Rs))switch(r=r||lH(t,i,s),o.constructor){case St:if(typeof s=="string"){let a=e.getColor(s);a&&(o.value=a);break}else{let a=s;o.value instanceof Os?o.value=new AA(a.r,a.g,a.b,a.a):o.setRGBA(a);break}case sr:if(typeof s=="string"){let a=e.getColor(s);a&&(o.value=a);break}else{let a=s;o.value instanceof Os?o.value=new AA(a.r,a.g,a.b,a.a):o.value.setRGBA(a.r,a.g,a.b,a.a);break}case NA:{let a=s;o.value.setX(a[0]),o.value.setY(a[1]);break}case zA:{let a=s;o.value.setX(a[0]),o.value.setY(a[1]),o.value.setZ(a[2]);break}case wn:{G0(s,e,t);break}case Mr:{o.value=s.map(a=>new Ve(...a));break}default:{o.value=s;break}}}return r}var U0=class extends Ue{constructor(t,A,r){super("v3");this.nodeType="Matcap";this.texture=t,this.alpha=A,this.mode=r,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(t,A){if(t.isShader("fragment")){t.addFragmentVariable(this.calpha,"float");let r=t.include(U0.Nodes.matcap);t.require("normal"),t.requires.normal=!0;let i=[];return i.push(this.texture.generate(t,"t")),i.push("normal"),i.push(this.alpha.build(t,"f")),i.push(this.mode.build(t,"i")),i.push(this.calpha),t.format(r+"("+i.join(",")+")",this.getType(t),A)}else return console.warn("MatcapNode is not compatible with "+t.shader+" shader."),t.format("vec3( 0.0 )",this.getType(t),A)}},Ph=U0;Ph.Nodes=function(){return{matcap:new Ee(`vec3 matcap(sampler2D matcapTex, vec3 normal, float alpha, int mode, out float calpha) {
4223
4223
  vec3 viewDir = normalize( vViewPosition );
4224
4224
  vec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) );
4225
4225
  vec3 y = cross( viewDir, x );
@@ -4909,7 +4909,7 @@ gl_FragColor = vec4(resultColor, vColor.r);
4909
4909
  `,t),c=t.horizontalAlign===1?a:0,l=this.computeSpaceWidthForLine(e,0,t),u=this.getLineInitialOffsetX(s[0],o,t.horizontalAlign,e[0],a),h=this.getLineInitialOffsetY(i,e.length,t.height,r,t.verticalAlign),d=[],p=e.map(g=>[]),f=e.map(g=>[]),m;for(let g=0;g<e.length;g++){let b=e[g],x={features:{liga:!0}},w=[];try{w=A.stringToGlyphs(b,x)}catch(M){console.warn(M)}u=this.getLineInitialOffsetX(s[g],o,t.horizontalAlign,b,a);let T=[];try{T=await this.reverseLigaturesTable(A,b,w)}catch(M){console.warn(M)}l=this.computeSpaceWidthForLine(e,g,t);for(let M=0;M<w.length;M++){let v=w[M],E=v.index===0?`
4910
4910
  `:v.unicode?String.fromCharCode(v.unicode):void 0,C=T[M],P=0,D=0;M===0&&t.horizontalAlign===2&&v.leftSideBearing!==void 0&&(D=-v.leftSideBearing*r),m&&(P=A.getKerningValue(v,m)*r),u+=D+P;let _=0;if(E===`
4911
4911
  `)_=c;else if(E===" ")_=l;else{let I=this.createPath(v,r,u,h,t);I&&(_=I.offsetX-(P+D),d.push(I.path))}if(C.replacements.length===1)f[g].push([u,h]),p[g].push(_);else{let I=C.replacements.map(X=>(A.glyphs.get(X).advanceWidth??0)*r),B=I.reduce((X,F)=>X+=F,0),N=I.map(X=>X/B),W=u;for(let X=0;X<N.length;X++){let F=_*N[X];f[g].push([W,h]),p[g].push(F),W+=F}}u+=_,m=v}h-=i}let y=[];for(let g=0,b=d.length;g<b;g++)y.push(...d[g].toShapes());return{shapes:y,charWidths:p,lineWidths:s,charCoords:f}}get isUserFont(){return this._isUserFont}get arrayBuffer(){return this._arrayBuffer}get ascender(){return this.font?.ascender??0}get descender(){return this.font?.descender??0}get familyName(){return this.font?.names.fontFamily??""}get subfamilyName(){return this.font?.names.fontSubfamily??""}get unitsPerEm(){return this.font?.unitsPerEm??1}getLineInitialOffsetX(e,t,A,r,i){return(A===3||A===2)&&r.indexOf(`
4912
- `)>=0&&(e-=i),A===3?t*.5-e*.5:A===2?t-e:0}getLineInitialOffsetY(e,t,A,r,i){let s=t*e,o=Math.abs(this.ascender-this.descender)*r,a=e-o,c=-this.ascender*r-a/2;return i===3?-(A-s-c):i===2?-(A*.5-s*.5-c):c}createPath(e,t,A,r,i){let s=e.getPath(A,-r,i.fontSize,{kerning:!1,letterSpacing:i.letterSpacing});if(!s){console.error('THREE.Font: character "'+e+'" does not exists in font family '+this.familyName+".");return}let o=new dm,a=(e.advanceWidth??1)*t;if(e)for(let c of s.commands){let l=o.currentPath?.currentPoint;if(!(l&&c.type!=="Z"&&l.x===c.x&&-l.y===c.y))switch(c.type){case"M":o.moveTo(c.x,-c.y);break;case"L":o.lineTo(c.x,-c.y);break;case"Q":o.quadraticCurveTo(c.x1,-c.y1,c.x,-c.y);break;case"C":o.bezierCurveTo(c.x1,-c.y1,c.x2,-c.y2,c.x,-c.y);break}}return o.subPaths.forEach(c=>{let l=GH(c.curves);l!==void 0&&c.currentPoint.distanceTo(l)>0&&c.lineTo(l.x,l.y)}),{offsetX:a+i.fontSize*i.letterSpacing,path:o}}getCharWidth(e,t){return this.font?.getAdvanceWidth(e,t.fontSize,{kerning:!0,letterSpacing:t.letterSpacing})??0}getTextWidth(e,t){return this.font?.getAdvanceWidth(e,t.fontSize,{kerning:!0,letterSpacing:t.letterSpacing})??0}computeSpaceWidthForLine(e,t,A){let r=this.getCharWidth(" ",A),i=e[t];if(i){let s=this.countSpaces(i.trimEnd());if(A.horizontalAlign===4&&t<e.length-1&&s){let o=A.width,a=this.getTextWidth(i,A);return(o-(a-s*r))/s}}return r}countSpaces(e){return(e.match(/ /g)||[]).length}};function GH(n){if(n.length){let e=n[0];if(e instanceof XA)return e.v1;if(e instanceof qA||e instanceof _n)return e.v0}}var zo=class{constructor(e,t={}){this.deletedMaterial=new Uo(bA.defaultTwoLayerData("phong"),this);this.deletedImage=new ti(dp.emptyImage);this.deletedVideo=new ti(xl.defaultVideo);this.materials={};this.images={};this.videos={};this.colors={};this.audios={};this.fonts={};this.penumbraSize=[];this.onImageLoad=()=>{this._onImageLoad&&this._onImageLoad()};this.onFontLoad=()=>{this._onFontLoad&&this._onFontLoad()};if(t.images)for(let[A,r]of Object.entries(t.images))this.addImage(A,r);if(t.videos)for(let[A,r]of Object.entries(t.videos))this.addVideo(A,r);if(t.audios)for(let[A,r]of Object.entries(t.audios))this.addAudio(A,r.data);this.reset(e)}setOnImageLoad(e){this._onImageLoad=e}setOnFontLoad(e){this._onFontLoad=e}reset(e){for(let[t,A]of Object.entries(e.images))this.addImage(t,A);for(let[t,A]of Object.entries(e.videos))this.addVideo(t,A);for(let[t,A]of Object.entries(e.colors))this.addColor(t,A);for(let[t,A]of Object.entries(e.materials))this.addMaterial(t,new Uo(A,this));for(let[t,A]of Object.entries(e.audios))this.addAudio(t,A.data);for(let[t,A]of Object.entries(e.fonts))this.addFont(t,A);this.penumbraSize=e.penumbraSize}addMaterial(e,t){t.uuid=e,this.materials[e]=t}deleteMaterial(e){this.materials[e]&&(this.materials[e].dispose(),delete this.materials[e])}getMaterial(e){let t=this.materials[e];return t}getMaterialOrDeletedPlaceholder(e){return this.materials[e]??this.deletedMaterial}material(e){return typeof e=="string"?this.getMaterialOrDeletedPlaceholder(e):new Fn(e,this)}getMaterials(){return this.materials}addImage(e,t){return this.images[e]?(this.images[e].updateSrc(t.data),!0):(this.images[e]=new ti(t,this.onImageLoad),!1)}deleteImage(e){this.images[e]&&delete this.images[e]}getDefaultImage(){return this.images.image_0}getImage(e){return this.images[e]??this.deletedImage}image(e){return typeof e=="string"?this.getImage(e):new ko(e,this.onImageLoad)}addVideo(e,t){return this.videos[e]?(this.videos[e].updateSrc(t.data),!0):(this.videos[e]=new ti(t,this.onImageLoad),!1)}deleteVideo(e){this.videos[e]&&delete this.videos[e]}getVideo(e){return this.videos[e]??this.deletedVideo}video(e){return typeof e=="string"?this.getVideo(e):new ko(e,this.onImageLoad)}addColor(e,t){return this.colors[e]?(this.onColorOrImageUpdate&&this.onColorOrImageUpdate(e),"a"in t?this.colors[e].setRGBA(t.r,t.g,t.b,t.a):this.colors[e].setRGBA(t.r,t.g,t.b,1),!0):("a"in t?this.colors[e]=new Os(t.r,t.g,t.b,t.a):this.colors[e]=new Os(t.r,t.g,t.b,1),!1)}updateColor(e,t){if(this.colors[e]){this.onColorOrImageUpdate&&this.onColorOrImageUpdate(e);let A=this.colors[e];return this.colors[e].r=t.r??A.r,this.colors[e].g=t.g??A.g,this.colors[e].b=t.b??A.b,this.colors[e].a=t.a??A.a,!0}return!1}deleteColor(e){this.colors[e]&&delete this.colors[e]}getColor(e){return this.colors[e]}color(e){let t;if(typeof e=="string"){let A=this.getColor(e);A?t=A:(console.warn("Tried to create color layer params with a color key that does not exist in the assets manager"),t=new AA(0,0,0,0))}else return"a"in e?new AA(e.r,e.g,e.b,e.a):new AA(e.r,e.g,e.b,1);return t}addAudio(e,t){this.audios[e]=t}getAudio(e){let t=this.audios[e];if(t instanceof Gs)return t;{let A=new Gs({src:t});return this.audios[e]=A,A}}deleteAudio(e){this.audios[e]&&delete this.audios[e]}addFont(e,t){this.fonts[e]=new pm(t,this.onFontLoad)}getFont(e){return this.fonts[e]}deleteFont(e){this.fonts[e]&&delete this.fonts[e]}dispose(){Object.keys(this.materials).forEach(t=>this.deleteMaterial(t)),this._onImageLoad=void 0,this._onFontLoad=void 0,Object.values(this.audios).forEach(t=>{t instanceof Gs&&t.dispose()}),this.audios={}}},eve=new zo(Cl.emptyData());function kH(n,e){return n.distance-e.distance}function kP(n,e,t){if(!(!$n(e)||!e.visible||e.raycastLock)){tA(e)&&e.raycast(n,t);for(let A of e.children)kP(n,A,t)}}function gm(n,e,t){if(!t.some(r=>kh(n,r)!==void 0))return[];let A=[];return e.children.forEach(r=>kP(n,r,A)),A.sort(kH),A}function ym(n){let e=[];if(n.length){let t=n[0].object;$n(t)&&e.push(t);let A=t.parent;for(;A;)jv(A)&&e.push(A),A=A.parent}return e}function kh(n,e){if(tA(e)){if(!e.raycastLock&&e.visible){let t=[];return e.raycast(n,t),t.length?t[0]:void 0}}else if(jv(e))return UP(n,e)}function UP(n,e){if(!(!$n(e)||!e.visible||e.raycastLock)){if(tA(e)){let t=[];if(e.raycast(n,t),t.length)return t[0]}for(let t of e.children){let A=UP(n,t);if(A)return A}}}function UH(n){if(n.style.transform!==""){let e=getComputedStyle(n).getPropertyValue("transform");if(e!=="none"){let t=e.replace("matrix(","").split(",");return{x:parseFloat(t[0]),y:parseFloat(t[3])}}}return{x:1,y:1}}function GP(n){let e=n.getViewport(new Ve),t=UH(n.domElement);return{left:e.x*t.x,top:e.y*t.y,width:e.z*t.x,height:e.w*t.y}}function VH(n,e,t,A){let r=t.height-A.height,i=(n-A.left-t.left)*(t.width/A.width),s=(e-r+A.top-t.top)*(t.height/A.height);return{x:i/t.width*2-1,y:-(s/t.height)*2+1}}var mm=class{constructor(e,t,A,r,i,s){this.isExport=s;this.raycaster=new um;this.raycasterNeedsUpdate=!0;this.stopRaycast=!1;this.sharedAssets=new zo(Cl.emptyData());this.scene=new ki({...sp.defaultData},this.sharedAssets);this.camera=new dA;this.renderer=e,this.domElement=e.domElement,this._domRect=this.domElement.getBoundingClientRect(),this._viewRect=GP(this.renderer),this.stopRaycast=i,this.sharedAssets=r,this.scene=t,this.camera=A}get domRect(){return this._domRect}get viewRect(){return this._viewRect}updaterRect(){this._domRect=this.domElement.getBoundingClientRect(),this._viewRect=GP(this.renderer)}updateRaycaster(e){if(!this.raycasterNeedsUpdate)return;this.raycasterNeedsUpdate=!1;let{pageX:t,pageY:A}=e.touches!==void 0&&e.touches.length>0?e.touches[0]:e;this.raycaster.setFromCamera(VH(t,A,this._domRect,this._viewRect),this.camera)}};var $0=(s=>(s[s.keydown=0]="keydown",s[s.keyup=1]="keyup",s[s.pointerdown=2]="pointerdown",s[s.pointerup=3]="pointerup",s[s.pointermove=4]="pointermove",s[s.wheel=5]="wheel",s))($0||{}),kA=class{constructor(e){this.eventContext=e;this.domEventsNeeded=new Set;this.hasVideoAction=!1}connect(){}disconnect(){}};var VP=new Map,Uh=new Map,Ui=class{constructor(e,t,A,r){this.data=t;let{audio:i,volume:s,delay:o,loop:a}=t;if(!i)throw new Error("Missing property");let c=typeof i=="string"?r.getAudio(i).src:i.data;this.audioPlayer=new Gs({src:c,volume:s,delay:o,loop:a}),Uh.has(A.uuid)?Uh.get(A.uuid).push(this):Uh.set(A.uuid,[this]),VP.set(e,this)}playByToggle(){this.data.toggle==="stop"?this.audioPlayer.status==="playing"?this.audioPlayer.stop():(this.audioPlayer.stop(),this.audioPlayer.play()):this.data.toggle==="pause"?this.audioPlayer.status==="playing"?this.audioPlayer.pause():this.audioPlayer.play():(this.audioPlayer.stop(),this.audioPlayer.play())}dispose(){this.audioPlayer.stop()}},bc=class{constructor(e){this.data=e}dispatch(){this.data.playAudio?this.pauseAudio(this.data.playAudio):this.data.object?this.pauseAllAudiosFromObject(this.data.object):this.pauseAllAudios()}pauseAudio(e){let t=VP.get(e);!t||(this.data.delay>0?(this.disposeDelay(),this.timeoutId=window.setTimeout(()=>{t.audioPlayer[this.data.interaction](),this.disposeDelay()},this.data.delay)):t.audioPlayer[this.data.interaction]())}pauseAllAudiosFromObject(e){let t=Uh.get(e);!t?.length||(this.data.delay>0?(this.disposeDelay(),this.timeoutId=window.setTimeout(()=>{t.forEach(A=>A.audioPlayer[this.data.interaction]()),this.disposeDelay()},this.data.delay)):t.forEach(A=>A.audioPlayer[this.data.interaction]()))}pauseAllAudios(){let e=[...Uh.values()];!e.length||(this.data.delay>0?(this.disposeDelay(),this.timeoutId=window.setTimeout(()=>{e.forEach(t=>{t.forEach(A=>{A.audioPlayer[this.data.interaction]()})}),this.disposeDelay()},this.data.delay)):e.forEach(t=>{t.forEach(A=>{A.audioPlayer[this.data.interaction]()})}))}disposeDelay(){clearTimeout(this.timeoutId),delete this.timeoutId}dispose(){clearTimeout(this.timeoutId),delete this.timeoutId}},oi=class{constructor(e,t,A,r){this.data=t;if(t.interaction==="play")this.interaction=new Ui(e,t,A,r);else if(t.interaction==="pause"||t.interaction==="stop")this.interaction=new bc(t);else throw new Error("Missing property")}dispatchBasic(){this.interaction instanceof Ui?this.interaction.playByToggle():this.interaction.dispatch()}dispatchConditional(){this.interaction instanceof Ui?this.interaction.audioPlayer.play():this.interaction.dispatch()}dispatchGameControl(e){this.interaction instanceof Ui&&(e==="start"?this.interaction.audioPlayer.play():this.interaction.audioPlayer.stop())}dispose(){this.interaction.dispose()}};function zP(n,e){return n.material.layers.find(A=>A.uuid===e).color.texture.image.img}var HP=new Map,Vh=new Map,Us=class{constructor(e,t,A){this.data=t;this.delay=0;this.status="stopped";let{layerId:r,loop:i,volume:s,delay:o}=t;if(this.object=A,r===void 0)throw new Error("Missing property");this.videoElement=zP(A,r),this.videoElement.loop=i===1/0,s!==void 0&&(this.videoElement.volume=s),o!==void 0&&(this.delay=o),Vh.has(A.uuid)?Vh.get(A.uuid).push(this):Vh.set(A.uuid,[this]),HP.set(e,this),t.triggerAfter==="autoplay"?this.videoElement.muted=!0:this.videoElement.muted=!1}play(){this.delayTimerId=window.setTimeout(()=>{this.videoElement.play(),this.clearDelay()},this.delay),this.status="playing"}clearDelay(){this.delayTimerId&&(clearTimeout(this.delayTimerId),delete this.delayTimerId)}pause(){this.videoElement.pause(),this.status="paused"}stop(){this.videoElement.pause(),this.videoElement.currentTime=0,this.status="stopped",this.clearDelay()}playByToggle(){this.data.toggle==="stop"?this.status==="playing"?this.stop():(this.stop(),this.play()):this.data.toggle==="pause"?this.status==="playing"?this.pause():this.play():(this.stop(),this.play())}dispose(){this.stop(),this.videoElement.muted=!0}},wc=class{constructor(e){this.data=e}dispatch(){this.data.playVideo?this.pauseVideo(this.data.playVideo):this.data.object?this.pauseAllVideosFromObject(this.data.object):this.pauseAllVideos()}pauseVideo(e){let t=HP.get(e);!t||(this.data.delay>0?(this.disposeDelay(),this.timeoutId=window.setTimeout(()=>{t[this.data.interaction](),this.disposeDelay()},this.data.delay)):t[this.data.interaction]())}pauseAllVideosFromObject(e){let t=Vh.get(e);!t?.length||(this.data.delay>0?(this.disposeDelay(),this.timeoutId=window.setTimeout(()=>{t.forEach(A=>A[this.data.interaction]()),this.disposeDelay()},this.data.delay)):t.forEach(A=>A[this.data.interaction]()))}pauseAllVideos(){let e=[...Vh.values()];!e.length||(this.data.delay>0?(this.disposeDelay(),this.timeoutId=window.setTimeout(()=>{e.forEach(t=>{t.forEach(A=>{A[this.data.interaction]()})}),this.disposeDelay()},this.data.delay)):e.forEach(t=>{t.forEach(A=>{A[this.data.interaction]()})}))}disposeDelay(){clearTimeout(this.timeoutId),delete this.timeoutId}dispose(){clearTimeout(this.timeoutId),delete this.timeoutId}},Vs=class{constructor(e,t,A){this.data=t;if(t.interaction==="play")this.interaction=new Us(e,t,A);else if(t.interaction==="pause"||t.interaction==="stop")this.interaction=new wc(t);else throw new Error("Missing property")}dispatchBasic(){this.interaction instanceof Us?this.interaction.playByToggle():this.interaction.dispatch()}dispatchConditional(){this.interaction instanceof Us?this.interaction.play():this.interaction.dispatch()}dispose(){this.interaction.dispose()}};var zH="text/plain",HH="us-ascii",WP=(n,e)=>e.some(t=>t instanceof RegExp?t.test(n):t===n),WH=(n,{stripHash:e})=>{let t=/^data:(?<type>[^,]*?),(?<data>[^#]*?)(?:#(?<hash>.*))?$/.exec(n);if(!t)throw new Error(`Invalid URL: ${n}`);let{type:A,data:r,hash:i}=t.groups,s=A.split(";");i=e?"":i;let o=!1;s[s.length-1]==="base64"&&(s.pop(),o=!0);let a=(s.shift()||"").toLowerCase(),l=[...s.map(u=>{let[h,d=""]=u.split("=").map(p=>p.trim());return h==="charset"&&(d=d.toLowerCase(),d===HH)?"":`${h}${d?`=${d}`:""}`}).filter(Boolean)];return o&&l.push("base64"),(l.length>0||a&&a!==zH)&&l.unshift(a),`data:${l.join(";")},${o?r.trim():r}${i?`#${i}`:""}`};function ex(n,e){if(e={defaultProtocol:"http:",normalizeProtocol:!0,forceHttp:!1,forceHttps:!1,stripAuthentication:!0,stripHash:!1,stripTextFragment:!0,stripWWW:!0,removeQueryParameters:[/^utm_\w+/i],removeTrailingSlash:!0,removeSingleSlash:!0,removeDirectoryIndex:!1,sortQueryParameters:!0,...e},n=n.trim(),/^data:/i.test(n))return WH(n,e);if(/^view-source:/i.test(n))throw new Error("`view-source:` is not supported as it is a non-standard protocol");let t=n.startsWith("//");!t&&/^\.*\//.test(n)||(n=n.replace(/^(?!(?:\w+:)?\/\/)|^\/\//,e.defaultProtocol));let r=new URL(n);if(e.forceHttp&&e.forceHttps)throw new Error("The `forceHttp` and `forceHttps` options cannot be used together");if(e.forceHttp&&r.protocol==="https:"&&(r.protocol="http:"),e.forceHttps&&r.protocol==="http:"&&(r.protocol="https:"),e.stripAuthentication&&(r.username="",r.password=""),e.stripHash?r.hash="":e.stripTextFragment&&(r.hash=r.hash.replace(/#?:~:text.*?$/i,"")),r.pathname){let s=/\b[a-z][a-z\d+\-.]{1,50}:\/\//g,o=0,a="";for(;;){let l=s.exec(r.pathname);if(!l)break;let u=l[0],h=l.index,d=r.pathname.slice(o,h);a+=d.replace(/\/{2,}/g,"/"),a+=u,o=h+u.length}let c=r.pathname.slice(o,r.pathname.length);a+=c.replace(/\/{2,}/g,"/"),r.pathname=a}if(r.pathname)try{r.pathname=decodeURI(r.pathname)}catch{}if(e.removeDirectoryIndex===!0&&(e.removeDirectoryIndex=[/^index\.[a-z]+$/]),Array.isArray(e.removeDirectoryIndex)&&e.removeDirectoryIndex.length>0){let s=r.pathname.split("/"),o=s[s.length-1];WP(o,e.removeDirectoryIndex)&&(s=s.slice(0,-1),r.pathname=s.slice(1).join("/")+"/")}if(r.hostname&&(r.hostname=r.hostname.replace(/\.$/,""),e.stripWWW&&/^www\.(?!www\.)[a-z\-\d]{1,63}\.[a-z.\-\d]{2,63}$/.test(r.hostname)&&(r.hostname=r.hostname.replace(/^www\./,""))),Array.isArray(e.removeQueryParameters))for(let s of[...r.searchParams.keys()])WP(s,e.removeQueryParameters)&&r.searchParams.delete(s);if(e.removeQueryParameters===!0&&(r.search=""),e.sortQueryParameters){r.searchParams.sort();try{r.search=decodeURIComponent(r.search)}catch{}}e.removeTrailingSlash&&(r.pathname=r.pathname.replace(/\/$/,""));let i=n;return n=r.toString(),!e.removeSingleSlash&&r.pathname==="/"&&!i.endsWith("/")&&r.hash===""&&(n=n.replace(/\/$/,"")),(e.removeTrailingSlash||r.pathname==="/")&&r.hash===""&&e.removeSingleSlash&&(n=n.replace(/\/$/,"")),t&&!e.normalizeProtocol&&(n=n.replace(/^http:\/\//,"//")),e.stripProtocol&&(n=n.replace(/^(?:https?:)?\/\//,"")),n}var vm=class{constructor({url:e,context:t}){if(!e)throw new Error("Missing property");this.url=e.startsWith("mailto:")?e:ex(e),this.context=t??"tab"}dispatch(){ku?window.location.assign(this.url):this.context==="tab"?window.open(this.url,"_blank"):this.context==="window"?window.open(this.url,"_blank",`width=${window.innerWidth}, height=${window.innerHeight}`):window.location.assign(this.url)}};var ZP={update:null,begin:null,loopBegin:null,changeBegin:null,change:null,changeComplete:null,loopComplete:null,complete:null,loop:1,direction:"normal",autoplay:!0,timelineOffset:0,rewind:!0},rx={duration:1e3,delay:0,endDelay:0,easing:"easeOutElastic(1, .5)",round:0},jH=["translateX","translateY","translateZ","rotate","rotateX","rotateY","rotateZ","scale","scaleX","scaleY","scaleZ","skew","skewX","skewY","perspective","matrix","matrix3d"],bm={CSS:{},springs:{}};function ai(n,e,t){return Math.min(Math.max(n,e),t)}function zh(n,e){return n.indexOf(e)>-1}function tx(n,e){return n.apply(null,e)}var je={arr:function(n){return Array.isArray(n)},obj:function(n){return zh(Object.prototype.toString.call(n),"Object")},pth:function(n){return je.obj(n)&&n.hasOwnProperty("totalLength")},svg:function(n){return n instanceof SVGElement},inp:function(n){return n instanceof HTMLInputElement},dom:function(n){return!("isNode"in n)&&(n.nodeType||je.svg(n))},str:function(n){return typeof n=="string"},fnc:function(n){return typeof n=="function"},und:function(n){return typeof n>"u"},hex:function(n){return/(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(n)},rgb:function(n){return/^rgb/.test(n)},hsl:function(n){return/^hsl/.test(n)},col:function(n){return je.hex(n)||je.rgb(n)||je.hsl(n)},key:function(n){return!ZP.hasOwnProperty(n)&&!rx.hasOwnProperty(n)&&n!=="targets"&&n!=="keyframes"}};function KP(n){var e=/\(([^)]+)\)/.exec(n);return e?e[1].split(",").map(function(t){return parseFloat(t)}):[]}function JP(n,e){var t=KP(n),A=ai(je.und(t[0])?1:t[0],.1,100),r=ai(je.und(t[1])?100:t[1],.1,100),i=ai(je.und(t[2])?10:t[2],.1,100),s=ai(je.und(t[3])?0:t[3],.1,100),o=Math.sqrt(r/A),a=i/(2*Math.sqrt(r*A)),c=a<1?o*Math.sqrt(1-a*a):0,l=1,u=a<1?(a*o+-s)/c:-s+o;function h(p){var f=e?e*p/1e3:p;return a<1?f=Math.exp(-f*a*o)*(l*Math.cos(c*f)+u*Math.sin(c*f)):f=(l+u*f)*Math.exp(-f*o),p===0||p===1?p:1-f}function d(){var p=bm.springs[n];if(p)return p;for(var f=1/6,m=0,y=0;;)if(m+=f,h(m)===1){if(y++,y>=16)break}else y=0;var g=m*f*1e3;return bm.springs[n]=g,g}return e?h:d}function YH(n){return n===void 0&&(n=10),function(e){return Math.ceil(ai(e,1e-6,1)*n)*(1/n)}}var qH=function(){var n=11,e=1/(n-1);function t(l,u){return 1-3*u+3*l}function A(l,u){return 3*u-6*l}function r(l){return 3*l}function i(l,u,h){return((t(u,h)*l+A(u,h))*l+r(u))*l}function s(l,u,h){return 3*t(u,h)*l*l+2*A(u,h)*l+r(u)}function o(l,u,h,d,p){var f,m,y=0;do m=u+(h-u)/2,f=i(m,d,p)-l,f>0?h=m:u=m;while(Math.abs(f)>1e-7&&++y<10);return m}function a(l,u,h,d){for(var p=0;p<4;++p){var f=s(u,h,d);if(f===0)return u;var m=i(u,h,d)-l;u-=m/f}return u}function c(l,u,h,d){if(!(0<=l&&l<=1&&0<=h&&h<=1))return;var p=new Float32Array(n);if(l!==u||h!==d)for(var f=0;f<n;++f)p[f]=i(f*e,l,h);function m(y){for(var g=0,b=1,x=n-1;b!==x&&p[b]<=y;++b)g+=e;--b;var w=(y-p[b])/(p[b+1]-p[b]),T=g+w*e,M=s(T,l,h);return M>=.001?a(y,T,l,h):M===0?T:o(y,g,g+e,l,h)}return function(y){return l===u&&h===d||y===0||y===1?y:i(m(y),u,d)}}return c}(),$P=function(){var n={linear:function(){return function(A){return A}}},e={Sine:function(){return function(A){return 1-Math.cos(A*Math.PI/2)}},Circ:function(){return function(A){return 1-Math.sqrt(1-A*A)}},Back:function(){return function(A){return A*A*(3*A-2)}},Bounce:function(){return function(A){for(var r,i=4;A<((r=Math.pow(2,--i))-1)/11;);return 1/Math.pow(4,3-i)-7.5625*Math.pow((r*3-2)/22-A,2)}},Elastic:function(A,r){A===void 0&&(A=1),r===void 0&&(r=.5);var i=ai(A,1,10),s=ai(r,.1,2);return function(o){return o===0||o===1?o:-i*Math.pow(2,10*(o-1))*Math.sin((o-1-s/(Math.PI*2)*Math.asin(1/i))*(Math.PI*2)/s)}}},t=["Quad","Cubic","Quart","Quint","Expo"];return t.forEach(function(A,r){e[A]=function(){return function(i){return Math.pow(i,r+2)}}}),Object.keys(e).forEach(function(A){var r=e[A];n["easeIn"+A]=r,n["easeOut"+A]=function(i,s){return function(o){return 1-r(i,s)(1-o)}},n["easeInOut"+A]=function(i,s){return function(o){return o<.5?r(i,s)(o*2)/2:1-r(i,s)(o*-2+2)/2}}}),n}();function ix(n,e){if(je.fnc(n))return n;var t=n.split("(")[0],A=$P[t],r=KP(n);switch(t){case"spring":return JP(n,e);case"cubicBezier":return tx(qH,r);case"steps":return tx(YH,r);default:return tx(A,r)}}function e2(n){try{var e=document.querySelectorAll(n);return e}catch{return}}function wm(n,e){for(var t=n.length,A=arguments.length>=2?arguments[1]:void 0,r=[],i=0;i<t;i++)if(i in n){var s=n[i];e.call(A,s,i,n)&&r.push(s)}return r}function Sm(n){return n.reduce(function(e,t){return e.concat(je.arr(t)?Sm(t):t)},[])}function jP(n){return je.arr(n)?n:(je.str(n)&&(n=e2(n)||n),n instanceof NodeList||n instanceof HTMLCollection?[].slice.call(n):[n])}function sx(n,e){return n.some(function(t){return t===e})}function ox(n){var e={};for(var t in n)e[t]=n[t];return e}function Ax(n,e){var t=ox(n);for(var A in n)t[A]=e.hasOwnProperty(A)?e[A]:n[A];return t}function Tm(n,e){var t=ox(n);for(var A in e)t[A]=je.und(n[A])?e[A]:n[A];return t}function XH(n){var e=/rgb\((\d+,\s*[\d]+,\s*[\d]+)\)/g.exec(n);return e?"rgba("+e[1]+",1)":n}function QH(n){var e=/^#?([a-f\d])([a-f\d])([a-f\d])$/i,t=n.replace(e,function(o,a,c,l){return a+a+c+c+l+l}),A=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(t),r=parseInt(A[1],16),i=parseInt(A[2],16),s=parseInt(A[3],16);return"rgba("+r+","+i+","+s+",1)"}function ZH(n){var e=/hsl\((\d+),\s*([\d.]+)%,\s*([\d.]+)%\)/g.exec(n)||/hsla\((\d+),\s*([\d.]+)%,\s*([\d.]+)%,\s*([\d.]+)\)/g.exec(n),t=parseInt(e[1],10)/360,A=parseInt(e[2],10)/100,r=parseInt(e[3],10)/100,i=e[4]||1;function s(h,d,p){return p<0&&(p+=1),p>1&&(p-=1),p<1/6?h+(d-h)*6*p:p<1/2?d:p<2/3?h+(d-h)*(2/3-p)*6:h}var o,a,c;if(A==0)o=a=c=r;else{var l=r<.5?r*(1+A):r+A-r*A,u=2*r-l;o=s(u,l,t+1/3),a=s(u,l,t),c=s(u,l,t-1/3)}return"rgba("+o*255+","+a*255+","+c*255+","+i+")"}function KH(n){if(je.rgb(n))return XH(n);if(je.hex(n))return QH(n);if(je.hsl(n))return ZH(n)}function Vi(n){var e=/[+-]?\d*\.?\d+(?:\.\d+)?(?:[eE][+-]?\d+)?(%|px|pt|em|rem|in|cm|mm|ex|ch|pc|vw|vh|vmin|vmax|deg|rad|turn)?$/.exec(n);if(e)return e[1]}function JH(n){if(zh(n,"translate")||n==="perspective")return"px";if(zh(n,"rotate")||zh(n,"skew"))return"deg"}function nx(n,e){return je.fnc(n)?n(e.target,e.id,e.total):n}function li(n,e){return n.getAttribute(e)}function ax(n,e,t){var A=Vi(e);if(sx([t,"deg","rad","turn"],A))return e;var r=bm.CSS[e+t];if(!je.und(r))return r;var i=100,s=document.createElement(n.tagName),o=n.parentNode&&n.parentNode!==document?n.parentNode:document.body;o.appendChild(s),s.style.position="absolute",s.style.width=i+t;var a=i/s.offsetWidth;o.removeChild(s);var c=a*parseFloat(e);return bm.CSS[e+t]=c,c}function t2(n,e,t){if(e in n.style){var A=e.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase(),r=n.style[e]||getComputedStyle(n).getPropertyValue(A)||"0";return t?ax(n,r,t):r}}function lx(n,e){if(je.dom(n)&&!je.inp(n)&&(li(n,e)||je.svg(n)&&n[e]))return"attribute";if(je.dom(n)&&sx(jH,e))return"transform";if(je.dom(n)&&e!=="transform"&&t2(n,e))return"css";if(n[e]!=null)return"object"}function A2(n){if(!!je.dom(n)){for(var e=n.style.transform||"",t=/(\w+)\(([^)]*)\)/g,A=new Map,r;r=t.exec(e);)A.set(r[1],r[2]);return A}}function $H(n,e,t,A){var r=zh(e,"scale")?1:0+JH(e),i=A2(n).get(e)||r;return t&&(t.transforms.list.set(e,i),t.transforms.last=e),A?ax(n,i,A):i}function cx(n,e,t,A){switch(lx(n,e)){case"transform":return $H(n,e,A,t);case"css":return t2(n,e,t);case"attribute":return li(n,e);default:return n[e]||0}}function ux(n,e){var t=/^(\*=|\+=|-=)/.exec(n);if(!t)return n;var A=Vi(n)||0,r=parseFloat(e),i=parseFloat(n.replace(t[0],""));switch(t[0][0]){case"+":return r+i+A;case"-":return r-i+A;case"*":return r*i+A}}function n2(n,e){if(je.col(n))return KH(n);if(/\s/g.test(n))return n;var t=Vi(n),A=t?n.substr(0,n.length-t.length):n;return e?A+e:A}function hx(n,e){return Math.sqrt(Math.pow(e.x-n.x,2)+Math.pow(e.y-n.y,2))}function e5(n){return Math.PI*2*li(n,"r")}function t5(n){return li(n,"width")*2+li(n,"height")*2}function A5(n){return hx({x:li(n,"x1"),y:li(n,"y1")},{x:li(n,"x2"),y:li(n,"y2")})}function r2(n){for(var e=n.points,t=0,A,r=0;r<e.numberOfItems;r++){var i=e.getItem(r);r>0&&(t+=hx(A,i)),A=i}return t}function n5(n){var e=n.points;return r2(n)+hx(e.getItem(e.numberOfItems-1),e.getItem(0))}function i2(n){if(n.getTotalLength)return n.getTotalLength();switch(n.tagName.toLowerCase()){case"circle":return e5(n);case"rect":return t5(n);case"line":return A5(n);case"polyline":return r2(n);case"polygon":return n5(n)}}function r5(n){var e=i2(n);return n.setAttribute("stroke-dasharray",e),e}function i5(n){for(var e=n.parentNode;je.svg(e)&&je.svg(e.parentNode);)e=e.parentNode;return e}function s2(n,e){var t=e||{},A=t.el||i5(n),r=A.getBoundingClientRect(),i=li(A,"viewBox"),s=r.width,o=r.height,a=t.viewBox||(i?i.split(" "):[0,0,s,o]);return{el:A,viewBox:a,x:a[0]/1,y:a[1]/1,w:s/a[2],h:o/a[3]}}function s5(n,e){var t=je.str(n)?e2(n)[0]:n,A=e||100;return function(r){return{property:r,el:t,svg:s2(t),totalLength:i2(t)*(A/100)}}}function o5(n,e){function t(o){o===void 0&&(o=0);var a=e+o>=1?e+o:0;return n.el.getPointAtLength(a)}var A=s2(n.el,n.svg),r=t(),i=t(-1),s=t(1);switch(n.property){case"x":return(r.x-A.x)*A.w;case"y":return(r.y-A.y)*A.h;case"angle":return Math.atan2(s.y-i.y,s.x-i.x)*180/Math.PI}}function YP(n,e){var t=/[+-]?\d*\.?\d+(?:\.\d+)?(?:[eE][+-]?\d+)?/g,A=n2(je.pth(n)?n.totalLength:n,e)+"";return{original:A,numbers:A.match(t)?A.match(t).map(Number):[0],strings:je.str(n)||e?A.split(t):[]}}function o2(n){var e=n?Sm(je.arr(n)?n.map(jP):jP(n)):[];return wm(e,function(t,A,r){return r.indexOf(t)===A})}function a2(n){var e=o2(n);return e.map(function(t,A){return{target:t,id:A,total:e.length,transforms:{list:A2(t)}}})}function a5(n,e){var t=ox(e);if(/^spring/.test(t.easing)&&(t.duration=JP(t.easing)),je.arr(n)){var A=n.length,r=A===2&&!je.obj(n[0]);r?n={value:n}:je.fnc(e.duration)||(t.duration=e.duration/A)}var i=je.arr(n)?n:[n];return i.map(function(s,o){var a=je.obj(s)&&!je.pth(s)?s:{value:s};return je.und(a.delay)&&(a.delay=o?0:e.delay),je.und(a.endDelay)&&(a.endDelay=o===i.length-1?e.endDelay:0),a}).map(function(s){return Tm(s,t)})}function l5(n){for(var e=wm(Sm(n.map(function(i){return Object.keys(i)})),function(i){return je.key(i)}).reduce(function(i,s){return i.indexOf(s)<0&&i.push(s),i},[]),t={},A=function(i){var s=e[i];t[s]=n.map(function(o){var a={};for(var c in o)je.key(c)?c==s&&(a.value=o[c]):a[c]=o[c];return a})},r=0;r<e.length;r++)A(r);return t}function c5(n,e){var t=[],A=e.keyframes;A&&(e=Tm(l5(A),e));for(var r in e)je.key(r)&&t.push({name:r,tweens:a5(e[r],n)});return t}function u5(n,e){var t={};for(var A in n){var r=nx(n[A],e);je.arr(r)&&(r=r.map(function(i){return nx(i,e)}),r.length===1&&(r=r[0])),t[A]=r}return t.duration=parseFloat(t.duration),t.delay=parseFloat(t.delay),t}function h5(n,e){var t;return n.tweens.map(function(A){var r=u5(A,e),i=r.value,s=je.arr(i)?i[1]:i,o=Vi(s),a=cx(e.target,n.name,o,e),c=t?t.to.original:a,l=je.arr(i)?i[0]:c,u=Vi(l)||Vi(a),h=o||u;return je.und(s)&&(s=c),r.from=YP(l,h),r.to=YP(ux(s,l),h),r.start=t?t.end:0,r.end=r.start+r.delay+r.duration+r.endDelay,r.easing=ix(r.easing,r.duration),r.isPath=je.pth(i),r.isColor=je.col(r.from.original),r.isColor&&(r.round=1),t=r,r})}var l2={css:function(n,e,t){return n.style[e]=t},attribute:function(n,e,t){return n.setAttribute(e,t)},object:function(n,e,t){return n[e]=t},transform:function(n,e,t,A,r){if(A.list.set(e,t),e===A.last||r){var i="";A.list.forEach(function(s,o){i+=o+"("+s+") "}),n.style.transform=i}}};function c2(n,e){var t=a2(n);t.forEach(function(A){for(var r in e){var i=nx(e[r],A),s=A.target,o=Vi(i),a=cx(s,r,o,A),c=o||Vi(a),l=ux(n2(i,c),a),u=lx(s,r);l2[u](s,r,l,A.transforms,!0)}})}function d5(n,e){var t=lx(n.target,e.name);if(t){var A=h5(e,n),r=A[A.length-1];return{type:t,property:e.name,animatable:n,tweens:A,duration:r.end,delay:A[0].delay,endDelay:r.endDelay}}}function f5(n,e){return wm(Sm(n.map(function(t){return e.map(function(A){return d5(t,A)})})),function(t){return!je.und(t)})}function u2(n,e){var t=n.length,A=function(i){return i.timelineOffset?i.timelineOffset:0},r={};return r.duration=t?Math.max.apply(Math,n.map(function(i){return A(i)+i.duration})):e.duration,r.delay=t?Math.min.apply(Math,n.map(function(i){return A(i)+i.delay})):e.delay,r.endDelay=t?r.duration-Math.max.apply(Math,n.map(function(i){return A(i)+i.duration-i.endDelay})):e.endDelay,r}var qP=0;function p5(n){var e=Ax(ZP,n),t=Ax(rx,n),A=c5(t,n),r=a2(n.targets),i=f5(r,A),s=u2(i,t),o=qP;return qP++,Tm(e,{id:o,children:[],animatables:r,animations:i,duration:s.duration,delay:s.delay,endDelay:s.endDelay})}var Mn=[],XP=[],xm,m5=function(){function n(){xm=requestAnimationFrame(e)}function e(t){var A=Mn.length;if(A){for(var r=0;r<A;){var i=Mn[r];if(!i.paused)i.tick(t);else{var s=Mn.indexOf(i);s>-1&&(Mn.splice(s,1),A=Mn.length)}r++}n()}else xm=cancelAnimationFrame(xm)}return n}();function g5(){document.hidden?(Mn.forEach(function(n){return n.pause()}),XP=Mn.slice(0),fA.running=Mn=[]):XP.forEach(function(n){return n.play()})}typeof document<"u"&&document.addEventListener("visibilitychange",g5);function fA(n){n===void 0&&(n={});var e=0,t=0,A=0,r,i=0,s=null;function o(b){var x=window.Promise&&new Promise(function(w){return s=w});return b.finished=x,x}var a=p5(n),c=o(a);function l(){var b=a.direction;b!=="alternate"&&(a.direction=b!=="normal"?"normal":"reverse"),a.reversed=!a.reversed,r.forEach(function(x){return x.reversed=a.reversed})}function u(b){return a.reversed?a.duration-b:b}function h(){e=0,t=u(a.currentTime)*(1/fA.speed)}function d(b,x){x&&x.seek(b-x.timelineOffset)}function p(b){if(a.reversePlayback)for(var w=i;w--;)d(b,r[w]);else for(var x=0;x<i;x++)d(b,r[x])}function f(b){var x=0,w=a.animations,T=w.length;for(a.reversePlayback===!0&&a.rewind===!1&&(b=a.duration+a.delay-a.endDelay-b);x<T;){var M=w[x],v=M.animatable,E=M.tweens,C=E.length-1,P=E[C];C&&(P=wm(E,function(Ae){return b<Ae.end})[0]||P);for(var D=ai(b-P.start-P.delay,0,P.duration)/P.duration,_=isNaN(D)?1:P.easing(D),I=P.to.strings,B=P.round,N=[],W=P.to.numbers.length,X=void 0,F=0;F<W;F++){var k=void 0;if(a.reversePlayback===!0&&a.rewind===!1)var Q=P.to.numbers[F],z=P.from.numbers[F]||0;else var z=P.to.numbers[F],Q=P.from.numbers[F]||0;P.isPath?k=o5(P.value,_*z):k=Q+_*(z-Q),B&&(P.isColor&&F>2||(k=Math.round(k*B)/B)),N.push(k)}var U=I.length;if(!U)X=N[0];else{X=I[0];for(var j=0;j<U;j++){var q=I[j],V=I[j+1],ue=N[j];isNaN(ue)||(V?X+=ue+V:X+=ue+" ")}}l2[M.type](v.target,M.property,X,v.transforms),M.currentValue=X,x++}}function m(b){a[b]&&!a.passThrough&&a[b](a)}function y(){a.remaining&&a.remaining!==!0&&a.remaining--}function g(b){var x=a.duration,w=a.delay,T=x-a.endDelay,M=u(b);a.progress=ai(M/x*100,0,100),a.reversePlayback=M<a.currentTime,r&&p(M),!a.began&&a.currentTime>=0&&(a.began=!0,m("begin")),!a.loopBegan&&a.currentTime>0&&(a.loopBegan=!0,m("loopBegin")),M<=w&&a.currentTime!==0&&(f(0),m("change")),(M>=T&&a.currentTime!==x||!x)&&(f(x),m("change")),M>w&&M<T?(a.changeBegan||(a.changeBegan=!0,a.changeCompleted=!1,m("changeBegin")),m("change"),f(M)):a.changeBegan?(a.changeCompleted=!0,a.changeBegan=!1,m("change"),m("changeComplete")):a.began&&M>T&&(m("change"),m("changeComplete")),a.currentTime=ai(M,0,x),a.began&&m("update"),b>=x&&(t=0,y(),a.remaining?(e=A,m("loopComplete"),a.loopBegan=!1,a.direction==="alternate"&&l()):(a.paused=!0,a.completed||(a.completed=!0,m("loopComplete"),m("complete"),!a.passThrough&&"Promise"in window&&(s(),c=o(a)))))}return a.reset=function(){var b=a.direction;a.passThrough=!1,a.currentTime=0,a.progress=0,a.paused=!0,a.began=!1,a.loopBegan=!1,a.changeBegan=!1,a.completed=!1,a.changeCompleted=!1,a.reversePlayback=!1,a.reversed=b==="reverse",a.remaining=a.loop,r=a.children,i=r.length;for(var x=i;x--;)a.children[x].reset();(a.reversed&&a.loop!==!0||b==="alternate"&&a.loop===1)&&a.remaining++,f(a.reversed?a.duration:0)},a.set=function(b,x){return c2(b,x),a},a.tick=function(b){A=b,e||(e=A),g((A+(t-e))*fA.speed)},a.seek=function(b){g(u(b))},a.pause=function(){a.paused=!0,h()},a.play=function(){!a.paused||(a.completed&&a.reset(),a.paused=!1,Mn.push(a),h(),xm||m5())},a.reverse=function(){l(),a.completed=!a.reversed,h()},a.restart=function(){a.reset(),a.play()},a.reset(),a.autoplay&&a.play(),a}function QP(n,e){for(var t=e.length;t--;)sx(n,e[t].animatable.target)&&e.splice(t,1)}function y5(n){for(var e=o2(n),t=Mn.length;t--;){var A=Mn[t],r=A.animations,i=A.children;QP(e,r);for(var s=i.length;s--;){var o=i[s],a=o.animations;QP(e,a),!a.length&&!o.children.length&&i.splice(s,1)}!r.length&&!i.length&&A.pause()}}function v5(n,e){e===void 0&&(e={});var t=e.direction||"normal",A=e.easing?ix(e.easing):null,r=e.grid,i=e.axis,s=e.from||0,o=s==="first",a=s==="center",c=s==="last",l=je.arr(n),u=parseFloat(l?n[0]:n),h=l?parseFloat(n[1]):0,d=Vi(l?n[1]:n)||0,p=e.start||0+(l?u:0),f=[],m=0;return function(y,g,b){if(o&&(s=0),a&&(s=(b-1)/2),c&&(s=b-1),!f.length){for(var x=0;x<b;x++){if(!r)f.push(Math.abs(s-x));else{var w=a?(r[0]-1)/2:s%r[0],T=a?(r[1]-1)/2:Math.floor(s/r[0]),M=x%r[0],v=Math.floor(x/r[0]),E=w-M,C=T-v,P=Math.sqrt(E*E+C*C);i==="x"&&(P=-E),i==="y"&&(P=-C),f.push(P)}m=Math.max.apply(Math,f)}A&&(f=f.map(function(_){return A(_/m)*m})),t==="reverse"&&(f=f.map(function(_){return i?_<0?_*-1:-_:Math.abs(m-_)}))}var D=l?(h-u)/m:u;return p+D*(Math.round(f[g]*100)/100)+d}}function x5(n){n===void 0&&(n={});var e=fA(n);return e.duration=0,e.add=function(t,A){var r=Mn.indexOf(e),i=e.children;r>-1&&Mn.splice(r,1);function s(h){h.passThrough=!0}for(var o=0;o<i.length;o++)s(i[o]);var a=Tm(t,Ax(rx,n));a.targets=a.targets||n.targets;var c=e.duration;a.autoplay=!1,a.direction=e.direction,a.timelineOffset=je.und(A)?c:ux(A,c),s(e),a.rewind=e.rewind,e.seek(a.timelineOffset);var l=fA(a);s(l),i.push(l);var u=u2(i,n);return e.delay=u.delay,e.endDelay=u.endDelay,e.duration=u.duration,e.seek(0),e.reset(),e.autoplay&&e.play(),e},e}fA.version="3.2.0";fA.speed=1;fA.running=Mn;fA.remove=y5;fA.get=cx;fA.set=c2;fA.convertPx=ax;fA.path=s5;fA.setDashoffset=r5;fA.stagger=v5;fA.timeline=x5;fA.easing=ix;fA.penner=$P;fA.random=function(n,e){return Math.floor(Math.random()*(e-n+1))+n};var dx=fA;var h2=new S,d2=new S,f2=new Ke;function p2(n,e,t,A){if(A===0)return t.copy(n);if(A===1)return t.copy(e);let r=n.w*e.w+n.x*e.x+n.y*e.y+n.z*e.z;if(r>=1)return t.copy(n);let i=1-r*r;if(i<=Number.EPSILON){let l=1-A;return t.w=l*n.w+A*e.w,t.x=l*n.x+A*e.x,t.y=l*n.y+A*e.y,t.z=l*n.z+A*e.z,t.normalize(),t}let s=Math.sqrt(i),o=Math.atan2(s,r),a=Math.sin((1-A)*o)/s,c=Math.sin(A*o)/s;return t.w=n.w*a+e.w*c,t.x=n.x*a+e.x*c,t.y=n.y*a+e.y*c,t.z=n.z*a+e.z*c,t}function zs(n,e,t,A,r){let i=t[n]?t[n]:void 0,s=A[n];if(s==null)return;let o=i??e[n],a=s;if(o!==a)return{update:c=>{let l=ze.lerp(o,a,c);r?e[n]=Math.trunc(l):e[n]=l},start:()=>{e[n]=o},end:()=>{e[n]=a}}}function fx(n,e,t,A,r){let i=t[n]?t[n]:void 0,s=A[n];if(!s)return;let o=e[n],a=[...i??o],c=[...s];if(!(a.length!==c.length||$y(a,c)))return{update:l=>{a.forEach((u,h)=>{let d=ze.lerp(u,c[h],l);e[n][h]=r?Math.trunc(d):d})},start:()=>{Object.assign(e[n],a)},end:()=>{Object.assign(e[n],c)}}}function px(n,e,t,A){let r=t[n]?t[n]:void 0,i=A[n];if(!i)return;let s=e[n],o=r?new S().fromArray(r):s.clone(),a=new S().fromArray(i);if(!o.equals(a))return{update:c=>{s.lerpVectors(o,a,c)},start:()=>{s.copy(o)},end:()=>{s.copy(a)}}}function m2(n,e,t,A){let r=t[n]?t[n]:void 0,i=A[n];if(!i)return;let s=e[n],o=r?new he().fromArray(r):s.clone(),a=new S,c=new Ke,l=new S;o.decompose(a,c,l);let u=new he().fromArray(i),h=new S,d=new Ke,p=new S;if(u.decompose(h,d,p),!o.equals(u))return{update:f=>{f2.slerpQuaternions(c,d,f),h2.lerpVectors(a,h,f),d2.lerpVectors(l,p,f),s.compose(h2,f2,d2)},start:()=>{s.compose(a,c,l)},end:()=>{s.compose(h,d,p)}}}function g2(n,e,t,A,r){let i=t[n]?t[n]:void 0,s=A[n];if(!s)return;let o=e[n],a=i?typeof i=="string"?r.getColor(i).clone():new _e().setRGB(i.r,i.g,i.b):o.clone(),c=typeof s=="string"?r.getColor(s).clone():new _e().setRGB(s.r,s.g,s.b);if(a.equals(c))return;let l=o.clone();return e[n]=l,{update:u=>{l.lerpColors(a,c,u)},start:()=>{l.copy(a)},end:()=>{l.copy(c)}}}function y2(n,e,t){let A=[],r=n.cameraType==="OrthographicCamera"?e.orthographic?.zoom:e.perspective?.zoom,i=n.cameraType==="OrthographicCamera"?t.orthographic?.zoom:t.perspective?.zoom;if(i!==void 0){let s=r??n.zoom,o=i;s!==o&&A.push({update:a=>{n.zoom=ze.lerp(s,o,a),n.updateProjectionMatrix()},start:()=>{n.zoom=s,n.updateProjectionMatrix()},end:()=>{n.zoom=o,n.updateProjectionMatrix()}})}if(t.targetOffset!==void 0){let s=zs("targetOffset",n,e,t);s&&A.push(s)}return A}function v2(n,e,t){let A=[];if(!("geometry"in t))return A;let r="geometry"in e?e.geometry:{},i=t.geometry,{width:s,height:o,depth:a}=r,{width:c,height:l,depth:u}=i;if(c!==void 0||l!==void 0||u!==void 0){let{width:h,height:d,depth:p}=n.geometry.userData.parameters,f=s??h,m=o??d,y=a??p,g=c??h,b=l??d,x=u??p;(f!==g||m!==b||y!==x)&&!Vt(n)&&A.push({update:w=>{n.updateGeometry({parameters:{width:ze.lerp(f,g,w),height:ze.lerp(m,b,w),depth:ze.lerp(y,x,w)}}),n.invalidateDownstreamBooleanData()},start:()=>{n.updateGeometry({parameters:{width:f,height:m,depth:y}}),n.invalidateDownstreamBooleanData()},end:()=>{n.updateGeometry({parameters:{width:g,height:b,depth:x}}),n.invalidateDownstreamBooleanData()}})}return A}function x2(n,e,t,A){let r=[];if(t.intensity!==void 0){let i=zs("intensity",n,e,t);i&&r.push(i)}if(t.color!==void 0){let i=g2("color",n,e,t,A);i&&r.push(i)}return r}function w2(n,e,t,A){let r=[];if(Array.isArray(n.material)){if(!("materials"in t&&t.materials))return r;let i="materials"in e&&e.materials?e.materials:[],s=t.materials;n.material.forEach((o,a)=>{if(!s[a])return;let c=i[a]??{},l=s[a];typeof c=="string"||typeof l=="string"||r.push(...b2(o,c,l,A))})}else{if(!("material"in t&&t.material))return r;let i="material"in e&&e.material?e.material:{},s=t.material;if(typeof i=="string"||typeof s=="string")return r;r.push(...b2(n.material,i,s,A))}return r}function b2(n,e,t,A){let r=[];for(let i of n.layers){let s=e.layers?.data(i.uuid),o=t.layers.data(i.uuid);if(!o||!(i.visible??!0)||!(o.visible??!0))continue;let a=i.getNames().filter(c=>!Ap.some(l=>c.includes(l)));for(let c of a)try{let l=i.getValue(c),u;if(c==="colors")u=C5(i,s,o,c);else if(Array.isArray(l))c==="steps"&&(u=E5(i,s,o,c));else if(typeof l=="number")u=b5(i,s,o,c);else{if(typeof l=="boolean")continue;l instanceof G?u=w5(i,s,o,c):l instanceof S?u=S5(i,s,o,c):l instanceof AA?u=M5(i,s,o,c,A):l instanceof _e?u=T5(i,s,o,c,A):"isTexture"in l&&(u=P5(i,s,o,c))}u&&(Array.isArray(u)?r.push(...u):r.push(u))}catch(l){console.error(`lerpMaterial: unexpected material layer for ${c}`,l)}}return r}function b5(n,e,t,A){if(!n.hasValue(A)||!(A in t))return;let r=e?e[A]:n.getValue(A),i=t[A];if(r!==i)return{update:s=>{n.setValue(A,ze.lerp(r,i,s))},start:()=>{n.setValue(A,r)},end:()=>{n.setValue(A,i)}}}function w5(n,e,t,A){if(!n.hasValue(A)||!(A in t))return;let r=n.getValue(A),i=e?new G().fromArray(e[A]):r.clone(),s=new G().fromArray(t[A]);if(!i.equals(s))return{update:o=>{r.lerpVectors(i,s,o)},start:()=>{r.copy(i)},end:()=>{r.copy(s)}}}function S5(n,e,t,A){if(!n.hasValue(A)||!(A in t))return;let r=n.getValue(A),i=e?new S().fromArray(e[A]):r.clone(),s=new S().fromArray(t[A]);if(!i.equals(s))return{update:o=>{r.lerpVectors(i,s,o)},start:()=>{r.copy(i)},end:()=>{r.copy(s)}}}function T5(n,e,t,A,r){if(!n.hasValue(A)||!(A in t))return;let i=e?e[A]:void 0,s=t[A],o=n.getValue(A),a=i?typeof i=="string"?r.getColor(i).clone():new _e().setRGB(i.r,i.g,i.b):o.clone(),c=typeof s=="string"?r.getColor(s).clone():new _e().setRGB(s.r,s.g,s.b);if(a.equals(c))return;let l=o.clone();return n.setValue(A,l),{update:u=>{l.lerpColors(a,c,u)},start:()=>{l.copy(a)},end:()=>{l.copy(c)}}}function M5(n,e,t,A,r){if(!n.hasValue(A)||!(A in t))return;let i=e?e[A]:void 0,s=t[A],o=n.getValue(A),a=i?typeof i=="string"?r.getColor(i).clone():new _e().setRGB(i.r,i.g,i.b):o.clone(),c=typeof s=="string"?r.getColor(s).clone():new AA(s.r,s.g,s.b,s.a);if(a.equals(c))return;let l=o.clone();return n.setValue(A,l),{update:u=>{l.lerpColors(a,c,u)},start:()=>{l.copy(a)},end:()=>{l.copy(c)}}}function E5(n,e,t,A="steps"){if(!n.hasValue(A)||!(A in t))return;let r=[],i=n.getValue(A),s=e?e[A]:i,o=t[A];for(let a=0;a<i.length;++a){let c=s[a],l=o[a];c!==l&&r.push({update:u=>{i[a]=ze.lerp(c,l,u)},start:()=>{i[a]=c},end:()=>{i[a]=l}})}return r.length?r:void 0}function C5(n,e,t,A="colors"){if(!n.hasValue(A)||!(A in t))return;let r=[],i=n.getValue(A),s=e?e[A]:i.map(a=>a.toArray()),o=t[A];for(let a=0;a<i.length;++a){let c=[...s[a]],l=[...o[a]];Bu.isEqual(c,l)||r.push({update:u=>{i[a].fromArray(Bu.lerp(c,l,u))},start:()=>{i[a].fromArray(c)},end:()=>{i[a].fromArray(l)}})}return r.length?r:void 0}function P5(n,e,t,A="texture"){if(!n.hasValue(A)||!(A in t))return;let r=n.getNode("mat");if(!r)return;let i=e?e[A]:r,s=t[A],o=[...i.repeat],a=[...i.offset],c=[...s.repeat],l=[...s.offset];if(!So.isEqual(o,c)||!So.isEqual(a,l))return{update:u=>{r.repeat=So.lerp(o,c,u),r.offset=So.lerp(a,l,u),r.updateMatrix()},start:()=>{r.repeat=[...o],r.offset=[...a],r.updateMatrix()},end:()=>{r.repeat=[...c],r.offset=[...l],r.updateMatrix()}}}var mx=new S,S2=new Yt;function T2(n,e,t,A){let r=[],i=px("position",n,e,t);i&&r.push(i);let s=px("scale",n,e,t);s&&r.push(s);let o=D5(n,e,t,A);o&&r.push(o);let a=m2("hiddenMatrix",n,e,t);if(a&&r.push(a),i||s||o||a){let c=()=>{n.updateMatrix(),n.parent?.matrixWorldFusedFalse&&(n.matrixWorld.multiplyMatrices(n.parent.matrixWorldFusedFalse,n.matrix),n.matrixWorldNeedsUpdate=!1),tA(n)&&Vt(n.parent)&&n.invalidateDownstreamBooleanData(!0)};r.push({update:c,start:c,end:c})}return r}function D5(n,e,t,A){let r=e?.rotation?e.rotation:void 0,i=t.rotation;if(!i)return;let s=r?new S().fromArray(r):new S().setFromEuler(n.rotation),o=new S().fromArray(i);if(s.equals(o))return;let a=mx.subVectors(o,s);if(A&&a.toArray().every(c=>Math.abs(c)<2*Math.PI)){let c=new Ke().setFromEuler(S2.setFromVector3(s)),l=new Ke().setFromEuler(S2.setFromVector3(o));return{update:u=>{p2(c,l,n.quaternion,u)},start:()=>{n.rotation.setFromVector3(s)},end:()=>{n.rotation.setFromVector3(o)}}}else return{update:c=>{mx.lerpVectors(s,o,c),n.rotation.setFromVector3(mx)},start:()=>{n.rotation.setFromVector3(s)},end:()=>{n.rotation.setFromVector3(o)}}}function Sc(n,e,t,A){if(typeof e[n]=="number")return zs(n,e,t??{},A);if(Array.isArray(e[n]))return fx(n,e,t??{},A)}function gx(n,e,t){let A=[];if(!("cloner"in t)||!n.cloner)return A;let r=n.cloner,i="cloner"in e?e.cloner:{},s=t.cloner;xv.forEach(h=>{let d;h==="count"?d=zs("count",r.parameters,i,s,!0):d=Sc(h,r.parameters,i??{},s),d&&A.push(d)});let o=I5(r,i,s);o?.length&&A.push(...o);let a=L5(r,i,s);a?.length&&A.push(...a);let c=_5(r,i,s);c?.length&&A.push(...c);let l=O5(r,i,s);l?.length&&A.push(...l);let u=R5(r,i,s);return u?.length&&A.push(...u),A.length&&A.push({update:()=>{r.update()}}),A}function I5(n,e,t){if(n.parameters.type!=="radial")return;let A=e.radial,r=t.radial;if(!r)return;let i=n.parameters.radial,s=[];return bv.forEach(o=>{let a=Sc(o,i,A??{},r);a&&s.push(a)}),s}function L5(n,e,t){if(n.parameters.type!=="linear")return;let A=e.linear,r=t.linear;if(!r)return;let i=[],s=n.parameters.linear;return wv.forEach(o=>{let a=Sc(o,s,A??{},r);a&&i.push(a)}),i}function _5(n,e,t){if(n.parameters.type!=="grid")return;let A=e.grid,r=t.grid;if(!r)return;let i=[],s=n.parameters.grid;return Sv.forEach(o=>{let a;o==="count"?a=fx(o,s,A??{},r,!0):a=Sc(o,s,A??{},r),a&&i.push(a)}),i}function O5(n,e,t){if(n.parameters.type!=="toObject")return;let A=e.toObject,r=t.toObject;if(!r)return;let i=[],s=n.parameters.toObject;return Tv.forEach(o=>{let a;o==="count"?a=zs(o,s,A??{},r,!0):a=Sc(o,s,A??{},r),a&&i.push(a)}),i}function R5(n,e,t){if(!n.parameters.randomness)return;let A=e.randomnessObject,r=t.randomnessObject;if(!r)return;let i=[],s=n.parameters.randomnessObject;return Mv.forEach(o=>{let a=Sc(o,s,A??{},r);a&&i.push(a)}),i}function Mm(n,e,t,A,r){let i=[];return(n.visible||Vt(n.parent))&&i.push(...T2(n,e,t,r)),tA(n)?((n.visible||Vt(n.parent))&&i.push(...v2(n,e,t)),n.visible&&(i.push(...w2(n,e,t,A)),i.push(...gx(n,e,t)))):n instanceof Gn?n.visible&&i.push(...gx(n,e,t)):aE(n)?n.visible&&i.push(...x2(n,e,t,A)):oE(n)&&i.push(...y2(n,e,t)),i.length?{update:s=>{i.forEach(o=>o.update(s))},start:s=>{i.forEach(o=>o.start?.(s))},end:s=>{i.forEach(o=>o.end?.(s))}}:void 0}var Hh=new S,N5=new Ke;function E2(n,e,t,A=!1){let r=[];n.objects.traverse((i,s)=>{let o=e.find(i);if(!o||(delete o.states,!s.states))return;let a=!1;r.some(l=>n.objects.isDescendantOf(i,l))?a=!0:s.physics?.fusedBody===!0&&s.physics.rigidBody==="dynamic"&&r.push(i),o.data=s,o.currentState=null,o.currentTransitionAction=null;let c=!1;for(let l of s.states){let u=l.data.geometry;u&&Object.keys(u).length!==0&&(c=!0),!(n.environment.usePhysics===!0&&s.physics&&(s.physics.rigidBody==="dynamic"||a)&&(l.data.position!==void 0||l.data.rotation!==void 0||l.data.hiddenMatrix!==void 0))&&(o.states||(o.states={}),o.states[l.id]=Fu.patch(s,l.data))}A&&(o.matrixWorld0!==void 0?(o.matrixWorld.identity(),o.rigidBody?.setTranslation(Hh,!0),o.rigidBody?.setRotation(N5,!0),o.rigidBody?.setLinvel(Hh,!0),o.rigidBody?.setAngvel(Hh,!0)):o.rigidBody&&(o.rigidBody?.setTranslation(o.position0,!0),o.rigidBody?.setRotation(o.rotation0,!0),o.rigidBody?.setLinvel(Hh,!0),o.rigidBody?.setAngvel(Hh,!0)),o.hiddenMatrix0!==void 0&&(o.hiddenMatrix.copy(o.hiddenMatrix0),o.hiddenMatrix.premultiply(o.parent.matrixWorld0))),yx(o,s,null,t,s.events.find(l=>l.data.type==="Follow"||l.data.type==="LookAt")!==void 0,c)})}function M2(n,e,t){typeof e!="string"&&n.reset(e,t)}function yx(n,e,t,A,r=!1,i=!0){if(!r&&e.states.length===0)return;let s=t===null?e:Fu.patch(e,e.states.data(t));if(Yv(n,s),n instanceof dt&&s.type==="Mesh"){if(i===!0&&(n instanceof Ns?n.buildFromStore(s.geometry):n.updateGeometry({parameters:s.geometry},A)),n.freeBooleanPointer(),Vt(n.parent)&&n.parent.invalidateDownstreamBooleanData().recomputeBoolean(),s.cloner&&n.cloner?.fromClonerState(s.cloner),"material"in s){if(n.material instanceof Array)return;M2(n.material,s.material,A)}else if("materials"in s){if(!(n.material instanceof Array))return;var o=0;for(let a of s.materials)M2(n.material[o],a,A),o++}}else if(n instanceof Gn&&s.type==="Empty")s.cloner&&n.cloner?.fromClonerState(s.cloner);else if(s.type==="DirectionalLight")n.fromDirectionalLightState(s,A);else if(s.type==="PointLight")n.fromPointLightState(s,A);else if(s.type==="SpotLight")n.fromSpotLightState(s,A);else if(n instanceof dA&&bs.is(s.type)){let a=s;n.setZoom("PerspectiveCamera",a.perspective.zoom),n.setZoom("OrthographicCamera",a.orthographic.zoom),n.isUpVectorFlipped=a.isUpVectorFlipped,n.targetOffset=a.targetOffset,n.fov=a.perspective.fov}}function F5(n){let e={duration:n.duration,easing:"linear"};switch(n.easing){case 0:e.easing="cubicBezier( 0, 0, 1, 1 )";break;case 1:e.easing="cubicBezier( .25, .1, .25, 1 )";break;case 2:e.easing="cubicBezier( .42, 0, 1, 1 )";break;case 3:e.easing="cubicBezier( 0, 0, .58, 1 )";break;case 4:e.easing="cubicBezier( .42, 0, .58, 1 )";break;case 5:let{control1:t,control2:A}=n;e.easing=`cubicBezier(
4912
+ `)>=0&&(e-=i),A===3?t*.5-e*.5:A===2?t-e:0}getLineInitialOffsetY(e,t,A,r,i){let s=t*e,o=Math.abs(this.ascender-this.descender)*r,a=e-o,c=-this.ascender*r-a/2;return i===3?-(A-s-c):i===2?-(A*.5-s*.5-c):c}createPath(e,t,A,r,i){let s=e.getPath(A,-r,i.fontSize,{kerning:!1,letterSpacing:i.letterSpacing});if(!s){console.error('THREE.Font: character "'+e+'" does not exists in font family '+this.familyName+".");return}let o=new dm,a=(e.advanceWidth??1)*t;if(e)for(let c of s.commands){let l=o.currentPath?.currentPoint;if(!(l&&c.type!=="Z"&&l.x===c.x&&-l.y===c.y))switch(c.type){case"M":o.moveTo(c.x,-c.y);break;case"L":o.lineTo(c.x,-c.y);break;case"Q":o.quadraticCurveTo(c.x1,-c.y1,c.x,-c.y);break;case"C":o.bezierCurveTo(c.x1,-c.y1,c.x2,-c.y2,c.x,-c.y);break}}return o.subPaths.forEach(c=>{let l=GH(c.curves);l!==void 0&&c.currentPoint.distanceTo(l)>0&&c.lineTo(l.x,l.y)}),{offsetX:a+i.fontSize*i.letterSpacing,path:o}}getCharWidth(e,t){return this.font?.getAdvanceWidth(e,t.fontSize,{kerning:!0,letterSpacing:t.letterSpacing})??0}getTextWidth(e,t){return this.font?.getAdvanceWidth(e,t.fontSize,{kerning:!0,letterSpacing:t.letterSpacing})??0}computeSpaceWidthForLine(e,t,A){let r=this.getCharWidth(" ",A),i=e[t];if(i){let s=this.countSpaces(i.trimEnd());if(A.horizontalAlign===4&&t<e.length-1&&s){let o=A.width,a=this.getTextWidth(i,A);return(o-(a-s*r))/s}}return r}countSpaces(e){return(e.match(/ /g)||[]).length}};function GH(n){if(n.length){let e=n[0];if(e instanceof XA)return e.v1;if(e instanceof qA||e instanceof _n)return e.v0}}var zo=class{constructor(e,t={}){this.deletedMaterial=new Uo(bA.defaultTwoLayerData("phong"),this);this.deletedImage=new ti(dp.emptyImage);this.deletedVideo=new ti(xl.defaultVideo);this.materials={};this.images={};this.videos={};this.colors={};this.audios={};this.fonts={};this.penumbraSize=[];this.onImageLoad=()=>{this._onImageLoad&&this._onImageLoad()};this.onFontLoad=()=>{this._onFontLoad&&this._onFontLoad()};if(t.images)for(let[A,r]of Object.entries(t.images))this.addImage(A,r);if(t.videos)for(let[A,r]of Object.entries(t.videos))this.addVideo(A,r);if(t.audios)for(let[A,r]of Object.entries(t.audios))this.addAudio(A,r.data);this.reset(e)}setOnImageLoad(e){this._onImageLoad=e}setOnFontLoad(e){this._onFontLoad=e}reset(e){for(let[t,A]of Object.entries(e.images))this.addImage(t,A);for(let[t,A]of Object.entries(e.videos))this.addVideo(t,A);for(let[t,A]of Object.entries(e.colors))this.addColor(t,A);for(let[t,A]of Object.entries(e.materials))this.addMaterial(t,new Uo(A,this));for(let[t,A]of Object.entries(e.audios))this.addAudio(t,A.data);for(let[t,A]of Object.entries(e.fonts))this.addFont(t,A);this.penumbraSize=e.penumbraSize}addMaterial(e,t){t.uuid=e,this.materials[e]=t}deleteMaterial(e){this.materials[e]&&(this.materials[e].dispose(),delete this.materials[e])}getMaterial(e){let t=this.materials[e];return t}getMaterialOrDeletedPlaceholder(e){return this.materials[e]??this.deletedMaterial}material(e){return typeof e=="string"?this.getMaterialOrDeletedPlaceholder(e):new Fn(e,this)}getMaterials(){return this.materials}addImage(e,t){return this.images[e]?(this.images[e].updateSrc(t.data),!0):(this.images[e]=new ti(t,this.onImageLoad),!1)}deleteImage(e){this.images[e]&&delete this.images[e]}getDefaultImage(){return this.images.image_0}getImage(e){return this.images[e]??this.deletedImage}image(e){return typeof e=="string"?this.getImage(e):new ko(e,this.onImageLoad)}addVideo(e,t){return this.videos[e]?(this.videos[e].updateSrc(t.data),!0):(this.videos[e]=new ti(t,this.onImageLoad),!1)}deleteVideo(e){this.videos[e]&&delete this.videos[e]}getVideo(e){return this.videos[e]??this.deletedVideo}video(e){return typeof e=="string"?this.getVideo(e):new ko(e,this.onImageLoad)}addColor(e,t){return this.colors[e]?(this.onColorOrImageUpdate&&this.onColorOrImageUpdate(e),"a"in t?this.colors[e].setRGBA(t.r,t.g,t.b,t.a):this.colors[e].setRGBA(t.r,t.g,t.b,1),!0):("a"in t?this.colors[e]=new Os(t.r,t.g,t.b,t.a):this.colors[e]=new Os(t.r,t.g,t.b,1),!1)}updateColor(e,t){if(this.colors[e]){this.onColorOrImageUpdate&&this.onColorOrImageUpdate(e);let A=this.colors[e];return this.colors[e].r=t.r??A.r,this.colors[e].g=t.g??A.g,this.colors[e].b=t.b??A.b,this.colors[e].a=t.a??A.a,!0}return!1}deleteColor(e){this.colors[e]&&delete this.colors[e]}getColor(e){return this.colors[e]}color(e){let t;if(typeof e=="string"){let A=this.getColor(e);A?t=A:(console.warn("Tried to create color layer params with a color key that does not exist in the assets manager"),t=new AA(0,0,0,0))}else return"a"in e?new AA(e.r,e.g,e.b,e.a):new AA(e.r,e.g,e.b,1);return t}addAudio(e,t){this.audios[e]=t}getAudio(e){let t=this.audios[e];if(t instanceof Gs)return t;{let A=new Gs({src:t});return this.audios[e]=A,A}}deleteAudio(e){this.audios[e]&&delete this.audios[e]}addFont(e,t){this.fonts[e]=new pm(t,this.onFontLoad)}getFont(e){return this.fonts[e]}deleteFont(e){this.fonts[e]&&delete this.fonts[e]}dispose(){Object.keys(this.materials).forEach(t=>this.deleteMaterial(t)),this._onImageLoad=void 0,this._onFontLoad=void 0,Object.values(this.audios).forEach(t=>{t instanceof Gs&&t.dispose()}),this.audios={}}},eve=new zo(Cl.emptyData());function kH(n,e){return n.distance-e.distance}function kP(n,e,t){if(!(!$n(e)||!e.visible||e.raycastLock)){tA(e)&&e.raycast(n,t);for(let A of e.children)kP(n,A,t)}}function gm(n,e,t){if(!t.some(r=>kh(n,r)!==void 0))return[];let A=[];return e.children.forEach(r=>kP(n,r,A)),A.sort(kH),A}function ym(n){let e=[];if(n.length){let t=n[0].object;$n(t)&&e.push(t);let A=t.parent;for(;A;)jv(A)&&e.push(A),A=A.parent}return e}function kh(n,e){if(tA(e)){if(!e.raycastLock&&e.visible){let t=[];return e.raycast(n,t),t.length?t[0]:void 0}}else if(jv(e))return UP(n,e)}function UP(n,e){if(!(!$n(e)||!e.visible||e.raycastLock)){if(tA(e)){let t=[];if(e.raycast(n,t),t.length)return t[0]}for(let t of e.children){let A=UP(n,t);if(A)return A}}}function UH(n){if(n.style.transform!==""){let e=getComputedStyle(n).getPropertyValue("transform");if(e!=="none"){let t=e.replace("matrix(","").split(",");return{x:parseFloat(t[0]),y:parseFloat(t[3])}}}return{x:1,y:1}}function GP(n){let e=n.getViewport(new Ve),t=UH(n.domElement);return{left:e.x*t.x,top:e.y*t.y,width:e.z*t.x,height:e.w*t.y}}function VH(n,e,t,A){let r=t.height-A.height,i=(n-A.left-t.left)*(t.width/A.width),s=(e-r+A.top-t.top)*(t.height/A.height);return{x:i/t.width*2-1,y:-(s/t.height)*2+1}}var mm=class{constructor(e,t,A,r,i,s){this.isExport=s;this.raycaster=new um;this.raycasterNeedsUpdate=!0;this.stopRaycast=!1;this.sharedAssets=new zo(Cl.emptyData());this.scene=new ki({...sp.defaultData},this.sharedAssets);this.camera=new dA;this.renderer=e,this.domElement=e.domElement,this._domRect=this.domElement.getBoundingClientRect(),this._viewRect=GP(this.renderer),this.stopRaycast=i,this.sharedAssets=r,this.scene=t,this.camera=A}get domRect(){return this._domRect}get viewRect(){return this._viewRect}updaterRect(){this._domRect=this.domElement.getBoundingClientRect(),this._viewRect=GP(this.renderer)}updateRaycaster(e){if(!this.raycasterNeedsUpdate)return;this.raycasterNeedsUpdate=!1;let{pageX:t,pageY:A}=e.touches!==void 0&&e.touches.length>0?e.touches[0]:e;this.raycaster.setFromCamera(VH(t,A,this._domRect,this._viewRect),this.camera)}};var $0=(s=>(s[s.keydown=0]="keydown",s[s.keyup=1]="keyup",s[s.pointerdown=2]="pointerdown",s[s.pointerup=3]="pointerup",s[s.pointermove=4]="pointermove",s[s.wheel=5]="wheel",s))($0||{}),kA=class{constructor(e){this.eventContext=e;this.domEventsNeeded=new Set;this.hasVideoAction=!1}connect(){}disconnect(){}};var VP=new Map,Uh=new Map,Ui=class{constructor(e,t,A,r){this.data=t;let{audio:i,volume:s,delay:o,loop:a}=t;if(!i)throw new Error("Missing property");let c=typeof i=="string"?r.getAudio(i).src:i.data;this.audioPlayer=new Gs({src:c,volume:s,delay:o,loop:a}),Uh.has(A.uuid)?Uh.get(A.uuid).push(this):Uh.set(A.uuid,[this]),VP.set(e,this)}playByToggle(){this.data.toggle==="stop"?this.audioPlayer.status==="playing"?this.audioPlayer.stop():(this.audioPlayer.stop(),this.audioPlayer.play()):this.data.toggle==="pause"?this.audioPlayer.status==="playing"?this.audioPlayer.pause():this.audioPlayer.play():(this.audioPlayer.stop(),this.audioPlayer.play())}dispose(){this.audioPlayer.stop()}},bc=class{constructor(e){this.data=e}dispatch(){this.data.playAudio?this.pauseAudio(this.data.playAudio):this.data.object?this.pauseAllAudiosFromObject(this.data.object):this.pauseAllAudios()}pauseAudio(e){let t=VP.get(e);!t||(this.data.delay>0?(this.disposeDelay(),this.timeoutId=window.setTimeout(()=>{t.audioPlayer[this.data.interaction](),this.disposeDelay()},this.data.delay)):t.audioPlayer[this.data.interaction]())}pauseAllAudiosFromObject(e){let t=Uh.get(e);!t?.length||(this.data.delay>0?(this.disposeDelay(),this.timeoutId=window.setTimeout(()=>{t.forEach(A=>A.audioPlayer[this.data.interaction]()),this.disposeDelay()},this.data.delay)):t.forEach(A=>A.audioPlayer[this.data.interaction]()))}pauseAllAudios(){let e=[...Uh.values()];!e.length||(this.data.delay>0?(this.disposeDelay(),this.timeoutId=window.setTimeout(()=>{e.forEach(t=>{t.forEach(A=>{A.audioPlayer[this.data.interaction]()})}),this.disposeDelay()},this.data.delay)):e.forEach(t=>{t.forEach(A=>{A.audioPlayer[this.data.interaction]()})}))}disposeDelay(){clearTimeout(this.timeoutId),delete this.timeoutId}dispose(){clearTimeout(this.timeoutId),delete this.timeoutId}},oi=class{constructor(e,t,A,r){this.data=t;if(t.interaction==="play")this.interaction=new Ui(e,t,A,r);else if(t.interaction==="pause"||t.interaction==="stop")this.interaction=new bc(t);else throw new Error("Missing property")}dispatchBasic(){this.interaction instanceof Ui?this.interaction.playByToggle():this.interaction.dispatch()}dispatchConditional(){this.interaction instanceof Ui?this.interaction.audioPlayer.play():this.interaction.dispatch()}dispatchGameControl(e){this.interaction instanceof Ui&&(e==="start"?this.interaction.audioPlayer.play():this.interaction.audioPlayer.stop())}dispose(){this.interaction.dispose()}};function zP(n,e){let t=n.material.layers.find(A=>A.uuid===e);return t.color.texture.image.img instanceof HTMLVideoElement?t.color.texture.image.img:void 0}var HP=new Map,Vh=new Map,Us=class{constructor(e,t,A){this.data=t;this.delay=0;this.status="stopped";let{layerId:r,loop:i,volume:s,delay:o}=t;if(this.object=A,r===void 0)throw new Error("Missing property");let a=zP(A,r);if(a)this.videoElement=a,this.videoElement.loop=i===1/0,s!==void 0&&(this.videoElement.volume=s);else throw new Error("Missing property");o!==void 0&&(this.delay=o),Vh.has(A.uuid)?Vh.get(A.uuid).push(this):Vh.set(A.uuid,[this]),HP.set(e,this),t.triggerAfter==="autoplay"?this.videoElement.muted=!0:this.videoElement.muted=!1}play(){this.delayTimerId=window.setTimeout(()=>{this.videoElement.play(),this.clearDelay()},this.delay),this.status="playing"}clearDelay(){this.delayTimerId&&(clearTimeout(this.delayTimerId),delete this.delayTimerId)}pause(){this.videoElement.pause(),this.status="paused"}stop(){this.videoElement.pause(),this.videoElement.currentTime=0,this.status="stopped",this.clearDelay()}playByToggle(){this.data.toggle==="stop"?this.status==="playing"?this.stop():(this.stop(),this.play()):this.data.toggle==="pause"?this.status==="playing"?this.pause():this.play():(this.stop(),this.play())}dispose(){this.stop(),this.videoElement.muted=!0}},wc=class{constructor(e){this.data=e}dispatch(){this.data.playVideo?this.pauseVideo(this.data.playVideo):this.data.object?this.pauseAllVideosFromObject(this.data.object):this.pauseAllVideos()}pauseVideo(e){let t=HP.get(e);!t||(this.data.delay>0?(this.disposeDelay(),this.timeoutId=window.setTimeout(()=>{t[this.data.interaction](),this.disposeDelay()},this.data.delay)):t[this.data.interaction]())}pauseAllVideosFromObject(e){let t=Vh.get(e);!t?.length||(this.data.delay>0?(this.disposeDelay(),this.timeoutId=window.setTimeout(()=>{t.forEach(A=>A[this.data.interaction]()),this.disposeDelay()},this.data.delay)):t.forEach(A=>A[this.data.interaction]()))}pauseAllVideos(){let e=[...Vh.values()];!e.length||(this.data.delay>0?(this.disposeDelay(),this.timeoutId=window.setTimeout(()=>{e.forEach(t=>{t.forEach(A=>{A[this.data.interaction]()})}),this.disposeDelay()},this.data.delay)):e.forEach(t=>{t.forEach(A=>{A[this.data.interaction]()})}))}disposeDelay(){clearTimeout(this.timeoutId),delete this.timeoutId}dispose(){clearTimeout(this.timeoutId),delete this.timeoutId}},Vs=class{constructor(e,t,A){this.data=t;if(t.interaction==="play")this.interaction=new Us(e,t,A);else if(t.interaction==="pause"||t.interaction==="stop")this.interaction=new wc(t);else throw new Error("Missing property")}dispatchBasic(){this.interaction instanceof Us?this.interaction.playByToggle():this.interaction.dispatch()}dispatchConditional(){this.interaction instanceof Us?this.interaction.play():this.interaction.dispatch()}dispose(){this.interaction.dispose()}};var zH="text/plain",HH="us-ascii",WP=(n,e)=>e.some(t=>t instanceof RegExp?t.test(n):t===n),WH=(n,{stripHash:e})=>{let t=/^data:(?<type>[^,]*?),(?<data>[^#]*?)(?:#(?<hash>.*))?$/.exec(n);if(!t)throw new Error(`Invalid URL: ${n}`);let{type:A,data:r,hash:i}=t.groups,s=A.split(";");i=e?"":i;let o=!1;s[s.length-1]==="base64"&&(s.pop(),o=!0);let a=(s.shift()||"").toLowerCase(),l=[...s.map(u=>{let[h,d=""]=u.split("=").map(p=>p.trim());return h==="charset"&&(d=d.toLowerCase(),d===HH)?"":`${h}${d?`=${d}`:""}`}).filter(Boolean)];return o&&l.push("base64"),(l.length>0||a&&a!==zH)&&l.unshift(a),`data:${l.join(";")},${o?r.trim():r}${i?`#${i}`:""}`};function ex(n,e){if(e={defaultProtocol:"http:",normalizeProtocol:!0,forceHttp:!1,forceHttps:!1,stripAuthentication:!0,stripHash:!1,stripTextFragment:!0,stripWWW:!0,removeQueryParameters:[/^utm_\w+/i],removeTrailingSlash:!0,removeSingleSlash:!0,removeDirectoryIndex:!1,sortQueryParameters:!0,...e},n=n.trim(),/^data:/i.test(n))return WH(n,e);if(/^view-source:/i.test(n))throw new Error("`view-source:` is not supported as it is a non-standard protocol");let t=n.startsWith("//");!t&&/^\.*\//.test(n)||(n=n.replace(/^(?!(?:\w+:)?\/\/)|^\/\//,e.defaultProtocol));let r=new URL(n);if(e.forceHttp&&e.forceHttps)throw new Error("The `forceHttp` and `forceHttps` options cannot be used together");if(e.forceHttp&&r.protocol==="https:"&&(r.protocol="http:"),e.forceHttps&&r.protocol==="http:"&&(r.protocol="https:"),e.stripAuthentication&&(r.username="",r.password=""),e.stripHash?r.hash="":e.stripTextFragment&&(r.hash=r.hash.replace(/#?:~:text.*?$/i,"")),r.pathname){let s=/\b[a-z][a-z\d+\-.]{1,50}:\/\//g,o=0,a="";for(;;){let l=s.exec(r.pathname);if(!l)break;let u=l[0],h=l.index,d=r.pathname.slice(o,h);a+=d.replace(/\/{2,}/g,"/"),a+=u,o=h+u.length}let c=r.pathname.slice(o,r.pathname.length);a+=c.replace(/\/{2,}/g,"/"),r.pathname=a}if(r.pathname)try{r.pathname=decodeURI(r.pathname)}catch{}if(e.removeDirectoryIndex===!0&&(e.removeDirectoryIndex=[/^index\.[a-z]+$/]),Array.isArray(e.removeDirectoryIndex)&&e.removeDirectoryIndex.length>0){let s=r.pathname.split("/"),o=s[s.length-1];WP(o,e.removeDirectoryIndex)&&(s=s.slice(0,-1),r.pathname=s.slice(1).join("/")+"/")}if(r.hostname&&(r.hostname=r.hostname.replace(/\.$/,""),e.stripWWW&&/^www\.(?!www\.)[a-z\-\d]{1,63}\.[a-z.\-\d]{2,63}$/.test(r.hostname)&&(r.hostname=r.hostname.replace(/^www\./,""))),Array.isArray(e.removeQueryParameters))for(let s of[...r.searchParams.keys()])WP(s,e.removeQueryParameters)&&r.searchParams.delete(s);if(e.removeQueryParameters===!0&&(r.search=""),e.sortQueryParameters){r.searchParams.sort();try{r.search=decodeURIComponent(r.search)}catch{}}e.removeTrailingSlash&&(r.pathname=r.pathname.replace(/\/$/,""));let i=n;return n=r.toString(),!e.removeSingleSlash&&r.pathname==="/"&&!i.endsWith("/")&&r.hash===""&&(n=n.replace(/\/$/,"")),(e.removeTrailingSlash||r.pathname==="/")&&r.hash===""&&e.removeSingleSlash&&(n=n.replace(/\/$/,"")),t&&!e.normalizeProtocol&&(n=n.replace(/^http:\/\//,"//")),e.stripProtocol&&(n=n.replace(/^(?:https?:)?\/\//,"")),n}var vm=class{constructor({url:e,context:t}){if(!e)throw new Error("Missing property");this.url=e.startsWith("mailto:")?e:ex(e),this.context=t??"tab"}dispatch(){ku?window.location.assign(this.url):this.context==="tab"?window.open(this.url,"_blank"):this.context==="window"?window.open(this.url,"_blank",`width=${window.innerWidth}, height=${window.innerHeight}`):window.location.assign(this.url)}};var ZP={update:null,begin:null,loopBegin:null,changeBegin:null,change:null,changeComplete:null,loopComplete:null,complete:null,loop:1,direction:"normal",autoplay:!0,timelineOffset:0,rewind:!0},rx={duration:1e3,delay:0,endDelay:0,easing:"easeOutElastic(1, .5)",round:0},jH=["translateX","translateY","translateZ","rotate","rotateX","rotateY","rotateZ","scale","scaleX","scaleY","scaleZ","skew","skewX","skewY","perspective","matrix","matrix3d"],bm={CSS:{},springs:{}};function ai(n,e,t){return Math.min(Math.max(n,e),t)}function zh(n,e){return n.indexOf(e)>-1}function tx(n,e){return n.apply(null,e)}var je={arr:function(n){return Array.isArray(n)},obj:function(n){return zh(Object.prototype.toString.call(n),"Object")},pth:function(n){return je.obj(n)&&n.hasOwnProperty("totalLength")},svg:function(n){return n instanceof SVGElement},inp:function(n){return n instanceof HTMLInputElement},dom:function(n){return!("isNode"in n)&&(n.nodeType||je.svg(n))},str:function(n){return typeof n=="string"},fnc:function(n){return typeof n=="function"},und:function(n){return typeof n>"u"},hex:function(n){return/(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(n)},rgb:function(n){return/^rgb/.test(n)},hsl:function(n){return/^hsl/.test(n)},col:function(n){return je.hex(n)||je.rgb(n)||je.hsl(n)},key:function(n){return!ZP.hasOwnProperty(n)&&!rx.hasOwnProperty(n)&&n!=="targets"&&n!=="keyframes"}};function KP(n){var e=/\(([^)]+)\)/.exec(n);return e?e[1].split(",").map(function(t){return parseFloat(t)}):[]}function JP(n,e){var t=KP(n),A=ai(je.und(t[0])?1:t[0],.1,100),r=ai(je.und(t[1])?100:t[1],.1,100),i=ai(je.und(t[2])?10:t[2],.1,100),s=ai(je.und(t[3])?0:t[3],.1,100),o=Math.sqrt(r/A),a=i/(2*Math.sqrt(r*A)),c=a<1?o*Math.sqrt(1-a*a):0,l=1,u=a<1?(a*o+-s)/c:-s+o;function h(p){var f=e?e*p/1e3:p;return a<1?f=Math.exp(-f*a*o)*(l*Math.cos(c*f)+u*Math.sin(c*f)):f=(l+u*f)*Math.exp(-f*o),p===0||p===1?p:1-f}function d(){var p=bm.springs[n];if(p)return p;for(var f=1/6,m=0,y=0;;)if(m+=f,h(m)===1){if(y++,y>=16)break}else y=0;var g=m*f*1e3;return bm.springs[n]=g,g}return e?h:d}function YH(n){return n===void 0&&(n=10),function(e){return Math.ceil(ai(e,1e-6,1)*n)*(1/n)}}var qH=function(){var n=11,e=1/(n-1);function t(l,u){return 1-3*u+3*l}function A(l,u){return 3*u-6*l}function r(l){return 3*l}function i(l,u,h){return((t(u,h)*l+A(u,h))*l+r(u))*l}function s(l,u,h){return 3*t(u,h)*l*l+2*A(u,h)*l+r(u)}function o(l,u,h,d,p){var f,m,y=0;do m=u+(h-u)/2,f=i(m,d,p)-l,f>0?h=m:u=m;while(Math.abs(f)>1e-7&&++y<10);return m}function a(l,u,h,d){for(var p=0;p<4;++p){var f=s(u,h,d);if(f===0)return u;var m=i(u,h,d)-l;u-=m/f}return u}function c(l,u,h,d){if(!(0<=l&&l<=1&&0<=h&&h<=1))return;var p=new Float32Array(n);if(l!==u||h!==d)for(var f=0;f<n;++f)p[f]=i(f*e,l,h);function m(y){for(var g=0,b=1,x=n-1;b!==x&&p[b]<=y;++b)g+=e;--b;var w=(y-p[b])/(p[b+1]-p[b]),T=g+w*e,M=s(T,l,h);return M>=.001?a(y,T,l,h):M===0?T:o(y,g,g+e,l,h)}return function(y){return l===u&&h===d||y===0||y===1?y:i(m(y),u,d)}}return c}(),$P=function(){var n={linear:function(){return function(A){return A}}},e={Sine:function(){return function(A){return 1-Math.cos(A*Math.PI/2)}},Circ:function(){return function(A){return 1-Math.sqrt(1-A*A)}},Back:function(){return function(A){return A*A*(3*A-2)}},Bounce:function(){return function(A){for(var r,i=4;A<((r=Math.pow(2,--i))-1)/11;);return 1/Math.pow(4,3-i)-7.5625*Math.pow((r*3-2)/22-A,2)}},Elastic:function(A,r){A===void 0&&(A=1),r===void 0&&(r=.5);var i=ai(A,1,10),s=ai(r,.1,2);return function(o){return o===0||o===1?o:-i*Math.pow(2,10*(o-1))*Math.sin((o-1-s/(Math.PI*2)*Math.asin(1/i))*(Math.PI*2)/s)}}},t=["Quad","Cubic","Quart","Quint","Expo"];return t.forEach(function(A,r){e[A]=function(){return function(i){return Math.pow(i,r+2)}}}),Object.keys(e).forEach(function(A){var r=e[A];n["easeIn"+A]=r,n["easeOut"+A]=function(i,s){return function(o){return 1-r(i,s)(1-o)}},n["easeInOut"+A]=function(i,s){return function(o){return o<.5?r(i,s)(o*2)/2:1-r(i,s)(o*-2+2)/2}}}),n}();function ix(n,e){if(je.fnc(n))return n;var t=n.split("(")[0],A=$P[t],r=KP(n);switch(t){case"spring":return JP(n,e);case"cubicBezier":return tx(qH,r);case"steps":return tx(YH,r);default:return tx(A,r)}}function e2(n){try{var e=document.querySelectorAll(n);return e}catch{return}}function wm(n,e){for(var t=n.length,A=arguments.length>=2?arguments[1]:void 0,r=[],i=0;i<t;i++)if(i in n){var s=n[i];e.call(A,s,i,n)&&r.push(s)}return r}function Sm(n){return n.reduce(function(e,t){return e.concat(je.arr(t)?Sm(t):t)},[])}function jP(n){return je.arr(n)?n:(je.str(n)&&(n=e2(n)||n),n instanceof NodeList||n instanceof HTMLCollection?[].slice.call(n):[n])}function sx(n,e){return n.some(function(t){return t===e})}function ox(n){var e={};for(var t in n)e[t]=n[t];return e}function Ax(n,e){var t=ox(n);for(var A in n)t[A]=e.hasOwnProperty(A)?e[A]:n[A];return t}function Tm(n,e){var t=ox(n);for(var A in e)t[A]=je.und(n[A])?e[A]:n[A];return t}function XH(n){var e=/rgb\((\d+,\s*[\d]+,\s*[\d]+)\)/g.exec(n);return e?"rgba("+e[1]+",1)":n}function QH(n){var e=/^#?([a-f\d])([a-f\d])([a-f\d])$/i,t=n.replace(e,function(o,a,c,l){return a+a+c+c+l+l}),A=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(t),r=parseInt(A[1],16),i=parseInt(A[2],16),s=parseInt(A[3],16);return"rgba("+r+","+i+","+s+",1)"}function ZH(n){var e=/hsl\((\d+),\s*([\d.]+)%,\s*([\d.]+)%\)/g.exec(n)||/hsla\((\d+),\s*([\d.]+)%,\s*([\d.]+)%,\s*([\d.]+)\)/g.exec(n),t=parseInt(e[1],10)/360,A=parseInt(e[2],10)/100,r=parseInt(e[3],10)/100,i=e[4]||1;function s(h,d,p){return p<0&&(p+=1),p>1&&(p-=1),p<1/6?h+(d-h)*6*p:p<1/2?d:p<2/3?h+(d-h)*(2/3-p)*6:h}var o,a,c;if(A==0)o=a=c=r;else{var l=r<.5?r*(1+A):r+A-r*A,u=2*r-l;o=s(u,l,t+1/3),a=s(u,l,t),c=s(u,l,t-1/3)}return"rgba("+o*255+","+a*255+","+c*255+","+i+")"}function KH(n){if(je.rgb(n))return XH(n);if(je.hex(n))return QH(n);if(je.hsl(n))return ZH(n)}function Vi(n){var e=/[+-]?\d*\.?\d+(?:\.\d+)?(?:[eE][+-]?\d+)?(%|px|pt|em|rem|in|cm|mm|ex|ch|pc|vw|vh|vmin|vmax|deg|rad|turn)?$/.exec(n);if(e)return e[1]}function JH(n){if(zh(n,"translate")||n==="perspective")return"px";if(zh(n,"rotate")||zh(n,"skew"))return"deg"}function nx(n,e){return je.fnc(n)?n(e.target,e.id,e.total):n}function li(n,e){return n.getAttribute(e)}function ax(n,e,t){var A=Vi(e);if(sx([t,"deg","rad","turn"],A))return e;var r=bm.CSS[e+t];if(!je.und(r))return r;var i=100,s=document.createElement(n.tagName),o=n.parentNode&&n.parentNode!==document?n.parentNode:document.body;o.appendChild(s),s.style.position="absolute",s.style.width=i+t;var a=i/s.offsetWidth;o.removeChild(s);var c=a*parseFloat(e);return bm.CSS[e+t]=c,c}function t2(n,e,t){if(e in n.style){var A=e.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase(),r=n.style[e]||getComputedStyle(n).getPropertyValue(A)||"0";return t?ax(n,r,t):r}}function lx(n,e){if(je.dom(n)&&!je.inp(n)&&(li(n,e)||je.svg(n)&&n[e]))return"attribute";if(je.dom(n)&&sx(jH,e))return"transform";if(je.dom(n)&&e!=="transform"&&t2(n,e))return"css";if(n[e]!=null)return"object"}function A2(n){if(!!je.dom(n)){for(var e=n.style.transform||"",t=/(\w+)\(([^)]*)\)/g,A=new Map,r;r=t.exec(e);)A.set(r[1],r[2]);return A}}function $H(n,e,t,A){var r=zh(e,"scale")?1:0+JH(e),i=A2(n).get(e)||r;return t&&(t.transforms.list.set(e,i),t.transforms.last=e),A?ax(n,i,A):i}function cx(n,e,t,A){switch(lx(n,e)){case"transform":return $H(n,e,A,t);case"css":return t2(n,e,t);case"attribute":return li(n,e);default:return n[e]||0}}function ux(n,e){var t=/^(\*=|\+=|-=)/.exec(n);if(!t)return n;var A=Vi(n)||0,r=parseFloat(e),i=parseFloat(n.replace(t[0],""));switch(t[0][0]){case"+":return r+i+A;case"-":return r-i+A;case"*":return r*i+A}}function n2(n,e){if(je.col(n))return KH(n);if(/\s/g.test(n))return n;var t=Vi(n),A=t?n.substr(0,n.length-t.length):n;return e?A+e:A}function hx(n,e){return Math.sqrt(Math.pow(e.x-n.x,2)+Math.pow(e.y-n.y,2))}function e5(n){return Math.PI*2*li(n,"r")}function t5(n){return li(n,"width")*2+li(n,"height")*2}function A5(n){return hx({x:li(n,"x1"),y:li(n,"y1")},{x:li(n,"x2"),y:li(n,"y2")})}function r2(n){for(var e=n.points,t=0,A,r=0;r<e.numberOfItems;r++){var i=e.getItem(r);r>0&&(t+=hx(A,i)),A=i}return t}function n5(n){var e=n.points;return r2(n)+hx(e.getItem(e.numberOfItems-1),e.getItem(0))}function i2(n){if(n.getTotalLength)return n.getTotalLength();switch(n.tagName.toLowerCase()){case"circle":return e5(n);case"rect":return t5(n);case"line":return A5(n);case"polyline":return r2(n);case"polygon":return n5(n)}}function r5(n){var e=i2(n);return n.setAttribute("stroke-dasharray",e),e}function i5(n){for(var e=n.parentNode;je.svg(e)&&je.svg(e.parentNode);)e=e.parentNode;return e}function s2(n,e){var t=e||{},A=t.el||i5(n),r=A.getBoundingClientRect(),i=li(A,"viewBox"),s=r.width,o=r.height,a=t.viewBox||(i?i.split(" "):[0,0,s,o]);return{el:A,viewBox:a,x:a[0]/1,y:a[1]/1,w:s/a[2],h:o/a[3]}}function s5(n,e){var t=je.str(n)?e2(n)[0]:n,A=e||100;return function(r){return{property:r,el:t,svg:s2(t),totalLength:i2(t)*(A/100)}}}function o5(n,e){function t(o){o===void 0&&(o=0);var a=e+o>=1?e+o:0;return n.el.getPointAtLength(a)}var A=s2(n.el,n.svg),r=t(),i=t(-1),s=t(1);switch(n.property){case"x":return(r.x-A.x)*A.w;case"y":return(r.y-A.y)*A.h;case"angle":return Math.atan2(s.y-i.y,s.x-i.x)*180/Math.PI}}function YP(n,e){var t=/[+-]?\d*\.?\d+(?:\.\d+)?(?:[eE][+-]?\d+)?/g,A=n2(je.pth(n)?n.totalLength:n,e)+"";return{original:A,numbers:A.match(t)?A.match(t).map(Number):[0],strings:je.str(n)||e?A.split(t):[]}}function o2(n){var e=n?Sm(je.arr(n)?n.map(jP):jP(n)):[];return wm(e,function(t,A,r){return r.indexOf(t)===A})}function a2(n){var e=o2(n);return e.map(function(t,A){return{target:t,id:A,total:e.length,transforms:{list:A2(t)}}})}function a5(n,e){var t=ox(e);if(/^spring/.test(t.easing)&&(t.duration=JP(t.easing)),je.arr(n)){var A=n.length,r=A===2&&!je.obj(n[0]);r?n={value:n}:je.fnc(e.duration)||(t.duration=e.duration/A)}var i=je.arr(n)?n:[n];return i.map(function(s,o){var a=je.obj(s)&&!je.pth(s)?s:{value:s};return je.und(a.delay)&&(a.delay=o?0:e.delay),je.und(a.endDelay)&&(a.endDelay=o===i.length-1?e.endDelay:0),a}).map(function(s){return Tm(s,t)})}function l5(n){for(var e=wm(Sm(n.map(function(i){return Object.keys(i)})),function(i){return je.key(i)}).reduce(function(i,s){return i.indexOf(s)<0&&i.push(s),i},[]),t={},A=function(i){var s=e[i];t[s]=n.map(function(o){var a={};for(var c in o)je.key(c)?c==s&&(a.value=o[c]):a[c]=o[c];return a})},r=0;r<e.length;r++)A(r);return t}function c5(n,e){var t=[],A=e.keyframes;A&&(e=Tm(l5(A),e));for(var r in e)je.key(r)&&t.push({name:r,tweens:a5(e[r],n)});return t}function u5(n,e){var t={};for(var A in n){var r=nx(n[A],e);je.arr(r)&&(r=r.map(function(i){return nx(i,e)}),r.length===1&&(r=r[0])),t[A]=r}return t.duration=parseFloat(t.duration),t.delay=parseFloat(t.delay),t}function h5(n,e){var t;return n.tweens.map(function(A){var r=u5(A,e),i=r.value,s=je.arr(i)?i[1]:i,o=Vi(s),a=cx(e.target,n.name,o,e),c=t?t.to.original:a,l=je.arr(i)?i[0]:c,u=Vi(l)||Vi(a),h=o||u;return je.und(s)&&(s=c),r.from=YP(l,h),r.to=YP(ux(s,l),h),r.start=t?t.end:0,r.end=r.start+r.delay+r.duration+r.endDelay,r.easing=ix(r.easing,r.duration),r.isPath=je.pth(i),r.isColor=je.col(r.from.original),r.isColor&&(r.round=1),t=r,r})}var l2={css:function(n,e,t){return n.style[e]=t},attribute:function(n,e,t){return n.setAttribute(e,t)},object:function(n,e,t){return n[e]=t},transform:function(n,e,t,A,r){if(A.list.set(e,t),e===A.last||r){var i="";A.list.forEach(function(s,o){i+=o+"("+s+") "}),n.style.transform=i}}};function c2(n,e){var t=a2(n);t.forEach(function(A){for(var r in e){var i=nx(e[r],A),s=A.target,o=Vi(i),a=cx(s,r,o,A),c=o||Vi(a),l=ux(n2(i,c),a),u=lx(s,r);l2[u](s,r,l,A.transforms,!0)}})}function d5(n,e){var t=lx(n.target,e.name);if(t){var A=h5(e,n),r=A[A.length-1];return{type:t,property:e.name,animatable:n,tweens:A,duration:r.end,delay:A[0].delay,endDelay:r.endDelay}}}function f5(n,e){return wm(Sm(n.map(function(t){return e.map(function(A){return d5(t,A)})})),function(t){return!je.und(t)})}function u2(n,e){var t=n.length,A=function(i){return i.timelineOffset?i.timelineOffset:0},r={};return r.duration=t?Math.max.apply(Math,n.map(function(i){return A(i)+i.duration})):e.duration,r.delay=t?Math.min.apply(Math,n.map(function(i){return A(i)+i.delay})):e.delay,r.endDelay=t?r.duration-Math.max.apply(Math,n.map(function(i){return A(i)+i.duration-i.endDelay})):e.endDelay,r}var qP=0;function p5(n){var e=Ax(ZP,n),t=Ax(rx,n),A=c5(t,n),r=a2(n.targets),i=f5(r,A),s=u2(i,t),o=qP;return qP++,Tm(e,{id:o,children:[],animatables:r,animations:i,duration:s.duration,delay:s.delay,endDelay:s.endDelay})}var Mn=[],XP=[],xm,m5=function(){function n(){xm=requestAnimationFrame(e)}function e(t){var A=Mn.length;if(A){for(var r=0;r<A;){var i=Mn[r];if(!i.paused)i.tick(t);else{var s=Mn.indexOf(i);s>-1&&(Mn.splice(s,1),A=Mn.length)}r++}n()}else xm=cancelAnimationFrame(xm)}return n}();function g5(){document.hidden?(Mn.forEach(function(n){return n.pause()}),XP=Mn.slice(0),fA.running=Mn=[]):XP.forEach(function(n){return n.play()})}typeof document<"u"&&document.addEventListener("visibilitychange",g5);function fA(n){n===void 0&&(n={});var e=0,t=0,A=0,r,i=0,s=null;function o(b){var x=window.Promise&&new Promise(function(w){return s=w});return b.finished=x,x}var a=p5(n),c=o(a);function l(){var b=a.direction;b!=="alternate"&&(a.direction=b!=="normal"?"normal":"reverse"),a.reversed=!a.reversed,r.forEach(function(x){return x.reversed=a.reversed})}function u(b){return a.reversed?a.duration-b:b}function h(){e=0,t=u(a.currentTime)*(1/fA.speed)}function d(b,x){x&&x.seek(b-x.timelineOffset)}function p(b){if(a.reversePlayback)for(var w=i;w--;)d(b,r[w]);else for(var x=0;x<i;x++)d(b,r[x])}function f(b){var x=0,w=a.animations,T=w.length;for(a.reversePlayback===!0&&a.rewind===!1&&(b=a.duration+a.delay-a.endDelay-b);x<T;){var M=w[x],v=M.animatable,E=M.tweens,C=E.length-1,P=E[C];C&&(P=wm(E,function(Ae){return b<Ae.end})[0]||P);for(var D=ai(b-P.start-P.delay,0,P.duration)/P.duration,_=isNaN(D)?1:P.easing(D),I=P.to.strings,B=P.round,N=[],W=P.to.numbers.length,X=void 0,F=0;F<W;F++){var k=void 0;if(a.reversePlayback===!0&&a.rewind===!1)var Q=P.to.numbers[F],z=P.from.numbers[F]||0;else var z=P.to.numbers[F],Q=P.from.numbers[F]||0;P.isPath?k=o5(P.value,_*z):k=Q+_*(z-Q),B&&(P.isColor&&F>2||(k=Math.round(k*B)/B)),N.push(k)}var U=I.length;if(!U)X=N[0];else{X=I[0];for(var j=0;j<U;j++){var q=I[j],V=I[j+1],ue=N[j];isNaN(ue)||(V?X+=ue+V:X+=ue+" ")}}l2[M.type](v.target,M.property,X,v.transforms),M.currentValue=X,x++}}function m(b){a[b]&&!a.passThrough&&a[b](a)}function y(){a.remaining&&a.remaining!==!0&&a.remaining--}function g(b){var x=a.duration,w=a.delay,T=x-a.endDelay,M=u(b);a.progress=ai(M/x*100,0,100),a.reversePlayback=M<a.currentTime,r&&p(M),!a.began&&a.currentTime>=0&&(a.began=!0,m("begin")),!a.loopBegan&&a.currentTime>0&&(a.loopBegan=!0,m("loopBegin")),M<=w&&a.currentTime!==0&&(f(0),m("change")),(M>=T&&a.currentTime!==x||!x)&&(f(x),m("change")),M>w&&M<T?(a.changeBegan||(a.changeBegan=!0,a.changeCompleted=!1,m("changeBegin")),m("change"),f(M)):a.changeBegan?(a.changeCompleted=!0,a.changeBegan=!1,m("change"),m("changeComplete")):a.began&&M>T&&(m("change"),m("changeComplete")),a.currentTime=ai(M,0,x),a.began&&m("update"),b>=x&&(t=0,y(),a.remaining?(e=A,m("loopComplete"),a.loopBegan=!1,a.direction==="alternate"&&l()):(a.paused=!0,a.completed||(a.completed=!0,m("loopComplete"),m("complete"),!a.passThrough&&"Promise"in window&&(s(),c=o(a)))))}return a.reset=function(){var b=a.direction;a.passThrough=!1,a.currentTime=0,a.progress=0,a.paused=!0,a.began=!1,a.loopBegan=!1,a.changeBegan=!1,a.completed=!1,a.changeCompleted=!1,a.reversePlayback=!1,a.reversed=b==="reverse",a.remaining=a.loop,r=a.children,i=r.length;for(var x=i;x--;)a.children[x].reset();(a.reversed&&a.loop!==!0||b==="alternate"&&a.loop===1)&&a.remaining++,f(a.reversed?a.duration:0)},a.set=function(b,x){return c2(b,x),a},a.tick=function(b){A=b,e||(e=A),g((A+(t-e))*fA.speed)},a.seek=function(b){g(u(b))},a.pause=function(){a.paused=!0,h()},a.play=function(){!a.paused||(a.completed&&a.reset(),a.paused=!1,Mn.push(a),h(),xm||m5())},a.reverse=function(){l(),a.completed=!a.reversed,h()},a.restart=function(){a.reset(),a.play()},a.reset(),a.autoplay&&a.play(),a}function QP(n,e){for(var t=e.length;t--;)sx(n,e[t].animatable.target)&&e.splice(t,1)}function y5(n){for(var e=o2(n),t=Mn.length;t--;){var A=Mn[t],r=A.animations,i=A.children;QP(e,r);for(var s=i.length;s--;){var o=i[s],a=o.animations;QP(e,a),!a.length&&!o.children.length&&i.splice(s,1)}!r.length&&!i.length&&A.pause()}}function v5(n,e){e===void 0&&(e={});var t=e.direction||"normal",A=e.easing?ix(e.easing):null,r=e.grid,i=e.axis,s=e.from||0,o=s==="first",a=s==="center",c=s==="last",l=je.arr(n),u=parseFloat(l?n[0]:n),h=l?parseFloat(n[1]):0,d=Vi(l?n[1]:n)||0,p=e.start||0+(l?u:0),f=[],m=0;return function(y,g,b){if(o&&(s=0),a&&(s=(b-1)/2),c&&(s=b-1),!f.length){for(var x=0;x<b;x++){if(!r)f.push(Math.abs(s-x));else{var w=a?(r[0]-1)/2:s%r[0],T=a?(r[1]-1)/2:Math.floor(s/r[0]),M=x%r[0],v=Math.floor(x/r[0]),E=w-M,C=T-v,P=Math.sqrt(E*E+C*C);i==="x"&&(P=-E),i==="y"&&(P=-C),f.push(P)}m=Math.max.apply(Math,f)}A&&(f=f.map(function(_){return A(_/m)*m})),t==="reverse"&&(f=f.map(function(_){return i?_<0?_*-1:-_:Math.abs(m-_)}))}var D=l?(h-u)/m:u;return p+D*(Math.round(f[g]*100)/100)+d}}function x5(n){n===void 0&&(n={});var e=fA(n);return e.duration=0,e.add=function(t,A){var r=Mn.indexOf(e),i=e.children;r>-1&&Mn.splice(r,1);function s(h){h.passThrough=!0}for(var o=0;o<i.length;o++)s(i[o]);var a=Tm(t,Ax(rx,n));a.targets=a.targets||n.targets;var c=e.duration;a.autoplay=!1,a.direction=e.direction,a.timelineOffset=je.und(A)?c:ux(A,c),s(e),a.rewind=e.rewind,e.seek(a.timelineOffset);var l=fA(a);s(l),i.push(l);var u=u2(i,n);return e.delay=u.delay,e.endDelay=u.endDelay,e.duration=u.duration,e.seek(0),e.reset(),e.autoplay&&e.play(),e},e}fA.version="3.2.0";fA.speed=1;fA.running=Mn;fA.remove=y5;fA.get=cx;fA.set=c2;fA.convertPx=ax;fA.path=s5;fA.setDashoffset=r5;fA.stagger=v5;fA.timeline=x5;fA.easing=ix;fA.penner=$P;fA.random=function(n,e){return Math.floor(Math.random()*(e-n+1))+n};var dx=fA;var h2=new S,d2=new S,f2=new Ke;function p2(n,e,t,A){if(A===0)return t.copy(n);if(A===1)return t.copy(e);let r=n.w*e.w+n.x*e.x+n.y*e.y+n.z*e.z;if(r>=1)return t.copy(n);let i=1-r*r;if(i<=Number.EPSILON){let l=1-A;return t.w=l*n.w+A*e.w,t.x=l*n.x+A*e.x,t.y=l*n.y+A*e.y,t.z=l*n.z+A*e.z,t.normalize(),t}let s=Math.sqrt(i),o=Math.atan2(s,r),a=Math.sin((1-A)*o)/s,c=Math.sin(A*o)/s;return t.w=n.w*a+e.w*c,t.x=n.x*a+e.x*c,t.y=n.y*a+e.y*c,t.z=n.z*a+e.z*c,t}function zs(n,e,t,A,r){let i=t[n]?t[n]:void 0,s=A[n];if(s==null)return;let o=i??e[n],a=s;if(o!==a)return{update:c=>{let l=ze.lerp(o,a,c);r?e[n]=Math.trunc(l):e[n]=l},start:()=>{e[n]=o},end:()=>{e[n]=a}}}function fx(n,e,t,A,r){let i=t[n]?t[n]:void 0,s=A[n];if(!s)return;let o=e[n],a=[...i??o],c=[...s];if(!(a.length!==c.length||$y(a,c)))return{update:l=>{a.forEach((u,h)=>{let d=ze.lerp(u,c[h],l);e[n][h]=r?Math.trunc(d):d})},start:()=>{Object.assign(e[n],a)},end:()=>{Object.assign(e[n],c)}}}function px(n,e,t,A){let r=t[n]?t[n]:void 0,i=A[n];if(!i)return;let s=e[n],o=r?new S().fromArray(r):s.clone(),a=new S().fromArray(i);if(!o.equals(a))return{update:c=>{s.lerpVectors(o,a,c)},start:()=>{s.copy(o)},end:()=>{s.copy(a)}}}function m2(n,e,t,A){let r=t[n]?t[n]:void 0,i=A[n];if(!i)return;let s=e[n],o=r?new he().fromArray(r):s.clone(),a=new S,c=new Ke,l=new S;o.decompose(a,c,l);let u=new he().fromArray(i),h=new S,d=new Ke,p=new S;if(u.decompose(h,d,p),!o.equals(u))return{update:f=>{f2.slerpQuaternions(c,d,f),h2.lerpVectors(a,h,f),d2.lerpVectors(l,p,f),s.compose(h2,f2,d2)},start:()=>{s.compose(a,c,l)},end:()=>{s.compose(h,d,p)}}}function g2(n,e,t,A,r){let i=t[n]?t[n]:void 0,s=A[n];if(!s)return;let o=e[n],a=i?typeof i=="string"?r.getColor(i).clone():new _e().setRGB(i.r,i.g,i.b):o.clone(),c=typeof s=="string"?r.getColor(s).clone():new _e().setRGB(s.r,s.g,s.b);if(a.equals(c))return;let l=o.clone();return e[n]=l,{update:u=>{l.lerpColors(a,c,u)},start:()=>{l.copy(a)},end:()=>{l.copy(c)}}}function y2(n,e,t){let A=[],r=n.cameraType==="OrthographicCamera"?e.orthographic?.zoom:e.perspective?.zoom,i=n.cameraType==="OrthographicCamera"?t.orthographic?.zoom:t.perspective?.zoom;if(i!==void 0){let s=r??n.zoom,o=i;s!==o&&A.push({update:a=>{n.zoom=ze.lerp(s,o,a),n.updateProjectionMatrix()},start:()=>{n.zoom=s,n.updateProjectionMatrix()},end:()=>{n.zoom=o,n.updateProjectionMatrix()}})}if(t.targetOffset!==void 0){let s=zs("targetOffset",n,e,t);s&&A.push(s)}return A}function v2(n,e,t){let A=[];if(!("geometry"in t))return A;let r="geometry"in e?e.geometry:{},i=t.geometry,{width:s,height:o,depth:a}=r,{width:c,height:l,depth:u}=i;if(c!==void 0||l!==void 0||u!==void 0){let{width:h,height:d,depth:p}=n.geometry.userData.parameters,f=s??h,m=o??d,y=a??p,g=c??h,b=l??d,x=u??p;(f!==g||m!==b||y!==x)&&!Vt(n)&&A.push({update:w=>{n.updateGeometry({parameters:{width:ze.lerp(f,g,w),height:ze.lerp(m,b,w),depth:ze.lerp(y,x,w)}}),n.invalidateDownstreamBooleanData()},start:()=>{n.updateGeometry({parameters:{width:f,height:m,depth:y}}),n.invalidateDownstreamBooleanData()},end:()=>{n.updateGeometry({parameters:{width:g,height:b,depth:x}}),n.invalidateDownstreamBooleanData()}})}return A}function x2(n,e,t,A){let r=[];if(t.intensity!==void 0){let i=zs("intensity",n,e,t);i&&r.push(i)}if(t.color!==void 0){let i=g2("color",n,e,t,A);i&&r.push(i)}return r}function w2(n,e,t,A){let r=[];if(Array.isArray(n.material)){if(!("materials"in t&&t.materials))return r;let i="materials"in e&&e.materials?e.materials:[],s=t.materials;n.material.forEach((o,a)=>{if(!s[a])return;let c=i[a]??{},l=s[a];typeof c=="string"||typeof l=="string"||r.push(...b2(o,c,l,A))})}else{if(!("material"in t&&t.material))return r;let i="material"in e&&e.material?e.material:{},s=t.material;if(typeof i=="string"||typeof s=="string")return r;r.push(...b2(n.material,i,s,A))}return r}function b2(n,e,t,A){let r=[];for(let i of n.layers){let s=e.layers?.data(i.uuid),o=t.layers.data(i.uuid);if(!o||!(i.visible??!0)||!(o.visible??!0))continue;let a=i.getNames().filter(c=>!Ap.some(l=>c.includes(l)));for(let c of a)try{let l=i.getValue(c),u;if(c==="colors")u=C5(i,s,o,c);else if(Array.isArray(l))c==="steps"&&(u=E5(i,s,o,c));else if(typeof l=="number")u=b5(i,s,o,c);else{if(typeof l=="boolean")continue;l instanceof G?u=w5(i,s,o,c):l instanceof S?u=S5(i,s,o,c):l instanceof AA?u=M5(i,s,o,c,A):l instanceof _e?u=T5(i,s,o,c,A):"isTexture"in l&&(u=P5(i,s,o,c))}u&&(Array.isArray(u)?r.push(...u):r.push(u))}catch(l){console.error(`lerpMaterial: unexpected material layer for ${c}`,l)}}return r}function b5(n,e,t,A){if(!n.hasValue(A)||!(A in t))return;let r=e?e[A]:n.getValue(A),i=t[A];if(r!==i)return{update:s=>{n.setValue(A,ze.lerp(r,i,s))},start:()=>{n.setValue(A,r)},end:()=>{n.setValue(A,i)}}}function w5(n,e,t,A){if(!n.hasValue(A)||!(A in t))return;let r=n.getValue(A),i=e?new G().fromArray(e[A]):r.clone(),s=new G().fromArray(t[A]);if(!i.equals(s))return{update:o=>{r.lerpVectors(i,s,o)},start:()=>{r.copy(i)},end:()=>{r.copy(s)}}}function S5(n,e,t,A){if(!n.hasValue(A)||!(A in t))return;let r=n.getValue(A),i=e?new S().fromArray(e[A]):r.clone(),s=new S().fromArray(t[A]);if(!i.equals(s))return{update:o=>{r.lerpVectors(i,s,o)},start:()=>{r.copy(i)},end:()=>{r.copy(s)}}}function T5(n,e,t,A,r){if(!n.hasValue(A)||!(A in t))return;let i=e?e[A]:void 0,s=t[A],o=n.getValue(A),a=i?typeof i=="string"?r.getColor(i).clone():new _e().setRGB(i.r,i.g,i.b):o.clone(),c=typeof s=="string"?r.getColor(s).clone():new _e().setRGB(s.r,s.g,s.b);if(a.equals(c))return;let l=o.clone();return n.setValue(A,l),{update:u=>{l.lerpColors(a,c,u)},start:()=>{l.copy(a)},end:()=>{l.copy(c)}}}function M5(n,e,t,A,r){if(!n.hasValue(A)||!(A in t))return;let i=e?e[A]:void 0,s=t[A],o=n.getValue(A),a=i?typeof i=="string"?r.getColor(i).clone():new _e().setRGB(i.r,i.g,i.b):o.clone(),c=typeof s=="string"?r.getColor(s).clone():new AA(s.r,s.g,s.b,s.a);if(a.equals(c))return;let l=o.clone();return n.setValue(A,l),{update:u=>{l.lerpColors(a,c,u)},start:()=>{l.copy(a)},end:()=>{l.copy(c)}}}function E5(n,e,t,A="steps"){if(!n.hasValue(A)||!(A in t))return;let r=[],i=n.getValue(A),s=e?e[A]:i,o=t[A];for(let a=0;a<i.length;++a){let c=s[a],l=o[a];c!==l&&r.push({update:u=>{i[a]=ze.lerp(c,l,u)},start:()=>{i[a]=c},end:()=>{i[a]=l}})}return r.length?r:void 0}function C5(n,e,t,A="colors"){if(!n.hasValue(A)||!(A in t))return;let r=[],i=n.getValue(A),s=e?e[A]:i.map(a=>a.toArray()),o=t[A];for(let a=0;a<i.length;++a){let c=[...s[a]],l=[...o[a]];Bu.isEqual(c,l)||r.push({update:u=>{i[a].fromArray(Bu.lerp(c,l,u))},start:()=>{i[a].fromArray(c)},end:()=>{i[a].fromArray(l)}})}return r.length?r:void 0}function P5(n,e,t,A="texture"){if(!n.hasValue(A)||!(A in t))return;let r=n.getNode("mat");if(!r)return;let i=e?e[A]:r,s=t[A],o=[...i.repeat],a=[...i.offset],c=[...s.repeat],l=[...s.offset];if(!So.isEqual(o,c)||!So.isEqual(a,l))return{update:u=>{r.repeat=So.lerp(o,c,u),r.offset=So.lerp(a,l,u),r.updateMatrix()},start:()=>{r.repeat=[...o],r.offset=[...a],r.updateMatrix()},end:()=>{r.repeat=[...c],r.offset=[...l],r.updateMatrix()}}}var mx=new S,S2=new Yt;function T2(n,e,t,A){let r=[],i=px("position",n,e,t);i&&r.push(i);let s=px("scale",n,e,t);s&&r.push(s);let o=D5(n,e,t,A);o&&r.push(o);let a=m2("hiddenMatrix",n,e,t);if(a&&r.push(a),i||s||o||a){let c=()=>{n.updateMatrix(),n.parent?.matrixWorldFusedFalse&&(n.matrixWorld.multiplyMatrices(n.parent.matrixWorldFusedFalse,n.matrix),n.matrixWorldNeedsUpdate=!1),tA(n)&&Vt(n.parent)&&n.invalidateDownstreamBooleanData(!0)};r.push({update:c,start:c,end:c})}return r}function D5(n,e,t,A){let r=e?.rotation?e.rotation:void 0,i=t.rotation;if(!i)return;let s=r?new S().fromArray(r):new S().setFromEuler(n.rotation),o=new S().fromArray(i);if(s.equals(o))return;let a=mx.subVectors(o,s);if(A&&a.toArray().every(c=>Math.abs(c)<2*Math.PI)){let c=new Ke().setFromEuler(S2.setFromVector3(s)),l=new Ke().setFromEuler(S2.setFromVector3(o));return{update:u=>{p2(c,l,n.quaternion,u)},start:()=>{n.rotation.setFromVector3(s)},end:()=>{n.rotation.setFromVector3(o)}}}else return{update:c=>{mx.lerpVectors(s,o,c),n.rotation.setFromVector3(mx)},start:()=>{n.rotation.setFromVector3(s)},end:()=>{n.rotation.setFromVector3(o)}}}function Sc(n,e,t,A){if(typeof e[n]=="number")return zs(n,e,t??{},A);if(Array.isArray(e[n]))return fx(n,e,t??{},A)}function gx(n,e,t){let A=[];if(!("cloner"in t)||!n.cloner)return A;let r=n.cloner,i="cloner"in e?e.cloner:{},s=t.cloner;xv.forEach(h=>{let d;h==="count"?d=zs("count",r.parameters,i,s,!0):d=Sc(h,r.parameters,i??{},s),d&&A.push(d)});let o=I5(r,i,s);o?.length&&A.push(...o);let a=L5(r,i,s);a?.length&&A.push(...a);let c=_5(r,i,s);c?.length&&A.push(...c);let l=O5(r,i,s);l?.length&&A.push(...l);let u=R5(r,i,s);return u?.length&&A.push(...u),A.length&&A.push({update:()=>{r.update()}}),A}function I5(n,e,t){if(n.parameters.type!=="radial")return;let A=e.radial,r=t.radial;if(!r)return;let i=n.parameters.radial,s=[];return bv.forEach(o=>{let a=Sc(o,i,A??{},r);a&&s.push(a)}),s}function L5(n,e,t){if(n.parameters.type!=="linear")return;let A=e.linear,r=t.linear;if(!r)return;let i=[],s=n.parameters.linear;return wv.forEach(o=>{let a=Sc(o,s,A??{},r);a&&i.push(a)}),i}function _5(n,e,t){if(n.parameters.type!=="grid")return;let A=e.grid,r=t.grid;if(!r)return;let i=[],s=n.parameters.grid;return Sv.forEach(o=>{let a;o==="count"?a=fx(o,s,A??{},r,!0):a=Sc(o,s,A??{},r),a&&i.push(a)}),i}function O5(n,e,t){if(n.parameters.type!=="toObject")return;let A=e.toObject,r=t.toObject;if(!r)return;let i=[],s=n.parameters.toObject;return Tv.forEach(o=>{let a;o==="count"?a=zs(o,s,A??{},r,!0):a=Sc(o,s,A??{},r),a&&i.push(a)}),i}function R5(n,e,t){if(!n.parameters.randomness)return;let A=e.randomnessObject,r=t.randomnessObject;if(!r)return;let i=[],s=n.parameters.randomnessObject;return Mv.forEach(o=>{let a=Sc(o,s,A??{},r);a&&i.push(a)}),i}function Mm(n,e,t,A,r){let i=[];return(n.visible||Vt(n.parent))&&i.push(...T2(n,e,t,r)),tA(n)?((n.visible||Vt(n.parent))&&i.push(...v2(n,e,t)),n.visible&&(i.push(...w2(n,e,t,A)),i.push(...gx(n,e,t)))):n instanceof Gn?n.visible&&i.push(...gx(n,e,t)):aE(n)?n.visible&&i.push(...x2(n,e,t,A)):oE(n)&&i.push(...y2(n,e,t)),i.length?{update:s=>{i.forEach(o=>o.update(s))},start:s=>{i.forEach(o=>o.start?.(s))},end:s=>{i.forEach(o=>o.end?.(s))}}:void 0}var Hh=new S,N5=new Ke;function E2(n,e,t,A=!1){let r=[];n.objects.traverse((i,s)=>{let o=e.find(i);if(!o||(delete o.states,!s.states))return;let a=!1;r.some(l=>n.objects.isDescendantOf(i,l))?a=!0:s.physics?.fusedBody===!0&&s.physics.rigidBody==="dynamic"&&r.push(i),o.data=s,o.currentState=null,o.currentTransitionAction=null;let c=!1;for(let l of s.states){let u=l.data.geometry;u&&Object.keys(u).length!==0&&(c=!0),!(n.environment.usePhysics===!0&&s.physics&&(s.physics.rigidBody==="dynamic"||a)&&(l.data.position!==void 0||l.data.rotation!==void 0||l.data.hiddenMatrix!==void 0))&&(o.states||(o.states={}),o.states[l.id]=Fu.patch(s,l.data))}A&&(o.matrixWorld0!==void 0?(o.matrixWorld.identity(),o.rigidBody?.setTranslation(Hh,!0),o.rigidBody?.setRotation(N5,!0),o.rigidBody?.setLinvel(Hh,!0),o.rigidBody?.setAngvel(Hh,!0)):o.rigidBody&&(o.rigidBody?.setTranslation(o.position0,!0),o.rigidBody?.setRotation(o.rotation0,!0),o.rigidBody?.setLinvel(Hh,!0),o.rigidBody?.setAngvel(Hh,!0)),o.hiddenMatrix0!==void 0&&(o.hiddenMatrix.copy(o.hiddenMatrix0),o.hiddenMatrix.premultiply(o.parent.matrixWorld0))),yx(o,s,null,t,s.events.find(l=>l.data.type==="Follow"||l.data.type==="LookAt")!==void 0,c)})}function M2(n,e,t){typeof e!="string"&&n.reset(e,t)}function yx(n,e,t,A,r=!1,i=!0){if(!r&&e.states.length===0)return;let s=t===null?e:Fu.patch(e,e.states.data(t));if(Yv(n,s),n instanceof dt&&s.type==="Mesh"){if(i===!0&&(n instanceof Ns?n.buildFromStore(s.geometry):n.updateGeometry({parameters:s.geometry},A)),n.freeBooleanPointer(),Vt(n.parent)&&n.parent.invalidateDownstreamBooleanData().recomputeBoolean(),s.cloner&&n.cloner?.fromClonerState(s.cloner),"material"in s){if(n.material instanceof Array)return;M2(n.material,s.material,A)}else if("materials"in s){if(!(n.material instanceof Array))return;var o=0;for(let a of s.materials)M2(n.material[o],a,A),o++}}else if(n instanceof Gn&&s.type==="Empty")s.cloner&&n.cloner?.fromClonerState(s.cloner);else if(s.type==="DirectionalLight")n.fromDirectionalLightState(s,A);else if(s.type==="PointLight")n.fromPointLightState(s,A);else if(s.type==="SpotLight")n.fromSpotLightState(s,A);else if(n instanceof dA&&bs.is(s.type)){let a=s;n.setZoom("PerspectiveCamera",a.perspective.zoom),n.setZoom("OrthographicCamera",a.orthographic.zoom),n.isUpVectorFlipped=a.isUpVectorFlipped,n.targetOffset=a.targetOffset,n.fov=a.perspective.fov}}function F5(n){let e={duration:n.duration,easing:"linear"};switch(n.easing){case 0:e.easing="cubicBezier( 0, 0, 1, 1 )";break;case 1:e.easing="cubicBezier( .25, .1, .25, 1 )";break;case 2:e.easing="cubicBezier( .42, 0, 1, 1 )";break;case 3:e.easing="cubicBezier( 0, 0, .58, 1 )";break;case 4:e.easing="cubicBezier( .42, 0, .58, 1 )";break;case 5:let{control1:t,control2:A}=n;e.easing=`cubicBezier(
4913
4913
  ${t[0]}, ${t[1]}, ${A[0]}, ${A[1]}
4914
4914
  )`;break;case 6:let{mass:r,stiffness:i,damping:s,velocity:o}=n;e.easing=`spring( ${r}, ${i}, ${s}, ${o} )`}return e}function G5(n){let e={startOnceDelay:0,delay:0,repeatDelay:0,loop:n.repeat===-1?!0:n.repeat+1};if(n.repeat===0)e.direction="normal",e.rewind=n.direction==="pingpong-rewind";else switch(n.direction){case"pingpong":e.direction="alternate",e.rewind=!1;break;case"pingpong-rewind":e.direction="alternate",e.rewind=!0;break;default:e.direction="normal",e.rewind=!1;break}switch(n.delayDirection){case"start-once":break;case"start":e.delay=n.delay;break;case"end":e.endDelay=n.delay;break;case"start-end":case void 0:e.delay=n.delay,e.endDelay=n.delay;break}return e}var vx=class{constructor(e,t,A,r,i,s,o){this.object=e;this.data=r;this.sharedAssets=i;this.allowSlerp=s;this.id=o;this.targets={t:0};this.firstLoop=!0;this.firstReverse=!0;this.reversed=!1;this._changeBegan=!1;this._changeCompleted=!0;this.onChange=()=>{this.callback&&(this.callback.update(this.targets.t),this.object.dispatchEvent({type:"requestRender"})),this.targets.t===0?this._changeCompleted||(this._changeCompleted=!0,this._changeBegan=!1,this.onChangeComplete()):this.targets.t===1?this._changeCompleted||(this._changeCompleted=!0,this._changeBegan=!1,this.onChangeComplete()):(this._changeCompleted&&(this._changeCompleted=!1),this._changeBegan||(this._changeBegan=!0,this.onChangeBegin()))};this.onChangeBegin=()=>{let e,t;this.reversed?(e=this.to,t=this.from):(e=this.from,t=this.to),this.object.currentState=t.id,this.object.dispatchEvent({type:"beginState",state:this.targets.t>.5?e.id:t.id})};this.onChangeComplete=()=>{let e,t;this.reversed?(e=this.to,t=this.from):(e=this.from,t=this.to),this.firstLoop&&(this.onFirstLoop(),this.firstLoop=!1),this.object.currentState=t.id,this.object.dispatchEvent({type:"completeState",state:this.targets.t<.5?e.id:t.id})};this.onFirstLoop=()=>{this.useCurrentState&&(this.callback=Mm(this.object,this.reversed?this.to.data:this.from.data,this.reversed?this.from.data:this.to.data,this.sharedAssets,this.allowSlerp))};let a=this.getState(t);if(!a)throw new Error("Missing property");this.from=a;let c=this.getState(A);if(!c)throw new Error("Missing property");this.to=c,this.useCurrentState=t===void 0||A===void 0;let l={};this.object.hiddenMatrix0&&(l.hiddenMatrix=this.object.hiddenMatrix0.elements),this.callback=Mm(this.object,t===void 0?l:this.from.data,A===void 0?l:this.to.data,this.sharedAssets,this.allowSlerp),this.core={targets:this.targets,t:1,autoplay:!1,...G5(r),...F5(r),change:this.onChange},this.startOnceDelay=r.delayDirection==="start-once"?r.delay:0}get changeBegan(){return this._changeBegan}get changeCompleted(){return this._changeCompleted}getState(e){let t,A;if(typeof e=="string"?(t=e,A=this.object.states?.[t]):e===null?(t=null,A=this.object.data):e===void 0&&(t=this.object.currentState,A=t?this.object.states?.[t]:this.object.data),!(t===void 0||A===void 0))return{id:t,data:A}}toggle(e){this._changeBegan=!1,this._changeCompleted=!0,this.reversed=!e,this.targets.t=0,this.firstReverse?(this.firstReverse=!1,this.reversed=!1):this.callback=Mm(this.object,{},e?this.to.data:this.from.data,this.sharedAssets,this.allowSlerp)}},Wh=class{constructor(e,t,A,r){this.object=t;this.id=r;this.tweens=[];this._finished=!1;if(e.tweens.length<1)throw new Error("Missing property");try{let i=new vx(t,e.tweens[0].data.state,e.tweens[1].data.state,e.tweens[1].data,A,e.allowSlerp??!1,"0");this.tween=i,this.core=dx({...i.core}),this.core.finished.then(()=>this._finished=!0),this.startOnceDelay=i.startOnceDelay}catch{throw new Error("Missing property")}}get finished(){return this._finished}get paused(){return this.core.paused}play(){this._finished||(clearTimeout(this.timeoutId),this.timeoutId=window.setTimeout(()=>this.core.play(),this.startOnceDelay))}pause(){this.core.pause(),clearTimeout(this.timeoutId),delete this.timeoutId}stop(){this.pause(),this.seek(0),this.core.reset(),this._finished=!1}seek(e){let t=e*this.core.duration;this.core.seek(t)}toggle(e){this.core.pause(),clearTimeout(this.timeoutId),this.tween.toggle(e),this.core=dx({...this.tween.core}),this.core.finished.then(()=>this._finished=!0),this.tween.changeCompleted?this.timeoutId=window.setTimeout(()=>this.core.play(),this.startOnceDelay):this.core.play()}dispose(){this.pause()}},ci=class extends Ot{constructor(t,A,r,i){super();this.id=t;this.data=A;this.sharedAssets=i;if(!A.object)throw new Error("Missing property");let s=r.find(A.object);if(!s)throw new Error("Missing property");if(!s.states)throw new Error("Missing property");this.object=s;try{this.timeline=new Wh(this.data,this.object,this.sharedAssets,"0")}catch{throw new Error("Missing property")}}play(){this.object.currentTransitionAction!==this&&(this.object.currentTransitionAction?.dispose(),this.object.currentTransitionAction=this,this.timeline=new Wh(this.data,this.object,this.sharedAssets,"0"),this.dispatchEvent({type:"reset"})),this.timeline.play()}stop(){this.timeline.stop()}seek(t){this.timeline.seek(t)}toggle(t){this.object.currentTransitionAction!==this&&(this.object.currentTransitionAction?.dispose(),this.object.currentTransitionAction=this,this.timeline=new Wh(this.data,this.object,this.sharedAssets,"0"),this.dispatchEvent({type:"reset"})),this.timeline.toggle(t)}dispose(){this.timeline.dispose()}};function Un(n,e,t,A,r){let i={Audio:[],Video:[],Link:[],Transition:[]};return e.forEach(({id:s,data:o})=>{try{o.type==="Audio"?Ru[n.type].includes("Audio")&&i.Audio.push(new oi(s,o,t,r)):o.type==="Video"?Ru[n.type].includes("Video")&&i.Video.push(new Vs(s,o,t)):o.type==="Link"?Ru[n.type].includes("Link")&&i.Link.push(new vm(o)):o.type==="Transition"&&Ru[n.type].includes("Transition")&&i.Transition.push(new ci(s,o,A,r))}catch{}}),i}function Vn(n){Object.values(n).forEach(e=>{e.forEach(t=>{(t instanceof oi||t instanceof Vs||t instanceof ci)&&t.dispose()})})}var xx=[["start","Start"],["keyDown","KeyDown"],["keyUp","KeyUp"],["mouseDown","MouseDown"],["mouseUp","MouseUp"],["mouseHover","MouseHover"],["collision","Collision"],["lookAt","LookAt"],["follow","Follow"],["scroll","Scroll"]],C2=n=>xx.find(([e,t])=>t===n)?.[0],Hs=n=>xx.find(([e])=>e===n)?.[1],k5=(n,e)=>{let t=C2(n);if(t){let A=new CustomEvent(t,{bubbles:!0});return Object.defineProperty(A,"target",{writable:!1,value:e}),A}},Em=class extends kA{constructor(t){super(t);this.objectsPerEvents=new Map;this.splineEvents={};this.onBeginEvent=t=>{if(!t.eventName||!t.target)return;let A=this.splineEvents[C2(t.eventName)]?.[t.target.uuid];if(!A)return;t.eventName==="Scroll"&&t.deltaY!==void 0&&Object.assign(A,{deltaY:t.deltaY});let{domElement:r}=this.eventContext;r.dispatchEvent(A)};let{scene:A}=this.eventContext;A.traverseEntity(r=>{if(!!r.data?.events.length){for(let[i,s]of xx)if(r.data.events.some(o=>o.data.type===s)){this.objectsPerEvents.has(i)?this.objectsPerEvents.get(i)?.push(r):this.objectsPerEvents.set(i,[r]);let o={id:r.uuid,name:r.name},a=k5(s,o),c=this.splineEvents[i];c?c[r.uuid]=a:this.splineEvents[i]={[r.uuid]:a}}}})}connect(){this.objectsPerEvents.forEach(t=>{t.forEach(A=>{A.addEventListener("beginEvent",this.onBeginEvent)})})}disconnect(){this.objectsPerEvents.forEach(t=>{t.forEach(A=>{A.removeEventListener("beginEvent",this.onBeginEvent)})})}};var bx=class{constructor(e,t,A,r){this.data=e;this.object=t;this.isToggleEnable=!1;this.onReset=()=>{this.isToggleEnable=!0};if(this.useToggle=e.toggle,(e.type==="KeyDown"||e.type==="KeyUp")&&!e.key)throw new Error("Missing property");this.actions=Un(e,e.actions,t,A,r),this.actions.Transition.forEach(i=>{i.addEventListener("reset",this.onReset)})}disconnect(){Vn(this.actions)}dispatch(){this.useToggle?(this.isToggleEnable=!this.isToggleEnable,this.actions.Transition.forEach(e=>{e.toggle(this.isToggleEnable)})):this.actions.Transition.forEach(e=>{e.play()}),this.actions.Link.forEach(e=>{e.dispatch()}),this.actions.Audio.forEach(e=>{e.dispatchBasic()}),this.actions.Video.forEach(e=>{e.dispatchBasic()})}dispatchUserEvent(e){this.actions.Transition.forEach(t=>{t.toggle(!e)}),this.actions.Link.forEach(t=>{t.dispatch()}),this.actions.Audio.forEach(t=>{t.dispatchBasic()}),this.actions.Video.forEach(t=>{t.dispatchBasic()})}},Cm=class extends kA{constructor(t){super(t);this.objectsPerTypes={MouseDown:[],MouseUp:[],KeyDown:[],KeyUp:[]};this.eventsPerObjects={MouseDown:{},MouseUp:{},KeyDown:{},KeyUp:{}};this.heldKeys={};this.onMouseDown=t=>{et.length>1||(this.eventContext.updateRaycaster(t),this.handleMouseEvent("MouseDown"))};this.onMouseUp=t=>{et.length>1||(this.eventContext.updateRaycaster(t),this.handleMouseEvent("MouseUp"))};this.onKeyDown=t=>{this.heldKeys[t.key]||this.handleKeyEvent(t,"KeyDown"),this.heldKeys[t.key]=!0};this.onKeyUp=t=>{this.handleKeyEvent(t,"KeyUp")};this.releaseHeldKey=t=>{delete this.heldKeys[t.key]};this._onUserEvent=({eventName:t,target:A,reverse:r})=>{if(!t||!A)return;let i=Hs(t);i&&(i==="MouseDown"||i==="MouseUp"?(A.dispatchEvent({type:"beginEvent",eventName:i}),this.eventsPerObjects[i]?.[A.uuid]?.forEach(s=>{s.dispatchUserEvent(r)})):(i==="KeyDown"||i==="KeyUp")&&(A.dispatchEvent({type:"beginEvent",eventName:i}),this.eventsPerObjects[i]?.[A.uuid]?.forEach(s=>{s.dispatchUserEvent()})))};let{scene:A,sharedAssets:r}=this.eventContext;A.traverseEntity(i=>{if(!i.data?.events.length)return;let s=i.visible?["MouseDown","MouseUp","KeyDown","KeyUp"]:["KeyDown","KeyUp"];for(let o of s){let a=this.eventsPerObjects[o];i.data.events.filter(({data:c})=>c.type===o).forEach(({data:c})=>{console.log(c);try{let l=new bx(c,i,A,r);l.actions.Video.length&&(this.hasVideoAction=!0),a[i.uuid]?a[i.uuid].push(l):a[i.uuid]=[l]}catch{}}),a[i.uuid]?.length&&this.objectsPerTypes[o].push(i)}})}connect(){let{domElement:t}=this.eventContext;this.heldKeys={},this.domEventsNeeded.clear(),this.objectsPerTypes.MouseDown?.length&&(this.domEventsNeeded.add("pointerdown"),t.addEventListener("pointerdown",this.onMouseDown)),this.objectsPerTypes.MouseUp?.length&&(this.domEventsNeeded.add("pointerup"),t.addEventListener("pointerup",this.onMouseUp)),this.objectsPerTypes.KeyDown?.length&&(this.domEventsNeeded.add("keydown"),document.addEventListener("keydown",this.onKeyDown),document.addEventListener("keyup",this.releaseHeldKey)),this.objectsPerTypes.KeyUp?.length&&(this.domEventsNeeded.add("keyup"),document.addEventListener("keyup",this.onKeyUp)),Object.entries(this.objectsPerTypes).forEach(([A,r])=>{r.forEach(i=>{i.addEventListener("userEvent",this._onUserEvent)})})}disconnect(){let{domElement:t}=this.eventContext;this.domEventsNeeded.clear(),this.heldKeys={},t.removeEventListener("pointerdown",this.onMouseDown),t.removeEventListener("pointerup",this.onMouseUp),document.removeEventListener("keydown",this.onKeyDown),document.removeEventListener("keyup",this.onKeyUp),document.removeEventListener("keyup",this.releaseHeldKey),Object.values(this.eventsPerObjects).forEach(A=>{Object.values(A).forEach(r=>{r.forEach(i=>{i.disconnect()})})}),Object.entries(this.objectsPerTypes).forEach(([A,r])=>{r.forEach(i=>{i.removeEventListener("userEvent",this._onUserEvent)})})}handleMouseEvent(t){let{stopRaycast:A,raycaster:r,scene:i}=this.eventContext,s=this.objectsPerTypes[t];if(!!s.length)if(A){let o=gm(r,i,s);ym(o).forEach(a=>{this.eventsPerObjects[t][a.uuid]&&this.handleObjectMouseEventDispatch(a,t)})}else s.forEach(o=>{kh(r,o)&&this.handleObjectMouseEventDispatch(o,t)})}handleObjectMouseEventDispatch(t,A){t.dispatchEvent({type:"beginEvent",eventName:A}),this.eventsPerObjects[A]?.[t.uuid]?.forEach(r=>{r.dispatch()})}handleKeyEvent(t,A){this.objectsPerTypes[A].forEach(r=>{let i=this.eventsPerObjects[A][r.uuid];i.some(({data:s})=>"key"in s&&s.key===t.key)&&r.dispatchEvent({type:"beginEvent",eventName:A}),i.forEach(s=>{"key"in s.data&&s.data.key===t.key&&s.dispatch()})})}};var U5=new S,V5=new S,wx=new he,Sx=new he;var Pm=class{constructor(e,t,A,r){this.actionsIn=Un(e,e.inActions,t,A,r),this.actionsOut=Un(e,e.outActions,t,A,r)}disconnect(){Vn(this.actionsIn),Vn(this.actionsOut)}};var Tx=class extends Pm{constructor(t,A,r,i){super(t,A,r,i);this.data=t;this.object=A;this.stage="out";this.objects=[];this.onUpdateMatrix=()=>{wx.copy(this.objects[0].matrixWorld),this.objects[0].matrixWorld0&&wx.multiply(this.objects[0].matrixWorld0);let t=U5.setFromMatrixPosition(wx);Sx.copy(this.objects[1].matrixWorld),this.objects[1].matrixWorld0&&Sx.multiply(this.objects[1].matrixWorld0);let A=V5.setFromMatrixPosition(Sx),r=t.distanceTo(A)<=this.distance?"in":"out";if(this.stage!==r){this.stage=r;let i=this.stage==="in"?this.actionsIn:this.actionsOut;i.Audio.forEach(s=>s.dispatchConditional()),i.Video.forEach(s=>s.dispatchConditional()),i.Transition.forEach(s=>s.play())}};let{distance:s,fromObject:o,toObject:a}=t.condition;this.distance=s;for(let c of[o,a]){if(!c)throw new Error("Missing property");let l=r.find(c);if(!l)throw new Error("Missing property");this.objects.push(l)}}connect(){this.objects.forEach(t=>{t.addEventListener("updateMatrix",this.onUpdateMatrix)}),this.onUpdateMatrix()}disconnect(){super.disconnect(),this.stage="out",this.objects.forEach(t=>{t.removeEventListener("updateMatrix",this.onUpdateMatrix)})}},Mx=class extends Pm{constructor(t,A,r,i){super(t,A,r,i);this.data=t;this.object=A;this.onBegin=({target:t,state:A})=>{this.toState!==A&&(this.actionsOut.Audio.forEach(r=>r.dispatchConditional()),this.actionsOut.Video.forEach(r=>r.dispatchConditional()),this.actionsOut.Transition.forEach(r=>r.play()))};this.onComplete=({target:t,state:A})=>{this.toState===A&&(this.actionsIn.Audio.forEach(r=>r.dispatchConditional()),this.actionsIn.Video.forEach(r=>r.dispatchConditional()),this.actionsIn.Transition.forEach(r=>r.play()))};let{condition:s}=t;if(!s.object)throw new Error("Missing property");let o=r.find(s.object);if(!o)throw new Error("Missing property");if(this.toObject=o,s.state&&!this.toObject.states?.[s.state])throw new Error("Missing property");this.toState=s.state}connect(){(this.actionsOut.Audio.length||this.actionsOut.Video.length||this.actionsOut.Transition.length)&&this.toObject.addEventListener("beginState",this.onBegin),(this.actionsIn.Audio.length||this.actionsIn.Video.length||this.actionsIn.Transition.length)&&this.toObject.addEventListener("completeState",this.onComplete)}disconnect(){super.disconnect(),(this.actionsOut.Audio.length||this.actionsOut.Video.length||this.actionsOut.Transition.length)&&this.toObject.removeEventListener("beginState",this.onBegin),(this.actionsIn.Audio.length||this.actionsIn.Video.length||this.actionsIn.Transition.length)&&this.toObject.removeEventListener("completeState",this.onComplete)}},Dm=class extends kA{constructor(t){super(t);this.eventsPerConditions={Comparison:[],Distance:[],State:[]};this.hasVideoAction=!1;let{scene:A,sharedAssets:r}=this.eventContext;A.traverseEntity(i=>{if(!!i.data?.events.length){for(let{data:s}of i.data.events)if(s.type==="Conditional")try{let o;s.condition.type==="Comparison"||(s.condition.type==="Distance"?o=new Tx(s,i,A,r):s.condition.type==="State"&&(o=new Mx(s,i,A,r))),o&&(this.eventsPerConditions[s.condition.type].push(o),(o.actionsIn.Video.length||o.actionsOut.Video.length)&&(this.hasVideoAction=!0))}catch{}}})}connect(){super.connect(),Object.values(this.eventsPerConditions).forEach(t=>t.forEach(A=>A.connect()))}disconnect(){super.disconnect(),Object.values(this.eventsPerConditions).forEach(t=>t.forEach(A=>A.disconnect()))}};var Tc=new S,Ex=new S,Cx=new S,Im=new S,P2=new yA,D2=.01,z5={type:"requestRender"},H5=function(){let n=new S,e=new S;return(t,A,r)=>r>0?(n.subVectors(t,A),n.length()<=r?t:e.copy(A).add(n.normalize().multiplyScalar(r))):A}(),I2=function(){let n=new he;return(e,t)=>{e.position.copy(t),e.parent!==null&&(n.copy(e.parent.matrixWorld).invert(),e.position.applyMatrix4(n)),n.copy(e.hiddenMatrix).invert(),e.position.applyMatrix4(n),e.updateMatrix(),e instanceof dt&&Vt(e.parent)&&e.invalidateDownstreamBooleanData(!0)}}(),Px=class{constructor(e,t,A){this.data=e;this.object=t;this.tempPosition=new S;this.started=!1;this.paused=!0;this.snapComplete=!1;this.isReset=!1;this.worldPosition0=new S;this.target=e.target?A.find(e.target):void 0,this.maxDelta=e.maxDelta??0,this.dampingFactor=e.dampingFactor?Math.max(e.dampingFactor,1):1,this.plane=e.plane??"custom",this.snapDampingFactor=8,this.currentDampingFactor=this.snapDampingFactor,this.object.getWorldPosition(this.worldPosition0)}},Lm=class extends kA{constructor(t){super(t);this.events=[];this.onTargetChangeCallbacks=[];this.onMouseMove=t=>{if(!(et.length>1)){this.eventContext.updateRaycaster(t);for(let A of this.events)A.target===void 0&&this.updateSingleEvent(A)}};this.onMouseEnter=t=>{for(let A of this.events)A.target===void 0&&(A.tempPosition.copy(A.object.position),A.snapComplete=!1,A.isReset=!1,A.currentDampingFactor=A.snapDampingFactor)};this.onMouseLeave=t=>{for(let A of this.events)A.target===void 0&&(A.tempPosition.copy(A.object.position),A.snapComplete=!1,(A.data.resetOnPointerLeave??!1)&&(A.isReset=!0,A.currentDampingFactor=A.snapDampingFactor),this.updateSingleEvent(A))};this.onTargetChange=t=>()=>{this.updateSingleEvent(t)};let{scene:A}=this.eventContext;A.traverseEntity(r=>{let i=r.data?.events.find(s=>s.data.type==="Follow");i&&this.events.push(new Px(i.data,r,A))})}connect(){if(!this.events.length)return;let{domElement:t}=this.eventContext;this.domEventsNeeded.clear(),wA&&(this.domEventsNeeded.add("pointerdown"),t.addEventListener("pointerdown",this.onMouseMove)),this.domEventsNeeded.add("pointermove"),t.addEventListener("pointermove",this.onMouseMove),t.addEventListener("pointerenter",this.onMouseEnter),t.addEventListener("pointerleave",this.onMouseLeave);for(let A of this.events)if(A.target!==void 0){let r=this.onTargetChange(A);this.onTargetChangeCallbacks.push(r),A.target.addEventListener("requestRender",r)}}disconnect(){if(!this.events.length)return;let{domElement:t}=this.eventContext;this.domEventsNeeded.clear(),wA&&t.removeEventListener("pointerdown",this.onMouseMove),t.removeEventListener("pointermove",this.onMouseMove),t.removeEventListener("pointerenter",this.onMouseEnter),t.removeEventListener("pointerleave",this.onMouseLeave);let A=0;for(let r of this.events)r.started=!1,r.paused=!0,r.target!==void 0&&r.target.removeEventListener("requestRender",this.onTargetChangeCallbacks[A++])}onAnimationFrameDamping(){for(let t of this.events)t.paused||this.updateSingleEvent(t)}updateSingleEvent(t){let{tempPosition:A,object:r,maxDelta:i,plane:s}=t;if(r.getWorldPosition(Cx),t.isReset)Im.copy(t.worldPosition0);else if(t.target)t.target.getWorldPosition(Im);else{let{camera:a,raycaster:c}=this.eventContext;if(s==="custom"?(a.getWorldDirection(Ex),Ex.negate(),Tc.copy(Ex)):s==="xy"?Tc.set(0,0,1):s==="xz"?Tc.set(0,1,0):s==="yz"&&Tc.set(1,0,0),P2.setFromNormalAndCoplanarPoint(Tc,Cx),!c.ray.intersectPlane(P2,Im))return}let o=H5(Cx,Im,i);if(t.currentDampingFactor>1||t.snapComplete===!1){t.started||(t.started=!0,A.copy(o));let a=Tc.subVectors(o,A).divideScalar(t.currentDampingFactor);A.add(a),I2(r,A),t.paused=a.length()<D2,t.snapComplete=a.length()<D2*100,t.snapComplete&&(t.currentDampingFactor=t.dampingFactor)}else I2(r,o),t.paused=!0;t.object?.dispatchEvent({type:"beginEvent",eventName:"Follow"}),r.dispatchEvent(z5)}};var jh=new S,_m=new S,Ho=new he,Yh=new Ke,Mc=new Ke,Om=new S,Dx=new S,qh=new S,Rm=new yA,L2=1e-5,W5={type:"requestRender"},j5={type:"changeRotation"},Y5=function(){let n=new he,e=new S,t=new S,A=new S;return(r,i)=>(i==="x"?(e.set(0,0,1),t.set(0,1,0),A.set(-1,0,0)):i==="y"?(e.set(1,0,0),t.set(0,0,1),A.set(0,-1,0)):(e.set(1,0,0),t.set(0,1,0),A.set(0,0,1)),e.applyMatrix4(r),t.applyMatrix4(r),A.applyMatrix4(r),n.makeBasis(e,t,A))}(),_2=function(){let n=new he;return function(t,A){t.parent!==null&&(n.copy(t.parent.matrixWorld).invert(),A.premultiply(n)),n.copy(t.hiddenMatrix).invert(),A.premultiply(n),t.rotation.setFromRotationMatrix(A),t.updateMatrix(),t instanceof dt&&Vt(t.parent)&&t.invalidateDownstreamBooleanData(!0)}}(),Ix=class{constructor(e,t,A){this.data=e;this.object=t;this.paused=!0;this.snapComplete=!1;this.isReset=!1;this.worldQuaternion0=new Ke;this.target=e.target?A.find(e.target):void 0,this.dampingFactor=e.dampingFactor?Math.max(e.dampingFactor,1):1,this.distance=e.distance??0,this.tilt=e.tilt??"up",this.axis=e.axis??"z",this.plane=e.plane??"custom",this.snapDampingFactor=8,this.currentDampingFactor=this.dampingFactor,this.object.getWorldQuaternion(this.worldQuaternion0)}},Bm=class extends kA{constructor(t){super(t);this.events=[];this.onTargetChangeCallbacks=[];this.onMouseMove=t=>{if(!(et.length>1)){this.eventContext.updateRaycaster(t);for(let A of this.events)A.target===void 0&&this.updateSingleEvent(A)}};this.onMouseEnter=t=>{for(let A of this.events)A.target===void 0&&(A.snapComplete=!1,A.isReset=!1,A.currentDampingFactor=A.snapDampingFactor)};this.onMouseLeave=t=>{for(let A of this.events)A.target===void 0&&(A.snapComplete=!1,(A.data.resetOnPointerLeave??!1)&&(A.isReset=!0,A.currentDampingFactor=A.snapDampingFactor),this.updateSingleEvent(A))};this.onTargetChange=t=>()=>{this.updateSingleEvent(t)};let{scene:A}=this.eventContext;A.traverseEntity(r=>{let i=r.data?.events.find(s=>s.data.type==="LookAt");i&&this.events.push(new Ix(i.data,r,A))})}connect(){if(!this.events.length)return;let{domElement:t}=this.eventContext;this.domEventsNeeded.clear(),wA&&(this.domEventsNeeded.add("pointerdown"),t.addEventListener("pointerdown",this.onMouseMove)),this.domEventsNeeded.add("pointermove"),t.addEventListener("pointermove",this.onMouseMove),t.addEventListener("pointerenter",this.onMouseEnter),t.addEventListener("pointerleave",this.onMouseLeave);for(let A of this.events)if(A.target!==void 0){let r=this.onTargetChange(A);this.onTargetChangeCallbacks.push(r),A.target.addEventListener("requestRender",r)}}disconnect(){if(!this.events.length)return;let{domElement:t}=this.eventContext;this.domEventsNeeded.clear(),wA&&t.removeEventListener("pointerdown",this.onMouseMove),t.removeEventListener("pointermove",this.onMouseMove),t.removeEventListener("pointerenter",this.onMouseEnter),t.removeEventListener("pointerleave",this.onMouseLeave);let A=0;for(let r of this.events)r.paused=!0,r.target!==void 0&&r.target.removeEventListener("requestRender",this.onTargetChangeCallbacks[A++])}onAnimationFrameDamping(){for(let t of this.events)t.paused||this.updateSingleEvent(t)}updateSingleEvent(t){let{target:A,tilt:r,axis:i,distance:s,plane:o,object:a}=t,{camera:c,raycaster:l}=this.eventContext;if(!t.isReset){if(t.target)t.target.getWorldPosition(Dx);else if(a.getWorldPosition(Om),o==="custom"?(c.getWorldDirection(_m),_m.negate(),s>0?Rm.set(_m,-s):Rm.setFromNormalAndCoplanarPoint(_m,Om)):(o==="xy"?jh.set(0,0,1):o==="xz"?jh.set(0,1,0):o==="yz"&&jh.set(1,0,0),Rm.setFromNormalAndCoplanarPoint(jh,Om)),!l.ray.intersectPlane(Rm,Dx))return}t.isReset||(A?r==="up"?qh.set(0,1,0):r==="target"&&qh.copy(A.up).applyMatrix4(Ho.extractRotation(A.matrixWorld)).normalize():o==="custom"?qh.set(0,1,0):qh.copy(jh)),t.isReset?Mc.copy(t.worldQuaternion0):(Ho.lookAt(Dx,Om,qh),Ho.copy(Y5(Ho,i)),Mc.setFromRotationMatrix(Ho)),t.currentDampingFactor>1||t.snapComplete===!1?(a.getWorldQuaternion(Yh),Yh.slerp(Mc,1/t.currentDampingFactor),_2(a,Ho.makeRotationFromQuaternion(Yh)),t.paused=8*(1-Yh.dot(Mc))<L2,t.snapComplete=8*(1-Yh.dot(Mc))<L2*100,t.snapComplete&&(t.currentDampingFactor=t.dampingFactor)):(_2(a,Ho.makeRotationFromQuaternion(Mc)),t.paused=!0),t.object?.dispatchEvent({type:"beginEvent",eventName:"LookAt"}),a.dispatchEvent(W5),a.dispatchEvent(j5)}};var Lx=class{constructor(e,t,A,r){this.data=e;this.object=t;this.entered=!1;this.actions=Un(e,e.actions,t,A,r)}disconnect(){Vn(this.actions)}dispatchEnter(){this.entered||(this.entered=!0,this.actions.Transition.forEach(e=>e.toggle(!0)))}dispatchLeave(){this.entered&&(this.entered=!1,this.actions.Transition.forEach(e=>e.toggle(!1)))}dispatchUserEvent(e){this.actions.Transition.forEach(t=>t.toggle(!e))}},Nm=class extends kA{constructor(t){super(t);this.eventsPerObjects={};this.objects=[];this._prevObjects=[];this.onMouseDown=t=>{et.length>1||(this.eventContext.updateRaycaster(t),this.handleMouseHoverEvent())};this.onMouseUp=t=>{et.length>1||this.handleMouseHoverEvent(!0)};this.onMouseMove=t=>{et.length>1||(this.eventContext.updateRaycaster(t),this.handleMouseHoverEvent())};this.onUserEvent=({eventName:t,target:A,reverse:r})=>{if(!t||!A)return;let i=Hs(t);i&&i==="MouseHover"&&(A.dispatchEvent({type:"beginEvent",eventName:"MouseHover"}),this.eventsPerObjects[A.uuid]?.forEach(s=>s.dispatchUserEvent(r)))};let{scene:A,sharedAssets:r}=this.eventContext;A.traverseEntity(i=>{if(!(!i.visible||!i.data?.events.length)){for(let{data:s}of i.data.events)if(s.type==="MouseHover")try{let o=new Lx(s,i,A,r);this.eventsPerObjects[i.uuid]?this.eventsPerObjects[i.uuid].push(o):this.eventsPerObjects[i.uuid]=[o]}catch{}this.eventsPerObjects[i.uuid]?.length&&this.objects.push(i)}})}connect(){if(!this.objects.length)return;let{domElement:t}=this.eventContext;this.domEventsNeeded.clear(),wA&&(this.domEventsNeeded.add("pointerdown"),t.addEventListener("pointerdown",this.onMouseDown),this.domEventsNeeded.add("pointerup"),t.addEventListener("pointerup",this.onMouseUp)),this.domEventsNeeded.add("pointermove"),t.addEventListener("pointermove",this.onMouseMove),this.objects.forEach(A=>{A.addEventListener("userEvent",this.onUserEvent)})}disconnect(){if(!this.objects.length)return;let{domElement:t}=this.eventContext;this.domEventsNeeded.clear(),wA&&(t.removeEventListener("pointerdown",this.onMouseDown),t.removeEventListener("pointerup",this.onMouseUp)),t.removeEventListener("pointermove",this.onMouseMove),Object.values(this.eventsPerObjects).forEach(A=>{A.forEach(r=>{r.disconnect()})}),this.objects.forEach(A=>{A.removeEventListener("userEvent",this.onUserEvent)})}handleMouseHoverEvent(t=!1){let A=[];if(!t){let{stopRaycast:r,raycaster:i,scene:s}=this.eventContext;if(r){let o=gm(i,s,this.objects);A=ym(o)}else this.objects.forEach(o=>{kh(i,o)&&A.push(o)})}this._prevObjects.length&&this._prevObjects.forEach(r=>{A.includes(r)||(r.dispatchEvent({type:"beginEvent",eventName:"MouseHover"}),this.eventsPerObjects[r.uuid]?.forEach(i=>i.dispatchLeave()))}),A.length&&A.forEach(r=>{r.dispatchEvent({type:"beginEvent",eventName:"MouseHover"}),this.eventsPerObjects[r.uuid]?.forEach(i=>i.dispatchEnter())}),this._prevObjects=A}};var _x=class{constructor(e,t,A,r){this.data=e;this.object=t;this.scrollCounter=0;this.actions=Un(e,e.actions,t,A,r)}connect(){this.scrollCounter=0}disconnect(){Vn(this.actions)}dispatch(e){let t=e>0?1:-1;this.scrollCounter+=t,this.scrollCounter=Math.min(Math.max(this.scrollCounter,0),this.data.steps);let A=this.scrollCounter/this.data.steps;this.actions.Transition.forEach(r=>r.seek(A))}dispatchUserEvent(e){this.actions.Transition.forEach(t=>{t.toggle(!e)})}},Fm=class extends kA{constructor(t){super(t);this.eventsPerObject=new Map;this.onWheel=t=>{[...this.eventsPerObject.entries()].forEach(([A,r])=>{A.dispatchEvent({type:"beginEvent",eventName:"Scroll",deltaY:t.deltaY}),r.forEach(i=>i.dispatch(t.deltaY))})};this.onUserEvent=({eventName:t,target:A,reverse:r})=>{if(!t||!A)return;let i=Hs(t);i&&i==="Scroll"&&(A.dispatchEvent({type:"beginEvent",eventName:"Scroll"}),this.eventsPerObject.get(A)?.forEach(s=>{s.dispatchUserEvent(r)}))};let{scene:A,sharedAssets:r}=this.eventContext;A.traverseEntity(i=>{if(!!i.data?.events.length)for(let{data:s}of i.data.events){if(s.type!=="Scroll")continue;let o=new _x(s,i,A,r);this.eventsPerObject.has(i)?this.eventsPerObject.get(i)?.push(o):this.eventsPerObject.set(i,[o])}})}connect(){let{domElement:t}=this.eventContext;[...this.eventsPerObject.entries()].forEach(([A,r])=>{r.forEach(i=>i.connect()),A.addEventListener("userEvent",this.onUserEvent)}),[...this.eventsPerObject.values()].some(A=>A.length)&&(this.domEventsNeeded.add("wheel"),t.addEventListener("wheel",this.onWheel))}disconnect(){let{domElement:t}=this.eventContext;t.removeEventListener("wheel",this.onWheel),this.domEventsNeeded.clear(),[...this.eventsPerObject.entries()].forEach(([A,r])=>{r.forEach(i=>i.disconnect()),A.removeEventListener("userEvent",this.onUserEvent)})}};var Ox=class{constructor(e,t,A,r){this.data=e;this.object=t;this.actions=Un(e,e.actions,t,A,r)}disconnect(){Vn(this.actions)}dispatch(){this.actions.Transition.forEach(e=>{e.play()})}dispatchAfter(e){this.actions.Audio.forEach(t=>{(t.interaction.data.triggerAfter??"any")===e&&(t.interaction instanceof Ui?t.interaction.audioPlayer.play():t.interaction instanceof bc&&t.interaction.dispatch())}),this.actions.Video.forEach(t=>{(t.interaction.data.triggerAfter??"autoplay")===e&&(t.interaction instanceof Us?t.interaction.play():t.interaction instanceof wc&&t.interaction.dispatch())})}dispatchUserEvent(e){this.actions.Transition.forEach(t=>{t.toggle(!e)}),this.actions.Audio.forEach(t=>{t.interaction instanceof Ui?t.interaction.audioPlayer.play():t.interaction instanceof bc&&t.interaction.dispatch()}),this.actions.Video.forEach(t=>{t.interaction instanceof Us?t.interaction.play():t.interaction instanceof wc&&t.interaction.dispatch()})}},Gm=class extends kA{constructor(t){super(t);this.eventsPerObject=new Map;this.eventsAfterPerObject=new Map;this.onMouseDown=()=>{[...this.eventsAfterPerObject.entries()].forEach(([t,A])=>{t.dispatchEvent({type:"beginEvent",eventName:"Start"}),A.forEach(r=>{r.dispatchAfter("mouseDown")})})};this.onKeyDown=()=>{[...this.eventsAfterPerObject.entries()].forEach(([t,A])=>{t.dispatchEvent({type:"beginEvent",eventName:"Start"}),A.forEach(r=>{r.dispatchAfter("keyDown")})})};this.onAny=()=>{let{domElement:t,isExport:A}=this.eventContext;(A?document:t).removeEventListener("pointerdown",this.onAny),document.removeEventListener("keydown",this.onAny),[...this.eventsAfterPerObject.entries()].forEach(([i,s])=>{i.dispatchEvent({type:"beginEvent",eventName:"Start"}),s.forEach(o=>{o.dispatchAfter("any")})})};this.onPlay=()=>{[...this.eventsAfterPerObject.entries()].forEach(([t,A])=>{t.dispatchEvent({type:"beginEvent",eventName:"Start"}),A.forEach(r=>{r.dispatchAfter("autoplay")})})};this.onUserEvent=({eventName:t,target:A,reverse:r})=>{if(!t||!A)return;let i=Hs(t);i&&i==="Start"&&(A.dispatchEvent({type:"beginEvent",eventName:"Start"}),this.eventsPerObject.get(A)?.forEach(s=>{s.dispatchUserEvent(r)}),this.eventsAfterPerObject.get(A)?.forEach(s=>{s.dispatchUserEvent(r)}))};let{scene:A,sharedAssets:r}=this.eventContext;A.traverseEntity(i=>{if(!!i.data?.events.length)for(let{data:s}of i.data.events){if(s.type!=="Start")continue;let o=new Ox(s,i,A,r);o.actions.Transition.length&&(this.eventsPerObject.has(i)?this.eventsPerObject.get(i)?.push(o):this.eventsPerObject.set(i,[o])),o.actions.Audio.length&&(this.eventsAfterPerObject.has(i)?this.eventsAfterPerObject.get(i)?.push(o):this.eventsAfterPerObject.set(i,[o])),o.actions.Video.length&&(this.hasVideoAction=!0,this.eventsAfterPerObject.has(i)?this.eventsAfterPerObject.get(i)?.push(o):this.eventsAfterPerObject.set(i,[o]))}})}connect(){if([...this.eventsAfterPerObject.values()].some(t=>t.length)){let{domElement:t,isExport:A}=this.eventContext,r=A?document:t;r.addEventListener("pointerdown",this.onMouseDown,{once:!0}),document.addEventListener("keydown",this.onKeyDown,{once:!0}),r.addEventListener("pointerdown",this.onAny),document.addEventListener("keydown",this.onAny),[...this.eventsAfterPerObject.entries()].forEach(([i,s])=>{i.addEventListener("userEvent",this.onUserEvent)}),this.onPlay()}[...this.eventsPerObject.entries()].forEach(([t,A])=>{t.dispatchEvent({type:"beginEvent",eventName:"Start"}),A.forEach(r=>r.dispatch()),t.addEventListener("userEvent",this.onUserEvent)})}disconnect(){if([...this.eventsAfterPerObject.values()].some(t=>t.length)){let{domElement:t,isExport:A}=this.eventContext,r=A?document:t;r.removeEventListener("pointerdown",this.onMouseDown),document.removeEventListener("keydown",this.onKeyDown),r.removeEventListener("pointerdown",this.onAny),document.removeEventListener("keydown",this.onAny),[...this.eventsAfterPerObject.entries()].forEach(([i,s])=>{i.removeEventListener("userEvent",this.onUserEvent),s.forEach(o=>o.disconnect())})}[...this.eventsPerObject.entries()].forEach(([t,A])=>{t.removeEventListener("userEvent",this.onUserEvent),A.forEach(r=>r.disconnect())})}};var km=class{constructor(e,t,A,r){this.data=e;this.object=t;this.isToggleEnable=!1;this.disabled=!0;this.actions=Un(e,e.actions,t,A,r),this.target=e.target,this.useToggle=e.toggle}disconnect(){Vn(this.actions)}dispatch(){this.disabled||(this.object.dispatchEvent({type:"beginEvent",eventName:"Collision"}),this.useToggle?(this.isToggleEnable=!this.isToggleEnable,this.actions.Transition.forEach(e=>{e.toggle(this.isToggleEnable)})):this.actions.Transition.forEach(e=>{e.play()}),this.actions.Link.forEach(e=>{e.dispatch()}),this.actions.Audio.forEach(e=>{e.dispatchBasic()}),this.actions.Video.forEach(e=>{e.dispatchBasic()}))}};var nA;CT.then(n=>nA=n);var Wo=new he,O2=new S(1,1,1),HA=new S,ui=new Ke,Cr=new S,Rx=new Yt(0,0,0,"YXZ"),q5={type:"updateMatrix"},Bx={type:"beginEvent",eventName:"Collision"};function R2(n){if(n.scene.environment.usePhysics)return!0;let e=!1;return n.scene.objects.traverse((t,A)=>{for(let r of A.events)if(r.data.type==="GameControl"&&r.data.collisionEnabled){e=!0;break}}),e}var Um=class{constructor(e,t,A,r,i,s=!1){this.scene=t;this.sharedAssets=i;this.isExport=s;this.gameControls=[];this.gameControlStates=[];this.joysticks=[];this.joystickToGameControls=[];this.sharedGameControlGlobals={entitiesWithTransformAnim:[],eventsPerObjects:{},colliderToEntity:{},gamePads:[]};this.needsCollisionDetection=!1;this.initializationCounter=-1;this.rigidBodyToMesh=new Map;this.nActiveRigidBodies=0;this.collisionEvents=[];this.processRigidBody=e=>{if(e.bodyType()!==nA.RigidBodyType.Dynamic)return;e.isSleeping()||this.nActiveRigidBodies++;let t=e.translation(),A=e.rotation(),r=this.rigidBodyToMesh.get(e.handle);if(HA.set(t.x,t.y,t.z),HA.multiplyScalar(this.pixelsPerMeter),ui.set(A.x,A.y,A.z,A.w),r[0].matrixWorld.compose(HA,ui,r[0].matrixWorld0?O2:r[1]),r[0].dispatchEvent(q5),r[2])for(let i of r[0].children)i.updateMatrixWorld(!0)};this.handleCollisionEvents=(e,t,A)=>{if(A!==!1)if(this.gameControls.some(r=>r.object===this.sharedGameControlGlobals.colliderToEntity[e])){let r=this.sharedGameControlGlobals.colliderToEntity[t],i=this.sharedGameControlGlobals.eventsPerObjects[r.uuid];if(i===void 0)return;for(let s of i)s.data.target==="character"&&this.dispatchCollisionEvent(s,r)}else if(this.gameControls.some(r=>r.object===this.sharedGameControlGlobals.colliderToEntity[t])){let r=this.sharedGameControlGlobals.colliderToEntity[e],i=this.sharedGameControlGlobals.eventsPerObjects[r.uuid];if(i===void 0)return;for(let s of i)s.data.target==="character"&&this.dispatchCollisionEvent(s,r)}else{let r=this.sharedGameControlGlobals.colliderToEntity[e],i=this.sharedGameControlGlobals.eventsPerObjects[r.uuid];if(i===void 0)return;for(let a of i)a.data.target==="scene"&&this.dispatchCollisionEvent(a,r);let s=this.sharedGameControlGlobals.colliderToEntity[t],o=this.sharedGameControlGlobals.eventsPerObjects[s?.uuid];if(o===void 0)return;for(let a of o)a.data.target==="scene"&&this.dispatchCollisionEvent(a,s)}};this.domElement=A.domElement;let o;e.scene.publish.playCamera===null?o=ki.PERSONAL_CAMERA_ID:o=e.scene.publish.playCamera;let a=this.scene.find(o),c=!1,l,u=5,h=8,d=9,p="drag";if(this.usePhysics=e.scene.environment.usePhysics??cn.defaultData.usePhysics,this.pixelsPerMeter=e.scene.environment.pixelsPerMeter??cn.defaultData.pixelsPerMeter,this.sceneGraph=e.scene.objects,e.scene.objects.data(e.scene.publish.gameControlObject)?.events.forEach(y=>{y.data.type==="GameControl"&&(l=y.data.keyAssignments,u=y.data.joystickPosLoc,h=y.data.joystickRotLoc,d=y.data.jumpTouchButtonLoc,p=y.data.rotByTouch)}),this.sceneGraph.traverse((y,g)=>{g.events.forEach(b=>{if(b.data.type!=="GameControl")return;let x=this.scene.find(y),w=x;for(;(w=w.parent)?.parent!==null;)if(this.sceneGraph.data(w.uuid)?.physics?.fusedBody)return;b.data.collisionEnabled&&(this.needsCollisionDetection=!0),this.gameControlStates.push([x,g,b.data])})}),this.usePhysics&&(this.gameControlStates.length===0||this.needsCollisionDetection)&&this.initPhysics(e.scene.environment.gravity??cn.defaultData.gravity),this.gameControlStates.forEach(([y,g,b])=>{c=c||b.camera===a.uuid||y.uuid===a.uuid;let x=new Xh(y,e.scene.objects,A.domElement,{...b,keyAssignments:l},e.scene.environment,this.sharedGameControlGlobals,y.uuid!==a.uuid&&b.camera===a.uuid,a,this.scene,i);x.addEventListener("change",r),x.addEventListener("end",r),x.addEventListener("start",r),this.gameControls.push(x),wA&&b.touchControl&&(this.joystickToGameControls[u]!==void 0?this.joystickToGameControls[u].push([x,"pos"]):this.joystickToGameControls[u]=[[x,"pos"]],b.moveMode==="walk"&&(this.joystickToGameControls[d]!==void 0?this.joystickToGameControls[d].push([x,"jmp"]):this.joystickToGameControls[d]=[[x,"jmp"]]),p==="joystick"&&(this.joystickToGameControls[h]!==void 0?this.joystickToGameControls[h].push([x,"rot"]):this.joystickToGameControls[h]=[[x,"rot"]]))}),c===!1){let{enableRotate:y,enablePan:g,enableZoom:b,autoRotate:x,hoverRotatePanMode:w}=e.scene.publish.orbitControls;(y||g||b||x||w!==0)&&(!a.states||!Object.keys(a.states).length)&&(this.orbitControls=new Ec(a,A.domElement,this.isExport),this.orbitControls.addEventListener("change",r),this.orbitControls.addEventListener("end",r),this.orbitControls.addEventListener("start",r),this.orbitControls.fromJSON(e.scene.publish.orbitControls),this.orbitControls.useKeyEvents=!1,this.orbitControls.connect(),this.orbitControls.update())}let f=A.domElement.width/A.getPixelRatio(),m=A.domElement.height/A.getPixelRatio();this.joystickToGameControls.forEach((y,g)=>{let b=document.body.appendChild(document.createElement("div")),[x,w,T]=(e.scene.publish.joystickSizeAndXYOffset??Ri.defaultData.joystickSizeAndXYOffset)[g],M=(f-5*x)/4+x,v={},E=y.some(_=>_[1]==="jmp"),C=E?0:x;g<10?(g<5?v.top=C/2:v.bottom=C/2,v.left=C/2+g%5*M):g===10?(v.left=C/2,v.top=m/2):(v.right=C/2,v.top=m/2),v.top?v.top-=w[1]:v.bottom+=w[1],v.left?v.left+=w[0]:v.right-=w[0];for(let _ in v)v[_]+="px";if(E){let _=b.appendChild(document.createElement("div"));Object.assign(_.style,v,{position:"absolute",width:x+"px",height:x+"px",backgroundColor:`rgba(255,255,255,${T==="show"?.4:0})`,zIndex:"9999",borderRadius:x+"px",border:T==="show"?"solid 2px rgba(0, 0, 0, .1)":"none",display:"flex",alignItems:"center",justifyContent:"center",touchAction:"none"});let I=x/16*16*.4;T==="show"&&(_.innerHTML=`
4915
4915
  <svg width="${I}" height="${x*.4}" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">