@splinetool/runtime 0.9.184 → 0.9.186
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.cjs +1 -1
- package/build/runtime.js +1 -1
- package/package.json +1 -1
package/build/runtime.cjs
CHANGED
|
@@ -3136,7 +3136,7 @@ void main() {
|
|
|
3136
3136
|
gl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) );
|
|
3137
3137
|
}`;function gB(n,e,t){let A=new uu,r=new G,i=new G,s=new He,o=new du({depthPacking:Wy}),a=new vy,c={},l=t.maxTextureSize,u={0:CA,1:Ur,2:Ln},d=new gt({defines:{VSM_SAMPLES:8},uniforms:{shadow_pass:{value:null},resolution:{value:new G},radius:{value:4}},vertexShader:pB,fragmentShader:mB}),h=d.clone();h.defines.HORIZONTAL_PASS=1;let f=new Ie;f.setAttribute("position",new Fe(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));let p=new EA(f,d),m=this;this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=cf,this.render=function(b,w,T){if(m.enabled===!1||m.autoUpdate===!1&&m.needsUpdate===!1||b.length===0)return;let M=n.getRenderTarget(),v=n.getActiveCubeFace(),E=n.getActiveMipmapLevel(),C=n.state;C.setBlending(Rt),C.buffers.color.setClear(1,1,1,1),C.buffers.depth.setTest(!0),C.setScissorTest(!1);for(let P=0,D=b.length;P<D;P++){let L=b[P],I=L.shadow;if(I===void 0){console.warn("THREE.WebGLShadowMap:",L,"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!==tu?{minFilter:Nt,magFilter:Nt}:{};I.map=new ht(r.x,r.y,W),I.map.texture.name=L.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(L,W),A=I.getFrustum(),x(w,T,I.camera,L,this.type)}I.isPointLightShadow!==!0&&this.type===tu&&g(I,T),I.needsUpdate=!1}m.needsUpdate=!1,n.setRenderTarget(M,v,E)};function g(b,w){let T=e.update(p);d.defines.VSM_SAMPLES!==b.blurSamples&&(d.defines.VSM_SAMPLES=b.blurSamples,h.defines.VSM_SAMPLES=b.blurSamples,d.needsUpdate=!0,h.needsUpdate=!0),b.mapPass===null&&(b.mapPass=new ht(r.x,r.y)),d.uniforms.shadow_pass.value=b.map.texture,d.uniforms.resolution.value=b.mapSize,d.uniforms.radius.value=b.radius,n.setRenderTarget(b.mapPass),n.clear(),n.renderBufferDirect(w,null,T,d,p,null),h.uniforms.shadow_pass.value=b.mapPass.texture,h.uniforms.resolution.value=b.mapSize,h.uniforms.radius.value=b.radius,n.setRenderTarget(b.map),n.clear(),n.renderBufferDirect(w,null,T,h,p,null)}function y(b,w,T,M,v,E){let C=null,P=T.isPointLight===!0?b.customDistanceMaterial:b.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,L=w.uuid,I=c[D];I===void 0&&(I={},c[D]=I);let B=I[L];B===void 0&&(B=C.clone(),I[L]=B),C=B}return C.visible=w.visible,C.wireframe=w.wireframe,E===tu?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 x(b,w,T,M,v){if(b.visible===!1)return;if(b.layers.test(w.layers)&&(b.isMesh||b.isLine||b.isPoints)&&(b.castShadow||b.receiveShadow&&v===tu)&&(!b.frustumCulled||A.intersectsObject(b))){b.modelViewMatrix.multiplyMatrices(T.matrixWorldInverse,b.matrixWorld);let P=e.update(b),D=b.material;if(Array.isArray(D)){let L=P.groups;for(let I=0,B=L.length;I<B;I++){let N=L[I],W=D[N.materialIndex];if(W&&W.visible){let X=y(b,W,M,T.near,T.far,v);n.renderBufferDirect(T,null,P,X,b,N)}}}else if(D.visible){let L=y(b,D,M,T.near,T.far,v);n.renderBufferDirect(T,null,P,L,b,null)}}let C=b.children;for(let P=0,D=C.length;P<D;P++)x(C[P],w,T,M,v)}}function yB(n,e,t){let A=t.isWebGL2;function r(){let H=!1,xe=new He,Te=null,Qe=new He(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 qD:n.depthFunc(512);break;case XD:n.depthFunc(519);break;case QD:n.depthFunc(513);break;case ny:n.depthFunc(515);break;case KD:n.depthFunc(514);break;case ZD:n.depthFunc(518);break;case JD:n.depthFunc(516);break;case $D: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,mn){(Te!==vt||Qe!==Tt||Re!==mn)&&(n.stencilFunc(vt,Tt,mn),Te=vt,Qe=Tt,Re=mn)},setOp:function(vt,Tt,mn){(Je!==vt||be!==Tt||$e!==mn)&&(n.stencilOp(vt,Tt,mn),Je=vt,be=Tt,$e=mn)},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={},d=new WeakMap,h=[],f=null,p=!1,m=null,g=null,y=null,x=null,b=null,w=null,T=null,M=!1,v=null,E=null,C=null,P=null,D=null,L=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),U=n.getParameter(2978),Q=new He().fromArray(F),z=new He().fromArray(U);function k(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]=k(3553,3553,1),j[34067]=k(34067,34069,6),o.setClear(0,0,0,1),a.setClear(1),c.setClear(0),q(2929),a.setFunc(ny),Me(!1),me(hb),q(2884),le(Rt);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=h,Qe=!1;if(H)if(Te=d.get(xe),Te===void 0&&(Te=[],d.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 Z(H){return f!==H?(n.useProgram(H),f=H,!0):!1}let Y={[ga]:32774,[ND]:32778,[FD]:32779};if(A)Y[gb]=32775,Y[yb]=32776;else{let H=e.get("EXT_blend_minmax");H!==null&&(Y[gb]=H.MIN_EXT,Y[yb]=H.MAX_EXT)}let ne={[GD]:0,[UD]:1,[kD]:768,[Yw]:770,[YD]:776,[WD]:774,[zD]:772,[VD]:769,[qw]:771,[jD]:775,[HD]:773};function le(H,xe,Te,Qe,Re,Je,be,$e){if(H===Rt){p===!0&&(V(3042),p=!1);return}if(p===!1&&(q(3042),p=!0),H!==BD){if(H!==m||$e!==M){if((g!==ga||b!==ga)&&(n.blendEquation(32774),g=ga,b=ga),$e)switch(H){case xa:n.blendFuncSeparate(1,771,1,771);break;case fb:n.blendFunc(1,1);break;case pb:n.blendFuncSeparate(0,769,0,1);break;case mb:n.blendFuncSeparate(0,768,0,770);break;default:console.error("THREE.WebGLState: Invalid blending: ",H);break}else switch(H){case xa:n.blendFuncSeparate(770,771,1,771);break;case fb:n.blendFunc(770,1);break;case pb:n.blendFuncSeparate(0,769,0,1);break;case mb:n.blendFunc(0,768);break;default:console.error("THREE.WebGLState: Invalid blending: ",H);break}y=null,x=null,w=null,T=null,m=H,M=$e}return}Re=Re||xe,Je=Je||Te,be=be||Qe,(xe!==g||Re!==b)&&(n.blendEquationSeparate(Y[xe],Y[Re]),g=xe,b=Re),(Te!==y||Qe!==x||Je!==w||be!==T)&&(n.blendFuncSeparate(ne[Te],ne[Qe],ne[Je],ne[be]),y=Te,x=Qe,w=Je,T=be),m=H,M=null}function se(H,xe){H.side===Ln?V(2884):q(2884);let Te=H.side===CA;xe&&(Te=!Te),Me(Te),H.blending===xa&&H.transparent===!1?le(Rt):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!==LD?(q(2884),H!==E&&(H===hb?n.cullFace(1029):H===_D?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 he(H){H?q(3089):V(3089)}function De(H){H===void 0&&(H=33984+L-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 Ke(){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 O(){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 Ge(){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 _e(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={},d=new WeakMap,h=[],f=null,p=!1,m=null,g=null,y=null,x=null,b=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:Z,setBlending:le,setMaterial:se,setFlipSided:Me,setCullFace:me,setLineWidth:ge,setPolygonOffset:ye,setScissorTest:he,activeTexture:De,bindTexture:Be,unbindTexture:Ke,compressedTexImage2D:R,texImage2D:Ge,texImage3D:re,texStorage2D:fe,texStorage3D:Ce,texSubImage2D:O,texSubImage3D:J,compressedTexSubImage2D:ae,scissor:Ne,viewport:_e,reset:ve}}function vB(n,e,t,A,r,i,s){let o=r.isWebGL2,a=r.maxTextures,c=r.maxCubemapSize,l=r.maxTextureSize,u=r.maxSamples,d=e.has("WEBGL_multisampled_render_to_texture")?e.get("WEBGL_multisampled_render_to_texture"):null,h=/OculusBrowser/g.test(navigator.userAgent),f=new WeakMap,p,m=new WeakMap,g=!1;try{g=typeof OffscreenCanvas<"u"&&new OffscreenCanvas(1,1).getContext("2d")!==null}catch{}function y(R,O){return g?new OffscreenCanvas(R,O):zh("canvas")}function x(R,O,J,ae){let fe=1;if((R.width>ae||R.height>ae)&&(fe=ae/Math.max(R.width,R.height)),fe<1||O===!0)if(typeof HTMLImageElement<"u"&&R instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&R instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&R instanceof ImageBitmap){let Ce=O?Vh:Math.floor,Ge=Ce(fe*R.width),re=Ce(fe*R.height);p===void 0&&(p=y(Ge,re));let Ne=J?y(Ge,re):p;return Ne.width=Ge,Ne.height=re,Ne.getContext("2d").drawImage(R,0,0,Ge,re),console.warn("THREE.WebGLRenderer: Texture has been resized from ("+R.width+"x"+R.height+") to ("+Ge+"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 b(R){return ly(R.width)&&ly(R.height)}function w(R){return o?!1:R.wrapS!==tn||R.wrapT!==tn||R.minFilter!==Nt&&R.minFilter!==it}function T(R,O){return R.generateMipmaps&&O&&R.minFilter!==Nt&&R.minFilter!==it}function M(R){n.generateMipmap(R)}function v(R,O,J,ae,fe=!1){if(o===!1)return O;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=O;return O===6403&&(J===5126&&(Ce=33326),J===5131&&(Ce=33325),J===5121&&(Ce=33321)),O===33319&&(J===5126&&(Ce=33328),J===5131&&(Ce=33327),J===5121&&(Ce=33323)),O===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,O,J){return T(R,J)===!0||R.isFramebufferTexture&&R.minFilter!==Nt&&R.minFilter!==it?Math.log2(Math.max(O.width,O.height))+1:R.mipmaps!==void 0&&R.mipmaps.length>0?R.mipmaps.length:R.isCompressedTexture&&Array.isArray(R.image)?O.mipmaps.length:1}function C(R){return R===Nt||R===vb||R===xb?9728:9729}function P(R){let O=R.target;O.removeEventListener("dispose",P),L(O),O.isVideoTexture&&f.delete(O)}function D(R){let O=R.target;O.removeEventListener("dispose",D),B(O)}function L(R){let O=A.get(R);if(O.__webglInit===void 0)return;let J=R.source,ae=m.get(J);if(ae){let fe=ae[O.__cacheKey];fe.usedTimes--,fe.usedTimes===0&&I(R),Object.keys(ae).length===0&&m.delete(J)}A.remove(R)}function I(R){let O=A.get(R);n.deleteTexture(O.__webglTexture);let J=R.source,ae=m.get(J);delete ae[O.__cacheKey],s.memory.textures--}function B(R){let O=R.texture,J=A.get(R),ae=A.get(O);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=O.length;fe<Ce;fe++){let Ge=A.get(O[fe]);Ge.__webglTexture&&(n.deleteTexture(Ge.__webglTexture),s.memory.textures--),A.remove(O[fe])}A.remove(O),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 O=[];return O.push(R.wrapS),O.push(R.wrapT),O.push(R.magFilter),O.push(R.minFilter),O.push(R.anisotropy),O.push(R.internalFormat),O.push(R.format),O.push(R.type),O.push(R.generateMipmaps),O.push(R.premultiplyAlpha),O.push(R.flipY),O.push(R.unpackAlignment),O.push(R.encoding),O.join()}function U(R,O){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,O);return}}t.activeTexture(33984+O),t.bindTexture(3553,J.__webglTexture)}function Q(R,O){let J=A.get(R);if(R.version>0&&J.__version!==R.version){Ae(J,R,O);return}t.activeTexture(33984+O),t.bindTexture(35866,J.__webglTexture)}function z(R,O){let J=A.get(R);if(R.version>0&&J.__version!==R.version){Ae(J,R,O);return}t.activeTexture(33984+O),t.bindTexture(32879,J.__webglTexture)}function k(R,O){let J=A.get(R);if(R.version>0&&J.__version!==R.version){Z(J,R,O);return}t.activeTexture(33984+O),t.bindTexture(34067,J.__webglTexture)}let j={[wa]:10497,[tn]:33071,[sy]:33648},q={[Nt]:9728,[vb]:9984,[xb]:9986,[it]:9729,[oI]:9985,[Va]:9987};function V(R,O,J){if(J?(n.texParameteri(R,10242,j[O.wrapS]),n.texParameteri(R,10243,j[O.wrapT]),(R===32879||R===35866)&&n.texParameteri(R,32882,j[O.wrapR]),n.texParameteri(R,10240,q[O.magFilter]),n.texParameteri(R,10241,q[O.minFilter])):(n.texParameteri(R,10242,33071),n.texParameteri(R,10243,33071),(R===32879||R===35866)&&n.texParameteri(R,32882,33071),(O.wrapS!==tn||O.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(O.magFilter)),n.texParameteri(R,10241,C(O.minFilter)),O.minFilter!==Nt&&O.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(O.type===Nr&&e.has("OES_texture_float_linear")===!1||o===!1&&O.type===au&&e.has("OES_texture_half_float_linear")===!1)return;(O.anisotropy>1||A.get(O).__currentAnisotropy)&&(n.texParameterf(R,ae.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(O.anisotropy,r.getMaxAnisotropy())),A.get(O).__currentAnisotropy=O.anisotropy)}}function ue(R,O){let J=!1;R.__webglInit===void 0&&(R.__webglInit=!0,O.addEventListener("dispose",P));let ae=O.source,fe=m.get(ae);fe===void 0&&(fe={},m.set(ae,fe));let Ce=F(O);if(Ce!==R.__cacheKey){fe[Ce]===void 0&&(fe[Ce]={texture:n.createTexture(),usedTimes:0},s.memory.textures++,J=!0),fe[Ce].usedTimes++;let Ge=fe[R.__cacheKey];Ge!==void 0&&(fe[R.__cacheKey].usedTimes--,Ge.usedTimes===0&&I(O)),R.__cacheKey=Ce,R.__webglTexture=fe[Ce].texture}return J}function Ae(R,O,J){let ae=3553;O.isDataArrayTexture&&(ae=35866),O.isData3DTexture&&(ae=32879);let fe=ue(R,O),Ce=O.source;if(t.activeTexture(33984+J),t.bindTexture(ae,R.__webglTexture),Ce.version!==Ce.__currentVersion||fe===!0){n.pixelStorei(37440,O.flipY),n.pixelStorei(37441,O.premultiplyAlpha),n.pixelStorei(3317,O.unpackAlignment),n.pixelStorei(37443,0);let Ge=w(O)&&b(O.image)===!1,re=x(O.image,Ge,!1,l);re=Ke(O,re);let Ne=b(re)||o,_e=i.convert(O.format,O.encoding),ve=i.convert(O.type),H=v(O.internalFormat,_e,ve,O.encoding,O.isVideoTexture);V(ae,O,Ne);let xe,Te=O.mipmaps,Qe=o&&O.isVideoTexture!==!0,Re=Ce.__currentVersion===void 0||fe===!0,Je=E(O,re,Ne);if(O.isDepthTexture)H=6402,o?O.type===Nr?H=36012:O.type===Ti?H=33190:O.type===rs?H=35056:H=33189:O.type===Nr&&console.error("WebGLRenderer: Floating point depth texture requires WebGL2."),O.format===io&&H===6402&&O.type!==Kw&&O.type!==Ti&&(console.warn("THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture."),O.type=Ti,ve=i.convert(O.type)),O.format===os&&H===6402&&(H=34041,O.type!==rs&&(console.warn("THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture."),O.type=rs,ve=i.convert(O.type))),Re&&(Qe?t.texStorage2D(3553,1,H,re.width,re.height):t.texImage2D(3553,0,H,re.width,re.height,0,_e,ve,null));else if(O.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,_e,ve,xe.data):t.texImage2D(3553,be,H,xe.width,xe.height,0,_e,ve,xe.data);O.generateMipmaps=!1}else Qe?(Re&&t.texStorage2D(3553,Je,H,re.width,re.height),t.texSubImage2D(3553,0,0,0,re.width,re.height,_e,ve,re.data)):t.texImage2D(3553,0,H,re.width,re.height,0,_e,ve,re.data);else if(O.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],O.format!==dr?_e!==null?Qe?t.compressedTexSubImage2D(3553,be,0,0,xe.width,xe.height,_e,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,_e,ve,xe.data):t.texImage2D(3553,be,H,xe.width,xe.height,0,_e,ve,xe.data)}else if(O.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,_e,ve,re.data)):t.texImage3D(35866,0,H,re.width,re.height,re.depth,0,_e,ve,re.data);else if(O.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,_e,ve,re.data)):t.texImage3D(32879,0,H,re.width,re.height,re.depth,0,_e,ve,re.data);else if(O.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,_e,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,_e,ve,xe):t.texImage2D(3553,be,H,_e,ve,xe);O.generateMipmaps=!1}else Qe?(Re&&t.texStorage2D(3553,Je,H,re.width,re.height),t.texSubImage2D(3553,0,0,0,_e,ve,re)):t.texImage2D(3553,0,H,_e,ve,re);T(O,Ne)&&M(ae),Ce.__currentVersion=Ce.version,O.onUpdate&&O.onUpdate(O)}R.__version=O.version}function Z(R,O,J){if(O.image.length!==6)return;let ae=ue(R,O),fe=O.source;if(t.activeTexture(33984+J),t.bindTexture(34067,R.__webglTexture),fe.version!==fe.__currentVersion||ae===!0){n.pixelStorei(37440,O.flipY),n.pixelStorei(37441,O.premultiplyAlpha),n.pixelStorei(3317,O.unpackAlignment),n.pixelStorei(37443,0);let Ce=O.isCompressedTexture||O.image[0].isCompressedTexture,Ge=O.image[0]&&O.image[0].isDataTexture,re=[];for(let be=0;be<6;be++)!Ce&&!Ge?re[be]=x(O.image[be],!1,!0,c):re[be]=Ge?O.image[be].image:O.image[be],re[be]=Ke(O,re[be]);let Ne=re[0],_e=b(Ne)||o,ve=i.convert(O.format,O.encoding),H=i.convert(O.type),xe=v(O.internalFormat,ve,H,O.encoding),Te=o&&O.isVideoTexture!==!0,Qe=fe.__currentVersion===void 0||ae===!0,Re=E(O,Ne,_e);V(34067,O,_e);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];O.format!==dr?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=O.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(Ge){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(O,_e)&&M(34067),fe.__currentVersion=fe.version,O.onUpdate&&O.onUpdate(O)}R.__version=O.version}function Y(R,O,J,ae,fe){let Ce=i.convert(J.format,J.encoding),Ge=i.convert(J.type),re=v(J.internalFormat,Ce,Ge,J.encoding);A.get(O).__hasExternalTextures||(fe===32879||fe===35866?t.texImage3D(fe,0,re,O.width,O.height,O.depth,0,Ce,Ge,null):t.texImage2D(fe,0,re,O.width,O.height,0,Ce,Ge,null)),t.bindFramebuffer(36160,R),De(O)?d.framebufferTexture2DMultisampleEXT(36160,ae,fe,A.get(J).__webglTexture,0,he(O)):n.framebufferTexture2D(36160,ae,fe,A.get(J).__webglTexture,0),t.bindFramebuffer(36160,null)}function ne(R,O,J){if(n.bindRenderbuffer(36161,R),O.depthBuffer&&!O.stencilBuffer){let ae=33189;if(J||De(O)){let fe=O.depthTexture;fe&&fe.isDepthTexture&&(fe.type===Nr?ae=36012:fe.type===Ti&&(ae=33190));let Ce=he(O);De(O)?d.renderbufferStorageMultisampleEXT(36161,Ce,ae,O.width,O.height):n.renderbufferStorageMultisample(36161,Ce,ae,O.width,O.height)}else n.renderbufferStorage(36161,ae,O.width,O.height);n.framebufferRenderbuffer(36160,36096,36161,R)}else if(O.depthBuffer&&O.stencilBuffer){let ae=he(O);J&&De(O)===!1?n.renderbufferStorageMultisample(36161,ae,35056,O.width,O.height):De(O)?d.renderbufferStorageMultisampleEXT(36161,ae,35056,O.width,O.height):n.renderbufferStorage(36161,34041,O.width,O.height),n.framebufferRenderbuffer(36160,33306,36161,R)}else{let ae=O.isWebGLMultipleRenderTargets===!0?O.texture:[O.texture];for(let fe=0;fe<ae.length;fe++){let Ce=ae[fe],Ge=i.convert(Ce.format,Ce.encoding),re=i.convert(Ce.type),Ne=v(Ce.internalFormat,Ge,re,Ce.encoding),_e=he(O);J&&De(O)===!1?n.renderbufferStorageMultisample(36161,_e,Ne,O.width,O.height):De(O)?d.renderbufferStorageMultisampleEXT(36161,_e,Ne,O.width,O.height):n.renderbufferStorage(36161,Ne,O.width,O.height)}}n.bindRenderbuffer(36161,null)}function le(R,O){if(O&&O.isWebGLCubeRenderTarget)throw new Error("Depth Texture with cube render targets is not supported");if(t.bindFramebuffer(36160,R),!(O.depthTexture&&O.depthTexture.isDepthTexture))throw new Error("renderTarget.depthTexture must be an instance of THREE.DepthTexture");(!A.get(O.depthTexture).__webglTexture||O.depthTexture.image.width!==O.width||O.depthTexture.image.height!==O.height)&&(O.depthTexture.image.width=O.width,O.depthTexture.image.height=O.height,O.depthTexture.needsUpdate=!0),U(O.depthTexture,0);let ae=A.get(O.depthTexture).__webglTexture,fe=he(O);if(O.depthTexture.format===io)De(O)?d.framebufferTexture2DMultisampleEXT(36160,36096,3553,ae,0,fe):n.framebufferTexture2D(36160,36096,3553,ae,0);else if(O.depthTexture.format===os)De(O)?d.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 O=A.get(R),J=R.isWebGLCubeRenderTarget===!0;if(R.depthTexture&&!O.__autoAllocateDepthBuffer){if(J)throw new Error("target.depthTexture not supported in Cube render targets");le(O.__webglFramebuffer,R)}else if(J){O.__webglDepthbuffer=[];for(let ae=0;ae<6;ae++)t.bindFramebuffer(36160,O.__webglFramebuffer[ae]),O.__webglDepthbuffer[ae]=n.createRenderbuffer(),ne(O.__webglDepthbuffer[ae],R,!1)}else t.bindFramebuffer(36160,O.__webglFramebuffer),O.__webglDepthbuffer=n.createRenderbuffer(),ne(O.__webglDepthbuffer,R,!1);t.bindFramebuffer(36160,null)}function Me(R,O,J){let ae=A.get(R);O!==void 0&&Y(ae.__webglFramebuffer,R,R.texture,36064,3553),J!==void 0&&se(R)}function me(R){let O=R.texture,J=A.get(R),ae=A.get(O);R.addEventListener("dispose",D),R.isWebGLMultipleRenderTargets!==!0&&(ae.__webglTexture===void 0&&(ae.__webglTexture=n.createTexture()),ae.__version=O.version,s.memory.textures++);let fe=R.isWebGLCubeRenderTarget===!0,Ce=R.isWebGLMultipleRenderTargets===!0,Ge=b(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,_e=re.length;Ne<_e;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?O:[O];J.__webglMultisampledFramebuffer=n.createFramebuffer(),J.__webglColorRenderbuffer=[],t.bindFramebuffer(36160,J.__webglMultisampledFramebuffer);for(let Ne=0;Ne<re.length;Ne++){let _e=re[Ne];J.__webglColorRenderbuffer[Ne]=n.createRenderbuffer(),n.bindRenderbuffer(36161,J.__webglColorRenderbuffer[Ne]);let ve=i.convert(_e.format,_e.encoding),H=i.convert(_e.type),xe=v(_e.internalFormat,ve,H,_e.encoding),Te=he(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,O,Ge);for(let re=0;re<6;re++)Y(J.__webglFramebuffer[re],R,O,36064,34069+re);T(O,Ge)&&M(34067),t.unbindTexture()}else if(Ce){let re=R.texture;for(let Ne=0,_e=re.length;Ne<_e;Ne++){let ve=re[Ne],H=A.get(ve);t.bindTexture(3553,H.__webglTexture),V(3553,ve,Ge),Y(J.__webglFramebuffer,R,ve,36064+Ne,3553),T(ve,Ge)&&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,O,Ge),Y(J.__webglFramebuffer,R,O,36064,re),T(O,Ge)&&M(re),t.unbindTexture()}R.depthBuffer&&se(R)}function ge(R){let O=b(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,O)){let Ge=R.isWebGLCubeRenderTarget?34067:3553,re=A.get(Ce).__webglTexture;t.bindTexture(Ge,re),M(Ge),t.unbindTexture()}}}function ye(R){if(o&&R.samples>0&&De(R)===!1){let O=R.isWebGLMultipleRenderTargets?R.texture:[R.texture],J=R.width,ae=R.height,fe=16384,Ce=[],Ge=R.stencilBuffer?33306:36096,re=A.get(R),Ne=R.isWebGLMultipleRenderTargets===!0;if(Ne)for(let _e=0;_e<O.length;_e++)t.bindFramebuffer(36160,re.__webglMultisampledFramebuffer),n.framebufferRenderbuffer(36160,36064+_e,36161,null),t.bindFramebuffer(36160,re.__webglFramebuffer),n.framebufferTexture2D(36009,36064+_e,3553,null,0);t.bindFramebuffer(36008,re.__webglMultisampledFramebuffer),t.bindFramebuffer(36009,re.__webglFramebuffer);for(let _e=0;_e<O.length;_e++){Ce.push(36064+_e),R.depthBuffer&&Ce.push(Ge);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[_e]),ve===!0&&(n.invalidateFramebuffer(36008,[Ge]),n.invalidateFramebuffer(36009,[Ge])),Ne){let H=A.get(O[_e]).__webglTexture;n.framebufferTexture2D(36009,36064,3553,H,0)}n.blitFramebuffer(0,0,J,ae,0,0,J,ae,fe,9728),h&&n.invalidateFramebuffer(36008,Ce)}if(t.bindFramebuffer(36008,null),t.bindFramebuffer(36009,null),Ne)for(let _e=0;_e<O.length;_e++){t.bindFramebuffer(36160,re.__webglMultisampledFramebuffer),n.framebufferRenderbuffer(36160,36064+_e,36161,re.__webglColorRenderbuffer[_e]);let ve=A.get(O[_e]).__webglTexture;t.bindFramebuffer(36160,re.__webglFramebuffer),n.framebufferTexture2D(36009,36064+_e,3553,ve,0)}t.bindFramebuffer(36009,re.__webglMultisampledFramebuffer)}}function he(R){return Math.min(u,R.samples)}function De(R){let O=A.get(R);return o&&R.samples>0&&e.has("WEBGL_multisampled_render_to_texture")===!0&&O.__useRenderToTexture!==!1}function Be(R){let O=s.render.frame;f.get(R)!==O&&(f.set(R,O),R.update())}function Ke(R,O){let J=R.encoding,ae=R.format,fe=R.type;return R.isCompressedTexture===!0||R.isVideoTexture===!0||R.format===ay||J!==_n&&(J===qe?o===!1?e.has("EXT_sRGB")===!0&&ae===dr?(R.format=ay,R.minFilter=it,R.generateMipmaps=!1):O=Hh.sRGBToLinear(O):(ae!==dr||fe!==Ft)&&console.warn("THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType."):console.error("THREE.WebGLTextures: Unsupported texture encoding:",J)),O}this.allocateTextureUnit=X,this.resetTextureUnits=W,this.setTexture2D=U,this.setTexture2DArray=Q,this.setTexture3D=z,this.setTextureCube=k,this.rebindTextures=Me,this.setupRenderTarget=me,this.updateRenderTargetMipmap=ge,this.updateMultisampleRenderTarget=ye,this.setupDepthRenderbuffer=se,this.setupFrameBufferTexture=Y,this.useMultisampledRTT=De}function xB(n,e,t){let A=t.isWebGL2;function r(i,s=null){let o;if(i===Ft)return 5121;if(i===uI)return 32819;if(i===dI)return 32820;if(i===aI)return 5120;if(i===lI)return 5122;if(i===Kw)return 5123;if(i===cI)return 5124;if(i===Ti)return 5125;if(i===Nr)return 5126;if(i===au)return A?5131:(o=e.get("OES_texture_half_float"),o!==null?o.HALF_FLOAT_OES:null);if(i===hI)return 6406;if(i===dr)return 6408;if(i===pI)return 6409;if(i===mI)return 6410;if(i===io)return 6402;if(i===os)return 34041;if(i===gI)return 6403;if(i===fI)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===ay)return o=e.get("EXT_sRGB"),o!==null?o.SRGB_ALPHA_EXT:null;if(i===yI)return 36244;if(i===vI)return 33319;if(i===xI)return 33320;if(i===bI)return 36249;if(i===bg||i===wg||i===Sg||i===Tg)if(s===qe)if(o=e.get("WEBGL_compressed_texture_s3tc_srgb"),o!==null){if(i===bg)return o.COMPRESSED_SRGB_S3TC_DXT1_EXT;if(i===wg)return o.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT;if(i===Sg)return o.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT;if(i===Tg)return o.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT}else return null;else if(o=e.get("WEBGL_compressed_texture_s3tc"),o!==null){if(i===bg)return o.COMPRESSED_RGB_S3TC_DXT1_EXT;if(i===wg)return o.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(i===Sg)return o.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(i===Tg)return o.COMPRESSED_RGBA_S3TC_DXT5_EXT}else return null;if(i===bb||i===wb||i===Sb||i===Tb)if(o=e.get("WEBGL_compressed_texture_pvrtc"),o!==null){if(i===bb)return o.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(i===wb)return o.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(i===Sb)return o.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(i===Tb)return o.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}else return null;if(i===wI)return o=e.get("WEBGL_compressed_texture_etc1"),o!==null?o.COMPRESSED_RGB_ETC1_WEBGL:null;if(i===Mb||i===Eb)if(o=e.get("WEBGL_compressed_texture_etc"),o!==null){if(i===Mb)return s===qe?o.COMPRESSED_SRGB8_ETC2:o.COMPRESSED_RGB8_ETC2;if(i===Eb)return s===qe?o.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:o.COMPRESSED_RGBA8_ETC2_EAC}else return null;if(i===Cb||i===Pb||i===Db||i===Ib||i===Ob||i===Lb||i===_b||i===Rb||i===Bb||i===Nb||i===Fb||i===Gb||i===Ub||i===kb)if(o=e.get("WEBGL_compressed_texture_astc"),o!==null){if(i===Cb)return s===qe?o.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR:o.COMPRESSED_RGBA_ASTC_4x4_KHR;if(i===Pb)return s===qe?o.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR:o.COMPRESSED_RGBA_ASTC_5x4_KHR;if(i===Db)return s===qe?o.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR:o.COMPRESSED_RGBA_ASTC_5x5_KHR;if(i===Ib)return s===qe?o.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR:o.COMPRESSED_RGBA_ASTC_6x5_KHR;if(i===Ob)return s===qe?o.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR:o.COMPRESSED_RGBA_ASTC_6x6_KHR;if(i===Lb)return s===qe?o.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR:o.COMPRESSED_RGBA_ASTC_8x5_KHR;if(i===_b)return s===qe?o.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR:o.COMPRESSED_RGBA_ASTC_8x6_KHR;if(i===Rb)return s===qe?o.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR:o.COMPRESSED_RGBA_ASTC_8x8_KHR;if(i===Bb)return s===qe?o.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR:o.COMPRESSED_RGBA_ASTC_10x5_KHR;if(i===Nb)return s===qe?o.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR:o.COMPRESSED_RGBA_ASTC_10x6_KHR;if(i===Fb)return s===qe?o.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR:o.COMPRESSED_RGBA_ASTC_10x8_KHR;if(i===Gb)return s===qe?o.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR:o.COMPRESSED_RGBA_ASTC_10x10_KHR;if(i===Ub)return s===qe?o.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR:o.COMPRESSED_RGBA_ASTC_12x10_KHR;if(i===kb)return s===qe?o.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR:o.COMPRESSED_RGBA_ASTC_12x12_KHR}else return null;if(i===Vb)if(o=e.get("EXT_texture_compression_bptc"),o!==null){if(i===Vb)return s===qe?o.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT:o.COMPRESSED_RGBA_BPTC_UNORM_EXT}else return null;return i===rs?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 xy=class extends nA{constructor(e=[]){super(),this.isArrayCamera=!0,this.cameras=e}},Fr=class extends dt{constructor(){super(),this.isGroup=!0,this.type="Group"}},bB={type:"move"},iu=class{constructor(){this._targetRay=null,this._grip=null,this._hand=null}getHandSpace(){return this._hand===null&&(this._hand=new Fr,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 Fr,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 Fr,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 p of e.hand.values()){let m=t.getJointPose(p,A);if(c.joints[p.jointName]===void 0){let y=new Fr;y.matrixAutoUpdate=!1,y.visible=!1,c.joints[p.jointName]=y,c.add(y)}let g=c.joints[p.jointName];m!==null&&(g.matrix.fromArray(m.transform.matrix),g.matrix.decompose(g.position,g.rotation,g.scale),g.jointRadius=m.radius),g.visible=m!==null}let l=c.joints["index-finger-tip"],u=c.joints["thumb-tip"],d=l.position.distanceTo(u.position),h=.02,f=.005;c.inputState.pinching&&d>h+f?(c.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:e.handedness,target:this})):!c.inputState.pinching&&d<=h-f&&(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(bB)))}return o!==null&&(o.visible=r!==null),a!==null&&(a.visible=i!==null),c!==null&&(c.visible=s!==null),this}},ls=class extends jt{constructor(e,t,A,r,i,s,o,a,c,l){if(l=l!==void 0?l:io,l!==io&&l!==os)throw new Error("DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat");A===void 0&&l===io&&(A=Ti),A===void 0&&l===os&&(A=rs),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:Nt,this.minFilter=a!==void 0?a:Nt,this.flipY=!1,this.generateMipmaps=!1}},by=class extends Vt{constructor(e,t){super();let A=this,r=null,i=1,s=null,o="local-floor",a=null,c=null,l=null,u=null,d=null,h=null,f=t.getContextAttributes(),p=null,m=null,g=[],y=[],x=new nA;x.layers.enable(1),x.viewport=new He;let b=new nA;b.layers.enable(2),b.viewport=new He;let w=[x,b],T=new xy;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 U=g[F];return U===void 0&&(U=new iu,g[F]=U),U.getTargetRaySpace()},this.getControllerGrip=function(F){let U=g[F];return U===void 0&&(U=new iu,g[F]=U),U.getGripSpace()},this.getHand=function(F){let U=g[F];return U===void 0&&(U=new iu,g[F]=U),U.getHandSpace()};function E(F){let U=y.indexOf(F.inputSource);if(U===-1)return;let Q=g[U];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<g.length;F++){let U=y[F];U!==null&&(y[F]=null,g[F].disconnect(U))}M=null,v=null,e.setRenderTarget(p),d=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:d},this.getBinding=function(){return l},this.getFrame=function(){return h},this.getSession=function(){return r},this.setSession=async function(F){if(r=F,r!==null){if(p=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),f.xrCompatible!==!0&&await t.makeXRCompatible(),r.renderState.layers===void 0||e.capabilities.isWebGL2===!1){let U={antialias:r.renderState.layers===void 0?f.antialias:!0,alpha:f.alpha,depth:f.depth,stencil:f.stencil,framebufferScaleFactor:i};d=new XRWebGLLayer(r,t,U),r.updateRenderState({baseLayer:d}),m=new ht(d.framebufferWidth,d.framebufferHeight,{format:dr,type:Ft,encoding:e.outputEncoding})}else{let U=null,Q=null,z=null;f.depth&&(z=f.stencil?35056:33190,U=f.stencil?os:io,Q=f.stencil?rs:Ti);let k={colorFormat:32856,depthFormat:z,scaleFactor:i};l=new XRWebGLBinding(r,t),u=l.createProjectionLayer(k),r.updateRenderState({layers:[u]}),m=new ht(u.textureWidth,u.textureHeight,{format:dr,type:Ft,depthTexture:new ls(u.textureWidth,u.textureHeight,Q,void 0,void 0,void 0,void 0,void 0,void 0,U),stencilBuffer:f.stencil,encoding:e.outputEncoding,samples:f.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 U=0;U<F.removed.length;U++){let Q=F.removed[U],z=y.indexOf(Q);z>=0&&(y[z]=null,g[z].dispatchEvent({type:"disconnected",data:Q}))}for(let U=0;U<F.added.length;U++){let Q=F.added[U],z=y.indexOf(Q);if(z===-1){for(let j=0;j<g.length;j++)if(j>=y.length){y.push(Q),z=j;break}else if(y[j]===null){y[j]=Q,z=j;break}if(z===-1)break}let k=g[z];k&&k.dispatchEvent({type:"connected",data:Q})}}let D=new S,L=new S;function I(F,U,Q){D.setFromMatrixPosition(U.matrixWorld),L.setFromMatrixPosition(Q.matrixWorld);let z=D.distanceTo(L),k=U.projectionMatrix.elements,j=Q.projectionMatrix.elements,q=k[14]/(k[10]-1),V=k[14]/(k[10]+1),ue=(k[9]+1)/k[5],Ae=(k[9]-1)/k[5],Z=(k[8]-1)/k[0],Y=(j[8]+1)/j[0],ne=q*Z,le=q*Y,se=z/(-Z+Y),Me=se*-Z;U.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,he=le+(z-Me),De=ue*V/ge*me,Be=Ae*V/ge*me;F.projectionMatrix.makePerspective(ye,he,De,Be,me,ge)}function B(F,U){U===null?F.matrixWorld.copy(F.matrix):F.matrixWorld.multiplyMatrices(U.matrixWorld,F.matrix),F.matrixWorldInverse.copy(F.matrixWorld).invert()}this.updateCamera=function(F){if(r===null)return;T.near=b.near=x.near=F.near,T.far=b.far=x.far=F.far,(M!==T.near||v!==T.far)&&(r.updateRenderState({depthNear:T.near,depthFar:T.far}),M=T.near,v=T.far);let U=F.parent,Q=T.cameras;B(T,U);for(let k=0;k<Q.length;k++)B(Q[k],U);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 k=0,j=z.length;k<j;k++)z[k].updateMatrixWorld(!0);Q.length===2?I(T,x,b):T.projectionMatrix.copy(x.projectionMatrix)},this.getCamera=function(){return T},this.getFoveation=function(){if(u!==null)return u.fixedFoveation;if(d!==null)return d.fixedFoveation},this.setFoveation=function(F){u!==null&&(u.fixedFoveation=F),d!==null&&d.fixedFoveation!==void 0&&(d.fixedFoveation=F)};let N=null;function W(F,U){if(c=U.getViewerPose(a||s),h=U,c!==null){let Q=c.views;d!==null&&(e.setRenderTargetFramebuffer(m,d.framebuffer),e.setRenderTarget(m));let z=!1;Q.length!==T.cameras.length&&(T.cameras.length=0,z=!0);for(let k=0;k<Q.length;k++){let j=Q[k],q=null;if(d!==null)q=d.getViewport(j);else{let ue=l.getViewSubImage(u,j);q=ue.viewport,k===0&&(e.setRenderTargetTextures(m,ue.colorTexture,u.ignoreDepthValues?void 0:ue.depthStencilTexture),e.setRenderTarget(m))}let V=w[k];V===void 0&&(V=new nA,V.layers.enable(k),V.viewport=new He,w[k]=V),V.matrix.fromArray(j.transform.matrix),V.projectionMatrix.fromArray(j.projectionMatrix),V.viewport.set(q.x,q.y,q.width,q.height),k===0&&T.matrix.copy(V.matrix),z===!0&&T.cameras.push(V)}}for(let Q=0;Q<g.length;Q++){let z=y[Q],k=g[Q];z!==null&&k!==void 0&&k.update(z,U,a||s)}N&&N(F,U),h=null}let X=new $w;X.setAnimationLoop(W),this.setAnimationLoop=function(F){N=F},this.dispose=function(){}}};function wB(n,e){function t(p,m){p.fogColor.value.copy(m.color),m.isFog?(p.fogNear.value=m.near,p.fogFar.value=m.far):m.isFogExp2&&(p.fogDensity.value=m.density)}function A(p,m,g,y,x){m.isMeshBasicMaterial||m.isMeshLambertMaterial?r(p,m):m.isMeshToonMaterial?(r(p,m),l(p,m)):m.isMeshPhongMaterial?(r(p,m),c(p,m)):m.isMeshStandardMaterial?(r(p,m),u(p,m),m.isMeshPhysicalMaterial&&d(p,m,x)):m.isMeshMatcapMaterial?(r(p,m),h(p,m)):m.isMeshDepthMaterial?r(p,m):m.isMeshDistanceMaterial?(r(p,m),f(p,m)):m.isMeshNormalMaterial?r(p,m):m.isLineBasicMaterial?(i(p,m),m.isLineDashedMaterial&&s(p,m)):m.isPointsMaterial?o(p,m,g,y):m.isSpriteMaterial?a(p,m):m.isShadowMaterial?(p.color.value.copy(m.color),p.opacity.value=m.opacity):m.isShaderMaterial&&(m.uniformsNeedUpdate=!1)}function r(p,m){p.opacity.value=m.opacity,m.color&&p.diffuse.value.copy(m.color),m.emissive&&p.emissive.value.copy(m.emissive).multiplyScalar(m.emissiveIntensity),m.map&&(p.map.value=m.map),m.alphaMap&&(p.alphaMap.value=m.alphaMap),m.bumpMap&&(p.bumpMap.value=m.bumpMap,p.bumpScale.value=m.bumpScale,m.side===CA&&(p.bumpScale.value*=-1)),m.displacementMap&&(p.displacementMap.value=m.displacementMap,p.displacementScale.value=m.displacementScale,p.displacementBias.value=m.displacementBias),m.emissiveMap&&(p.emissiveMap.value=m.emissiveMap),m.normalMap&&(p.normalMap.value=m.normalMap,p.normalScale.value.copy(m.normalScale),m.side===CA&&p.normalScale.value.negate()),m.specularMap&&(p.specularMap.value=m.specularMap),m.alphaTest>0&&(p.alphaTest.value=m.alphaTest);let g=e.get(m).envMap;if(g&&(p.envMap.value=g,p.flipEnvMap.value=g.isCubeTexture&&g.isRenderTargetTexture===!1?-1:1,p.reflectivity.value=m.reflectivity,p.ior.value=m.ior,p.refractionRatio.value=m.refractionRatio),m.lightMap){p.lightMap.value=m.lightMap;let b=n.physicallyCorrectLights!==!0?Math.PI:1;p.lightMapIntensity.value=m.lightMapIntensity*b}m.aoMap&&(p.aoMap.value=m.aoMap,p.aoMapIntensity.value=m.aoMapIntensity);let y;m.map?y=m.map:m.specularMap?y=m.specularMap:m.displacementMap?y=m.displacementMap:m.normalMap?y=m.normalMap:m.bumpMap?y=m.bumpMap:m.roughnessMap?y=m.roughnessMap:m.metalnessMap?y=m.metalnessMap:m.alphaMap?y=m.alphaMap:m.emissiveMap?y=m.emissiveMap:m.clearcoatMap?y=m.clearcoatMap:m.clearcoatNormalMap?y=m.clearcoatNormalMap:m.clearcoatRoughnessMap?y=m.clearcoatRoughnessMap:m.iridescenceMap?y=m.iridescenceMap:m.iridescenceThicknessMap?y=m.iridescenceThicknessMap:m.specularIntensityMap?y=m.specularIntensityMap:m.specularColorMap?y=m.specularColorMap:m.transmissionMap?y=m.transmissionMap:m.thicknessMap?y=m.thicknessMap:m.sheenColorMap?y=m.sheenColorMap:m.sheenRoughnessMap&&(y=m.sheenRoughnessMap),y!==void 0&&(y.isWebGLRenderTarget&&(y=y.texture),y.matrixAutoUpdate===!0&&y.updateMatrix(),p.uvTransform.value.copy(y.matrix));let x;m.aoMap?x=m.aoMap:m.lightMap&&(x=m.lightMap),x!==void 0&&(x.isWebGLRenderTarget&&(x=x.texture),x.matrixAutoUpdate===!0&&x.updateMatrix(),p.uv2Transform.value.copy(x.matrix))}function i(p,m){p.diffuse.value.copy(m.color),p.opacity.value=m.opacity}function s(p,m){p.dashSize.value=m.dashSize,p.totalSize.value=m.dashSize+m.gapSize,p.scale.value=m.scale}function o(p,m,g,y){p.diffuse.value.copy(m.color),p.opacity.value=m.opacity,p.size.value=m.size*g,p.scale.value=y*.5,m.map&&(p.map.value=m.map),m.alphaMap&&(p.alphaMap.value=m.alphaMap),m.alphaTest>0&&(p.alphaTest.value=m.alphaTest);let x;m.map?x=m.map:m.alphaMap&&(x=m.alphaMap),x!==void 0&&(x.matrixAutoUpdate===!0&&x.updateMatrix(),p.uvTransform.value.copy(x.matrix))}function a(p,m){p.diffuse.value.copy(m.color),p.opacity.value=m.opacity,p.rotation.value=m.rotation,m.map&&(p.map.value=m.map),m.alphaMap&&(p.alphaMap.value=m.alphaMap),m.alphaTest>0&&(p.alphaTest.value=m.alphaTest);let g;m.map?g=m.map:m.alphaMap&&(g=m.alphaMap),g!==void 0&&(g.matrixAutoUpdate===!0&&g.updateMatrix(),p.uvTransform.value.copy(g.matrix))}function c(p,m){p.specular.value.copy(m.specular),p.shininess.value=Math.max(m.shininess,1e-4)}function l(p,m){m.gradientMap&&(p.gradientMap.value=m.gradientMap)}function u(p,m){p.roughness.value=m.roughness,p.metalness.value=m.metalness,m.roughnessMap&&(p.roughnessMap.value=m.roughnessMap),m.metalnessMap&&(p.metalnessMap.value=m.metalnessMap),e.get(m).envMap&&(p.envMapIntensity.value=m.envMapIntensity)}function d(p,m,g){p.ior.value=m.ior,m.sheen>0&&(p.sheenColor.value.copy(m.sheenColor).multiplyScalar(m.sheen),p.sheenRoughness.value=m.sheenRoughness,m.sheenColorMap&&(p.sheenColorMap.value=m.sheenColorMap),m.sheenRoughnessMap&&(p.sheenRoughnessMap.value=m.sheenRoughnessMap)),m.clearcoat>0&&(p.clearcoat.value=m.clearcoat,p.clearcoatRoughness.value=m.clearcoatRoughness,m.clearcoatMap&&(p.clearcoatMap.value=m.clearcoatMap),m.clearcoatRoughnessMap&&(p.clearcoatRoughnessMap.value=m.clearcoatRoughnessMap),m.clearcoatNormalMap&&(p.clearcoatNormalScale.value.copy(m.clearcoatNormalScale),p.clearcoatNormalMap.value=m.clearcoatNormalMap,m.side===CA&&p.clearcoatNormalScale.value.negate())),m.iridescence>0&&(p.iridescence.value=m.iridescence,p.iridescenceIOR.value=m.iridescenceIOR,p.iridescenceThicknessMinimum.value=m.iridescenceThicknessRange[0],p.iridescenceThicknessMaximum.value=m.iridescenceThicknessRange[1],m.iridescenceMap&&(p.iridescenceMap.value=m.iridescenceMap),m.iridescenceThicknessMap&&(p.iridescenceThicknessMap.value=m.iridescenceThicknessMap)),m.transmission>0&&(p.transmission.value=m.transmission,p.transmissionSamplerMap.value=g.texture,p.transmissionSamplerSize.value.set(g.width,g.height),m.transmissionMap&&(p.transmissionMap.value=m.transmissionMap),p.thickness.value=m.thickness,m.thicknessMap&&(p.thicknessMap.value=m.thicknessMap),p.attenuationDistance.value=m.attenuationDistance,p.attenuationColor.value.copy(m.attenuationColor)),p.specularIntensity.value=m.specularIntensity,p.specularColor.value.copy(m.specularColor),m.specularIntensityMap&&(p.specularIntensityMap.value=m.specularIntensityMap),m.specularColorMap&&(p.specularColorMap.value=m.specularColorMap)}function h(p,m){m.matcap&&(p.matcap.value=m.matcap)}function f(p,m){p.referencePosition.value.copy(m.referencePosition),p.nearDistance.value=m.nearDistance,p.farDistance.value=m.farDistance}return{refreshFogUniforms:t,refreshMaterialUniforms:A}}function SB(){let n=zh("canvas");return n.style.display="block",n}function qy(n={}){this.isWebGLRenderer=!0;let e=n.canvas!==void 0?n.canvas:SB(),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,d=null,h=[],f=[];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=_n,this.physicallyCorrectLights=!1,this.toneMapping=Mi,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 p=this,m=!1,g=0,y=0,x=null,b=-1,w=null,T=new He,M=new He,v=null,E=e.width,C=e.height,P=1,D=null,L=null,I=new He(0,0,E,C),B=new He(0,0,E,C),N=!1,W=new uu,X=!1,F=!1,U=null,Q=new de,z=new G,k=new S,j={background:null,fog:null,environment:null,overrideMaterial:null,isScene:!0};function q(){return x===null?P:1}let V=t;function ue(_,$){for(let ie=0;ie<_.length;ie++){let te=_[ie],ce=e.getContext(te,$);if(ce!==null)return ce}return null}try{let _={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${go}`),e.addEventListener("webglcontextlost",H,!1),e.addEventListener("webglcontextrestored",xe,!1),e.addEventListener("webglcontextcreationerror",Te,!1),V===null){let $=["webgl2","webgl","experimental-webgl"];if(p.isWebGL1Renderer===!0&&$.shift(),V=ue($,_),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(_){throw console.error("THREE.WebGLRenderer: "+_.message),_}let Ae,Z,Y,ne,le,se,Me,me,ge,ye,he,De,Be,Ke,R,O,J,ae,fe,Ce,Ge,re,Ne;function _e(){Ae=new W_(V),Z=new G_(V,Ae,n),Ae.init(Z),re=new xB(V,Ae,Z),Y=new yB(V,Ae,Z),ne=new q_,le=new sB,se=new vB(V,Ae,Y,le,Z,re,ne),Me=new k_(p),me=new H_(p),ge=new iO(V,Z),Ne=new N_(V,Ae,ge,Z),ye=new j_(V,ge,ne,Ne),he=new Z_(V,ye,ge,ne),fe=new K_(V,Z,se),O=new U_(le),De=new iB(p,Me,me,Ae,Z,Ne,O),Be=new wB(p,le),Ke=new aB,R=new fB(Ae,Z),ae=new B_(p,Me,Y,he,l,s),J=new gB(p,he,Z),Ce=new F_(V,Ae,ne,Z),Ge=new Y_(V,Ae,ne,Z),ne.programs=De.programs,p.capabilities=Z,p.extensions=Ae,p.properties=le,p.renderLists=Ke,p.shadowMap=J,p.state=Y,p.info=ne}_e();let ve=new by(p,V);this.xr=ve,this.getContext=function(){return V},this.getContextAttributes=function(){return V.getContextAttributes()},this.forceContextLoss=function(){let _=Ae.get("WEBGL_lose_context");_&&_.loseContext()},this.forceContextRestore=function(){let _=Ae.get("WEBGL_lose_context");_&&_.restoreContext()},this.getPixelRatio=function(){return P},this.setPixelRatio=function(_){_!==void 0&&(P=_,this.setSize(E,C,!1))},this.getSize=function(_){return _.set(E,C)},this.setSize=function(_,$,ie){if(ve.isPresenting){console.warn("THREE.WebGLRenderer: Can't change size while VR device is presenting.");return}E=_,C=$,e.width=Math.floor(_*P),e.height=Math.floor($*P),ie!==!1&&(e.style.width=_+"px",e.style.height=$+"px"),this.setViewport(0,0,_,$)},this.getDrawingBufferSize=function(_){return _.set(E*P,C*P).floor()},this.setDrawingBufferSize=function(_,$,ie){E=_,C=$,P=ie,e.width=Math.floor(_*ie),e.height=Math.floor($*ie),this.setViewport(0,0,_,$)},this.getCurrentViewport=function(_){return _.copy(T)},this.getViewport=function(_){return _.copy(I)},this.setViewport=function(_,$,ie,te){_.isVector4?I.set(_.x,_.y,_.z,_.w):I.set(_,$,ie,te),Y.viewport(T.copy(I).multiplyScalar(P).floor())},this.getScissor=function(_){return _.copy(B)},this.setScissor=function(_,$,ie,te){_.isVector4?B.set(_.x,_.y,_.z,_.w):B.set(_,$,ie,te),Y.scissor(M.copy(B).multiplyScalar(P).floor())},this.getScissorTest=function(){return N},this.setScissorTest=function(_){Y.setScissorTest(N=_)},this.setOpaqueSort=function(_){D=_},this.setTransparentSort=function(_){L=_},this.getClearColor=function(_){return _.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(_=!0,$=!0,ie=!0){let te=0;_&&(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),Ke.dispose(),R.dispose(),le.dispose(),Me.dispose(),me.dispose(),he.dispose(),Ne.dispose(),De.dispose(),ve.dispose(),ve.removeEventListener("sessionstart",st),ve.removeEventListener("sessionend",vt),U&&(U.dispose(),U=null),Tt.stop()};function H(_){_.preventDefault(),console.log("THREE.WebGLRenderer: Context Lost."),m=!0}function xe(){console.log("THREE.WebGLRenderer: Context Restored."),m=!1;let _=ne.autoReset,$=J.enabled,ie=J.autoUpdate,te=J.needsUpdate,ce=J.type;_e(),ne.autoReset=_,J.enabled=$,J.autoUpdate=ie,J.needsUpdate=te,J.type=ce}function Te(_){console.error("THREE.WebGLRenderer: A WebGL context could not be created. Reason: ",_.statusMessage)}function Qe(_){let $=_.target;$.removeEventListener("dispose",Qe),Re($)}function Re(_){Je(_),le.remove(_)}function Je(_){let $=le.get(_).programs;$!==void 0&&($.forEach(function(ie){De.releaseProgram(ie)}),_.isShaderMaterial&&De.releaseShaderCache(_))}this.renderBufferDirect=function(_,$,ie,te,ce,tt){$===null&&($=j);let rt=ce.isMesh&&ce.matrixWorld.determinant()<0,at=SD(_,$,ie,te,ce);Y.setMaterial(te,rt);let ot=ie.index,It=ie.attributes.position;if(ot===null){if(It===void 0||It.count===0)return}else if(ot.count===0)return;let pt=1;te.wireframe===!0&&(ot=ye.getWireframeAttribute(ie),pt=2),Ne.setup(ce,te,at,ie,ot);let xt,qt=Ce;ot!==null&&(xt=ge.get(ot),qt=Ge,qt.setIndex(xt));let Js=ot!==null?ot.count:It.count,ea=ie.drawRange.start*pt,ta=ie.drawRange.count*pt,Lr=tt!==null?tt.start*pt:0,Mt=tt!==null?tt.count*pt:1/0,Aa=Math.max(ea,Lr),cA=Math.min(Js,ea+ta,Lr+Mt)-1,_r=Math.max(0,cA-Aa+1);if(_r!==0){if(ce.isMesh)te.wireframe===!0?(Y.setLineWidth(te.wireframeLinewidth*q()),qt.setMode(1)):qt.setMode(4);else if(ce.isLine){let Qi=te.linewidth;Qi===void 0&&(Qi=1),Y.setLineWidth(Qi*q()),ce.isLineSegments?qt.setMode(1):ce.isLineLoop?qt.setMode(2):qt.setMode(3)}else ce.isPoints?qt.setMode(0):ce.isSprite&&qt.setMode(4);if(ce.isInstancedMesh)qt.renderInstances(Aa,_r,ce.count);else if(ie.isInstancedBufferGeometry){let Qi=Math.min(ie.instanceCount,ie._maxInstanceCount);qt.renderInstances(Aa,_r,Qi)}else qt.render(Aa,_r)}},this.compile=function(_,$){d=R.get(_),d.init(),f.push(d),_.traverseVisible(function(ie){ie.isLight&&ie.layers.test($.layers)&&(d.pushLight(ie),ie.castShadow&&d.pushShadow(ie))}),d.setupLights(p.physicallyCorrectLights),_.traverse(function(ie){let te=ie.material;if(te)if(Array.isArray(te))for(let ce=0;ce<te.length;ce++){let tt=te[ce];gg(tt,_,ie)}else gg(te,_,ie)}),f.pop(),d=null};let be=null;function $e(_){be&&be(_)}function st(){Tt.stop()}function vt(){Tt.start()}let Tt=new $w;Tt.setAnimationLoop($e),typeof self<"u"&&Tt.setContext(self),this.setAnimationLoop=function(_){be=_,ve.setAnimationLoop(_),_===null?Tt.stop():Tt.start()},ve.addEventListener("sessionstart",st),ve.addEventListener("sessionend",vt),this.render=function(_,$){if($!==void 0&&$.isCamera!==!0){console.error("THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.");return}if(m===!0)return;_.autoUpdate===!0&&_.updateMatrixWorld(),$.parent===null&&$.updateMatrixWorld(),ve.enabled===!0&&ve.isPresenting===!0&&(ve.cameraAutoUpdate===!0&&ve.updateCamera($),$=ve.getCamera()),_.isScene===!0&&_.onBeforeRender(p,_,$,x),d=R.get(_,f.length),d.init(),f.push(d),Q.multiplyMatrices($.projectionMatrix,$.matrixWorldInverse),W.setFromProjectionMatrix(Q),F=this.localClippingEnabled,X=O.init(this.clippingPlanes,F,$),u=Ke.get(_,h.length),u.init(),h.push(u),mn(_,$,0,p.sortObjects),u.finish(),p.sortObjects===!0&&u.sort(D,L),X===!0&&O.beginShadows();let ie=d.state.shadowsArray;if(J.render(ie,_,$),X===!0&&O.endShadows(),this.info.autoReset===!0&&this.info.reset(),ae.render(u,_),d.setupLights(p.physicallyCorrectLights),$.isArrayCamera){let te=$.cameras;for(let ce=0,tt=te.length;ce<tt;ce++){let rt=te[ce];oh(u,_,rt,rt.viewport)}}else oh(u,_,$);x!==null&&(se.updateMultisampleRenderTarget(x),se.updateRenderTargetMipmap(x)),_.isScene===!0&&_.onAfterRender(p,_,$),Ne.resetDefaultState(),b=-1,w=null,f.pop(),f.length>0?d=f[f.length-1]:d=null,h.pop(),h.length>0?u=h[h.length-1]:u=null};function mn(_,$,ie,te){if(_.visible===!1)return;if(_.layers.test($.layers)){if(_.isGroup)ie=_.renderOrder;else if(_.isLOD)_.autoUpdate===!0&&_.update($);else if(_.isLight)d.pushLight(_),_.castShadow&&d.pushShadow(_);else if(_.isSprite){if(!_.frustumCulled||W.intersectsSprite(_)){te&&k.setFromMatrixPosition(_.matrixWorld).applyMatrix4(Q);let rt=he.update(_),at=_.material;at.visible&&u.push(_,rt,at,ie,k.z,null)}}else if((_.isMesh||_.isLine||_.isPoints)&&(_.isSkinnedMesh&&_.skeleton.frame!==ne.render.frame&&(_.skeleton.update(),_.skeleton.frame=ne.render.frame),!_.frustumCulled||W.intersectsObject(_))){te&&k.setFromMatrixPosition(_.matrixWorld).applyMatrix4(Q);let rt=he.update(_),at=_.material;if(Array.isArray(at)){let ot=rt.groups;for(let It=0,pt=ot.length;It<pt;It++){let xt=ot[It],qt=at[xt.materialIndex];qt&&qt.visible&&u.push(_,rt,qt,ie,k.z,xt)}}else at.visible&&u.push(_,rt,at,ie,k.z,null)}}let tt=_.children;for(let rt=0,at=tt.length;rt<at;rt++)mn(tt[rt],$,ie,te)}function oh(_,$,ie,te){let ce=_.opaque,tt=_.transmissive,rt=_.transparent;d.setupLightsView(ie),tt.length>0&&$o(ce,$,ie),te&&Y.viewport(T.copy(te)),ce.length>0&&ah(ce,$,ie),tt.length>0&&ah(tt,$,ie),rt.length>0&&ah(rt,$,ie),Y.buffers.depth.setTest(!0),Y.buffers.depth.setMask(!0),Y.buffers.color.setMask(!0),Y.setPolygonOffset(!1)}function $o(_,$,ie){let te=Z.isWebGL2;U===null&&(U=new ht(1,1,{generateMipmaps:!0,type:Ae.has("EXT_color_buffer_half_float")?au:Ft,minFilter:Va,samples:te&&i===!0?4:0})),p.getDrawingBufferSize(z),te?U.setSize(z.x,z.y):U.setSize(Vh(z.x),Vh(z.y));let ce=p.getRenderTarget();p.setRenderTarget(U),p.clear();let tt=p.toneMapping;p.toneMapping=Mi,ah(_,$,ie),p.toneMapping=tt,se.updateMultisampleRenderTarget(U),se.updateRenderTargetMipmap(U),p.setRenderTarget(ce)}function ah(_,$,ie){let te=$.isScene===!0?$.overrideMaterial:null;for(let ce=0,tt=_.length;ce<tt;ce++){let rt=_[ce],at=rt.object,ot=rt.geometry,It=te===null?rt.material:te,pt=rt.group;at.layers.test(ie.layers)&&wD(at,$,ie,ot,It,pt)}}function wD(_,$,ie,te,ce,tt){_.onBeforeRender(p,$,ie,te,ce,tt),_.modelViewMatrix.multiplyMatrices(ie.matrixWorldInverse,_.matrixWorld),_.normalMatrix.getNormalMatrix(_.modelViewMatrix),ce.onBeforeRender(p,$,ie,te,_,tt),ce.transparent===!0&&ce.side===Ln?(ce.side=CA,ce.needsUpdate=!0,p.renderBufferDirect(ie,$,te,ce,_,tt),ce.side=Ur,ce.needsUpdate=!0,p.renderBufferDirect(ie,$,te,ce,_,tt),ce.side=Ln):p.renderBufferDirect(ie,$,te,ce,_,tt),_.onAfterRender(p,$,ie,te,ce,tt)}function gg(_,$,ie){$.isScene!==!0&&($=j);let te=le.get(_),ce=d.state.lights,tt=d.state.shadowsArray,rt=ce.state.version,at=De.getParameters(_,ce.state,tt,$,ie),ot=De.getProgramCacheKey(at),It=te.programs;te.environment=_.isMeshStandardMaterial?$.environment:null,te.fog=$.fog,te.envMap=(_.isMeshStandardMaterial?me:Me).get(_.envMap||te.environment),It===void 0&&(_.addEventListener("dispose",Qe),It=new Map,te.programs=It);let pt=It.get(ot);if(pt!==void 0){if(te.currentProgram===pt&&te.lightsStateVersion===rt)return cb(_,at),pt}else at.uniforms=De.getUniforms(_),_.onBuild(ie,at,p),_.onBeforeCompile(at,p),pt=De.acquireProgram(at,ot),It.set(ot,pt),te.uniforms=at.uniforms;let xt=te.uniforms;(!_.isShaderMaterial&&!_.isRawShaderMaterial||_.clipping===!0)&&(xt.clippingPlanes=O.uniform),cb(_,at),te.needsLights=MD(_),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 qt=pt.getUniforms(),Js=ba.seqWithValue(qt.seq,xt);return te.currentProgram=pt,te.uniformsList=Js,pt}function cb(_,$){let ie=le.get(_);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 SD(_,$,ie,te,ce){$.isScene!==!0&&($=j),se.resetTextureUnits();let tt=$.fog,rt=te.isMeshStandardMaterial?$.environment:null,at=x===null?p.outputEncoding:x.isXRRenderTarget===!0?x.texture.encoding:_n,ot=(te.isMeshStandardMaterial?me:Me).get(te.envMap||rt),It=te.vertexColors===!0&&!!ie.attributes.color&&ie.attributes.color.itemSize===4,pt=!!te.normalMap&&!!ie.attributes.tangent,xt=!!ie.morphAttributes.position,qt=!!ie.morphAttributes.normal,Js=!!ie.morphAttributes.color,ea=te.toneMapped?p.toneMapping:Mi,ta=ie.morphAttributes.position||ie.morphAttributes.normal||ie.morphAttributes.color,Lr=ta!==void 0?ta.length:0,Mt=le.get(te),Aa=d.state.lights;if(X===!0&&(F===!0||_!==w)){let Rr=_===w&&te.id===b;O.setState(te,_,Rr)}let cA=!1;te.version===Mt.__version?(Mt.needsLights&&Mt.lightsStateVersion!==Aa.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!==tt||Mt.numClippingPlanes!==void 0&&(Mt.numClippingPlanes!==O.numPlanes||Mt.numIntersection!==O.numIntersection)||Mt.vertexAlphas!==It||Mt.vertexTangents!==pt||Mt.morphTargets!==xt||Mt.morphNormals!==qt||Mt.morphColors!==Js||Mt.toneMapping!==ea||Z.isWebGL2===!0&&Mt.morphTargetsCount!==Lr)&&(cA=!0):(cA=!0,Mt.__version=te.version);let _r=Mt.currentProgram;cA===!0&&(_r=gg(te,$,ce));let Qi=!1,Qc=!1,yg=!1,$A=_r.getUniforms(),Kc=Mt.uniforms;if(Y.useProgram(_r.program)&&(Qi=!0,Qc=!0,yg=!0),te.id!==b&&(b=te.id,Qc=!0),Qi||w!==_){if($A.setValue(V,"projectionMatrix",_.projectionMatrix),Z.logarithmicDepthBuffer&&$A.setValue(V,"logDepthBufFC",2/(Math.log(_.far+1)/Math.LN2)),w!==_&&(w=_,Qc=!0,yg=!0),te.isShaderMaterial||te.isMeshPhongMaterial||te.isMeshToonMaterial||te.isMeshStandardMaterial||te.envMap){let Rr=$A.map.cameraPosition;Rr!==void 0&&Rr.setValue(V,k.setFromMatrixPosition(_.matrixWorld))}(te.isMeshPhongMaterial||te.isMeshToonMaterial||te.isMeshLambertMaterial||te.isMeshBasicMaterial||te.isMeshStandardMaterial||te.isShaderMaterial)&&$A.setValue(V,"isOrthographic",_.isOrthographicCamera===!0),(te.isMeshPhongMaterial||te.isMeshToonMaterial||te.isMeshLambertMaterial||te.isMeshBasicMaterial||te.isMeshStandardMaterial||te.isShaderMaterial||te.isShadowMaterial||ce.isSkinnedMesh)&&$A.setValue(V,"viewMatrix",_.matrixWorldInverse)}if(ce.isSkinnedMesh){$A.setOptional(V,ce,"bindMatrix"),$A.setOptional(V,ce,"bindMatrixInverse");let Rr=ce.skeleton;Rr&&(Z.floatVertexTextures?(Rr.boneTexture===null&&Rr.computeBoneTexture(),$A.setValue(V,"boneTexture",Rr.boneTexture,se),$A.setValue(V,"boneTextureSize",Rr.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 vg=ie.morphAttributes;return(vg.position!==void 0||vg.normal!==void 0||vg.color!==void 0&&Z.isWebGL2===!0)&&fe.update(ce,ie,te,_r),(Qc||Mt.receiveShadow!==ce.receiveShadow)&&(Mt.receiveShadow=ce.receiveShadow,$A.setValue(V,"receiveShadow",ce.receiveShadow)),Qc&&($A.setValue(V,"toneMappingExposure",p.toneMappingExposure),Mt.needsLights&&TD(Kc,yg),tt&&te.fog===!0&&Be.refreshFogUniforms(Kc,tt),Be.refreshMaterialUniforms(Kc,te,P,C,U),ba.upload(V,Mt.uniformsList,Kc,se)),te.isShaderMaterial&&te.uniformsNeedUpdate===!0&&(ba.upload(V,Mt.uniformsList,Kc,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),_r}function TD(_,$){_.ambientLightColor.needsUpdate=$,_.lightProbe.needsUpdate=$,_.directionalLights.needsUpdate=$,_.directionalLightShadows.needsUpdate=$,_.pointLights.needsUpdate=$,_.pointLightShadows.needsUpdate=$,_.spotLights.needsUpdate=$,_.spotLightShadows.needsUpdate=$,_.rectAreaLights.needsUpdate=$,_.hemisphereLights.needsUpdate=$}function MD(_){return _.isMeshLambertMaterial||_.isMeshToonMaterial||_.isMeshPhongMaterial||_.isMeshStandardMaterial||_.isShadowMaterial||_.isShaderMaterial&&_.lights===!0}this.getActiveCubeFace=function(){return g},this.getActiveMipmapLevel=function(){return y},this.getRenderTarget=function(){return x},this.setRenderTargetTextures=function(_,$,ie){le.get(_.texture).__webglTexture=$,le.get(_.depthTexture).__webglTexture=ie;let te=le.get(_);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(_,$){let ie=le.get(_);ie.__webglFramebuffer=$,ie.__useDefaultFramebuffer=$===void 0},this.setRenderTarget=function(_,$=0,ie=0){x=_,g=$,y=ie;let te=!0;if(_){let ot=le.get(_);ot.__useDefaultFramebuffer!==void 0?(Y.bindFramebuffer(36160,null),te=!1):ot.__webglFramebuffer===void 0?se.setupRenderTarget(_):ot.__hasExternalTextures&&se.rebindTextures(_,le.get(_.texture).__webglTexture,le.get(_.depthTexture).__webglTexture)}let ce=null,tt=!1,rt=!1;if(_){let ot=_.texture;(ot.isData3DTexture||ot.isDataArrayTexture)&&(rt=!0);let It=le.get(_).__webglFramebuffer;_.isWebGLCubeRenderTarget?(ce=It[$],tt=!0):Z.isWebGL2&&_.samples>0&&se.useMultisampledRTT(_)===!1?ce=le.get(_).__webglMultisampledFramebuffer:ce=It,T.copy(_.viewport),M.copy(_.scissor),v=_.scissorTest}else T.copy(I).multiplyScalar(P).floor(),M.copy(B).multiplyScalar(P).floor(),v=N;if(Y.bindFramebuffer(36160,ce)&&Z.drawBuffers&&te&&Y.drawBuffers(_,ce),Y.viewport(T),Y.scissor(M),Y.setScissorTest(v),tt){let ot=le.get(_.texture);V.framebufferTexture2D(36160,36064,34069+$,ot.__webglTexture,ie)}else if(rt){let ot=le.get(_.texture),It=$||0;V.framebufferTextureLayer(36160,36064,ot.__webglTexture,ie||0,It)}b=-1},this.readRenderTargetPixels=function(_,$,ie,te,ce,tt,rt){if(!(_&&_.isWebGLRenderTarget)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");return}let at=le.get(_).__webglFramebuffer;if(_.isWebGLCubeRenderTarget&&rt!==void 0&&(at=at[rt]),at){Y.bindFramebuffer(36160,at);try{let ot=_.texture,It=ot.format,pt=ot.type;if(It!==dr&&re.convert(It)!==V.getParameter(35739)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");return}let xt=pt===au&&(Ae.has("EXT_color_buffer_half_float")||Z.isWebGL2&&Ae.has("EXT_color_buffer_float"));if(pt!==Ft&&re.convert(pt)!==V.getParameter(35738)&&!(pt===Nr&&(Z.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&&$<=_.width-te&&ie>=0&&ie<=_.height-ce&&V.readPixels($,ie,te,ce,re.convert(It),re.convert(pt),tt)}finally{let ot=x!==null?le.get(x).__webglFramebuffer:null;Y.bindFramebuffer(36160,ot)}}},this.copyFramebufferToTexture=function(_,$,ie=0){let te=Math.pow(2,-ie),ce=Math.floor($.image.width*te),tt=Math.floor($.image.height*te);se.setTexture2D($,0),V.copyTexSubImage2D(3553,ie,0,0,_.x,_.y,ce,tt),Y.unbindTexture()},this.copyTextureToTexture=function(_,$,ie,te=0){let ce=$.image.width,tt=$.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,_.x,_.y,ce,tt,rt,at,$.image.data):$.isCompressedTexture?V.compressedTexSubImage2D(3553,te,_.x,_.y,$.mipmaps[0].width,$.mipmaps[0].height,rt,$.mipmaps[0].data):V.texSubImage2D(3553,te,_.x,_.y,rt,at,$.image),te===0&&ie.generateMipmaps&&V.generateMipmap(3553),Y.unbindTexture()},this.copyTextureToTexture3D=function(_,$,ie,te,ce=0){if(p.isWebGL1Renderer){console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: can only be used with WebGL2.");return}let tt=_.max.x-_.min.x+1,rt=_.max.y-_.min.y+1,at=_.max.z-_.min.z+1,ot=re.convert(te.format),It=re.convert(te.type),pt;if(te.isData3DTexture)se.setTexture3D(te,0),pt=32879;else if(te.isDataArrayTexture)se.setTexture2DArray(te,0),pt=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),qt=V.getParameter(32878),Js=V.getParameter(3316),ea=V.getParameter(3315),ta=V.getParameter(32877),Lr=ie.isCompressedTexture?ie.mipmaps[0]:ie.image;V.pixelStorei(3314,Lr.width),V.pixelStorei(32878,Lr.height),V.pixelStorei(3316,_.min.x),V.pixelStorei(3315,_.min.y),V.pixelStorei(32877,_.min.z),ie.isDataTexture||ie.isData3DTexture?V.texSubImage3D(pt,ce,$.x,$.y,$.z,tt,rt,at,ot,It,Lr.data):ie.isCompressedTexture?(console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: untested support for compressed srcTexture."),V.compressedTexSubImage3D(pt,ce,$.x,$.y,$.z,tt,rt,at,ot,Lr.data)):V.texSubImage3D(pt,ce,$.x,$.y,$.z,tt,rt,at,ot,It,Lr),V.pixelStorei(3314,xt),V.pixelStorei(32878,qt),V.pixelStorei(3316,Js),V.pixelStorei(3315,ea),V.pixelStorei(32877,ta),ce===0&&te.generateMipmaps&&V.generateMipmap(pt),Y.unbindTexture()},this.initTexture=function(_){_.isCubeTexture?se.setTextureCube(_,0):_.isData3DTexture?se.setTexture3D(_,0):_.isDataArrayTexture?se.setTexture2DArray(_,0):se.setTexture2D(_,0),Y.unbindTexture()},this.resetState=function(){g=0,y=0,x=null,Y.reset(),Ne.reset()},typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}var wy=class extends qy{};wy.prototype.isWebGL1Renderer=!0;var Ea=class{constructor(e,t=1,A=1e3){this.isFog=!0,this.name="",this.color=new Le(e),this.near=t,this.far=A}clone(){return new Ea(this.color,this.near,this.far)}toJSON(){return{type:"Fog",color:this.color.getHex(),near:this.near,far:this.far}}},rn=class extends dt{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}},Qh=class{constructor(e,t){this.isInterleavedBuffer=!0,this.array=e,this.stride=t,this.count=e!==void 0?e.length/t:0,this.usage=oy,this.updateRange={offset:0,count:-1},this.version=0,this.uuid=Gr()}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=Gr()),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=Gr()),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,ao=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 Fe(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 ao(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 Kh=class extends Fe{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 Xn=class extends oo{constructor(e){super(),this.isLineBasicMaterial=!0,this.type="LineBasicMaterial",this.color=new Le(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}},Mw=new S,Ew=new S,Cw=new de,Jg=new hr,Oh=new dA,lo=class extends dt{constructor(e=new Ie,t=new Xn){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++)Mw.fromBufferAttribute(t,r-1),Ew.fromBufferAttribute(t,r),A[r]=A[r-1],A[r]+=Mw.distanceTo(Ew);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(),Oh.copy(A.boundingSphere),Oh.applyMatrix4(r),Oh.radius+=i,e.ray.intersectsSphere(Oh)===!1)return;Cw.copy(r).invert(),Jg.copy(e.ray).applyMatrix4(Cw);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,d=new S,h=this.isLineSegments?2:1,f=A.index,m=A.attributes.position;if(f!==null){let g=Math.max(0,s.start),y=Math.min(f.count,s.start+s.count);for(let x=g,b=y-1;x<b;x+=h){let w=f.getX(x),T=f.getX(x+1);if(c.fromBufferAttribute(m,w),l.fromBufferAttribute(m,T),Jg.distanceSqToSegment(c,l,d,u)>a)continue;d.applyMatrix4(this.matrixWorld);let v=e.ray.origin.distanceTo(d);v<e.near||v>e.far||t.push({distance:v,point:u.clone().applyMatrix4(this.matrixWorld),index:x,face:null,faceIndex:null,object:this})}}else{let g=Math.max(0,s.start),y=Math.min(m.count,s.start+s.count);for(let x=g,b=y-1;x<b;x+=h){if(c.fromBufferAttribute(m,x),l.fromBufferAttribute(m,x+1),Jg.distanceSqToSegment(c,l,d,u)>a)continue;d.applyMatrix4(this.matrixWorld);let T=e.ray.origin.distanceTo(d);T<e.near||T>e.far||t.push({distance:T,point:u.clone().applyMatrix4(this.matrixWorld),index:x,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}}}}},Pw=new S,Dw=new S,cs=class extends lo{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)Pw.fromBufferAttribute(t,r),Dw.fromBufferAttribute(t,r+1),A[r]=r===0?0:A[r-1],A[r+1]=A[r]+Pw.distanceTo(Dw);e.setAttribute("lineDistance",new Se(A,1))}else console.warn("THREE.LineSegments.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.");return this}};var Zh=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 Qn=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],d=A[r+1]-l,h=(s-l)/d;return(r+h)/(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 de;for(let h=0;h<=e;h++){let f=h/e;r[h]=this.getTangentAt(f,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),d=Math.abs(r[0].z);l<=c&&(c=l,A.set(1,0,0)),u<=c&&(c=u,A.set(0,1,0)),d<=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 h=1;h<=e;h++){if(i[h]=i[h-1].clone(),s[h]=s[h-1].clone(),o.crossVectors(r[h-1],r[h]),o.length()>Number.EPSILON){o.normalize();let f=Math.acos(gA(r[h-1].dot(r[h]),-1,1));i[h].applyMatrix4(a.makeRotationAxis(o,f))}s[h].crossVectors(r[h],i[h])}if(t===!0){let h=Math.acos(gA(i[0].dot(i[e]),-1,1));h/=e,r[0].dot(o.crossVectors(i[0],i[e]))>0&&(h=-h);for(let f=1;f<=e;f++)i[f].applyMatrix4(a.makeRotationAxis(r[f],h*f)),s[f].crossVectors(r[f],i[f])}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}},co=class extends Qn{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),d=a-this.aX,h=c-this.aY;a=d*l-h*u+this.aX,c=d*u+h*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}},Sy=class extends co{constructor(e,t,A,r,i,s){super(e,t,A,A,r,i,s),this.isArcCurve=!0,this.type="ArcCurve"}};function Xy(){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 d=(s-i)/c-(o-i)/(c+l)+(o-s)/l,h=(o-s)/l-(a-s)/(l+u)+(a-o)/u;d*=l,h*=l,r(s,o,d,h)},calc:function(i){let s=i*i,o=s*i;return n+e*i+t*s+A*o}}}var Lh=new S,$g=new Xy,ey=new Xy,ty=new Xy,Ty=class extends Qn{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]:(Lh.subVectors(r[0],r[1]).add(r[0]),c=Lh);let u=r[o%i],d=r[(o+1)%i];if(this.closed||o+2<i?l=r[(o+2)%i]:(Lh.subVectors(r[i-1],r[i-2]).add(r[i-1]),l=Lh),this.curveType==="centripetal"||this.curveType==="chordal"){let h=this.curveType==="chordal"?.5:.25,f=Math.pow(c.distanceToSquared(u),h),p=Math.pow(u.distanceToSquared(d),h),m=Math.pow(d.distanceToSquared(l),h);p<1e-4&&(p=1),f<1e-4&&(f=p),m<1e-4&&(m=p),$g.initNonuniformCatmullRom(c.x,u.x,d.x,l.x,f,p,m),ey.initNonuniformCatmullRom(c.y,u.y,d.y,l.y,f,p,m),ty.initNonuniformCatmullRom(c.z,u.z,d.z,l.z,f,p,m)}else this.curveType==="catmullrom"&&($g.initCatmullRom(c.x,u.x,d.x,l.x,this.tension),ey.initCatmullRom(c.y,u.y,d.y,l.y,this.tension),ty.initCatmullRom(c.z,u.z,d.z,l.z,this.tension));return A.set($g.calc(a),ey.calc(a),ty.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 Iw(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 TB(n,e){let t=1-n;return t*t*e}function MB(n,e){return 2*(1-n)*n*e}function EB(n,e){return n*n*e}function su(n,e,t,A){return TB(n,e)+MB(n,t)+EB(n,A)}function CB(n,e){let t=1-n;return t*t*t*e}function PB(n,e){let t=1-n;return 3*t*t*n*e}function DB(n,e){return 3*(1-n)*n*n*e}function IB(n,e){return n*n*n*e}function ou(n,e,t,A,r){return CB(n,e)+PB(n,t)+DB(n,A)+IB(n,r)}var qA=class extends Qn{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(ou(e,r.x,i.x,s.x,o.x),ou(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}},My=class extends Qn{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(ou(e,r.x,i.x,s.x,o.x),ou(e,r.y,i.y,s.y,o.y),ou(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 Qn{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}},hu=class extends Qn{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}},Rn=class extends Qn{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(su(e,r.x,i.x,s.x),su(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}},Ey=class extends Qn{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(su(e,r.x,i.x,s.x),su(e,r.y,i.y,s.y),su(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}},Ca=class extends Qn{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(Iw(o,a.x,c.x,l.x,u.x),Iw(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}},OB=Object.freeze({__proto__:null,ArcCurve:Sy,CatmullRomCurve3:Ty,CubicBezierCurve:qA,CubicBezierCurve3:My,EllipseCurve:co,LineCurve:XA,LineCurve3:hu,QuadraticBezierCurve:Rn,QuadraticBezierCurve3:Ey,SplineCurve:Ca}),Cy=class extends Qn{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 OB[r.type]().fromJSON(r))}return this}},uo=class extends Cy{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 Rn(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 Ca(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 co(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}},Pa=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,d=new G,h=new S,f=new S,p=new S,m=0,g=0;for(let y=0;y<=e.length-1;y++)switch(y){case 0:m=e[y+1].x-e[y].x,g=e[y+1].y-e[y].y,h.x=g*1,h.y=-m,h.z=g*0,p.copy(h),h.normalize(),a.push(h.x,h.y,h.z);break;case e.length-1:a.push(p.x,p.y,p.z);break;default:m=e[y+1].x-e[y].x,g=e[y+1].y-e[y].y,h.x=g*1,h.y=-m,h.z=g*0,f.copy(h),h.x+=p.x,h.y+=p.y,h.z+=p.z,h.normalize(),a.push(h.x,h.y,h.z),p.copy(f)}for(let y=0;y<=t;y++){let x=A+y*l*r,b=Math.sin(x),w=Math.cos(x);for(let T=0;T<=e.length-1;T++){u.x=e[T].x*b,u.y=e[T].y,u.z=e[T].x*w,s.push(u.x,u.y,u.z),d.x=y/t,d.y=T/(e.length-1),o.push(d.x,d.y);let M=a[3*T+0]*b,v=a[3*T+1],E=a[3*T+0]*w;c.push(M,v,E)}}for(let y=0;y<t;y++)for(let x=0;x<e.length-1;x++){let b=x+y*e.length,w=b,T=b+e.length,M=b+e.length+1,v=b+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 Pa(e.points,e.segments,e.phiStart,e.phiLength)}};var ho=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=[],d=[],h=[],f=0,p=[],m=A/2,g=0;y(),s===!1&&(e>0&&x(!0),t>0&&x(!1)),this.setIndex(l),this.setAttribute("position",new Se(u,3)),this.setAttribute("normal",new Se(d,3)),this.setAttribute("uv",new Se(h,2));function y(){let b=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 L=D/r,I=L*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),b.set(B,M,N).normalize(),d.push(b.x,b.y,b.z),h.push(L,1-C),E.push(f++)}p.push(E)}for(let v=0;v<r;v++)for(let E=0;E<i;E++){let C=p[E][v],P=p[E+1][v],D=p[E+1][v+1],L=p[E][v+1];l.push(C,P,L),l.push(P,D,L),T+=6}c.addGroup(g,T,0),g+=T}function x(b){let w=f,T=new G,M=new S,v=0,E=b===!0?e:t,C=b===!0?1:-1;for(let D=1;D<=r;D++)u.push(0,m*C,0),d.push(0,C,0),h.push(.5,.5),f++;let P=f;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),d.push(0,C,0),T.x=B*.5+.5,T.y=N*.5*C+.5,h.push(T.x,T.y),f++}for(let D=0;D<r;D++){let L=w+D,I=P+D;b===!0?l.push(I,I+1,L):l.push(I+1,I,L),v+=3}c.addGroup(g,v,b===!0?1:2),g+=v}}static fromJSON(e){return new ho(e.radiusTop,e.radiusBottom,e.height,e.radialSegments,e.heightSegments,e.openEnded,e.thetaStart,e.thetaLength)}},Da=class extends ho{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 Da(e.radius,e.height,e.radialSegments,e.heightSegments,e.openEnded,e.thetaStart,e.thetaLength)}},Ia=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(y){let x=new S,b=new S,w=new S;for(let T=0;T<t.length;T+=3)h(t[T+0],x),h(t[T+1],b),h(t[T+2],w),a(x,b,w,y)}function a(y,x,b,w){let T=w+1,M=[];for(let v=0;v<=T;v++){M[v]=[];let E=y.clone().lerp(b,v/T),C=x.clone().lerp(b,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?(d(M[v][C+1]),d(M[v+1][C]),d(M[v][C])):(d(M[v][C+1]),d(M[v+1][C+1]),d(M[v+1][C]))}}function c(y){let x=new S;for(let b=0;b<i.length;b+=3)x.x=i[b+0],x.y=i[b+1],x.z=i[b+2],x.normalize().multiplyScalar(y),i[b+0]=x.x,i[b+1]=x.y,i[b+2]=x.z}function l(){let y=new S;for(let x=0;x<i.length;x+=3){y.x=i[x+0],y.y=i[x+1],y.z=i[x+2];let b=m(y)/2/Math.PI+.5,w=g(y)/Math.PI+.5;s.push(b,1-w)}f(),u()}function u(){for(let y=0;y<s.length;y+=6){let x=s[y+0],b=s[y+2],w=s[y+4],T=Math.max(x,b,w),M=Math.min(x,b,w);T>.9&&M<.1&&(x<.2&&(s[y+0]+=1),b<.2&&(s[y+2]+=1),w<.2&&(s[y+4]+=1))}}function d(y){i.push(y.x,y.y,y.z)}function h(y,x){let b=y*3;x.x=e[b+0],x.y=e[b+1],x.z=e[b+2]}function f(){let y=new S,x=new S,b=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){y.set(i[E+0],i[E+1],i[E+2]),x.set(i[E+3],i[E+4],i[E+5]),b.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(y).add(x).add(b).divideScalar(3);let P=m(w);p(T,C+0,y,P),p(M,C+2,x,P),p(v,C+4,b,P)}}function p(y,x,b,w){w<0&&y.x===1&&(s[x]=y.x-1),b.x===0&&b.z===0&&(s[x]=w/2/Math.PI+.5)}function m(y){return Math.atan2(y.z,-y.x)}function g(y){return Math.atan2(-y.y,Math.sqrt(y.x*y.x+y.z*y.z))}}static fromJSON(e){return new Ia(e.vertices,e.indices,e.radius,e.details)}},Oa=class extends Ia{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 Oa(e.radius,e.detail)}};var Pi=class extends uo{constructor(e){super(e),this.uuid=Gr(),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 uo().fromJSON(r))}return this}},LB={triangulate:function(n,e,t=2){let A=e&&e.length,r=A?e[0]*t:n.length,i=iS(n,0,r,t,!0),s=[];if(!i||i.next===i.prev)return s;let o,a,c,l,u,d,h;if(A&&(i=FB(n,e,i,t)),n.length>80*t){o=c=n[0],a=l=n[1];for(let f=t;f<r;f+=t)u=n[f],d=n[f+1],u<o&&(o=u),d<a&&(a=d),u>c&&(c=u),d>l&&(l=d);h=Math.max(c-o,l-a),h=h!==0?1/h:0}return fu(i,s,t,o,a,h),s}};function iS(n,e,t,A,r){let i,s;if(r===XB(n,e,t,A)>0)for(i=e;i<t;i+=A)s=Ow(i,n[i],n[i+1],s);else for(i=t-A;i>=e;i-=A)s=Ow(i,n[i],n[i+1],s);return s&&df(s,s.next)&&(mu(s),s=s.next),s}function us(n,e){if(!n)return n;e||(e=n);let t=n,A;do if(A=!1,!t.steiner&&(df(t,t.next)||Wt(t.prev,t,t.next)===0)){if(mu(t),t=e=t.prev,t===t.next)break;A=!0}else t=t.next;while(A||t!==e);return e}function fu(n,e,t,A,r,i,s){if(!n)return;!s&&i&&zB(n,A,r,i);let o=n,a,c;for(;n.prev!==n.next;){if(a=n.prev,c=n.next,i?RB(n,A,r,i):_B(n)){e.push(a.i/t),e.push(n.i/t),e.push(c.i/t),mu(n),n=c.next,o=c.next;continue}if(n=c,n===o){s?s===1?(n=BB(us(n),e,t),fu(n,e,t,A,r,i,2)):s===2&&NB(n,e,t,A,r,i):fu(us(n),e,t,A,r,i,1);break}}}function _B(n){let e=n.prev,t=n,A=n.next;if(Wt(e,t,A)>=0)return!1;let r=n.next.next;for(;r!==n.prev;){if(va(e.x,e.y,t.x,t.y,A.x,A.y,r.x,r.y)&&Wt(r.prev,r,r.next)>=0)return!1;r=r.next}return!0}function RB(n,e,t,A){let r=n.prev,i=n,s=n.next;if(Wt(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=Py(o,a,e,t,A),d=Py(c,l,e,t,A),h=n.prevZ,f=n.nextZ;for(;h&&h.z>=u&&f&&f.z<=d;){if(h!==n.prev&&h!==n.next&&va(r.x,r.y,i.x,i.y,s.x,s.y,h.x,h.y)&&Wt(h.prev,h,h.next)>=0||(h=h.prevZ,f!==n.prev&&f!==n.next&&va(r.x,r.y,i.x,i.y,s.x,s.y,f.x,f.y)&&Wt(f.prev,f,f.next)>=0))return!1;f=f.nextZ}for(;h&&h.z>=u;){if(h!==n.prev&&h!==n.next&&va(r.x,r.y,i.x,i.y,s.x,s.y,h.x,h.y)&&Wt(h.prev,h,h.next)>=0)return!1;h=h.prevZ}for(;f&&f.z<=d;){if(f!==n.prev&&f!==n.next&&va(r.x,r.y,i.x,i.y,s.x,s.y,f.x,f.y)&&Wt(f.prev,f,f.next)>=0)return!1;f=f.nextZ}return!0}function BB(n,e,t){let A=n;do{let r=A.prev,i=A.next.next;!df(r,i)&&sS(r,A,A.next,i)&&pu(r,i)&&pu(i,r)&&(e.push(r.i/t),e.push(A.i/t),e.push(i.i/t),mu(A),mu(A.next),A=n=i),A=A.next}while(A!==n);return us(A)}function NB(n,e,t,A,r,i){let s=n;do{let o=s.next.next;for(;o!==s.prev;){if(s.i!==o.i&&jB(s,o)){let a=oS(s,o);s=us(s,s.next),a=us(a,a.next),fu(s,e,t,A,r,i),fu(a,e,t,A,r,i);return}o=o.next}s=s.next}while(s!==n)}function FB(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=iS(n,o,a,A,!1),c===c.next&&(c.steiner=!0),r.push(WB(c));for(r.sort(GB),i=0;i<r.length;i++)UB(r[i],t),t=us(t,t.next);return t}function GB(n,e){return n.x-e.x}function UB(n,e){if(e=kB(n,e),e){let t=oS(e,n);us(e,e.next),us(t,t.next)}}function kB(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 d=t.x+(r-t.y)*(t.next.x-t.x)/(t.next.y-t.y);if(d<=A&&d>i){if(i=d,d===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&&va(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),pu(t,n)&&(u<l||u===l&&(t.x>s.x||t.x===s.x&&VB(s,t)))&&(s=t,l=u)),t=t.next;while(t!==o);return s}function VB(n,e){return Wt(n.prev,n,e.prev)<0&&Wt(e.next,n,n.next)<0}function zB(n,e,t,A){let r=n;do r.z===null&&(r.z=Py(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,HB(r)}function HB(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 Py(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 WB(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 va(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 jB(n,e){return n.next.i!==e.i&&n.prev.i!==e.i&&!YB(n,e)&&(pu(n,e)&&pu(e,n)&&qB(n,e)&&(Wt(n.prev,n,e.prev)||Wt(n,e.prev,e))||df(n,e)&&Wt(n.prev,n,n.next)>0&&Wt(e.prev,e,e.next)>0)}function Wt(n,e,t){return(e.y-n.y)*(t.x-e.x)-(e.x-n.x)*(t.y-e.y)}function df(n,e){return n.x===e.x&&n.y===e.y}function sS(n,e,t,A){let r=Rh(Wt(n,e,t)),i=Rh(Wt(n,e,A)),s=Rh(Wt(t,A,n)),o=Rh(Wt(t,A,e));return!!(r!==i&&s!==o||r===0&&_h(n,t,e)||i===0&&_h(n,A,e)||s===0&&_h(t,n,A)||o===0&&_h(t,e,A))}function _h(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 Rh(n){return n>0?1:n<0?-1:0}function YB(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&&sS(t,t.next,n,e))return!0;t=t.next}while(t!==n);return!1}function pu(n,e){return Wt(n.prev,n,n.next)<0?Wt(n,e,n.next)>=0&&Wt(n,n.prev,e)>=0:Wt(n,e,n.prev)<0||Wt(n,n.next,e)<0}function qB(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 oS(n,e){let t=new Dy(n.i,n.x,n.y),A=new Dy(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 Ow(n,e,t,A){let r=new Dy(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 mu(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 Dy(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 XB(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 La=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 La.area(e)<0}static triangulateShape(e,t){let A=[],r=[],i=[];Lw(e),_w(A,e);let s=e.length;t.forEach(Lw);for(let a=0;a<t.length;a++)r.push(s),s+=t[a].length,_w(A,t[a]);let o=LB.triangulate(A,r);for(let a=0;a<o.length;a+=3)i.push(o.slice(a,a+3));return i}};function Lw(n){let e=n.length;e>2&&n[e-1].equals(n[0])&&n.pop()}function _w(n,e){for(let t=0;t<e.length;t++)n.push(e[t].x),n.push(e[t].y)}var _a=class extends Ia{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 _a(e.radius,e.detail)}};var fo=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,d=new S,h=[],f=[],p=[],m=[];for(let g=0;g<=A;g++){let y=[],x=g/A,b=0;g==0&&s==0?b=.5/t:g==A&&a==Math.PI&&(b=-.5/t);for(let w=0;w<=t;w++){let T=w/t;u.x=-e*Math.cos(r+T*i)*Math.sin(s+x*o),u.y=e*Math.cos(s+x*o),u.z=e*Math.sin(r+T*i)*Math.sin(s+x*o),f.push(u.x,u.y,u.z),d.copy(u).normalize(),p.push(d.x,d.y,d.z),m.push(T+b,1-x),y.push(c++)}l.push(y)}for(let g=0;g<A;g++)for(let y=0;y<t;y++){let x=l[g][y+1],b=l[g][y],w=l[g+1][y],T=l[g+1][y+1];(g!==0||s>0)&&h.push(x,b,T),(g!==A-1||a<Math.PI)&&h.push(b,w,T)}this.setIndex(h),this.setAttribute("position",new Se(f,3)),this.setAttribute("normal",new Se(p,3)),this.setAttribute("uv",new Se(m,2))}static fromJSON(e){return new fo(e.radius,e.widthSegments,e.heightSegments,e.phiStart,e.phiLength,e.thetaStart,e.thetaLength)}};var Ra=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,d=new S,h=new S,f=new S,p=new S,m=new S,g=new S;for(let x=0;x<=A;++x){let b=x/A*i*Math.PI*2;y(b,i,s,e,h),y(b+.01,i,s,e,f),m.subVectors(f,h),g.addVectors(f,h),p.crossVectors(m,g),g.crossVectors(p,m),p.normalize(),g.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=h.x+(M*g.x+v*p.x),u.y=h.y+(M*g.y+v*p.y),u.z=h.z+(M*g.z+v*p.z),a.push(u.x,u.y,u.z),d.subVectors(u,h).normalize(),c.push(d.x,d.y,d.z),l.push(x/A),l.push(w/r)}}for(let x=1;x<=A;x++)for(let b=1;b<=r;b++){let w=(r+1)*(x-1)+(b-1),T=(r+1)*x+(b-1),M=(r+1)*x+b,v=(r+1)*(x-1)+b;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 y(x,b,w,T,M){let v=Math.cos(x),E=Math.sin(x),C=w/b*x,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 Ra(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=[],d=[];for(let h=0;h<c.times.length;++h){let f=c.times[h]*r;if(!(f<t||f>=A)){u.push(c.times[h]);for(let p=0;p<l;++p)d.push(c.values[h*l+p])}}u.length!==0&&(c.times=mA.convertArray(u,c.times.constructor),c.values=mA.convertArray(d,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(g){return g.name===o.name&&g.ValueTypeName===a});if(c===void 0)continue;let l=0,u=o.getValueSize();o.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline&&(l=u/3);let d=0,h=c.getValueSize();c.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline&&(d=h/3);let f=o.times.length-1,p;if(i<=o.times[0]){let g=l,y=u-l;p=mA.arraySlice(o.values,g,y)}else if(i>=o.times[f]){let g=f*u+l,y=g+u-l;p=mA.arraySlice(o.values,g,y)}else{let g=o.createInterpolant(),y=l,x=u-l;g.evaluate(i),p=mA.arraySlice(g.resultBuffer,y,x)}a==="quaternion"&&new At().fromArray(p).normalize().conjugate().toArray(p);let m=c.times.length;for(let g=0;g<m;++g){let y=g*h+d;if(a==="quaternion")At.multiplyQuaternionsFlat(c.values,y,p,0,c.values,y);else{let x=h-d*2;for(let b=0;b<x;++b)c.values[y+b]-=p[b]}}}return n.blendMode=SI,n}},Ba=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_(){}},Iy=class extends Ba{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:zb,endingEnd:zb}}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 Hb:i=e,o=2*t-A;break;case Wb: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 Hb:s=e,a=2*A-t;break;case Wb: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,d=this._weightPrev,h=this._weightNext,f=(A-t)/(r-t),p=f*f,m=p*f,g=-d*m+2*d*p-d*f,y=(1+d)*m+(-1.5-2*d)*p+(-.5+d)*f+1,x=(-1-h)*m+(1.5+h)*p+.5*f,b=h*m-h*p;for(let w=0;w!==o;++w)i[w]=g*s[l+w]+y*s[c+w]+x*s[a+w]+b*s[u+w];return i}},Oy=class extends Ba{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 d=0;d!==o;++d)i[d]=s[c+d]*u+s[a+d]*l;return i}},Ly=class extends Ba{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 Ly(this.times,this.values,this.getValueSize(),e)}InterpolantFactoryMethodLinear(e){return new Oy(this.times,this.values,this.getValueSize(),e)}InterpolantFactoryMethodSmooth(e){return new Iy(this.times,this.values,this.getValueSize(),e)}setInterpolation(e){let t;switch(e){case Uh:t=this.InterpolantFactoryMethodDiscrete;break;case kh:t=this.InterpolantFactoryMethodLinear;break;case Mg: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 Uh;case this.InterpolantFactoryMethodLinear:return kh;case this.InterpolantFactoryMethodSmooth:return Mg}}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()===Mg,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,d=u-A,h=u+A;for(let f=0;f!==A;++f){let p=t[u+f];if(p!==t[d+f]||p!==t[h+f]){a=!0;break}}}if(a){if(o!==s){e[s]=e[o];let u=o*A,d=s*A;for(let h=0;h!==A;++h)t[d+h]=t[u+h]}++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=kh;var po=class extends pr{};po.prototype.ValueTypeName="bool";po.prototype.ValueBufferType=Array;po.prototype.DefaultInterpolation=Uh;po.prototype.InterpolantFactoryMethodLinear=void 0;po.prototype.InterpolantFactoryMethodSmooth=void 0;var _y=class extends pr{};_y.prototype.ValueTypeName="color";var Ry=class extends pr{};Ry.prototype.ValueTypeName="number";var By=class extends Ba{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)At.slerpFlat(i,0,s,c-o,s,c,a);return i}},gu=class extends pr{InterpolantFactoryMethodLinear(e){return new By(this.times,this.values,this.getValueSize(),e)}};gu.prototype.ValueTypeName="quaternion";gu.prototype.DefaultInterpolation=kh;gu.prototype.InterpolantFactoryMethodSmooth=void 0;var mo=class extends pr{};mo.prototype.ValueTypeName="string";mo.prototype.ValueBufferType=Array;mo.prototype.DefaultInterpolation=Uh;mo.prototype.InterpolantFactoryMethodLinear=void 0;mo.prototype.InterpolantFactoryMethodSmooth=void 0;var Ny=class extends pr{};Ny.prototype.ValueTypeName="vector";var Rw={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={}}},yu=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,d=c.length;u<d;u+=2){let h=c[u],f=c[u+1];if(h.global&&(h.lastIndex=0),h.test(l))return f}return null}}},QB=new yu,Na=class{constructor(e){this.manager=e!==void 0?e:QB,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}},wi={},Fa=class extends Na{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=Rw.get(e);if(i!==void 0)return this.manager.itemStart(e),setTimeout(()=>{t&&t(i),this.manager.itemEnd(e)},0),i;if(wi[e]!==void 0){wi[e].push({onLoad:t,onProgress:A,onError:r});return}wi[e]=[],wi[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=wi[e],u=c.body.getReader(),d=c.headers.get("Content-Length"),h=d?parseInt(d):0,f=h!==0,p=0,m=new ReadableStream({start(g){y();function y(){u.read().then(({done:x,value:b})=>{if(x)g.close();else{p+=b.byteLength;let w=new ProgressEvent("progress",{lengthComputable:f,loaded:p,total:h});for(let T=0,M=l.length;T<M;T++){let v=l[T];v.onProgress&&v.onProgress(w)}g.enqueue(b),y()}})}}});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),d=u&&u[1]?u[1].toLowerCase():void 0,h=new TextDecoder(d);return c.arrayBuffer().then(f=>h.decode(f))}}}).then(c=>{Rw.add(e,c);let l=wi[e];delete wi[e];for(let u=0,d=l.length;u<d;u++){let h=l[u];h.onLoad&&h.onLoad(c)}}).catch(c=>{let l=wi[e];if(l===void 0)throw this.manager.itemError(e),c;delete wi[e];for(let u=0,d=l.length;u<d;u++){let h=l[u];h.onError&&h.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 ds=class extends dt{constructor(e,t=1){super(),this.isLight=!0,this.type="Light",this.color=new Le(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}},Jh=class extends ds{constructor(e,t,A){super(e,A),this.isHemisphereLight=!0,this.type="HemisphereLight",this.position.copy(dt.DefaultUp),this.updateMatrix(),this.groundColor=new Le(t)}copy(e,t){return super.copy(e,t),this.groundColor.copy(e.groundColor),this}},Bw=new de,Nw=new S,Fw=new S,vu=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 de,this.autoUpdate=!0,this.needsUpdate=!1,this._frustum=new uu,this._frameExtents=new G(1,1),this._viewportCount=1,this._viewports=[new He(0,0,1,1)]}getViewportCount(){return this._viewportCount}getFrustum(){return this._frustum}updateMatrices(e){let t=this.camera,A=this.matrix;Nw.setFromMatrixPosition(e.matrixWorld),t.position.copy(Nw),Fw.setFromMatrixPosition(e.target.matrixWorld),t.lookAt(Fw),t.updateMatrixWorld(),Bw.multiplyMatrices(t.projectionMatrix,t.matrixWorldInverse),this._frustum.setFromProjectionMatrix(Bw),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}},Fy=class extends vu{constructor(){super(new nA(50,1,.5,500)),this.isSpotLightShadow=!0,this.focus=1}updateMatrices(e){let t=this.camera,A=lu*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}},$h=class extends ds{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(dt.DefaultUp),this.updateMatrix(),this.target=new dt,this.distance=A,this.angle=r,this.penumbra=i,this.decay=s,this.shadow=new Fy}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}},Gw=new de,eu=new S,Ay=new S,Gy=class extends vu{constructor(){super(new nA(90,1,.5,500)),this.isPointLightShadow=!0,this._frameExtents=new G(4,2),this._viewportCount=6,this._viewports=[new He(2,1,1,1),new He(0,1,1,1),new He(3,1,1,1),new He(1,1,1,1),new He(3,0,1,1),new He(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()),eu.setFromMatrixPosition(e.matrixWorld),A.position.copy(eu),Ay.copy(A.position),Ay.add(this._cubeDirections[t]),A.up.copy(this._cubeUps[t]),A.lookAt(Ay),A.updateMatrixWorld(),r.makeTranslation(-eu.x,-eu.y,-eu.z),Gw.multiplyMatrices(A.projectionMatrix,A.matrixWorldInverse),this._frustum.setFromProjectionMatrix(Gw)}},ef=class extends ds{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 Gy}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}},Uy=class extends vu{constructor(){super(new Ma(-5,5,5,-5,.5,500)),this.isDirectionalLightShadow=!0}},tf=class extends ds{constructor(e,t){super(e,t),this.isDirectionalLight=!0,this.type="DirectionalLight",this.position.copy(dt.DefaultUp),this.updateMatrix(),this.target=new dt,this.shadow=new Uy}dispose(){this.shadow.dispose()}copy(e){return super.copy(e),this.target=e.target.clone(),this.shadow=e.shadow.clone(),this}};var ky=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}},Ga=class extends Na{constructor(e){super(e)}load(e,t,A,r){let i=this,s=new Fa(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(h,f){if(t[f]!==void 0)return t[f];let m=h.interleavedBuffers[f],g=i(h,m.buffer),y=ch(m.type,g),x=new Qh(y,m.stride);return x.uuid=m.uuid,t[f]=x,x}function i(h,f){if(A[f]!==void 0)return A[f];let m=h.arrayBuffers[f],g=new Uint32Array(m).buffer;return A[f]=g,g}let s=e.isInstancedBufferGeometry?new ky:new Ie,o=e.data.index;if(o!==void 0){let h=ch(o.type,o.array);s.setIndex(new Fe(h,1))}let a=e.data.attributes;for(let h in a){let f=a[h],p;if(f.isInterleavedBufferAttribute){let m=r(e.data,f.data);p=new ao(m,f.itemSize,f.offset,f.normalized)}else{let m=ch(f.type,f.array),g=f.isInstancedBufferAttribute?Kh:Fe;p=new g(m,f.itemSize,f.normalized)}f.name!==void 0&&(p.name=f.name),f.usage!==void 0&&p.setUsage(f.usage),f.updateRange!==void 0&&(p.updateRange.offset=f.updateRange.offset,p.updateRange.count=f.updateRange.count),s.setAttribute(h,p)}let c=e.data.morphAttributes;if(c)for(let h in c){let f=c[h],p=[];for(let m=0,g=f.length;m<g;m++){let y=f[m],x;if(y.isInterleavedBufferAttribute){let b=r(e.data,y.data);x=new ao(b,y.itemSize,y.offset,y.normalized)}else{let b=ch(y.type,y.array);x=new Fe(b,y.itemSize,y.normalized)}y.name!==void 0&&(x.name=y.name),p.push(x)}s.morphAttributes[h]=p}e.data.morphTargetsRelative&&(s.morphTargetsRelative=!0);let u=e.data.groups||e.data.drawcalls||e.data.offsets;if(u!==void 0)for(let h=0,f=u.length;h!==f;++h){let p=u[h];s.addGroup(p.start,p.count,p.materialIndex)}let d=e.data.boundingSphere;if(d!==void 0){let h=new S;d.center!==void 0&&h.fromArray(d.center),s.boundingSphere=new dA(h,d.radius)}return e.name&&(s.name=e.name),e.userData&&(s.userData=e.userData),s}};var Af=class{constructor(e=!0){this.autoStart=e,this.startTime=0,this.oldTime=0,this.elapsedTime=0,this.running=!1}start(){this.startTime=Uw(),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=Uw();e=(t-this.oldTime)/1e3,this.oldTime=t,this.elapsedTime+=e}return e}};function Uw(){return(typeof performance>"u"?Date:performance).now()}var Qy="\\[\\]\\.:\\/",KB=new RegExp("["+Qy+"]","g"),Ky="[^"+Qy+"]",ZB="[^"+Qy.replace("\\.","")+"]",JB=/((?:WC+[\/:])*)/.source.replace("WC",Ky),$B=/(WCOD+)?/.source.replace("WCOD",ZB),e3=/(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC",Ky),t3=/\.(WC+)(?:\[(.+)\])?/.source.replace("WC",Ky),A3=new RegExp("^"+JB+$B+e3+t3+"$"),n3=["material","materials","bones"],Vy=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(KB,"")}static parseTrackName(e){let t=A3.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);n3.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=Vy;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 Ua=class{constructor(e,t,A=0,r=1/0){this.ray=new hr(e,t),this.near=A,this.far=r,this.camera=null,this.layers=new cu,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 zy(e,this,A,t),A.sort(kw),A}intersectObjects(e,t=!0,A=[]){for(let r=0,i=e.length;r<i;r++)zy(e[r],this,A,t);return A.sort(kw),A}};function kw(n,e){return n.distance-e.distance}function zy(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++)zy(r[i],e,t,!0)}}var xu=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 Vw=new G,nf=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=Vw.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 Vw.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)}},zw=new S,Bh=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){zw.subVectors(e,this.start),Bh.subVectors(this.end,this.start);let A=Bh.dot(Bh),i=Bh.dot(zw)/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)}},Hw=new S,rf=class extends dt{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 Xn({fog:!1,toneMapped:!1});this.cone=new cs(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),Hw.setFromMatrixPosition(this.light.target.matrixWorld),this.cone.lookAt(Hw),this.color!==void 0?this.cone.material.color.set(this.color):this.cone.material.color.copy(this.light.color)}};var sf=class extends EA{constructor(e,t,A){let r=new fo(t,4,2),i=new Ei({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 Ww=new S,Nh=new S,jw=new S,of=class extends dt{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 Xn({fog:!1,toneMapped:!1});this.lightPlane=new lo(r,i),this.add(this.lightPlane),r=new Ie,r.setAttribute("position",new Se([0,0,0,0,0,1],3)),this.targetLine=new lo(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(){Ww.setFromMatrixPosition(this.light.matrixWorld),Nh.setFromMatrixPosition(this.light.target.matrixWorld),jw.subVectors(Nh,Ww),this.lightPlane.lookAt(Nh),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(Nh),this.targetLine.scale.z=jw.length()}},Fh=new S,Xt=new fr,hs=class extends cs{constructor(e){let t=new Ie,A=new Xn({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(f,p){a(f),a(p)}function a(f){r.push(0,0,0),i.push(0,0,0),s[f]===void 0&&(s[f]=[]),s[f].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 Le(16755200),l=new Le(16711680),u=new Le(43775),d=new Le(16777215),h=new Le(3355443);this.setColors(c,l,u,d,h)}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;Xt.projectionMatrixInverse.copy(this.camera.projectionMatrixInverse),AA("c",t,e,Xt,0,0,-1),AA("t",t,e,Xt,0,0,1),AA("n1",t,e,Xt,-A,-r,-1),AA("n2",t,e,Xt,A,-r,-1),AA("n3",t,e,Xt,-A,r,-1),AA("n4",t,e,Xt,A,r,-1),AA("f1",t,e,Xt,-A,-r,1),AA("f2",t,e,Xt,A,-r,1),AA("f3",t,e,Xt,-A,r,1),AA("f4",t,e,Xt,A,r,1),AA("u1",t,e,Xt,A*.7,r*1.1,-1),AA("u2",t,e,Xt,-A*.7,r*1.1,-1),AA("u3",t,e,Xt,0,r*2,-1),AA("cf1",t,e,Xt,-A,0,1),AA("cf2",t,e,Xt,A,0,1),AA("cf3",t,e,Xt,0,-r,1),AA("cf4",t,e,Xt,0,r,1),AA("cn1",t,e,Xt,-A,0,-1),AA("cn2",t,e,Xt,A,0,-1),AA("cn3",t,e,Xt,0,-r,-1),AA("cn4",t,e,Xt,0,r,-1),e.getAttribute("position").needsUpdate=!0}dispose(){this.geometry.dispose(),this.material.dispose()}};function AA(n,e,t,A,r,i,s){Fh.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],Fh.x,Fh.y,Fh.z)}}var fs=class extends cs{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 Fe(A,1)),i.setAttribute("position",new Se(r,3)),super(i,new Xn({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 af=class extends cs{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 Xn({vertexColors:!0,toneMapped:!1});super(r,i),this.type="AxesHelper"}setColors(e,t,A){let r=new Le,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:Oj,mantissaTable:Lj,exponentTable:_j,offsetTable:Rj}=r3();function r3(){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 lf=class extends ht{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:go}}));typeof window<"u"&&(window.__THREE__?console.warn("WARNING: Multiple instances of Three.js being imported."):window.__THREE__=go);var Ha=".",bu=Symbol("target"),Zy=Symbol("unsubscribe");function wu(n){return n instanceof Date||n instanceof Set||n instanceof Map||n instanceof WeakSet||n instanceof WeakMap||ArrayBuffer.isView(n)}function aS(n){return(typeof n=="object"?n===null:typeof n!="function")||n instanceof RegExp}var Nn=Array.isArray;function yo(n){return typeof n=="symbol"}var i3={after:(n,e)=>Nn(n)?n.slice(e.length):e===""?n:n.slice(e.length+1),concat:(n,e)=>Nn(n)?(n=[...n],e&&n.push(e),n):e&&e.toString!==void 0?(n!==""&&(n+=Ha),yo(e)?n+e.toString():n+e):n,initial:n=>{if(Nn(n))return n.slice(0,-1);if(n==="")return n;let e=n.lastIndexOf(Ha);return e===-1?"":n.slice(0,e)},last:n=>{if(Nn(n))return n[n.length-1]||"";if(n==="")return n;let e=n.lastIndexOf(Ha);return e===-1?n:n.slice(e+1)},walk:(n,e)=>{if(Nn(n))for(let t of n)e(t);else if(n!==""){let t=0,A=n.indexOf(Ha);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(Ha,t)}},get(n,e){return this.walk(e,t=>{n&&(n=n[t])}),n}},sn=i3;function Jy(n){return typeof n=="object"&&typeof n.next=="function"}function $y(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[bu].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 hf(n,e,t){return n.isUnsubscribed||e.ignoreSymbols&&yo(t)||e.ignoreUnderscores&&t.charAt(0)==="_"||"ignoreKeys"in e&&e.ignoreKeys.includes(t)}var Su=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,sn.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 Wa(n){return toString.call(n)==="[object Object]"}function ja(){return!0}function ps(n,e){return n.length!==e.length||n.some((t,A)=>e[A]!==t)}var ff=new Set(["hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]);var s3=new Set(["concat","includes","indexOf","join","keys","lastIndexOf"]),ev={push:ja,pop:ja,shift:ja,unshift:ja,copyWithin:ps,reverse:ps,sort:ps,splice:ps,flat:ps,fill:ps},lS=new Set([...ff,...s3,...Object.keys(ev)]);function Ya(n,e){if(n.size!==e.size)return!0;for(let t of n)if(!e.has(t))return!0;return!1}var tv=["keys","values","entries"],Av=new Set(["has","toString"]),nv={add:Ya,clear:Ya,delete:Ya,forEach:Ya},cS=new Set([...Av,...Object.keys(nv),...tv]);function qa(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 o3=new Set([...Av,"get"]),rv={set:qa,clear:qa,delete:qa,forEach:qa},uS=new Set([...o3,...Object.keys(rv),...tv]);var IA=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 ff.has(e)}_shallowClone(e){let t=e;if(Wa(e))t={...e};else if(Nn(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?(Nn(r)?this._onIsChanged=ev[t]:r instanceof Set?this._onIsChanged=nv[t]:r instanceof Map&&(this._onIsChanged=rv[t]),r):A}update(e,t,A){let r=sn.after(e,this._path);if(t!=="length"){let i=this.clone;sn.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],sn.get(e,t.path)[t.property]=t.previous}isChanged(e){return this._onIsChanged===void 0?this._isChanged:this._onIsChanged(this.clone,e)}};var Xa=class extends IA{static isHandledMethod(e){return lS.has(e)}};var Tu=class extends IA{undo(e){e.setTime(this.clone.getTime())}isChanged(e,t){return!t(this.clone.valueOf(),e.valueOf())}};var Qa=class extends IA{static isHandledMethod(e){return cS.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 Ka=class extends IA{static isHandledMethod(e){return uS.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 Mu=class extends IA{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 Eu=class extends IA{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 Wa(e)||Nn(e)||wu(e)}static isHandledMethod(e,t){return Wa(e)?IA.isHandledMethod(t):Nn(e)?Xa.isHandledMethod(t):e instanceof Set?Qa.isHandledMethod(t):e instanceof Map?Ka.isHandledMethod(t):wu(e)}get isCloning(){return this._stack.length>0}start(e,t,A){let r=IA;Nn(e)?r=Xa:e instanceof Date?r=Tu:e instanceof Set?r=Qa:e instanceof Map?r=Ka:e instanceof WeakSet?r=Mu:e instanceof WeakMap&&(r=Eu),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 a3={equals:Object.is,isShallow:!1,pathAsArray:!1,ignoreSymbols:!1,ignoreUnderscores:!1,ignoreDetached:!1,details:!1},iv=(n,e,t={})=>{t={...a3,...t};let A=Symbol("ProxyTarget"),{equals:r,isShallow:i,ignoreDetached:s,details:o}=t,a=new Su(r),c=typeof t.onValidate=="function",l=new gr(c),u=(y,x,b,w,T)=>!c||l.isCloning||t.onValidate(sn.concat(a.getPath(y),x),b,w,T)===!0,d=(y,x,b,w)=>{!hf(a,t,x)&&!(s&&a.isDetached(y,n))&&h(a.getPath(y),x,b,w)},h=(y,x,b,w,T)=>{l.isCloning?l.update(y,x,w):e(sn.concat(y,x),b,w,T)},f=y=>y&&(y[A]||y),p=(y,x,b,w)=>aS(y)||b==="constructor"||i&&!gr.isHandledMethod(x,b)||hf(a,t,b)||a.isGetInvariant(x,b)||s&&a.isDetached(x,n)?y:(w===void 0&&(w=a.getPath(x)),a.getProxy(y,sn.concat(w,b),m,A)),m={get(y,x,b){if(yo(x)){if(x===A||x===bu)return y;if(x===Zy&&!a.isUnsubscribed&&a.getPath(y).length===0)return a.unsubscribe(),y}let w=wu(y)?Reflect.get(y,x):Reflect.get(y,x,b);return p(w,y,x)},set(y,x,b,w){b=f(b);let T=y[A]||y,M=T[x];if(r(M,b)&&x in y)return!0;let v=u(y,x,b,M);return v&&a.setProperty(T,x,b,w,M)?(d(y,x,y[x],M),!0):!v},defineProperty(y,x,b){if(!a.isSameDescriptor(b,y,x)){let w=y[x];u(y,x,b.value,w)&&a.defineProperty(y,x,b,w)&&d(y,x,b.value,w)}return!0},deleteProperty(y,x){if(!Reflect.has(y,x))return!0;let b=Reflect.get(y,x),w=u(y,x,void 0,b);return w&&a.deleteProperty(y,x,b)?(d(y,x,void 0,b),!0):!w},apply(y,x,b){let w=x[A]||x;if(a.isUnsubscribed)return Reflect.apply(y,w,b);if((o===!1||o!==!0&&!o.includes(y.name))&&gr.isHandledType(w)){let T=sn.initial(a.getPath(y)),M=gr.isHandledMethod(w,y.name);l.start(w,T,b);let v=Reflect.apply(y,l.preferredThisArg(y,x,w),M?b.map(P=>f(P)):b),E=l.isChanged(w,r),C=l.stop();if(gr.isHandledType(v)&&M&&(x instanceof Map&&y.name==="get"&&(T=sn.concat(T,b[0])),v=a.getProxy(v,T,m)),E){let P={name:y.name,args:b,result:v},D=l.isCloning?sn.initial(T):T,L=l.isCloning?sn.last(T):"";u(sn.get(n,D),L,w,C,P)?h(D,L,w,C,P):l.undo(w)}return(x instanceof Map||x instanceof Set)&&Jy(v)?$y(v,y,x,T,p):v}return Reflect.apply(y,x,b)}},g=a.getProxy(n,t.pathAsArray?[]:"",m);return e=e.bind(g),c&&(t.onValidate=t.onValidate.bind(g)),g};iv.target=n=>n&&n[bu]||n;iv.unsubscribe=n=>n[Zy]||n;var sv=iv;var l3=typeof global=="object"&&global&&global.Object===Object&&global,pf=l3;var c3=typeof self=="object"&&self&&self.Object===Object&&self,u3=pf||c3||Function("return this")(),Kt=u3;var d3=Kt.Symbol,OA=d3;var dS=Object.prototype,h3=dS.hasOwnProperty,f3=dS.toString,Cu=OA?OA.toStringTag:void 0;function p3(n){var e=h3.call(n,Cu),t=n[Cu];try{n[Cu]=void 0;var A=!0}catch{}var r=f3.call(n);return A&&(e?n[Cu]=t:delete n[Cu]),r}var hS=p3;var m3=Object.prototype,g3=m3.toString;function y3(n){return g3.call(n)}var fS=y3;var v3="[object Null]",x3="[object Undefined]",pS=OA?OA.toStringTag:void 0;function b3(n){return n==null?n===void 0?x3:v3:pS&&pS in Object(n)?hS(n):fS(n)}var Fn=b3;function w3(n){return n!=null&&typeof n=="object"}var zA=w3;var S3="[object Symbol]";function T3(n){return typeof n=="symbol"||zA(n)&&Fn(n)==S3}var ms=T3;function M3(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 mf=M3;var E3=Array.isArray,xA=E3;var C3=1/0,mS=OA?OA.prototype:void 0,gS=mS?mS.toString:void 0;function yS(n){if(typeof n=="string")return n;if(xA(n))return mf(n,yS)+"";if(ms(n))return gS?gS.call(n):"";var e=n+"";return e=="0"&&1/n==-C3?"-0":e}var vS=yS;var P3=/\s/;function D3(n){for(var e=n.length;e--&&P3.test(n.charAt(e)););return e}var xS=D3;var I3=/^\s+/;function O3(n){return n&&n.slice(0,xS(n)+1).replace(I3,"")}var bS=O3;function L3(n){var e=typeof n;return n!=null&&(e=="object"||e=="function")}var LA=L3;var wS=0/0,_3=/^[-+]0x[0-9a-f]+$/i,R3=/^0b[01]+$/i,B3=/^0o[0-7]+$/i,N3=parseInt;function F3(n){if(typeof n=="number")return n;if(ms(n))return wS;if(LA(n)){var e=typeof n.valueOf=="function"?n.valueOf():n;n=LA(e)?e+"":e}if(typeof n!="string")return n===0?n:+n;n=bS(n);var t=R3.test(n);return t||B3.test(n)?N3(n.slice(2),t?2:8):_3.test(n)?wS:+n}var ov=F3;function G3(n){return n}var SS=G3;var U3="[object AsyncFunction]",k3="[object Function]",V3="[object GeneratorFunction]",z3="[object Proxy]";function H3(n){if(!LA(n))return!1;var e=Fn(n);return e==k3||e==V3||e==U3||e==z3}var gf=H3;var W3=Kt["__core-js_shared__"],yf=W3;var TS=function(){var n=/[^.]+$/.exec(yf&&yf.keys&&yf.keys.IE_PROTO||"");return n?"Symbol(src)_1."+n:""}();function j3(n){return!!TS&&TS in n}var MS=j3;var Y3=Function.prototype,q3=Y3.toString;function X3(n){if(n!=null){try{return q3.call(n)}catch{}try{return n+""}catch{}}return""}var Di=X3;var Q3=/[\\^$.*+?()[\]{}|]/g,K3=/^\[object .+?Constructor\]$/,Z3=Function.prototype,J3=Object.prototype,$3=Z3.toString,eN=J3.hasOwnProperty,tN=RegExp("^"+$3.call(eN).replace(Q3,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function AN(n){if(!LA(n)||MS(n))return!1;var e=gf(n)?tN:K3;return e.test(Di(n))}var ES=AN;function nN(n,e){return n?.[e]}var CS=nN;function rN(n,e){var t=CS(n,e);return ES(t)?t:void 0}var gn=rN;var iN=gn(Kt,"WeakMap"),vf=iN;var PS=Object.create,sN=function(){function n(){}return function(e){if(!LA(e))return{};if(PS)return PS(e);n.prototype=e;var t=new n;return n.prototype=void 0,t}}(),DS=sN;function oN(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 IS=oN;function aN(n,e){var t=-1,A=n.length;for(e||(e=Array(A));++t<A;)e[t]=n[t];return e}var OS=aN;var lN=800,cN=16,uN=Date.now;function dN(n){var e=0,t=0;return function(){var A=uN(),r=cN-(A-t);if(t=A,r>0){if(++e>=lN)return arguments[0]}else e=0;return n.apply(void 0,arguments)}}var LS=dN;function hN(n){return function(){return n}}var _S=hN;var fN=function(){try{var n=gn(Object,"defineProperty");return n({},"",{}),n}catch{}}(),Za=fN;var pN=Za?function(n,e){return Za(n,"toString",{configurable:!0,enumerable:!1,value:_S(e),writable:!0})}:SS,RS=pN;var mN=LS(RS),BS=mN;function gN(n,e){for(var t=-1,A=n==null?0:n.length;++t<A&&e(n[t],t,n)!==!1;);return n}var NS=gN;var yN=9007199254740991,vN=/^(?:0|[1-9]\d*)$/;function xN(n,e){var t=typeof n;return e=e??yN,!!e&&(t=="number"||t!="symbol"&&vN.test(n))&&n>-1&&n%1==0&&n<e}var Ja=xN;function bN(n,e,t){e=="__proto__"&&Za?Za(n,e,{configurable:!0,enumerable:!0,value:t,writable:!0}):n[e]=t}var xf=bN;function wN(n,e){return n===e||n!==n&&e!==e}var $a=wN;var SN=Object.prototype,TN=SN.hasOwnProperty;function MN(n,e,t){var A=n[e];(!(TN.call(n,e)&&$a(A,t))||t===void 0&&!(e in n))&&xf(n,e,t)}var el=MN;function EN(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?xf(t,o,a):el(t,o,a)}return t}var kr=EN;var FS=Math.max;function CN(n,e,t){return e=FS(e===void 0?n.length-1:e,0),function(){for(var A=arguments,r=-1,i=FS(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),IS(n,this,o)}}var GS=CN;var PN=9007199254740991;function DN(n){return typeof n=="number"&&n>-1&&n%1==0&&n<=PN}var tl=DN;function IN(n){return n!=null&&tl(n.length)&&!gf(n)}var bf=IN;var ON=Object.prototype;function LN(n){var e=n&&n.constructor,t=typeof e=="function"&&e.prototype||ON;return n===t}var Al=LN;function _N(n,e){for(var t=-1,A=Array(n);++t<n;)A[t]=e(t);return A}var US=_N;var RN="[object Arguments]";function BN(n){return zA(n)&&Fn(n)==RN}var av=BN;var kS=Object.prototype,NN=kS.hasOwnProperty,FN=kS.propertyIsEnumerable,GN=av(function(){return arguments}())?av:function(n){return zA(n)&&NN.call(n,"callee")&&!FN.call(n,"callee")},nl=GN;function UN(){return!1}var VS=UN;var WS=typeof exports=="object"&&exports&&!exports.nodeType&&exports,zS=WS&&typeof module=="object"&&module&&!module.nodeType&&module,kN=zS&&zS.exports===WS,HS=kN?Kt.Buffer:void 0,VN=HS?HS.isBuffer:void 0,zN=VN||VS,vo=zN;var HN="[object Arguments]",WN="[object Array]",jN="[object Boolean]",YN="[object Date]",qN="[object Error]",XN="[object Function]",QN="[object Map]",KN="[object Number]",ZN="[object Object]",JN="[object RegExp]",$N="[object Set]",eF="[object String]",tF="[object WeakMap]",AF="[object ArrayBuffer]",nF="[object DataView]",rF="[object Float32Array]",iF="[object Float64Array]",sF="[object Int8Array]",oF="[object Int16Array]",aF="[object Int32Array]",lF="[object Uint8Array]",cF="[object Uint8ClampedArray]",uF="[object Uint16Array]",dF="[object Uint32Array]",Gt={};Gt[rF]=Gt[iF]=Gt[sF]=Gt[oF]=Gt[aF]=Gt[lF]=Gt[cF]=Gt[uF]=Gt[dF]=!0;Gt[HN]=Gt[WN]=Gt[AF]=Gt[jN]=Gt[nF]=Gt[YN]=Gt[qN]=Gt[XN]=Gt[QN]=Gt[KN]=Gt[ZN]=Gt[JN]=Gt[$N]=Gt[eF]=Gt[tF]=!1;function hF(n){return zA(n)&&tl(n.length)&&!!Gt[Fn(n)]}var jS=hF;function fF(n){return function(e){return n(e)}}var rl=fF;var YS=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Pu=YS&&typeof module=="object"&&module&&!module.nodeType&&module,pF=Pu&&Pu.exports===YS,lv=pF&&pf.process,mF=function(){try{var n=Pu&&Pu.require&&Pu.require("util").types;return n||lv&&lv.binding&&lv.binding("util")}catch{}}(),Ii=mF;var qS=Ii&&Ii.isTypedArray,gF=qS?rl(qS):jS,wf=gF;var yF=Object.prototype,vF=yF.hasOwnProperty;function xF(n,e){var t=xA(n),A=!t&&nl(n),r=!t&&!A&&vo(n),i=!t&&!A&&!r&&wf(n),s=t||A||r||i,o=s?US(n.length,String):[],a=o.length;for(var c in n)(e||vF.call(n,c))&&!(s&&(c=="length"||r&&(c=="offset"||c=="parent")||i&&(c=="buffer"||c=="byteLength"||c=="byteOffset")||Ja(c,a)))&&o.push(c);return o}var Sf=xF;function bF(n,e){return function(t){return n(e(t))}}var Tf=bF;var wF=Tf(Object.keys,Object),XS=wF;var SF=Object.prototype,TF=SF.hasOwnProperty;function MF(n){if(!Al(n))return XS(n);var e=[];for(var t in Object(n))TF.call(n,t)&&t!="constructor"&&e.push(t);return e}var QS=MF;function EF(n){return bf(n)?Sf(n):QS(n)}var il=EF;function CF(n){var e=[];if(n!=null)for(var t in Object(n))e.push(t);return e}var KS=CF;var PF=Object.prototype,DF=PF.hasOwnProperty;function IF(n){if(!LA(n))return KS(n);var e=Al(n),t=[];for(var A in n)A=="constructor"&&(e||!DF.call(n,A))||t.push(A);return t}var ZS=IF;function OF(n){return bf(n)?Sf(n,!0):ZS(n)}var sl=OF;var LF=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,_F=/^\w*$/;function RF(n,e){if(xA(n))return!1;var t=typeof n;return t=="number"||t=="symbol"||t=="boolean"||n==null||ms(n)?!0:_F.test(n)||!LF.test(n)||e!=null&&n in Object(e)}var JS=RF;var BF=gn(Object,"create"),Oi=BF;function NF(){this.__data__=Oi?Oi(null):{},this.size=0}var $S=NF;function FF(n){var e=this.has(n)&&delete this.__data__[n];return this.size-=e?1:0,e}var e1=FF;var GF="__lodash_hash_undefined__",UF=Object.prototype,kF=UF.hasOwnProperty;function VF(n){var e=this.__data__;if(Oi){var t=e[n];return t===GF?void 0:t}return kF.call(e,n)?e[n]:void 0}var t1=VF;var zF=Object.prototype,HF=zF.hasOwnProperty;function WF(n){var e=this.__data__;return Oi?e[n]!==void 0:HF.call(e,n)}var A1=WF;var jF="__lodash_hash_undefined__";function YF(n,e){var t=this.__data__;return this.size+=this.has(n)?0:1,t[n]=Oi&&e===void 0?jF:e,this}var n1=YF;function ol(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])}}ol.prototype.clear=$S;ol.prototype.delete=e1;ol.prototype.get=t1;ol.prototype.has=A1;ol.prototype.set=n1;var cv=ol;function qF(){this.__data__=[],this.size=0}var r1=qF;function XF(n,e){for(var t=n.length;t--;)if($a(n[t][0],e))return t;return-1}var gs=XF;var QF=Array.prototype,KF=QF.splice;function ZF(n){var e=this.__data__,t=gs(e,n);if(t<0)return!1;var A=e.length-1;return t==A?e.pop():KF.call(e,t,1),--this.size,!0}var i1=ZF;function JF(n){var e=this.__data__,t=gs(e,n);return t<0?void 0:e[t][1]}var s1=JF;function $F(n){return gs(this.__data__,n)>-1}var o1=$F;function eG(n,e){var t=this.__data__,A=gs(t,n);return A<0?(++this.size,t.push([n,e])):t[A][1]=e,this}var a1=eG;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=r1;al.prototype.delete=i1;al.prototype.get=s1;al.prototype.has=o1;al.prototype.set=a1;var ys=al;var tG=gn(Kt,"Map"),vs=tG;function AG(){this.size=0,this.__data__={hash:new cv,map:new(vs||ys),string:new cv}}var l1=AG;function nG(n){var e=typeof n;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?n!=="__proto__":n===null}var c1=nG;function rG(n,e){var t=n.__data__;return c1(e)?t[typeof e=="string"?"string":"hash"]:t.map}var xs=rG;function iG(n){var e=xs(this,n).delete(n);return this.size-=e?1:0,e}var u1=iG;function sG(n){return xs(this,n).get(n)}var d1=sG;function oG(n){return xs(this,n).has(n)}var h1=oG;function aG(n,e){var t=xs(this,n),A=t.size;return t.set(n,e),this.size+=t.size==A?0:1,this}var f1=aG;function ll(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])}}ll.prototype.clear=l1;ll.prototype.delete=u1;ll.prototype.get=d1;ll.prototype.has=h1;ll.prototype.set=f1;var xo=ll;var lG="Expected a function";function uv(n,e){if(typeof n!="function"||e!=null&&typeof e!="function")throw new TypeError(lG);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(uv.Cache||xo),t}uv.Cache=xo;var p1=uv;var cG=500;function uG(n){var e=p1(n,function(A){return t.size===cG&&t.clear(),A}),t=e.cache;return e}var m1=uG;var dG=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,hG=/\\(\\)?/g,fG=m1(function(n){var e=[];return n.charCodeAt(0)===46&&e.push(""),n.replace(dG,function(t,A,r,i){e.push(r?i.replace(hG,"$1"):A||t)}),e}),g1=fG;function pG(n){return n==null?"":vS(n)}var y1=pG;function mG(n,e){return xA(n)?n:JS(n,e)?[n]:g1(y1(n))}var Kn=mG;var gG=1/0;function yG(n){if(typeof n=="string"||ms(n))return n;var e=n+"";return e=="0"&&1/n==-gG?"-0":e}var bs=yG;function vG(n,e){e=Kn(e,n);for(var t=0,A=e.length;n!=null&&t<A;)n=n[bs(e[t++])];return t&&t==A?n:void 0}var Mf=vG;function xG(n,e){for(var t=-1,A=e.length,r=n.length;++t<A;)n[r+t]=e[t];return n}var cl=xG;var v1=OA?OA.isConcatSpreadable:void 0;function bG(n){return xA(n)||nl(n)||!!(v1&&n&&n[v1])}var x1=bG;function b1(n,e,t,A,r){var i=-1,s=n.length;for(t||(t=x1),r||(r=[]);++i<s;){var o=n[i];e>0&&t(o)?e>1?b1(o,e-1,t,A,r):cl(r,o):A||(r[r.length]=o)}return r}var w1=b1;function wG(n){var e=n==null?0:n.length;return e?w1(n,1):[]}var S1=wG;function SG(n){return BS(GS(n,void 0,S1),n+"")}var Ef=SG;var TG=Tf(Object.getPrototypeOf,Object),ul=TG;var MG="[object Object]",EG=Function.prototype,CG=Object.prototype,T1=EG.toString,PG=CG.hasOwnProperty,DG=T1.call(Object);function IG(n){if(!zA(n)||Fn(n)!=MG)return!1;var e=ul(n);if(e===null)return!0;var t=PG.call(e,"constructor")&&e.constructor;return typeof t=="function"&&t instanceof t&&T1.call(t)==DG}var M1=IG;function OG(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 E1=OG;function LG(){this.__data__=new ys,this.size=0}var C1=LG;function _G(n){var e=this.__data__,t=e.delete(n);return this.size=e.size,t}var P1=_G;function RG(n){return this.__data__.get(n)}var D1=RG;function BG(n){return this.__data__.has(n)}var I1=BG;var NG=200;function FG(n,e){var t=this.__data__;if(t instanceof ys){var A=t.__data__;if(!vs||A.length<NG-1)return A.push([n,e]),this.size=++t.size,this;t=this.__data__=new xo(A)}return t.set(n,e),this.size=t.size,this}var O1=FG;function dl(n){var e=this.__data__=new ys(n);this.size=e.size}dl.prototype.clear=C1;dl.prototype.delete=P1;dl.prototype.get=D1;dl.prototype.has=I1;dl.prototype.set=O1;var hl=dl;function GG(n,e){return n&&kr(e,il(e),n)}var L1=GG;function UG(n,e){return n&&kr(e,sl(e),n)}var _1=UG;var F1=typeof exports=="object"&&exports&&!exports.nodeType&&exports,R1=F1&&typeof module=="object"&&module&&!module.nodeType&&module,kG=R1&&R1.exports===F1,B1=kG?Kt.Buffer:void 0,N1=B1?B1.allocUnsafe:void 0;function VG(n,e){if(e)return n.slice();var t=n.length,A=N1?N1(t):new n.constructor(t);return n.copy(A),A}var G1=VG;function zG(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 U1=zG;function HG(){return[]}var Cf=HG;var WG=Object.prototype,jG=WG.propertyIsEnumerable,k1=Object.getOwnPropertySymbols,YG=k1?function(n){return n==null?[]:(n=Object(n),U1(k1(n),function(e){return jG.call(n,e)}))}:Cf,fl=YG;function qG(n,e){return kr(n,fl(n),e)}var V1=qG;var XG=Object.getOwnPropertySymbols,QG=XG?function(n){for(var e=[];n;)cl(e,fl(n)),n=ul(n);return e}:Cf,Pf=QG;function KG(n,e){return kr(n,Pf(n),e)}var z1=KG;function ZG(n,e,t){var A=e(n);return xA(n)?A:cl(A,t(n))}var Df=ZG;function JG(n){return Df(n,il,fl)}var Du=JG;function $G(n){return Df(n,sl,Pf)}var If=$G;var eU=gn(Kt,"DataView"),Of=eU;var tU=gn(Kt,"Promise"),Lf=tU;var AU=gn(Kt,"Set"),_f=AU;var H1="[object Map]",nU="[object Object]",W1="[object Promise]",j1="[object Set]",Y1="[object WeakMap]",q1="[object DataView]",rU=Di(Of),iU=Di(vs),sU=Di(Lf),oU=Di(_f),aU=Di(vf),bo=Fn;(Of&&bo(new Of(new ArrayBuffer(1)))!=q1||vs&&bo(new vs)!=H1||Lf&&bo(Lf.resolve())!=W1||_f&&bo(new _f)!=j1||vf&&bo(new vf)!=Y1)&&(bo=function(n){var e=Fn(n),t=e==nU?n.constructor:void 0,A=t?Di(t):"";if(A)switch(A){case rU:return q1;case iU:return H1;case sU:return W1;case oU:return j1;case aU:return Y1}return e});var Li=bo;var lU=Object.prototype,cU=lU.hasOwnProperty;function uU(n){var e=n.length,t=new n.constructor(e);return e&&typeof n[0]=="string"&&cU.call(n,"index")&&(t.index=n.index,t.input=n.input),t}var X1=uU;var dU=Kt.Uint8Array,pl=dU;function hU(n){var e=new n.constructor(n.byteLength);return new pl(e).set(new pl(n)),e}var ml=hU;function fU(n,e){var t=e?ml(n.buffer):n.buffer;return new n.constructor(t,n.byteOffset,n.byteLength)}var Q1=fU;var pU=/\w*$/;function mU(n){var e=new n.constructor(n.source,pU.exec(n));return e.lastIndex=n.lastIndex,e}var K1=mU;var Z1=OA?OA.prototype:void 0,J1=Z1?Z1.valueOf:void 0;function gU(n){return J1?Object(J1.call(n)):{}}var $1=gU;function yU(n,e){var t=e?ml(n.buffer):n.buffer;return new n.constructor(t,n.byteOffset,n.length)}var eT=yU;var vU="[object Boolean]",xU="[object Date]",bU="[object Map]",wU="[object Number]",SU="[object RegExp]",TU="[object Set]",MU="[object String]",EU="[object Symbol]",CU="[object ArrayBuffer]",PU="[object DataView]",DU="[object Float32Array]",IU="[object Float64Array]",OU="[object Int8Array]",LU="[object Int16Array]",_U="[object Int32Array]",RU="[object Uint8Array]",BU="[object Uint8ClampedArray]",NU="[object Uint16Array]",FU="[object Uint32Array]";function GU(n,e,t){var A=n.constructor;switch(e){case CU:return ml(n);case vU:case xU:return new A(+n);case PU:return Q1(n,t);case DU:case IU:case OU:case LU:case _U:case RU:case BU:case NU:case FU:return eT(n,t);case bU:return new A;case wU:case MU:return new A(n);case SU:return K1(n);case TU:return new A;case EU:return $1(n)}}var tT=GU;function UU(n){return typeof n.constructor=="function"&&!Al(n)?DS(ul(n)):{}}var AT=UU;var kU="[object Map]";function VU(n){return zA(n)&&Li(n)==kU}var nT=VU;var rT=Ii&&Ii.isMap,zU=rT?rl(rT):nT,iT=zU;var HU="[object Set]";function WU(n){return zA(n)&&Li(n)==HU}var sT=WU;var oT=Ii&&Ii.isSet,jU=oT?rl(oT):sT,aT=jU;var YU=1,qU=2,XU=4,lT="[object Arguments]",QU="[object Array]",KU="[object Boolean]",ZU="[object Date]",JU="[object Error]",cT="[object Function]",$U="[object GeneratorFunction]",ek="[object Map]",tk="[object Number]",uT="[object Object]",Ak="[object RegExp]",nk="[object Set]",rk="[object String]",ik="[object Symbol]",sk="[object WeakMap]",ok="[object ArrayBuffer]",ak="[object DataView]",lk="[object Float32Array]",ck="[object Float64Array]",uk="[object Int8Array]",dk="[object Int16Array]",hk="[object Int32Array]",fk="[object Uint8Array]",pk="[object Uint8ClampedArray]",mk="[object Uint16Array]",gk="[object Uint32Array]",Bt={};Bt[lT]=Bt[QU]=Bt[ok]=Bt[ak]=Bt[KU]=Bt[ZU]=Bt[lk]=Bt[ck]=Bt[uk]=Bt[dk]=Bt[hk]=Bt[ek]=Bt[tk]=Bt[uT]=Bt[Ak]=Bt[nk]=Bt[rk]=Bt[ik]=Bt[fk]=Bt[pk]=Bt[mk]=Bt[gk]=!0;Bt[JU]=Bt[cT]=Bt[sk]=!1;function Rf(n,e,t,A,r,i){var s,o=e&YU,a=e&qU,c=e&XU;if(t&&(s=r?t(n,A,r,i):t(n)),s!==void 0)return s;if(!LA(n))return n;var l=xA(n);if(l){if(s=X1(n),!o)return OS(n,s)}else{var u=Li(n),d=u==cT||u==$U;if(vo(n))return G1(n,o);if(u==uT||u==lT||d&&!r){if(s=a||d?{}:AT(n),!o)return a?z1(n,_1(s,n)):V1(n,L1(s,n))}else{if(!Bt[u])return r?n:{};s=tT(n,u,o)}}i||(i=new hl);var h=i.get(n);if(h)return h;i.set(n,s),aT(n)?n.forEach(function(m){s.add(Rf(m,e,t,m,n,i))}):iT(n)&&n.forEach(function(m,g){s.set(g,Rf(m,e,t,g,n,i))});var f=c?a?If:Du:a?sl:il,p=l?void 0:f(n);return NS(p||n,function(m,g){p&&(g=m,m=n[g]),el(s,g,Rf(m,e,t,g,n,i))}),s}var Bf=Rf;var yk=1,vk=4;function xk(n){return Bf(n,yk|vk)}var wo=xk;var bk="__lodash_hash_undefined__";function wk(n){return this.__data__.set(n,bk),this}var dT=wk;function Sk(n){return this.__data__.has(n)}var hT=Sk;function Nf(n){var e=-1,t=n==null?0:n.length;for(this.__data__=new xo;++e<t;)this.add(n[e])}Nf.prototype.add=Nf.prototype.push=dT;Nf.prototype.has=hT;var fT=Nf;function Tk(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 pT=Tk;function Mk(n,e){return n.has(e)}var mT=Mk;var Ek=1,Ck=2;function Pk(n,e,t,A,r,i){var s=t&Ek,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,d=!0,h=t&Ck?new fT:void 0;for(i.set(n,e),i.set(e,n);++u<o;){var f=n[u],p=e[u];if(A)var m=s?A(p,f,u,e,n,i):A(f,p,u,n,e,i);if(m!==void 0){if(m)continue;d=!1;break}if(h){if(!pT(e,function(g,y){if(!mT(h,y)&&(f===g||r(f,g,t,A,i)))return h.push(y)})){d=!1;break}}else if(!(f===p||r(f,p,t,A,i))){d=!1;break}}return i.delete(n),i.delete(e),d}var Ff=Pk;function Dk(n){var e=-1,t=Array(n.size);return n.forEach(function(A,r){t[++e]=[r,A]}),t}var gT=Dk;function Ik(n){var e=-1,t=Array(n.size);return n.forEach(function(A){t[++e]=A}),t}var yT=Ik;var Ok=1,Lk=2,_k="[object Boolean]",Rk="[object Date]",Bk="[object Error]",Nk="[object Map]",Fk="[object Number]",Gk="[object RegExp]",Uk="[object Set]",kk="[object String]",Vk="[object Symbol]",zk="[object ArrayBuffer]",Hk="[object DataView]",vT=OA?OA.prototype:void 0,dv=vT?vT.valueOf:void 0;function Wk(n,e,t,A,r,i,s){switch(t){case Hk:if(n.byteLength!=e.byteLength||n.byteOffset!=e.byteOffset)return!1;n=n.buffer,e=e.buffer;case zk:return!(n.byteLength!=e.byteLength||!i(new pl(n),new pl(e)));case _k:case Rk:case Fk:return $a(+n,+e);case Bk:return n.name==e.name&&n.message==e.message;case Gk:case kk:return n==e+"";case Nk:var o=gT;case Uk:var a=A&Ok;if(o||(o=yT),n.size!=e.size&&!a)return!1;var c=s.get(n);if(c)return c==e;A|=Lk,s.set(n,e);var l=Ff(o(n),o(e),A,r,i,s);return s.delete(n),l;case Vk:if(dv)return dv.call(n)==dv.call(e)}return!1}var xT=Wk;var jk=1,Yk=Object.prototype,qk=Yk.hasOwnProperty;function Xk(n,e,t,A,r,i){var s=t&jk,o=Du(n),a=o.length,c=Du(e),l=c.length;if(a!=l&&!s)return!1;for(var u=a;u--;){var d=o[u];if(!(s?d in e:qk.call(e,d)))return!1}var h=i.get(n),f=i.get(e);if(h&&f)return h==e&&f==n;var p=!0;i.set(n,e),i.set(e,n);for(var m=s;++u<a;){d=o[u];var g=n[d],y=e[d];if(A)var x=s?A(y,g,d,e,n,i):A(g,y,d,n,e,i);if(!(x===void 0?g===y||r(g,y,t,A,i):x)){p=!1;break}m||(m=d=="constructor")}if(p&&!m){var b=n.constructor,w=e.constructor;b!=w&&"constructor"in n&&"constructor"in e&&!(typeof b=="function"&&b instanceof b&&typeof w=="function"&&w instanceof w)&&(p=!1)}return i.delete(n),i.delete(e),p}var bT=Xk;var Qk=1,wT="[object Arguments]",ST="[object Array]",Gf="[object Object]",Kk=Object.prototype,TT=Kk.hasOwnProperty;function Zk(n,e,t,A,r,i){var s=xA(n),o=xA(e),a=s?ST:Li(n),c=o?ST:Li(e);a=a==wT?Gf:a,c=c==wT?Gf:c;var l=a==Gf,u=c==Gf,d=a==c;if(d&&vo(n)){if(!vo(e))return!1;s=!0,l=!1}if(d&&!l)return i||(i=new hl),s||wf(n)?Ff(n,e,t,A,r,i):xT(n,e,a,t,A,r,i);if(!(t&Qk)){var h=l&&TT.call(n,"__wrapped__"),f=u&&TT.call(e,"__wrapped__");if(h||f){var p=h?n.value():n,m=f?e.value():e;return i||(i=new hl),r(p,m,t,A,i)}}return d?(i||(i=new hl),bT(n,e,t,A,r,i)):!1}var MT=Zk;function ET(n,e,t,A,r){return n===e?!0:n==null||e==null||!zA(n)&&!zA(e)?n!==n&&e!==e:MT(n,e,t,A,ET,r)}var CT=ET;function Jk(n,e){return n!=null&&e in Object(n)}var PT=Jk;function $k(n,e,t){e=Kn(e,n);for(var A=-1,r=e.length,i=!1;++A<r;){var s=bs(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&&tl(r)&&Ja(s,r)&&(xA(n)||nl(n)))}var DT=$k;function eV(n,e){return n!=null&&DT(n,e,PT)}var IT=eV;var tV=function(){return Kt.Date.now()},Uf=tV;var AV="Expected a function",nV=Math.max,rV=Math.min;function iV(n,e,t){var A,r,i,s,o,a,c=0,l=!1,u=!1,d=!0;if(typeof n!="function")throw new TypeError(AV);e=ov(e)||0,LA(t)&&(l=!!t.leading,u="maxWait"in t,i=u?nV(ov(t.maxWait)||0,e):i,d="trailing"in t?!!t.trailing:d);function h(T){var M=A,v=r;return A=r=void 0,c=T,s=n.apply(v,M),s}function f(T){return c=T,o=setTimeout(g,e),l?h(T):s}function p(T){var M=T-a,v=T-c,E=e-M;return u?rV(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 g(){var T=Uf();if(m(T))return y(T);o=setTimeout(g,p(T))}function y(T){return o=void 0,d&&A?h(T):(A=r=void 0,s)}function x(){o!==void 0&&clearTimeout(o),c=0,A=a=r=o=void 0}function b(){return o===void 0?s:y(Uf())}function w(){var T=Uf(),M=m(T);if(A=arguments,r=this,a=T,M){if(o===void 0)return f(a);if(u)return clearTimeout(o),o=setTimeout(g,e),h(a)}return o===void 0&&(o=setTimeout(g,e)),s}return w.cancel=x,w.flush=b,w}var Iu=iV;function sV(n){var e=n==null?0:n.length;return e?n[e-1]:void 0}var OT=sV;function oV(n,e){return e.length<2?n:Mf(n,E1(e,0,-1))}var LT=oV;function aV(n,e){return CT(n,e)}var So=aV;function lV(n,e){return e=Kn(e,n),n=LT(n,e),n==null||delete n[bs(OT(e))]}var _T=lV;function cV(n){return M1(n)?void 0:n}var RT=cV;var uV=1,dV=2,hV=4,fV=Ef(function(n,e){var t={};if(n==null)return t;var A=!1;e=mf(e,function(i){return i=Kn(i,n),A||(A=i.length>1),i}),kr(n,If(n),t),A&&(t=Bf(t,uV|dV|hV,RT));for(var r=e.length;r--;)_T(t,e[r]);return t}),gl=fV;function pV(n,e,t,A){if(!LA(n))return n;e=Kn(e,n);for(var r=-1,i=e.length,s=i-1,o=n;o!=null&&++r<i;){var a=bs(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=LA(l)?l:Ja(e[r+1])?[]:{})}el(o,a,c),o=o[a]}return n}var BT=pV;function mV(n,e,t){for(var A=-1,r=e.length,i={};++A<r;){var s=e[A],o=Mf(n,s);t(o,s)&&BT(i,Kn(s,n),o)}return i}var NT=mV;function gV(n,e){return NT(n,e,function(t,A){return IT(n,A)})}var FT=gV;var yV=Ef(function(n,e){return n==null?{}:FT(n,e)}),yl=yV;var UT,kT=new Promise(n=>{UT=n}),GT=!1;async function VT(){if(GT)return;let n=await import("./physics.js");await n.init(),UT(n),GT=!0}var _t=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,_t.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,_t.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,_t.prototype),delete i[A],{data:i,actual:e,reverse:{type:1,id:A,data:r}}}}return null}};function Ou(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"&&Ou(A)}return Object.freeze(n)}function zT(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 vl=class extends Error{};function kf(n){let e={...n};return Object.setPrototypeOf(e,Object.getPrototypeOf(n)),e}function Vr(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 xl(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 HT(){return typeof process<"u"}function WT(n,e){for(let t of n)e(t.id,t.data)!==!0&&WT(t.children,e)}function jT(n,e){if(e(n.id,n.data)!==!0)for(let t of n.children)jT(t,e)}var zt=class extends Array{constructor(...t){super(...t);Object.setPrototypeOf(this,zt.prototype)}deepFreeze(){let t=0;for(;t<this.length;)Ou(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&&jT(r,A)}}traverse(t){WT(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,zt.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((d,h)=>d.fi-h.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 h=A;for(;h!==null;){if(h===void 0)throw new Error;if(h===i)throw new vl("cyclic tree");h=this.parent(h)}}let s=this.parent(i);if(s===void 0)return null;let o=s,a=this.childrenArray(s),c=a.findIndex(h=>h.id===i);a=[...a];let l=a.splice(c,1)[0],u=this.modifyArrayBy(s,a);s=A,a=u.childrenArray(s);let d=l.fi;return l={...l,fi:r},a=[...a,l],a.sort((h,f)=>h.fi-f.fi),t.localIndex=a.indexOf(l),u=u.modifyArrayBy(s,a),{data:u,actual:t,reverse:{type:9,parent:o,fi:d,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)=>zT(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 Vr(0,r,r);{let s=i[0].fi;return Vr(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 Vr(a,a+r,r)}else return Vr(s.fi,o.fi,r)}}};var bl;(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})(bl||(bl={}));var We=class extends Array{constructor(...t){super(...t);Object.setPrototypeOf(this,We.prototype)}deepFreeze(){let t=0;for(;t<this.length;)Ou(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,We.prototype);let A=t;return HT()||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 Vr(0,A,A);{let i=r[0].fi;return Vr(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 Vr(o,o+A,A)}else return Vr(i.fi,s.fi,A)}}};function wl(n){return n&&typeof n=="object"&&n instanceof Ht}var Ht=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&&!wl(A))return null;r+=1}A=A?kf(A):new Ht;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=kf(a),delete A[e.path[r-1]])}else{let a=t[r-1];if(a){let c=kf(a);c[e.path[r-1]]=A,A=c}else{let c=new Ht;c[e.path[r-1]]=A,A=c}}r-=1}let s=Object.setPrototypeOf(A,Ht.prototype),o={...e,props:i};return{data:s,actual:e,reverse:o}}},_i;(A=>{function n(r,i){return Lu(r,i)??r}A.apply=n;function e(r,i){return fv(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=Gn.zoomOnce(a,o[s]),a===void 0)return i;if(!wl(a))return;s+=1}if(a===void 0)return i;if(!!wl(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=hv([i],a);return c?(console.log(c),c):i}else return i}A.filterOp=t})(_i||(_i={}));function hv(n,e){if(e===void 0)return;let t=!1,A=n.map(r=>{let i=r.id,s=Lu(r.data,e[i]);if(t=t||s!==void 0,s===void 0&&(s=r.data),r.children){let o=hv(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 vV(n,e){if(e===void 0)return;let t=!1,A=n.map(r=>{let i=r.id,s=Lu(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 Lu(n,e){if(!wl(e))return e;if(n instanceof zt){let t=hv(n,e);return t!==void 0&&Object.setPrototypeOf(t,Object.getPrototypeOf(n)),t}else{if(n instanceof We)return vV(n,e);if(Array.isArray(n)){let t=!1,A=n.map((r,i)=>{let s=Lu(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 instanceof Ht)return fv(n,e);if(n&&typeof n=="object"){let t={},A=!1;for(let[r,i]of Object.entries(n)){let s=Lu(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 fv(n,e){if(n===void 0)return e;if(e===void 0)return n;if(!wl(e))return e;if(!wl(n))return _i.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 Ht;for(let r of t){let i=fv(n===void 0?void 0:n[r],e===void 0?void 0:e[r]);A[r]=i}return A}function YT(n,e){let t={cur:[],result:[],len:0};return n=_u(n,e,t)??n,[n,t.result]}function Vf(n,e){return n===null?null:(n.cur[n.len]=e,n.len+=1,n)}function zf(n){n&&(n.len-=1)}function xV(n){if(n===null)return null;n.result.push(n.cur.slice(0,n.len))}function qT(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=_u(i.data,e,Vf(t,s));zf(t),A=A||a!==void 0,a===void 0&&(a=i.data);let c=qT(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 bV(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=_u(i.data,e,Vf(t,s));return zf(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 _u(n,e,t){if(n instanceof zt){let A=qT(n,e,t);return A!==void 0&&Object.setPrototypeOf(A,Object.getPrototypeOf(n)),A}else{if(n instanceof We)return bV(n,e,t);if(Array.isArray(n)){let A=!1,r=n.map((i,s)=>{let o=_u(i,e,Vf(t,s));return zf(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"&&!xl(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=_u(s,e,Vf(t,i));zf(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");xV(t)}return A}else return}}var Hf;(e=>{function n(t,A){let r=Gn.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})(Hf||(Hf={}));var HA;(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 d;if(a instanceof Ht&&c.type===0&&(d=a.runOp({...c,path:l.slice(u.length)}),d===null&&(d=void 0)),u.length===l.length&&(a instanceof zt||a instanceof We||a instanceof _t?d=a.runOp(c):d=bl.runOp(a,c)),d!==void 0)if(d!==null){let p=d.data;for(let m=u.length-1;m>=0;m--){let g=l[m],y=u[m];if(y instanceof zt){if(typeof g=="number")throw new Error("illegal arg");p=y.modifyById(g,p)}else if(y instanceof We){if(typeof g=="number")throw new Error("illegal arg");p=y.modifyById(g,p)}else if(y instanceof _t){if(typeof g=="number")throw new Error("illegal arg");p=y.modifyById(g,p)}else if(y instanceof Ht){let x={...y,[g]:p};p=Object.setPrototypeOf(x,Ht.prototype)}else if(typeof y=="object")if(Array.isArray(y)){if(typeof g=="string"&&(g=parseInt(g),isNaN(g)))throw new Error("Invalid path");let x=p;p=[...y],p[g]=x}else p={...y,[g]:p};else return null}return{data:p,actual:{...d.actual,path:l},reverse:{...d.reverse,path:l}}}else return null;let h=l[u.length],f;if(a instanceof zt){if(typeof h=="number")throw new Error("");f=a.get(h)?.data}else if(a instanceof We){if(typeof h=="number")throw new Error("");f=a.get(h)?.data}else a!==null&&(f=a[h]);if(f!==void 0)u.push(a),a=f;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})(HA||(HA={}));var pv;(a=>{function n(){return[]}a.empty=n;function e(c,l){let u=[];for(let d of c){let[h,...f]=d.path;h===l&&u.push({...d,path:f})}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(d=>!l.some(h=>HA.subsumed(d,h))),...l]}a.compress=r;function i(c,l){return c.every(u=>l.every(d=>HA.commutative(u,d)))}a.commutative=i;function s(c,l){for(let u of l){let d=o(c,u);d!==null&&(c=d.data)}return c}a.applyAll=s;function o(c,l){var u=c;let d=[],h=[];for(let f of l)try{if(f.type===3){let p=Gn.zoom(u,[...f.path,f.id]),m=HA.apply(u,{...f,type:2});if(m!==null){u=m.data;let[g,y]=YT(u,{[f.id]:p});u=g;for(let x of y){let b=x[x.length-1];x.splice(x.length-1,1),d.push({type:0,path:x,props:{[b]:p}}),h.push({type:0,path:x,props:{[b]:f.id}})}h.push(m.reverse),d.push(m.actual)}}else{let p=HA.apply(u,f);p!==null&&(d.push(p.actual),u=p.data,h.push(p.reverse))}}catch(p){if(p instanceof vl)return null;throw p}return{data:u,actual:d,reverse:h.reverse()}}a.apply=o})(pv||(pv={}));var XT=Symbol(),wV=Symbol(),jf=Symbol(),To=class{reportOp(e,t,A=[]){let r=this;if(t===null)return;r._current=t.data;let i=A;for(;!(r instanceof Wf);){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[jf];A&&A(),delete this._children[e]}}}},gv=class extends To{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,bl.runOp(this._current,e),e.path)}},yv=class extends To{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,_t.prototype)}runOp(e){this.reportOp(e,this._current.runOp(e))}},QT={get(n,e){if(e===jf)return()=>{n._parent=null};if(e===XT)return n._current;if(e===wV)return n;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=Yf(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]}}},SV={...QT,set(n,e,t){let A={type:0,props:{[e]:_A(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}},TV={...QT,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}},Sl=class extends To{constructor(e,t,A){super(),this._children={},this._parent=e,this._path=t,this._current=A,this[jf]=()=>{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=Yf(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)}},Tl=class extends To{constructor(e,t,A){super(),this._children={},this._parent=e,this._path=t,this._current=A,this[jf]=()=>{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=Yf(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 mv(n,e,t){if(n.length>0){let A=n[n.length-1];if(A.type===0&&e.type===0&&Gn.equal(A.path,t)){Object.assign(A.props,e.props);return}}n.push({...e,path:t})}var Wf=class extends To{constructor(e){super(),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){mv(this.ts,t,e),mv(this.actual,A,e),mv(this.reverse,r,e)}result(){return{data:this._current,ts:this.ts,actual:this.actual,reverse:this.reverse.reverse()}}};function Yf(n,e,t){return t instanceof zt?new Sl(n,e,t):t instanceof We?new Tl(n,e,t):t instanceof _t?new Proxy(new yv(n,e,t),TV):t!==null&&typeof t=="object"?xl(t)?t:new Proxy(new gv(n,e,t),SV):t}function vv(n){let e=new Wf(n);return[Yf(e,"",n),e]}function Ml(n,e){let[t,A]=vv(n);return e(t),A.result()}function _A(n){return n instanceof Sl||n instanceof Tl?n._current:n!==null&&typeof n=="object"?n[XT]:n}var Gn;(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 zt||i instanceof Sl)&&typeof s=="string")return i.data(s);if((i instanceof We||i instanceof Tl)&&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})(Gn||(Gn={}));function KT(n,e){let t=[];if(e.length===n.length)for(var A=0;A<n.length;){if(e[A]==="*")t.push(n[A]);else if(n[A]!==e[A])return null;A+=1}else return null;return t}function zr(n,e){let t=[];if(e.length<=n.length)for(var A=0;A<e.length;){if(e[A]==="*")t.push(n[A]);else if(n[A]!==e[A])return null;A+=1}else return null;return t}var qf=class{},Ru=class extends qf{constructor(t){super();this.id=t}},Bu=class extends qf{constructor(t){super();this.data=t}};var bv;try{bv=new TextDecoder}catch{}var Oe,Ss,K=0;var rM=[],wv=rM,Sv=0,yn={},bt,ws,Zn=0,Hr=0,Un,Ri,on=[],Ct,ZT={useRecords:!1,mapsAsObjects:!0},Nu=class{},Mv=new Nu;Mv.name="MessagePack 0xC1";var El=!1,Wr=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(Oe)return lM(()=>(Qf(),this?this.unpack(e,t):Wr.prototype.unpack.call(ZT,e,t)));Ss=t>-1?t:e.length,K=0,Sv=0,Hr=0,ws=null,wv=rM,Un=null,Oe=e;try{Ct=e.dataView||(e.dataView=new DataView(e.buffer,e.byteOffset,e.byteLength))}catch(A){throw Oe=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 Wr){if(yn=this,this.structures)return bt=this.structures,Xf();(!bt||bt.length>0)&&(bt=[])}else yn=ZT,(!bt||bt.length>0)&&(bt=[]);return Xf()}unpackMultiple(e,t){let A,r=0;try{El=!0;let i=e.length,s=this?this.unpack(e,i):Jf.unpack(e,i);if(t){for(t(s);K<i;)if(r=K,t(Xf())===!1)return}else{for(A=[s];K<i;)r=K,A.push(Xf());return A}}catch(i){throw i.lastPosition=r,i.values=A,i}finally{El=!1,Qf()}}_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 Xf(){try{if(!yn.trusted&&!El){let e=bt.sharedLength||0;e<bt.length&&(bt.length=e)}let n=Zt();if(K==Ss)bt.restoreStructures&&JT(),bt=null,Oe=null,Ri&&(Ri=null);else if(K>Ss){let e=new Error("Unexpected end of MessagePack data");throw e.incomplete=!0,e}else if(!El)throw new Error("Data read, but end of buffer not reached");return n}catch(n){throw bt.restoreStructures&&JT(),Qf(),(n instanceof RangeError||n.message.startsWith("Unexpected end of buffer"))&&(n.incomplete=!0),n}}function JT(){for(let n in bt.restoreStructures)bt[n]=bt.restoreStructures[n];bt.restoreStructures=null}function Zt(){let n=Oe[K++];if(n<160)if(n<128){if(n<64)return n;{let e=bt[n&63]||yn.getStructures&&iM()[n&63];return e?(e.read||(e.read=Ev(e,n&63)),e.read()):n}}else if(n<144)if(n-=128,yn.mapsAsObjects){let e={};for(let t=0;t<n;t++)e[oM()]=Zt();return e}else{let e=new Map;for(let t=0;t<n;t++)e.set(Zt(),Zt());return e}else{n-=144;let e=new Array(n);for(let t=0;t<n;t++)e[t]=Zt();return e}else if(n<192){let e=n-160;if(Hr>=K)return ws.slice(K-Zn,(K+=e)-Zn);if(Hr==0&&Ss<140){let t=e<16?Cv(e):sM(e);if(t!=null)return t}return Tv(e)}else{let e;switch(n){case 192:return null;case 193:return Un?(e=Zt(),e>0?Un[1].slice(Un.position1,Un.position1+=e):Un[0].slice(Un.position0,Un.position0-=e)):Mv;case 194:return!1;case 195:return!0;case 196:return xv(Oe[K++]);case 197:return e=Ct.getUint16(K),K+=2,xv(e);case 198:return e=Ct.getUint32(K),K+=4,xv(e);case 199:return Mo(Oe[K++]);case 200:return e=Ct.getUint16(K),K+=2,Mo(e);case 201:return e=Ct.getUint32(K),K+=4,Mo(e);case 202:if(e=Ct.getFloat32(K),yn.useFloat32>2){let t=Zf[(Oe[K]&127)<<1|Oe[K+1]>>7];return K+=4,(t*e+(e>0?.5:-.5)>>0)/t}return K+=4,e;case 203:return e=Ct.getFloat64(K),K+=8,e;case 204:return Oe[K++];case 205:return e=Ct.getUint16(K),K+=2,e;case 206:return e=Ct.getUint32(K),K+=4,e;case 207:return yn.int64AsNumber?(e=Ct.getUint32(K)*4294967296,e+=Ct.getUint32(K+4)):e=Ct.getBigUint64(K),K+=8,e;case 208:return Ct.getInt8(K++);case 209:return e=Ct.getInt16(K),K+=2,e;case 210:return e=Ct.getInt32(K),K+=4,e;case 211:return yn.int64AsNumber?(e=Ct.getInt32(K)*4294967296,e+=Ct.getUint32(K+4)):e=Ct.getBigInt64(K),K+=8,e;case 212:if(e=Oe[K++],e==114)return nM(Oe[K++]&63);{let t=on[e];if(t)return t.read?(K++,t.read(Zt())):t.noBuffer?(K++,t()):t(Oe.subarray(K,++K));throw new Error("Unknown extension "+e)}case 213:return e=Oe[K],e==114?(K++,nM(Oe[K++]&63,Oe[K++])):Mo(2);case 214:return Mo(4);case 215:return Mo(8);case 216:return Mo(16);case 217:return e=Oe[K++],Hr>=K?ws.slice(K-Zn,(K+=e)-Zn):EV(e);case 218:return e=Ct.getUint16(K),K+=2,Hr>=K?ws.slice(K-Zn,(K+=e)-Zn):CV(e);case 219:return e=Ct.getUint32(K),K+=4,Hr>=K?ws.slice(K-Zn,(K+=e)-Zn):PV(e);case 220:return e=Ct.getUint16(K),K+=2,eM(e);case 221:return e=Ct.getUint32(K),K+=4,eM(e);case 222:return e=Ct.getUint16(K),K+=2,tM(e);case 223:return e=Ct.getUint32(K),K+=4,tM(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 MV=/^[a-zA-Z_$][a-zA-Z\d_$]*$/;function Ev(n,e){function t(){if(t.count++>2){let r=n.read=new Function("r","return function(){return {"+n.map(i=>MV.test(i)?i+":r()":"["+JSON.stringify(i)+"]:r()").join(",")+"}}")(Zt);return n.highByte===0&&(n.read=$T(e,n.read)),r()}let A={};for(let r=0,i=n.length;r<i;r++){let s=n[r];A[s]=Zt()}return A}return t.count=0,n.highByte===0?$T(e,t):t}var $T=(n,e)=>function(){let t=Oe[K++];if(t===0)return e();let A=n<32?-(n+(t<<5)):n+(t<<5),r=bt[A]||iM()[A];if(!r)throw new Error("Record id is not defined for "+A);return r.read||(r.read=Ev(r,n)),r.read()};function iM(){let n=lM(()=>(Oe=null,yn.getStructures()));return bt=yn._mergeStructures(n,bt)}var Tv=Kf,EV=Kf,CV=Kf,PV=Kf;function Kf(n){let e;if(n<16&&(e=Cv(n)))return e;if(n>64&&bv)return bv.decode(Oe.subarray(K,K+=n));let t=K+n,A=[];for(e="";K<t;){let r=Oe[K++];if((r&128)===0)A.push(r);else if((r&224)===192){let i=Oe[K++]&63;A.push((r&31)<<6|i)}else if((r&240)===224){let i=Oe[K++]&63,s=Oe[K++]&63;A.push((r&31)<<12|i<<6|s)}else if((r&248)===240){let i=Oe[K++]&63,s=Oe[K++]&63,o=Oe[K++]&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+=RA.apply(String,A),A.length=0)}return A.length>0&&(e+=RA.apply(String,A)),e}function eM(n){let e=new Array(n);for(let t=0;t<n;t++)e[t]=Zt();return e}function tM(n){if(yn.mapsAsObjects){let e={};for(let t=0;t<n;t++)e[oM()]=Zt();return e}else{let e=new Map;for(let t=0;t<n;t++)e.set(Zt(),Zt());return e}}var RA=String.fromCharCode;function sM(n){let e=K,t=new Array(n);for(let A=0;A<n;A++){let r=Oe[K++];if((r&128)>0){K=e;return}t[A]=r}return RA.apply(String,t)}function Cv(n){if(n<4)if(n<2){if(n===0)return"";{let e=Oe[K++];if((e&128)>1){K-=1;return}return RA(e)}}else{let e=Oe[K++],t=Oe[K++];if((e&128)>0||(t&128)>0){K-=2;return}if(n<3)return RA(e,t);let A=Oe[K++];if((A&128)>0){K-=3;return}return RA(e,t,A)}else{let e=Oe[K++],t=Oe[K++],A=Oe[K++],r=Oe[K++];if((e&128)>0||(t&128)>0||(A&128)>0||(r&128)>0){K-=4;return}if(n<6){if(n===4)return RA(e,t,A,r);{let i=Oe[K++];if((i&128)>0){K-=5;return}return RA(e,t,A,r,i)}}else if(n<8){let i=Oe[K++],s=Oe[K++];if((i&128)>0||(s&128)>0){K-=6;return}if(n<7)return RA(e,t,A,r,i,s);let o=Oe[K++];if((o&128)>0){K-=7;return}return RA(e,t,A,r,i,s,o)}else{let i=Oe[K++],s=Oe[K++],o=Oe[K++],a=Oe[K++];if((i&128)>0||(s&128)>0||(o&128)>0||(a&128)>0){K-=8;return}if(n<10){if(n===8)return RA(e,t,A,r,i,s,o,a);{let c=Oe[K++];if((c&128)>0){K-=9;return}return RA(e,t,A,r,i,s,o,a,c)}}else if(n<12){let c=Oe[K++],l=Oe[K++];if((c&128)>0||(l&128)>0){K-=10;return}if(n<11)return RA(e,t,A,r,i,s,o,a,c,l);let u=Oe[K++];if((u&128)>0){K-=11;return}return RA(e,t,A,r,i,s,o,a,c,l,u)}else{let c=Oe[K++],l=Oe[K++],u=Oe[K++],d=Oe[K++];if((c&128)>0||(l&128)>0||(u&128)>0||(d&128)>0){K-=12;return}if(n<14){if(n===12)return RA(e,t,A,r,i,s,o,a,c,l,u,d);{let h=Oe[K++];if((h&128)>0){K-=13;return}return RA(e,t,A,r,i,s,o,a,c,l,u,d,h)}}else{let h=Oe[K++],f=Oe[K++];if((h&128)>0||(f&128)>0){K-=14;return}if(n<15)return RA(e,t,A,r,i,s,o,a,c,l,u,d,h,f);let p=Oe[K++];if((p&128)>0){K-=15;return}return RA(e,t,A,r,i,s,o,a,c,l,u,d,h,f,p)}}}}}function xv(n){return yn.copyBuffers?Uint8Array.prototype.slice.call(Oe,K,K+=n):Oe.subarray(K,K+=n)}function Mo(n){let e=Oe[K++];if(on[e])return on[e](Oe.subarray(K,K+=n));throw new Error("Unknown extension type "+e)}var AM=new Array(4096);function oM(){let n=Oe[K++];if(n>=160&&n<192){if(n=n-160,Hr>=K)return ws.slice(K-Zn,(K+=n)-Zn);if(!(Hr==0&&Ss<180))return Tv(n)}else return K--,Zt();let e=(n<<5^(n>1?Ct.getUint16(K):n>0?Oe[K]:0))&4095,t=AM[e],A=K,r=K+n-3,i,s=0;if(t&&t.bytes==n){for(;A<r;){if(i=Ct.getUint32(A),i!=t[s++]){A=1879048192;break}A+=4}for(r+=3;A<r;)if(i=Oe[A++],i!=t[s++]){A=1879048192;break}if(A===r)return K=A,t.string;r-=3,A=K}for(t=[],AM[e]=t,t.bytes=n;A<r;)i=Ct.getUint32(A),t.push(i),A+=4;for(r+=3;A<r;)i=Oe[A++],t.push(i);let o=n<16?Cv(n):sM(n);return o!=null?t.string=o:t.string=Tv(n)}var nM=(n,e)=>{var t=Zt();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=Ev(t,A),t.read()},aM=typeof self=="object"?self:global;on[0]=()=>{};on[0].noBuffer=!0;on[101]=()=>{let n=Zt();return(aM[n[0]]||Error)(n[1])};on[105]=n=>{let e=Ct.getUint32(K-4);Ri||(Ri=new Map);let t=Oe[K],A;t>=144&&t<160||t==220||t==221?A=[]:A={};let r={target:A};Ri.set(e,r);let i=Zt();return r.used?Object.assign(A,i):(r.target=i,i)};on[112]=n=>{let e=Ct.getUint32(K-4),t=Ri.get(e);return t.used=!0,t.target};on[115]=()=>new Set(Zt());var Pv=["Int8","Uint8","Uint8Clamped","Int16","Uint16","Int32","Uint32","Float32","Float64","BigInt64","BigUint64"].map(n=>n+"Array");on[116]=n=>{let e=n[0],t=Pv[e];if(!t)throw new Error("Could not find typed array for code "+e);return new aM[t](Uint8Array.prototype.slice.call(n,1).buffer)};on[120]=()=>{let n=Zt();return new RegExp(n[0],n[1])};on[98]=n=>{let e=(n[0]<<24)+(n[1]<<16)+(n[2]<<8)+n[3],t=K;K+=e-4,Un=[Zt(),Zt()],Un.position0=0,Un.position1=0;let A=K;K=t;try{return Zt()}finally{K=A}};on[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 lM(n){let e=Ss,t=K,A=Sv,r=Zn,i=Hr,s=ws,o=wv,a=Ri,c=Un,l=new Uint8Array(Oe.slice(0,Ss)),u=bt,d=bt.slice(0,bt.length),h=yn,f=El,p=n();return Ss=e,K=t,Sv=A,Zn=r,Hr=i,ws=s,wv=o,Ri=a,Un=c,Oe=l,El=f,bt=u,bt.splice(0,bt.length,...d),yn=h,Ct=new DataView(Oe.buffer,Oe.byteOffset,Oe.byteLength),p}function Qf(){Oe=null,Ri=null,bt=null}function cM(n){n.unpack?on[n.type]=n.unpack:on[n.type]=n}var Zf=new Array(147);for(let n=0;n<256;n++)Zf[n]=+("1e"+Math.floor(45.15-n*.30103));var Jf=new Wr({useRecords:!1}),DV=Jf.unpack,IV=Jf.unpackMultiple,OV=Jf.unpack,$f={NEVER:0,ALWAYS:1,DECIMAL_ROUND:3,DECIMAL_FIT:4},LV=new Float32Array(1),OJ=new Uint8Array(LV.buffer,0,4);var ep;try{ep=new TextEncoder}catch{}var tp,Iv,Ap=typeof Buffer<"u",Dv=Ap?Buffer.allocUnsafeSlow:Uint8Array,fM=Ap?Buffer:Uint8Array,uM=Ap?4294967296:2144337920,oe,iA,ee=0,jr,Yr=null,_V=/[\u0080-\uFFFF]/,Fu=Symbol("record-id"),Eo=class extends Wr{constructor(e){super(e),this.offset=0;let t,A,r,i,s,o,a=0,c=fM.prototype.utf8Write?function(v,E,C){return oe.utf8Write(v,E,C)}:ep&&ep.encodeInto?function(v,E){return ep.encodeInto(v,oe.subarray(E)).written}:!1,l=this;e||(e={});let u=e&&e.sequential,d=e.structures||e.saveStructures,h=e.maxSharedStructures;if(h==null&&(h=d?32:0),h>8160)throw new Error("Maximum maxSharedStructure is 8160");let f=e.maxOwnStructures;f==null&&(f=d?32:64),u&&!e.saveStructures&&(this.structures=[]);let p=h>32||f+h>64,m=h+64,g=h+f+64;if(g>8256)throw new Error("Maximum maxSharedStructure + maxOwnStructure is 8192");let y=[],x=0,b=0;this.pack=this.encode=function(v,E){if(oe||(oe=new Dv(8192),iA=new DataView(oe.buffer,0,8192),ee=0),jr=oe.length-10,jr-ee<2048?(oe=new Dv(oe.length),iA=new DataView(oe.buffer,0,oe.length),jr=oe.length-10,ee=0):ee=ee+7&2147483640,A=ee,o=l.structuredClone?new Map:null,l.bundleStrings?(Yr=["",""],oe[ee++]=214,oe[ee++]=98,Yr.position=ee-A,ee+=4):Yr=null,r=l.structures,r){r.uninitialized&&(r=l._mergeStructures(l.getStructures()));let C=r.sharedLength||0;if(C>h)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 L,I=r.transitions;for(let B=0,N=D.length;B<N;B++){let W=D[B];L=I[W],L||(L=I[W]=Object.create(null)),I=L}I[Fu]=P+64}a=C}u||(r.nextId=C+64)}i&&(i=!1),s=r||[];try{if(w(v),Yr){iA.setUint32(Yr.position+A,ee-Yr.position-A);let C=Yr;Yr=null,w(C[0]),w(C[1])}if(l.offset=ee,o&&o.idsToInsert){ee+=o.idsToInsert.length*6,ee>jr&&M(ee),l.offset=ee;let C=BV(oe.subarray(A,ee),o.idsToInsert);return o=null,C}return E&mM?(oe.start=A,oe.end=ee,oe):oe.subarray(A,ee)}finally{if(r){if(b<10&&b++,x>1e4)r.transitions=null,b=0,x=0,y.length>0&&(y=[]);else if(y.length>0&&!u){for(let C=0,P=y.length;C<P;C++)y[C][Fu]=0;y=[]}if(i&&l.saveStructures){let C=r.sharedLength||h;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&zV&&(ee=A)}};let w=v=>{ee>jr&&(oe=M(ee));var E=typeof v,C;if(E==="string"){let P=v.length;if(Yr&&P>=8&&P<4096){let I=_V.test(v);Yr[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 L=P*3;if(ee+L>jr&&(oe=M(ee+L)),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,L);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,iA.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,iA.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,iA.setInt16(ee,v),ee+=2):(oe[ee++]=210,iA.setInt32(ee,v),ee+=4);else{let P;if((P=this.useFloat32)>0&&v<4294967296&&v>=-2147483648){oe[ee++]=202,iA.setFloat32(ee,v);let D;if(P<4||(D=v*Zf[(oe[ee]&127)<<1|oe[ee+1]>>7])>>0===D){ee+=4;return}else ee--}oe[ee++]=203,iA.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 L=o.idsToInsert||(o.idsToInsert=[]);D.id=L.push(D)}oe[ee++]=214,oe[ee++]=112,iA.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,iA.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,iA.setUint32(ee,C),ee+=4);for(let[D,L]of v)w(D),w(L)}else{for(let D=0,L=tp.length;D<L;D++){let I=Iv[D];if(v instanceof I){let B=tp[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=iA,X=ee;oe=null;let F;try{F=B.pack.call(this,v,U=>(oe=N,N=null,ee+=U,ee>jr&&M(ee),{target:oe,targetView:iA,position:ee-U}),w)}finally{N&&(oe=N,iA=W,ee=X,jr=oe.length-10)}F&&(F.length+ee>jr&&M(F.length+ee),ee=RV(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,iA.setBigInt64(ee,v);else if(v<BigInt(1)<<BigInt(64)&&v>0)oe[ee++]=207,iA.setBigUint64(ee,v);else if(this.largeBigIntToFloat)oe[ee++]=203,iA.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,iA.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 L=P[Fu];if(L)L>=96&&p?(oe[ee++]=((L-=96)&31)+96,oe[ee++]=L>>5):oe[ee++]=L;else{L=s.nextId,L||(L=64),L<m&&this.shouldShareStructure&&!this.shouldShareStructure(E)?(L=s.nextOwnId,L<g||(L=m),s.nextOwnId=L+1):(L>=g&&(L=m),s.nextId=L+1);let I=E.highByte=L>=96&&p?L-96>>5:-1;P[Fu]=L,s[L-64]=E,L<m?(E.isShared=!0,s.sharedLength=L-63,i=!0,I>=0?(oe[ee++]=(L&31)+96,oe[ee++]=I):oe[ee++]=L):(I>=0?(oe[ee++]=213,oe[ee++]=114,oe[ee++]=(L&31)+96,oe[ee++]=I):(oe[ee++]=212,oe[ee++]=114,oe[ee++]=L),D&&(x+=b*D),y.length>=f&&(y.shift()[Fu]=0),y.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>uM)throw new Error("Packed buffer would be larger than maximum buffer size");E=Math.min(uM,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 Dv(E);return iA=new DataView(C.buffer,0,E),oe.copy?oe.copy(C,0,A,v):C.set(oe.slice(A,v)),ee-=A,A=0,jr=C.length-10,oe=C}}useBuffer(e){oe=e,iA=new DataView(oe.buffer,oe.byteOffset,oe.byteLength),ee=0}};Iv=[Date,Set,Error,RegExp,ArrayBuffer,Object.getPrototypeOf(Uint8Array.prototype).constructor,Nu];tp=[{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?dM(n,16,e):hM(Ap?Buffer.from(n):new Uint8Array(n),e)}},{pack(n,e){let t=n.constructor;t!==fM&&this.structuredClone?dM(n,Pv.indexOf(t.name),e):hM(n,e)}},{pack(n,e){let{target:t,position:A}=e(1);t[A]=193}}];function dM(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 hM(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 RV(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 BV(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 Ts(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)");Iv.unshift(n.Class),tp.unshift(n)}cM(n)}var pM=new Eo({useRecords:!1}),NV=pM.pack,FV=pM.pack;var{NEVER:GV,ALWAYS:UV,DECIMAL_ROUND:kV,DECIMAL_FIT:VV}=$f,mM=512,zV=1024;var gM=new Eo({structuredClone:!0});Ts({Class:_t.prototype.constructor,type:1,write(n){return{...n}},read(n){return Object.setPrototypeOf(n,_t.prototype),n}});Ts({Class:We.prototype.constructor,type:2,write(n){return[...n]},read(n){return Object.setPrototypeOf(n,We.prototype),n}});Ts({Class:zt.prototype.constructor,type:3,write(n){return[...n]},read(n){return Object.setPrototypeOf(n,zt.prototype),n}});Ts({Class:Ru.prototype.constructor,type:4,write(n){return n.id},read(n){return new Ru(n)}});Ts({Class:Bu.prototype.constructor,type:5,write(n){return n.data},read(n){return new Bu(n)}});Ts({Class:Ht.prototype.constructor,type:6,write(n){return{...n}},read(n){return Object.setPrototypeOf(n,Ht.prototype),n}});function HV(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 Ov(n){if(xl(n))return n;if(Array.isArray(n))return n.map(Ov);if(typeof n=="object"&&n!==null){let e={};for(let t of Object.keys(n).sort())e[t]=Ov(n[t]);return Object.setPrototypeOf(e,Object.getPrototypeOf(n)),e}else return n}var np;(A=>{function n(r){return gM.pack(r)}A.serialize=n;function e(r){return gM.unpack(r)}A.deserialize=e;function t(r){return HV(n(Ov(r))).toString()}A.checksum=t})(np||(np={}));var Cl={["LookAt"]:[],["Follow"]:[],["MouseHover"]:["Transition"],["Scroll"]:["Transition"],["Start"]:["Transition","Audio","Video"],["Conditional"]:["Transition","Audio","Video"],["MouseDown"]:["Transition","Audio","Video","Link","Reset"],["MouseUp"]:["Transition","Audio","Video","Link","Reset"],["MousePress"]:["Transition","Audio","Video","Link","Reset"],["KeyDown"]:["Transition","Audio","Video","Link","Reset"],["KeyUp"]:["Transition","Audio","Video","Link","Reset"],["KeyPress"]:["Transition","Audio","Video","Link","Reset"],["GameControl"]:["Transition","Audio"],["Collision"]:["Transition","Audio"]},yM;(t=>{function n(A){return A.type==="MouseDown"||A.type==="MouseUp"||A.type==="MousePress"||A.type==="KeyDown"||A.type==="KeyUp"||A.type==="KeyPress"}t.is=n;function e(A){return A==="MouseDown"||A==="MouseUp"||A==="MousePress"?{type:A,disabled:!1,toggle:!1,actions:new We}:{type:A,disabled:!1,key:void 0,toggle:!1,actions:new We}}t.defaultData=e})(yM||(yM={}));var rp;(t=>{function n(A){return{type:"Property",value:[A??null,"position","x"]}}t.propertyDefaultData=n,t.valueDefaultData={type:"Literal",value:0}})(rp||(rp={}));var Lv;(A=>{function n(r){return{type:"Comparison",operator:"==",lOperand:rp.propertyDefaultData(r),rOperand:{...rp.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})(Lv||(Lv={}));var vM;(t=>{function n(A){return A.type==="Conditional"}t.is=n;function e(A){return{type:"Conditional",disabled:!1,inActions:new We,outActions:new We,condition:Lv.distanceDefaultData(A)}}t.defaultData=e})(vM||(vM={}));var xM;(e=>e.defaultData={type:"Follow",disabled:!1,maxDelta:0,dampingFactor:1,plane:"custom",resetOnPointerLeave:!0})(xM||(xM={}));var bM;(e=>e.defaultData={type:"LookAt",disabled:!1,distance:1e3,dampingFactor:1,tilt:"up",axis:"z",plane:"custom",resetOnPointerLeave:!0})(bM||(bM={}));var wM;(t=>{function n(A){return A.type==="MouseHover"}t.is=n;function e(){return{type:"MouseHover",disabled:!1,actions:new We}}t.defaultData=e})(wM||(wM={}));var SM;(t=>{function n(A){return A.type==="Scroll"}t.is=n;function e(){return{type:"Scroll",disabled:!1,steps:100,actions:new We}}t.defaultData=e})(SM||(SM={}));var TM;(t=>{function n(A){return A.type==="Start"}t.is=n;function e(){return{type:"Start",disabled:!1,actions:new We}}t.defaultData=e})(TM||(TM={}));var MM;(t=>{function n(A){return A.type==="Collision"}t.is=n;function e(){return{type:"Collision",disabled:!1,toggle:!1,target:"character",actions:new We}}t.defaultData=e})(MM||(MM={}));var Co;(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})(Co||(Co={}));var qr;(s=>{function n(o,a){return o[0]===a[0]&&o[1]===a[1]&&o[2]===a[2]}s.isEqual=n;function e(o,a){return[o[0]+a[0],o[1]+a[1],o[2]+a[2]]}s.add=e;function t(o,a){return[o[0]-a[0],o[1]-a[1],o[2]-a[2]]}s.sub=t;function A(o,a){return[o[0]/a[0],o[1]/a[1],o[2]/a[2]]}s.div=A;function r(o,a){return[o[0]*a[0],o[1]*a[1],o[2]*a[2]]}s.mul=r;function i(o,a,c){return[o[0]+(a[0]-o[0])*c,o[1]+(a[1]-o[1])*c,o[2]+(a[2]-o[2])*c]}s.lerp=i})(qr||(qr={}));var Gu;(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})(Gu||(Gu={}));var Ms;(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})(Ms||(Ms={}));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,d){return{r:l.r+(u.r-l.r)*d,g:l.g+(u.g-l.g)*d,b:l.b+(u.b-l.b)*d}}c.lerp=a})(QA||(QA={}));var vn;(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})(vn||(vn={}));var ip;(e=>e.identity={position:[0,0,0],rotation:[0,0,0],scale:[1,1,1]})(ip||(ip={}));var EM;(e=>e.defaultData={mass:1,stiffness:80,damping:10,velocity:0})(EM||(EM={}));var CM;(e=>e.defaultData={control1:[.5,.05],control2:[.1,.3]})(CM||(CM={}));var yr;(t=>{t.all=["PerspectiveCamera","OrthographicCamera"];function e(A){return t.all.includes(A)}t.is=e})(yr||(yr={}));var Po;(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})(Po||(Po={}));var Xr;(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(_v.forEach(s=>{Object.assign(i,{[s]:r[s]??A[s]})}),i.radial={...A.radial},r.radial){let s=A.radial,o=r.radial;Rv.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;Bv.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;Nv.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;Fv.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;Gv.forEach(a=>{Object.assign(i.randomnessObject,{[a]:o[a]??s[a]})})}return i}t.merge=e})(Xr||(Xr={}));var sp;(A=>{A.defaultData={radial:{},linear:{},grid:{},toObject:{},randomnessObject:{}};let e=["radial","linear","grid","toObject","randomnessObject"];function t(r,i){let s=[];r.count!==void 0&&s.push({type:0,path:i,props:{count:r.count}});for(let o of e){let a=r[o];a&&Object.keys(a).length>0&&s.push({type:0,path:[...i,o],props:a})}return s}A.toOps=t})(sp||(sp={}));var _v=["count"],Rv=["radius","start","end","position","scale","rotation"],Bv=["position","scale","rotation"],Nv=["count","size"],Fv=["count","position","scale","rotation"],Gv=["strength","scale","rotation","position","movement","seed","freqScale"];var Do;(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}}})(Do||(Do={}));var op;(t=>{t.all=["PointLight","SpotLight","DirectionalLight","HemisphereLight"];function e(A){return t.all.includes(A)}t.is=e})(op||(op={}));var ap;(t=>{function n(A){return e(A)}t.defaultData=n;function e(A){if(A==="PointLight")return{type:A,color:vn.white,intensity:1,distance:2e3,decay:1,shadows:!0,shadowResolution:1024,shadowRadius:1,depth:1e5};if(A==="SpotLight")return{type:A,color:vn.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:vn.white,intensity:1,shadows:!0,size:1e3,depth:1e5,shadowResolution:1024,shadowRadius:1};throw new Error("not implemented")}})(ap||(ap={}));var Uv;(t=>{t.defaultData={castShadow:!0,receiveShadow:!0};function e(A,r){return A.castShadow===r.castShadow&&A.receiveShadow===r.receiveShadow}t.equals=e})(Uv||(Uv={}));var kv;(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})(kv||(kv={}));var lp;(e=>e.defaultData={...kv.defaultData,...Uv.defaultData})(lp||(lp={}));var PM="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//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 Pl;(t=>(t.defaultVideo={data:PM,thumb:"/_assets/_videos/catThumb.png",type:"video",name:"Cat video"},t.maxSize=3e7))(Pl||(Pl={}));var cp=["mode","gradientType","noiseType","displacementType","projection","cnormal","crop","axis","side"],DM=["wrapping","image","video"],an;(r=>{function n(i,s){let{texture:o,...a}=s;if(Object.assign(i,a),o){let c=i.texture;c&&Object.assign(c,o)}}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:1e3,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:Pl.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:vn.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:vn.fromHexAndA(0,0),offset:[0,0,0]};case"outline":return{type:"outline",alpha:1,visible:!0,mode:0,outlineColor:vn.fromHexAndA(0,1),contourColor:vn.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}}}})(an||(an={}));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(([d,h])=>{l+=`${d}${h}`,Array.isArray(h)?h.forEach(f=>l+=`${f}`):typeof h=="object"?Object.values(h).forEach(f=>{typeof f=="number"?l+=`${f.toFixed(4)}`:l+=`${f}`}):l+=`${h}`})}),l}a.getHash=e;function t(){return{layers:new We}}a.defaultEmptyData=t;function A(c="layer1",l="layer2"){return i("phong",c,l)}a.defaultData=A;function r(c,l){return{...c,name:l}}a.withName=r;function i(c,l="layer1",u="layer2"){let d=new We;return d.push({fi:0,data:an.defaultData("light",c),id:l}),d.push({fi:1,data:an.defaultData("color"),id:u}),{layers:d}}a.defaultTwoLayerData=i;function s(c,l="phong",u="layer1",d="layer2"){let h=an.defaultData("texture");Object.assign(h.texture,{image:c});let f=new We;return f.push({fi:0,data:h,id:u}),f.push({fi:1,data:an.defaultData("light",l),id:d}),{layers:f}}a.defaultTwoLayerTextureData=s;function o(c,l="phong",u="layer1",d="layer2"){let h=an.defaultData("video");Object.assign(h.texture,{video:c});let f=new We;return f.push({fi:0,data:h,id:u}),f.push({fi:1,data:an.defaultData("light",l),id:d}),{layers:f}}a.defaultTwoLayerVideoTextureData=o})(BA||(BA={}));var Dl;(e=>{function n(){return{points:new We,roundness:0,shapeHoles:[],isClosed:!1}}e.defaultData=n})(Dl||(Dl={}));var Uu;(e=>{function n(t){return t==="PolygonGeometry"||t==="RectangleGeometry"||t==="StarGeometry"||t==="TriangleGeometry"||t==="EllipseGeometry"}e.is2DParametricMesh=n})(Uu||(Uu={}));var Es;(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:Dl.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})(Es||(Es={}));var IM;(t=>{function n(A){return A==="Component"||A==="Instance"}t.isComponentRelated=n;function e(A){return A==="Empty"||A==="Instance"}t.isEmptyOrComponent=e})(IM||(IM={}));var Il;(r=>{r.identity={...ip.identity,hiddenMatrix:Ms.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:qr.isEqual(i.position,s.position)?null:s.position,rotation:qr.isEqual(i.rotation,s.rotation)?null:s.rotation,scale:qr.isEqual(i.scale,s.scale)?null:s.scale,hiddenMatrix:Ms.isEqual(i.hiddenMatrix,s.hiddenMatrix)?null:s.hiddenMatrix}}r.diff=A})(Il||(Il={}));var Vv;(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]})(Vv||(Vv={}));var kn;(e=>e.defaultData={states:new We,events:new We,visible:!0,raycastLock:!1,physics:null,...Il.identity,cloner:null})(kn||(kn={}));var OM;(e=>e.defaultData={type:"Empty",...kn.defaultData})(OM||(OM={}));var LM;(e=>e.defaultData={type:"Component",...kn.defaultData})(LM||(LM={}));var Io;(e=>e.defaultData={type:"Mesh",...kn.defaultData,...lp.defaultData})(Io||(Io={}));var Ol;(e=>e.defaultData={...kn.defaultData,...Il.identity,...Po.defaultData})(Ol||(Ol={}));var up;(e=>{function n(t){return{...kn.defaultData,...ap.defaultData(t)}}e.defaultData=n})(up||(up={}));var Ll;(t=>{function n(A,r,i=0){for(;i<r.length;){let s=A?A[r[i]]:void 0;if(r.length===i+1)return s;if(s)A=s.descendants,i+=1;else return}}t.resolveWithDes=n;function e(A,r,i=0){let s=n(A,r,i);if(s){let o=Object.keys(s);if(o.length===1&&o[0]==="descendants")return}return s}t.resolve=e})(Ll||(Ll={}));var Cs;(i=>{i.rootOverrideProps=["physics"],i.compositeNonOptionalOverrideProps=["geometry"],i.compositeEntireOverrideOverrideProps=["material"];function A(s,o){return{...kn.defaultData,...o,component:s,overrides:new Ht,physics:void 0,type:"Instance"}}i.ofComponent=A;function r(s){let o=Il.fromObject(s.data);return A(s.id,o)}i.fromComponentData=r})(Cs||(Cs={}));var dp;(i=>(i.defaultCamera={position:[0,0,1e3],scale:[1,1,1],rotation:[0,0,0],hiddenMatrix:Ms.identity,name:"Play Camera",visible:!0,raycastLock:!1,physics:Vv.defaultData,states:new We,events:new We,cloner:null,...Po.defaultData},i.KeysByResetCategory={States:["states"],Events:["events"],Material:["material","materials"],Geometry:["geometry"],Position:["position"],Rotation:["rotation"],Scale:["scale"],Transform:["position","scale","rotation","hiddenMatrix"],Name:["name"],Visibility:["visible","raycastLock","flatShading","wireframe","side"],Shadows:["castShadow","receiveShadow"],Cloner:["cloner"],Physics:["physics"]},i.defaultMeshObject={name:"Rectangle",...kn.defaultData,...Io.defaultData,geometry:Es.defaultData("RectangleGeometry"),material:BA.defaultTwoLayerData("phong","layer1","layer2")},i.defaultBooleanObject={name:"Boolean",...kn.defaultData,...Io.defaultData,geometry:Es.defaultData("BooleanGeometry"),material:BA.defaultTwoLayerData("phong","layer1","layer2")},i.defaultTextObject={name:"Text",...kn.defaultData,...Io.defaultData,geometry:Es.defaultData("TextGeometry"),material:BA.defaultTwoLayerData("phong","layer1","layer2")}))(dp||(dp={}));var Bi;(r=>{function n(i,s){let o={name:s};return i.type==="Mesh"?(o.geometry={},"material"in i&&(o.material={layers:new Ht}),"materials"in i&&(o.materials=i.materials.map(a=>({layers:new Ht})))):yr.is(i.type)&&(o.perspective={},o.orthographic={}),o}r.newEmpty=n;function e(i,s){if(s===void 0)return i;let o={...i};return"material"in o&&"material"in s&&s.material&&(o.material=Ml(o.material,a=>{if(typeof a!="string")for(let[c,l]of Object.entries(s.material.layers)){let u=a.layers.data(c);u&&an.patch(u,l)}}).data),o.materials&&s.materials&&(o.materials=Ml(o.materials,a=>{for(let c=0;c<o.materials.length;c++){let l=s.materials[c];if(typeof l!="string")for(let[u,d]of Object.entries(l.layers)){let h=a[c]?.layers?.data(u);h&&an.patch(h,d)}}}).data),o}function t(i,s){let o,a=[],c={orthographic:0,perspective:0,geometry:0};function l(u,d){for(let[h,f]of Object.entries(d.layers)){let{texture:p,...m}=f;if(p!==void 0&&Object.keys(p).length>0){let g={path:[...u,"layers",h,"texture"],props:p,type:0};a.push(g)}if(Object.keys(m).length>0){let g={path:[...u,"layers",h],props:m,type:0};a.push(g)}}}for(let[u,d]of Object.entries(s))if(u!=="name")if(u==="cloner")a.push(...sp.toOps(d,["cloner"]));else if(u==="material")l(["material"],d);else if(u==="materials")for(let[h,f]of Object.entries(d))l(["materials",h],f);else if(c[u]===0){if(Object.keys(d).length>0){let h={path:[u],props:d,type:0};a.push(h)}}else o===void 0&&(o={path:[],props:{},type:0},a.push(o)),o.props[u]=d;return a}r.toOps=t;function A(i,s){if(s===void 0)return i;let o={...i};if(Object.assign(o,Il.merge(o,s)),yr.is(i.type)){o.orthographic={...o.orthographic},o.perspective={...o.perspective};let a=s;a.orthographic?.zoom!==void 0&&(o.orthographic.zoom=a.orthographic.zoom),a.perspective?.zoom!==void 0&&(o.perspective.zoom=a.perspective.zoom),a.isUpVectorFlipped!==void 0&&(o.isUpVectorFlipped=a.isUpVectorFlipped),a.targetOffset!==void 0&&(o.targetOffset=a.targetOffset)}else if(i.type==="Mesh")s.geometry&&(o.geometry={...o.geometry},Object.assign(o.geometry,s.geometry)),(s.material||s.materials)&&(o=e(o,s)),o.cloner&&"cloner"in s&&Object.assign(o,{cloner:Xr.merge(o.cloner,s.cloner)});else if(i.type==="Empty")o.cloner&&"cloner"in s&&Object.assign(o,{cloner:Xr.merge(o.cloner,s.cloner)});else if(op.is(i.type)){let a=s;a.intensity!==void 0&&(o.intensity=a.intensity),a.color!==void 0&&(typeof a.color=="string"?o.color=a.color:o.color=QA.clone(a.color))}return o}r.patch=A})(Bi||(Bi={}));var Vu;(e=>e.defaultData={enabled:!1,useBackgroundColor:!1,color:QA.white,near:.1,far:2e3})(Vu||(Vu={}));var _l;(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})(_l||(_l={}));var Ni;(e=>e.defaultData={orbitControls:_l.defaultData,playCamera:null,withBackground:!0,preventScroll:!1,hideCursor:!1,settings:{image:{format:"jpg",ratio:1},video:{format:"mp4",imageFormat:"jpg",fps:30,mbps:80,ratio:typeof window<"u"?Math.floor(window.devicePixelRatio):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})(Ni||(Ni={}));function Qr(n,e){return Object.setPrototypeOf(n,e),n}var WV=()=>typeof window>"u"?!1:window.navigator.userAgent.toLowerCase().includes(" electron/"),jV=()=>typeof window>"u"?!1:window.navigator.platform.toUpperCase().includes("MAC"),YV=()=>typeof window>"u"?!1:/iPad|iPhone|iPod/.test(window.navigator.userAgent)||Oo&&"ontouchend"in document,qV=()=>typeof window>"u"?!1:window.navigator.userAgent.toLowerCase().indexOf("firefox")>-1,XV=()=>typeof window>"u"?!1:"ontouchstart"in window||navigator.maxTouchPoints>0,QV=()=>{if(typeof window>"u")return!1;let n=navigator.userAgent,e=navigator.vendor;return/Safari/i.test(n)&&/Apple Computer/.test(e)},KV=()=>{if(typeof window>"u")return null;let e=navigator.userAgent.match(/Version\/(\d+\.\d)/);return e&&e[1]},dee=WV(),Oo=jV(),zu=YV(),_M=qV(),sA=XV(),Rl=QV(),Bl=Number(KV());function hp(n){return Array.isArray(n)?n:[n]}function RM(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}function Hu(n){return Oo?n.metaKey:n.ctrlKey}var Ze=[],pp={},Wu={},fp={};function BM(n){Ze.includes(n)||Ze.push(n)}function Nl(n){delete pp[n.pointerId];for(let e=0;e<Ze.length;e++)if(Ze[e].pointerId===n.pointerId){Ze.splice(e,1);break}}function mp(n){if(n.pointerType!=="touch")return;let e=pp[n.pointerId];e===void 0&&(e={x:0,y:0},pp[n.pointerId]=e),e.x=n.pageX,e.y=n.pageY}function gp(n){let e=n.pointerId===Ze[0].pointerId?Ze[1]:Ze[0];return pp[e.pointerId]}function NM(n){Wu[n.key]=!0,fp[n.key]=fp[n.key]===void 0?1:fp[n.key]+1}function FM(n){if(Oo&&Wu.Meta)for(let e in Wu)Wu[e]=!1;else Wu[n.key]=!1;fp={}}function GM(n){n.addEventListener("pointerdown",BM,!0),n.addEventListener("pointerdown",mp,!0),n.addEventListener("pointermove",mp,!0),n.addEventListener("pointerup",Nl,!0),n.addEventListener("pointercancel",Nl,!0),n.addEventListener("pointerleave",Nl,!0),window.addEventListener("keydown",NM,!0),window.addEventListener("keyup",FM,!0)}function UM(n){n.removeEventListener("pointerdown",BM,!0),n.removeEventListener("pointerdown",mp,!0),n.removeEventListener("pointermove",mp,!0),n.removeEventListener("pointerup",Nl,!0),n.removeEventListener("pointercancel",Nl,!0),n.removeEventListener("pointerleave",Nl,!0),window.removeEventListener("keydown",NM,!0),window.removeEventListener("keyup",FM,!0)}var ln;(e=>e.defaultData={ambientLight:{enabled:!0,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})(ln||(ln={}));var yp;(s=>{s.TRASH_CAN_ID="830a2708-8ed9-49cf-a68e-085299892222";function e(o={withLight:!0,withSquare:!0}){let a=new zt,c=dp.defaultMeshObject;return o.withLight===!0&&a.push({fi:-1,data:{...up.defaultData("DirectionalLight"),position:[200,300,300],name:"Directional Light",intensity:.7},id:"830a2708-8ed9-49cf-a68e-085299899103",children:[]}),o.withSquare===!0&&a.push({fi:1,id:"7ba78968-2a55-48f2-b14c-5191da3e075e",data:c,children:[]}),a}s.defaultData={backgroundColor:vn.fromHexAndA(1908256,1),postprocessing:Do.defaultData,fog:Vu.defaultData,objects:e(),environment:ln.defaultData,publish:Ni.defaultData},s.emptyData=function(o){return{backgroundColor:vn.fromHexAndA(1908256,1),postprocessing:Do.defaultData,fog:Vu.defaultData,objects:o?e(o):new zt,environment:ln.defaultData,publish:Ni.defaultData}};function r(o){return{...s.defaultData,objects:Qr(o,zt.prototype)}}s.withObjs=r;function i(o,a){return r([{id:o,data:a,children:[],fi:0}])}s.withObj=i})(yp||(yp={}));var Fl;(t=>{function n(){let A={};return A["89b10010-844c-11ec-a8a3-0242ac120002"]={r:.5,g:.5,b:.5,a:1,name:"Default Color"},Qr(A,_t.prototype)}t.defaultColors=n;function e(){return{materials:new _t,images:new _t,videos:new _t,colors:new _t,audios:new _t,fonts:new _t,penumbraSize:[.5,.5,.5]}}t.emptyData=e})(Fl||(Fl={}));function kM(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={...yl(_A(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={..._A(e),near:Math.max(e.near,0),far:Math.max(e.far,0)};Object.assign(e,t)}})}function vp(n,e){Object.values(n.shared.materials).forEach(t=>e(t))}function xp(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 ZV(n){Object.assign(n.scene.publish,{orbitControls:{..._l.defaultData,..._A(n.scene.publish.orbitControls)}})}function JV(n){Object.assign(n.scene.publish.settings,{video:{...Ni.defaultData.settings.video,..._A(n.scene.publish.settings.video)}})}function $V(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((cp.includes(r)||typeof i=="boolean")&&delete A[r],r==="texture")for(let[s,o]of Object.entries(i))(DM.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 ez(n){n.scene.publish.withBackground=!0}function tz(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 nz(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 rz(n){n.scene.objects.traverse((e,t)=>{let A=n.scene.objects.unproxy().parent(e);if(A){let r=_A(n.scene.objects.data(A));r&&r.type==="Mesh"&&r.geometry.type==="BooleanGeometry"&&t.type==="Mesh"&&(t.visible=_A(t).booleanExclude!==!0)}})}function iz(n){n.scene.objects.traverse((e,t)=>{if(t.type==="Mesh"){let A=t;t.geometry.type==="NonParametricGeometry"?A.material!==void 0&&delete A.material:A.materials!==void 0&&delete A.materials}})}function sz(n){function e(A){Object.setPrototypeOf(A,Ht.prototype),A.texture&&Object.setPrototypeOf(A.texture,Ht.prototype)}function t(A){Object.setPrototypeOf(A,Ht.prototype);for(let r in A)e(A[r])}n.scene.objects.traverse((A,r)=>{r.states.forEach(i=>{let s=i;if(s.material){let o=_A(s.material).layers;t(o),s.material.layers=o}if(s.materials)for(let o=0;o<s.materials.length;o++){let a=s.materials[o],c=_A(a).layers;t(c),a.layers=c}})})}function VM(n){n.layers===void 0&&Object.assign(n,BA.defaultTwoLayerData("lambert"))}function zv(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={..._A(e),colors:t,steps:A};Object.assign(e,r)}})}function oz(n){n.scene.objects.traverse((e,t)=>{t.type==="Mesh"&&(t.geometry.type==="BooleanGeometry"||t.geometry.type==="SubdivGeometry")&&(t.geometry.phongAngle=35)})}function zM(n){n.scene.objects.traverse((e,t)=>{"materials"in t?t.materials.forEach(A=>{typeof A!="string"&&zv(A)}):"material"in t&&typeof t.material!="string"&&zv(t.material)}),Object.values(n.shared.materials).forEach(e=>zv(e))}function az(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 lz(n){n.shared.audios=Qr({},_t.prototype)}function cz(n){n.shared.videos=Qr({},_t.prototype)}function uz(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 dz(n){Object.entries(_A(n.shared.images)).filter(A=>A[1].asset===!1).map(A=>A[0]).forEach(A=>{delete n.shared.images[A]}),Object.entries(_A(n.shared.audios)).filter(A=>A[1].asset===!1).map(A=>A[0]).forEach(A=>{delete n.shared.audios[A]})}function hz(n){n.scene.publish.settings.web.preload=!1}function HM(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 fz(n){n.shared.fonts=Qr({},_t.prototype)}function pz(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 mz(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=pz(r.font);n.shared.fonts[o]===void 0&&(n.shared.fonts[o]={name:o});let a={name:r.name,...kn.defaultData,...Io.defaultData,flatShading:!1,wireframe:!1,geometry:{...Es.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:_A(r.states),events:_A(r.events),visible:r.visible,raycastLock:r.raycastLock,position:r.position,rotation:r.rotation,scale:r.scale,hiddenMatrix:r.hiddenMatrix},c=_A(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 gz(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 We,move:new We,jump:new We}});else{let i=new We;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:Ve.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,yl(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"},d={state:s.state,...u,...l},h={allowSlerp:!0,type:"Transition",object:s.object,repeat:0,delay:0,delayDirection:void 0,direction:"normal",tweens:new We({fi:0,id:Ve.generateUUID(),data:c},{fi:1,id:Ve.generateUUID(),data:d})};i.push({fi:a,id:o,data:h})}),delete r.targets)}})})}function yz(n){n.scene.objects.traverse((e,t)=>{function A(r,i){let s=new We,o=[];if(t.events.forEach((a,c,l)=>{if(a.type==="Audio"&&a.trigger===i){let u;o.push(c),a.interaction==="play"?u={...yl(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={...yl(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:Ve.generateUUID(),data:{type:r,actions:s}}])}}A("Start","start"),A("MouseDown","mouseDown"),A("MouseUp","mouseUp"),A("KeyDown","keyDown"),A("KeyUp","keyUp")})}function WM(n){let e=n.layers.find(t=>t.type==="light")?.data;if(e?.category==="basic"){let t=an.defaultData("light","phong"),A=e;Object.assign(A,t),A.visible=!1}}function jM(n){vp(n,WM),xp(n,WM)}function vz(n){n.scene.objects.traverse((e,t)=>{t.type==="Mesh"&&t.geometry.type==="SubdivGeometry"&&(t.geometry.scaleBaked||(t.geometry.scaleBaked=[1,1,1]))})}function xz(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"}})})}function bz(n){n.scene.objects.traverse((e,t)=>{t.type==="Mesh"&&t.geometry.type==="NonParametricGeometry"&&!("material"in t)&&!("materials"in t)&&(t.material=BA.defaultTwoLayerData("phong"))})}var YM=30;function qM(n){let e=n.schema??0;e!==YM&&(console.warn("updating from ",e,"to ",YM),e<1&&(xp(n,kM),vp(n,kM),n.schema=1),e<2&&(ZV(n),n.schema=2),e<3&&($V(n),n.schema=3),e<4&&(ez(n),n.schema=4),e<5&&(tz(n),n.schema=5),e<6&&(Az(n),n.schema=6),e<7&&(nz(n),n.schema=7),e<8&&(n.schema=8),e<9&&(zM(n),n.schema=9),e<10&&(oz(n),n.schema=10),e<11&&(az(n),n.schema=11),e<12&&(zM(n),n.schema=12),e<13&&(lz(n),n.schema=13),e<14&&(uz(n),n.schema=14),e<15&&(dz(n),n.schema=15),e<16&&(hz(n),n.schema=16),e<17&&(xp(n,HM),vp(n,HM),n.schema=17),e<18&&(xp(n,VM),vp(n,VM),n.schema=18),e<19&&(JV(n),n.schema=19),e<20&&(fz(n),mz(n),n.schema=20),e<21&&(gz(n),yz(n),n.schema=21),e<22&&(jM(n),n.schema=22),e<23&&(vz(n),n.schema=23),e<24&&(xz(n),n.schema=24),(e<25||n.shared.videos===void 0)&&(cz(n),e<25&&(n.schema=25)),e<26&&(rz(n),n.schema=26),e<27&&(iz(n),n.schema=27),e<28&&(jM(n),n.schema=28),e<29&&(sz(n),n.schema=29),e<30&&(bz(n),n.schema=30))}var bp;(e=>e.emptyImage={data:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVQYV2NgYAAAAAMAAWgmWQ0AAAAASUVORK5CYII="})(bp||(bp={}));function Fi(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],d=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 h in u.attributes){if(!A.has(h))return console.error("THREE.BufferGeometryUtils: .mergeBufferGeometries() failed with geometry at index "+l+'. All geometries must have compatible attributes; make sure "'+h+'" attribute exists among all geometries, or in none of them.'),null;i[h]===void 0&&(i[h]=[]),i[h].push(u.attributes[h]),d++}if(d!==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 h in u.morphAttributes){if(!r.has(h))return console.error("THREE.BufferGeometryUtils: .mergeBufferGeometries() failed with geometry at index "+l+". .morphAttributes must be consistent throughout all geometries."),null;s[h]===void 0&&(s[h]=[]),s[h].push(u.morphAttributes[h])}if(a.userData.mergedUserData=a.userData.mergedUserData||[],a.userData.mergedUserData.push(u.userData),e){let h;if(t)h=u.index.count;else if(u.attributes.position!==void 0)h=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,h,l),c+=h}}if(t){let l=0,u=[];for(let d=0;d<n.length;++d){let h=n[d].index;for(let f=0;f<h.count;++f)u.push(h.getX(f)+l);l+=n[d].attributes.position.count}a.setIndex(u)}for(let l in i){let u=XM(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 d=0;d<u;++d){let h=[];for(let p=0;p<s[l].length;++p)h.push(s[l][p][d]);let f=XM(h);if(!f)return console.error("THREE.BufferGeometryUtils: .mergeBufferGeometries() failed while trying to merge the "+l+" morphAttribute."),null;a.morphAttributes[l].push(f)}}return a}function XM(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 Fe(i,t,A)}var wp;(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 We,move:new We,jump:new We}}))(wp||(wp={}));var QM=Math.pow(2,-24);var Lo=class{constructor(){}};function Jn(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 Hv(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 Wv(n,e){e.set(n)}function jv(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 ju(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 Ul(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 Tz(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 Fe(r,1));for(let i=0;i<t;i++)r[i]=i}}function Mz(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 qv(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,d=1/0,h=1/0,f=-1/0,p=-1/0,m=-1/0,g=r!==null;for(let y=e*6,x=(e+t)*6;y<x;y+=6){let b=n[y+0],w=n[y+1],T=b-w,M=b+w;T<i&&(i=T),M>a&&(a=M),g&&b<u&&(u=b),g&&b>f&&(f=b);let v=n[y+2],E=n[y+3],C=v-E,P=v+E;C<s&&(s=C),P>c&&(c=P),g&&v<d&&(d=v),g&&v>p&&(p=v);let D=n[y+4],L=n[y+5],I=D-L,B=D+L;I<o&&(o=I),B>l&&(l=B),g&&D<h&&(h=D),g&&D>m&&(m=D)}A[0]=i,A[1]=s,A[2]=o,A[3]=a,A[4]=c,A[5]=l,g&&(r[0]=u,r[1]=d,r[2]=h,r[3]=f,r[4]=p,r[5]=m)}function Ez(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 d=n[l+0];d<r&&(r=d),d>o&&(o=d);let h=n[l+2];h<i&&(i=h),h>a&&(a=h);let f=n[l+4];f<s&&(s=f),f>c&&(c=f)}A[0]=r,A[1]=i,A[2]=s,A[3]=o,A[4]=a,A[5]=c}function Cz(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 d=e[i*6+c*2+1];e[i*6+c*2+1]=e[s*6+c*2+1],e[s*6+c*2+1]=d}i++,s--}else return i}}var Gi=32,Pz=(n,e)=>n.candidate-e.candidate,Ps=new Array(Gi).fill().map(()=>({count:0,bounds:new Float32Array(6),rightCacheBounds:new Float32Array(6),leftCacheBounds:new Float32Array(6),candidate:0})),Sp=new Float32Array(6);function Dz(n,e,t,A,r,i){let s=-1,o=0;if(i===0)s=Hv(e),s!==-1&&(o=(e[s]+e[s+3])/2);else if(i===1)s=Hv(n),s!==-1&&(o=Iz(t,A,r,s));else if(i===2){let a=Ul(n),c=1.25*r,l=A*6,u=(A+r)*6;for(let d=0;d<3;d++){let h=e[d],m=(e[d+3]-h)/Gi;if(r<Gi/4){let g=[...Ps];g.length=r;let y=0;for(let b=l;b<u;b+=6,y++){let w=g[y];w.candidate=t[b+2*d],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;ju(b,t,T)}g.sort(Pz);let x=r;for(let b=0;b<x;b++){let w=g[b];for(;b+1<x&&g[b+1].candidate===w.candidate;)g.splice(b+1,1),x--}for(let b=l;b<u;b+=6){let w=t[b+2*d];for(let T=0;T<x;T++){let M=g[T];w>=M.candidate?ju(b,t,M.rightCacheBounds):(ju(b,t,M.leftCacheBounds),M.count++)}}for(let b=0;b<x;b++){let w=g[b],T=w.count,M=r-w.count,v=w.leftCacheBounds,E=w.rightCacheBounds,C=0;T!==0&&(C=Ul(v)/a);let P=0;M!==0&&(P=Ul(E)/a);let D=1+1.25*(C*T+P*M);D<c&&(s=d,c=D,o=w.candidate)}}else{for(let x=0;x<Gi;x++){let b=Ps[x];b.count=0,b.candidate=h+m+x*m;let w=b.bounds;for(let T=0;T<3;T++)w[T]=1/0,w[T+3]=-1/0}for(let x=l;x<u;x+=6){let T=~~((t[x+2*d]-h)/m);T>=Gi&&(T=Gi-1);let M=Ps[T];M.count++,ju(x,t,M.bounds)}let g=Ps[Gi-1];Wv(g.bounds,g.rightCacheBounds);for(let x=Gi-2;x>=0;x--){let b=Ps[x],w=Ps[x+1];jv(b.bounds,w.rightCacheBounds,b.rightCacheBounds)}let y=0;for(let x=0;x<Gi-1;x++){let b=Ps[x],w=b.count,T=b.bounds,v=Ps[x+1].rightCacheBounds;w!==0&&(y===0?Wv(T,Sp):jv(T,Sp,Sp)),y+=w;let E=0,C=0;y!==0&&(E=Ul(Sp)/a);let P=r-y;P!==0&&(C=Ul(v)/a);let D=1+1.25*(E*y+C*P);D<c&&(s=d,c=D,o=b.candidate)}}}}else console.warn(`MeshBVH: Invalid build strategy value ${i} used.`);return{axis:s,pos:o}}function Iz(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 Oz(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,d=r[l+0]*a+o,h=r[l+1]*a+o,f=r[l+2]*a+o;for(let p=0;p<3;p++){let m=A[d+p],g=A[h+p],y=A[f+p],x=m;g<x&&(x=g),y<x&&(x=y);let b=m;g>b&&(b=g),y>b&&(b=y);let w=(b-x)/2,T=p*2;s[u+T+0]=x+w,s[u+T+1]=w+(Math.abs(x)+w)*QM,x<e[p]&&(e[p]=x),b>e[p+3]&&(e[p+3]=b)}}return s}function Lz(n,e){function t(g){d&&d(g/h)}function A(g,y,x,b=null,w=0){if(!f&&w>=a&&(f=!0,c&&(console.warn(`MeshBVH: Max depth of ${a} reached when generating BVH. Consider increasing maxDepth.`),console.warn(n))),x<=l||w>=a)return t(y+x),g.offset=y,g.count=x,g;let T=Dz(g.boundingData,b,s,y,x,u);if(T.axis===-1)return t(y+x),g.offset=y,g.count=x,g;let M=Cz(o,s,y,x,T);if(M===y||M===y+x)t(y+x),g.offset=y,g.count=x;else{g.splitAxis=T.axis;let v=new Lo,E=y,C=M-y;g.left=v,v.boundingData=new Float32Array(6),qv(s,E,C,v.boundingData,i),A(v,E,C,i,w+1);let P=new Lo,D=M,L=x-C;g.right=P,P.boundingData=new Float32Array(6),qv(s,D,L,P.boundingData,i),A(P,D,L,i,w+1)}return g}Tz(n,e);let r=new Float32Array(6),i=new Float32Array(6),s=Oz(n,r),o=n.index.array,a=e.maxDepth,c=e.verbose,l=e.maxLeafTris,u=e.strategy,d=e.onProgress,h=n.index.count/3,f=!1,p=[],m=Mz(n);if(m.length===1){let g=m[0],y=new Lo;y.boundingData=r,Ez(s,g.offset,g.count,i),A(y,g.offset,g.count,i),p.push(y)}else for(let g of m){let y=new Lo;y.boundingData=new Float32Array(6),qv(s,g.offset,g.count,y.boundingData,i),A(y,g.offset,g.count,i),p.push(y)}return p}function JM(n,e){let t=Lz(n,e),A,r,i,s=[],o=e.useSharedArrayBuffer?SharedArrayBuffer:ArrayBuffer;for(let l=0;l<t.length;l++){let u=t[l],d=a(u),h=new o(32*d);A=new Float32Array(h),r=new Uint32Array(h),i=new Uint16Array(h),c(0,u),s.push(h)}return s;function a(l){return l.count?1:1+a(l.left)+a(l.right)}function c(l,u){let d=l/4,h=l/2,f=!!u.count,p=u.boundingData;for(let m=0;m<6;m++)A[d+m]=p[m];if(f){let m=u.offset,g=u.count;return r[d+6]=m,i[h+14]=g,i[h+15]=65535,l+32}else{let m=u.left,g=u.right,y=u.splitAxis,x;if(x=c(l+32,m),x/4>Math.pow(2,32))throw new Error("MeshBVH: Cannot store child pointer greater than 32 bits.");return r[d+6]=x/4,x=c(x,g),r[d+7]=y,x}}}var xn=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}};xn.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 Ote=function(){let n=new xn;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],d=i[l];if(n.setFromPoints(d,o),u.isSeparated(n))return!1}for(let l=0;l<3;l++){let u=c[l],d=a[l];if(n.setFromPoints(d,r),u.isSeparated(n))return!1}}}();var _z=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),d=l.dot(a),h=l.dot(l),f=t.dot(a),m=a.dot(a)*h-d*d,g,y;m!==0?g=(u*d-f*h)/m:g=0,y=(u+g*d)/h,s.x=g,s.y=y}}(),Yu=function(){let n=new G,e=new S,t=new S;return function(r,i,s,o){_z(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 d=e,h=t;if(r.closestPointToPoint(u,!0,e),i.closestPointToPoint(l,!0,t),d.distanceToSquared(u)<=h.distanceToSquared(l)){s.copy(d),o.copy(u);return}else{s.copy(l),o.copy(h);return}}}}(),$M=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 p=s.getPlane(t);if(Math.abs(p.distanceToPoint(a))<=o){let g=p.projectPoint(a,e);if(s.containsPoint(g))return!0}return!1}}();var Rz=1e-15;function kl(n){return Math.abs(n)<Rz}var bn=class extends Qt{constructor(...e){super(...e),this.isExtendedTriangle=!0,this.satAxes=new Array(4).fill().map(()=>new S),this.satBounds=new Array(4).fill().map(()=>new xn),this.points=[this.a,this.b,this.c],this.sphere=new dA,this.plane=new yA,this.needsUpdate=!0}intersectsSphere(e){return $M(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],d=s[2];u.subVectors(t,A),d.setFromPoints(u,r);let h=i[3],f=s[3];h.subVectors(A,e),f.setFromPoints(h,r),this.sphere.setFromPoints(this.points),this.plane.setFromNormalAndCoplanarPoint(o,e),this.needsUpdate=!1}};bn.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 d=0;d<3;d++){let h=(d+1)%3;t.start.copy(c[d]),t.end.copy(c[h]),Yu(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)}}();bn.prototype.intersectsTriangle=function(){let n=new bn,e=new Array(3),t=new Array(3),A=new xn,r=new xn,i=new S,s=new S,o=new S,a=new S,c=new vA,l=new vA,u=new vA;return function(h,f=null){this.needsUpdate&&this.update(),h.isExtendedTriangle?h.needsUpdate&&h.update():(n.copy(h),n.update(),h=n);let p=this.plane,m=h.plane;if(Math.abs(p.normal.dot(m.normal))>1-1e-10){let g=this.satBounds,y=this.satAxes;t[0]=h.a,t[1]=h.b,t[2]=h.c;for(let w=0;w<4;w++){let T=g[w],M=y[w];if(A.setFromPoints(M,t),T.isSeparated(A))return!1}let x=h.satBounds,b=h.satAxes;e[0]=this.a,e[1]=this.b,e[2]=this.c;for(let w=0;w<4;w++){let T=x[w],M=b[w];if(A.setFromPoints(M,e),T.isSeparated(A))return!1}for(let w=0;w<4;w++){let T=y[w];for(let M=0;M<4;M++){let v=b[M];if(i.crossVectors(T,v),A.setFromPoints(i,e),r.setFromPoints(i,t),A.isSeparated(r))return!1}}return f&&(console.warn("ExtendedTriangle.intersectsTriangle: Triangles are coplanar which does not support an output edge. Setting edge to 0, 0, 0."),f.start.set(0,0,0),f.end.set(0,0,0)),!0}else{let g=this.points,y=!1,x=0;for(let L=0;L<3;L++){let I=g[L],B=g[(L+1)%3];c.start.copy(I),c.end.copy(B),c.delta(s);let N=y?l.start:l.end,W=kl(m.distanceToPoint(I));if(kl(m.normal.dot(s))&&W){l.copy(c),x=2;break}if((m.intersectLine(c,N)||W)&&!kl(N.distanceTo(B))){if(x++,y)break;y=!0}}if(x===1&&this.containsPoint(l.start))return f&&(f.start.copy(l.start),f.end.copy(l.start)),!0;if(x!==2)return!1;let b=h.points,w=!1,T=0;for(let L=0;L<3;L++){let I=b[L],B=b[(L+1)%3];c.start.copy(I),c.end.copy(B),c.delta(o);let N=w?u.start:u.end,W=kl(p.distanceToPoint(I));if(kl(p.normal.dot(o))&&W){u.copy(c),T=2;break}if((p.intersectLine(c,N)||W)&&!kl(N.distanceTo(B))){if(T++,w)break;w=!0}}if(T===1&&this.containsPoint(u.start))return f&&(f.start.copy(u.start),f.end.copy(u.start)),!0;if(T!==2)return!1;if(l.delta(s),u.delta(o),s.dot(o)<0){let L=u.start;u.start=u.end,u.end=L}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:(f&&(a.subVectors(l.start,u.start),a.dot(s)>0?f.start.copy(l.start):f.start.copy(u.start),a.subVectors(l.end,u.end),a.dot(s)<0?f.end.copy(l.end):f.end.copy(u.end)),!0)}}}();bn.prototype.distanceToPoint=function(){let n=new S;return function(t){return this.closestPointToPoint(t,n),t.distanceTo(n)}}();bn.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 d,h=t[u],f=s[h];this.closestPointToPoint(f,n),d=f.distanceToSquared(n),d<l&&(l=d,o&&o.copy(n),a&&a.copy(f));let p=this[h];s.closestPointToPoint(p,n),d=p.distanceToSquared(n),d<l&&(l=d,o&&o.copy(p),a&&a.copy(n))}for(let u=0;u<3;u++){let d=t[u],h=t[(u+1)%3];A.set(this[d],this[h]);for(let f=0;f<3;f++){let p=t[f],m=t[(f+1)%3];r.set(s[p],s[m]),Yu(A,r,n,e);let g=n.distanceToSquared(e);g<l&&(l=g,o&&o.copy(n),a&&a.copy(e))}}return Math.sqrt(l)}}();var wn=class extends mt{constructor(...e){super(...e),this.isOrientedBox=!0,this.matrix=new de,this.invMatrix=new de,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 xn),this.alignedSatBounds=new Array(3).fill().map(()=>new xn),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}};wn.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 d=1*c|2*l|4*u,h=r[d];h.x=c?A.x:t.x,h.y=l?A.y:t.y,h.z=u?A.z:t.z,h.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],d=1<<c,h=r[d];l.subVectors(o,h),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}}();wn.prototype.intersectsBox=function(){let n=new xn;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}}();wn.prototype.intersectsTriangle=function(){let n=new bn,e=new Array(3),t=new xn,A=new xn,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 d=0;d<3;d++){let h=o[d],f=a[d];if(t.setFromPoints(f,e),h.isSeparated(t))return!1}let c=s.satBounds,l=s.satAxes,u=this.points;for(let d=0;d<3;d++){let h=c[d],f=l[d];if(t.setFromPoints(f,u),h.isSeparated(t))return!1}for(let d=0;d<3;d++){let h=a[d];for(let f=0;f<4;f++){let p=l[f];if(r.crossVectors(h,p),t.setFromPoints(r,e),A.setFromPoints(r,u),t.isSeparated(A))return!1}}return!0}}();wn.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}}();wn.prototype.distanceToPoint=function(){let n=new S;return function(t){return this.closestPointToPoint(t,n),t.distanceTo(n)}}();wn.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,d=s.max,h=this.points,f=1/0;for(let m=0;m<8;m++){let g=h[m];r.copy(g).clamp(u,d);let y=g.distanceToSquared(r);if(y<f&&(f=y,a&&a.copy(g),c&&c.copy(r),y<l))return Math.sqrt(y)}let p=0;for(let m=0;m<3;m++)for(let g=0;g<=1;g++)for(let y=0;y<=1;y++){let x=(m+1)%3,b=(m+2)%3,w=g<<x|y<<b,T=1<<m|g<<x|y<<b,M=h[w],v=h[T];e[p].set(M,v);let C=n[m],P=n[x],D=n[b],L=t[p],I=L.start,B=L.end;I[C]=u[C],I[P]=g?u[P]:d[P],I[D]=y?u[D]:d[P],B[C]=d[C],B[P]=g?u[P]:d[P],B[D]=y?u[D]:d[P],p++}for(let m=0;m<=1;m++)for(let g=0;g<=1;g++)for(let y=0;y<=1;y++){r.x=m?d.x:u.x,r.y=g?d.y:u.y,r.z=y?d.z:u.z,this.closestPointToPoint(r,A);let x=r.distanceToSquared(A);if(x<f&&(f=x,a&&a.copy(A),c&&c.copy(r),x<l))return Math.sqrt(x)}for(let m=0;m<12;m++){let g=e[m];for(let y=0;y<12;y++){let x=t[y];Yu(g,x,A,r);let b=A.distanceToSquared(r);if(b<f&&(f=b,a&&a.copy(A),c&&c.copy(r),b<l))return Math.sqrt(b)}}return Math.sqrt(f)}}();var Mp=new S,Ep=new S,Cp=new S,eE=new G,tE=new G,AE=new G,nE=new S;function Bz(n,e,t,A,r,i){let s;return i===CA?s=n.intersectTriangle(A,t,e,!0,r):s=n.intersectTriangle(e,t,A,i!==Ln,r),s===null?null:{distance:n.origin.distanceTo(r),point:r.clone()}}function Nz(n,e,t,A,r,i,s){Mp.fromBufferAttribute(e,A),Ep.fromBufferAttribute(e,r),Cp.fromBufferAttribute(e,i);let o=Bz(n,Mp,Ep,Cp,nE,s);if(o){t&&(eE.fromBufferAttribute(t,A),tE.fromBufferAttribute(t,r),AE.fromBufferAttribute(t,i),o.uv=Qt.getUV(nE,Mp,Ep,Cp,eE,tE,AE,new G));let a={a:A,b:r,c:i,normal:new S,materialIndex:0};Qt.getNormal(Mp,Ep,Cp,a.normal),o.face=a,o.faceIndex=A}return o}function Qv(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=Nz(t,n.attributes.position,n.attributes.uv,s,o,a,e);return c?(c.faceIndex=A,r&&r.push(c),c):null}function rE(n,e,t,A,r,i){for(let s=A,o=A+r;s<o;s++)Qv(n,e,t,s,i)}function iE(n,e,t,A,r){let i=1/0,s=null;for(let o=A,a=A+r;o<a;o++){let c=Qv(n,e,t,o);c&&c.distance<i&&(s=c,i=c.distance)}return s}function Kv(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 $n(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 Zv(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($n(s,c*3,o,a),s.needsUpdate=!0,A(s,c,r,i))return!0;return!1}var Vl=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 Ui(n,e){return e[n+15]===65535}function _o(n,e){return e[n+6]}function zl(n,e){return e[n+14]}function Hl(n){return n+8}function Wl(n,e){return e[n+6]}function sE(n,e){return e[n+7]}var jl=new mt,Dp=new S,Gz=["x","y","z"];function Ip(n,e,t,A,r){let i=n*2,s=Yl,o=Ds,a=Is;if(Ui(i,o)){let l=_o(n,a),u=zl(i,o);rE(e,t,A,l,u,r)}else{let l=Hl(n);Lp(l,s,A,Dp)&&Ip(l,e,t,A,r);let u=Wl(n,a);Lp(u,s,A,Dp)&&Ip(u,e,t,A,r)}}function Op(n,e,t,A){let r=n*2,i=Yl,s=Ds,o=Is;if(Ui(r,s)){let c=_o(n,o),l=zl(r,s);return iE(e,t,A,c,l)}else{let c=sE(n,o),l=Gz[c],d=A.direction[l]>=0,h,f;d?(h=Hl(n),f=Wl(n,o)):(h=Wl(n,o),f=Hl(n));let m=Lp(h,i,A,Dp)?Op(h,e,t,A):null;if(m){let x=m.point[l];if(d?x<=i[f+c]:x>=i[f+c+3])return m}let y=Lp(f,i,A,Dp)?Op(f,e,t,A):null;return m&&y?m.distance<=y.distance?m:y:m||y||null}}var oE=function(){let n,e,t=[],A=new Vl(()=>new mt);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 d(x){let b=x*2,w=Ds,T=Is;for(;!Ui(b,w);)x=Hl(x),b=x*2;return _o(x,T)}function h(x){let b=x*2,w=Ds,T=Is;for(;!Ui(b,w);)x=Wl(x,T),b=x*2;return _o(x,T)+zl(b,w)}let f=i*2,p=Yl,m=Ds,g=Is;if(Ui(f,m)){let x=_o(i,g),b=zl(f,m);return Jn(i,p,n),a(x,b,!1,u,l+i,n)}else{let x=Hl(i),b=Wl(i,g),w=x,T=b,M,v,E,C;if(c&&(E=n,C=e,Jn(w,p,E),Jn(T,p,C),M=c(E),v=c(C),v<M)){w=b,T=x;let W=M;M=v,v=W,E=C}E||(E=n,Jn(w,p,E));let P=Ui(w*2,m),D=o(E,P,M,u+1,l+w),L;if(D===2){let W=d(w),F=h(w)-W;L=a(W,F,!0,u+1,l+w,E)}else L=D&&r(w,s,o,a,c,l,u+1);if(L)return!0;C=e,Jn(T,p,C);let I=Ui(T*2,m),B=o(C,I,v,u+1,l+T),N;if(B===2){let W=d(T),F=h(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}}}(),aE=function(){let n=new bn,e=new bn,t=new de,A=new wn,r=new wn;return function i(s,o,a,c,l=null){let u=s*2,d=Yl,h=Ds,f=Is;if(l===null&&(a.boundingBox||a.computeBoundingBox(),A.set(a.boundingBox.min,a.boundingBox.max,c),l=A),Ui(u,h)){let m=o,g=m.index,y=m.attributes.position,x=a.index,b=a.attributes.position,w=_o(s,f),T=zl(u,h);if(t.copy(c).invert(),a.boundsTree)return Jn(s,d,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($n(e,E,g,y),e.needsUpdate=!0,v.intersectsTriangle(e))return!0;return!1}});for(let M=w*3,v=T+w*3;M<v;M+=3){$n(n,M,g,y),n.a.applyMatrix4(t),n.b.applyMatrix4(t),n.c.applyMatrix4(t),n.needsUpdate=!0;for(let E=0,C=x.count;E<C;E+=3)if($n(e,E,x,b),e.needsUpdate=!0,n.intersectsTriangle(e))return!0}}else{let m=s+8,g=f[s+6];return Jn(m,d,jl),!!(l.intersectsBox(jl)&&i(m,o,a,c,l)||(Jn(g,d,jl),l.intersectsBox(jl)&&i(g,o,a,c,l)))}}}();function Lp(n,e,t,A){return Jn(n,e,jl),t.intersectBox(jl,A)}var Jv=[],Pp,Yl,Ds,Is;function ql(n){Pp&&Jv.push(Pp),Pp=n,Yl=new Float32Array(n),Ds=new Uint16Array(n),Is=new Uint32Array(n)}function qu(){Pp=null,Yl=null,Ds=null,Is=null,Jv.length&&ql(Jv.pop())}var $v=Symbol("skip tree generation"),e0=new mt,t0=new mt,Xl=new de,Ro=new wn,Xu=new wn,Qu=new S,_p=new S,Uz=new S,kz=new S,Vz=new S,lE=new mt,Kr=new Vl(()=>new bn),Jt=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."),Jt.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."),Jt.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 Jt(t,{...A,[$v]:!0});if(s._roots=i,A.setIndex){let o=t.getIndex();if(o===null){let a=new Fe(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,[$v]:!1},t),t.useSharedArrayBuffer&&typeof SharedArrayBuffer>"u")throw new Error("MeshBVH: SharedArrayBuffer is not available.");this._roots=null,t[$v]||(this._roots=JM(e,t),!e.boundingBox&&t.setBoundingBox&&(e.boundingBox=this.getBoundingBox(new mt))),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,d=0,h=this._roots;for(let p=0,m=h.length;p<m;p++)a=h[p],c=new Uint32Array(a),l=new Uint16Array(a),u=new Float32Array(a),f(0,d),d+=a.byteLength;function f(p,m,g=!1){let y=p*2;if(l[y+15]===65535){let b=c[p+6],w=l[y+14],T=1/0,M=1/0,v=1/0,E=-1/0,C=-1/0,P=-1/0;for(let D=3*b,L=3*(b+w);D<L;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[p+0]!==T||u[p+1]!==M||u[p+2]!==v||u[p+3]!==E||u[p+4]!==C||u[p+5]!==P?(u[p+0]=T,u[p+1]=M,u[p+2]=v,u[p+3]=E,u[p+4]=C,u[p+5]=P,!0):!1}else{let b=p+8,w=c[p+6],T=b+m,M=w+m,v=g,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,L=!1;P&&(L=f(b,m,v));let I=!1;D&&(I=f(w,m,v));let B=L||I;if(B)for(let N=0;N<3;N++){let W=b+N,X=w+N,F=u[W],U=u[W+3],Q=u[X],z=u[X+3];u[p+N]=F<Q?F:Q,u[p+N+3]=U>z?U: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],d=i[c+14];e(a,l,new Float32Array(A,o*4,6),u,d)}else{let u=o+32/4,d=r[o+6],h=r[o+7];e(a,l,new Float32Array(A,o*4,6),h)||(s(u,a+1),s(d,a+1))}}}raycast(e,t=Ur){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 d=o?t[a[l].materialIndex].side:c,h=i.length;if(ql(A[l]),Ip(0,r,d,e,i),qu(),o){let f=a[l].materialIndex;for(let p=h,m=i.length;p<m;p++)i[p].face.materialIndex=f}}return i}raycastFirst(e,t=Ur){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 d=s?t[a[l].materialIndex].side:c;ql(A[l]);let h=Op(0,r,d,e);qu(),h!=null&&(o==null||h.distance<o.distance)&&(o=h,s&&(h.face.materialIndex=a[l].materialIndex))}return o}intersectsGeometry(e,t){let A=this.geometry,r=!1;for(let i of this._roots)if(ql(i),r=aE(0,A,e,t),qu(),r)break;return r}shapecast(e,t,A){let r=this.geometry;if(e instanceof Function){if(t){let d=t;t=(h,f,p,m)=>{let g=f*3;return d(h,g,g+1,g+2,p,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=Kr.getPrimitive(),{boundsTraverseOrder:s,intersectsBounds:o,intersectsRange:a,intersectsTriangle:c}=e;if(a&&c){let d=a;a=(h,f,p,m,g)=>d(h,f,p,m,g)?!0:Zv(h,f,r,c,p,m,i)}else a||(c?a=(d,h,f,p)=>Zv(d,h,r,c,f,p,i):a=(d,h,f)=>f);let l=!1,u=0;for(let d of this._roots){if(ql(d),l=oE(0,r,o,a,s,u),qu(),l)break;u+=d.byteLength}return Kr.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;Xl.copy(t).invert();let l=Kr.getPrimitive(),u=Kr.getPrimitive();if(i){let h=function(f,p,m,g,y,x,b,w){for(let T=m,M=m+g;T<M;T++){$n(u,T*3,a,c),u.a.applyMatrix4(t),u.b.applyMatrix4(t),u.c.applyMatrix4(t),u.needsUpdate=!0;for(let v=f,E=f+p;v<E;v++)if($n(l,v*3,s,o),l.needsUpdate=!0,i(l,u,v,T,y,x,b,w))return!0}return!1};if(r){let f=r;r=function(p,m,g,y,x,b,w,T){return f(p,m,g,y,x,b,w,T)?!0:h(p,m,g,y,x,b,w,T)}}else r=h}e.getBoundingBox(t0),t0.applyMatrix4(t);let d=this.shapecast({intersectsBounds:h=>t0.intersectsBox(h),intersectsRange:(h,f,p,m,g,y)=>(e0.copy(y),e0.applyMatrix4(Xl),e.shapecast({intersectsBounds:x=>e0.intersectsBox(x),intersectsRange:(x,b,w,T,M)=>r(h,f,x,b,m,g,T,M)}))});return Kr.releasePrimitive(l),Kr.releasePrimitive(u),d}intersectsBox(e,t){return Ro.set(e.min,e.max,t),Ro.needsUpdate=!0,this.shapecast({intersectsBounds:A=>Ro.intersectsBox(A),intersectsTriangle:A=>Ro.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(),Ro.set(e.boundingBox.min,e.boundingBox.max,t),Ro.needsUpdate=!0;let o=this.geometry,a=o.attributes.position,c=o.index,l=e.attributes.position,u=e.index,d=Kr.getPrimitive(),h=Kr.getPrimitive(),f=_p,p=Uz,m=null,g=null;r&&(m=kz,g=Vz);let y=1/0,x=null,b=null;return Xl.copy(t).invert(),Xu.matrix.copy(Xl),this.shapecast({boundsTraverseOrder:w=>Ro.distanceToBox(w),intersectsBounds:(w,T,M)=>M<y&&M<s?(T&&(Xu.min.copy(w.min),Xu.max.copy(w.max),Xu.needsUpdate=!0),!0):!1,intersectsRange:(w,T)=>{if(e.boundsTree)return e.boundsTree.shapecast({boundsTraverseOrder:M=>Xu.distanceToBox(M),intersectsBounds:(M,v,E)=>E<y&&E<s,intersectsRange:(M,v)=>{for(let E=M*3,C=(M+v)*3;E<C;E+=3){$n(h,E,u,l),h.a.applyMatrix4(t),h.b.applyMatrix4(t),h.c.applyMatrix4(t),h.needsUpdate=!0;for(let P=w*3,D=(w+T)*3;P<D;P+=3){$n(d,P,c,a),d.needsUpdate=!0;let L=d.distanceToTriangle(h,f,m);if(L<y&&(p.copy(f),g&&g.copy(m),y=L,x=P/3,b=E/3),L<i)return!0}}}});{let M=u?u.count:l.count;for(let v=0,E=M;v<E;v+=3){$n(h,v,u,l),h.a.applyMatrix4(t),h.b.applyMatrix4(t),h.c.applyMatrix4(t),h.needsUpdate=!0;for(let C=w*3,P=(w+T)*3;C<P;C+=3){$n(d,C,c,a),d.needsUpdate=!0;let D=d.distanceToTriangle(h,f,m);if(D<y&&(p.copy(f),g&&g.copy(m),y=D,x=C/3,b=v/3),D<i)return!0}}}}}),Kr.releasePrimitive(d),Kr.releasePrimitive(h),y===1/0?null:(A.point?A.point.copy(p):A.point=p.clone(),A.distance=y,A.faceIndex=x,r&&(r.point?r.point.copy(g):r.point=g.clone(),r.point.applyMatrix4(Xl),p.applyMatrix4(Xl),r.distance=p.sub(r.point).length(),r.faceIndex=b),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=>(Qu.copy(e).clamp(l.min,l.max),Qu.distanceToSquared(e)),intersectsBounds:(l,u,d)=>d<o&&d<s,intersectsTriangle:(l,u)=>{l.closestPointToPoint(e,Qu);let d=e.distanceToSquared(Qu);return d<o&&(_p.copy(Qu),o=d,a=u),d<i}}),o===1/0)return null;let c=Math.sqrt(o);return t.point?t.point.copy(_p):t.point=_p.clone(),t.distance=c,t.faceIndex=a,t}getBoundingBox(e){return e.makeEmpty(),this._roots.forEach(A=>{Jn(0,new Float32Array(A),lE),e.union(lE)}),e}},cE=Jt.prototype.raycast;Jt.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 cE.call(this,A,e.material).forEach(s=>{s=Kv(s,e,t),s&&r.push(s)}),r}else return cE.apply(this,n)};var uE=Jt.prototype.raycastFirst;Jt.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 Kv(uE.call(this,A,e.material),e,t)}else return uE.apply(this,n)};var dE=Jt.prototype.closestPointToPoint;Jt.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,dE.apply(this,n),e&&e.copy(t.point),t.distance}else return dE.apply(this,n)};var hE=Jt.prototype.closestPointToGeometry;Jt.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,hE.apply(this,n),e&&e.copy(A.point),t&&t.copy(r.point).applyMatrix4(i),A.distance}else return hE.apply(this,n)};var fE=Jt.prototype.refit;Jt.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)),fE.call(this,A)}else fE.apply(this,n)};["intersectsGeometry","shapecast","intersectsBox","intersectsSphere"].forEach(n=>{let e=Jt.prototype[n];Jt.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 Sc=Ki(mE());var zz=.5*(Math.sqrt(3)-1),Ku=(3-Math.sqrt(3))/6,Hz=1/3,Zr=1/6,MAe=(Math.sqrt(5)-1)/4,EAe=(5-Math.sqrt(5))/20,Zu=n=>Math.floor(n)|0,gE=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]),n0=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 Rp(n=Math.random){let e=vE(n),t=new Float64Array(e).map(r=>gE[r%12*2]),A=new Float64Array(e).map(r=>gE[r%12*2+1]);return function(i,s){let o=0,a=0,c=0,l=(i+s)*zz,u=Zu(i+l),d=Zu(s+l),h=(u+d)*Ku,f=u-h,p=d-h,m=i-f,g=s-p,y,x;m>g?(y=1,x=0):(y=0,x=1);let b=m-y+Ku,w=g-x+Ku,T=m-1+2*Ku,M=g-1+2*Ku,v=u&255,E=d&255,C=.5-m*m-g*g;if(C>=0){let L=v+e[E],I=t[L],B=A[L];C*=C,o=C*C*(I*m+B*g)}let P=.5-b*b-w*w;if(P>=0){let L=v+y+e[E+x],I=t[L],B=A[L];P*=P,a=P*P*(I*b+B*w)}let D=.5-T*T-M*M;if(D>=0){let L=v+1+e[E+1],I=t[L],B=A[L];D*=D,c=D*D*(I*T+B*M)}return 70*(o+a+c)}}function yE(n=Math.random){let e=vE(n),t=new Float64Array(e).map(i=>n0[i%12*3]),A=new Float64Array(e).map(i=>n0[i%12*3+1]),r=new Float64Array(e).map(i=>n0[i%12*3+2]);return function(s,o,a){let c,l,u,d,h=(s+o+a)*Hz,f=Zu(s+h),p=Zu(o+h),m=Zu(a+h),g=(f+p+m)*Zr,y=f-g,x=p-g,b=m-g,w=s-y,T=o-x,M=a-b,v,E,C,P,D,L;w>=T?T>=M?(v=1,E=0,C=0,P=1,D=1,L=0):w>=M?(v=1,E=0,C=0,P=1,D=0,L=1):(v=0,E=0,C=1,P=1,D=0,L=1):T<M?(v=0,E=0,C=1,P=0,D=1,L=1):w<M?(v=0,E=1,C=0,P=0,D=1,L=1):(v=0,E=1,C=0,P=1,D=1,L=0);let I=w-v+Zr,B=T-E+Zr,N=M-C+Zr,W=w-P+2*Zr,X=T-D+2*Zr,F=M-L+2*Zr,U=w-1+3*Zr,Q=T-1+3*Zr,z=M-1+3*Zr,k=f&255,j=p&255,q=m&255,V=.6-w*w-T*T-M*M;if(V<0)c=0;else{let Y=k+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=k+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=k+P+e[j+D+e[q+L]];Ae*=Ae,u=Ae*Ae*(t[Y]*W+A[Y]*X+r[Y]*F)}let Z=.6-U*U-Q*Q-z*z;if(Z<0)d=0;else{let Y=k+1+e[j+1+e[q+1]];Z*=Z,d=Z*Z*(t[Y]*U+A[Y]*Q+r[Y]*z)}return 32*(c+l+u+d)}}function vE(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 Qt,Bp=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}};var bE=Ki(r0()),Wz=new de,jz=new de,Yz=new de,Ju;(e=>{function n(t){return t&&t.__isSPEObject}e.is=n})(Ju||(Ju={}));var Ql=n=>class extends n{constructor(){super(...arguments);this.hiddenMatrix=new de;this.matrixWorldRigid=new de;this.shearScale=new de;this.shearScaleInv=new de}get __isSPEObject(){return!0}isDescendantOf(A){A instanceof dt&&(A=A.uuid);let r=this;for(;r.parent;){if(r.parent.uuid===A)return!0;r=r.parent}return!1}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)}traverseObject(A,r=0){if(A(this,r)!==!0)for(let s of this.children)Ju.is(s)&&s.traverseObject(A,r+1)}updateMatrixWorldSVD(){let A=this.matrixWorld.elements,r=[[A[0],A[4],A[8]],[A[1],A[5],A[9]],[A[2],A[6],A[10]]],{u:i,v:s,q:o}=(0,bE.SVD)(r),a=Wz.set(i[0][0],i[0][1],i[0][2],0,i[1][0],i[1][1],i[1][2],0,i[2][0],i[2][1],i[2][2],0,0,0,0,1),c=jz.set(s[0][0],s[0][1],s[0][2],0,s[1][0],s[1][1],s[1][2],0,s[2][0],s[2][1],s[2][2],0,0,0,0,1),l=Yz.copy(c).transpose();this.shearScale.makeScale(o[0],o[1],o[2]).multiply(l).premultiply(c),this.shearScaleInv.copy(this.shearScale).invert(),this.matrixWorldRigid.multiplyMatrices(a,l).copyPosition(this.matrixWorld),o.every(u=>Math.abs(o[0]-u)<.01)?this.hasNonUniformScale=!1:this.hasNonUniformScale=!0}attach(A,r){this.updateWorldMatrix(!0,!1);let i=new de().copy(this.matrixWorld).invert();return A.parent!==null&&(A.parent.updateWorldMatrix(!0,!1),i.multiply(A.parent.matrixWorld)),"hiddenMatrix"in A&&A.hiddenMatrix instanceof de?A.hiddenMatrix.premultiply(i):A.applyMatrix4(i),A.updateWorldMatrix(!1,!1),this.add(A),r!==void 0&&(this.children.pop(),this.children.splice(r,0,A)),this}};var i0=class extends Ql(dt){},qz=n=>n.type==="Mesh",er=class extends i0{constructor(t){super();this.object=t;this.matrixAutoUpdate=!1}expand(){let t=0,A=this.object.entityChildren(t);for(;A;){let r=this.children[t];r?.object!==A&&(r&&this.remove(r),r=new er(A),this.add(r),r.matrixAutoUpdate=!1,r.matrix=A.matrix,r.hiddenMatrix=A.hiddenMatrix),r.expand(),t+=1,A=this.object.entityChildren(t)}for(;this.children.length>t;)this.remove(this.children[t])}get visible(){return this.object.visible||this.object.dataPatched.visible&&this.object.dataPatched.cloner?.hideBase===!0}set visible(t){}get castShadow(){return this.object.castShadow}set castShadow(t){}get receiveShadow(){return this.object.receiveShadow}set receiveShadow(t){}get isMesh(){return qz(this.object)}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 Bo=new S,No=new S,Kl=new de,SE=[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)],Xz=[[0,3],[1,2],[5,6],[4,7],[0,1],[3,2],[7,6],[4,5],[0,4],[1,5],[2,6],[3,7]],Qz=[[0,2],[7,5],[4,1],[3,6],[4,3],[1,6]],wE=(n,e,t)=>{n.updateEntityBoxSize(Bo,No),Kl.copy(e).multiply(n.matrixWorld),No.x===0&&No.y===0&&No.z===0?t.push(new S(Bo.x,Bo.y,Bo.z).applyMatrix4(Kl)):SE.forEach(A=>{t.push(A.clone().multiply(No).add(Bo).applyMatrix4(Kl))})},$u=class extends mt{constructor(){super(...arguments);this.matrix=new de;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 de().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&&wE(s,A,i)}):wE(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(Kl.copy(this.matrix).setPosition(0,0,0)),t}computeVertices(){this.getSize(No).multiplyScalar(.5),this.getCenter(Bo),Kl.copy(this.matrix).setPosition(Bo),this.vertices=SE.map(t=>t.clone().multiply(No).applyMatrix4(Kl))}computeEdges(){this.vertices.length>0&&this.computeVertices(),this.edges=Xz.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=Qz.map(([t,A])=>this.vertices[t].clone().add(this.vertices[A]).multiplyScalar(.5))}};var xr={Cloner:()=>{},changeEntityProptotype:()=>{},createEntity:()=>{}};var Ut;(e=>{function n(t){return t&&t.__isEntity}e.is=n})(Ut||(Ut={}));var cn=n=>Ut.is(n),Fp=n=>class extends Ql(n){constructor(){super(...arguments);this.raycastLock=!1;this.scaleLock=!1;this.disposed=!1;this.stateSelection=null;this.instances=[];this.currentState=null;this.currentTransitionAction=null;this._singleBBox=new $u;this._recursiveBBox=new $u;this.singleBBoxNeedsUpdate=!0;this.recursiveBBoxNeedsUpdate=!0}get __isEntity(){return!0}entityChildren(A){let r=this.children[A];if(Ut.is(r))return r}get isConcreteEntity(){return typeof this.identity=="string"}get isVirtualEntity(){return typeof this.identity!="string"}get isInstanceRoot(){return this.isConcreteEntity&&this.data.type==="Instance"}nearestInstanceSelfOrParent(){let A=this;for(;A.data.type!=="Instance";){let r=A.parent;if(Ut.is(r))A=r;else return}return A}forInstancesRec(A){this.instances.forEach(r=>{r.disposed||A(r),r.forInstancesRec(A)})}super_Entity(A,r){typeof A=="string"&&(this.uuid=A),this.identity=A,this.data=r,this.matrixAutoUpdate=!1,this.dataPatched=this.data}changeSelectedState(A,r,i=!1){if(!(this.data.states.length===0&&!i)){for(let s of this.data.states)Bi.toOps(this.data,s.data).forEach(a=>{let c=Hf.replaceProps(a,this.data);this.updateByPatchedOp(c,this.data,r)});if(A!==null){let s=this.data.states.data(A);s&&(this.dataPatched=Bi.patch(this.data,s),Bi.toOps(this.data,s).forEach(a=>{this.updateByPatchedOp(a,this.dataPatched,r)}))}else this.dataPatched=this.data;i&&this.updateTransformState(this.dataPatched),this.stateSelection=A}}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}updateEntityBoxSize(A,r){A.setScalar(0),r.setScalar(0)}resetBBoxNeedsUpdateSelf(){this.singleBBoxNeedsUpdate=!0,this.recursiveBBoxNeedsUpdate=!0}resetBBoxNeedsUpdate(){this.resetBBoxNeedsUpdateSelf(),this.traverseAncestors(A=>{cn(A)&&A.resetBBoxNeedsUpdateSelf()}),this.traverseEntity(A=>{A.resetBBoxNeedsUpdateSelf()})}find(A){let r;return this.traverseEntity(i=>{i.uuid===A&&(r=i)}),r}traverseSortNextHelper(){let A=this.parent;if(A){let r=A.children,i=r.indexOf(this)+1;if(Ut.is(r[i]))return r[i];if(Ut.is(A))return A.traverseSortNextHelper()}}sortNext(){let A=this.children;return this.children.length>0&&Ut.is(this.children[0])?A[0]:this.traverseSortNextHelper()}goUp(A){let r=this;for(;A>0&&r!==null;)r=r.parent,A-=1;return r}hasAnccestorOrSelf(A){return this===A||this.hasAnccestor(A)}hasAnccestor(A){let r=this.parent;for(;r;){if(A===r)return!0;r=r.parent}return!1}countToAccestor(A){let r=0,i=this;for(;i!==A;){if(i===null)return-1;i=i.parent,r+=1}return r}forEachEntity(A){for(let r of this.children)cn(r)&&A(r)}traverseEntityAncestors(A){this.traverseAncestors(r=>{Ut.is(r)&&A(r)})}traverseEntity(A,r=0){if(A(this,r)!==!0)for(let s of this.children)cn(s)&&s.traverseEntity(A,r+1)}traverseVisibleEntity(A){A(this);for(let r of this.children)cn(r)&&r.visible&&r.traverseVisibleEntity(A)}updateMatrix(){super.updateMatrix(),this.cloner&&this.cloner.onObjUpdateMatrix(),this.dispatchEvent({type:"updateMatrix"})}copy(A,r=!0){return super.copy(A,!1),this.raycastLock=A.raycastLock,this.scaleLock=A.scaleLock,this.hiddenMatrix.copy(A.hiddenMatrix),this}hasEntityChild(){return this.children.some(A=>cn(A))}isAncestorOf(A){if(this.uuid===A)return!1;let r=!1;return this.traverseEntity(i=>{i.uuid===A&&(r=!0)}),r}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 gl(r,A)}updateTransformState(A){let r=!1;return A.position&&(this.position.fromArray(A.position),r=!0),A.rotation&&(this.rotation.fromArray(A.rotation),r=!0),A.scale&&(r=!0,this.scale.fromArray(A.scale)),A.hiddenMatrix!==void 0&&(r=!0,this.hiddenMatrix.fromArray(A.hiddenMatrix??Ms.identity)),r&&(this.updateMatrix(),this.resetBBoxNeedsUpdate(),this.invalidateClonerTransform(this),this.traverseEntityAncestors(i=>{i.invalidateClonerTransform(this)})),A.position&&A.rotation&&A.scale&&A.hiddenMatrix!==void 0&&this.updateWorldMatrix(!1,!0),r}dispose(){this.disposed=!0,this.cloner&&(this.cloner.removeFromParent(),this.cloner=void 0)}disposeChildrenRecursively(){for(let A of this.children)Ut.is(A)&&A.disposeRecursively()}disposeRecursively(){this.dispose(),this.children.forEach(A=>{Ut.is(A)&&A.disposeRecursively()})}toState(A=[]){let r={name:this.name,visible:this.visible,raycastLock:this.raycastLock,...this.toObjectTransformState(A)};return gl(r,A)}updateByOp(A,r,i,s){let o=this.data;this.data=r;let a=A,c=zr(A.path,["states","*"]);if(c!==null){if(A.type===0){let[l]=c;if(this?.stateSelection===l){let u={...A.props};if(Object.values(A.props).some(d=>d===void 0)){let d=this.data;if(d!==void 0){let h=Gn.zoom(d,A.path.slice(2));if(h)for(let f in A.props)A.props[f]===void 0&&f in h&&(u[f]=h[f])}}a={...A,props:u,path:A.path.slice(2)}}}}else if(A.type===0){let l=this.stateSelection?this.data.states.data(this.stateSelection):void 0;if(l!==void 0){if(A.props.name!==void 0&&l.name){let{name:d,...h}=l;l=h}if(A.props.material!==void 0&&"material"in l){let{material:d,...h}=l;l=h}let u=Gn.removeOverridden(A.path,A.props,l);a={...A,props:u}}}if(this.updateByPatchedOpBase(a,Bi.patch(this.data,this.stateSelection?this.data.states.data(this.stateSelection):void 0),i),zr(A.path,["overrides"])){let l=[],u=[...A.path];for(l.push(u[1]),u.splice(0,2);u.length>0&&u[0]==="descendants";)l.push(u[1]),u.splice(0,2);if(l[l.length-1]===void 0){if(A.type===0)for(let d of Object.keys(A.props)){l[l.length-1]=d;let h=i.scene.findInstance([this.uuid,...l]);h&&(h.overrideData=A.props[d],h.updateState(_i.apply(h.component.data,h.overrideData),i))}}else{let d=i.scene.findInstance([this.uuid,...l]);if(d){let h=Gn.zoom(d.component.data,u);if(A={...A,path:u},A.type===0){let f=A.props;if(h)for(let[p,m]of Object.entries(A.props))m===void 0&&(f===A.props&&(f={...A.props}),f[p]=h[p]);A={...A,props:f}}d.overrideData=Ll.resolve(r.overrides,l),d.updateByOp(A,HA.applySimple(d.data,A),i,!1)}}}else if(this.instances.length>0){let l;if(A.path.length===0&&A.type===0){let u;for(let d of Cs.rootOverrideProps)d in A.props&&(u===void 0&&(u={}),u[d]=A.props[d]);u&&(l={...A,props:u})}else for(let u of Cs.rootOverrideProps)if(zr(A.path,[u])){l=A;break}l!==void 0&&this.instances.forEach(u=>{if(u.isInstanceRoot){let d=_i.filterOp(u.overrideData,l);d&&u.updateByOp(d,HA.applySimple(u.data,d),i,!0)}}),this.instances.forEach(u=>{if(!u.isInstanceRoot){let d=_i.filterOp(u.overrideData,A);if(d){let h;o===u.data&&A===d?h=r:h=HA.applySimple(u.data,d),u.updateByOp(d,h,i,!0)}}})}}updateByPatchedOpBase(A,r,i){if(this.dataPatched=r,A.path.length===0&&A.type===0)A.props.type!==void 0&&!yr.is(A.props.type)&&xr.changeEntityProptotype(this,r,i);else if(A.path.length===1&&A.path[0]==="geometry"&&A.type===0&&"type"in A.props){xr.changeEntityProptotype(this,r,i);for(let s of this.children)Ut.is(s)&&s.updateVisible()}this.updateByPatchedOp(A,r,i)}updateByPatchedOp(A,r,i){if(A.path.length===0&&A.type===0&&this.updateState(A.props,i),zr(A.path,["cloner"])!==null){let s=HA.drop(A,1);s.path.length===0&&s.type===0&&s.props.disabled===!0?this.setFromClonerState(null,i):this.cloner?this.cloner.updateState(r.cloner,i.scene):(this.setFromClonerState(r.cloner,i),this.expandCloner(i.scene)),this.updateVisible()}}updateVisible(){this.visible=this.dataPatched.visible&&((this.dataPatched.cloner?.disabled??!0)||this.dataPatched.cloner?.hideBase!==!0)}updateState_Entity(A,r){A.name!==void 0&&(this.name=A.name),A.raycastLock!==void 0&&(this.raycastLock=A.raycastLock),A.visible!==void 0&&(this.updateVisible(),this.resetBBoxNeedsUpdate()),"cloner"in A&&A.cloner!==void 0&&(this.setFromClonerState(A.cloner,r),this.updateVisible()),this.updateTransformState(A)}get attachedSurfaceCloners(){return this.children.filter(A=>A instanceof xr.Cloner&&A.parameters.type==="toObject")}setFromClonerState(A,r){this.disposed||(A===null||A.disabled?(this.cloner&&this.cloner.removeFromParent(),this.cloner=void 0):(this.cloner===void 0&&(this.cloner=new xr.Cloner(this,A),r.scene.addPendingExpandCloner(this)),this.cloner.updateState(A,r.scene)))}expandCloner(A){!this.disposed&&this.cloner&&this.cloner.expandClones(A)}invalidateClonerTransform(A){this.cloner&&this.cloner.invalidateTransform(A)}};var ME=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:d,hollow:h}=n.parameters,f;return u||h?f=new ed(c,l,A,r,i,s,o,a*Math.PI/180,u,u,d,h):f=new ho(c,l,A,r,i,s,o,a*Math.PI/180),f.scale(1,1,t/e),Object.assign(f,{userData:{...n,type:"CylinderGeometry"}})}};function Os(n,e,t){t.x=n.x*e.x,t.y=n.y,t.z=n.x*e.y}function TE(n){return new G(n.y,-n.x)}var ed=class extends Ie{constructor(e,t,A,r,i,s,o,a,c,l,u,d,h=!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 f=[],p=[],m=[],g=[],y=0,x=A/2,b=new S,w=new S;h&&e==0&&(e=c),h&&t==0&&(t=l);let T=new G(e,x),M=new G(t,-x),v=null,E=null,C=null,P=null,D=T.clone().sub(M),L=0,I=0,B=0;d>0&&(L=Math.min(e,t)*(1-d),I=e-L,B=t-L);let N=T.clone();N.x-=L;let W=Math.PI-D.angle(),X=D.angle(),F=Math.tan(X/2),U=Math.tan(W/2),Q=F+U,z=d?Q:U,k=d?Q:F;if(c=Math.min(c,(e-I)/z,D.length()/Q),l=Math.min(l,(t-B)/k,D.length()/Q),c>0){let Z=c/F;v=T.clone().sub(new G(Z,c)),d&&(C=v.clone(),C.x-=L-Q*c),T.sub(D.clone().setLength(Z))}if(l>0){let Z=l/U;E=M.clone().sub(new G(Z,-l)),M.add(D.clone().setLength(Z)),d&&(P=E.clone(),P.x-=L-Q*l,N.sub(D.clone().setLength(Z)))}D=T.clone().sub(M);let j=D.length()<.5,q=[];for(let Z=0;Z<=r;Z++){let Y=[],ne=Z/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=TE(D).normalize();if(Os(Me,se,b),!j)for(let me=0;me<=i;me++){let ge=me/i,ye=D.clone().multiplyScalar(ge).add(M);Os(ye,se,w),p.push(w.x,w.y,w.z),m.push(b.x,b.y,b.z),g.push(ne,.5+w.y/A),Y.push(y++)}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),d&&!j){let me=TE(D).multiplyScalar(-1).normalize();Os(me,se,b);for(let ge=0;ge<=i;ge++){let ye=ge/i,he=D.clone().multiplyScalar(-ye).add(N);Os(he,se,w),p.push(w.x,w.y,w.z),m.push(b.x,b.y,b.z),g.push(ne,.5+w.y/A),Y.push(y++)}}d&&!s&&Y.push(Y[0]),q.push(Y)}for(let Z=0;Z<q.length-1;Z++)for(let Y=0;Y<q[0].length-1;Y++){if(s&&d&&Y==i)continue;let ne=q[Z][Y],le=q[Z+1][Y],se=q[Z+1][Y+1],Me=q[Z][Y+1],me=p[se*3+0],ge=p[se*3+2];f.push(ne,le,Me),(me!=0||ge!=0)&&f.push(le,se,Me)}a<Math.PI*2&&(Ae(-1,q[0],o),Ae(1,q[q.length-1],o+a)),this.setIndex(f),this.setAttribute("position",new Se(p,3)),this.setAttribute("normal",new Se(m,3)),this.setAttribute("uv",new Se(g,2));function V(Z,Y,ne,le,se,Me,me,ge){for(let ye=0;ye<u+1;ye++){let he=ye/u,De=me<0?he:1-he;ge&&(De-=1),De*=le;let Be=new G(Math.sin(De),Math.cos(De)*me),Ke=Be.clone().multiplyScalar(se).add(Me);Os(Ke,ne,w),p.push(w.x,w.y,w.z),Os(Be,ne,b),m.push(b.x,b.y,b.z),g.push(Y,.5+w.y/A),Z.push(y++)}}function ue(Z,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,x*se),Os(me,Y,Me),p.push(Me.x,Me.y,Me.z),m.push(0,se,0),g.push(.5,.5),Z.push(y++)}function Ae(Z,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=Z<0?(he,De,Be)=>f.push(he,De,Be):(he,De,Be)=>f.push(he,Be,De),ge=new G((e+t+I+B)/4,0);Os(ge,le,Me),p.push(Me.x,Me.y,Me.z),m.push(se.x,0,se.y),g.push(.5,.5);let ye=y++;for(let he of Y){let De=p.slice(he*3,he*3+3);p.push(...De),m.push(se.x,0,se.y);let Be=g.slice(he*2,he*2+2);g.push(...Be),y++}for(let he=ye+1;he<y-1;he++)me(ye,he,he+1);me(ye,y-1,ye+1)}}};var EE=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,d;return c>0||l>0||a<360?d=new ed(0,e/2,A,r,i,s,o,a*Math.PI/180,c,l,u,0,!0):d=new Da(e/2,A,r,i,s),d.scale(1,1,t/e),Object.assign(d,{userData:{...n,type:"ConeGeometry"}})}};var CE=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 PA(e,t,A,r,i,s):c=new o0(e,t,A,r,i,s,o,a),Object.assign(c,{userData:{...n,type:"CubeGeometry"}})}},s0=Math.PI/2,o0=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=[],d=[],h=[],f=0,p=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&&(g("z","y","x",-1,-1,1,A,t,e,s,0),g("z","y","x",1,-1,-1,A,t,e,s,1),g("z","y","x",-1,1,-1,A,t,e,s,1),g("z","y","x",1,1,1,A,t,e,s,0),g("x","y","z",-1,-1,-1,e,t,A,r,0),g("x","y","z",1,-1,1,e,t,A,r,1),g("x","y","z",-1,1,1,e,t,A,r,0),g("x","y","z",1,1,-1,e,t,A,r,1),g("y","x","z",-1,-1,1,t,e,A,i,0),g("y","x","z",1,-1,-1,t,e,A,i,1),g("y","x","z",1,1,1,t,e,A,i,1),g("y","x","z",-1,1,-1,t,e,A,i,0),y(1,1,1),y(-1,1,1),y(1,-1,1),y(-1,-1,1),y(1,1,-1),y(-1,1,-1),y(1,-1,-1),y(-1,-1,-1)),this.setIndex(l),this.setAttribute("position",new Se(u,3)),this.setAttribute("normal",new Se(d,3)),this.setAttribute("uv",new Se(h,2));function m(x,b,w,T,M,v,E,C,P,D,L){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,U=D+1,Q=0,z=0,k=new S;for(let j=0;j<U;j++){let q=j*B-W;for(let V=0;V<F;V++){let ue=V*I-N;k[x]=ue*T,k[b]=q*M,k[w]=X,u.push(k.x,k.y,k.z),k[x]=0,k[b]=0,k[w]=C>0?1:-1,d.push(k.x,k.y,k.z),h.push(V/P),h.push(1-j/D),Q+=1}}for(let j=0;j<D;j++)for(let q=0;q<P;q++){let V=f+q+F*j,ue=f+q+F*(j+1),Ae=f+(q+1)+F*(j+1),Z=f+(q+1)+F*j;l.push(V,ue,Z),l.push(ue,Ae,Z),z+=6}c.addGroup(p,z,L),p+=z,f+=Q}function g(x,b,w,T,M,v,E,C,P,D,L){let I=(E-2*o)/D,B=E/2-o,N=C/2-o,W=P/2,X=D+1,F=0,U=0,Q=new S,z=new S;for(let k=0;k<a+1;k++){let j=k/a*s0,q=Math.sin(j)*o,V=(1-Math.cos(j))*o,ue=Math.sin(j),Ae=Math.cos(j);Q[b]=(N+q)*M,Q[w]=(W-V)*v,z[x]=0,z[b]=ue*Math.sign(Q[b]),z[w]=Ae*Math.sign(Q[w]);for(let Z=0;Z<X;Z++){let Y=Z*I-B;Q[x]=Y*T,u.push(Q.x,Q.y,Q.z),d.push(z.x,z.y,z.z),h.push(Z/D),h.push(0),F+=1}}for(let k=0;k<a;k++)for(let j=0;j<D;j++){let q=f+j+X*k,V=f+j+X*(k+1),ue=f+(j+1)+X*(k+1),Ae=f+(j+1)+X*k;l.push(q,V,Ae),l.push(V,ue,Ae),U+=6}c.addGroup(p,U,L),p+=U,f+=F}function y(x,b,w){let T=new S,M=new S(e/2,t/2,A/2);M.subScalar(o);let v=[],E=x*b*w>0?(P,D,L)=>l.push(P,D,L):(P,D,L)=>l.push(P,L,D);for(let P=0;P<=a;P++){let D=[],L=s0*(1-P/a),I=Math.cos(L),B=Math.sin(L),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 U=M.clone().addScaledVector(T,o);u.push(x*U.x,b*U.y,w*U.z),d.push(x*T.x,b*T.y,w*T.z),h.push(0,0),D.push(f++),N+=s0/P}v.push(D)}let C=v.length-1;for(let P=0;P<C;P++){let D=v[P],L=v[P+1],I=D.length-1;E(D[0],L[1],L[0]);for(let B=1;B<=I;B++)E(D[B-1],D[B],L[B]),E(D[B],L[B+1],L[B])}}}};var Ls=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 h={IcosahedronGeometry:5,DodecahedronGeometry:3,HexahedronGeometry:3,OctahedronGeometry:4,TetrahedronGeometry:3}[A],f=new S,p=f.clone(),m=new Qt,g=i*r,y=r-g,x=s+1,b=new S,w=(F,U)=>b.subVectors(F,U).normalize(),T=(F,U)=>Array(F).fill(void 0).map(U),M=T(e.length/3,(F,U)=>new S().fromArray(e,U*3).setLength(r)),v=[],E=1e6;for(let F=0;F<M.length;F++){let U=M[F],Q=[],z,k,j,q=1e10,V=-1;for(;(V=t.indexOf(F,V+1))!=-1;){let Y=V-V%3;z=t[Y+(V+1)%3],k=t[Y+(V+2)%3],j=U.distanceToSquared(M[z]),q=Math.min(q,j),Q.push([z,k,j])}q+=1e-6;let ue=[],Ae=0,Z=Q.length;for(let Y=0;Y<Z;Y++){[z,k,j]=Q[Ae];let ne=v[z]?.includes(F)==!0;j<=q&&ue.push(z+ +ne*E),Ae=Q.findIndex(le=>le[0]==k)}v.push(ue)}let C=[];{let F=0,U=0,Q,z,k=h==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,U]=[Q+q+j+2,z+q+j+3],C.push(Q,z,...k?[U,Q]:[F,z],U,F),[Q,z]=[F,U];C.push(Q,z,Q+s+2)}}let P=f.clone(),D=f.clone(),L=f.clone(),I=f.clone(),B=f.clone(),N=[],W=T(M.length,()=>T(h,()=>f.clone()));for(let F=0;F<M.length;F++){f.copy(M[F]).normalize(),P.copy(f).multiplyScalar(y);let U=v[F];for(let ue=0;ue<U.length;ue++){let Ae=U[ue],Z=U[(ue+1)%h];m.setFromPointsAndIndices(M,F,Ae%E,Z%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=[],k=[],j=new S;s==0&&[...W[F]].reduce((ue,Ae)=>ue.add(Ae),j).multiplyScalar(1/h);for(let ue=0;ue<h;ue++){let Ae=[],Z=(ue-1+h)%h,Y=W[F][Z],ne=W[F][ue];f.copy(Y).sub(P),p.copy(ne).sub(P);let le=P.angleTo(f),se=f.angleTo(p),Me=Math.cos(le)*g;s==0?D.copy(j):D.copy(P).setLength(y+Me),z.push(Me);let me=[D,Y,ne];for(let ge=0;ge<2;ge++){let ye=me[ge],he=me[ge+1];I.subVectors(ye,P),B.subVectors(he,P),L.crossVectors(I,B).normalize();for(let De=0;De<x;De++){let Be=[le,se][ge]*De/x;f.copy(I).applyAxisAngle(L,Be).add(P),Q.push(f.clone()),ge&&(w(f,P),Ae.push([De==0?ye:f.clone(),b.clone()]))}ge&&(w(he,P),Ae.push([he,b.clone()]))}k.push(Ae)}N.push(k);let q=2*x,V=2;for(let ue=0;ue<h;ue++){let Ae=q*ue,Z=q*((ue+1)%h),Y=[Q[Ae]];for(let le=1;le<x;le++){I=Q[Ae+le],B=Q[Z+le],Y.push(I);for(let se=1,Me=le-V+1;se<=Me;se++)f.lerpVectors(I,B,se/(Me+1)),f.sub(P).setLength(z[ue]).add(P),Y.push(f.clone());Y.push(B)}for(let le=0;le<x;le++)Y.push(Q[le+x+Ae]);Y.push(Q[Z+x]);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),[b.x,b.y,b.z])).flat())}}let X=[];for(let F=0;F<v.length;F++)for(let U=0;U<h;U++){let Q=v[F][U];if(Q<E){let z=v[Q].findIndex(q=>q%E==F),k=N[F][U],j=N[Q][z];for(let q=0;q<x;q++){let V=k[q],ue=j[x-q],Ae=k[q+1],Z=j[x-(q+1)];[V,ue,Ae,Ae,ue,Z].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(k[0][0],j[x][0],k[x][0],j[0][0])}}for(;X.length;){let F,U,Q,z;[F,U]=X.splice(0,2);let k=[F];for(;F!=U;)k.push(U),Q=X.indexOf(U),z=Q%2,U=X.splice(Q-z,2)[1-z];b.subVectors(k[0],k[1]).cross(f.subVectors(k[0],k[2])).normalize();let j=b.dot(k[0])<0;j&&b.negate();for(let q=1;q<=k.length-2;q++)[k[q+ +j],k[q+1-+j],k[0]].forEach(V=>{o.push(V.x,V.y,V.z),c.push(b.x,b.y,b.z)})}}function u(){let d=new S;for(let M=0;M<o.length;M+=3){d.x=o[M+0],d.y=o[M+1],d.z=o[M+2];let v=w(d)/2/Math.PI+.5,E=T(d)/Math.PI+.5;a.push(v,1-E)}let h=new S,f=new S,p=new S,m=new S,g=new G,y=new G,x=new G,b=(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){h.set(o[M+0],o[M+1],o[M+2]),f.set(o[M+3],o[M+4],o[M+5]),p.set(o[M+6],o[M+7],o[M+8]),g.set(a[v+0],a[v+1]),y.set(a[v+2],a[v+3]),x.set(a[v+4],a[v+5]),m.copy(h).add(f).add(p).divideScalar(3);let E=w(m);b(g,v+0,h,E),b(y,v+2,f,E),b(x,v+4,p,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 Ls(e.vertices,e.indices,e.radius,e.corner,e.cornerSides)}};var PE=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 td(e*.5,i,s):new Oa(e*.5,r);return o.scale(1,t/e,A/e),Object.assign(o,{userData:{...n,type:"DodecahedronGeometry"}})}},td=class extends Ls{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 td(e.radius,e.corner,e.cornerSides)}};var Ad=1e-12,Zl=class{constructor(e){this.position=new G;this.startPosition=new G;this.uuid=Ve.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 Zl(this.position).copy(this)}toJSON(){return[this.position.x,this.position.y]}},Jl=class extends Zl{constructor(t){super(t.position);this.parent=t}copy(t){return super.copy(t),this}clone(){return new Jl(this.parent).copy(this)}},br=class extends Zl{constructor(t,A){super(A);this.controls=[];this.roundness=0;this.areControlsDirectionsMirrored=!0;this.uuid=t,this.controls.push(new Jl(this),new Jl(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&&(DE(r,t),DE(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 DE(n,e=new G){let t=n.length();return e.set(-n.y/t,n.x/t)}var l0=n=>n,$l=new G,Gp=new G,Kz=new G,Zz=new G,Jz=new G,$z=new G,OE=new S,LE=new S;function _E(n){let e=new G;e.addVectors(n.v0,$l.subVectors(n.v1,n.v0).multiplyScalar(2/3));let t=new G;return t.addVectors(n.v2,Gp.subVectors(n.v1,n.v2).multiplyScalar(2/3)),new qA(n.v0,e,t,n.v2)}function nd(n,e,t=Number.EPSILON){return Math.abs(n-e)<t}function e4(n,e,t=Number.EPSILON){return n.distanceTo(e)<t}function t4(n,e,t=Number.EPSILON){return n.distanceTo(e)<t}function c0(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 RE(n,e,t){return IE(n,e)&&IE(e,t)&&a0(n.position,e.position,t.position)}function a0(n,e,t){return $l.copy(e).sub(n).cross(Gp.copy(t).sub(n))===0}function BE(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 NE(n,e,t){let A=n.distanceTo(t),r=e.distanceTo(t);return A<r?e:n}function FE(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 c0(e,n,t)>Math.PI&&(l*=-1),nd(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 u0(n,e){return n.position.equals(n.controls[1].position)&&e.position.equals(e.controls[0].position)}function IE(n,e){return a0(n.position,n.controls[1].position,e.position)&&a0(n.position,e.controls[0].position,e.position)}function GE(n,e,t,A,r=.5){let i=$l.subVectors(e,n).multiplyScalar(r).add(n),s=Gp.subVectors(t,e).multiplyScalar(r).add(e),o=Kz.subVectors(A,t).multiplyScalar(r).add(t),a=i,c=Zz.subVectors(s,i).multiplyScalar(r).add(i),l=Jz.subVectors(o,s).multiplyScalar(r).add(s),u=o,d=$z.subVectors(l,c).multiplyScalar(r).add(c);return[n.x,n.y,a.x,a.y,c.x,c.y,d.x,d.y,l.x,l.y,u.x,u.y,A.x,A.y]}function UE(n,e,t=12,A=!0){let r=LE.set(0,0,0),i,s=0,o=[];for(let a=0;a<e.length;a++){let c=l0(e[a]),l=$l,u=_s(c,t);o.push(u);for(let d=0;d<=u;d++)if(c instanceof qA||c instanceof Rn||c instanceof XA){if(c.getPoint(d/u,l),r.set(l.x,l.y,0),i!==void 0&&t4(i,r))continue;i===void 0&&(i=OE),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 kE(n,e,t,A=12,r=!0){let i=LE.set(0,0,0),s=0,o=[];for(let a=0;a<e.length;a++){if(t[a]===!1)continue;let c,l=l0(e[a]),u=$l,d=_s(l,A);o.push(d);for(let h=0;h<=d;h++)if(l instanceof qA||l instanceof Rn||l instanceof XA){if(l.getPoint(h/d,u),i.set(u.x,u.y,0),c?.equals(i))continue;c===void 0?c=OE:(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 d0(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=_s(s.roundedCurveCorner,e)*.5;r>0&&(A[r-1]+=a),o+=a}s.curveAfter!==void 0&&(o+=_s(s.curveAfter,e)),A.push(o)}return n.length>0&&t&&n[0].roundedCurveCorner!==void 0&&(A[n.length-1]+=_s(n[0].roundedCurveCorner,e)*.5),A}function _s(n,e=12){return n&&n instanceof co?e*2:n&&(n instanceof XA||n instanceof hu)?1:n&&n instanceof Ca?e*n.points.length:e}function VE(n,e,t=12,A=!0){let r,i=0;for(let s=0;s<e.length;s++){let o=l0(e[s]),a=_s(o,t),c=$l;for(let l=0;l<=a;l++)if(o instanceof qA||o instanceof Rn||o instanceof XA){if(o.getPoint(l/a,c),r!==void 0&&e4(r,c,Ad))continue;r===void 0&&(r=Gp),r.copy(c),n.push(c.x,c.y),i++}}return nd(n[0],n[n.length-2],Ad)&&nd(n[1],n[n.length-1],Ad)&&(n.pop(),n.pop()),A&&i>1&&!(nd(n[i-1],n[1],Ad)&&nd(n[i-2],n[0],Ad))&&(n.push(n[0],n[1]),i++),n}var h0=new G,A4=new G,n4=new G,r4=new G,i4=new G,s4=new G,yt=class extends Pi{constructor(t=100,A=100){super();this.points=[];this.shapeHoles=[];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=Ve.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=h0.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()}createPoint(t,A=0,r=Ve.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(){for(let t=0,A=this.shapeHoles.length;t<A;t++)this.shapeHoles[t].update();this._update()}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=d0(this.points,t,!1),this.roundedCurveDivisions=d0(this.points,t,!0),this.curveDivisions}extractFilteredShapePointsToBuffer(t,A,r=12){return kE(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),VE(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=_s(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(u0(i,s)){let u=i.position.distanceTo(s.position);return i.position.distanceTo(h0.set(r.x,r.y))/u}let c=0;for(let u=0;u<t;u++)c+=o[u];return(A-c)/a}dispose(){}_applyCurveForPoint(t,A){u0(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(){if(this.curves=[],this.roundedCurves=[],!this.points.length)return;for(let A=0,r=this.points.length;A<r;A++){let i=this.points[A];if(A===0)this.moveTo(i.position.x,i.position.y);else{let s=this.points[A-1];this._applyCurveForPoint(i,s)}}let t=this.getLastPoint();if(t?.curveAfter&&(t.curveAfter=void 0),this.isClosed){let A=this.points[0],r=this.points[this.points.length-1];this._applyCurveForPoint(A,r)}if(this.points.length>2){let A=0;for(let r=0,i=this.points.length;r<i;r++){let s=this.points[r],o=this.points[r-1]??this.points[this.points.length-1],a=this.points[r+1]??this.points[0],c=s.roundness,l=o&&a&&RE(o,s,a);if(!s.controlsMoved()&&c>0&&!l){let u=s.curveBefore,d=s.curveAfter;if(u===void 0||d===void 0)continue;let h=s.roundedCurveBefore,f=s.roundedCurveAfter,p=u.getLength(),m=d.getLength(),g=Math.min(c,p*.499),y=Math.min(c,m*.499),x=Math.min(g,y),b=1-x/p,w=x/m,T=u.getPointAt(b,h0),M=d.getPointAt(w,A4);this._subSplitCurve(u,h,b,T,void 0),this._subSplitCurve(d,f,w,void 0,M);let v;if(this.useCubicForRoundedCorners){let E=c0(T,s.position,M)/2,C=Math.tan(E)*T.distanceTo(s.position),[P,D]=BE(T,M,C,n4,r4),L=NE(P,D,s.position),[I,B]=FE(L,T,M,C,i4,s4);v=new qA(T.clone(),I.clone(),B.clone(),M.clone())}else v=new Rn(T.clone(),s.position.clone(),M.clone());s.roundedCurveCorner=v,this.roundedCurves.splice(r+A,0,v),A++}}}}_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=GE(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],d=t.points[i+6],h=new br(Ve.generateUUID(),new G(s,o));h.controls[0].position.set(a,c),h.controls[1].position.set(l,u),h.roundness=d,this.points.push(h)}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 Rn&&(i[o]=_E(i[o]));for(o=0,a=i.length;o<a;o++){let u=i[o],d=o>0?i[o-1]:null,h;u instanceof qA?(h=this.createPoint(u.v0),h.controls[1].position.copy(u.v1)):u instanceof XA&&(h=this.createPoint(u.v1)),h!==void 0&&(d!==null&&A(h,d),s.push(h))}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 Pi&&(this.shapeHoles=t.holes.map(i=>{let s=new yt;return s.fromShape(i),s})),this.update(),this}updatePoint(t,A){let r=this.getPointByUuid(t);r&&(A.position!==void 0&&r.position.fromArray(A.position),A.roundness!==void 0&&(r.roundness=A.roundness),A.areControlsDirectionsMirrored!==void 0&&(r.areControlsDirectionsMirrored=A.areControlsDirectionsMirrored),this.needsUpdate=!0)}updatePreviousControl(t,A){let i=this.getPointByUuid(t)?.controls[0];i&&(A.position&&i.position.fromArray(A.position),this.needsUpdate=!0)}updateNextControl(t,A){let i=this.getPointByUuid(t)?.controls[1];i&&(A.position&&i.position.fromArray(A.position),this.needsUpdate=!0)}};var p0=Math.PI*2;function f0({x:n,y:e},t,A,r,i){return{x:n*t+r,y:e*A+i}}function o4(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 zE(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 a4(n,e,t,A,r,i,s,o,a,c){let l=Math.pow(r,2),u=Math.pow(i,2),d=Math.pow(s,2),h=Math.pow(o,2),f=l*u-l*h-u*d;f<0&&(f=0),f/=l*h+u*d,f=Math.sqrt(f)*(a===c?-1:1);let p=f*r/i*o,m=f*-i/r*s,g=p+(n+t)/2,y=m+(e+A)/2,x=(s-p)/r,b=(o-m)/i,w=(-s-p)/r,T=(-o-m)/i,M=zE(1,0,x,b),v=zE(x,b,w,T);return!c&&v>0&&(v-=p0),c&&v<0&&(v+=p0),{centerx:g,centery:y,ang1:M,ang2:v}}function HE({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 d=a4(n,e,t,A,r,i,c,l,s,o),{ang1:h,ang2:f}=d,{centerx:p,centery:m}=d,g=Math.abs(f)/(p0/4);Math.abs(1-g)<1e-7&&(g=1);let y=Math.max(Math.ceil(g),1);f/=y;for(let x=0;x<y;x++)a.push(o4(h,f)),h+=f;return a.map(x=>{let{x:b,y:w}=f0(x[0],r,i,p,m),{x:T,y:M}=f0(x[1],r,i,p,m),{x:v,y:E}=f0(x[2],r,i,p,m);return{x1:b,y1:w,x2:T,y2:M,x:v,y:E}})}var Ot;(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"})(Ot||(Ot={}));var bA;(function(n){n[n.POLYGONS=0]="POLYGONS",n[n.CONNECTED_POLYGONS=1]="CONNECTED_POLYGONS",n[n.BOUNDARY_CONTOURS=2]="BOUNDARY_CONTOURS"})(bA||(bA={}));function je(n,e){if(!n)throw e||"Assertion Failed!"}var Ue=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){je(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){je(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){je(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){je(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}(),rd=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}(),Up=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}(),ec=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}(),WE=function(){function n(){var e=new ec,t=new rd,A=new Up(0),r=new Up(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 Up(0),A=new Up(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;je(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;je(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 ec,t=new ec,A=new rd,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 ec;this.makeVertex_(i,t,e.Org),e.Org.anEdge=e}if(!A){var s=new rd;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 rd;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 ec;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 rd;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&&Ue.vertCCW(A.Lprev.Org,A.Org,i.Lnext.Lnext.Org)&&Ue.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){je(r.prev===i),a=r.anEdge;do je(a.Sym!==a),je(a.Sym.Sym===a),je(a.Lnext.Onext.Sym===a),je(a.Onext.Sym.Lnext===a),je(a.Lface===r),a=a.Lnext;while(a!==r.anEdge)}for(je(r.prev===i&&r.anEdge===null),o=t,o=t;(s=o.next)!==t;o=s){je(s.prev===o),a=s.anEdge;do je(a.Sym!==a),je(a.Sym.Sym===a),je(a.Lnext.Onext.Sym===a),je(a.Onext.Sym.Lnext===a),je(a.Org===s),a=a.Onext;while(a!==s.anEdge)}for(je(s.prev===o&&s.anEdge===null),c=A,c=A;(a=c.next)!==A;c=a)je(a.Sym.next===c.Sym),je(a.Sym!==a),je(a.Sym.Sym===a),je(a.Org!==null),je(a.Dst!==null),je(a.Lnext.Onext.Sym===a),je(a.Onext.Sym.Lnext===a);je(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}(),jE=function(){function n(){this.handle=null}return n}(),YE=function(){function n(){this.key=null,this.node=0}return n}(),l4=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 jE,this.handles[A]=new YE;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,je(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 jE;for(i=this.handles.length,this.handles.length=this.max+1,r=i;r<this.handles.length;r++)this.handles[r]=new YE}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;je(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}(),m0=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}(),qE=function(){function n(){this.key=null,this.next=null,this.prev=null}return n}(),c4=function(){function n(e,t){this.frame=e,this.leq=t,this.head=new qE,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 qE;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}(),u4=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?Ue.vertLeq(i.Org,s.Org)?Ue.edgeSign(s.Dst,i.Org,s.Org)<=0:Ue.edgeSign(i.Dst,s.Org,i.Org)>=0:Ue.edgeSign(s.Dst,r,s.Org)<=0;if(s.Dst===r)return Ue.edgeSign(i.Dst,r,i.Org)>=0;var o=Ue.edgeEval(i.Dst,r,i.Org),a=Ue.edgeEval(s.Dst,r,s.Org);return o>=a},n.deleteRegion=function(e,t){t.fixUpperEdge&&je(t.eUp.winding===0),t.eUp.activeRegion=null,e.dict.delete(t.nodeUp)},n.fixUpperEdge=function(e,t,A){je(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 m0;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 Ot.ODD:return(t&1)!==0;case Ot.NONZERO:return t!==0;case Ot.POSITIVE:return t>0;case Ot.NEGATIVE:return t<0;case Ot.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 je(Ue.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,je(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=Ue.vertL1dist(t,e),i=Ue.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(Ue.vertLeq(r.Org,i.Org)){if(Ue.edgeSign(i.Dst,r.Org,i.Org)>0)return!1;Ue.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(Ue.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(je(!Ue.vertEq(r.Dst,i.Dst)),Ue.vertLeq(r.Dst,i.Dst)){if(Ue.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(Ue.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,d=new ec,h,f;if(je(!Ue.vertEq(c,a)),je(Ue.edgeSign(a,e.event,s)<=0),je(Ue.edgeSign(c,e.event,o)>=0),je(s!==e.event&&o!==e.event),je(!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(Ue.vertLeq(s,o)){if(Ue.edgeSign(c,s,o)>0)return!1}else if(Ue.edgeSign(a,o,s)<0)return!1;return n.debugEvent(e),Ue.intersect(a,s,c,o,d),je(Math.min(s.t,a.t)<=d.t),je(d.t<=Math.max(o.t,c.t)),je(Math.min(c.s,a.s)<=d.s),je(d.s<=Math.max(o.s,s.s)),Ue.vertLeq(d,e.event)&&(d.s=e.event.s,d.t=e.event.t),h=Ue.vertLeq(s,o)?s:o,Ue.vertLeq(h,d)&&(d.s=h.s,d.t=h.t),Ue.vertEq(d,s)||Ue.vertEq(d,o)?(n.checkForRightSplice(e,t),!1):!Ue.vertEq(a,e.event)&&Ue.edgeSign(a,e.event,d)>=0||!Ue.vertEq(c,e.event)&&Ue.edgeSign(c,e.event,d)<=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),f=n.regionBelow(t).eUp.Rprev,A.eUp=i.Oprev,i=n.finishLeftRegions(e,A,null),n.addRightEdges(e,t,i.Onext,r.Rprev,f,!0),!0):(Ue.edgeSign(a,e.event,d)>=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),Ue.edgeSign(c,e.event,d)<=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=d.s,r.Org.t=d.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),Ue.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),Ue.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}Ue.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,Ue.vertEq(r.Org,A)){je(!1),n.spliceMergeVertices(e,r,A.anEdge);return}if(!Ue.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}je(!1),t=n.topRightRegion(t),a=n.regionBelow(t),s=a.eUp.Sym,i=o=s.Onext,a.fixUpperEdge&&(je(i!==s),n.deleteRegion(e,a),e.mesh.delete(s),s=i.Oprev),e.mesh.splice(A.anEdge,s),Ue.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 m0;if(c.eUp=t.anEdge.Sym,A=e.dict.search(c).key,r=n.regionBelow(A),!!r){if(s=A.eUp,o=r.eUp,Ue.edgeSign(s.Dst,t,s.Org)===0){n.connectLeftDegenerate(e,A,t);return}if(i=Ue.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);je(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 m0,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 c4(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||(je(t.fixUpperEdge),je(++A===1)),je(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,Ue.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 l4(i,Ue.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,je(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||!Ue.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}(),d4=function(){function n(){this.mesh=new WE,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=Ot.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],d=[0,0,0],h=[null,null,null],f=[null,null,null],p=this.mesh.vHead;t=p.next;for(var m=0;m<3;++m)i=t.coords[m],c[m]=i,f[m]=t,a[m]=i,h[m]=t;for(t=p.next;t!==p;t=t.next)for(var g=0;g<3;++g)i=t.coords[g],i<c[g]&&(c[g]=i,f[g]=t),i>a[g]&&(a[g]=i,h[g]=t);var y=0;if(a[1]-c[1]>a[0]-c[0]&&(y=1),a[2]-c[2]>a[y]-c[y]&&(y=2),c[y]>=a[y]){e[0]=0,e[1]=0,e[2]=1;return}for(o=0,A=f[y],r=h[y],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=p.next;t!==p;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],d[0]=l[1]*u[2]-l[2]*u[1],d[1]=l[2]*u[0]-l[0]*u[2],d[2]=l[0]*u[1]-l[1]*u[0],s=d[0]*d[0]+d[1]*d[1]+d[2]*d[2],s>o&&(o=s,e[0]=d[0],e[1]=d[1],e[2]=d[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(;Ue.vertLeq(A.Dst,A.Org);A=A.Lprev);for(;Ue.vertLeq(A.Org,A.Dst);A=A.Lnext);r=A.Lprev;for(var i=void 0;A.Lnext!==r;)if(Ue.vertLeq(A.Dst,r.Org)){for(;r.Lnext!==A&&(Ue.edgeGoesLeft(r.Lnext)||Ue.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&&(Ue.edgeGoesRight(A.Lprev)||Ue.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===bA.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 d=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[d++]=c.n,a++,i=i.Lnext}while(i!==l.anEdge);for(var h=a;h<A;++h)this.elements[d++]=-1;if(t===bA.CONNECTED_POLYGONS){i=l.anEdge;do this.elements[d++]=this.getNeighbourFace_(i),i=i.Lnext;while(i!==l.anEdge);for(var f=a;f<A;++f)this.elements[d++]=-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 WE),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=Ot.ODD),t===void 0&&(t=bA.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_(),u4.computeInterior(this,s);var o=this.mesh;return t===bA.BOUNDARY_CONTOURS?this.setWindingNumber_(o,1,!0):this.tessellateInterior_(o),s&&o.check(),t===bA.BOUNDARY_CONTOURS?this.outputContours_(o,r):this.outputPolymesh_(o,t,A,r),!0},n}();function Fo(n){var e=n.windingRule,t=e===void 0?Ot.ODD:e,A=n.elementType,r=A===void 0?bA.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,d=u===void 0?[]:u,h=n.strict,f=h===void 0?!0:h,p=n.debug,m=p===void 0?!1:p;if(!d&&f)throw new Error("Contours can't be empty");if(!!d){var g=new d4;n.edgeCreateCallback&&(g.edgeCreateCallback=n.edgeCreateCallback),n.vertexIdCallback&&(g.vertexIdCallback=n.vertexIdCallback);for(var y=0;y<d.length;y++)g.addContour(a||2,d[y]);return g.tesselate(t,r,s,a,l,f),{vertices:g.vertices,vertexIndices:g.vertexIndices,vertexCount:g.vertexCount,elements:g.elements,elementCount:g.elementCount,mesh:m?g.mesh:void 0}}}var Nne=Ot.ODD,Fne=Ot.NONZERO,Gne=Ot.POSITIVE,Une=Ot.NEGATIVE,kne=Ot.ABS_GEQ_TWO,Vne=bA.POLYGONS,zne=bA.CONNECTED_POLYGONS,Hne=bA.BOUNDARY_CONTOURS;var tc=class extends Ie{constructor(t,A=12,r={}){super();this.type="ShapeGeometry";this.windingRule=Ot.ODD;this.elementType=bA.POLYGONS;this.polySize=3;this.vertexSize=2;this.strict=!0;this._shape=t,this._curveSegments=A,this._triangulationOptions=Object.assign({windingRule:Ot.ODD,elementType:bA.POLYGONS,polySize:3,vertexSize:2,strict:!0},r);let i=this._shape.extractShapePointsToFlatArray([],this._curveSegments),s=this._shape.shapeHoles.map(f=>f.extractShapePointsToFlatArray([],this._curveSegments)),o,a=!0,c=!0,l,u;for(let f=0,p=i.length/2;f<p;f++){let m=f*2,g=i[m+0],y=i[m+1];if(l!==void 0&&g!==l&&(a=!1),u!==void 0&&y!==u&&(c=!1),l=g,u=y,!a&&!c)break}!a&&!c&&(o=Fo({contours:[i,...s],windingRule:this._triangulationOptions.windingRule,elementType:this._triangulationOptions.elementType,polySize:this._triangulationOptions.polySize,vertexSize:this._triangulationOptions.vertexSize,strict:this._triangulationOptions.strict}));let d=o?.vertexCount??1,h=o?.elementCount??1;if(this._positionAttribute=new Fe(new Float32Array(d*3),3),this._normalAttribute=new Fe(new Float32Array(d*3),3),this._uvAttribute=new Fe(new Float32Array(d*2),2),this._indexAttribute=new Fe(new Uint32Array(h*3),1),o){let f=1/0,p=-1/0,m=1/0,g=-1/0;for(let b=0,w=d;b<w;b++){let T=b*2,M=o.vertices[T+0],v=o.vertices[T+1];M<f&&(f=M),M>p&&(p=M),v<m&&(m=v),v>g&&(g=v)}let y=p-f,x=g-m;for(let b=0,w=d;b<w;b++){let T=b*2,M=o.vertices[T+0],v=o.vertices[T+1],E=(M-f)/y,C=(v-m)/x;this._positionAttribute.setXYZ(b,M,v,0),this._normalAttribute.setXYZ(b,0,0,1),this._uvAttribute.setXY(b,E,C)}for(let b=0,w=h;b<w;b++){let T=b*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 tc(this._shape,this._curveSegments);return t.userData=wo(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)}},id=kp;id.eSize=(3+3+2)*Float32Array.BYTES_PER_ELEMENT;var g0=(n,e)=>([t,A])=>(A<t&&(A+=e),(n>=t?n:n+e)<=A),Ac=class extends Ie{constructor(t,A,r=0,i=12,s=3,o=Ot.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],L=E[P-0];C.push(D,L)}return C}),l=Fo({windingRule:o,elementType:bA.BOUNDARY_CONTOURS,vertexSize:2,strict:!0,contours:[a]}),u=Fo({windingRule:Ot.ODD,elementType:bA.BOUNDARY_CONTOURS,vertexSize:2,strict:!0,contours:[...c]});if(!l)throw new Error("error generating geometry");let d=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 h=1/0,f=-1/0,p=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<h&&(h=P),P>f&&(f=P),D<p&&(p=D),D>m&&(m=D)}this._minX=h,this._minY=p,this._width=f-h,this._height=m-p;let g=l.vertexCount*2*(2+this._bevelSegments);this._buffer=new id(g);let y=[],x=[];for(let v=l.elementCount-1;v>=0;v--){let E=v>=d,C=v*2,P=l.elements[C+0],D=l.elements[C+1],L=P+D,I={start:P,count:D,normals:[],continuous:[],concave:[]},B=P,N=L-1,W=P+1,X=this._shape.roundedCurves.length;do{let z=B-P,k=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],Z=q-k,Y=V-j,ne=Math.sqrt(Z*Z+Y*Y);Z/=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]=Z*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 he=ye===1?ge+1:ge-1;he=(he+X)%X;let De=ye===1?0:1,Be=this._shape.roundedCurves[ge].getTangent(ye),Ke=this._shape.roundedCurves[he].getTangent(De);I.continuous[z]=Be.dot(Ke)>.95}}E&&(I.normals[z*2+0]*=-1,I.normals[z*2+1]*=-1),[N,B,W]=[B,W,W+1],W>=L&&(W-=D)}while(W!==P+1);let F=[];F.push({bevelI:0,angle:0,size:0,boundary:{vertices:l.vertices.slice(P*2,L*2),vertexCount:D,vertexIndices:new Array(D).fill(!0).map((z,k)=>[k,k]),elements:[0,D],elementCount:1,mesh:null},reverseMap:[],insetPoints:l.vertices.slice(P*2,L*2)});for(let z=1;z<=this._bevelSegments;z++){let k=z/this._bevelSegments*Math.PI/2,j=(1-Math.cos(k))*this._bevelSize,q=[],V=[],ue=[],Ae=[],Z=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,he=-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),Ke=Math.atan2(De,he);Ke>Be&&(Ke-=Math.PI*2);let R=Ke-Be;if(I.continuous[ne]||E){let O=Be+R/2,J=Math.cos(O)*j,ae=Math.sin(O)*j;q[2*Z+0]=Me+J*(E?-1:1),q[2*Z+1]=me+ae*(E?-1:1),Ae[Z]=ne,Z++}else{let O=Math.max(1,Math.floor(i/4*Math.abs(R)/Math.PI));for(let J=0;J<=O;J++){let ae=Be+R*(J/O),fe=Math.cos(ae)*j,Ce=Math.sin(ae)*j;q[2*Z+0]=Me+fe,q[2*Z+1]=me+Ce,Ae[Z]=ne,Z++}}}else q[2*Z+0]=Me+ge,q[2*Z+1]=me+ye,Ae[Z]=ne,V[ne]=Z,Z++,q[2*Z+0]=Me,q[2*Z+1]=me,Ae[Z]=ne,Z++,q[2*Z+0]=Me+he,q[2*Z+1]=me+De,Ae[Z]=ne,ue[ne]=Z,Z++}let Y=Fo({windingRule:Ot.POSITIVE,elementType:bA.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:k,size:j,boundary:Y,reverseMap:Ae,insetPoints:q})}let U=(z,k,j)=>{let q=0,V=z.boundary.vertexIndices.length;for(;q<V&&j(z.boundary.vertexIndices[k]);)k=(k+1)%V,q++;return q},Q=y.length;for(let z=1;z<F.length;z++){let k=F[z-1],j=F[z],q=k.boundary.vertexIndices.length,V=j.boundary.vertexIndices.length;if(!q||!V)break;let ue=I.concave.length,Ae=0,Z=g0(Ae,D);for(;!k.boundary.vertexIndices.filter(Z).length||!j.boundary.vertexIndices.filter(Z).length;)Ae++,Z=g0(Ae,D);let Y=k.boundary.vertexIndices.findIndex(Z),ne=j.boundary.vertexIndices.findIndex(Z);do Y=(Y+1)%q;while(Z(k.boundary.vertexIndices[Y]));do ne=(ne+1)%V;while(Z(j.boundary.vertexIndices[ne]));Ae=(Ae+1)%D;let le=Ae,se=this.buildBevelVert(I,k,(Y-1+q)%q),Me=this.buildBevelVert(I,j,(ne-1+V)%V),me=se,ge=Me,ye,he,De=!1;do{Z=g0(Ae,D);let Be=U(k,Y,Z),Ke=U(j,ne,Z),R=De;if(De=!1,Be&&!Ke){for(let O=0;O<Be;O++)ye=this.buildBevelVert(I,k,(Y+O)%q,O/(Be-1)),y.push(me.topN,ye.topP,ge.topN),y.push(ye.bottomP,me.bottomN,ge.bottomN),me=ye;De=!0}else if(!Be&&Ke)for(let O=0;O<Ke;O++)he=this.buildBevelVert(I,j,(ne+O)%V,O/(Ke-1)),y.push(ge.topN,me.topP,he.topP),y.push(me.bottomP,ge.bottomN,he.bottomP),ge=he;else if(Be&&Ke)if(ye=this.buildBevelVert(I,k,Y,0),he=this.buildBevelVert(I,j,ne,0),R?(y.push(me.topN,he.topP,ge.topN),y.push(me.topN,ye.topP,he.topP),y.push(he.bottomP,me.bottomN,ge.bottomN),y.push(he.bottomP,ye.bottomP,me.bottomN)):(y.push(ge.topN,me.topN,ye.topP),y.push(ge.topN,ye.topP,he.topP),y.push(ye.bottomP,me.bottomN,ge.bottomN),y.push(ye.bottomP,ge.bottomN,he.bottomP)),me=ye,ge=he,Be===Ke)for(let O=1;O<Be;O++)ye=this.buildBevelVert(I,k,(Y+O)%q,O/(Be-1)),he=this.buildBevelVert(I,j,(ne+O)%V,O/(Ke-1)),y.push(me.topN,ye.topP,ge.topN),y.push(ge.topN,ye.topP,he.topP),y.push(ye.bottomP,me.bottomN,ge.bottomN),y.push(ye.bottomP,ge.bottomN,he.bottomP),me=ye,ge=he;else if(Be>Ke){let O=Be/Ke,J=0;for(let ae=1;ae<Be;ae++)ye=this.buildBevelVert(I,k,(Y+ae)%q,ae/(Be-1)),y.push(me.topN,ye.topP,ge.topN),y.push(ye.bottomP,me.bottomN,ge.bottomN),me=ye,ae>(J+1)*O&&(J++,he=this.buildBevelVert(I,j,(ne+J)%V,J/(Ke-1)),y.push(ge.topN,ye.topP,he.topP),y.push(ye.bottomP,ge.bottomN,he.bottomP),ge=he)}else{let O=Ke/Be,J=0;for(let ae=1;ae<Ke;ae++)he=this.buildBevelVert(I,j,(ne+ae)%V,ae/(Ke-1)),y.push(ge.topN,ye.topP,he.topP),y.push(ye.bottomP,ge.bottomN,he.bottomP),ge=he,ae>(J+1)*O&&(J++,ye=this.buildBevelVert(I,k,(Y+J)%q,J/(Be-1)),y.push(me.topN,ye.topP,ge.topN),y.push(ye.bottomP,me.bottomN,ge.bottomN),me=ye)}Y=(Y+Be)%q,ne=(ne+Ke)%V,Ae=(Ae+1)%ue}while(Ae!==le)}{let z=F[0];for(let k=0,j=z.boundary.vertexCount;k<j;k++){let q=this.buildBevelVert(I,z,k),V=this.buildBevelVert(I,z,(k+1)%j);y.push(V.topP,q.topN,q.bottomN),y.push(V.topP,q.bottomN,V.bottomP)}}if(E){let z=[];for(let k=y.length-1;k>=Q+2;k-=3){let j=y[k-2],q=y[k-1],V=y[k-0];z.push(V,q,j)}y.splice(Q,y.length-Q,...z)}if(E){let z=[];for(let k=F[F.length-1].boundary.vertices.length-1;k>=1;k-=2){let j=F[F.length-1].boundary.vertices[k-1],q=F[F.length-1].boundary.vertices[k-0];z.push(j,q)}x.push(z)}if(!E){let z=F[F.length-1],k=Fo({windingRule:F.length>1?Ot.POSITIVE:Ot.ODD,elementType:bA.POLYGONS,vertexSize:2,strict:!0,contours:[z.insetPoints,...x]});if(!k)throw new Error("Error generating geometry for surface");c.length===0&&Object.assign(this,{capStartIndex:y.length});for(let j=0;j<k.elementCount*3;j+=3){let q=this.buildSurfaceVert(k,k.elements[j+0]),V=this.buildSurfaceVert(k,k.elements[j+1]),ue=this.buildSurfaceVert(k,k.elements[j+2]);y.push(q.top,V.top,ue.top),y.push(ue.bottom,V.bottom,q.bottom)}}this.vertexCache={}}this._buffer.shrink();let b=new Fe(Uint32Array.from(y),1),w=new Fe(this._buffer.positions,3),T=new Fe(this._buffer.normals,3),M=new Fe(this._buffer.uvs,2);w.needsUpdate=!0,T.needsUpdate=!0,M.needsUpdate=!0,b.needsUpdate=!0,this.setAttribute("position",w),this.setAttribute("normal",T),this.setAttribute("uv",M),this.setIndex(b)}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,d={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]=d,d}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,d;o!==a?(l=o,c=a,d=!1,u=t.continuous[l]&&t.continuous[c]):(c=o,l=(c-1+t.count)%t.count,d=t.concave[c]&&A.bevelI>0,u=t.continuous[c]||d);let h=Math.cos(A.angle),f=Math.sin(A.angle),p=r*2,m=c*2,g=l*2,y=A.boundary.vertices[p+0],x=A.boundary.vertices[p+1],b=(1-f)*this._bevelSize,w=(y-this._minX)/this._width,T=(x-this._minY)/this._height,M=t.normals[m+0],v=t.normals[m+1],E=t.normals[g+0],C=t.normals[g+1];if(d){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,L=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]=y,this._buffer.positions[D+1]=x,this._buffer.positions[D+2]=this._depth-b,this._buffer.normals[D+0]=M*h,this._buffer.normals[D+1]=v*h,this._buffer.normals[D+2]=f,this._buffer.uvs[L+0]=w,this._buffer.uvs[L+1]=T,this._buffer.positions[D+3]=y,this._buffer.positions[D+4]=x,this._buffer.positions[D+5]=b,this._buffer.normals[D+3]=M*h,this._buffer.normals[D+4]=v*h,this._buffer.normals[D+5]=-f,this._buffer.uvs[L+2]=T,this._buffer.uvs[L+3]=w,u||(P+=2,D+=6,L+=4,I.topP=P+0,I.bottomP=P+1,this._buffer.positions[D+0]=y,this._buffer.positions[D+1]=x,this._buffer.positions[D+2]=this._depth-b,this._buffer.normals[D+0]=E*h,this._buffer.normals[D+1]=C*h,this._buffer.normals[D+2]=f,this._buffer.uvs[L+0]=w,this._buffer.uvs[L+1]=T,this._buffer.positions[D+3]=y,this._buffer.positions[D+4]=x,this._buffer.positions[D+5]=b,this._buffer.normals[D+3]=E*h,this._buffer.normals[D+4]=C*h,this._buffer.normals[D+5]=-f,this._buffer.uvs[L+2]=T,this._buffer.uvs[L+3]=w),this.vertexCache[s]=I,I}clone(){let t=new Ac(this._shape,this._depth,this._bevel,this._curveSegments,this._bevelSegmentsInput);return t.userData=wo(this.userData),t}};var Sn=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:Ot.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());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 tc(n.shape,r,{windingRule:s}):o=new Ac(n.shape,e,t,r,A,s),Object.assign(o,{userData:{...n,type:"VectorGeometry"}})}};var QE=Math.PI*2,KE=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,d=h4(c,l,u,r*Math.PI/180,A,i);c.isClosed=!0,c.update();let h=Sn.create({shape:c,parameters:{subdivisions:d,depth:s,extrudeBevelSize:o,extrudeBevelSegments:a}});return Object.assign(h,{userData:{...n,type:"EllipseGeometry"}})}};function h4(n,e,t,A,r,i){if(A>=QE)return r>30||r%4===0?(p4(n,e,t,i),Math.round(r/4)):XE(n,A,r,e,t,i);A=Math.max(A,.001);let s={x:0,y:t},o=A+Math.PI*.5,a={x:Math.cos(o)*e,y:Math.sin(o)*t},c=HE({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?f4(n,s.x,s.y,c,r,e,t,i):XE(n,A,r,e,t,i)}function f4(n,e,t,A,r,i,s,o){let a=Math.round(r/A.length);n.addPoint(nc(e,t));for(let c=0,l=A.length;c<l;c++){let u=A[c],d=n.points[c],h=nc(u.x,u.y);d.controls[1].position.set(u.x1,u.y1),h.controls[0].position.set(u.x2,u.y2),n.addPoint(h)}return o>0?ZE(n,i,s,o):n.addPoint(nc(0,0)),a}function XE(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(nc(c,l))}return e<QE?i>0?ZE(n,A,r,i):n.addPoint(nc(0,0)):(n.removePoint(n.points[n.points.length-1]),i>0&&JE(n,A,r,i)),1}function p4(n,e,t,A=0,r=0,i=0){let s=.5522847498,o=e*s,a=t*s;n.addPoint(Vp(r-e,i,r-e,i-a,r-e,i+a)),n.addPoint(Vp(r,i+t,r-o,i+t,r+o,i+t)),n.addPoint(Vp(r+e,i,r+e,i+a,r+e,i-a)),n.addPoint(Vp(r,i-t,r+o,i-t,r-o,i-t)),A>0&&JE(n,e,t,A)}function nc(n,e){return new br(Ve.generateUUID(),new G(n,e))}function Vp(n,e,t,A,r,i){let s=nc(n,e);return s.controls[0].position.set(t,A),s.controls[1].position.set(r,i),s}function ZE(n,e,t,A){$E(n,e,t,A).forEach(i=>n.addPoint(i))}function JE(n,e,t,A){let r=$E(n,e,t,A),i=new yt;r.forEach(s=>i.addPoint(s)),i.isClosed=!0,n.shapeHoles.push(i)}function $E(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=Ve.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 eC=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,d=new sd(!1,e,t,A,r,i,s,o,a,c,l,u);return Object.assign(d,{userData:{...n,type:"HelixGeometry"}})}},sd=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,d=1){super();let h=e&&s===1;h&&(d=0),u>100&&(u=100);let f=()=>new S,p=new S,m=f(),g=f(),y=f(),x,b,w,T,M,v,E,C,P=f(),D=f(),L=f(),I=f(),B=f(),N=f(),W=f(),X=f(),F=A-2*a+.001,U=F/s,Q=Math.ceil(o*s),z=Q+1,k=F/Q,j=-F/2,q=l+1,V=2*Math.PI/l,ue=Math.PI/2/d,Ae=.01,Z=Math.min((1-u/100)*a,a-Ae),Y=a-Z,ne=0,le=2,se=d*le+le,Me=q*se/le,me=Me+q*z,ge=q*(z+se),[ye,he,De]=[3,3,2].map(ve=>Array(ge*ve).fill(0)),Be=[],Ke=i-a;function R(ve,H){let xe=Math.PI/2;v=H*k,C=2*Math.PI*(v%U)/U+xe,v+=j,E=Math.sin(C)*Ke,M=Math.cos(C)*Ke,e?ve.set(M,E,v):ve.set(M,v,E)}R(p,-1e-10),R(m,0),P.copy(p),R(p,1);let O=p.distanceTo(m),J=h?0:Y+Z,ae=O*Q+2*J,fe=Z,Ce=ae-J;for(let ve=0;ve<=Q;ve++){R(g,ve),X.subVectors(g,P).normalize(),P.copy(g),N.copy(g).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(g),$e=X.clone().multiplyScalar(H?-1:1).normalize();for(let st=0;st<q;st++){let vt=st*V;if(D.addVectors(p.copy(N).multiplyScalar(a*Math.cos(vt)),m.copy(W).multiplyScalar(a*Math.sin(vt))),L.copy(D).normalize(),H||xe){h||(ne=Je+st,[0,1,2].forEach(Tt=>{ye[ne*3+Tt]=be.getComponent(Tt),he[ne*3+Tt]=$e.getComponent(Tt)}),De[ne*2]=+xe,De[ne*2+1]=st/l),m.copy(L).multiplyScalar(Z),y.addVectors(g,m);for(let Tt=0;Tt<d;Tt++){let mn=Tt*ue+Te;I.addVectors(p.copy(X).multiplyScalar(Y*Math.sin(mn)),m.copy(L).multiplyScalar(Y*Math.cos(mn))),B.copy(I).normalize(),m.addVectors(y,I),I.normalize(),ne=Re+Tt*q+st,[0,1,2].forEach($o=>{ye[ne*3+$o]=m.getComponent($o),he[ne*3+$o]=B.getComponent($o)});let oh=+H+Math.sin(mn);De[ne*2]=(Qe+Y*oh)/ae,De[ne*2+1]=st/l}}m.addVectors(g,D),ne=Me+ve*q+st,[0,1,2].forEach(Tt=>{ye[ne*3+Tt]=m.getComponent(Tt),he[ne*3+Tt]=L.getComponent(Tt)}),De[ne*2]=(J+ve*O)/ae,De[ne*2+1]=st/l}}let Ge=z+2*d+le,re=1,[Ne,_e]=[+h,Ge-1];for(let ve=Ne;ve<=_e-1;ve++){let H=h&&ve===_e-1;for(let xe=0;xe<q-1;xe++)x=ve*q+xe,b=x+1,w=(H?xe:x)+q,T=(H?xe+1:b)+q,ve===0?Be.push(b,T,w):ve===Ge-2?Be.push(x,b,w):Be.push(x,b,w,b,T,w)}this.setIndex(Be),this.setAttribute("position",new Se(ye,3)),this.setAttribute("normal",new Se(he,3)),this.setAttribute("uv",new Se(De,2))}};var tC=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 od(e*.5,i,s):new _a(e*.5,r);return o.scale(1,t/e,A/e),Object.assign(o,{userData:{...n,type:"IcosahedronGeometry"}})}},od=class extends Ls{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 od(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 Pi;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 Pa(r.extractPoints(A).shape,t);return i.rotateZ(Math.PI),Object.assign(i,{userData:{...n,type:"LatheGeometry"}})}};var Jr=new de,y0=new dt,zp=new S,Rs=class extends Vt{constructor(){super(),this.uuid=Ve.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 rA().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 Jr.makeRotationX(e),this.applyMatrix4(Jr),this}rotateY(e){return Jr.makeRotationY(e),this.applyMatrix4(Jr),this}rotateZ(e){return Jr.makeRotationZ(e),this.applyMatrix4(Jr),this}translate(e,t,A){return Jr.makeTranslation(e,t,A),this.applyMatrix4(Jr),this}scale(e,t,A){return Jr.makeScale(e,t,A),this.applyMatrix4(Jr),this}lookAt(e){return y0.lookAt(e),y0.updateMatrix(),this.applyMatrix4(y0.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 d=0;d<i.count;d++)t.vertices.push(new S().fromBufferAttribute(i,d)),o!==void 0&&t.colors.push(new Le().fromBufferAttribute(o,d));function l(d,h,f,p){let m=o===void 0?[]:[t.colors[d].clone(),t.colors[h].clone(),t.colors[f].clone()],g=s===void 0?[]:[new S().fromBufferAttribute(s,d),new S().fromBufferAttribute(s,h),new S().fromBufferAttribute(s,f)],y=new rc(d,h,f,g,m,p);t.faces.push(y),a!==void 0&&t.faceVertexUvs[0].push([new G().fromBufferAttribute(a,d),new G().fromBufferAttribute(a,h),new G().fromBufferAttribute(a,f)]),c!==void 0&&t.faceVertexUvs[1].push([new G().fromBufferAttribute(c,d),new G().fromBufferAttribute(c,h),new G().fromBufferAttribute(c,f)])}let u=e.groups;if(u.length>0)for(let d=0;d<u.length;d++){let h=u[d],f=h.start,p=h.count;for(let m=f,g=f+p;m<g;m+=3)A!==void 0?l(A.getX(m),A.getX(m+1),A.getX(m+2),h.materialIndex):l(m,m+1,m+2,h.materialIndex)}else if(A!==void 0)for(let d=0;d<A.count;d+=3)l(A.getX(d),A.getX(d+1),A.getX(d+2));else for(let d=0;d<i.count;d+=3)l(d,d+1,d+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(zp).negate(),this.translate(zp.x,zp.y,zp.z),this}normalize(){this.computeBoundingSphere();let e=this.boundingSphere.center,t=this.boundingSphere.radius,A=t===0?1:1/t,r=new de;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 Rs;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 mt),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 rA().getNormalMatrix(t));for(let d=0,h=o.length;d<h;d++){let p=o[d].clone();t!==void 0&&p.applyMatrix4(t),s.push(p)}for(let d=0,h=u.length;d<h;d++)l.push(u[d].clone());for(let d=0,h=c.length;d<h;d++){let f=c[d],p,m,g=f.vertexNormals,y=f.vertexColors,x=new rc(f.a+i,f.b+i,f.c+i);x.normal.copy(f.normal),r!==void 0&&x.normal.applyMatrix3(r).normalize();for(let b=0,w=g.length;b<w;b++)p=g[b].clone(),r!==void 0&&p.applyMatrix3(r).normalize(),x.vertexNormals.push(p);x.color.copy(f.color);for(let b=0,w=y.length;b<w;b++)m=y[b],x.vertexColors.push(m.clone());x.materialIndex=f.materialIndex+A,a.push(x)}for(let d=0,h=e.faceVertexUvs.length;d<h;d++){let f=e.faceVertexUvs[d];this.faceVertexUvs[d]===void 0&&(this.faceVertexUvs[d]=[]);for(let p=0,m=f.length;p<m;p++){let g=f[p],y=[];for(let x=0,b=g.length;x<b;x++)y.push(g[x].clone());this.faceVertexUvs[d].push(y)}}}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 d=0;d<3;d++)if(u[d]===u[(d+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 f=this.parameters;for(let p in f)f[p]!==void 0&&(e[p]=f[p]);return e}let t=[];for(let f=0;f<this.vertices.length;f++){let p=this.vertices[f];t.push(p.x,p.y,p.z)}let A=[],r=[],i={},s=[],o={},a=[],c={};for(let f=0;f<this.faces.length;f++){let p=this.faces[f],m=!0,g=!1,y=this.faceVertexUvs[0][f]!==void 0,x=p.normal.length()>0,b=p.vertexNormals.length>0,w=p.color.r!==1||p.color.g!==1||p.color.b!==1,T=p.vertexColors.length>0,M=0;if(M=l(M,0,0),M=l(M,1,m),M=l(M,2,g),M=l(M,3,y),M=l(M,4,x),M=l(M,5,b),M=l(M,6,w),M=l(M,7,T),A.push(M),A.push(p.a,p.b,p.c),A.push(p.materialIndex),y){let v=this.faceVertexUvs[0][f];A.push(h(v[0]),h(v[1]),h(v[2]))}if(x&&A.push(u(p.normal)),b){let v=p.vertexNormals;A.push(u(v[0]),u(v[1]),u(v[2]))}if(w&&A.push(d(p.color)),T){let v=p.vertexColors;A.push(d(v[0]),d(v[1]),d(v[2]))}}function l(f,p,m){return m?f|1<<p:f&~(1<<p)}function u(f){let p=f.x.toString()+f.y.toString()+f.z.toString();return i[p]!==void 0||(i[p]=r.length/3,r.push(f.x,f.y,f.z)),i[p]}function d(f){let p=f.r.toString()+f.g.toString()+f.b.toString();return o[p]!==void 0||(o[p]=s.length,s.push(f.getHex())),o[p]}function h(f){let p=f.x.toString()+f.y.toString();return c[p]!==void 0||(c[p]=a.length/2,a.push(f.x,f.y)),c[p]}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 Rs().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 d=0,h=t.length;d<h;d++)this.vertices.push(t[d].clone());let A=e.colors;for(let d=0,h=A.length;d<h;d++)this.colors.push(A[d].clone());let r=e.faces;for(let d=0,h=r.length;d<h;d++)this.faces.push(r[d].clone());for(let d=0,h=e.faceVertexUvs.length;d<h;d++){let f=e.faceVertexUvs[d];this.faceVertexUvs[d]===void 0&&(this.faceVertexUvs[d]=[]);for(let p=0,m=f.length;p<m;p++){let g=f[p],y=[];for(let x=0,b=g.length;x<b;x++){let w=g[x];y.push(w.clone())}this.faceVertexUvs[d].push(y)}}let i=e.morphTargets;for(let d=0,h=i.length;d<h;d++){let f={};if(f.name=i[d].name,i[d].vertices!==void 0){f.vertices=[];for(let p=0,m=i[d].vertices.length;p<m;p++)f.vertices.push(i[d].vertices[p].clone())}if(i[d].normals!==void 0){f.normals=[];for(let p=0,m=i[d].normals.length;p<m;p++)f.normals.push(i[d].normals[p].clone())}this.morphTargets.push(f)}let s=e.morphNormals;for(let d=0,h=s.length;d<h;d++){let f={};if(s[d].vertexNormals!==void 0){f.vertexNormals=[];for(let p=0,m=s[d].vertexNormals.length;p<m;p++){let g=s[d].vertexNormals[p],y={};y.a=g.a.clone(),y.b=g.b.clone(),y.c=g.c.clone(),f.vertexNormals.push(y)}}if(s[d].faceNormals!==void 0){f.faceNormals=[];for(let p=0,m=s[d].faceNormals.length;p<m;p++)f.faceNormals.push(s[d].faceNormals[p].clone())}this.morphNormals.push(f)}let o=e.skinWeights;for(let d=0,h=o.length;d<h;d++)this.skinWeights.push(o[d].clone());let a=e.skinIndices;for(let d=0,h=a.length;d<h;d++)this.skinIndices.push(a[d].clone());let c=e.lineDistances;for(let d=0,h=c.length;d<h;d++)this.lineDistances.push(c[d]);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 v0().fromGeometry(this),t=new Ie,A=new Float32Array(e.vertices.length*3);if(t.setAttribute("position",new Fe(A,3).copyVector3sArray(e.vertices)),e.normals.length>0){let r=new Float32Array(e.normals.length*3);t.setAttribute("normal",new Fe(r,3).copyVector3sArray(e.normals))}if(e.colors.length>0){let r=new Float32Array(e.colors.length*3);t.setAttribute("color",new Fe(r,3).copyColorsArray(e.colors))}if(e.uvs.length>0){let r=new Float32Array(e.uvs.length*2);t.setAttribute("uv",new Fe(r,2).copyVector2sArray(e.uvs))}if(e.uvs2.length>0){let r=new Float32Array(e.uvs2.length*2);t.setAttribute("uv2",new Fe(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}};Rs.prototype.isGeometry=!0;var v0=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 g=0;g<a;g++)c[g]={name:o[g].name,data:[]};this.morphTargets.position=c}let l=e.morphNormals,u=l.length,d;if(u>0){d=[];for(let g=0;g<u;g++)d[g]={name:l[g].name,data:[]};this.morphTargets.normal=d}let h=e.skinIndices,f=e.skinWeights,p=h.length===A.length,m=f.length===A.length;A.length>0&&t.length===0&&console.error("THREE.DirectGeometry: Faceless geometries are not supported.");for(let g=0;g<t.length;g++){let y=t[g];this.vertices.push(A[y.a],A[y.b],A[y.c]);let x=y.vertexNormals;if(x.length===3)this.normals.push(x[0],x[1],x[2]);else{let w=y.normal;this.normals.push(w,w,w)}let b=y.vertexColors;if(b.length===3)this.colors.push(b[0],b[1],b[2]);else{let w=y.color;this.colors.push(w,w,w)}if(i===!0){let w=r[0][g];w!==void 0?this.uvs.push(w[0],w[1],w[2]):(console.warn("THREE.DirectGeometry.fromGeometry(): Undefined vertexUv ",g),this.uvs.push(new G,new G,new G))}if(s===!0){let w=r[1][g];w!==void 0?this.uvs2.push(w[0],w[1],w[2]):(console.warn("THREE.DirectGeometry.fromGeometry(): Undefined vertexUv2 ",g),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[y.a],T[y.b],T[y.c])}for(let w=0;w<u;w++){let T=l[w].vertexNormals[g];d[w].data.push(T.a,T.b,T.c)}p&&this.skinIndices.push(h[y.a],h[y.b],h[y.c]),m&&this.skinWeights.push(f[y.a],f[y.b],f[y.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}},rc=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 Le,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 m4=["a","b","c"];function g4(n,e){switch(e){case"c":return n.c;case"b":return n.b;case"a":default:return n.a}}function x0(n,e,t){let A=Math.min(n,e),r=Math.max(n,e),i=A+"_"+r;return t.get(i)}function b0(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 y4(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],b0(s.a,s.b,n,A,s,t),b0(s.b,s.c,n,A,s,t),b0(s.c,s.a,n,A,s,t)}function Hp(n,e,t,A,r){n.push(new rc(e,t,A,void 0,void 0,r))}function ic(n,e){return Math.abs(e-n)/2+Math.min(n,e)}function Wp(n,e,t,A){n.push([e.clone(),t.clone(),A.clone()])}var jp=class{constructor(e=1){this.subdivisions=e}modify(e){e instanceof Ie?e=new Rs().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,d=[],h=new Map;y4(a,c,d,h);let f=[],p,m,g,y,x,b,w;for(let Ae of Array.from(h.keys())){for(m=h.get(Ae),g=new S,x=3/8,b=1/8,w=m.faces.length,w!=2&&(x=.5,b=0,w!=1),g.addVectors(m.a,m.b).multiplyScalar(x),t.set(0,0,0),s=0;s<w;s++){for(y=m.faces[s],o=0;o<3&&(p=a[g4(y,m4[o])],!(p!==m.a&&p!==m.b));o++);p&&t.add(p)}t.multiplyScalar(b),g.add(t),m.newEdge=f.length,f.push(g)}let T,M,v,E,C,P,D,L=[];for(r=0,i=a.length;r<i;r++){for(P=a[r],C=d[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],p=E.a!==P?E.a:E.b,t.add(p);t.multiplyScalar(Number(v)),D.add(t),L.push(D)}let I=L.concat(f),B=L.length,N,W,X,F=[],U=[],Q,z,k,j,q=new G,V=new G,ue=new G;for(r=0,i=c.length;r<i;r++)y=c[r],N=Number(x0(y.a,y.b,h).newEdge)+B,W=Number(x0(y.b,y.c,h).newEdge)+B,X=Number(x0(y.c,y.a,h).newEdge)+B,Hp(F,N,W,X,y.materialIndex),Hp(F,y.a,N,X,y.materialIndex),Hp(F,y.b,W,N,y.materialIndex),Hp(F,y.c,X,W,y.materialIndex),u&&(Q=l[r],z=Q[0],k=Q[1],j=Q[2],q.set(ic(z.x,k.x),ic(z.y,k.y)),V.set(ic(k.x,j.x),ic(k.y,j.y)),ue.set(ic(z.x,j.x),ic(z.y,j.y)),Wp(U,q,V,ue),Wp(U,z,q,ue),Wp(U,k,V,q),Wp(U,j,ue,V));e.vertices=I,e.faces=F,u&&(e.faceVertexUvs[0]=U)}};var wA=new S,nC=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,e){let t=n.geometry??e?.geometry??new Ie().copy(new PA(100,100,100)),A;e===void 0?(t.computeBoundingBox(),t.boundingBox.getSize(wA),A={width:wA.x,height:wA.y,depth:wA.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 PA(100,100,100)),s=i.userData.parameters;s===void 0?(i.computeBoundingBox(),i.boundingBox.getSize(wA)):wA.set(s.width,s.height,s.depth),(e!==wA.x||t!==wA.y||A!==wA.z)&&i.scale(wA.x===0?1:e/wA.x,wA.y===0?1:t/wA.y,wA.z===0?1:A/wA.z);let o=i.originalGeometry;return r>0?(o===void 0||s?.subdivisions!==r)&&(o===void 0&&(o=i),i=new jp(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 Ga(t).load(n,r=>{let i=this.normalizeInputs({geometry:r});r.boundingBox.getSize(wA);let s=100/wA.x;Object.assign(i.parameters,{width:100,height:wA.y*s,depth:wA.z*s}),e(this.build(i))})}};var rC=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,d=0,h=2*Math.PI/A;for(let p=0;p<A;p++){let m=h*p,g=u+Math.sin(m)*c,y=d+Math.cos(m)*l;a.addPoint(a.createPoint(g,y))}a.isClosed=!0;for(let p=0,m=a.points.length;p<m;p++)a.points[p].roundness=r;a.roundness=r,a.update();let f=Sn.create({shape:a,parameters:{roundness:r,depth:i,extrudeBevelSize:s,extrudeBevelSegments:o}});return Object.assign(f,{userData:{...n,type:"PolygonGeometry"}})}};var iC=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 S0(e*.5,t,r,i,s,o,a);return c.scale(1,1,A/e),Object.assign(c,{userData:{...n,type:"PyramidGeometry"}})}};function ad(n,e,t){t.x=n.x*e.x,t.y=n.y,t.z=n.x*e.y}function w0(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 v4(n,e,t){let A=n.clone().sub(e),r=t.clone().sub(e);return A.projectOnVector(r),A.add(e)}var S0=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=[],d=0,h=t/2,f=Math.PI/A,p=e*Math.cos(Math.PI/A),m=2*Math.PI/A,g=(A-2)*Math.PI/A,y=Math.PI-g,x=new S(0,-h,0),b=new S(0,h,0),w=new G(e,-h),T=new G(p,-h),M=new G(0,b.y).sub(T),v=new G(0,b.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 L;{let U=new S(E.x,E.y,0),Q=new S(Math.cos(m)*U.x,U.y,Math.sin(m)*U.x);L=U.angleTo(Q)}let I=s/Math.tan((Math.PI-M.angle())/2),B=s/Math.tan((Math.PI-L)/2),N=new S;if(!i){c.push(x.x,x.y,x.z),l.push(0,-1,0),u.push(0,0);let U=d++,Q=[],z=w.clone(),k=I/Math.cos(Math.PI/A);z.x-=k;for(let j=0;j<A;j++){let q=j/A*Math.PI*2+f,V=new G(Math.sin(q),Math.cos(q));ad(z,V,N),c.push(N.x,N.y,N.z),l.push(0,-1,0),u.push(0,0),Q.push(d++)}for(let j=0;j<Q.length;j++)a.push(Q[j],U,Q[(j+1)%Q.length])}let W=[];{let U=new S,Q=new S,z=new S,k=new S,j=new S,q=new S;for(let V=0;V<A;V++){let ue=V/A*Math.PI*2+f,Ae=(V+.5)/A*Math.PI*2+f,Z=(V+1)/A*Math.PI*2+f,Y=new G(Math.sin(ue),Math.cos(ue)),ne=new G(Math.sin(Ae),Math.cos(Ae)),le=new G(Math.sin(Z),Math.cos(Z));ad(w,Y,Q),ad(w,le,z),ad(E,ne,U),w0(b,Q,z,B,B,k),c.push(k.x,k.y,k.z),w0(Q,b,z,B,I,j),c.push(j.x,j.y,j.z),w0(z,Q,b,I,B,q),c.push(q.x,q.y,q.z),l.push(U.x,U.y,U.z),l.push(U.x,U.y,U.z),l.push(U.x,U.y,U.z),u.push(0,0),u.push(0,0),u.push(0,0);let se=d++,Me=d++,me=d++;if(a.push(se,Me,me),s>0){{let he=Q.clone().add(z).multiplyScalar(.5),De=b.clone().sub(he).normalize(),Ke=x.clone().sub(he).normalize().add(De).normalize().multiplyScalar(-1),R=q.clone().sub(j);X(he,R,Ke,M.angle())}let ge,ye;{let he=new S;ad(C,le,he);let De=q.clone().add(k).multiplyScalar(.5);De=v4(De,z,b);let Be=q.clone().sub(k);[ge,ye]=X(De,Be,he,L,k.y)}{let he=ge,De=he.clone().setY(0).normalize(),Be=new S(0,-1,0),Ke=De.clone().cross(Be);F(he,De,Be,Ke)}W.concat(ye);{let he=M.angle(),De=Math.PI-he,Be=b.clone();Be.y-=s/Math.sin(he-Math.PI/2);let Ke=new S,R=[];for(let J=0;J<o;J++){let ae=[],fe=Math.PI/2-De*J/o,Ce=Math.cos(fe),Ge=Math.sin(fe),re=Ae;for(let Ne=0;Ne<=J;Ne++){let _e=Math.cos(re),ve=Math.sin(re);U.x=Ce*ve,U.y=Ge,U.z=Ce*_e,Ke.copy(Be).addScaledVector(U,s),c.push(Ke.x,Ke.y,Ke.z),l.push(U.x,U.y,U.z),u.push(0,0),ae.push(d++),re+=Math.PI*2/J/A}R.push(ae)}ye.reverse(),R.push(ye);let O=R.length-1;for(let J=0;J<O;J++){let ae=R[J],fe=R[J+1],Ce=ae.length-1;a.push(fe[1],ae[0],fe[0]);for(let Ge=1;Ge<=Ce;Ge++)a.push(ae[Ge],ae[Ge-1],fe[Ge]),a.push(fe[Ge+1],ae[Ge],fe[Ge])}}}}}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(U,Q,z,k,j){let q=-k/2,V=(Math.PI-k)/2,ue=Q.clone().normalize().cross(z);U.addScaledVector(z,-s/Math.sin(V));let Ae=new S,Z=new S,Y=1,ne=d,le=[];for(let se=0;se<=o;se++){let Me=q+se/o*k;Z.set(0,0,0),Z.addScaledVector(ue,Math.sin(Me)),Z.addScaledVector(z,Math.cos(Me));for(let me=0;me<=Y;me++){let ge=me/Y-.5;if(Ae.copy(U),Ae.addScaledVector(Q,ge),Ae.addScaledVector(Z,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(Z.x,Z.y,Z.z),u.push(0,0),me===0&&le.push(d),d++}}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,he=me+1;a.push(me,ge,he),a.push(ge,ye,he)}return[U.clone().addScaledVector(Q,.5),le]}function F(U,Q,z,k){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)*y,ge=Math.cos(me),ye=Math.sin(me),he=Math.atan(Math.tan(q)*ge),De=(j+he)*le,Be=Math.cos(De),Ke=Math.sin(De);ue.set(0,0,0),ue.addScaledVector(Q,Ke*ge),ue.addScaledVector(z,Be),ue.addScaledVector(k,Ke*ye),Ae.copy(U).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(d++)}V.push(ne)}let Z=V.length-1;for(let Y=0;Y<Z;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 sC=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 d(b,w,T){return w>t&&T>A?Math.min(b*t/w,b*A/T):w>t?b*t/w:T>A?b*A/T:b}let h=[];h[0]=r[0]===0?0:d(r[0],r[0]+r[3],r[0]+r[1]),h[1]=r[1]===0?0:d(r[1],r[1]+r[2],r[1]+r[0]),h[2]=r[2]===0?0:d(r[2],r[2]+r[1],r[2]+r[3]),h[3]=r[3]===0?0:d(r[3],r[3]+r[0],r[3]+r[2]);let f=l.x,p=u.x,m=u.y,g=l.y;e.addPoint(e.createPoint(f,m)),e.addPoint(e.createPoint(p,m)),e.addPoint(e.createPoint(p,g)),e.addPoint(e.createPoint(f,g)),e.isClosed=!0;let y=!0;for(let b=0,w=e.points.length;b<w;b++)e.points[b].roundness=h[b],b>0&&h[b]!==h[b-1]&&(y=!1);y&&(e.roundness=h[0]),e.useCubicForRoundedCorners=i!==1,e.update();let x=Sn.create({shape:e,parameters:{depth:s,extrudeBevelSize:o,extrudeBevelSegments:a}});return Object.assign(x,{userData:{...n,type:"RectangleGeometry"}})}};var oC=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 fo(.5*e,r,i,s,o,a,c);return l.scale(1,t/e,A/e),Object.assign(l,{userData:{...n,type:"SphereGeometry"}})}};var 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,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 Ci(e,t,A,r);return i.scale(1,1,1),Object.assign(i,{userData:{...n,type:"PlaneGeometry"}})}};var lC=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 T0(e,t,A,r,i,s);return Object.assign(o,{userData:{...n,type:"BackdropGeometry"}})}},T0=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=[],d=Math.PI/2,h=(Ae=0,Z=0,Y=0)=>new S(Ae,Z,Y),f=h(),p=h(),[m,g,y]=[t/2,e/2,A/2],x=-g,b=+g,[w,T,M]=[h(x,-m,+y),h(x,-m,-y),h(x,+m,-y)],v=(Ae,Z=!1)=>Math.sin(Ae-Math.PI/(1+ +Z)),E=(Ae,Z=!1)=>Math.cos(Ae-Math.PI/(1+ +Z));M.y=Math.sin(r)*t-m;let C=Math.cos(r)*t-y,P=w.z-l;r<=d?(M.z=Math.min(C,P),M.z==P&&(M.y-=(C-P)/Math.tan(d-r))):T.z=Math.min(T.z-C-y,w.z-l),f.subVectors(w,T),p.subVectors(M,T);let D=Math.min(f.length(),p.length())*i/100,L=D*Math.tan(r/2),I=D/Math.cos(r/2),B=f.clone().normalize().add(p.normalize()).setLength(I).add(T);f.set(0,v(r,!0),E(r,!0)),u.push([M,f.clone()]);let N=(Math.PI-r)/s;for(let Ae=0;Ae<=s;Ae++){let Z=d+r+Ae*N;f.set(0,Math.sin(Z)*L,Math.cos(Z)*L),f.add(B),p.set(0,v(Z),E(Z)),u.push([f.clone(),p.clone()])}u.push([w,h(0,1,0)]);let W=Math.sin(N/2)*L*2,X=u.length-1,F=u[0][0].distanceTo(u[1][0]),U=u[X-1][0].distanceTo(u[X][0]),Q=F+W*s+U;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,k,j]=u[0],q,V,ue;for(let Ae=1;Ae<u.length;Ae++)[q,V,ue]=u[Ae],o.push(x,z.y,z.z,x,q.y,q.z,b,z.y,z.z,b,z.y,z.z,x,q.y,q.z,b,q.y,q.z),a.push(0,k.y,k.z,0,V.y,V.z,0,k.y,k.z,0,k.y,k.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,k,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 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,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,d=t*.5,h=0,f=0,p=s*Math.PI/360/r,m=Math.PI/2*3*-1,g=u*A/100,y=d*A/100;if(r===3&&A===50){p=2*Math.PI/r;for(let b=0;b<r;b++){let w=p*b,T=h+Math.sin(w)*u,M=f+Math.cos(w)*d;l.addPoint(l.createPoint(T,M))}}else for(let b=0;b<r;b++){let w=h+Math.cos(m)*u,T=f+Math.sin(m)*d;l.addPoint(l.createPoint(w,T)),m+=p,w=h+Math.cos(m)*g,T=f+Math.sin(m)*y,b<=r,l.addPoint(l.createPoint(w,T)),m+=p}l.isClosed=!0;for(let b=0,w=l.points.length;b<w;b++)l.points[b].roundness=i;l.roundness=i,l.update();let x=Sn.create({shape:l,parameters:{roundness:i,depth:o,extrudeBevelSize:a,extrudeBevelSegments:c}});return Object.assign(x,{userData:{...n,type:"StarGeometry"}})}};var uC=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 Ci(e,t);return Object.assign(A,{userData:{...n,type:"TextFrameGeometry"}})}};var dC=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=x4(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 x4(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 sd(!0,n,e,t,A,r,i,s,o,a,c,l)}var hC=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 Ra(o,t,A,r,i,s);return Object.assign(a,{userData:{...n,type:"TorusKnotGeometry"}})}};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,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 d=0,h=a.points.length;d<h;d++)a.points[d].roundness=A;a.roundness=A,a.update();let u=Sn.create({shape:a,parameters:{roundness:A,depth:r,extrudeBevelSize:i,extrudeBevelSegments:s}});return Object.assign(u,{userData:{...n,type:"TriangleGeometry"}})}};function b4(){let n=new Ie;return n.setAttribute("position",new Fe(new Float32Array([]),3)),n.setIndex(new Fe(new Uint16Array([]),1)),n}var w4=12,S4=1,sc=class extends Ie{constructor(t,A){super();this.charWidths=[];this.charCoords=[];this.wrappedText=[];this.isLowResolution=!1;this.vectorShapes=[];this.userData={parameters:t,type:"TextGeometry"};let r=A.getFont(t.font);r?.isLoaded?(this.font=r,this.update(t)):this.updateFont(t.font,A).then(()=>{this.update(t),A?.requestRender()})}async updateFont(t,A){let r=A.getFont(t);r&&(this.font=r,await r.loadingPromise)}update(t){let A=this.font;if(this.userData={parameters:t,type:"TextGeometry"},!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}=t,u=l===2?c.toUpperCase():l===3?c.toLowerCase():c,d=T4(t,A,u),{shapes:h,charWidths:f,charCoords:p}=A.generateShapes(d,t),m=r*.5,g=i*.5,y=h.map(w=>new yt().fromShape(w));this.vectorShapes=y;let x=y.map(w=>Sn.create({shape:w,parameters:{depth:s,extrudeBevelSegments:a,extrudeBevelSize:o,windingRule:s<=0?Ot.NONZERO:Ot.ODD,subdivisions:this.isLowResolution&&s>0?S4:w4}})),b=x.length?Fi(x):b4();b.translate(-m,g,0),this.dispose(),this.wrappedText=d,this.charCoords=p,this.charWidths=f,this.deleteAttribute("extrudeNormal"),Object.entries(b.attributes).forEach(([w,T])=>{this.setAttribute(w,T)}),this.setIndex(b.index),this.computeBoundingSphere()}clone(){let t=Qr(new Ie,sc.prototype);return t.copy(this),console.log("CloneGeometry",this,t),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 T4(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}var mC,oc=new Promise(n=>{mC=n}),pC=!1;async function gC(){if(pC)return;let e=!1?".":"https://unpkg.com/@splinetool/modelling-wasm@0.9.184/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});mC(i),pC=!0}function Uo(n,e,t){let A={parameters:n,type:n.type};if(n.type==="VectorGeometry"){let i=yt.createFromState(n.shape,n.width,n.height);A.shape=i}else if(n.type==="NonParametricGeometry")n.data.groups&&n.data.groups.forEach(i=>i.materialIndex=Math.max(i.materialIndex??0,0)),A.geometry=new Ga().parse(n);else{if(n.type==="SubdivGeometry")return new oA(n,t);if(n.type==="TextGeometry")return new sc(n,e)}let r;try{r=M0(A)}catch(i){console.error(i)}if(!r){let i=yt.createFromState(Dl.defaultData(),100,100);A.shape=i,r=M0(A)}return r}var M4=new de;function ld(n,e,t,A){let r=n.position.array,i=n.normal.array,s=M4.makeScale(e,t,A).invert().elements,o,a,c;for(var l=0,u=r.length;l<u;l+=3)r[l]*=e,r[l+1]*=t,r[l+2]*=A,o=i[l],a=i[l+1],c=i[l+2],i[l]=s[0]*o+s[4]*a+s[8]*c,i[l+1]=s[1]*o+s[5]*a+s[9]*c,i[l+2]=s[2]*o+s[6]*a+s[10]*c;n.position.needsUpdate=!0,n.normal.needsUpdate=!0}var Yp=new mt,ac=new S,ze;oc.then(n=>{ze=n});var yC=new Float32Array([10,10,0,-10,10,0,-10,-10,0,10,-10,0]),vC=new Uint32Array([0,1,2,3]),xC=new Uint8Array([4]),oA=class extends Ie{constructor(t,A){super();this.data=t;this.flatShading=A;this.subdivPointer=0;this.rebuild(),this.freeSubdivPointer()}mutateDirectlyScaleBaked(t,A){this.freeSubdivPointer();let r=this.data.scaleBaked,i=qr.div(A,r);this.subdividedGeometry&&ld(this.subdividedGeometry.attributes,...i),this.originalGeometry&&ld(this.originalGeometry.attributes,...i),this.data=t;let s=this.userData.parameters;this.userData.parameters={width:s.width*i[0],height:s.height*i[1],depth:s.depth*i[2]},this.originalGeometry.boundingSphere.center.multiply(ac.fromArray(i));let o=ac.set(s.width,s.height,s.depth).length();this.originalGeometry.boundingSphere.radius=o/2}ensureSubdivPointer(){return this.subdivPointer===0&&this.rebuild(),this.subdivPointer}rebuild(){let t,A,r;try{({originalGeometry:t,subdividedGeometry:A,subdivPointer:r}=oA.build(this.data,void 0,!this.flatShading,void 0))}catch{t=new PA(100,100,100),r=0}this.subdivPointer=r,this.originalGeometry=t,this.subdividedGeometry=A??void 0;let i=this.subdividedGeometry??this.originalGeometry;Object.assign(this,i),this.calcBoundingBox()}freeSubdivPointer(){this.subdivPointer&&(oA.freeSubdivPointer(this.subdivPointer),this.subdivPointer=0)}dispose(){super.dispose(),this.freeSubdivPointer()}calcBoundingBox(){let t=this.originalGeometry;t.boundingSphere===null&&(t.boundingSphere=new dA,this.subdividedGeometry&&(this.subdividedGeometry.boundingSphere=t.boundingSphere));let A=t.attributes.position,r=t.boundingSphere.center;Yp.setFromBufferAttribute(A),Yp.getCenter(r),t.boundingSphere.radius=r.distanceTo(Yp.max),isNaN(t.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.',this),Yp.getSize(ac);let i={width:ac.x,height:ac.y,depth:ac.z};return this.userData.parameters=i,i}static build(t,A,r,i){let s,o,a,c=t?.phongAngle??35;r===!1&&(c=-1),A&&(ze.free_bvh(A),ze.free_subdivision_surface(A));try{s=oA.allocate(t,i)}catch(l){console.error(l,t),s=oA.allocate({positionWASM:yC,indexWASM:vC,verticesPerFaceWASM:xC},i)}if(ze.set_destination_refinement_level(s,0),o=oA.buildLevel(s,!0,c),t.subdivisions>0)try{ze.set_destination_refinement_level(s,t.subdivisions),a=oA.buildLevel(s,!1,c)}catch{try{ze.set_destination_refinement_level(s,t.subdivisions-1),a=oA.buildLevel(s,!1,c)}catch{a=null}}else a=null;return{subdivPointer:s,originalGeometry:o,subdividedGeometry:a}}static primitiveToQuads(t,A,r){t.widthSegments>16&&(t.widthSegments=16),t.heightSegments>16&&(t.heightSegments=16),t.depthSegments>16&&(t.depthSegments=16),t.radialSegments>16&&(t.radialSegments=16),t.type==="DodecahedronGeometry"&&(t.detail=0);let i=t.shape!==void 0?A.geometry:Uo(t,r,!1),s,o,a,c;({positions:s,triIndices:c}=cd(i.getAttribute("position"),i.getIndex()));let l;if(t.type==="CylinderGeometry"&&t.cornerRadius===0&&t.hollow===0&&t.openEnded===!1){let u=t.radialSegments*t.heightSegments*3*2,d=u+t.radialSegments*3;l=[u,d]}return{indices:o,verticesPerFace:a}=D0(s,c,i,l),{positions:s,indices:o,verticesPerFace:a}}static allocate(t,A){let r,i,s,o=[],a=[];t.positionWASM&&t.positionWASM.length>0?(r=t.positionWASM,i=t.indexWASM,s=t.verticesPerFaceWASM):(r=yC,i=vC,s=xC);let c=r.length,l=i.length,u=s.length,d=r.length+o.length+a.length,h=i.length+s.length,f=d*Float32Array.BYTES_PER_ELEMENT+h*Uint32Array.BYTES_PER_ELEMENT,p=d*Float32Array.BYTES_PER_ELEMENT,m=h*Uint32Array.BYTES_PER_ELEMENT,g=ze._malloc(f),y=new Float32Array(ze.HEAPF32.buffer,g,d),x=new Uint32Array(ze.HEAPU32.buffer,g+p,h);y.set(r,0),y.set(o,r.length),y.set(a,r.length+o.length),x.set(i,0),x.set(s,i.length);let b;t?.scaleBaked?.some(T=>T!==1)&&(b=new de().makeScale(...t.scaleBaked)),A&&(b?b.premultiply(A):b=A);let w=b?ze.alloc_subdivision_surface2(g,c,g+p,l,g+p+i.length*Uint32Array.BYTES_PER_ELEMENT,u,b.elements):ze.alloc_subdivision_surface(g,c,g+p,l,g+p+i.length*Uint32Array.BYTES_PER_ELEMENT,u);return ze._free(g),w}static buildLevel(t,A,r,i,s){let o=s?ze.get_mesh_data2(t,A?ze.Level.CONTROL:ze.Level.REFINED,r,s.elements):ze.get_mesh_data(t,A?ze.Level.CONTROL:ze.Level.REFINED,r),a=8,c=ze.HEAPU32.subarray(o>>2,(o>>2)+a),l=c.subarray(4,4+4),u=0,d=ze.HEAPU32[c[u]>>2],h=ze.HEAPF32.subarray(d>>2,(d>>2)+l[u]);u++;let f=ze.HEAPU32[c[u]>>2],p=ze.HEAPF32.subarray(f>>2,(f>>2)+l[u]);u++;let m=ze.HEAPU32[c[u]>>2],g=ze.HEAPU32.subarray(m>>2,(m>>2)+l[u]);u++;let y=ze.HEAPU32[c[u]>>2],x=ze.HEAPU32.subarray(y>>2,(y>>2)+l[u]);if(u++,i===void 0){let b=new Ie;if(b.setIndex(new as(x,1)),b.setAttribute("position",new Se(h,3)),b.setAttribute("normal",new Se(p,3)),A){b.setAttribute("faceMap",new as(g,1));let w=new Float32Array(p.length/3*4).fill(0);b.setAttribute("color",new Fe(w,4))}return ze.free_mesh_data(o),b.userData.type="SubdivGeometry",b}i.getAttribute("position").copyArray(h),i.getAttribute("normal").copyArray(p),i.attributes.position.needsUpdate=!0,i.attributes.normal.needsUpdate=!0,ze.free_mesh_data(o)}static freeSubdivPointer(t){ze.free_bvh(t),ze.free_subdivision_surface(t)}static buildControlCageWireframe(t,A,r){let i=ze.get_wireframe_data_for_base_level(t),s=4,o=ze.HEAPU32.subarray(i>>2,(i>>2)+s),a=o.subarray(2,2+2),c=0,l=ze.HEAPU32[o[c]>>2],u=ze.HEAPF32.subarray(l>>2,(l>>2)+a[c]);c++;let d=ze.HEAPU32[o[c]>>2],h=ze.HEAPU32.subarray(d>>2,(d>>2)+a[c]);if(A===void 0){let f=new Ie;f.setAttribute("position",new Se(u,3));let p=new Float32Array(u.length);for(let m=0,g=u.length;m<g;)p[m++]=r.r,p[m++]=r.g,p[m++]=r.b;return f.setAttribute("color",new Fe(p,3)),f.setIndex(new as(h,1)),ze.free_wireframe_data_for_base_level(i),f}A.getAttribute("position").copyArray(u),A.attributes.position.needsUpdate=!0,ze.free_wireframe_data_for_base_level(i)}static updateCollabMesh(t,A,r){let i=A===0;i||ze.set_destination_refinement_level(t,A);let s=r?ze.get_topological_data2(t,i?ze.Level.CONTROL:ze.Level.REFINED,r.elements):ze.get_topological_data(t,i?ze.Level.CONTROL:ze.Level.REFINED),o=6,a=ze.HEAPU32.subarray(s>>2,(s>>2)+o),c=a.subarray(3,3+3),l=0,u=ze.HEAPU32[a[l]>>2],d=new Float32Array(ze.HEAPF32.subarray(u>>2,(u>>2)+c[l]));l++;let h=ze.HEAPU32[a[l]>>2],f=new Uint32Array(ze.HEAPU32.subarray(h>>2,(h>>2)+c[l]));l++;let p=ze.HEAPU32[a[l]>>2],m=new Uint8Array(ze.HEAPU32.subarray(p>>2,(p>>2)+c[l]));return ze.free_topological_data(s),{positions:d,indices:f,verticesPerFace:m}}};var bC=["getX","getY","getZ"];function cd(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 d=0;d<3;d++)u+=`${~~(n[bC[d]](l)*o)},`;if(u in t)i.push(t[u]);else{for(let d=0;d<3;d++)s.push(n[bC[d]](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 qp=new S,E0=new S,C0=new S,P0=new S;function D0(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,d)=>Math.floor(d/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]){qp.set(n[e[s]*3],n[e[s]*3+1],n[e[s]*3+2]),E0.set(n[e[s+1]*3],n[e[s+1]*3+1],n[e[s+1]*3+2]),C0.set(n[e[s+4]*3],n[e[s+4]*3+1],n[e[s+4]*3+2]),P0.set(n[e[s+5]*3],n[e[s+5]*3+1],n[e[s+5]*3+2]),E0.sub(qp).normalize(),C0.sub(qp).normalize(),P0.sub(qp).normalize();let a=E0.cross(C0).dot(P0);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={};ub(wr,{calcBoolean:()=>P4,calcBooleanTopological:()=>C4,freeMeshSet:()=>O4,getMeshSet:()=>D4,transformMeshSet:()=>I4});var SC,TC=new Promise(n=>{SC=n}),wC=!1;async function MC(){if(wC)return;let e=!1?".":"https://unpkg.com/@splinetool/boolean-wasm@0.9.184/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});SC(i),wC=!0}var lt,lc;TC.then(n=>lt=n);function E4(n,e,t){let A,{positions:r,triIndices:i}=cd(n.getAttribute("position"),n.getIndex()),s;if(e&&t){let{indices:o,verticesPerFace:a}=D0(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 EC(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 CC(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 C4(n,e){lc===void 0&&(lc=lt.init_csg());let t=EC(n),A=lt.csg_calc_topological(lc,t,n.length,CC(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 d=lt.HEAPU32[i[o]>>2],h=new Uint8Array(lt.HEAPU32.subarray(d>>2,(d>>2)+s[o]));return lt.free_mesh_data(A),{positions:c,indices:u,verticesPerFace:h}}function P4(n,e,t,A){lc===void 0&&(lc=lt.init_csg());let r=EC(n),i=lt.csg_calc(lc,r,n.length,A,CC(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 d=lt.HEAPU32[o[c]>>2],h=lt.HEAPF32.subarray(d>>2,(d>>2)+a[c]);c++;let f=a[c];t.setAttribute("position",new Se(u,3)),t.setAttribute("normal",new Se(h,3));let p=lt.HEAPF32.subarray((i>>2)+5,(i>>2)+5+6);return t.boundingSphere===null&&(t.boundingSphere=new dA),t.boundingSphere.center.set(p[0],p[1],p[2]),t.boundingSphere.radius=(p[3]**2+p[4]**2+p[5]**2)**.5,t.userData.parameters={width:p[3]*2,height:p[4]*2,depth:p[5]*2},lt.free_mesh_data(i),f}function D4(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((g,y)=>g+y,0)+i);for(let g=0,y=0,x=0;g<m.verticesPerFace.length;g++){r[x++]=m.verticesPerFace[g];for(let b=0;b<m.verticesPerFace[g];b++)r[x++]=m.indices[y++]}}else({positions:A,faceIndices:r,nFaces:i}=E4(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,d=c*Uint32Array.BYTES_PER_ELEMENT,h=lt._malloc(l),f=new Float32Array(lt.HEAPF32.buffer,h,a),p=new Uint32Array(lt.HEAPU32.buffer,h+u,c);return f.set(A,0),p.set(r,0),lt.get_csg_mesh(h,s,h+u,o,i)}function I4(n,e){lt.transform_csg_mesh(n,e.elements)}function O4(n){lt.free_csg_mesh(n)}var L4={ConeGeometry:EE,CubeGeometry:CE,CylinderGeometry:ME,DodecahedronGeometry:PE,EllipseGeometry:KE,HelixGeometry:eC,IcosahedronGeometry:tC,LatheGeometry:AC,NonParametricGeometry:nC,PolygonGeometry:rC,PyramidGeometry:iC,RectangleGeometry:sC,SphereGeometry:oC,PlaneGeometry:aC,BackdropGeometry:lC,StarGeometry:cC,TextFrameGeometry:uC,TorusGeometry:dC,TorusKnotGeometry:hC,TriangleGeometry:fC,VectorGeometry:Sn},M0=n=>L4[n.type].create(n);function ud(n){return n!==null&&"booleanOp"in n}var cc=class extends Fp(EA){constructor(){super(...arguments);this.booleanMeshSetAddress=-1;this.booleanWasTransformed=!1;this.booleanMatrixInvOld=new de}updateVisible(){super.updateVisible(),this.visible=!ud(this.parent)&&this.visible,ud(this.parent)&&this.parent.invalidateDownstreamBooleanData()}freeBooleanPointer(){this.booleanMeshSetAddress!==-1&&(wr.freeMeshSet(this.booleanMeshSetAddress),this.booleanMeshSetAddress=-1)}invalidateDownstreamBooleanData(t=!1){return t?this.booleanWasTransformed=!0:this.freeBooleanPointer(),ud(this.parent)?this.parent.invalidateDownstreamBooleanData():this}invalidateUpstreamBooleanData(){this.freeBooleanPointer();for(let t of this.children)t instanceof cc&&(t.freeBooleanPointer(),ud(t)&&t.invalidateUpstreamBooleanData())}updateTransformState(t){let A=super.updateTransformState(t);return A&&ud(this.parent)&&this.invalidateDownstreamBooleanData(!0),A}};var Xp=new mt;function I0(n,e=0,t=n.count,A,r){let i=1/0,s=1/0,o=1/0,a=-1/0,c=-1/0,l=-1/0;for(let u=e;u<t;u++){let d=n.getX(u),h=n.getY(u),f=n.getZ(u);d<i&&(i=d),h<s&&(s=h),f<o&&(o=f),d>a&&(a=d),h>c&&(c=h),f>l&&(l=f)}Xp.min.set(i,s,o),Xp.max.set(a,c,l),Xp.getCenter(A),Xp.getSize(r).multiplyScalar(.5)}var _4=new Ie,R4=new Ei,kt=class extends cc{constructor(e,t){super(_4,R4),this.super_Entity(e,t)}updateState(e,t){this.updateState_Entity(e,t)}updateEntityBoxSize(e,t){let A=this.geometry.getAttribute("position");A!==void 0?I0(A,this.geometry.drawRange.start,this.geometry.drawRange.count<1/0?this.geometry.drawRange.count:A.count,e,t):super.updateEntityBoxSize(e,t)}};var dd=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 NA=class{constructor(e){this.hashProperties=void 0;this.isNode=!0;this.shortcuts={};this.uuid=Ve.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 NA&&(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 O0=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}},SA=new O0;var ke=class extends NA{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=Ve.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 Lt=class extends ke{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 FA=class extends Lt{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 WA=class extends Lt{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 $t=class extends Le{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 tr=class extends Lt{constructor(t){super("v4");this.nodeType="Vector4";this.value=t instanceof $t?t:new $t(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 B4=/^\s*([a-z_0-9]+)\s([a-z_0-9]+)\s*\((.*?)\)/i,PC=/[a-z_0-9]+/gi,Ee=class extends ke{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=PC.exec(this.src);)l.push(o);for(let u=0;u<l.length;u++){let d=l[u],h=d[0],f=this.isMethod?!this.getInputByName(h):!0,p=h;if(this.keywords[h]||this.useKeywords&&f&&SA.containsKeyword(h)){let m=this.keywords[h];if(!m){let g=SA.getKeywordData(h);g.cache&&(m=t.keywords[h]),m=m||SA.getKeyword(h,t),g.cache&&(t.keywords[h]=m)}p=m.build(t)}h!==p&&c[d.index+a-1]!=="."&&(c=c.substring(0,d.index+a)+p+c.substring(d.index+h.length+a),a+=p.length-h.length),this.getIncludeByName(p)===void 0&&SA.contains(p)&&t.include(SA.get(p))}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=B4.exec(this.src);if(this.inputs=[],s&&s.length==4){this.type=s[1],this.name=s[2];let o=s[3].match(PC);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 N4=/^([a-z_0-9]+)\s([a-z_0-9]+)\s?\=?\s?(.*?)(\;|$)/i,L0=class extends ke{constructor(t="",A){super();this.src="";this.useDefine=!1;this.nodeType="Const";this.parse(t||L0.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=N4.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)}},ft=L0;ft.PI="PI",ft.PI2="PI2",ft.RECIPROCAL_PI="RECIPROCAL_PI",ft.RECIPROCAL_PI2="RECIPROCAL_PI2",ft.LOG2="LOG2",ft.EPSILON="EPSILON";var F4=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}var mC,oc=new Promise(n=>{mC=n}),pC=!1;async function gC(){if(pC)return;let e=!1?".":"https://unpkg.com/@splinetool/modelling-wasm@0.9.186/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});mC(i),pC=!0}function Uo(n,e,t){let A={parameters:n,type:n.type};if(n.type==="VectorGeometry"){let i=yt.createFromState(n.shape,n.width,n.height);A.shape=i}else if(n.type==="NonParametricGeometry")n.data.groups&&n.data.groups.forEach(i=>i.materialIndex=Math.max(i.materialIndex??0,0)),A.geometry=new Ga().parse(n);else{if(n.type==="SubdivGeometry")return new oA(n,t);if(n.type==="TextGeometry")return new sc(n,e)}let r;try{r=M0(A)}catch(i){console.error(i)}if(!r){let i=yt.createFromState(Dl.defaultData(),100,100);A.shape=i,r=M0(A)}return r}var M4=new de;function ld(n,e,t,A){let r=n.position.array,i=n.normal.array,s=M4.makeScale(e,t,A).invert().elements,o,a,c;for(var l=0,u=r.length;l<u;l+=3)r[l]*=e,r[l+1]*=t,r[l+2]*=A,o=i[l],a=i[l+1],c=i[l+2],i[l]=s[0]*o+s[4]*a+s[8]*c,i[l+1]=s[1]*o+s[5]*a+s[9]*c,i[l+2]=s[2]*o+s[6]*a+s[10]*c;n.position.needsUpdate=!0,n.normal.needsUpdate=!0}var Yp=new mt,ac=new S,ze;oc.then(n=>{ze=n});var yC=new Float32Array([10,10,0,-10,10,0,-10,-10,0,10,-10,0]),vC=new Uint32Array([0,1,2,3]),xC=new Uint8Array([4]),oA=class extends Ie{constructor(t,A){super();this.data=t;this.flatShading=A;this.subdivPointer=0;this.rebuild(),this.freeSubdivPointer()}mutateDirectlyScaleBaked(t,A){this.freeSubdivPointer();let r=this.data.scaleBaked,i=qr.div(A,r);this.subdividedGeometry&&ld(this.subdividedGeometry.attributes,...i),this.originalGeometry&&ld(this.originalGeometry.attributes,...i),this.data=t;let s=this.userData.parameters;this.userData.parameters={width:s.width*i[0],height:s.height*i[1],depth:s.depth*i[2]},this.originalGeometry.boundingSphere.center.multiply(ac.fromArray(i));let o=ac.set(s.width,s.height,s.depth).length();this.originalGeometry.boundingSphere.radius=o/2}ensureSubdivPointer(){return this.subdivPointer===0&&this.rebuild(),this.subdivPointer}rebuild(){let t,A,r;try{({originalGeometry:t,subdividedGeometry:A,subdivPointer:r}=oA.build(this.data,void 0,!this.flatShading,void 0))}catch{t=new PA(100,100,100),r=0}this.subdivPointer=r,this.originalGeometry=t,this.subdividedGeometry=A??void 0;let i=this.subdividedGeometry??this.originalGeometry;Object.assign(this,i),this.calcBoundingBox()}freeSubdivPointer(){this.subdivPointer&&(oA.freeSubdivPointer(this.subdivPointer),this.subdivPointer=0)}dispose(){super.dispose(),this.freeSubdivPointer()}calcBoundingBox(){let t=this.originalGeometry;t.boundingSphere===null&&(t.boundingSphere=new dA,this.subdividedGeometry&&(this.subdividedGeometry.boundingSphere=t.boundingSphere));let A=t.attributes.position,r=t.boundingSphere.center;Yp.setFromBufferAttribute(A),Yp.getCenter(r),t.boundingSphere.radius=r.distanceTo(Yp.max),isNaN(t.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.',this),Yp.getSize(ac);let i={width:ac.x,height:ac.y,depth:ac.z};return this.userData.parameters=i,i}static build(t,A,r,i){let s,o,a,c=t?.phongAngle??35;r===!1&&(c=-1),A&&(ze.free_bvh(A),ze.free_subdivision_surface(A));try{s=oA.allocate(t,i)}catch(l){console.error(l,t),s=oA.allocate({positionWASM:yC,indexWASM:vC,verticesPerFaceWASM:xC},i)}if(ze.set_destination_refinement_level(s,0),o=oA.buildLevel(s,!0,c),t.subdivisions>0)try{ze.set_destination_refinement_level(s,t.subdivisions),a=oA.buildLevel(s,!1,c)}catch{try{ze.set_destination_refinement_level(s,t.subdivisions-1),a=oA.buildLevel(s,!1,c)}catch{a=null}}else a=null;return{subdivPointer:s,originalGeometry:o,subdividedGeometry:a}}static primitiveToQuads(t,A,r){t.widthSegments>16&&(t.widthSegments=16),t.heightSegments>16&&(t.heightSegments=16),t.depthSegments>16&&(t.depthSegments=16),t.radialSegments>16&&(t.radialSegments=16),t.type==="DodecahedronGeometry"&&(t.detail=0);let i=t.shape!==void 0?A.geometry:Uo(t,r,!1),s,o,a,c;({positions:s,triIndices:c}=cd(i.getAttribute("position"),i.getIndex()));let l;if(t.type==="CylinderGeometry"&&t.cornerRadius===0&&t.hollow===0&&t.openEnded===!1){let u=t.radialSegments*t.heightSegments*3*2,d=u+t.radialSegments*3;l=[u,d]}return{indices:o,verticesPerFace:a}=D0(s,c,i,l),{positions:s,indices:o,verticesPerFace:a}}static allocate(t,A){let r,i,s,o=[],a=[];t.positionWASM&&t.positionWASM.length>0?(r=t.positionWASM,i=t.indexWASM,s=t.verticesPerFaceWASM):(r=yC,i=vC,s=xC);let c=r.length,l=i.length,u=s.length,d=r.length+o.length+a.length,h=i.length+s.length,f=d*Float32Array.BYTES_PER_ELEMENT+h*Uint32Array.BYTES_PER_ELEMENT,p=d*Float32Array.BYTES_PER_ELEMENT,m=h*Uint32Array.BYTES_PER_ELEMENT,g=ze._malloc(f),y=new Float32Array(ze.HEAPF32.buffer,g,d),x=new Uint32Array(ze.HEAPU32.buffer,g+p,h);y.set(r,0),y.set(o,r.length),y.set(a,r.length+o.length),x.set(i,0),x.set(s,i.length);let b;t?.scaleBaked?.some(T=>T!==1)&&(b=new de().makeScale(...t.scaleBaked)),A&&(b?b.premultiply(A):b=A);let w=b?ze.alloc_subdivision_surface2(g,c,g+p,l,g+p+i.length*Uint32Array.BYTES_PER_ELEMENT,u,b.elements):ze.alloc_subdivision_surface(g,c,g+p,l,g+p+i.length*Uint32Array.BYTES_PER_ELEMENT,u);return ze._free(g),w}static buildLevel(t,A,r,i,s){let o=s?ze.get_mesh_data2(t,A?ze.Level.CONTROL:ze.Level.REFINED,r,s.elements):ze.get_mesh_data(t,A?ze.Level.CONTROL:ze.Level.REFINED,r),a=8,c=ze.HEAPU32.subarray(o>>2,(o>>2)+a),l=c.subarray(4,4+4),u=0,d=ze.HEAPU32[c[u]>>2],h=ze.HEAPF32.subarray(d>>2,(d>>2)+l[u]);u++;let f=ze.HEAPU32[c[u]>>2],p=ze.HEAPF32.subarray(f>>2,(f>>2)+l[u]);u++;let m=ze.HEAPU32[c[u]>>2],g=ze.HEAPU32.subarray(m>>2,(m>>2)+l[u]);u++;let y=ze.HEAPU32[c[u]>>2],x=ze.HEAPU32.subarray(y>>2,(y>>2)+l[u]);if(u++,i===void 0){let b=new Ie;if(b.setIndex(new as(x,1)),b.setAttribute("position",new Se(h,3)),b.setAttribute("normal",new Se(p,3)),A){b.setAttribute("faceMap",new as(g,1));let w=new Float32Array(p.length/3*4).fill(0);b.setAttribute("color",new Fe(w,4))}return ze.free_mesh_data(o),b.userData.type="SubdivGeometry",b}i.getAttribute("position").copyArray(h),i.getAttribute("normal").copyArray(p),i.attributes.position.needsUpdate=!0,i.attributes.normal.needsUpdate=!0,ze.free_mesh_data(o)}static freeSubdivPointer(t){ze.free_bvh(t),ze.free_subdivision_surface(t)}static buildControlCageWireframe(t,A,r){let i=ze.get_wireframe_data_for_base_level(t),s=4,o=ze.HEAPU32.subarray(i>>2,(i>>2)+s),a=o.subarray(2,2+2),c=0,l=ze.HEAPU32[o[c]>>2],u=ze.HEAPF32.subarray(l>>2,(l>>2)+a[c]);c++;let d=ze.HEAPU32[o[c]>>2],h=ze.HEAPU32.subarray(d>>2,(d>>2)+a[c]);if(A===void 0){let f=new Ie;f.setAttribute("position",new Se(u,3));let p=new Float32Array(u.length);for(let m=0,g=u.length;m<g;)p[m++]=r.r,p[m++]=r.g,p[m++]=r.b;return f.setAttribute("color",new Fe(p,3)),f.setIndex(new as(h,1)),ze.free_wireframe_data_for_base_level(i),f}A.getAttribute("position").copyArray(u),A.attributes.position.needsUpdate=!0,ze.free_wireframe_data_for_base_level(i)}static updateCollabMesh(t,A,r){let i=A===0;i||ze.set_destination_refinement_level(t,A);let s=r?ze.get_topological_data2(t,i?ze.Level.CONTROL:ze.Level.REFINED,r.elements):ze.get_topological_data(t,i?ze.Level.CONTROL:ze.Level.REFINED),o=6,a=ze.HEAPU32.subarray(s>>2,(s>>2)+o),c=a.subarray(3,3+3),l=0,u=ze.HEAPU32[a[l]>>2],d=new Float32Array(ze.HEAPF32.subarray(u>>2,(u>>2)+c[l]));l++;let h=ze.HEAPU32[a[l]>>2],f=new Uint32Array(ze.HEAPU32.subarray(h>>2,(h>>2)+c[l]));l++;let p=ze.HEAPU32[a[l]>>2],m=new Uint8Array(ze.HEAPU32.subarray(p>>2,(p>>2)+c[l]));return ze.free_topological_data(s),{positions:d,indices:f,verticesPerFace:m}}};var bC=["getX","getY","getZ"];function cd(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 d=0;d<3;d++)u+=`${~~(n[bC[d]](l)*o)},`;if(u in t)i.push(t[u]);else{for(let d=0;d<3;d++)s.push(n[bC[d]](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 qp=new S,E0=new S,C0=new S,P0=new S;function D0(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,d)=>Math.floor(d/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]){qp.set(n[e[s]*3],n[e[s]*3+1],n[e[s]*3+2]),E0.set(n[e[s+1]*3],n[e[s+1]*3+1],n[e[s+1]*3+2]),C0.set(n[e[s+4]*3],n[e[s+4]*3+1],n[e[s+4]*3+2]),P0.set(n[e[s+5]*3],n[e[s+5]*3+1],n[e[s+5]*3+2]),E0.sub(qp).normalize(),C0.sub(qp).normalize(),P0.sub(qp).normalize();let a=E0.cross(C0).dot(P0);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={};ub(wr,{calcBoolean:()=>P4,calcBooleanTopological:()=>C4,freeMeshSet:()=>O4,getMeshSet:()=>D4,transformMeshSet:()=>I4});var SC,TC=new Promise(n=>{SC=n}),wC=!1;async function MC(){if(wC)return;let e=!1?".":"https://unpkg.com/@splinetool/boolean-wasm@0.9.186/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});SC(i),wC=!0}var lt,lc;TC.then(n=>lt=n);function E4(n,e,t){let A,{positions:r,triIndices:i}=cd(n.getAttribute("position"),n.getIndex()),s;if(e&&t){let{indices:o,verticesPerFace:a}=D0(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 EC(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 CC(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 C4(n,e){lc===void 0&&(lc=lt.init_csg());let t=EC(n),A=lt.csg_calc_topological(lc,t,n.length,CC(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 d=lt.HEAPU32[i[o]>>2],h=new Uint8Array(lt.HEAPU32.subarray(d>>2,(d>>2)+s[o]));return lt.free_mesh_data(A),{positions:c,indices:u,verticesPerFace:h}}function P4(n,e,t,A){lc===void 0&&(lc=lt.init_csg());let r=EC(n),i=lt.csg_calc(lc,r,n.length,A,CC(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 d=lt.HEAPU32[o[c]>>2],h=lt.HEAPF32.subarray(d>>2,(d>>2)+a[c]);c++;let f=a[c];t.setAttribute("position",new Se(u,3)),t.setAttribute("normal",new Se(h,3));let p=lt.HEAPF32.subarray((i>>2)+5,(i>>2)+5+6);return t.boundingSphere===null&&(t.boundingSphere=new dA),t.boundingSphere.center.set(p[0],p[1],p[2]),t.boundingSphere.radius=(p[3]**2+p[4]**2+p[5]**2)**.5,t.userData.parameters={width:p[3]*2,height:p[4]*2,depth:p[5]*2},lt.free_mesh_data(i),f}function D4(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((g,y)=>g+y,0)+i);for(let g=0,y=0,x=0;g<m.verticesPerFace.length;g++){r[x++]=m.verticesPerFace[g];for(let b=0;b<m.verticesPerFace[g];b++)r[x++]=m.indices[y++]}}else({positions:A,faceIndices:r,nFaces:i}=E4(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,d=c*Uint32Array.BYTES_PER_ELEMENT,h=lt._malloc(l),f=new Float32Array(lt.HEAPF32.buffer,h,a),p=new Uint32Array(lt.HEAPU32.buffer,h+u,c);return f.set(A,0),p.set(r,0),lt.get_csg_mesh(h,s,h+u,o,i)}function I4(n,e){lt.transform_csg_mesh(n,e.elements)}function O4(n){lt.free_csg_mesh(n)}var L4={ConeGeometry:EE,CubeGeometry:CE,CylinderGeometry:ME,DodecahedronGeometry:PE,EllipseGeometry:KE,HelixGeometry:eC,IcosahedronGeometry:tC,LatheGeometry:AC,NonParametricGeometry:nC,PolygonGeometry:rC,PyramidGeometry:iC,RectangleGeometry:sC,SphereGeometry:oC,PlaneGeometry:aC,BackdropGeometry:lC,StarGeometry:cC,TextFrameGeometry:uC,TorusGeometry:dC,TorusKnotGeometry:hC,TriangleGeometry:fC,VectorGeometry:Sn},M0=n=>L4[n.type].create(n);function ud(n){return n!==null&&"booleanOp"in n}var cc=class extends Fp(EA){constructor(){super(...arguments);this.booleanMeshSetAddress=-1;this.booleanWasTransformed=!1;this.booleanMatrixInvOld=new de}updateVisible(){super.updateVisible(),this.visible=!ud(this.parent)&&this.visible,ud(this.parent)&&this.parent.invalidateDownstreamBooleanData()}freeBooleanPointer(){this.booleanMeshSetAddress!==-1&&(wr.freeMeshSet(this.booleanMeshSetAddress),this.booleanMeshSetAddress=-1)}invalidateDownstreamBooleanData(t=!1){return t?this.booleanWasTransformed=!0:this.freeBooleanPointer(),ud(this.parent)?this.parent.invalidateDownstreamBooleanData():this}invalidateUpstreamBooleanData(){this.freeBooleanPointer();for(let t of this.children)t instanceof cc&&(t.freeBooleanPointer(),ud(t)&&t.invalidateUpstreamBooleanData())}updateTransformState(t){let A=super.updateTransformState(t);return A&&ud(this.parent)&&this.invalidateDownstreamBooleanData(!0),A}};var Xp=new mt;function I0(n,e=0,t=n.count,A,r){let i=1/0,s=1/0,o=1/0,a=-1/0,c=-1/0,l=-1/0;for(let u=e;u<t;u++){let d=n.getX(u),h=n.getY(u),f=n.getZ(u);d<i&&(i=d),h<s&&(s=h),f<o&&(o=f),d>a&&(a=d),h>c&&(c=h),f>l&&(l=f)}Xp.min.set(i,s,o),Xp.max.set(a,c,l),Xp.getCenter(A),Xp.getSize(r).multiplyScalar(.5)}var _4=new Ie,R4=new Ei,kt=class extends cc{constructor(e,t){super(_4,R4),this.super_Entity(e,t)}updateState(e,t){this.updateState_Entity(e,t)}updateEntityBoxSize(e,t){let A=this.geometry.getAttribute("position");A!==void 0?I0(A,this.geometry.drawRange.start,this.geometry.drawRange.count<1/0?this.geometry.drawRange.count:A.count,e,t):super.updateEntityBoxSize(e,t)}};var dd=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 NA=class{constructor(e){this.hashProperties=void 0;this.isNode=!0;this.shortcuts={};this.uuid=Ve.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 NA&&(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 O0=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}},SA=new O0;var ke=class extends NA{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=Ve.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 Lt=class extends ke{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 FA=class extends Lt{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 WA=class extends Lt{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 $t=class extends Le{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 tr=class extends Lt{constructor(t){super("v4");this.nodeType="Vector4";this.value=t instanceof $t?t:new $t(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 B4=/^\s*([a-z_0-9]+)\s([a-z_0-9]+)\s*\((.*?)\)/i,PC=/[a-z_0-9]+/gi,Ee=class extends ke{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=PC.exec(this.src);)l.push(o);for(let u=0;u<l.length;u++){let d=l[u],h=d[0],f=this.isMethod?!this.getInputByName(h):!0,p=h;if(this.keywords[h]||this.useKeywords&&f&&SA.containsKeyword(h)){let m=this.keywords[h];if(!m){let g=SA.getKeywordData(h);g.cache&&(m=t.keywords[h]),m=m||SA.getKeyword(h,t),g.cache&&(t.keywords[h]=m)}p=m.build(t)}h!==p&&c[d.index+a-1]!=="."&&(c=c.substring(0,d.index+a)+p+c.substring(d.index+h.length+a),a+=p.length-h.length),this.getIncludeByName(p)===void 0&&SA.contains(p)&&t.include(SA.get(p))}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=B4.exec(this.src);if(this.inputs=[],s&&s.length==4){this.type=s[1],this.name=s[2];let o=s[3].match(PC);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 N4=/^([a-z_0-9]+)\s([a-z_0-9]+)\s?\=?\s?(.*?)(\;|$)/i,L0=class extends ke{constructor(t="",A){super();this.src="";this.useDefine=!1;this.nodeType="Const";this.parse(t||L0.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=N4.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)}},ft=L0;ft.PI="PI",ft.PI2="PI2",ft.RECIPROCAL_PI="RECIPROCAL_PI",ft.RECIPROCAL_PI2="RECIPROCAL_PI2",ft.LOG2="LOG2",ft.EPSILON="EPSILON";var F4=new RegExp(`^structs*([a-z_0-9]+)s*{s*((.|
|
|
3140
3140
|
)*?)}`,"gim"),G4=new RegExp("s*(w*?)s*(w*?)(=|;)","gim"),uc=class extends ke{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=F4.exec(t);if(A){let r=A[2],i;for(;i=G4.exec(r);)this.inputs.push({type:i[1],name:i[2]});this.name=A[1]}else this.name="";this.type=this.name}};var dc=class extends ke{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)}};SA.addKeyword("uv",function(){return new dc});SA.addKeyword("uv2",function(){return new dc(1)});var ko=class extends ke{constructor(t,A){super("v4");this.nodeType="ColorSpace";this.input=t,this.method=A??ko.LINEAR_TO_LINEAR,this.hashProperties=["method"]}static getEncodingComponents(t){switch(t){case _n:return["Linear"];case qe:return["sRGB"];default:return[]}}generate(t,A){let r=this.input.build(t,"v4"),i=this.getType(t),s=ko.Nodes[this.method],o=t.include(s);if(o===ko.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=ko.getEncodingComponents(t);this.method="LinearTo"+A[0],this.factor=A[1]}fromDecoding(t){let A=ko.getEncodingComponents(t);this.method=A[0]+"ToLinear",this.factor=A[1]}},un=ko;un.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(`
|