@splinetool/runtime 0.9.195 → 0.9.196

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 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 hu,r=new G,i=new G,s=new He,o=new fu({depthPacking:Wy}),a=new vy,c={},l=t.maxTextureSize,u={0:PA,1:Ur,2:_n},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 p=new Pe;p.setAttribute("position",new Ne(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));let f=new CA(p,d),m=this;this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=lf,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(_t),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!==nu?{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===nu&&g(I,T),I.needsUpdate=!1}m.needsUpdate=!1,n.setRenderTarget(M,v,E)};function g(b,w){let T=e.update(f);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,f,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,f,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===nu?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===nu)&&(!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 z=!1,ge=new He,ye=null,Ke=new He(0,0,0,0);return{setMask:function(Re){ye!==Re&&!z&&(n.colorMask(Re,Re,Re,Re),ye=Re)},setLocked:function(Re){z=Re},setClear:function(Re,Je,be,$e,wt){wt===!0&&(Re*=$e,Je*=$e,be*=$e),ge.set(Re,Je,be,$e),Ke.equals(ge)===!1&&(n.clearColor(Re,Je,be,$e),Ke.copy(ge))},reset:function(){z=!1,ye=null,Ke.set(-1,0,0,0)}}}function i(){let z=!1,ge=null,ye=null,Ke=null;return{setTest:function(Re){Re?q(2929):U(2929)},setMask:function(Re){ge!==Re&&!z&&(n.depthMask(Re),ge=Re)},setFunc:function(Re){if(ye!==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);ye=Re}},setLocked:function(Re){z=Re},setClear:function(Re){Ke!==Re&&(n.clearDepth(Re),Ke=Re)},reset:function(){z=!1,ge=null,ye=null,Ke=null}}}function s(){let z=!1,ge=null,ye=null,Ke=null,Re=null,Je=null,be=null,$e=null,wt=null;return{setTest:function(st){z||(st?q(2960):U(2960))},setMask:function(st){ge!==st&&!z&&(n.stencilMask(st),ge=st)},setFunc:function(st,MA,Bt){(ye!==st||Ke!==MA||Re!==Bt)&&(n.stencilFunc(st,MA,Bt),ye=st,Ke=MA,Re=Bt)},setOp:function(st,MA,Bt){(Je!==st||be!==MA||$e!==Bt)&&(n.stencilOp(st,MA,Bt),Je=st,be=MA,$e=Bt)},setLocked:function(st){z=st},setClear:function(st){wt!==st&&(n.clearStencil(st),wt=st)},reset:function(){z=!1,ge=null,ye=null,Ke=null,Re=null,Je=null,be=null,$e=null,wt=null}}}let o=new r,a=new i,c=new s,l={},u={},d=new WeakMap,h=[],p=null,f=!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),k=n.getParameter(2978),Q=new He().fromArray(F),H=new He().fromArray(k);function V(z,ge,ye){let Ke=new Uint8Array(4),Re=n.createTexture();n.bindTexture(z,Re),n.texParameteri(z,10241,9728),n.texParameteri(z,10240,9728);for(let Je=0;Je<ye;Je++)n.texImage2D(ge+Je,0,6408,1,1,0,6408,5121,Ke);return Re}let j={};j[3553]=V(3553,3553,1),j[34067]=V(34067,34069,6),o.setClear(0,0,0,1),a.setClear(1),c.setClear(0),q(2929),a.setFunc(ny),Te(!1),pe(hb),q(2884),se(_t);function q(z){l[z]!==!0&&(n.enable(z),l[z]=!0)}function U(z){l[z]!==!1&&(n.disable(z),l[z]=!1)}function ue(z,ge){return u[z]!==ge?(n.bindFramebuffer(z,ge),u[z]=ge,A&&(z===36009&&(u[36160]=ge),z===36160&&(u[36009]=ge)),!0):!1}function te(z,ge){let ye=h,Ke=!1;if(z)if(ye=d.get(ge),ye===void 0&&(ye=[],d.set(ge,ye)),z.isWebGLMultipleRenderTargets){let Re=z.texture;if(ye.length!==Re.length||ye[0]!==36064){for(let Je=0,be=Re.length;Je<be;Je++)ye[Je]=36064+Je;ye.length=Re.length,Ke=!0}}else ye[0]!==36064&&(ye[0]=36064,Ke=!0);else ye[0]!==1029&&(ye[0]=1029,Ke=!0);Ke&&(t.isWebGL2?n.drawBuffers(ye):e.get("WEBGL_draw_buffers").drawBuffersWEBGL(ye))}function Z(z){return p!==z?(n.useProgram(z),p=z,!0):!1}let Y={[va]:32774,[ND]:32778,[FD]:32779};if(A)Y[gb]=32775,Y[yb]=32776;else{let z=e.get("EXT_blend_minmax");z!==null&&(Y[gb]=z.MIN_EXT,Y[yb]=z.MAX_EXT)}let ie={[GD]:0,[UD]:1,[kD]:768,[Yw]:770,[YD]:776,[WD]:774,[zD]:772,[VD]:769,[qw]:771,[jD]:775,[HD]:773};function se(z,ge,ye,Ke,Re,Je,be,$e){if(z===_t){f===!0&&(U(3042),f=!1);return}if(f===!1&&(q(3042),f=!0),z!==BD){if(z!==m||$e!==M){if((g!==va||b!==va)&&(n.blendEquation(32774),g=va,b=va),$e)switch(z){case wa: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: ",z);break}else switch(z){case wa: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: ",z);break}y=null,x=null,w=null,T=null,m=z,M=$e}return}Re=Re||ge,Je=Je||ye,be=be||Ke,(ge!==g||Re!==b)&&(n.blendEquationSeparate(Y[ge],Y[Re]),g=ge,b=Re),(ye!==y||Ke!==x||Je!==w||be!==T)&&(n.blendFuncSeparate(ie[ye],ie[Ke],ie[Je],ie[be]),y=ye,x=Ke,w=Je,T=be),m=z,M=null}function oe(z,ge){z.side===_n?U(2884):q(2884);let ye=z.side===PA;ge&&(ye=!ye),Te(ye),z.blending===wa&&z.transparent===!1?se(_t):se(z.blending,z.blendEquation,z.blendSrc,z.blendDst,z.blendEquationAlpha,z.blendSrcAlpha,z.blendDstAlpha,z.premultipliedAlpha),a.setFunc(z.depthFunc),a.setTest(z.depthTest),a.setMask(z.depthWrite),o.setMask(z.colorWrite);let Ke=z.stencilWrite;c.setTest(Ke),Ke&&(c.setMask(z.stencilWriteMask),c.setFunc(z.stencilFunc,z.stencilRef,z.stencilFuncMask),c.setOp(z.stencilFail,z.stencilZFail,z.stencilZPass)),xe(z.polygonOffset,z.polygonOffsetFactor,z.polygonOffsetUnits),z.alphaToCoverage===!0?q(32926):U(32926)}function Te(z){v!==z&&(z?n.frontFace(2304):n.frontFace(2305),v=z)}function pe(z){z!==LD?(q(2884),z!==E&&(z===hb?n.cullFace(1029):z===_D?n.cullFace(1028):n.cullFace(1032))):U(2884),E=z}function ve(z){z!==C&&(I&&n.lineWidth(z),C=z)}function xe(z,ge,ye){z?(q(32823),(P!==ge||D!==ye)&&(n.polygonOffset(ge,ye),P=ge,D=ye)):U(32823)}function he(z){z?q(3089):U(3089)}function De(z){z===void 0&&(z=33984+L-1),W!==z&&(n.activeTexture(z),W=z)}function Be(z,ge){W===null&&De();let ye=X[W];ye===void 0&&(ye={type:void 0,texture:void 0},X[W]=ye),(ye.type!==z||ye.texture!==ge)&&(n.bindTexture(z,ge||j[z]),ye.type=z,ye.texture=ge)}function Xe(){let z=X[W];z!==void 0&&z.type!==void 0&&(n.bindTexture(z.type,null),z.type=void 0,z.texture=void 0)}function R(){try{n.compressedTexImage2D.apply(n,arguments)}catch(z){console.error("THREE.WebGLState:",z)}}function O(){try{n.texSubImage2D.apply(n,arguments)}catch(z){console.error("THREE.WebGLState:",z)}}function J(){try{n.texSubImage3D.apply(n,arguments)}catch(z){console.error("THREE.WebGLState:",z)}}function le(){try{n.compressedTexSubImage2D.apply(n,arguments)}catch(z){console.error("THREE.WebGLState:",z)}}function fe(){try{n.texStorage2D.apply(n,arguments)}catch(z){console.error("THREE.WebGLState:",z)}}function Ee(){try{n.texStorage3D.apply(n,arguments)}catch(z){console.error("THREE.WebGLState:",z)}}function ke(){try{n.texImage2D.apply(n,arguments)}catch(z){console.error("THREE.WebGLState:",z)}}function ne(){try{n.texImage3D.apply(n,arguments)}catch(z){console.error("THREE.WebGLState:",z)}}function Fe(z){Q.equals(z)===!1&&(n.scissor(z.x,z.y,z.z,z.w),Q.copy(z))}function _e(z){H.equals(z)===!1&&(n.viewport(z.x,z.y,z.z,z.w),H.copy(z))}function Oe(){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=[],p=null,f=!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),H.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:U,bindFramebuffer:ue,drawBuffers:te,useProgram:Z,setBlending:se,setMaterial:oe,setFlipSided:Te,setCullFace:pe,setLineWidth:ve,setPolygonOffset:xe,setScissorTest:he,activeTexture:De,bindTexture:Be,unbindTexture:Xe,compressedTexImage2D:R,texImage2D:ke,texImage3D:ne,texStorage2D:fe,texStorage3D:Ee,texSubImage2D:O,texSubImage3D:J,compressedTexSubImage2D:le,scissor:Fe,viewport:_e,reset:Oe}}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),p=new WeakMap,f,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):Vh("canvas")}function x(R,O,J,le){let fe=1;if((R.width>le||R.height>le)&&(fe=le/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 Ee=O?kh:Math.floor,ke=Ee(fe*R.width),ne=Ee(fe*R.height);f===void 0&&(f=y(ke,ne));let Fe=J?y(ke,ne):f;return Fe.width=ke,Fe.height=ne,Fe.getContext("2d").drawImage(R,0,0,ke,ne),console.warn("THREE.WebGLRenderer: Texture has been resized from ("+R.width+"x"+R.height+") to ("+ke+"x"+ne+")."),Fe}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!==An||R.wrapT!==An||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,le,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 Ee=O;return O===6403&&(J===5126&&(Ee=33326),J===5131&&(Ee=33325),J===5121&&(Ee=33321)),O===33319&&(J===5126&&(Ee=33328),J===5131&&(Ee=33327),J===5121&&(Ee=33323)),O===6408&&(J===5126&&(Ee=34836),J===5131&&(Ee=34842),J===5121&&(Ee=le===qe&&fe===!1?35907:32856),J===32819&&(Ee=32854),J===32820&&(Ee=32855)),(Ee===33325||Ee===33326||Ee===33327||Ee===33328||Ee===34842||Ee===34836)&&e.get("EXT_color_buffer_float"),Ee}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&&p.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,le=m.get(J);if(le){let fe=le[O.__cacheKey];fe.usedTimes--,fe.usedTimes===0&&I(R),Object.keys(le).length===0&&m.delete(J)}A.remove(R)}function I(R){let O=A.get(R);n.deleteTexture(O.__webglTexture);let J=R.source,le=m.get(J);delete le[O.__cacheKey],s.memory.textures--}function B(R){let O=R.texture,J=A.get(R),le=A.get(O);if(le.__webglTexture!==void 0&&(n.deleteTexture(le.__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,Ee=O.length;fe<Ee;fe++){let ke=A.get(O[fe]);ke.__webglTexture&&(n.deleteTexture(ke.__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 k(R,O){let J=A.get(R);if(R.isVideoTexture&&Be(R),R.isRenderTargetTexture===!1&&R.version>0&&J.__version!==R.version){let le=R.image;if(le===null)console.warn("THREE.WebGLRenderer: Texture marked for update but no image data found.");else if(le.complete===!1)console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete");else{te(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){te(J,R,O);return}t.activeTexture(33984+O),t.bindTexture(35866,J.__webglTexture)}function H(R,O){let J=A.get(R);if(R.version>0&&J.__version!==R.version){te(J,R,O);return}t.activeTexture(33984+O),t.bindTexture(32879,J.__webglTexture)}function V(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={[Ta]:10497,[An]:33071,[sy]:33648},q={[Nt]:9728,[vb]:9984,[xb]:9986,[it]:9729,[oI]:9985,[Ha]:9987};function U(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!==An||O.wrapT!==An)&&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 le=e.get("EXT_texture_filter_anisotropic");if(O.type===Nr&&e.has("OES_texture_float_linear")===!1||o===!1&&O.type===cu&&e.has("OES_texture_half_float_linear")===!1)return;(O.anisotropy>1||A.get(O).__currentAnisotropy)&&(n.texParameterf(R,le.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 le=O.source,fe=m.get(le);fe===void 0&&(fe={},m.set(le,fe));let Ee=F(O);if(Ee!==R.__cacheKey){fe[Ee]===void 0&&(fe[Ee]={texture:n.createTexture(),usedTimes:0},s.memory.textures++,J=!0),fe[Ee].usedTimes++;let ke=fe[R.__cacheKey];ke!==void 0&&(fe[R.__cacheKey].usedTimes--,ke.usedTimes===0&&I(O)),R.__cacheKey=Ee,R.__webglTexture=fe[Ee].texture}return J}function te(R,O,J){let le=3553;O.isDataArrayTexture&&(le=35866),O.isData3DTexture&&(le=32879);let fe=ue(R,O),Ee=O.source;if(t.activeTexture(33984+J),t.bindTexture(le,R.__webglTexture),Ee.version!==Ee.__currentVersion||fe===!0){n.pixelStorei(37440,O.flipY),n.pixelStorei(37441,O.premultiplyAlpha),n.pixelStorei(3317,O.unpackAlignment),n.pixelStorei(37443,0);let ke=w(O)&&b(O.image)===!1,ne=x(O.image,ke,!1,l);ne=Xe(O,ne);let Fe=b(ne)||o,_e=i.convert(O.format,O.encoding),Oe=i.convert(O.type),z=v(O.internalFormat,_e,Oe,O.encoding,O.isVideoTexture);U(le,O,Fe);let ge,ye=O.mipmaps,Ke=o&&O.isVideoTexture!==!0,Re=Ee.__currentVersion===void 0||fe===!0,Je=E(O,ne,Fe);if(O.isDepthTexture)z=6402,o?O.type===Nr?z=36012:O.type===Mi?z=33190:O.type===is?z=35056:z=33189:O.type===Nr&&console.error("WebGLRenderer: Floating point depth texture requires WebGL2."),O.format===so&&z===6402&&O.type!==Kw&&O.type!==Mi&&(console.warn("THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture."),O.type=Mi,Oe=i.convert(O.type)),O.format===as&&z===6402&&(z=34041,O.type!==is&&(console.warn("THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture."),O.type=is,Oe=i.convert(O.type))),Re&&(Ke?t.texStorage2D(3553,1,z,ne.width,ne.height):t.texImage2D(3553,0,z,ne.width,ne.height,0,_e,Oe,null));else if(O.isDataTexture)if(ye.length>0&&Fe){Ke&&Re&&t.texStorage2D(3553,Je,z,ye[0].width,ye[0].height);for(let be=0,$e=ye.length;be<$e;be++)ge=ye[be],Ke?t.texSubImage2D(3553,be,0,0,ge.width,ge.height,_e,Oe,ge.data):t.texImage2D(3553,be,z,ge.width,ge.height,0,_e,Oe,ge.data);O.generateMipmaps=!1}else Ke?(Re&&t.texStorage2D(3553,Je,z,ne.width,ne.height),t.texSubImage2D(3553,0,0,0,ne.width,ne.height,_e,Oe,ne.data)):t.texImage2D(3553,0,z,ne.width,ne.height,0,_e,Oe,ne.data);else if(O.isCompressedTexture){Ke&&Re&&t.texStorage2D(3553,Je,z,ye[0].width,ye[0].height);for(let be=0,$e=ye.length;be<$e;be++)ge=ye[be],O.format!==dr?_e!==null?Ke?t.compressedTexSubImage2D(3553,be,0,0,ge.width,ge.height,_e,ge.data):t.compressedTexImage2D(3553,be,z,ge.width,ge.height,0,ge.data):console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()"):Ke?t.texSubImage2D(3553,be,0,0,ge.width,ge.height,_e,Oe,ge.data):t.texImage2D(3553,be,z,ge.width,ge.height,0,_e,Oe,ge.data)}else if(O.isDataArrayTexture)Ke?(Re&&t.texStorage3D(35866,Je,z,ne.width,ne.height,ne.depth),t.texSubImage3D(35866,0,0,0,0,ne.width,ne.height,ne.depth,_e,Oe,ne.data)):t.texImage3D(35866,0,z,ne.width,ne.height,ne.depth,0,_e,Oe,ne.data);else if(O.isData3DTexture)Ke?(Re&&t.texStorage3D(32879,Je,z,ne.width,ne.height,ne.depth),t.texSubImage3D(32879,0,0,0,0,ne.width,ne.height,ne.depth,_e,Oe,ne.data)):t.texImage3D(32879,0,z,ne.width,ne.height,ne.depth,0,_e,Oe,ne.data);else if(O.isFramebufferTexture){if(Re)if(Ke)t.texStorage2D(3553,Je,z,ne.width,ne.height);else{let be=ne.width,$e=ne.height;for(let wt=0;wt<Je;wt++)t.texImage2D(3553,wt,z,be,$e,0,_e,Oe,null),be>>=1,$e>>=1}}else if(ye.length>0&&Fe){Ke&&Re&&t.texStorage2D(3553,Je,z,ye[0].width,ye[0].height);for(let be=0,$e=ye.length;be<$e;be++)ge=ye[be],Ke?t.texSubImage2D(3553,be,0,0,_e,Oe,ge):t.texImage2D(3553,be,z,_e,Oe,ge);O.generateMipmaps=!1}else Ke?(Re&&t.texStorage2D(3553,Je,z,ne.width,ne.height),t.texSubImage2D(3553,0,0,0,_e,Oe,ne)):t.texImage2D(3553,0,z,_e,Oe,ne);T(O,Fe)&&M(le),Ee.__currentVersion=Ee.version,O.onUpdate&&O.onUpdate(O)}R.__version=O.version}function Z(R,O,J){if(O.image.length!==6)return;let le=ue(R,O),fe=O.source;if(t.activeTexture(33984+J),t.bindTexture(34067,R.__webglTexture),fe.version!==fe.__currentVersion||le===!0){n.pixelStorei(37440,O.flipY),n.pixelStorei(37441,O.premultiplyAlpha),n.pixelStorei(3317,O.unpackAlignment),n.pixelStorei(37443,0);let Ee=O.isCompressedTexture||O.image[0].isCompressedTexture,ke=O.image[0]&&O.image[0].isDataTexture,ne=[];for(let be=0;be<6;be++)!Ee&&!ke?ne[be]=x(O.image[be],!1,!0,c):ne[be]=ke?O.image[be].image:O.image[be],ne[be]=Xe(O,ne[be]);let Fe=ne[0],_e=b(Fe)||o,Oe=i.convert(O.format,O.encoding),z=i.convert(O.type),ge=v(O.internalFormat,Oe,z,O.encoding),ye=o&&O.isVideoTexture!==!0,Ke=fe.__currentVersion===void 0||le===!0,Re=E(O,Fe,_e);U(34067,O,_e);let Je;if(Ee){ye&&Ke&&t.texStorage2D(34067,Re,ge,Fe.width,Fe.height);for(let be=0;be<6;be++){Je=ne[be].mipmaps;for(let $e=0;$e<Je.length;$e++){let wt=Je[$e];O.format!==dr?Oe!==null?ye?t.compressedTexSubImage2D(34069+be,$e,0,0,wt.width,wt.height,Oe,wt.data):t.compressedTexImage2D(34069+be,$e,ge,wt.width,wt.height,0,wt.data):console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .setTextureCube()"):ye?t.texSubImage2D(34069+be,$e,0,0,wt.width,wt.height,Oe,z,wt.data):t.texImage2D(34069+be,$e,ge,wt.width,wt.height,0,Oe,z,wt.data)}}}else{Je=O.mipmaps,ye&&Ke&&(Je.length>0&&Re++,t.texStorage2D(34067,Re,ge,ne[0].width,ne[0].height));for(let be=0;be<6;be++)if(ke){ye?t.texSubImage2D(34069+be,0,0,0,ne[be].width,ne[be].height,Oe,z,ne[be].data):t.texImage2D(34069+be,0,ge,ne[be].width,ne[be].height,0,Oe,z,ne[be].data);for(let $e=0;$e<Je.length;$e++){let st=Je[$e].image[be].image;ye?t.texSubImage2D(34069+be,$e+1,0,0,st.width,st.height,Oe,z,st.data):t.texImage2D(34069+be,$e+1,ge,st.width,st.height,0,Oe,z,st.data)}}else{ye?t.texSubImage2D(34069+be,0,0,0,Oe,z,ne[be]):t.texImage2D(34069+be,0,ge,Oe,z,ne[be]);for(let $e=0;$e<Je.length;$e++){let wt=Je[$e];ye?t.texSubImage2D(34069+be,$e+1,0,0,Oe,z,wt.image[be]):t.texImage2D(34069+be,$e+1,ge,Oe,z,wt.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,le,fe){let Ee=i.convert(J.format,J.encoding),ke=i.convert(J.type),ne=v(J.internalFormat,Ee,ke,J.encoding);A.get(O).__hasExternalTextures||(fe===32879||fe===35866?t.texImage3D(fe,0,ne,O.width,O.height,O.depth,0,Ee,ke,null):t.texImage2D(fe,0,ne,O.width,O.height,0,Ee,ke,null)),t.bindFramebuffer(36160,R),De(O)?d.framebufferTexture2DMultisampleEXT(36160,le,fe,A.get(J).__webglTexture,0,he(O)):n.framebufferTexture2D(36160,le,fe,A.get(J).__webglTexture,0),t.bindFramebuffer(36160,null)}function ie(R,O,J){if(n.bindRenderbuffer(36161,R),O.depthBuffer&&!O.stencilBuffer){let le=33189;if(J||De(O)){let fe=O.depthTexture;fe&&fe.isDepthTexture&&(fe.type===Nr?le=36012:fe.type===Mi&&(le=33190));let Ee=he(O);De(O)?d.renderbufferStorageMultisampleEXT(36161,Ee,le,O.width,O.height):n.renderbufferStorageMultisample(36161,Ee,le,O.width,O.height)}else n.renderbufferStorage(36161,le,O.width,O.height);n.framebufferRenderbuffer(36160,36096,36161,R)}else if(O.depthBuffer&&O.stencilBuffer){let le=he(O);J&&De(O)===!1?n.renderbufferStorageMultisample(36161,le,35056,O.width,O.height):De(O)?d.renderbufferStorageMultisampleEXT(36161,le,35056,O.width,O.height):n.renderbufferStorage(36161,34041,O.width,O.height),n.framebufferRenderbuffer(36160,33306,36161,R)}else{let le=O.isWebGLMultipleRenderTargets===!0?O.texture:[O.texture];for(let fe=0;fe<le.length;fe++){let Ee=le[fe],ke=i.convert(Ee.format,Ee.encoding),ne=i.convert(Ee.type),Fe=v(Ee.internalFormat,ke,ne,Ee.encoding),_e=he(O);J&&De(O)===!1?n.renderbufferStorageMultisample(36161,_e,Fe,O.width,O.height):De(O)?d.renderbufferStorageMultisampleEXT(36161,_e,Fe,O.width,O.height):n.renderbufferStorage(36161,Fe,O.width,O.height)}}n.bindRenderbuffer(36161,null)}function se(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),k(O.depthTexture,0);let le=A.get(O.depthTexture).__webglTexture,fe=he(O);if(O.depthTexture.format===so)De(O)?d.framebufferTexture2DMultisampleEXT(36160,36096,3553,le,0,fe):n.framebufferTexture2D(36160,36096,3553,le,0);else if(O.depthTexture.format===as)De(O)?d.framebufferTexture2DMultisampleEXT(36160,33306,3553,le,0,fe):n.framebufferTexture2D(36160,33306,3553,le,0);else throw new Error("Unknown depthTexture format")}function oe(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");se(O.__webglFramebuffer,R)}else if(J){O.__webglDepthbuffer=[];for(let le=0;le<6;le++)t.bindFramebuffer(36160,O.__webglFramebuffer[le]),O.__webglDepthbuffer[le]=n.createRenderbuffer(),ie(O.__webglDepthbuffer[le],R,!1)}else t.bindFramebuffer(36160,O.__webglFramebuffer),O.__webglDepthbuffer=n.createRenderbuffer(),ie(O.__webglDepthbuffer,R,!1);t.bindFramebuffer(36160,null)}function Te(R,O,J){let le=A.get(R);O!==void 0&&Y(le.__webglFramebuffer,R,R.texture,36064,3553),J!==void 0&&oe(R)}function pe(R){let O=R.texture,J=A.get(R),le=A.get(O);R.addEventListener("dispose",D),R.isWebGLMultipleRenderTargets!==!0&&(le.__webglTexture===void 0&&(le.__webglTexture=n.createTexture()),le.__version=O.version,s.memory.textures++);let fe=R.isWebGLCubeRenderTarget===!0,Ee=R.isWebGLMultipleRenderTargets===!0,ke=b(R)||o;if(fe){J.__webglFramebuffer=[];for(let ne=0;ne<6;ne++)J.__webglFramebuffer[ne]=n.createFramebuffer()}else{if(J.__webglFramebuffer=n.createFramebuffer(),Ee)if(r.drawBuffers){let ne=R.texture;for(let Fe=0,_e=ne.length;Fe<_e;Fe++){let Oe=A.get(ne[Fe]);Oe.__webglTexture===void 0&&(Oe.__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 ne=Ee?O:[O];J.__webglMultisampledFramebuffer=n.createFramebuffer(),J.__webglColorRenderbuffer=[],t.bindFramebuffer(36160,J.__webglMultisampledFramebuffer);for(let Fe=0;Fe<ne.length;Fe++){let _e=ne[Fe];J.__webglColorRenderbuffer[Fe]=n.createRenderbuffer(),n.bindRenderbuffer(36161,J.__webglColorRenderbuffer[Fe]);let Oe=i.convert(_e.format,_e.encoding),z=i.convert(_e.type),ge=v(_e.internalFormat,Oe,z,_e.encoding),ye=he(R);n.renderbufferStorageMultisample(36161,ye,ge,R.width,R.height),n.framebufferRenderbuffer(36160,36064+Fe,36161,J.__webglColorRenderbuffer[Fe])}n.bindRenderbuffer(36161,null),R.depthBuffer&&(J.__webglDepthRenderbuffer=n.createRenderbuffer(),ie(J.__webglDepthRenderbuffer,R,!0)),t.bindFramebuffer(36160,null)}}if(fe){t.bindTexture(34067,le.__webglTexture),U(34067,O,ke);for(let ne=0;ne<6;ne++)Y(J.__webglFramebuffer[ne],R,O,36064,34069+ne);T(O,ke)&&M(34067),t.unbindTexture()}else if(Ee){let ne=R.texture;for(let Fe=0,_e=ne.length;Fe<_e;Fe++){let Oe=ne[Fe],z=A.get(Oe);t.bindTexture(3553,z.__webglTexture),U(3553,Oe,ke),Y(J.__webglFramebuffer,R,Oe,36064+Fe,3553),T(Oe,ke)&&M(3553)}t.unbindTexture()}else{let ne=3553;(R.isWebGL3DRenderTarget||R.isWebGLArrayRenderTarget)&&(o?ne=R.isWebGL3DRenderTarget?32879:35866:console.error("THREE.WebGLTextures: THREE.Data3DTexture and THREE.DataArrayTexture only supported with WebGL2.")),t.bindTexture(ne,le.__webglTexture),U(ne,O,ke),Y(J.__webglFramebuffer,R,O,36064,ne),T(O,ke)&&M(ne),t.unbindTexture()}R.depthBuffer&&oe(R)}function ve(R){let O=b(R)||o,J=R.isWebGLMultipleRenderTargets===!0?R.texture:[R.texture];for(let le=0,fe=J.length;le<fe;le++){let Ee=J[le];if(T(Ee,O)){let ke=R.isWebGLCubeRenderTarget?34067:3553,ne=A.get(Ee).__webglTexture;t.bindTexture(ke,ne),M(ke),t.unbindTexture()}}}function xe(R){if(o&&R.samples>0&&De(R)===!1){let O=R.isWebGLMultipleRenderTargets?R.texture:[R.texture],J=R.width,le=R.height,fe=16384,Ee=[],ke=R.stencilBuffer?33306:36096,ne=A.get(R),Fe=R.isWebGLMultipleRenderTargets===!0;if(Fe)for(let _e=0;_e<O.length;_e++)t.bindFramebuffer(36160,ne.__webglMultisampledFramebuffer),n.framebufferRenderbuffer(36160,36064+_e,36161,null),t.bindFramebuffer(36160,ne.__webglFramebuffer),n.framebufferTexture2D(36009,36064+_e,3553,null,0);t.bindFramebuffer(36008,ne.__webglMultisampledFramebuffer),t.bindFramebuffer(36009,ne.__webglFramebuffer);for(let _e=0;_e<O.length;_e++){Ee.push(36064+_e),R.depthBuffer&&Ee.push(ke);let Oe=ne.__ignoreDepthValues!==void 0?ne.__ignoreDepthValues:!1;if(Oe===!1&&(R.depthBuffer&&(fe|=256),R.stencilBuffer&&(fe|=1024)),Fe&&n.framebufferRenderbuffer(36008,36064,36161,ne.__webglColorRenderbuffer[_e]),Oe===!0&&(n.invalidateFramebuffer(36008,[ke]),n.invalidateFramebuffer(36009,[ke])),Fe){let z=A.get(O[_e]).__webglTexture;n.framebufferTexture2D(36009,36064,3553,z,0)}n.blitFramebuffer(0,0,J,le,0,0,J,le,fe,9728),h&&n.invalidateFramebuffer(36008,Ee)}if(t.bindFramebuffer(36008,null),t.bindFramebuffer(36009,null),Fe)for(let _e=0;_e<O.length;_e++){t.bindFramebuffer(36160,ne.__webglMultisampledFramebuffer),n.framebufferRenderbuffer(36160,36064+_e,36161,ne.__webglColorRenderbuffer[_e]);let Oe=A.get(O[_e]).__webglTexture;t.bindFramebuffer(36160,ne.__webglFramebuffer),n.framebufferTexture2D(36009,36064+_e,3553,Oe,0)}t.bindFramebuffer(36009,ne.__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;p.get(R)!==O&&(p.set(R,O),R.update())}function Xe(R,O){let J=R.encoding,le=R.format,fe=R.type;return R.isCompressedTexture===!0||R.isVideoTexture===!0||R.format===ay||J!==Rn&&(J===qe?o===!1?e.has("EXT_sRGB")===!0&&le===dr?(R.format=ay,R.minFilter=it,R.generateMipmaps=!1):O=zh.sRGBToLinear(O):(le!==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=k,this.setTexture2DArray=Q,this.setTexture3D=H,this.setTextureCube=V,this.rebindTextures=Te,this.setupRenderTarget=pe,this.updateRenderTargetMipmap=ve,this.updateMultisampleRenderTarget=xe,this.setupDepthRenderbuffer=oe,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===Mi)return 5125;if(i===Nr)return 5126;if(i===cu)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===so)return 6402;if(i===as)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===is?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"},ou=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 f of e.hand.values()){let m=t.getJointPose(f,A);if(c.joints[f.jointName]===void 0){let y=new Fr;y.matrixAutoUpdate=!1,y.visible=!1,c.joints[f.jointName]=y,c.add(y)}let g=c.joints[f.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,p=.005;c.inputState.pinching&&d>h+p?(c.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:e.handedness,target:this})):!c.inputState.pinching&&d<=h-p&&(c.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:e.handedness,target:this}))}else a!==null&&e.gripSpace&&(i=t.getPose(e.gripSpace,A),i!==null&&(a.matrix.fromArray(i.transform.matrix),a.matrix.decompose(a.position,a.rotation,a.scale),i.linearVelocity?(a.hasLinearVelocity=!0,a.linearVelocity.copy(i.linearVelocity)):a.hasLinearVelocity=!1,i.angularVelocity?(a.hasAngularVelocity=!0,a.angularVelocity.copy(i.angularVelocity)):a.hasAngularVelocity=!1));o!==null&&(r=t.getPose(e.targetRaySpace,A),r===null&&i!==null&&(r=i),r!==null&&(o.matrix.fromArray(r.transform.matrix),o.matrix.decompose(o.position,o.rotation,o.scale),r.linearVelocity?(o.hasLinearVelocity=!0,o.linearVelocity.copy(r.linearVelocity)):o.hasLinearVelocity=!1,r.angularVelocity?(o.hasAngularVelocity=!0,o.angularVelocity.copy(r.angularVelocity)):o.hasAngularVelocity=!1,this.dispatchEvent(bB)))}return o!==null&&(o.visible=r!==null),a!==null&&(a.visible=i!==null),c!==null&&(c.visible=s!==null),this}},cs=class extends jt{constructor(e,t,A,r,i,s,o,a,c,l){if(l=l!==void 0?l:so,l!==so&&l!==as)throw new Error("DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat");A===void 0&&l===so&&(A=Mi),A===void 0&&l===as&&(A=is),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,p=t.getContextAttributes(),f=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 k=g[F];return k===void 0&&(k=new ou,g[F]=k),k.getTargetRaySpace()},this.getControllerGrip=function(F){let k=g[F];return k===void 0&&(k=new ou,g[F]=k),k.getGripSpace()},this.getHand=function(F){let k=g[F];return k===void 0&&(k=new ou,g[F]=k),k.getHandSpace()};function E(F){let k=y.indexOf(F.inputSource);if(k===-1)return;let Q=g[k];Q!==void 0&&Q.dispatchEvent({type:F.type,data:F.inputSource})}function C(){r.removeEventListener("select",E),r.removeEventListener("selectstart",E),r.removeEventListener("selectend",E),r.removeEventListener("squeeze",E),r.removeEventListener("squeezestart",E),r.removeEventListener("squeezeend",E),r.removeEventListener("end",C),r.removeEventListener("inputsourceschange",P);for(let F=0;F<g.length;F++){let k=y[F];k!==null&&(y[F]=null,g[F].disconnect(k))}M=null,v=null,e.setRenderTarget(f),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(f=e.getRenderTarget(),r.addEventListener("select",E),r.addEventListener("selectstart",E),r.addEventListener("selectend",E),r.addEventListener("squeeze",E),r.addEventListener("squeezestart",E),r.addEventListener("squeezeend",E),r.addEventListener("end",C),r.addEventListener("inputsourceschange",P),p.xrCompatible!==!0&&await t.makeXRCompatible(),r.renderState.layers===void 0||e.capabilities.isWebGL2===!1){let k={antialias:r.renderState.layers===void 0?p.antialias:!0,alpha:p.alpha,depth:p.depth,stencil:p.stencil,framebufferScaleFactor:i};d=new XRWebGLLayer(r,t,k),r.updateRenderState({baseLayer:d}),m=new ht(d.framebufferWidth,d.framebufferHeight,{format:dr,type:Ft,encoding:e.outputEncoding})}else{let k=null,Q=null,H=null;p.depth&&(H=p.stencil?35056:33190,k=p.stencil?as:so,Q=p.stencil?is:Mi);let V={colorFormat:32856,depthFormat:H,scaleFactor:i};l=new XRWebGLBinding(r,t),u=l.createProjectionLayer(V),r.updateRenderState({layers:[u]}),m=new ht(u.textureWidth,u.textureHeight,{format:dr,type:Ft,depthTexture:new cs(u.textureWidth,u.textureHeight,Q,void 0,void 0,void 0,void 0,void 0,void 0,k),stencilBuffer:p.stencil,encoding:e.outputEncoding,samples:p.antialias?4:0});let j=e.properties.get(m);j.__ignoreDepthValues=u.ignoreDepthValues}m.isXRRenderTarget=!0,this.setFoveation(1),a=null,s=await r.requestReferenceSpace(o),X.setContext(r),X.start(),A.isPresenting=!0,A.dispatchEvent({type:"sessionstart"})}};function P(F){for(let k=0;k<F.removed.length;k++){let Q=F.removed[k],H=y.indexOf(Q);H>=0&&(y[H]=null,g[H].dispatchEvent({type:"disconnected",data:Q}))}for(let k=0;k<F.added.length;k++){let Q=F.added[k],H=y.indexOf(Q);if(H===-1){for(let j=0;j<g.length;j++)if(j>=y.length){y.push(Q),H=j;break}else if(y[j]===null){y[j]=Q,H=j;break}if(H===-1)break}let V=g[H];V&&V.dispatchEvent({type:"connected",data:Q})}}let D=new S,L=new S;function I(F,k,Q){D.setFromMatrixPosition(k.matrixWorld),L.setFromMatrixPosition(Q.matrixWorld);let H=D.distanceTo(L),V=k.projectionMatrix.elements,j=Q.projectionMatrix.elements,q=V[14]/(V[10]-1),U=V[14]/(V[10]+1),ue=(V[9]+1)/V[5],te=(V[9]-1)/V[5],Z=(V[8]-1)/V[0],Y=(j[8]+1)/j[0],ie=q*Z,se=q*Y,oe=H/(-Z+Y),Te=oe*-Z;k.matrixWorld.decompose(F.position,F.quaternion,F.scale),F.translateX(Te),F.translateZ(oe),F.matrixWorld.compose(F.position,F.quaternion,F.scale),F.matrixWorldInverse.copy(F.matrixWorld).invert();let pe=q+oe,ve=U+oe,xe=ie-Te,he=se+(H-Te),De=ue*U/ve*pe,Be=te*U/ve*pe;F.projectionMatrix.makePerspective(xe,he,De,Be,pe,ve)}function B(F,k){k===null?F.matrixWorld.copy(F.matrix):F.matrixWorld.multiplyMatrices(k.matrixWorld,F.matrix),F.matrixWorldInverse.copy(F.matrixWorld).invert()}this.updateCamera=function(F){if(r===null)return;T.near=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 k=F.parent,Q=T.cameras;B(T,k);for(let V=0;V<Q.length;V++)B(Q[V],k);T.matrixWorld.decompose(T.position,T.quaternion,T.scale),F.position.copy(T.position),F.quaternion.copy(T.quaternion),F.scale.copy(T.scale),F.matrix.copy(T.matrix),F.matrixWorld.copy(T.matrixWorld);let H=F.children;for(let V=0,j=H.length;V<j;V++)H[V].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,k){if(c=k.getViewerPose(a||s),h=k,c!==null){let Q=c.views;d!==null&&(e.setRenderTargetFramebuffer(m,d.framebuffer),e.setRenderTarget(m));let H=!1;Q.length!==T.cameras.length&&(T.cameras.length=0,H=!0);for(let V=0;V<Q.length;V++){let j=Q[V],q=null;if(d!==null)q=d.getViewport(j);else{let ue=l.getViewSubImage(u,j);q=ue.viewport,V===0&&(e.setRenderTargetTextures(m,ue.colorTexture,u.ignoreDepthValues?void 0:ue.depthStencilTexture),e.setRenderTarget(m))}let U=w[V];U===void 0&&(U=new nA,U.layers.enable(V),U.viewport=new He,w[V]=U),U.matrix.fromArray(j.transform.matrix),U.projectionMatrix.fromArray(j.projectionMatrix),U.viewport.set(q.x,q.y,q.width,q.height),V===0&&T.matrix.copy(U.matrix),H===!0&&T.cameras.push(U)}}for(let Q=0;Q<g.length;Q++){let H=y[Q],V=g[Q];H!==null&&V!==void 0&&V.update(H,k,a||s)}N&&N(F,k),h=null}let X=new $w;X.setAnimationLoop(W),this.setAnimationLoop=function(F){N=F},this.dispose=function(){}}};function wB(n,e){function t(f,m){f.fogColor.value.copy(m.color),m.isFog?(f.fogNear.value=m.near,f.fogFar.value=m.far):m.isFogExp2&&(f.fogDensity.value=m.density)}function A(f,m,g,y,x){m.isMeshBasicMaterial||m.isMeshLambertMaterial?r(f,m):m.isMeshToonMaterial?(r(f,m),l(f,m)):m.isMeshPhongMaterial?(r(f,m),c(f,m)):m.isMeshStandardMaterial?(r(f,m),u(f,m),m.isMeshPhysicalMaterial&&d(f,m,x)):m.isMeshMatcapMaterial?(r(f,m),h(f,m)):m.isMeshDepthMaterial?r(f,m):m.isMeshDistanceMaterial?(r(f,m),p(f,m)):m.isMeshNormalMaterial?r(f,m):m.isLineBasicMaterial?(i(f,m),m.isLineDashedMaterial&&s(f,m)):m.isPointsMaterial?o(f,m,g,y):m.isSpriteMaterial?a(f,m):m.isShadowMaterial?(f.color.value.copy(m.color),f.opacity.value=m.opacity):m.isShaderMaterial&&(m.uniformsNeedUpdate=!1)}function r(f,m){f.opacity.value=m.opacity,m.color&&f.diffuse.value.copy(m.color),m.emissive&&f.emissive.value.copy(m.emissive).multiplyScalar(m.emissiveIntensity),m.map&&(f.map.value=m.map),m.alphaMap&&(f.alphaMap.value=m.alphaMap),m.bumpMap&&(f.bumpMap.value=m.bumpMap,f.bumpScale.value=m.bumpScale,m.side===PA&&(f.bumpScale.value*=-1)),m.displacementMap&&(f.displacementMap.value=m.displacementMap,f.displacementScale.value=m.displacementScale,f.displacementBias.value=m.displacementBias),m.emissiveMap&&(f.emissiveMap.value=m.emissiveMap),m.normalMap&&(f.normalMap.value=m.normalMap,f.normalScale.value.copy(m.normalScale),m.side===PA&&f.normalScale.value.negate()),m.specularMap&&(f.specularMap.value=m.specularMap),m.alphaTest>0&&(f.alphaTest.value=m.alphaTest);let g=e.get(m).envMap;if(g&&(f.envMap.value=g,f.flipEnvMap.value=g.isCubeTexture&&g.isRenderTargetTexture===!1?-1:1,f.reflectivity.value=m.reflectivity,f.ior.value=m.ior,f.refractionRatio.value=m.refractionRatio),m.lightMap){f.lightMap.value=m.lightMap;let b=n.physicallyCorrectLights!==!0?Math.PI:1;f.lightMapIntensity.value=m.lightMapIntensity*b}m.aoMap&&(f.aoMap.value=m.aoMap,f.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(),f.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(),f.uv2Transform.value.copy(x.matrix))}function i(f,m){f.diffuse.value.copy(m.color),f.opacity.value=m.opacity}function s(f,m){f.dashSize.value=m.dashSize,f.totalSize.value=m.dashSize+m.gapSize,f.scale.value=m.scale}function o(f,m,g,y){f.diffuse.value.copy(m.color),f.opacity.value=m.opacity,f.size.value=m.size*g,f.scale.value=y*.5,m.map&&(f.map.value=m.map),m.alphaMap&&(f.alphaMap.value=m.alphaMap),m.alphaTest>0&&(f.alphaTest.value=m.alphaTest);let x;m.map?x=m.map:m.alphaMap&&(x=m.alphaMap),x!==void 0&&(x.matrixAutoUpdate===!0&&x.updateMatrix(),f.uvTransform.value.copy(x.matrix))}function a(f,m){f.diffuse.value.copy(m.color),f.opacity.value=m.opacity,f.rotation.value=m.rotation,m.map&&(f.map.value=m.map),m.alphaMap&&(f.alphaMap.value=m.alphaMap),m.alphaTest>0&&(f.alphaTest.value=m.alphaTest);let g;m.map?g=m.map:m.alphaMap&&(g=m.alphaMap),g!==void 0&&(g.matrixAutoUpdate===!0&&g.updateMatrix(),f.uvTransform.value.copy(g.matrix))}function c(f,m){f.specular.value.copy(m.specular),f.shininess.value=Math.max(m.shininess,1e-4)}function l(f,m){m.gradientMap&&(f.gradientMap.value=m.gradientMap)}function u(f,m){f.roughness.value=m.roughness,f.metalness.value=m.metalness,m.roughnessMap&&(f.roughnessMap.value=m.roughnessMap),m.metalnessMap&&(f.metalnessMap.value=m.metalnessMap),e.get(m).envMap&&(f.envMapIntensity.value=m.envMapIntensity)}function d(f,m,g){f.ior.value=m.ior,m.sheen>0&&(f.sheenColor.value.copy(m.sheenColor).multiplyScalar(m.sheen),f.sheenRoughness.value=m.sheenRoughness,m.sheenColorMap&&(f.sheenColorMap.value=m.sheenColorMap),m.sheenRoughnessMap&&(f.sheenRoughnessMap.value=m.sheenRoughnessMap)),m.clearcoat>0&&(f.clearcoat.value=m.clearcoat,f.clearcoatRoughness.value=m.clearcoatRoughness,m.clearcoatMap&&(f.clearcoatMap.value=m.clearcoatMap),m.clearcoatRoughnessMap&&(f.clearcoatRoughnessMap.value=m.clearcoatRoughnessMap),m.clearcoatNormalMap&&(f.clearcoatNormalScale.value.copy(m.clearcoatNormalScale),f.clearcoatNormalMap.value=m.clearcoatNormalMap,m.side===PA&&f.clearcoatNormalScale.value.negate())),m.iridescence>0&&(f.iridescence.value=m.iridescence,f.iridescenceIOR.value=m.iridescenceIOR,f.iridescenceThicknessMinimum.value=m.iridescenceThicknessRange[0],f.iridescenceThicknessMaximum.value=m.iridescenceThicknessRange[1],m.iridescenceMap&&(f.iridescenceMap.value=m.iridescenceMap),m.iridescenceThicknessMap&&(f.iridescenceThicknessMap.value=m.iridescenceThicknessMap)),m.transmission>0&&(f.transmission.value=m.transmission,f.transmissionSamplerMap.value=g.texture,f.transmissionSamplerSize.value.set(g.width,g.height),m.transmissionMap&&(f.transmissionMap.value=m.transmissionMap),f.thickness.value=m.thickness,m.thicknessMap&&(f.thicknessMap.value=m.thicknessMap),f.attenuationDistance.value=m.attenuationDistance,f.attenuationColor.value.copy(m.attenuationColor)),f.specularIntensity.value=m.specularIntensity,f.specularColor.value.copy(m.specularColor),m.specularIntensityMap&&(f.specularIntensityMap.value=m.specularIntensityMap),m.specularColorMap&&(f.specularColorMap.value=m.specularColorMap)}function h(f,m){m.matcap&&(f.matcap.value=m.matcap)}function p(f,m){f.referencePosition.value.copy(m.referencePosition),f.nearDistance.value=m.nearDistance,f.farDistance.value=m.farDistance}return{refreshFogUniforms:t,refreshMaterialUniforms:A}}function SB(){let n=Vh("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=[],p=[];this.domElement=e,this.debug={checkShaderErrors:!0},this.autoClear=!0,this.autoClearColor=!0,this.autoClearDepth=!0,this.autoClearStencil=!0,this.sortObjects=!0,this.clippingPlanes=[],this.localClippingEnabled=!1,this.outputEncoding=Rn,this.physicallyCorrectLights=!1,this.toneMapping=Ei,this.toneMappingExposure=1,Object.defineProperties(this,{gammaFactor:{get:function(){return console.warn("THREE.WebGLRenderer: .gammaFactor has been removed."),2},set:function(){console.warn("THREE.WebGLRenderer: .gammaFactor has been removed.")}}});let f=this,m=!1,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 hu,X=!1,F=!1,k=null,Q=new de,H=new G,V=new S,j={background:null,fog:null,environment:null,overrideMaterial:null,isScene:!0};function q(){return x===null?P:1}let U=t;function ue(_,$){for(let re=0;re<_.length;re++){let Ae=_[re],ce=e.getContext(Ae,$);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${yo}`),e.addEventListener("webglcontextlost",z,!1),e.addEventListener("webglcontextrestored",ge,!1),e.addEventListener("webglcontextcreationerror",ye,!1),U===null){let $=["webgl2","webgl","experimental-webgl"];if(f.isWebGL1Renderer===!0&&$.shift(),U=ue($,_),U===null)throw ue($)?new Error("Error creating WebGL context with your selected attributes."):new Error("Error creating WebGL context.")}U.getShaderPrecisionFormat===void 0&&(U.getShaderPrecisionFormat=function(){return{rangeMin:1,rangeMax:1,precision:1}})}catch(_){throw console.error("THREE.WebGLRenderer: "+_.message),_}let te,Z,Y,ie,se,oe,Te,pe,ve,xe,he,De,Be,Xe,R,O,J,le,fe,Ee,ke,ne,Fe;function _e(){te=new W_(U),Z=new G_(U,te,n),te.init(Z),ne=new xB(U,te,Z),Y=new yB(U,te,Z),ie=new q_,se=new sB,oe=new vB(U,te,Y,se,Z,ne,ie),Te=new k_(f),pe=new H_(f),ve=new iO(U,Z),Fe=new N_(U,te,ve,Z),xe=new j_(U,ve,ie,Fe),he=new Z_(U,xe,ve,ie),fe=new K_(U,Z,oe),O=new U_(se),De=new iB(f,Te,pe,te,Z,Fe,O),Be=new wB(f,se),Xe=new aB,R=new fB(te,Z),le=new B_(f,Te,Y,he,l,s),J=new gB(f,he,Z),Ee=new F_(U,te,ie,Z),ke=new Y_(U,te,ie,Z),ie.programs=De.programs,f.capabilities=Z,f.extensions=te,f.properties=se,f.renderLists=Xe,f.shadowMap=J,f.state=Y,f.info=ie}_e();let Oe=new by(f,U);this.xr=Oe,this.getContext=function(){return U},this.getContextAttributes=function(){return U.getContextAttributes()},this.forceContextLoss=function(){let _=te.get("WEBGL_lose_context");_&&_.loseContext()},this.forceContextRestore=function(){let _=te.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(_,$,re){if(Oe.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),re!==!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(_,$,re){E=_,C=$,P=re,e.width=Math.floor(_*re),e.height=Math.floor($*re),this.setViewport(0,0,_,$)},this.getCurrentViewport=function(_){return _.copy(T)},this.getViewport=function(_){return _.copy(I)},this.setViewport=function(_,$,re,Ae){_.isVector4?I.set(_.x,_.y,_.z,_.w):I.set(_,$,re,Ae),Y.viewport(T.copy(I).multiplyScalar(P).floor())},this.getScissor=function(_){return _.copy(B)},this.setScissor=function(_,$,re,Ae){_.isVector4?B.set(_.x,_.y,_.z,_.w):B.set(_,$,re,Ae),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(le.getClearColor())},this.setClearColor=function(){le.setClearColor.apply(le,arguments)},this.getClearAlpha=function(){return le.getClearAlpha()},this.setClearAlpha=function(){le.setClearAlpha.apply(le,arguments)},this.clear=function(_=!0,$=!0,re=!0){let Ae=0;_&&(Ae|=16384),$&&(Ae|=256),re&&(Ae|=1024),U.clear(Ae)},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",z,!1),e.removeEventListener("webglcontextrestored",ge,!1),e.removeEventListener("webglcontextcreationerror",ye,!1),Xe.dispose(),R.dispose(),se.dispose(),Te.dispose(),pe.dispose(),he.dispose(),Fe.dispose(),De.dispose(),Oe.dispose(),Oe.removeEventListener("sessionstart",wt),Oe.removeEventListener("sessionend",st),k&&(k.dispose(),k=null),MA.stop()};function z(_){_.preventDefault(),console.log("THREE.WebGLRenderer: Context Lost."),m=!0}function ge(){console.log("THREE.WebGLRenderer: Context Restored."),m=!1;let _=ie.autoReset,$=J.enabled,re=J.autoUpdate,Ae=J.needsUpdate,ce=J.type;_e(),ie.autoReset=_,J.enabled=$,J.autoUpdate=re,J.needsUpdate=Ae,J.type=ce}function ye(_){console.error("THREE.WebGLRenderer: A WebGL context could not be created. Reason: ",_.statusMessage)}function Ke(_){let $=_.target;$.removeEventListener("dispose",Ke),Re($)}function Re(_){Je(_),se.remove(_)}function Je(_){let $=se.get(_).programs;$!==void 0&&($.forEach(function(re){De.releaseProgram(re)}),_.isShaderMaterial&&De.releaseShaderCache(_))}this.renderBufferDirect=function(_,$,re,Ae,ce,tt){$===null&&($=j);let rt=ce.isMesh&&ce.matrixWorld.determinant()<0,at=SD(_,$,re,Ae,ce);Y.setMaterial(Ae,rt);let ot=re.index,Dt=re.attributes.position;if(ot===null){if(Dt===void 0||Dt.count===0)return}else if(ot.count===0)return;let pt=1;Ae.wireframe===!0&&(ot=xe.getWireframeAttribute(re),pt=2),Fe.setup(ce,Ae,at,re,ot);let vt,qt=Ee;ot!==null&&(vt=ve.get(ot),qt=ke,qt.setIndex(vt));let $s=ot!==null?ot.count:Dt.count,Aa=re.drawRange.start*pt,na=re.drawRange.count*pt,Lr=tt!==null?tt.start*pt:0,Tt=tt!==null?tt.count*pt:1/0,ra=Math.max(Aa,Lr),cA=Math.min($s,Aa+na,Lr+Tt)-1,_r=Math.max(0,cA-ra+1);if(_r!==0){if(ce.isMesh)Ae.wireframe===!0?(Y.setLineWidth(Ae.wireframeLinewidth*q()),qt.setMode(1)):qt.setMode(4);else if(ce.isLine){let Ki=Ae.linewidth;Ki===void 0&&(Ki=1),Y.setLineWidth(Ki*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(ra,_r,ce.count);else if(re.isInstancedBufferGeometry){let Ki=Math.min(re.instanceCount,re._maxInstanceCount);qt.renderInstances(ra,_r,Ki)}else qt.render(ra,_r)}},this.compile=function(_,$){d=R.get(_),d.init(),p.push(d),_.traverseVisible(function(re){re.isLight&&re.layers.test($.layers)&&(d.pushLight(re),re.castShadow&&d.pushShadow(re))}),d.setupLights(f.physicallyCorrectLights),_.traverse(function(re){let Ae=re.material;if(Ae)if(Array.isArray(Ae))for(let ce=0;ce<Ae.length;ce++){let tt=Ae[ce];gg(tt,_,re)}else gg(Ae,_,re)}),p.pop(),d=null};let be=null;function $e(_){be&&be(_)}function wt(){MA.stop()}function st(){MA.start()}let MA=new $w;MA.setAnimationLoop($e),typeof self<"u"&&MA.setContext(self),this.setAnimationLoop=function(_){be=_,Oe.setAnimationLoop(_),_===null?MA.stop():MA.start()},Oe.addEventListener("sessionstart",wt),Oe.addEventListener("sessionend",st),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(),Oe.enabled===!0&&Oe.isPresenting===!0&&(Oe.cameraAutoUpdate===!0&&Oe.updateCamera($),$=Oe.getCamera()),_.isScene===!0&&_.onBeforeRender(f,_,$,x),d=R.get(_,p.length),d.init(),p.push(d),Q.multiplyMatrices($.projectionMatrix,$.matrixWorldInverse),W.setFromProjectionMatrix(Q),F=this.localClippingEnabled,X=O.init(this.clippingPlanes,F,$),u=Xe.get(_,h.length),u.init(),h.push(u),Bt(_,$,0,f.sortObjects),u.finish(),f.sortObjects===!0&&u.sort(D,L),X===!0&&O.beginShadows();let re=d.state.shadowsArray;if(J.render(re,_,$),X===!0&&O.endShadows(),this.info.autoReset===!0&&this.info.reset(),le.render(u,_),d.setupLights(f.physicallyCorrectLights),$.isArrayCamera){let Ae=$.cameras;for(let ce=0,tt=Ae.length;ce<tt;ce++){let rt=Ae[ce];ta(u,_,rt,rt.viewport)}}else ta(u,_,$);x!==null&&(oe.updateMultisampleRenderTarget(x),oe.updateRenderTargetMipmap(x)),_.isScene===!0&&_.onAfterRender(f,_,$),Fe.resetDefaultState(),b=-1,w=null,p.pop(),p.length>0?d=p[p.length-1]:d=null,h.pop(),h.length>0?u=h[h.length-1]:u=null};function Bt(_,$,re,Ae){if(_.visible===!1)return;if(_.layers.test($.layers)){if(_.isGroup)re=_.renderOrder;else if(_.isLOD)_.autoUpdate===!0&&_.update($);else if(_.isLight)d.pushLight(_),_.castShadow&&d.pushShadow(_);else if(_.isSprite){if(!_.frustumCulled||W.intersectsSprite(_)){Ae&&V.setFromMatrixPosition(_.matrixWorld).applyMatrix4(Q);let rt=he.update(_),at=_.material;at.visible&&u.push(_,rt,at,re,V.z,null)}}else if((_.isMesh||_.isLine||_.isPoints)&&(_.isSkinnedMesh&&_.skeleton.frame!==ie.render.frame&&(_.skeleton.update(),_.skeleton.frame=ie.render.frame),!_.frustumCulled||W.intersectsObject(_))){Ae&&V.setFromMatrixPosition(_.matrixWorld).applyMatrix4(Q);let rt=he.update(_),at=_.material;if(Array.isArray(at)){let ot=rt.groups;for(let Dt=0,pt=ot.length;Dt<pt;Dt++){let vt=ot[Dt],qt=at[vt.materialIndex];qt&&qt.visible&&u.push(_,rt,qt,re,V.z,vt)}}else at.visible&&u.push(_,rt,at,re,V.z,null)}}let tt=_.children;for(let rt=0,at=tt.length;rt<at;rt++)Bt(tt[rt],$,re,Ae)}function ta(_,$,re,Ae){let ce=_.opaque,tt=_.transmissive,rt=_.transparent;d.setupLightsView(re),tt.length>0&&mg(ce,$,re),Ae&&Y.viewport(T.copy(Ae)),ce.length>0&&gi(ce,$,re),tt.length>0&&gi(tt,$,re),rt.length>0&&gi(rt,$,re),Y.buffers.depth.setTest(!0),Y.buffers.depth.setMask(!0),Y.buffers.color.setMask(!0),Y.setPolygonOffset(!1)}function mg(_,$,re){let Ae=Z.isWebGL2;k===null&&(k=new ht(1,1,{generateMipmaps:!0,type:te.has("EXT_color_buffer_half_float")?cu:Ft,minFilter:Ha,samples:Ae&&i===!0?4:0})),f.getDrawingBufferSize(H),Ae?k.setSize(H.x,H.y):k.setSize(kh(H.x),kh(H.y));let ce=f.getRenderTarget();f.setRenderTarget(k),f.clear();let tt=f.toneMapping;f.toneMapping=Ei,gi(_,$,re),f.toneMapping=tt,oe.updateMultisampleRenderTarget(k),oe.updateRenderTargetMipmap(k),f.setRenderTarget(ce)}function gi(_,$,re){let Ae=$.isScene===!0?$.overrideMaterial:null;for(let ce=0,tt=_.length;ce<tt;ce++){let rt=_[ce],at=rt.object,ot=rt.geometry,Dt=Ae===null?rt.material:Ae,pt=rt.group;at.layers.test(re.layers)&&wD(at,$,re,ot,Dt,pt)}}function wD(_,$,re,Ae,ce,tt){_.onBeforeRender(f,$,re,Ae,ce,tt),_.modelViewMatrix.multiplyMatrices(re.matrixWorldInverse,_.matrixWorld),_.normalMatrix.getNormalMatrix(_.modelViewMatrix),ce.onBeforeRender(f,$,re,Ae,_,tt),ce.transparent===!0&&ce.side===_n?(ce.side=PA,ce.needsUpdate=!0,f.renderBufferDirect(re,$,Ae,ce,_,tt),ce.side=Ur,ce.needsUpdate=!0,f.renderBufferDirect(re,$,Ae,ce,_,tt),ce.side=_n):f.renderBufferDirect(re,$,Ae,ce,_,tt),_.onAfterRender(f,$,re,Ae,ce,tt)}function gg(_,$,re){$.isScene!==!0&&($=j);let Ae=se.get(_),ce=d.state.lights,tt=d.state.shadowsArray,rt=ce.state.version,at=De.getParameters(_,ce.state,tt,$,re),ot=De.getProgramCacheKey(at),Dt=Ae.programs;Ae.environment=_.isMeshStandardMaterial?$.environment:null,Ae.fog=$.fog,Ae.envMap=(_.isMeshStandardMaterial?pe:Te).get(_.envMap||Ae.environment),Dt===void 0&&(_.addEventListener("dispose",Ke),Dt=new Map,Ae.programs=Dt);let pt=Dt.get(ot);if(pt!==void 0){if(Ae.currentProgram===pt&&Ae.lightsStateVersion===rt)return cb(_,at),pt}else at.uniforms=De.getUniforms(_),_.onBuild(re,at,f),_.onBeforeCompile(at,f),pt=De.acquireProgram(at,ot),Dt.set(ot,pt),Ae.uniforms=at.uniforms;let vt=Ae.uniforms;(!_.isShaderMaterial&&!_.isRawShaderMaterial||_.clipping===!0)&&(vt.clippingPlanes=O.uniform),cb(_,at),Ae.needsLights=MD(_),Ae.lightsStateVersion=rt,Ae.needsLights&&(vt.ambientLightColor.value=ce.state.ambient,vt.lightProbe.value=ce.state.probe,vt.directionalLights.value=ce.state.directional,vt.directionalLightShadows.value=ce.state.directionalShadow,vt.spotLights.value=ce.state.spot,vt.spotLightShadows.value=ce.state.spotShadow,vt.rectAreaLights.value=ce.state.rectArea,vt.ltc_1.value=ce.state.rectAreaLTC1,vt.ltc_2.value=ce.state.rectAreaLTC2,vt.pointLights.value=ce.state.point,vt.pointLightShadows.value=ce.state.pointShadow,vt.hemisphereLights.value=ce.state.hemi,vt.directionalShadowMap.value=ce.state.directionalShadowMap,vt.directionalShadowMatrix.value=ce.state.directionalShadowMatrix,vt.spotShadowMap.value=ce.state.spotShadowMap,vt.spotShadowMatrix.value=ce.state.spotShadowMatrix,vt.pointShadowMap.value=ce.state.pointShadowMap,vt.pointShadowMatrix.value=ce.state.pointShadowMatrix);let qt=pt.getUniforms(),$s=Sa.seqWithValue(qt.seq,vt);return Ae.currentProgram=pt,Ae.uniformsList=$s,pt}function cb(_,$){let re=se.get(_);re.outputEncoding=$.outputEncoding,re.instancing=$.instancing,re.skinning=$.skinning,re.morphTargets=$.morphTargets,re.morphNormals=$.morphNormals,re.morphColors=$.morphColors,re.morphTargetsCount=$.morphTargetsCount,re.numClippingPlanes=$.numClippingPlanes,re.numIntersection=$.numClipIntersection,re.vertexAlphas=$.vertexAlphas,re.vertexTangents=$.vertexTangents,re.toneMapping=$.toneMapping}function SD(_,$,re,Ae,ce){$.isScene!==!0&&($=j),oe.resetTextureUnits();let tt=$.fog,rt=Ae.isMeshStandardMaterial?$.environment:null,at=x===null?f.outputEncoding:x.isXRRenderTarget===!0?x.texture.encoding:Rn,ot=(Ae.isMeshStandardMaterial?pe:Te).get(Ae.envMap||rt),Dt=Ae.vertexColors===!0&&!!re.attributes.color&&re.attributes.color.itemSize===4,pt=!!Ae.normalMap&&!!re.attributes.tangent,vt=!!re.morphAttributes.position,qt=!!re.morphAttributes.normal,$s=!!re.morphAttributes.color,Aa=Ae.toneMapped?f.toneMapping:Ei,na=re.morphAttributes.position||re.morphAttributes.normal||re.morphAttributes.color,Lr=na!==void 0?na.length:0,Tt=se.get(Ae),ra=d.state.lights;if(X===!0&&(F===!0||_!==w)){let Rr=_===w&&Ae.id===b;O.setState(Ae,_,Rr)}let cA=!1;Ae.version===Tt.__version?(Tt.needsLights&&Tt.lightsStateVersion!==ra.state.version||Tt.outputEncoding!==at||ce.isInstancedMesh&&Tt.instancing===!1||!ce.isInstancedMesh&&Tt.instancing===!0||ce.isSkinnedMesh&&Tt.skinning===!1||!ce.isSkinnedMesh&&Tt.skinning===!0||Tt.envMap!==ot||Ae.fog===!0&&Tt.fog!==tt||Tt.numClippingPlanes!==void 0&&(Tt.numClippingPlanes!==O.numPlanes||Tt.numIntersection!==O.numIntersection)||Tt.vertexAlphas!==Dt||Tt.vertexTangents!==pt||Tt.morphTargets!==vt||Tt.morphNormals!==qt||Tt.morphColors!==$s||Tt.toneMapping!==Aa||Z.isWebGL2===!0&&Tt.morphTargetsCount!==Lr)&&(cA=!0):(cA=!0,Tt.__version=Ae.version);let _r=Tt.currentProgram;cA===!0&&(_r=gg(Ae,$,ce));let Ki=!1,Zc=!1,yg=!1,en=_r.getUniforms(),Jc=Tt.uniforms;if(Y.useProgram(_r.program)&&(Ki=!0,Zc=!0,yg=!0),Ae.id!==b&&(b=Ae.id,Zc=!0),Ki||w!==_){if(en.setValue(U,"projectionMatrix",_.projectionMatrix),Z.logarithmicDepthBuffer&&en.setValue(U,"logDepthBufFC",2/(Math.log(_.far+1)/Math.LN2)),w!==_&&(w=_,Zc=!0,yg=!0),Ae.isShaderMaterial||Ae.isMeshPhongMaterial||Ae.isMeshToonMaterial||Ae.isMeshStandardMaterial||Ae.envMap){let Rr=en.map.cameraPosition;Rr!==void 0&&Rr.setValue(U,V.setFromMatrixPosition(_.matrixWorld))}(Ae.isMeshPhongMaterial||Ae.isMeshToonMaterial||Ae.isMeshLambertMaterial||Ae.isMeshBasicMaterial||Ae.isMeshStandardMaterial||Ae.isShaderMaterial)&&en.setValue(U,"isOrthographic",_.isOrthographicCamera===!0),(Ae.isMeshPhongMaterial||Ae.isMeshToonMaterial||Ae.isMeshLambertMaterial||Ae.isMeshBasicMaterial||Ae.isMeshStandardMaterial||Ae.isShaderMaterial||Ae.isShadowMaterial||ce.isSkinnedMesh)&&en.setValue(U,"viewMatrix",_.matrixWorldInverse)}if(ce.isSkinnedMesh){en.setOptional(U,ce,"bindMatrix"),en.setOptional(U,ce,"bindMatrixInverse");let Rr=ce.skeleton;Rr&&(Z.floatVertexTextures?(Rr.boneTexture===null&&Rr.computeBoneTexture(),en.setValue(U,"boneTexture",Rr.boneTexture,oe),en.setValue(U,"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=re.morphAttributes;return(vg.position!==void 0||vg.normal!==void 0||vg.color!==void 0&&Z.isWebGL2===!0)&&fe.update(ce,re,Ae,_r),(Zc||Tt.receiveShadow!==ce.receiveShadow)&&(Tt.receiveShadow=ce.receiveShadow,en.setValue(U,"receiveShadow",ce.receiveShadow)),Zc&&(en.setValue(U,"toneMappingExposure",f.toneMappingExposure),Tt.needsLights&&TD(Jc,yg),tt&&Ae.fog===!0&&Be.refreshFogUniforms(Jc,tt),Be.refreshMaterialUniforms(Jc,Ae,P,C,k),Sa.upload(U,Tt.uniformsList,Jc,oe)),Ae.isShaderMaterial&&Ae.uniformsNeedUpdate===!0&&(Sa.upload(U,Tt.uniformsList,Jc,oe),Ae.uniformsNeedUpdate=!1),Ae.isSpriteMaterial&&en.setValue(U,"center",ce.center),en.setValue(U,"modelViewMatrix",ce.modelViewMatrix),en.setValue(U,"normalMatrix",ce.normalMatrix),en.setValue(U,"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(_,$,re){se.get(_.texture).__webglTexture=$,se.get(_.depthTexture).__webglTexture=re;let Ae=se.get(_);Ae.__hasExternalTextures=!0,Ae.__hasExternalTextures&&(Ae.__autoAllocateDepthBuffer=re===void 0,Ae.__autoAllocateDepthBuffer||te.has("WEBGL_multisampled_render_to_texture")===!0&&(console.warn("THREE.WebGLRenderer: Render-to-texture extension was disabled because an external texture was provided"),Ae.__useRenderToTexture=!1))},this.setRenderTargetFramebuffer=function(_,$){let re=se.get(_);re.__webglFramebuffer=$,re.__useDefaultFramebuffer=$===void 0},this.setRenderTarget=function(_,$=0,re=0){x=_,g=$,y=re;let Ae=!0;if(_){let ot=se.get(_);ot.__useDefaultFramebuffer!==void 0?(Y.bindFramebuffer(36160,null),Ae=!1):ot.__webglFramebuffer===void 0?oe.setupRenderTarget(_):ot.__hasExternalTextures&&oe.rebindTextures(_,se.get(_.texture).__webglTexture,se.get(_.depthTexture).__webglTexture)}let ce=null,tt=!1,rt=!1;if(_){let ot=_.texture;(ot.isData3DTexture||ot.isDataArrayTexture)&&(rt=!0);let Dt=se.get(_).__webglFramebuffer;_.isWebGLCubeRenderTarget?(ce=Dt[$],tt=!0):Z.isWebGL2&&_.samples>0&&oe.useMultisampledRTT(_)===!1?ce=se.get(_).__webglMultisampledFramebuffer:ce=Dt,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&&Ae&&Y.drawBuffers(_,ce),Y.viewport(T),Y.scissor(M),Y.setScissorTest(v),tt){let ot=se.get(_.texture);U.framebufferTexture2D(36160,36064,34069+$,ot.__webglTexture,re)}else if(rt){let ot=se.get(_.texture),Dt=$||0;U.framebufferTextureLayer(36160,36064,ot.__webglTexture,re||0,Dt)}b=-1},this.readRenderTargetPixels=function(_,$,re,Ae,ce,tt,rt){if(!(_&&_.isWebGLRenderTarget)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");return}let at=se.get(_).__webglFramebuffer;if(_.isWebGLCubeRenderTarget&&rt!==void 0&&(at=at[rt]),at){Y.bindFramebuffer(36160,at);try{let ot=_.texture,Dt=ot.format,pt=ot.type;if(Dt!==dr&&ne.convert(Dt)!==U.getParameter(35739)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");return}let vt=pt===cu&&(te.has("EXT_color_buffer_half_float")||Z.isWebGL2&&te.has("EXT_color_buffer_float"));if(pt!==Ft&&ne.convert(pt)!==U.getParameter(35738)&&!(pt===Nr&&(Z.isWebGL2||te.has("OES_texture_float")||te.has("WEBGL_color_buffer_float")))&&!vt){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");return}$>=0&&$<=_.width-Ae&&re>=0&&re<=_.height-ce&&U.readPixels($,re,Ae,ce,ne.convert(Dt),ne.convert(pt),tt)}finally{let ot=x!==null?se.get(x).__webglFramebuffer:null;Y.bindFramebuffer(36160,ot)}}},this.copyFramebufferToTexture=function(_,$,re=0){let Ae=Math.pow(2,-re),ce=Math.floor($.image.width*Ae),tt=Math.floor($.image.height*Ae);oe.setTexture2D($,0),U.copyTexSubImage2D(3553,re,0,0,_.x,_.y,ce,tt),Y.unbindTexture()},this.copyTextureToTexture=function(_,$,re,Ae=0){let ce=$.image.width,tt=$.image.height,rt=ne.convert(re.format),at=ne.convert(re.type);oe.setTexture2D(re,0),U.pixelStorei(37440,re.flipY),U.pixelStorei(37441,re.premultiplyAlpha),U.pixelStorei(3317,re.unpackAlignment),$.isDataTexture?U.texSubImage2D(3553,Ae,_.x,_.y,ce,tt,rt,at,$.image.data):$.isCompressedTexture?U.compressedTexSubImage2D(3553,Ae,_.x,_.y,$.mipmaps[0].width,$.mipmaps[0].height,rt,$.mipmaps[0].data):U.texSubImage2D(3553,Ae,_.x,_.y,rt,at,$.image),Ae===0&&re.generateMipmaps&&U.generateMipmap(3553),Y.unbindTexture()},this.copyTextureToTexture3D=function(_,$,re,Ae,ce=0){if(f.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=ne.convert(Ae.format),Dt=ne.convert(Ae.type),pt;if(Ae.isData3DTexture)oe.setTexture3D(Ae,0),pt=32879;else if(Ae.isDataArrayTexture)oe.setTexture2DArray(Ae,0),pt=35866;else{console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.");return}U.pixelStorei(37440,Ae.flipY),U.pixelStorei(37441,Ae.premultiplyAlpha),U.pixelStorei(3317,Ae.unpackAlignment);let vt=U.getParameter(3314),qt=U.getParameter(32878),$s=U.getParameter(3316),Aa=U.getParameter(3315),na=U.getParameter(32877),Lr=re.isCompressedTexture?re.mipmaps[0]:re.image;U.pixelStorei(3314,Lr.width),U.pixelStorei(32878,Lr.height),U.pixelStorei(3316,_.min.x),U.pixelStorei(3315,_.min.y),U.pixelStorei(32877,_.min.z),re.isDataTexture||re.isData3DTexture?U.texSubImage3D(pt,ce,$.x,$.y,$.z,tt,rt,at,ot,Dt,Lr.data):re.isCompressedTexture?(console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: untested support for compressed srcTexture."),U.compressedTexSubImage3D(pt,ce,$.x,$.y,$.z,tt,rt,at,ot,Lr.data)):U.texSubImage3D(pt,ce,$.x,$.y,$.z,tt,rt,at,ot,Dt,Lr),U.pixelStorei(3314,vt),U.pixelStorei(32878,qt),U.pixelStorei(3316,$s),U.pixelStorei(3315,Aa),U.pixelStorei(32877,na),ce===0&&Ae.generateMipmaps&&U.generateMipmap(pt),Y.unbindTexture()},this.initTexture=function(_){_.isCubeTexture?oe.setTextureCube(_,0):_.isData3DTexture?oe.setTexture3D(_,0):_.isDataArrayTexture?oe.setTexture2DArray(_,0):oe.setTexture2D(_,0),Y.unbindTexture()},this.resetState=function(){g=0,y=0,x=null,Y.reset(),Fe.reset()},typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}var wy=class extends qy{};wy.prototype.isWebGL1Renderer=!0;var Pa=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 Pa(this.color,this.near,this.far)}toJSON(){return{type:"Fog",color:this.color.getHex(),near:this.near,far:this.far}}},sn=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}},Xh=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}}},tn=new S,lo=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++)tn.fromBufferAttribute(this,t),tn.applyMatrix4(e),this.setXYZ(t,tn.x,tn.y,tn.z);return this}applyNormalMatrix(e){for(let t=0,A=this.count;t<A;t++)tn.fromBufferAttribute(this,t),tn.applyNormalMatrix(e),this.setXYZ(t,tn.x,tn.y,tn.z);return this}transformDirection(e){for(let t=0,A=this.count;t<A;t++)tn.fromBufferAttribute(this,t),tn.transformDirection(e),this.setXYZ(t,tn.x,tn.y,tn.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 Ne(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 lo(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 Qh=class extends Ne{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 ao{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,Ih=new dA,co=class extends dt{constructor(e=new Pe,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(),Ih.copy(A.boundingSphere),Ih.applyMatrix4(r),Ih.radius+=i,e.ray.intersectsSphere(Ih)===!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,p=A.index,m=A.attributes.position;if(p!==null){let g=Math.max(0,s.start),y=Math.min(p.count,s.start+s.count);for(let x=g,b=y-1;x<b;x+=h){let w=p.getX(x),T=p.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,us=class extends co{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 Kh=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 p=h/e;r[h]=this.getTangentAt(p,new S)}i[0]=new S,s[0]=new S;let c=Number.MAX_VALUE,l=Math.abs(r[0].x),u=Math.abs(r[0].y),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 p=Math.acos(gA(r[h-1].dot(r[h]),-1,1));i[h].applyMatrix4(a.makeRotationAxis(o,p))}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 p=1;p<=e;p++)i[p].applyMatrix4(a.makeRotationAxis(r[p],h*p)),s[p].crossVectors(r[p],i[p])}return{tangents:r,normals:i,binormals:s}}clone(){return new this.constructor().copy(this)}copy(e){return this.arcLengthDivisions=e.arcLengthDivisions,this}toJSON(){let e={metadata:{version:4.5,type:"Curve",generator:"Curve.toJSON"}};return e.arcLengthDivisions=this.arcLengthDivisions,e.type=this.type,e}fromJSON(e){return this.arcLengthDivisions=e.arcLengthDivisions,this}},uo=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 uo{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 Oh=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]:(Oh.subVectors(r[0],r[1]).add(r[0]),c=Oh);let u=r[o%i],d=r[(o+1)%i];if(this.closed||o+2<i?l=r[(o+2)%i]:(Oh.subVectors(r[i-1],r[i-2]).add(r[i-1]),l=Oh),this.curveType==="centripetal"||this.curveType==="chordal"){let h=this.curveType==="chordal"?.5:.25,p=Math.pow(c.distanceToSquared(u),h),f=Math.pow(u.distanceToSquared(d),h),m=Math.pow(d.distanceToSquared(l),h);f<1e-4&&(f=1),p<1e-4&&(p=f),m<1e-4&&(m=f),$g.initNonuniformCatmullRom(c.x,u.x,d.x,l.x,p,f,m),ey.initNonuniformCatmullRom(c.y,u.y,d.y,l.y,p,f,m),ty.initNonuniformCatmullRom(c.z,u.z,d.z,l.z,p,f,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 au(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 lu(n,e,t,A,r){return CB(n,e)+PB(n,t)+DB(n,A)+IB(n,r)}var XA=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(lu(e,r.x,i.x,s.x,o.x),lu(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(lu(e,r.x,i.x,s.x,o.x),lu(e,r.y,i.y,s.y,o.y),lu(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}},QA=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}},pu=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}},Bn=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(au(e,r.x,i.x,s.x),au(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(au(e,r.x,i.x,s.x),au(e,r.y,i.y,s.y),au(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}},Da=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:XA,CubicBezierCurve3:My,EllipseCurve:uo,LineCurve:QA,LineCurve3:pu,QuadraticBezierCurve:Bn,QuadraticBezierCurve3:Ey,SplineCurve:Da}),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 QA(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}},ho=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 QA(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 Bn(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 XA(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 Da(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 uo(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}},Ia=class extends Pe{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,p=new S,f=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,f.copy(h),h.normalize(),a.push(h.x,h.y,h.z);break;case e.length-1:a.push(f.x,f.y,f.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,p.copy(h),h.x+=f.x,h.y+=f.y,h.z+=f.z,h.normalize(),a.push(h.x,h.y,h.z),f.copy(p)}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 Ia(e.points,e.segments,e.phiStart,e.phiLength)}};var fo=class extends Pe{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=[],p=0,f=[],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(p++)}f.push(E)}for(let v=0;v<r;v++)for(let E=0;E<i;E++){let C=f[E][v],P=f[E+1][v],D=f[E+1][v+1],L=f[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=p,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),p++;let P=p;for(let D=0;D<=r;D++){let I=D/r*a+o,B=Math.cos(I),N=Math.sin(I);M.x=E*N,M.y=m*C,M.z=E*B,u.push(M.x,M.y,M.z),d.push(0,C,0),T.x=B*.5+.5,T.y=N*.5*C+.5,h.push(T.x,T.y),p++}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 fo(e.radiusTop,e.radiusBottom,e.height,e.radialSegments,e.heightSegments,e.openEnded,e.thetaStart,e.thetaLength)}},Oa=class extends fo{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 Oa(e.radius,e.height,e.radialSegments,e.heightSegments,e.openEnded,e.thetaStart,e.thetaLength)}},La=class extends Pe{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)}p(),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 p(){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);f(T,C+0,y,P),f(M,C+2,x,P),f(v,C+4,b,P)}}function f(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 La(e.vertices,e.indices,e.radius,e.details)}},_a=class extends La{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 _a(e.radius,e.detail)}};var Di=class extends ho{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 ho().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 p=t;p<r;p+=t)u=n[p],d=n[p+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 mu(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&&uf(s,s.next)&&(yu(s),s=s.next),s}function ds(n,e){if(!n)return n;e||(e=n);let t=n,A;do if(A=!1,!t.steiner&&(uf(t,t.next)||Wt(t.prev,t,t.next)===0)){if(yu(t),t=e=t.prev,t===t.next)break;A=!0}else t=t.next;while(A||t!==e);return e}function mu(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),yu(n),n=c.next,o=c.next;continue}if(n=c,n===o){s?s===1?(n=BB(ds(n),e,t),mu(n,e,t,A,r,i,2)):s===2&&NB(n,e,t,A,r,i):mu(ds(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(ba(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,p=n.nextZ;for(;h&&h.z>=u&&p&&p.z<=d;){if(h!==n.prev&&h!==n.next&&ba(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,p!==n.prev&&p!==n.next&&ba(r.x,r.y,i.x,i.y,s.x,s.y,p.x,p.y)&&Wt(p.prev,p,p.next)>=0))return!1;p=p.nextZ}for(;h&&h.z>=u;){if(h!==n.prev&&h!==n.next&&ba(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(;p&&p.z<=d;){if(p!==n.prev&&p!==n.next&&ba(r.x,r.y,i.x,i.y,s.x,s.y,p.x,p.y)&&Wt(p.prev,p,p.next)>=0)return!1;p=p.nextZ}return!0}function BB(n,e,t){let A=n;do{let r=A.prev,i=A.next.next;!uf(r,i)&&sS(r,A,A.next,i)&&gu(r,i)&&gu(i,r)&&(e.push(r.i/t),e.push(A.i/t),e.push(i.i/t),yu(A),yu(A.next),A=n=i),A=A.next}while(A!==n);return ds(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=ds(s,s.next),a=ds(a,a.next),mu(s,e,t,A,r,i),mu(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=ds(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);ds(e,e.next),ds(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&&ba(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),gu(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 ba(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)&&(gu(n,e)&&gu(e,n)&&qB(n,e)&&(Wt(n.prev,n,e.prev)||Wt(n,e.prev,e))||uf(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 uf(n,e){return n.x===e.x&&n.y===e.y}function sS(n,e,t,A){let r=_h(Wt(n,e,t)),i=_h(Wt(n,e,A)),s=_h(Wt(t,A,n)),o=_h(Wt(t,A,e));return!!(r!==i&&s!==o||r===0&&Lh(n,t,e)||i===0&&Lh(n,A,e)||s===0&&Lh(t,n,A)||o===0&&Lh(t,e,A))}function Lh(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 _h(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 gu(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 yu(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 Ra=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 Ra.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 Ba=class extends La{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 Ba(e.radius,e.detail)}};var po=class extends Pe{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=[],p=[],f=[],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),p.push(u.x,u.y,u.z),d.copy(u).normalize(),f.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(p,3)),this.setAttribute("normal",new Se(f,3)),this.setAttribute("uv",new Se(m,2))}static fromJSON(e){return new po(e.radius,e.widthSegments,e.heightSegments,e.phiStart,e.phiLength,e.thetaStart,e.thetaLength)}};var Na=class extends Pe{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,p=new S,f=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,p),m.subVectors(p,h),g.addVectors(p,h),f.crossVectors(m,g),g.crossVectors(f,m),f.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*f.x),u.y=h.y+(M*g.y+v*f.y),u.z=h.z+(M*g.z+v*f.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 Na(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 p=c.times[h]*r;if(!(p<t||p>=A)){u.push(c.times[h]);for(let f=0;f<l;++f)d.push(c.values[h*l+f])}}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 p=o.times.length-1,f;if(i<=o.times[0]){let g=l,y=u-l;f=mA.arraySlice(o.values,g,y)}else if(i>=o.times[p]){let g=p*u+l,y=g+u-l;f=mA.arraySlice(o.values,g,y)}else{let g=o.createInterpolant(),y=l,x=u-l;g.evaluate(i),f=mA.arraySlice(g.resultBuffer,y,x)}a==="quaternion"&&new At().fromArray(f).normalize().conjugate().toArray(f);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,f,0,c.values,y);else{let x=h-d*2;for(let b=0;b<x;++b)c.values[y+b]-=f[b]}}}return n.blendMode=SI,n}},Fa=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 Fa{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,p=(A-t)/(r-t),f=p*p,m=f*p,g=-d*m+2*d*f-d*p,y=(1+d)*m+(-1.5-2*d)*f+(-.5+d)*p+1,x=(-1-h)*m+(1.5+h)*f+.5*p,b=h*m-h*f;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 Fa{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 Fa{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 Gh:t=this.InterpolantFactoryMethodDiscrete;break;case Uh: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 Gh;case this.InterpolantFactoryMethodLinear:return Uh;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 p=0;p!==A;++p){let f=t[u+p];if(f!==t[d+p]||f!==t[h+p]){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=Uh;var mo=class extends pr{};mo.prototype.ValueTypeName="bool";mo.prototype.ValueBufferType=Array;mo.prototype.DefaultInterpolation=Gh;mo.prototype.InterpolantFactoryMethodLinear=void 0;mo.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 Fa{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}},vu=class extends pr{InterpolantFactoryMethodLinear(e){return new By(this.times,this.values,this.getValueSize(),e)}};vu.prototype.ValueTypeName="quaternion";vu.prototype.DefaultInterpolation=Uh;vu.prototype.InterpolantFactoryMethodSmooth=void 0;var go=class extends pr{};go.prototype.ValueTypeName="string";go.prototype.ValueBufferType=Array;go.prototype.DefaultInterpolation=Gh;go.prototype.InterpolantFactoryMethodLinear=void 0;go.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={}}},xu=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],p=c[u+1];if(h.global&&(h.lastIndex=0),h.test(l))return p}return null}}},QB=new xu,Ga=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}},Si={},Ua=class extends Ga{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(Si[e]!==void 0){Si[e].push({onLoad:t,onProgress:A,onError:r});return}Si[e]=[],Si[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=Si[e],u=c.body.getReader(),d=c.headers.get("Content-Length"),h=d?parseInt(d):0,p=h!==0,f=0,m=new ReadableStream({start(g){y();function y(){u.read().then(({done:x,value:b})=>{if(x)g.close();else{f+=b.byteLength;let w=new ProgressEvent("progress",{lengthComputable:p,loaded:f,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(p=>h.decode(p))}}}).then(c=>{Rw.add(e,c);let l=Si[e];delete Si[e];for(let u=0,d=l.length;u<d;u++){let h=l[u];h.onLoad&&h.onLoad(c)}}).catch(c=>{let l=Si[e];if(l===void 0)throw this.manager.itemError(e),c;delete Si[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 hs=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}},Zh=class extends hs{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,bu=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 hu,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 bu{constructor(){super(new nA(50,1,.5,500)),this.isSpotLightShadow=!0,this.focus=1}updateMatrices(e){let t=this.camera,A=uu*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}},Jh=class extends hs{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,Au=new S,Ay=new S,Gy=class extends bu{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()),Au.setFromMatrixPosition(e.matrixWorld),A.position.copy(Au),Ay.copy(A.position),Ay.add(this._cubeDirections[t]),A.up.copy(this._cubeUps[t]),A.lookAt(Ay),A.updateMatrixWorld(),r.makeTranslation(-Au.x,-Au.y,-Au.z),Gw.multiplyMatrices(A.projectionMatrix,A.matrixWorldInverse),this._frustum.setFromProjectionMatrix(Gw)}},$h=class extends hs{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 bu{constructor(){super(new Ca(-5,5,5,-5,.5,500)),this.isDirectionalLightShadow=!0}},ef=class extends hs{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 Pe{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}},ka=class extends Ga{constructor(e){super(e)}load(e,t,A,r){let i=this,s=new Ua(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,p){if(t[p]!==void 0)return t[p];let m=h.interleavedBuffers[p],g=i(h,m.buffer),y=lh(m.type,g),x=new Xh(y,m.stride);return x.uuid=m.uuid,t[p]=x,x}function i(h,p){if(A[p]!==void 0)return A[p];let m=h.arrayBuffers[p],g=new Uint32Array(m).buffer;return A[p]=g,g}let s=e.isInstancedBufferGeometry?new ky:new Pe,o=e.data.index;if(o!==void 0){let h=lh(o.type,o.array);s.setIndex(new Ne(h,1))}let a=e.data.attributes;for(let h in a){let p=a[h],f;if(p.isInterleavedBufferAttribute){let m=r(e.data,p.data);f=new lo(m,p.itemSize,p.offset,p.normalized)}else{let m=lh(p.type,p.array),g=p.isInstancedBufferAttribute?Qh:Ne;f=new g(m,p.itemSize,p.normalized)}p.name!==void 0&&(f.name=p.name),p.usage!==void 0&&f.setUsage(p.usage),p.updateRange!==void 0&&(f.updateRange.offset=p.updateRange.offset,f.updateRange.count=p.updateRange.count),s.setAttribute(h,f)}let c=e.data.morphAttributes;if(c)for(let h in c){let p=c[h],f=[];for(let m=0,g=p.length;m<g;m++){let y=p[m],x;if(y.isInterleavedBufferAttribute){let b=r(e.data,y.data);x=new lo(b,y.itemSize,y.offset,y.normalized)}else{let b=lh(y.type,y.array);x=new Ne(b,y.itemSize,y.normalized)}y.name!==void 0&&(x.name=y.name),f.push(x)}s.morphAttributes[h]=f}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,p=u.length;h!==p;++h){let f=u[h];s.addGroup(f.start,f.count,f.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 tf=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||Mt.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()}},Mt=class{constructor(e,t,A){this.path=t,this.parsedPath=A||Mt.parseTrackName(t),this.node=Mt.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 Mt.Composite(e,t,A):new Mt(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=Mt.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}};Mt.Composite=Vy;Mt.prototype.BindingType={Direct:0,EntireArray:1,ArrayElement:2,HasFromToArray:3};Mt.prototype.Versioning={None:0,NeedsUpdate:1,MatrixWorldNeedsUpdate:2};Mt.prototype.GetterByBindingType=[Mt.prototype._getValue_direct,Mt.prototype._getValue_array,Mt.prototype._getValue_arrayElement,Mt.prototype._getValue_toArray];Mt.prototype.SetterByBindingTypeAndVersioning=[[Mt.prototype._setValue_direct,Mt.prototype._setValue_direct_setNeedsUpdate,Mt.prototype._setValue_direct_setMatrixWorldNeedsUpdate],[Mt.prototype._setValue_array,Mt.prototype._setValue_array_setNeedsUpdate,Mt.prototype._setValue_array_setMatrixWorldNeedsUpdate],[Mt.prototype._setValue_arrayElement,Mt.prototype._setValue_arrayElement_setNeedsUpdate,Mt.prototype._setValue_arrayElement_setMatrixWorldNeedsUpdate],[Mt.prototype._setValue_fromArray,Mt.prototype._setValue_fromArray_setNeedsUpdate,Mt.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 Va=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 du,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 wu=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,Af=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,Rh=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),Rh.subVectors(this.end,this.start);let A=Rh.dot(Rh),i=Rh.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,nf=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 Pe,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 us(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 rf=class extends CA{constructor(e,t,A){let r=new po(t,4,2),i=new Ci({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,Bh=new S,jw=new S,sf=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 Pe;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 co(r,i),this.add(this.lightPlane),r=new Pe,r.setAttribute("position",new Se([0,0,0,0,0,1],3)),this.targetLine=new co(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),Bh.setFromMatrixPosition(this.light.target.matrixWorld),jw.subVectors(Bh,Ww),this.lightPlane.lookAt(Bh),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(Bh),this.targetLine.scale.z=jw.length()}},Nh=new S,Xt=new fr,fs=class extends us{constructor(e){let t=new Pe,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(p,f){a(p),a(f)}function a(p){r.push(0,0,0),i.push(0,0,0),s[p]===void 0&&(s[p]=[]),s[p].push(r.length/3-1)}t.setAttribute("position",new Se(r,3)),t.setAttribute("color",new Se(i,3)),super(t,A),this.type="CameraHelper",this.camera=e,this.camera.updateProjectionMatrix&&this.camera.updateProjectionMatrix(),this.matrix=e.matrixWorld,this.matrixAutoUpdate=!1,this.pointMap=s,this.update();let c=new 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){Nh.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],Nh.x,Nh.y,Nh.z)}}var ps=class extends us{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 Pe;i.setIndex(new Ne(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 of=class extends us{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 Pe;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 af=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:yo}}));typeof window<"u"&&(window.__THREE__?console.warn("WARNING: Multiple instances of Three.js being imported."):window.__THREE__=yo);var ja=".",Su=Symbol("target"),Zy=Symbol("unsubscribe");function Tu(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 Fn=Array.isArray;function vo(n){return typeof n=="symbol"}var i3={after:(n,e)=>Fn(n)?n.slice(e.length):e===""?n:n.slice(e.length+1),concat:(n,e)=>Fn(n)?(n=[...n],e&&n.push(e),n):e&&e.toString!==void 0?(n!==""&&(n+=ja),vo(e)?n+e.toString():n+e):n,initial:n=>{if(Fn(n))return n.slice(0,-1);if(n==="")return n;let e=n.lastIndexOf(ja);return e===-1?"":n.slice(0,e)},last:n=>{if(Fn(n))return n[n.length-1]||"";if(n==="")return n;let e=n.lastIndexOf(ja);return e===-1?n:n.slice(e+1)},walk:(n,e)=>{if(Fn(n))for(let t of n)e(t);else if(n!==""){let t=0,A=n.indexOf(ja);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(ja,t)}},get(n,e){return this.walk(e,t=>{n&&(n=n[t])}),n}},on=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[Su].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 df(n,e,t){return n.isUnsubscribed||e.ignoreSymbols&&vo(t)||e.ignoreUnderscores&&t.charAt(0)==="_"||"ignoreKeys"in e&&e.ignoreKeys.includes(t)}var Mu=class{constructor(e){this._equals=e,this._proxyCache=new WeakMap,this._pathCache=new WeakMap,this.isUnsubscribed=!1}_getDescriptorCache(){return this._descriptorCache===void 0&&(this._descriptorCache=new WeakMap),this._descriptorCache}_getProperties(e){let t=this._getDescriptorCache(),A=t.get(e);return A===void 0&&(A={},t.set(e,A)),A}_getOwnPropertyDescriptor(e,t){if(this.isUnsubscribed)return Reflect.getOwnPropertyDescriptor(e,t);let A=this._getProperties(e),r=A[t];return r===void 0&&(r=Reflect.getOwnPropertyDescriptor(e,t),A[t]=r),r}getProxy(e,t,A,r){if(this.isUnsubscribed)return e;let i=e[r],s=i||e;this._pathCache.set(s,t);let o=this._proxyCache.get(s);return o===void 0&&(o=i===void 0?new Proxy(e,A):e,this._proxyCache.set(s,o)),o}getPath(e){return this.isUnsubscribed?void 0:this._pathCache.get(e)}isDetached(e,t){return!Object.is(e,on.get(t,this.getPath(e)))}defineProperty(e,t,A){return Reflect.defineProperty(e,t,A)?(this.isUnsubscribed||(this._getProperties(e)[t]=A),!0):!1}setProperty(e,t,A,r,i){if(!this._equals(i,A)||!(t in e)){let s=this._getOwnPropertyDescriptor(e,t);return s!==void 0&&"set"in s?Reflect.set(e,t,A,r):Reflect.set(e,t,A)}return!0}deleteProperty(e,t,A){if(Reflect.deleteProperty(e,t)){if(!this.isUnsubscribed){let r=this._getDescriptorCache().get(e);r&&(delete r[t],this._pathCache.delete(A))}return!0}return!1}isSameDescriptor(e,t,A){let r=this._getOwnPropertyDescriptor(t,A);return e!==void 0&&r!==void 0&&Object.is(e.value,r.value)&&(e.writable||!1)===(r.writable||!1)&&(e.enumerable||!1)===(r.enumerable||!1)&&(e.configurable||!1)===(r.configurable||!1)&&e.get===r.get&&e.set===r.set}isGetInvariant(e,t){let A=this._getOwnPropertyDescriptor(e,t);return A!==void 0&&A.configurable!==!0&&A.writable!==!0}unsubscribe(){this._descriptorCache=null,this._pathCache=null,this._proxyCache=null,this.isUnsubscribed=!0}};function Ya(n){return toString.call(n)==="[object Object]"}function qa(){return!0}function ms(n,e){return n.length!==e.length||n.some((t,A)=>e[A]!==t)}var hf=new Set(["hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]);var s3=new Set(["concat","includes","indexOf","join","keys","lastIndexOf"]),ev={push:qa,pop:qa,shift:qa,unshift:qa,copyWithin:ms,reverse:ms,sort:ms,splice:ms,flat:ms,fill:ms},lS=new Set([...hf,...s3,...Object.keys(ev)]);function Xa(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:Xa,clear:Xa,delete:Xa,forEach:Xa},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 OA=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 hf.has(e)}_shallowClone(e){let t=e;if(Ya(e))t={...e};else if(Fn(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?(Fn(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=on.after(e,this._path);if(t!=="length"){let i=this.clone;on.walk(r,s=>{i&&i[s]&&(this._clonedCache.has(i[s])||(i[s]=this._shallowClone(i[s])),i=i[s])}),this._hasOnValidate&&this._changes.push({path:r,property:t,previous:A}),i&&i[t]&&(i[t]=A)}this._isChanged=!0}undo(e){let t;for(let A=this._changes.length-1;A!==-1;A--)t=this._changes[A],on.get(e,t.path)[t.property]=t.previous}isChanged(e){return this._onIsChanged===void 0?this._isChanged:this._onIsChanged(this.clone,e)}};var Ka=class extends OA{static isHandledMethod(e){return lS.has(e)}};var Eu=class extends OA{undo(e){e.setTime(this.clone.getTime())}isChanged(e,t){return!t(this.clone.valueOf(),e.valueOf())}};var Za=class extends OA{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 Ja=class extends OA{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 Cu=class extends OA{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 Pu=class extends OA{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 Ya(e)||Fn(e)||Tu(e)}static isHandledMethod(e,t){return Ya(e)?OA.isHandledMethod(t):Fn(e)?Ka.isHandledMethod(t):e instanceof Set?Za.isHandledMethod(t):e instanceof Map?Ja.isHandledMethod(t):Tu(e)}get isCloning(){return this._stack.length>0}start(e,t,A){let r=OA;Fn(e)?r=Ka:e instanceof Date?r=Eu:e instanceof Set?r=Za:e instanceof Map?r=Ja:e instanceof WeakSet?r=Cu:e instanceof WeakMap&&(r=Pu),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 Mu(r),c=typeof t.onValidate=="function",l=new gr(c),u=(y,x,b,w,T)=>!c||l.isCloning||t.onValidate(on.concat(a.getPath(y),x),b,w,T)===!0,d=(y,x,b,w)=>{!df(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(on.concat(y,x),b,w,T)},p=y=>y&&(y[A]||y),f=(y,x,b,w)=>aS(y)||b==="constructor"||i&&!gr.isHandledMethod(x,b)||df(a,t,b)||a.isGetInvariant(x,b)||s&&a.isDetached(x,n)?y:(w===void 0&&(w=a.getPath(x)),a.getProxy(y,on.concat(w,b),m,A)),m={get(y,x,b){if(vo(x)){if(x===A||x===Su)return y;if(x===Zy&&!a.isUnsubscribed&&a.getPath(y).length===0)return a.unsubscribe(),y}let w=Tu(y)?Reflect.get(y,x):Reflect.get(y,x,b);return f(w,y,x)},set(y,x,b,w){b=p(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=on.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=>p(P)):b),E=l.isChanged(w,r),C=l.stop();if(gr.isHandledType(v)&&M&&(x instanceof Map&&y.name==="get"&&(T=on.concat(T,b[0])),v=a.getProxy(v,T,m)),E){let P={name:y.name,args:b,result:v},D=l.isCloning?on.initial(T):T,L=l.isCloning?on.last(T):"";u(on.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,f):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[Su]||n;iv.unsubscribe=n=>n[Zy]||n;var sv=iv;var l3=typeof global=="object"&&global&&global.Object===Object&&global,ff=l3;var c3=typeof self=="object"&&self&&self.Object===Object&&self,u3=ff||c3||Function("return this")(),Kt=u3;var d3=Kt.Symbol,LA=d3;var dS=Object.prototype,h3=dS.hasOwnProperty,f3=dS.toString,Du=LA?LA.toStringTag:void 0;function p3(n){var e=h3.call(n,Du),t=n[Du];try{n[Du]=void 0;var A=!0}catch{}var r=f3.call(n);return A&&(e?n[Du]=t:delete n[Du]),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=LA?LA.toStringTag:void 0;function b3(n){return n==null?n===void 0?x3:v3:pS&&pS in Object(n)?hS(n):fS(n)}var Gn=b3;function w3(n){return n!=null&&typeof n=="object"}var HA=w3;var S3="[object Symbol]";function T3(n){return typeof n=="symbol"||HA(n)&&Gn(n)==S3}var gs=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 pf=M3;var E3=Array.isArray,xA=E3;var C3=1/0,mS=LA?LA.prototype:void 0,gS=mS?mS.toString:void 0;function yS(n){if(typeof n=="string")return n;if(xA(n))return pf(n,yS)+"";if(gs(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 _A=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(gs(n))return wS;if(_A(n)){var e=typeof n.valueOf=="function"?n.valueOf():n;n=_A(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(!_A(n))return!1;var e=Gn(n);return e==k3||e==V3||e==U3||e==z3}var mf=H3;var W3=Kt["__core-js_shared__"],gf=W3;var TS=function(){var n=/[^.]+$/.exec(gf&&gf.keys&&gf.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 Ii=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(!_A(n)||MS(n))return!1;var e=mf(n)?tN:K3;return e.test(Ii(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 yn=rN;var iN=yn(Kt,"WeakMap"),yf=iN;var PS=Object.create,sN=function(){function n(){}return function(e){if(!_A(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=yn(Object,"defineProperty");return n({},"",{}),n}catch{}}(),$a=fN;var pN=$a?function(n,e){return $a(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 el=xN;function bN(n,e,t){e=="__proto__"&&$a?$a(n,e,{configurable:!0,enumerable:!0,value:t,writable:!0}):n[e]=t}var vf=bN;function wN(n,e){return n===e||n!==n&&e!==e}var tl=wN;var SN=Object.prototype,TN=SN.hasOwnProperty;function MN(n,e,t){var A=n[e];(!(TN.call(n,e)&&tl(A,t))||t===void 0&&!(e in n))&&vf(n,e,t)}var Al=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?vf(t,o,a):Al(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 nl=DN;function IN(n){return n!=null&&nl(n.length)&&!mf(n)}var xf=IN;var ON=Object.prototype;function LN(n){var e=n&&n.constructor,t=typeof e=="function"&&e.prototype||ON;return n===t}var rl=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 HA(n)&&Gn(n)==RN}var av=BN;var kS=Object.prototype,NN=kS.hasOwnProperty,FN=kS.propertyIsEnumerable,GN=av(function(){return arguments}())?av:function(n){return HA(n)&&NN.call(n,"callee")&&!FN.call(n,"callee")},il=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,xo=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 HA(n)&&nl(n.length)&&!!Gt[Gn(n)]}var jS=hF;function fF(n){return function(e){return n(e)}}var sl=fF;var YS=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Iu=YS&&typeof module=="object"&&module&&!module.nodeType&&module,pF=Iu&&Iu.exports===YS,lv=pF&&ff.process,mF=function(){try{var n=Iu&&Iu.require&&Iu.require("util").types;return n||lv&&lv.binding&&lv.binding("util")}catch{}}(),Oi=mF;var qS=Oi&&Oi.isTypedArray,gF=qS?sl(qS):jS,bf=gF;var yF=Object.prototype,vF=yF.hasOwnProperty;function xF(n,e){var t=xA(n),A=!t&&il(n),r=!t&&!A&&xo(n),i=!t&&!A&&!r&&bf(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")||el(c,a)))&&o.push(c);return o}var wf=xF;function bF(n,e){return function(t){return n(e(t))}}var Sf=bF;var wF=Sf(Object.keys,Object),XS=wF;var SF=Object.prototype,TF=SF.hasOwnProperty;function MF(n){if(!rl(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 xf(n)?wf(n):QS(n)}var ol=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(!_A(n))return KS(n);var e=rl(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 xf(n)?wf(n,!0):ZS(n)}var al=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||gs(n)?!0:_F.test(n)||!LF.test(n)||e!=null&&n in Object(e)}var JS=RF;var BF=yn(Object,"create"),Li=BF;function NF(){this.__data__=Li?Li(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(Li){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 Li?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]=Li&&e===void 0?jF:e,this}var n1=YF;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=$S;ll.prototype.delete=e1;ll.prototype.get=t1;ll.prototype.has=A1;ll.prototype.set=n1;var cv=ll;function qF(){this.__data__=[],this.size=0}var r1=qF;function XF(n,e){for(var t=n.length;t--;)if(tl(n[t][0],e))return t;return-1}var ys=XF;var QF=Array.prototype,KF=QF.splice;function ZF(n){var e=this.__data__,t=ys(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=ys(e,n);return t<0?void 0:e[t][1]}var s1=JF;function $F(n){return ys(this.__data__,n)>-1}var o1=$F;function eG(n,e){var t=this.__data__,A=ys(t,n);return A<0?(++this.size,t.push([n,e])):t[A][1]=e,this}var a1=eG;function cl(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])}}cl.prototype.clear=r1;cl.prototype.delete=i1;cl.prototype.get=s1;cl.prototype.has=o1;cl.prototype.set=a1;var vs=cl;var tG=yn(Kt,"Map"),xs=tG;function AG(){this.size=0,this.__data__={hash:new cv,map:new(xs||vs),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 bs=rG;function iG(n){var e=bs(this,n).delete(n);return this.size-=e?1:0,e}var u1=iG;function sG(n){return bs(this,n).get(n)}var d1=sG;function oG(n){return bs(this,n).has(n)}var h1=oG;function aG(n,e){var t=bs(this,n),A=t.size;return t.set(n,e),this.size+=t.size==A?0:1,this}var f1=aG;function ul(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])}}ul.prototype.clear=l1;ul.prototype.delete=u1;ul.prototype.get=d1;ul.prototype.has=h1;ul.prototype.set=f1;var bo=ul;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||bo),t}uv.Cache=bo;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"||gs(n))return n;var e=n+"";return e=="0"&&1/n==-gG?"-0":e}var ws=yG;function vG(n,e){e=Kn(e,n);for(var t=0,A=e.length;n!=null&&t<A;)n=n[ws(e[t++])];return t&&t==A?n:void 0}var Tf=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 dl=xG;var v1=LA?LA.isConcatSpreadable:void 0;function bG(n){return xA(n)||il(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):dl(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 Mf=SG;var TG=Sf(Object.getPrototypeOf,Object),hl=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(!HA(n)||Gn(n)!=MG)return!1;var e=hl(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 vs,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 vs){var A=t.__data__;if(!xs||A.length<NG-1)return A.push([n,e]),this.size=++t.size,this;t=this.__data__=new bo(A)}return t.set(n,e),this.size=t.size,this}var O1=FG;function fl(n){var e=this.__data__=new vs(n);this.size=e.size}fl.prototype.clear=C1;fl.prototype.delete=P1;fl.prototype.get=D1;fl.prototype.has=I1;fl.prototype.set=O1;var pl=fl;function GG(n,e){return n&&kr(e,ol(e),n)}var L1=GG;function UG(n,e){return n&&kr(e,al(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 Ef=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)}))}:Ef,ml=YG;function qG(n,e){return kr(n,ml(n),e)}var V1=qG;var XG=Object.getOwnPropertySymbols,QG=XG?function(n){for(var e=[];n;)dl(e,ml(n)),n=hl(n);return e}:Ef,Cf=QG;function KG(n,e){return kr(n,Cf(n),e)}var z1=KG;function ZG(n,e,t){var A=e(n);return xA(n)?A:dl(A,t(n))}var Pf=ZG;function JG(n){return Pf(n,ol,ml)}var Ou=JG;function $G(n){return Pf(n,al,Cf)}var Df=$G;var eU=yn(Kt,"DataView"),If=eU;var tU=yn(Kt,"Promise"),Of=tU;var AU=yn(Kt,"Set"),Lf=AU;var H1="[object Map]",nU="[object Object]",W1="[object Promise]",j1="[object Set]",Y1="[object WeakMap]",q1="[object DataView]",rU=Ii(If),iU=Ii(xs),sU=Ii(Of),oU=Ii(Lf),aU=Ii(yf),wo=Gn;(If&&wo(new If(new ArrayBuffer(1)))!=q1||xs&&wo(new xs)!=H1||Of&&wo(Of.resolve())!=W1||Lf&&wo(new Lf)!=j1||yf&&wo(new yf)!=Y1)&&(wo=function(n){var e=Gn(n),t=e==nU?n.constructor:void 0,A=t?Ii(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 _i=wo;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,gl=dU;function hU(n){var e=new n.constructor(n.byteLength);return new gl(e).set(new gl(n)),e}var yl=hU;function fU(n,e){var t=e?yl(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=LA?LA.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?yl(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 yl(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"&&!rl(n)?DS(hl(n)):{}}var AT=UU;var kU="[object Map]";function VU(n){return HA(n)&&_i(n)==kU}var nT=VU;var rT=Oi&&Oi.isMap,zU=rT?sl(rT):nT,iT=zU;var HU="[object Set]";function WU(n){return HA(n)&&_i(n)==HU}var sT=WU;var oT=Oi&&Oi.isSet,jU=oT?sl(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]",Rt={};Rt[lT]=Rt[QU]=Rt[ok]=Rt[ak]=Rt[KU]=Rt[ZU]=Rt[lk]=Rt[ck]=Rt[uk]=Rt[dk]=Rt[hk]=Rt[ek]=Rt[tk]=Rt[uT]=Rt[Ak]=Rt[nk]=Rt[rk]=Rt[ik]=Rt[fk]=Rt[pk]=Rt[mk]=Rt[gk]=!0;Rt[JU]=Rt[cT]=Rt[sk]=!1;function _f(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(!_A(n))return n;var l=xA(n);if(l){if(s=X1(n),!o)return OS(n,s)}else{var u=_i(n),d=u==cT||u==$U;if(xo(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(!Rt[u])return r?n:{};s=tT(n,u,o)}}i||(i=new pl);var h=i.get(n);if(h)return h;i.set(n,s),aT(n)?n.forEach(function(m){s.add(_f(m,e,t,m,n,i))}):iT(n)&&n.forEach(function(m,g){s.set(g,_f(m,e,t,g,n,i))});var p=c?a?Df:Ou:a?al:ol,f=l?void 0:p(n);return NS(f||n,function(m,g){f&&(g=m,m=n[g]),Al(s,g,_f(m,e,t,g,n,i))}),s}var Rf=_f;var yk=1,vk=4;function xk(n){return Rf(n,yk|vk)}var So=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 Bf(n){var e=-1,t=n==null?0:n.length;for(this.__data__=new bo;++e<t;)this.add(n[e])}Bf.prototype.add=Bf.prototype.push=dT;Bf.prototype.has=hT;var fT=Bf;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 p=n[u],f=e[u];if(A)var m=s?A(f,p,u,e,n,i):A(p,f,u,n,e,i);if(m!==void 0){if(m)continue;d=!1;break}if(h){if(!pT(e,function(g,y){if(!mT(h,y)&&(p===g||r(p,g,t,A,i)))return h.push(y)})){d=!1;break}}else if(!(p===f||r(p,f,t,A,i))){d=!1;break}}return i.delete(n),i.delete(e),d}var Nf=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=LA?LA.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 gl(n),new gl(e)));case _k:case Rk:case Fk:return tl(+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=Nf(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=Ou(n),a=o.length,c=Ou(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),p=i.get(e);if(h&&p)return h==e&&p==n;var f=!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)){f=!1;break}m||(m=d=="constructor")}if(f&&!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)&&(f=!1)}return i.delete(n),i.delete(e),f}var bT=Xk;var Qk=1,wT="[object Arguments]",ST="[object Array]",Ff="[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:_i(n),c=o?ST:_i(e);a=a==wT?Ff:a,c=c==wT?Ff:c;var l=a==Ff,u=c==Ff,d=a==c;if(d&&xo(n)){if(!xo(e))return!1;s=!0,l=!1}if(d&&!l)return i||(i=new pl),s||bf(n)?Nf(n,e,t,A,r,i):xT(n,e,a,t,A,r,i);if(!(t&Qk)){var h=l&&TT.call(n,"__wrapped__"),p=u&&TT.call(e,"__wrapped__");if(h||p){var f=h?n.value():n,m=p?e.value():e;return i||(i=new pl),r(f,m,t,A,i)}}return d?(i||(i=new pl),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||!HA(n)&&!HA(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=ws(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&&nl(r)&&el(s,r)&&(xA(n)||il(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()},Gf=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,_A(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 p(T){return c=T,o=setTimeout(g,e),l?h(T):s}function f(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=Gf();if(m(T))return y(T);o=setTimeout(g,f(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(Gf())}function w(){var T=Gf(),M=m(T);if(A=arguments,r=this,a=T,M){if(o===void 0)return p(a);if(u)return clearTimeout(o),o=setTimeout(g,e),h(a)}return o===void 0&&(o=setTimeout(g,e)),s}return w.cancel=x,w.flush=b,w}var Lu=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:Tf(n,E1(e,0,-1))}var LT=oV;function aV(n,e){return CT(n,e)}var To=aV;function lV(n,e){return e=Kn(e,n),n=LT(n,e),n==null||delete n[ws(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=Mf(function(n,e){var t={};if(n==null)return t;var A=!1;e=pf(e,function(i){return i=Kn(i,n),A||(A=i.length>1),i}),kr(n,Df(n),t),A&&(t=Rf(t,uV|dV|hV,RT));for(var r=e.length;r--;)_T(t,e[r]);return t}),vl=fV;function pV(n,e,t,A){if(!_A(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=ws(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=_A(l)?l:el(e[r+1])?[]:{})}Al(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=Tf(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=Mf(function(n,e){return n==null?{}:FT(n,e)}),xl=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 Lt=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,Lt.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,Lt.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,Lt.prototype),delete i[A],{data:i,actual:e,reverse:{type:1,id:A,data:r}}}}return null}};function _u(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"&&_u(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 bl=class extends Error{};function Uf(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 wl(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;)_u(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 bl("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,p)=>h.fi-p.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 Sl;(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})(Sl||(Sl={}));var We=class extends Array{constructor(...t){super(...t);Object.setPrototypeOf(this,We.prototype)}deepFreeze(){let t=0;for(;t<this.length;)_u(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 Tl(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&&!Tl(A))return null;r+=1}A=A?Uf(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=Uf(a),delete A[e.path[r-1]])}else{let a=t[r-1];if(a){let c=Uf(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}}},Ri;(A=>{function n(r,i){return Ru(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=an.zoomOnce(a,o[s]),a===void 0)return i;if(!Tl(a))return;s+=1}if(a===void 0)return i;if(!!Tl(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})(Ri||(Ri={}));function hv(n,e){if(e===void 0)return;let t=!1,A=n.map(r=>{let i=r.id,s=Ru(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=Ru(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 Ru(n,e){if(!Tl(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=Ru(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=Ru(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(!Tl(e))return e;if(!Tl(n))return Ri.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=Bu(n,e,t)??n,[n,t.result]}function kf(n,e){return n===null?null:(n.cur[n.len]=e,n.len+=1,n)}function Vf(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=Bu(i.data,e,kf(t,s));Vf(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=Bu(i.data,e,kf(t,s));return Vf(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 Bu(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=Bu(i,e,kf(t,s));return Vf(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"&&!wl(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=Bu(s,e,kf(t,i));Vf(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 zf;(e=>{function n(t,A){let r=an.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})(zf||(zf={}));var WA;(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 Lt?d=a.runOp(c):d=Sl.runOp(a,c)),d!==void 0)if(d!==null){let f=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");f=y.modifyById(g,f)}else if(y instanceof We){if(typeof g=="number")throw new Error("illegal arg");f=y.modifyById(g,f)}else if(y instanceof Lt){if(typeof g=="number")throw new Error("illegal arg");f=y.modifyById(g,f)}else if(y instanceof Ht){let x={...y,[g]:f};f=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=f;f=[...y],f[g]=x}else f={...y,[g]:f};else return null}return{data:f,actual:{...d.actual,path:l},reverse:{...d.reverse,path:l}}}else return null;let h=l[u.length],p;if(a instanceof zt){if(typeof h=="number")throw new Error("");p=a.get(h)?.data}else if(a instanceof We){if(typeof h=="number")throw new Error("");p=a.get(h)?.data}else a!==null&&(p=a[h]);if(p!==void 0)u.push(a),a=p;else return null}}o.apply=t;function A(a,c){for(let l=0;l<a.length&&l<c.length;l++)if(a[l]!==c[l])return!0;return!1}o.pathDisjoint=A;function r(a,c){if(a.length!==c.length)return!1;for(let l=0;l<a.length;l++)if(a[l]!==c[l])return!1;return!0}o.pathEq=r;function i(a,c){return A(a.path,c.path)}o.commutative=i;function s(a,c){return a.type===0&&c.type===0&&r(a.path,c.path)?Object.keys(a.props).every(l=>c.props[l]!==void 0):!1}o.subsumed=s})(WA||(WA={}));var pv;(a=>{function n(){return[]}a.empty=n;function e(c,l){let u=[];for(let d of c){let[h,...p]=d.path;h===l&&u.push({...d,path:p})}return u}a.removePrefix=e;function t(c,l){return c.map(u=>({...u,path:[l,...u.path]}))}a.addPrefix=t;function A(c,l){return[...c,...l]}a.concat=A;function r(c,l){return[...c.filter(d=>!l.some(h=>WA.subsumed(d,h))),...l]}a.compress=r;function i(c,l){return c.every(u=>l.every(d=>WA.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 p of l)try{if(p.type===3){let f=an.zoom(u,[...p.path,p.id]),m=WA.apply(u,{...p,type:2});if(m!==null){u=m.data;let[g,y]=YT(u,{[p.id]:f});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]:f}}),h.push({type:0,path:x,props:{[b]:p.id}})}h.push(m.reverse),d.push(m.actual)}}else{let f=WA.apply(u,p);f!==null&&(d.push(f.actual),u=f.data,h.push(f.reverse))}}catch(f){if(f instanceof bl)return null;throw f}return{data:u,actual:d,reverse:h.reverse()}}a.apply=o})(pv||(pv={}));var XT=Symbol(),wV=Symbol(),Wf=Symbol(),Mo=class{reportOp(e,t,A=[]){let r=this;if(t===null)return;r._current=t.data;let i=A;for(;!(r instanceof Hf);){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[Wf];A&&A(),delete this._children[e]}}}},gv=class extends Mo{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,Sl.runOp(this._current,e),e.path)}},yv=class extends Mo{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,Lt.prototype)}runOp(e){this.reportOp(e,this._current.runOp(e))}},QT={get(n,e){if(e===Wf)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=jf(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]:RA(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}},Ml=class extends Mo{constructor(e,t,A){super(),this._children={},this._parent=e,this._path=t,this._current=A,this[Wf]=()=>{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=jf(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)}},El=class extends Mo{constructor(e,t,A){super(),this._children={},this._parent=e,this._path=t,this._current=A,this[Wf]=()=>{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=jf(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&&an.equal(A.path,t)){Object.assign(A.props,e.props);return}}n.push({...e,path:t})}var Hf=class extends Mo{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 jf(n,e,t){return t instanceof zt?new Ml(n,e,t):t instanceof We?new El(n,e,t):t instanceof Lt?new Proxy(new yv(n,e,t),TV):t!==null&&typeof t=="object"?wl(t)?t:new Proxy(new gv(n,e,t),SV):t}function vv(n){let e=new Hf(n);return[jf(e,"",n),e]}function Cl(n,e){let[t,A]=vv(n);return e(t),A.result()}function RA(n){return n instanceof Ml||n instanceof El?n._current:n!==null&&typeof n=="object"?n[XT]:n}var an;(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 Ml)&&typeof s=="string")return i.data(s);if((i instanceof We||i instanceof El)&&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})(an||(an={}));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 Yf=class{},Nu=class extends Yf{constructor(t){super();this.id=t}},Fu=class extends Yf{constructor(t){super();this.data=t}};var bv;try{bv=new TextDecoder}catch{}var Ie,Ts,K=0;var rM=[],wv=rM,Sv=0,vn={},xt,Ss,Zn=0,Hr=0,Un,Bi,ln=[],Et,ZT={useRecords:!1,mapsAsObjects:!0},Gu=class{},Mv=new Gu;Mv.name="MessagePack 0xC1";var Pl=!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(Ie)return lM(()=>(Xf(),this?this.unpack(e,t):Wr.prototype.unpack.call(ZT,e,t)));Ts=t>-1?t:e.length,K=0,Sv=0,Hr=0,Ss=null,wv=rM,Un=null,Ie=e;try{Et=e.dataView||(e.dataView=new DataView(e.buffer,e.byteOffset,e.byteLength))}catch(A){throw Ie=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(vn=this,this.structures)return xt=this.structures,qf();(!xt||xt.length>0)&&(xt=[])}else vn=ZT,(!xt||xt.length>0)&&(xt=[]);return qf()}unpackMultiple(e,t){let A,r=0;try{Pl=!0;let i=e.length,s=this?this.unpack(e,i):Zf.unpack(e,i);if(t){for(t(s);K<i;)if(r=K,t(qf())===!1)return}else{for(A=[s];K<i;)r=K,A.push(qf());return A}}catch(i){throw i.lastPosition=r,i.values=A,i}finally{Pl=!1,Xf()}}_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 qf(){try{if(!vn.trusted&&!Pl){let e=xt.sharedLength||0;e<xt.length&&(xt.length=e)}let n=Zt();if(K==Ts)xt.restoreStructures&&JT(),xt=null,Ie=null,Bi&&(Bi=null);else if(K>Ts){let e=new Error("Unexpected end of MessagePack data");throw e.incomplete=!0,e}else if(!Pl)throw new Error("Data read, but end of buffer not reached");return n}catch(n){throw xt.restoreStructures&&JT(),Xf(),(n instanceof RangeError||n.message.startsWith("Unexpected end of buffer"))&&(n.incomplete=!0),n}}function JT(){for(let n in xt.restoreStructures)xt[n]=xt.restoreStructures[n];xt.restoreStructures=null}function Zt(){let n=Ie[K++];if(n<160)if(n<128){if(n<64)return n;{let e=xt[n&63]||vn.getStructures&&iM()[n&63];return e?(e.read||(e.read=Ev(e,n&63)),e.read()):n}}else if(n<144)if(n-=128,vn.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 Ss.slice(K-Zn,(K+=e)-Zn);if(Hr==0&&Ts<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(Ie[K++]);case 197:return e=Et.getUint16(K),K+=2,xv(e);case 198:return e=Et.getUint32(K),K+=4,xv(e);case 199:return Eo(Ie[K++]);case 200:return e=Et.getUint16(K),K+=2,Eo(e);case 201:return e=Et.getUint32(K),K+=4,Eo(e);case 202:if(e=Et.getFloat32(K),vn.useFloat32>2){let t=Kf[(Ie[K]&127)<<1|Ie[K+1]>>7];return K+=4,(t*e+(e>0?.5:-.5)>>0)/t}return K+=4,e;case 203:return e=Et.getFloat64(K),K+=8,e;case 204:return Ie[K++];case 205:return e=Et.getUint16(K),K+=2,e;case 206:return e=Et.getUint32(K),K+=4,e;case 207:return vn.int64AsNumber?(e=Et.getUint32(K)*4294967296,e+=Et.getUint32(K+4)):e=Et.getBigUint64(K),K+=8,e;case 208:return Et.getInt8(K++);case 209:return e=Et.getInt16(K),K+=2,e;case 210:return e=Et.getInt32(K),K+=4,e;case 211:return vn.int64AsNumber?(e=Et.getInt32(K)*4294967296,e+=Et.getUint32(K+4)):e=Et.getBigInt64(K),K+=8,e;case 212:if(e=Ie[K++],e==114)return nM(Ie[K++]&63);{let t=ln[e];if(t)return t.read?(K++,t.read(Zt())):t.noBuffer?(K++,t()):t(Ie.subarray(K,++K));throw new Error("Unknown extension "+e)}case 213:return e=Ie[K],e==114?(K++,nM(Ie[K++]&63,Ie[K++])):Eo(2);case 214:return Eo(4);case 215:return Eo(8);case 216:return Eo(16);case 217:return e=Ie[K++],Hr>=K?Ss.slice(K-Zn,(K+=e)-Zn):EV(e);case 218:return e=Et.getUint16(K),K+=2,Hr>=K?Ss.slice(K-Zn,(K+=e)-Zn):CV(e);case 219:return e=Et.getUint32(K),K+=4,Hr>=K?Ss.slice(K-Zn,(K+=e)-Zn):PV(e);case 220:return e=Et.getUint16(K),K+=2,eM(e);case 221:return e=Et.getUint32(K),K+=4,eM(e);case 222:return e=Et.getUint16(K),K+=2,tM(e);case 223:return e=Et.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=Ie[K++];if(t===0)return e();let A=n<32?-(n+(t<<5)):n+(t<<5),r=xt[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(()=>(Ie=null,vn.getStructures()));return xt=vn._mergeStructures(n,xt)}var Tv=Qf,EV=Qf,CV=Qf,PV=Qf;function Qf(n){let e;if(n<16&&(e=Cv(n)))return e;if(n>64&&bv)return bv.decode(Ie.subarray(K,K+=n));let t=K+n,A=[];for(e="";K<t;){let r=Ie[K++];if((r&128)===0)A.push(r);else if((r&224)===192){let i=Ie[K++]&63;A.push((r&31)<<6|i)}else if((r&240)===224){let i=Ie[K++]&63,s=Ie[K++]&63;A.push((r&31)<<12|i<<6|s)}else if((r&248)===240){let i=Ie[K++]&63,s=Ie[K++]&63,o=Ie[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+=BA.apply(String,A),A.length=0)}return A.length>0&&(e+=BA.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(vn.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 BA=String.fromCharCode;function sM(n){let e=K,t=new Array(n);for(let A=0;A<n;A++){let r=Ie[K++];if((r&128)>0){K=e;return}t[A]=r}return BA.apply(String,t)}function Cv(n){if(n<4)if(n<2){if(n===0)return"";{let e=Ie[K++];if((e&128)>1){K-=1;return}return BA(e)}}else{let e=Ie[K++],t=Ie[K++];if((e&128)>0||(t&128)>0){K-=2;return}if(n<3)return BA(e,t);let A=Ie[K++];if((A&128)>0){K-=3;return}return BA(e,t,A)}else{let e=Ie[K++],t=Ie[K++],A=Ie[K++],r=Ie[K++];if((e&128)>0||(t&128)>0||(A&128)>0||(r&128)>0){K-=4;return}if(n<6){if(n===4)return BA(e,t,A,r);{let i=Ie[K++];if((i&128)>0){K-=5;return}return BA(e,t,A,r,i)}}else if(n<8){let i=Ie[K++],s=Ie[K++];if((i&128)>0||(s&128)>0){K-=6;return}if(n<7)return BA(e,t,A,r,i,s);let o=Ie[K++];if((o&128)>0){K-=7;return}return BA(e,t,A,r,i,s,o)}else{let i=Ie[K++],s=Ie[K++],o=Ie[K++],a=Ie[K++];if((i&128)>0||(s&128)>0||(o&128)>0||(a&128)>0){K-=8;return}if(n<10){if(n===8)return BA(e,t,A,r,i,s,o,a);{let c=Ie[K++];if((c&128)>0){K-=9;return}return BA(e,t,A,r,i,s,o,a,c)}}else if(n<12){let c=Ie[K++],l=Ie[K++];if((c&128)>0||(l&128)>0){K-=10;return}if(n<11)return BA(e,t,A,r,i,s,o,a,c,l);let u=Ie[K++];if((u&128)>0){K-=11;return}return BA(e,t,A,r,i,s,o,a,c,l,u)}else{let c=Ie[K++],l=Ie[K++],u=Ie[K++],d=Ie[K++];if((c&128)>0||(l&128)>0||(u&128)>0||(d&128)>0){K-=12;return}if(n<14){if(n===12)return BA(e,t,A,r,i,s,o,a,c,l,u,d);{let h=Ie[K++];if((h&128)>0){K-=13;return}return BA(e,t,A,r,i,s,o,a,c,l,u,d,h)}}else{let h=Ie[K++],p=Ie[K++];if((h&128)>0||(p&128)>0){K-=14;return}if(n<15)return BA(e,t,A,r,i,s,o,a,c,l,u,d,h,p);let f=Ie[K++];if((f&128)>0){K-=15;return}return BA(e,t,A,r,i,s,o,a,c,l,u,d,h,p,f)}}}}}function xv(n){return vn.copyBuffers?Uint8Array.prototype.slice.call(Ie,K,K+=n):Ie.subarray(K,K+=n)}function Eo(n){let e=Ie[K++];if(ln[e])return ln[e](Ie.subarray(K,K+=n));throw new Error("Unknown extension type "+e)}var AM=new Array(4096);function oM(){let n=Ie[K++];if(n>=160&&n<192){if(n=n-160,Hr>=K)return Ss.slice(K-Zn,(K+=n)-Zn);if(!(Hr==0&&Ts<180))return Tv(n)}else return K--,Zt();let e=(n<<5^(n>1?Et.getUint16(K):n>0?Ie[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=Et.getUint32(A),i!=t[s++]){A=1879048192;break}A+=4}for(r+=3;A<r;)if(i=Ie[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=Et.getUint32(A),t.push(i),A+=4;for(r+=3;A<r;)i=Ie[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=xt[n];return r&&r.isShared&&((xt.restoreStructures||(xt.restoreStructures=[]))[n]=r),xt[n]=t,t.read=Ev(t,A),t.read()},aM=typeof self=="object"?self:global;ln[0]=()=>{};ln[0].noBuffer=!0;ln[101]=()=>{let n=Zt();return(aM[n[0]]||Error)(n[1])};ln[105]=n=>{let e=Et.getUint32(K-4);Bi||(Bi=new Map);let t=Ie[K],A;t>=144&&t<160||t==220||t==221?A=[]:A={};let r={target:A};Bi.set(e,r);let i=Zt();return r.used?Object.assign(A,i):(r.target=i,i)};ln[112]=n=>{let e=Et.getUint32(K-4),t=Bi.get(e);return t.used=!0,t.target};ln[115]=()=>new Set(Zt());var Pv=["Int8","Uint8","Uint8Clamped","Int16","Uint16","Int32","Uint32","Float32","Float64","BigInt64","BigUint64"].map(n=>n+"Array");ln[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)};ln[120]=()=>{let n=Zt();return new RegExp(n[0],n[1])};ln[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}};ln[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=Ts,t=K,A=Sv,r=Zn,i=Hr,s=Ss,o=wv,a=Bi,c=Un,l=new Uint8Array(Ie.slice(0,Ts)),u=xt,d=xt.slice(0,xt.length),h=vn,p=Pl,f=n();return Ts=e,K=t,Sv=A,Zn=r,Hr=i,Ss=s,wv=o,Bi=a,Un=c,Ie=l,Pl=p,xt=u,xt.splice(0,xt.length,...d),vn=h,Et=new DataView(Ie.buffer,Ie.byteOffset,Ie.byteLength),f}function Xf(){Ie=null,Bi=null,xt=null}function cM(n){n.unpack?ln[n.type]=n.unpack:ln[n.type]=n}var Kf=new Array(147);for(let n=0;n<256;n++)Kf[n]=+("1e"+Math.floor(45.15-n*.30103));var Zf=new Wr({useRecords:!1}),DV=Zf.unpack,IV=Zf.unpackMultiple,OV=Zf.unpack,Jf={NEVER:0,ALWAYS:1,DECIMAL_ROUND:3,DECIMAL_FIT:4},LV=new Float32Array(1),OJ=new Uint8Array(LV.buffer,0,4);var $f;try{$f=new TextEncoder}catch{}var ep,Iv,tp=typeof Buffer<"u",Dv=tp?Buffer.allocUnsafeSlow:Uint8Array,fM=tp?Buffer:Uint8Array,uM=tp?4294967296:2144337920,ae,iA,ee=0,jr,Yr=null,_V=/[\u0080-\uFFFF]/,Uu=Symbol("record-id"),Co=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 ae.utf8Write(v,E,C)}:$f&&$f.encodeInto?function(v,E){return $f.encodeInto(v,ae.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 p=e.maxOwnStructures;p==null&&(p=d?32:64),u&&!e.saveStructures&&(this.structures=[]);let f=h>32||p+h>64,m=h+64,g=h+p+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(ae||(ae=new Dv(8192),iA=new DataView(ae.buffer,0,8192),ee=0),jr=ae.length-10,jr-ee<2048?(ae=new Dv(ae.length),iA=new DataView(ae.buffer,0,ae.length),jr=ae.length-10,ee=0):ee=ee+7&2147483640,A=ee,o=l.structuredClone?new Map:null,l.bundleStrings?(Yr=["",""],ae[ee++]=214,ae[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[Uu]=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(ae.subarray(A,ee),o.idsToInsert);return o=null,C}return E&mM?(ae.start=A,ae.end=ee,ae):ae.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][Uu]=0;y=[]}if(i&&l.saveStructures){let C=r.sharedLength||h;r.length>C&&(r=r.slice(0,C));let P=ae.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&&(ae=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,ae[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&&(ae=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?ae[W++]=B:B<2048?(ae[W++]=B>>6|192,ae[W++]=B&63|128):(B&64512)===55296&&((N=v.charCodeAt(I+1))&64512)===56320?(B=65536+((B&1023)<<10)+(N&1023),I++,ae[W++]=B>>18|240,ae[W++]=B>>12&63|128,ae[W++]=B>>6&63|128,ae[W++]=B&63|128):(ae[W++]=B>>12|224,ae[W++]=B>>6&63|128,ae[W++]=B&63|128);C=W-ee-D}else C=c(v,ee+D,L);C<32?ae[ee++]=160|C:C<256?(D<2&&ae.copyWithin(ee+2,ee+1,ee+1+C),ae[ee++]=217,ae[ee++]=C):C<65536?(D<3&&ae.copyWithin(ee+3,ee+2,ee+2+C),ae[ee++]=218,ae[ee++]=C>>8,ae[ee++]=C&255):(D<5&&ae.copyWithin(ee+5,ee+3,ee+3+C),ae[ee++]=219,iA.setUint32(ee,C),ee+=4),ee+=C}else if(E==="number")if(v>>>0===v)v<64?ae[ee++]=v:v<256?(ae[ee++]=204,ae[ee++]=v):v<65536?(ae[ee++]=205,ae[ee++]=v>>8,ae[ee++]=v&255):(ae[ee++]=206,iA.setUint32(ee,v),ee+=4);else if(v>>0===v)v>=-32?ae[ee++]=256+v:v>=-128?(ae[ee++]=208,ae[ee++]=v+256):v>=-32768?(ae[ee++]=209,iA.setInt16(ee,v),ee+=2):(ae[ee++]=210,iA.setInt32(ee,v),ee+=4);else{let P;if((P=this.useFloat32)>0&&v<4294967296&&v>=-2147483648){ae[ee++]=202,iA.setFloat32(ee,v);let D;if(P<4||(D=v*Kf[(ae[ee]&127)<<1|ae[ee+1]>>7])>>0===D){ee+=4;return}else ee--}ae[ee++]=203,iA.setFloat64(ee,v),ee+=8}else if(E==="object")if(!v)ae[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)}ae[ee++]=214,ae[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?ae[ee++]=144|C:C<65536?(ae[ee++]=220,ae[ee++]=C>>8,ae[ee++]=C&255):(ae[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?ae[ee++]=128|C:C<65536?(ae[ee++]=222,ae[ee++]=C>>8,ae[ee++]=C&255):(ae[ee++]=223,iA.setUint32(ee,C),ee+=4);for(let[D,L]of v)w(D),w(L)}else{for(let D=0,L=ep.length;D<L;D++){let I=Iv[D];if(v instanceof I){let B=ep[D];if(B.write){B.type&&(ae[ee++]=212,ae[ee++]=B.type,ae[ee++]=0),w(B.write.call(this,v));return}let N=ae,W=iA,X=ee;ae=null;let F;try{F=B.pack.call(this,v,k=>(ae=N,N=null,ee+=k,ee>jr&&M(ee),{target:ae,targetView:iA,position:ee-k}),w)}finally{N&&(ae=N,iA=W,ee=X,jr=ae.length-10)}F&&(F.length+ee>jr&&M(F.length+ee),ee=RV(F,ae,ee,B.type));return}}T(v,!v.hasOwnProperty)}}else if(E==="boolean")ae[ee++]=v?195:194;else if(E==="bigint"){if(v<BigInt(1)<<BigInt(63)&&v>=-(BigInt(1)<<BigInt(63)))ae[ee++]=211,iA.setBigInt64(ee,v);else if(v<BigInt(1)<<BigInt(64)&&v>0)ae[ee++]=207,iA.setBigUint64(ee,v);else if(this.largeBigIntToFloat)ae[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?ae[ee++]=192:(ae[ee++]=212,ae[ee++]=0,ae[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?ae[ee++]=128|C:C<65536?(ae[ee++]=222,ae[ee++]=C>>8,ae[ee++]=C&255):(ae[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)=>{ae[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++);ae[C+++A]=P>>8,ae[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[Uu];if(L)L>=96&&f?(ae[ee++]=((L-=96)&31)+96,ae[ee++]=L>>5):ae[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&&f?L-96>>5:-1;P[Uu]=L,s[L-64]=E,L<m?(E.isShared=!0,s.sharedLength=L-63,i=!0,I>=0?(ae[ee++]=(L&31)+96,ae[ee++]=I):ae[ee++]=L):(I>=0?(ae[ee++]=213,ae[ee++]=114,ae[ee++]=(L&31)+96,ae[ee++]=I):(ae[ee++]=212,ae[ee++]=114,ae[ee++]=L),D&&(x+=b*D),y.length>=p&&(y.shift()[Uu]=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,ae.length-1)>>12)+1<<12;let C=new Dv(E);return iA=new DataView(C.buffer,0,E),ae.copy?ae.copy(C,0,A,v):C.set(ae.slice(A,v)),ee-=A,A=0,jr=C.length-10,ae=C}}useBuffer(e){ae=e,iA=new DataView(ae.buffer,ae.byteOffset,ae.byteLength),ee=0}};Iv=[Date,Set,Error,RegExp,ArrayBuffer,Object.getPrototypeOf(Uint8Array.prototype).constructor,Gu];ep=[{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(tp?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 Ms(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),ep.unshift(n)}cM(n)}var pM=new Co({useRecords:!1}),NV=pM.pack,FV=pM.pack;var{NEVER:GV,ALWAYS:UV,DECIMAL_ROUND:kV,DECIMAL_FIT:VV}=Jf,mM=512,zV=1024;var gM=new Co({structuredClone:!0});Ms({Class:Lt.prototype.constructor,type:1,write(n){return{...n}},read(n){return Object.setPrototypeOf(n,Lt.prototype),n}});Ms({Class:We.prototype.constructor,type:2,write(n){return[...n]},read(n){return Object.setPrototypeOf(n,We.prototype),n}});Ms({Class:zt.prototype.constructor,type:3,write(n){return[...n]},read(n){return Object.setPrototypeOf(n,zt.prototype),n}});Ms({Class:Nu.prototype.constructor,type:4,write(n){return n.id},read(n){return new Nu(n)}});Ms({Class:Fu.prototype.constructor,type:5,write(n){return n.data},read(n){return new Fu(n)}});Ms({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(wl(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 Ap;(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})(Ap||(Ap={}));var Dl={["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 np;(t=>{function n(A){return{type:"Property",value:[A??null,"position","x"]}}t.propertyDefaultData=n,t.valueDefaultData={type:"Literal",value:0}})(np||(np={}));var Lv;(A=>{function n(r){return{type:"Comparison",operator:"==",lOperand:np.propertyDefaultData(r),rOperand:{...np.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 Po;(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})(Po||(Po={}));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 ku;(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})(ku||(ku={}));var Es;(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})(Es||(Es={}));var KA;(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})(KA||(KA={}));var xn;(o=>{o.white={...KA.white,a:1},o.transparent={...KA.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{...KA.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 KA.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})(xn||(xn={}));var rp;(e=>e.identity={position:[0,0,0],rotation:[0,0,0],scale:[1,1,1]})(rp||(rp={}));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 Do;(r=>{r.DefaultUp=[0,1,0],r.DefaultTargetOffset=1e3,r.defaultData={far:1e5,type:"OrthographicCamera",perspective:{near:70,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})(Do||(Do={}));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 ip;(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})(ip||(ip={}));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 Io;(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}}})(Io||(Io={}));var sp;(t=>{t.all=["PointLight","SpotLight","DirectionalLight","HemisphereLight"];function e(A){return t.all.includes(A)}t.is=e})(sp||(sp={}));var op;(t=>{function n(A){return e(A)}t.defaultData=n;function e(A){if(A==="PointLight")return{type:A,color:xn.white,intensity:1,distance:2e3,decay:1,shadows:!0,shadowResolution:1024,shadowRadius:1,depth:1e5};if(A==="SpotLight")return{type:A,color:xn.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:xn.white,intensity:1,shadows:!0,size:1e3,depth:1e5,shadowResolution:1024,shadowRadius:1};throw new Error("not implemented")}})(op||(op={}));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 ap;(e=>e.defaultData={...kv.defaultData,...Uv.defaultData})(ap||(ap={}));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/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAARaAarTiO/HSVJZDKZP9CkbhGPSBkqgoWZto/YXV/qUF4dTEnlH38SD4l3ETcOGGUoTT+VKORlTWQhjA5cyr7g4C8Z8v6WdmV61n1Ob5l/3KhfRL1f3knbnDI4QLAw4/MEzleKJtfcjYZW2jYG3FiatI4tFrUO4VZFtYeqSSvv4WNT+WKpvf0vlTQeGPn2askaQmNPl19/FMW55qQSopHYimtMgPPVe0rtF5MvfLZJ42EO4AaQzw299ZkoymdD4kG3ap6b6ScKmoXggXx8YMwSysXsdUFuDN12UC4BGgYkQjx20cd1zttzu69XFmnESWPpAnhigsvwpixGUqpBFrWxbkRrLFao5EKWYnjXqQVcLgQzHR+cYHhYV9TiROZ9YSU7dRrhWiQxtdclW9PiAXEsknNNUSEX9INpW7QfQLPNZZzndgEYOHKbEpY7RdEP5+bQvEm+62J24iK/0i6aoOr/bNMVs1bqhPQQZQ736IORen/CEAlhTRyy6gJ7We2c4dKGyN13H543Ia7ZQMfcrZIWNyslCy5chOEFfNCJ32WemPysfvg3Cqlv4yvAHVOaoqvo0cuQe0xgS5xzGQeSFDa6ROjHnLoVUOt5GWboY2GbBNR8OjRtoAjTwIcIeEXLzJddBSB6Md/4bQjANSPEoFmydPZGNz3XkNujI7WNpq0AOmVHkGGBYxKZBQUjRu9mxrvrxawsbdD/WPQmOm0MJc1uQldfEtUDTekSASfjow+9wQI+TM/OIOnaBh75sUWnPvlHbn7+CFFqGw8ktAG4C0nctYB3kefx/cSWvN8Vlj8n68DrWL902lD2Bx7gqGQFtFU6yP/h6StNVY4abaAZ6EwdrKN99Oczx/JLvdwLEWPcesIL6liLY+fIfitQE25ibI8lvvc8ZfrCmS9MWFNMLtdQClM1uYGt/DmSVM46InrGA6tu80qsiMUgn3Hd6FImmba1rrA0CaTkCnpowowsjgPV5fkpM8eOdkwB9pfYY4SOUoBUOPgsayB+uf5fbCa2rAmbAr1M1/bDktj0YhmjSaNioXtavATRYpcKskBXuolx9ecKHsNYjonF3oEZYTJsv397PEqOUXRUTDg1MoIHfsjIfTIhrTvpaliblj71ptyMBwEAEX3I98IP/4F0/AkaF6jsr/X0s+6DPzb1d/lNrghxrWopORJKO5MP/tMAqgovBkAOrLMbqKEG72AEnmO3LdJt34nVgH290cMi+KoeMaq2E5tnuYJWPCmO7YPld7wL07gAeEzCzuRT1SbShvPvPnHC72Qb/BWKwzP7WI3i/dDjh7yGsZ1evCeEWkcFM0MqaBFgEaQOnACwVdRD6NXUiU12pmwzAzJmSj2tMG3EQMxP+m0wuEEpTfjw2H5+L4ZFypD47VjNiFDhmppOm1ZNhHlg1ODNOEQn8TARb73DIDXjn0rw8djZwb+qKM8vKFymnj+4qQsRQZtNAZRw/ufsO42sXzE1N5E6XjSBn2wAADEIh61hEf2F/fVhj0Lhb+p/fKd+OvCMo/RSfehHLFlB78rAodYzA3W6p4Taxg6CVAoXFljhEtZbtM/VfbuM1mWUKgbj92fMBwogyYqVNKxPpMCsj39bLzQIDWAXLPTmjR3GwzEjUFPffF504xde9D7sFTAwts+2N1rsiNREJWDCdicBbpmgH2bhZBrHo0GTYgl9Z5BJfYWE0GwPdtoSn6vhBY1my3v3nTBW44sMkznAkCUuaZCLqTBNIovJlCQQbsWDG2rZ25BXzGbE/fWyjXGiCGik0ft/oHGixTUcf6JA2zYWkEVRRSl25DfRqEof4elgCSTGmZ//gwCRgfOtlbo3UaLcarf6ebml29qmJdKq9OjY7S11LA+ISGrFJ2+t5zsgAbssi0no6pVO/bF+S0qpy5JBM+Jb768Dh4fz85YHjigcBHeVOIzqzUdJOv/CNWUJeKbkKWhe4t5ob0fiZy6tVQMB7Y1Z28uvO0zFOzB8ApXenVsjriU4kppTxyKTwPEx6UM2eoVrYwN71jOnfaKiQiGeZY0yxANjsCbCpGk+eIVVtmtSfjcQdTXmTTzLISHL27SACaBLBtM1vx5Nqbyg46+VjUGMlWwPtUqIf0S36CBUmPgdIW6Sq/SKdaZwirsOEfg9D3+8ll3i+Q/PfzT+802FkWWXplnWL8rWpcMEHHUj8X9PDV1gAhU5jw09aV8G3BFEZxfIYwYzQmuGCV5cZHybjQeyv5IpXauJhHuvLmbtu2QRSwU359tVrnTdwpre1f3p3x58jFULmdOFp90i+DZ6m8d8Iw65bMA8PVDB9Xyt0gxCs7PSztReKRK95Rg/AXVeoMJTHLR/HNukBfSP2iQatcOamJxDDfRYSqfDCT96HBxUkwYaqKGoFyY8v4seLsk/cpg+MAq35nNYvVJlOpUd7+gxv71xY0kqP2HRCMYdT0hRL8bJqAn14lOPGcYABvGkzYzSgVZm7EZnRNzgbZxcqQpvFe39GPQVuPKVtk5dHKWJ0TZfG+sv9wZa5aeqNHkSWnOu+Lc9nBN6JZYreFrO59T/1NYOUXQvl2Xvm00NdXYN5lAUz8V3xNyF0w2JWJ1Tf8M8cidOya2exAgTZZJiFVALEDyh4WKUEw9bOn5QDLiV684ApE/s/5c+dCo//gLI715YIHZtlYZG6V3D8umjvk5+Tk5W/rZMtQHQjY6QpRV/zzqsokB1XKweAQ/Zf8rN3sXQ/270pm/8V6zce2Vimv0oGwxJ4aD2+zCMNeoyKAXRI4Z02Ihu70KNJ+cdv1+7h/9Rtxa3A0GiUVnRHuNXt/77z+zVddAdif7XuPpa9IGrpiIKVxeYD/9AYkbK+Q0oXHBiA0/U8ls2VKL3wqI0SFgieJJ/fLmaiPGimKzrv+VRQErpHAWtcc/QXUzYNXfhFR17Yen26gfDd6sH/ksU5Vi71v9PPfg+kN4hprhFqbrXNm3mDKp8tXpVeIufTD8rQ/LIsjaGowQXdXeiLUr6Y18h+gIVzsTXoCrMLcD1hOZvz65aeo/ehZE+CzH9qawfN3Z6756QSqAyDVlqDYmn1gRdJcSpw5mqKBFOcHpam7MJtKV5dUw+V0BkwFLcjQCzUzDUaFfnXHWTzINJkopib+0wfbW0aSXPNFocHex/5+Hr41iZXbJZbNNSsWS6A/FHp8mLguT93uYaB6a07b0K2LX/xpdYNvctT1K33mHJDCCnVSgwkLp5u9sxNS60+WfihRjFD/GMNjv8h2RYi3sxJ+WgLKzVuEvS85hArOPnpsP5YFT0WzFJQ3lwdTnwrXOLQpTbs9Aa1z6Hrx63TOIVRHzLNClBoPHoLpexaU6UDzxCUUD3+6dKwneTFbqPx6ieCltOVRxftpgffLw68yvbVtLfr89V3X/9BY5I+orwz3T9ueKqKguueFqrRBJOKInVdFQLyD5m58zJ9TxOXwDhjmSFioekpelc+m7Z/JugvREKknEdGGWBF5VxUj99TLLPAXGc4TC4+XGEXxqbv50wo4k7QUCtMITmy9bNXvRyZy776RGoCfDap4FCtNm4Da8iwS3I5bo829A0+3ORMNPGBQ1os0+8qTpJ1AzBxyb8WlEIenULQ3ywVzFy4hvf8kCY0y8uRkncGs7TkiUKZ8urhzaA1NXuWZWRAdDWb7/RDUbwlUPdQrG87Ar2xttj/EAR1HgewXth41TUXTj9neUDumjAMcMze0/CQq2JG08Y+y8mvwGFCth0ZgU+sgDj6ZLXEs0yJI3Ackf81CCR2nSVbh/rdVh/GlMfEpML5D09wqFB+LvvEppKj/VkM2wmcnFlRxyzm1BxLVnDmAUl2MCKAFVd/5jTGS6OEnEnYNLRmY0dPQFXhZQLiSYfukdZ6QEVIWlWAOcWIS2augSLuC+n8N+kMSEtynqwLVwR5v8pp46wiocaIBGe6lI/fNzlf+VIKHdb0wYBXxTEYpCH6QPIVUqjrujeYUhUwaRDlkxfIQaHptenkY2FP65WLtUraWWzlSukN/B722xaV4fFaWCCqNKXX8Welf2ZXSoDtkpv9cF1S9s94hH8479V3TUnSMMTq4qL11zbwIZqnLl6JUcJ/zsOiUop1UHE0Tzyl1ggeDMTjOPIwXFA/MHdrJ40977iqmMm9k030Zvq9DcH+Cj/4X0H2mr1vZ+vttcOYGDiMSO0LcEgHZ78Jiro+B6Gi+Bl0uBEfzO6EB5tzttIa6ho4KGBDSAXcDj1umsiUtS0vQcQYeVC7La3R8CbB9GaOw2pCtvMC28wNYCmYTwHkDY7lyJsdRp2tRt4qMMgZsF6+JFvLgSNRAqB3xYLUhOYRw2QGWJQ8Vh/wVJ2XK+uM4MOJpubE9NteR7rePd+x18lN6+G2MAATtinGEVmaDtf9JjRdx7hRXuXGyNim43nk4ZnAD07zf33a3WwXCdCYcMqW0KthAsxKbUMVJvMPPjfj55xzMsXTVqfQts4PcYtBCHl1yYRfngcZbFMcT3WpO8tLxnP+bObs6JMIe1K9lliyD/zfopdzzbo8sraP4cxBNqhUPMf9hKgomAY3DSneMbHTUancQtFOQmQUboZ7V0UyvtAse3AEj/2tTegpREgmsENeXZ06kuxVcmDyrQtIn2diIuFRAQanQIxxu8WeBwgASVMzYno8DL4j/VcWh+8Q6yt3Vgx28RprB7DfY1XETv803JaTOM0+TYUC2HTnugETNg/yN+DFpOKD+Wc3gGDD9A1I1KswujPj4/3CjK6b/xFGsin/llhrNRDHxySMlthZIk+0FX4+TBcMM/rjmPy02c8QLkVR4CEScqdfGHq4HJN6Ndyt/aSjzyqrA6/Lb8PrZ6OIGqdECoR6erTLy1JMFYvq+V56UjwtEwvxiXz+a+CfUJuPUE+x2B2md14fsvckXQQlNyPreBOWEApIlIwYE7imoEX17vVb6ySIxxtUWY5RjVb/k48ixRfZGRvwIyvTPDMtUZxgBwbiVR/GPCk6QMTFL6oxhclvendmRTkafrMorfl0kb/x12aZnloABGShpbqqva/THPM4iKNCSOr7kMtTrcekwCVI5+1cDASBbiWZuvqoPx1b8b07ZWKyokle0JCh47BKEuDy0jCT8k1Yh1LptK4+HVFq+815Mz3KD0ggBj+/M6Af07MR6YyjHmy4rYIz4Bxt2MljtXth+YvVnIFdOqigdzhl25BJ6tai2WfrlghbFeNybV2NUMTcXMFBzEneIEaICgYF82l483S3HJMXzIq7wghkreMNNUY//jPR3LZT+LYwfhXTM4e4hln/Mrd9qHECKTD49d69y5OCg6PidRifSVe2qnQUe6tuSUX5MfpYd2rln7GTViUjIfGDUscoqWabCWPiKlxq5Nl7dBqr2vwsAFypdLb3SyJQI/Q8pVL8Qjdjq1flYG3Oq7esFAhKZ7eD/+HiE78GTfAZ9bJem6T0wWt1qOdJY4L7mFKB3ci+cyeRVfhWoJW+ZN2qLQHepM+1t2WQVhKdXqo5qq+RHMnWIOgeR5L46HdRDXKCRYoj951N3oP/3MaOlTj7/LeIBXJ74xGVmBONjWTCljtwlaWNsBaO5PYQXGyvvh7Ps/dfD88Dg3gq6rpdDC8NHVaT/237Qe1RMkVlwPsFOy/QP54RJnpHJBkj0UBU8R9MGioXK6d1+8CL6wAsDQ+boNAZfU/tnRskVxt27fYJY0sAAARtAasViO/GGHxVwobldt956jD4Nnt3PAfsHlSHq3RqTJzjkzN0w/xP3WVqCuPWjn/qfFvY+p47uo+tFWyIQ8vv7/6JZmwnWiGZLstmv1dIJeZ7C/yAGLce4g0kT6Aj4sLXX6u1f5jJwrD/QdZ0UPf8nWhPZ9iAfXzUCEORefPdbUxc/Gfshks0gnU5PRVgdX0r/x1ugXRt/Z62uNHNNzP9A2Fs9LSB+yDSwijqrVGXdn+s4OLyatYZMv5weVcWqnzzxeLuq7phRt9Pcd+OMPp/raLwuiN8wAh6Kewi8/LqgJ5qx3bCOezcemJKD8bXuNa/X+0yQ/koT71G6zc8LwY2Vw2I28wfq5ezz+v0GzOUmi3H2xf9NFiVnP+hbadYJ1C6SOg0eCJ5E47OSGyvcAsbEQ1qXFGRVErfJM+etYur13+upvHQt6Ny/27xqSK2Dod2sW6H/8jYP2owjk+wzMO67g8OF3RmjaaCURR4OkjF6xo3tBnxE90RsAkCmNkcMlSRNeEK1G1uVKuqYv36cCH+R8btSMNVS5r0kjTnkidKBOA5OOeMbaq/gEbDYjYFfH/8Or/d0oM1tLOQPI2Ts2/9wz3IXsCrM6Aj7I9HYspm7OdVv4SKZGsxkDaUx7NzIjaUuxp5Rc+6s1GMWWPL6mjnqhKaTqF9csEljqhKxTnyx6Z6kK7wN3WVN6JG+G5PP7N5h1Zou2B15C6CNOMMWJ5yawJJjs3xLvxht++4BYGG3ieZ6Ae/T4vWyNbg3NR6cUf5wdiPcdHNyc4yWlOXXqvh+dy+pBNzRIRzFM+X8et4BJNhDh6ExI/nXH+PnUzsbFGIUVXqmLl0uU91eUNbjZAkZaPozq5UJC0P+IVbRFoYXxQmhb8voM3pHzjaCwNW8v9L5mYYqxPwqfRdHUh4vbSSfUHegPQQzpnFf0o1kgLww4mUMLmp7RYbzLxvmqlVTUJ7tkVhCWhT9B8EEYQUdNOCa8Oy8LoUVYt+PWwmT+ywMJ5ueiIhXoiNBHF/WPZMEAJgnmBUOWHCD+Lcfg8DEmhOqNqhFgvj4dPbCog5Dm8c3slIxwMOPGXCFZSlEGuCQVW395yrek68WU+MLhTSXhf661wD+ZWjatnmadasoDOx80JM64Tqi3vkz4lMUMiRbzs+049jSEWBa186JFb37aCLeM+Ema/RmFYeOspccEhnei5G5iGU7uAaIIvZ0L2kWXAXPRAAOozM1c4RlRX6jbUfxB2PIAbNZraRAYlyA7ERMT5FT73LLbEFngDOY/2XWl7iSIyfsFTDaC1VGiHHQJdtwtVwODd5ViZr3xpybEsIMDAaukaEsQC4cJVMR3Rl4OA0sTafJAIOlCzPsX3qCIeNTymZ98iTpHq5hi4iOnM9uTy6hCLExlKWDCISIooAIu+gkdFIv3Ny+VirxlrFRMXv+15DpPDUUpLskSoagbCn4HwYcwaBpyEsEc8bxdKwKvmaqj1IGdS+X0dD1YDXWibKjeo/5SkL2QEUbuWi6ccAAAtNIexgRH/USqdAtR8rX8Gj4+2jmcgxrO4Lrcm6s6QLxwudt2uVEKk1g0rJP6nA+GXdnnFOmcxJoNbE8NnXZuxFQWpnR5yx4FhhmKSPCCgoJUeVyp4BIvcFZLOOHiQ1NJ99swuEu0XKxhWhXSvXOevS5RnuqEL6N2tPVUPSdX2dlCR9jIL/8RA2M/7KUkExWKAcZ5QwWyq9n2RIPro2dzV9Tt1aQpZHJKlgm5D2pGEDs8nSgZWlmhv8gnAFWAeYBfdGLNP5kZ0XR46aQz6gX/6M4sqaByfN0Bb2b88SBi1irQIs/yMqEFu2FB28DCTpdrgUAWbklfm7h65A446syQ1qrz9Kvb/w/OZpCWOghHCfM0iqYeA8ilgUEQuxzm4aWKTudwEPWPvE/V1puYrRQLBPe2katuA7iXg8FhXXMmsfDMISAb74ybTJd/57hC5M9ogwsGbAYHIvnFyvAO8W+NWUVNsaR/m+sKnq1pekwsIjQ3x3ZGTnuecFh0k2RbZ7g7DY22bw8cE4hicOp4is+TweiwKoEAqnGW0Pv42yTf76JZKTIM4AJOfjRmEpdPPQ8PLSbyVxGghASlQtO+OmLEd8Y8YH3g+Q3/Z7F3rsUYN9bqzs5MzAjRM8CPr8NOPNPhCl9Wf31rPFopVy5ajmtbScuVpJ93iPAMy6QeeFcO6kjRN/wpdFx6bB+Wh281wZ1tI8eigh9pfb03Y5qApW4mkXrOVYgDcn6DAP2WBA4TLkQ9MReJcZK1FcE8O2gd4x4dPhjz5cMHqBKymmxLuiD01fw/oZof1ku3J8u5jSLtlTBdHhJRZ/YtW96wYDFqcE8rDM+5hZpGJSZZehLNpHIYbWY30pOReuM/eOSY7hMYNDq00WWL2LeCVWtFt9+0bjPoL+Ntn0DngP3yhlyGq55ZE0kX3MYlS2ildCtceXLZfa+CEiveLxFlBdAYJiEhfgynrrXmd2jVdVXzRaaQ+VwkpPqanofeq2LUjZDZm/hRHaO5CwQP6l14HydiboS+B3j2vzI/VBh10R51VohakTgTQlFA1gHu7sgiopkcJEMlRIWZmayImeq3/b6nsVfm85Bf9Dcur5Kj0/Z9C84sk45gCkCoYRlzhpxn9B6CPiCvF9SALpkogYApgW6Qj4I+mqLYYzZF1DoTo8tLXb2Ji68RFpoD9IypUAUYtdzgD8dumpeNVWsnmB6EISTCVre/1FT+tpiOehuA8+7I7FIrPglzUVgKu8pvVatQFI59aTgNskXbcoJvtO0VIC8tA2t78wbwN6mdBH4xKZTvfcKDbfoJd0opeTjuPZr38/awFhzC4VCJAk7VC7aK2mnJXMQrefDskEmDudlN45WJuFNQNfUz60bx2RcaCgZVOFQXkmuo8xlbczPaFlfjivwqDsWoPd1H3UFq8I0CwIx1DySuc5pOZWzgDlccET1dKOkL6jtiETwrdod0SvlQH6VEdKqRkKqqrqFTq+rUewx5QQ/yvPPlcn/G9XpiQdutGh0FcwX2GYYD1NwFJBCNMml6V1oq5rysiEGupshHW9VOhHp+DhWSdGj3Sn5XNk47XxtknYofWslhnR8jd3Mukyppq2H1C4XTNlAcXiKlPYG1rs5RR3TBJk0UtJTVvHQTdwI4IGYrs/3xf94uVZhU1hiEkpEdHvzHBSpL+qllmWbUEEAE4rv7tPCanuti96D/N/gG4cSFE/0YpZxdyB9GpGrm1apFMQb4+w5LEVRy5rddZN3ai1cjSsGhDS3bgwfRGSwrLqEyXl8nS3lxc/aYa8Ws2g0gIiStvAl86wOYbrHjqH/IhN8+aAmYdXePb6kLat6QjW5yWH0xorLX84T8xlhzATnxCGkBAMJpVi2FoVPkyaoYXXnOMfudjyY+CBRxsQAq1GjFPJwW3CknV0/Fmw+N+JSchSLkM8f2CVpwopG7wls31NzXGxfujvfJ7xnHS0FeYqTna2YRzbBrCEKkkw4AoFSfhX4rsvM+P9Mgg+kO0oiivyOF4yp+yN52lH9wqODfXneTKhurq7OmDyJQvw8l7gvpyy//wprIlCcLjurndMObKrpKsr7ZNMSdT9Ims8cCljPXh7Ez1ExtIL2/qYqrYvBHuTKarKKg3ZRaP1bMcG7Lt+w3nFpDOhQS7wh+nyO9YcvF9PabVS5METzr2D+/o9k8REJj9bkcFrg071fGrQD7FMwMr4+ciSJWENXJ5cBJaG/Q8BdGIQ1sTPIKQoZKHhsQ7sPIkr6VI84vg0pa+JdnjOhmhQzvGu4ac4hnjElWnSSf02+NQj1ecxmeQ5YBbqzh+PtayIcXHOlMbmtCgv+zBiBSQeaag2JNShQ6d+EKVg6NS8afQT0QDkAzjm2hH+IKaZc0aTfYsJxCANPWh8Is7HLmig29+J3aEOJ1dGs3oLVT8fmyLc4MxahD/uM2uSUxU2hMWT2lFZXZkpul0Y6r18626Zp/mNZkRt/vsKP7eQZ8m+zyrvdkIQJwsBgF0lXIIJ9do1RTmNm79/Usv4h12odg2Ri9bPSwjm8y00+YfAzBm11xRkFJqVK+et8L5lXbKzUhNFzlrmB+/6xlU8hEbbRrDmHDBeeKKfKpz52kuUw97TM45w5eA4x2p/S+5RTW6dxffcZYNuQKgkDRyvXsB3XXYXKc14/eUeLlzIE6uXtqQwY4OAGTsqBiZx97x85a799JNbK24BvaB/VKGipDm3kYjQxNoBMdht3GrrSDWl51VZrFPj+v8UnVEXc6Qx2y/PUfZxb6Z39TVtTgQMjBrumXo0ejNhxjVqJxwq72DO2YVDaR40vA3KvBF9Ddxz8RsOlEpSeFACiDP5hZpywTHngEM7fuhbEOQbOl3GdwzWUryedswCp6ft54x+nCEqeEKQCGR+s/bH0jQhJbHc48PqSFa35Aqs2m8Q5TSQmU4NwdrR7ghlvBI2p6qsOVBnXbWJWnXNN0M1oOLS8qfDYggG7I0BevBzhUodde8iBmymTjeH5Rfsh2AgtX6gp2MGRC1A9VKe2ewbb9j77SULLE1a10tOKuvs1FeVL9DAViOyTVIBMTBgXNud/n7imN9UUTwPT35YzZ1QgcCwcGH5hhO4CnEdsdXT8EgNWdoh0gjK3e0qJvx7eYXCWytKiO9E6LoubxThTsK3AnkyOqeLluX3K76VVnMT1Cn+JSrxXxKxFptAGctDQY96Hx+rMkcO0JLAypkG4bD/JaxLg0IEMjnrmqp6+c7hOV1KqsZPJJzQLCJzPgsD29qQHa19RHRFga/LGKmzqpuzcZ9Pu8JT8JqNNDjBlwZ43PfvL3TDkytQ+Lcjh2ZVN9rTDidhLZsrN97U2BgT+85GeqdbAMctJXOG29gMysn8jpUTugvQ/TCL2yU2LClIg13WYBCJbDdEH46a2ghpwQclcGtixfRGbLPI+uy0C4wVkwsAd8UHR98TamlzIgsdiK0sWyELAyaNjH+AtQeT0DufxpHBxFTK9hmbMJehzvcSh2CqinSQ+lOsSELkhCcJLCbTvEOxtEhZxi6ON/MWSPP6wRpij7f9jTvrHsbR5x/JAj0PgWH3COQT2Ydet6dXyh1gOZT1m+Yzw/TJk70YwtXEBBTjhu1GeHlCHrmJb0FAj/NXmdmolnJUbYfgYnj/Rcplr9zy28S/hYumr7aK+HAKLP5zgJADhzsm0aVZBg0UFUp59Kj4mN3I3UWR4b89QxUIyYGWtRCl3cs8kkt1p+w+ytTDeeXVUtLvXWFs+F+hqNIDSP9Z2M37i1/kq6jb4oeW4uUoLQkPYrrWd+rcIS8HeNaKMJ2dyxOcqeK5aPAoZUOeidb05/7PqIGFHfm9+RTHRJO9RgCdwUKRHrd2SNwABbHfjM87LkCe4AAABCABq1eI7/A5j98CKAxK/Em14iAPc044Ni0W1ArMKfzHcm2wqP4V4OvHEDZMl5FPrLwBjTT+afFFZ3ZWl2kw17hH8pHoXVARSerU2AoY8/6Y7DB1ty42t8zQ+/9B+vIRmA5Z+eZM8J5jd8li1ZTQR7V49bo41lV2ASazl/Q3MRlfGNf0c8whQbSxx1r75G16dv1ytIkLyVGhKBq4fMeje2/0WobeM1zfuhnX+qtmsBsSbXrA/ddfnG6dRbtDcPOH9bvQ8hbo+6XdSiSTgYr0IwFZrn9tBsRbV1GEiAXfTKk/EbzxizqIXoXCMyTCsitp8XcBj1KF0XAgbK0d5wLFd+gPentWj9fWXcNSy9Mawq1PgRhdzX7fTgkZMdAy9NLSE6YqMUrvxYU2D4n/UvjPFxGTobk4gS16VtPMqlYov7AU/YloXiw9Gv2HZWbHRlYaX1qOHoDJSCuFEga7ZdVNHrgab9biFQaDJCFLK0VOon2+GxK5s22XyApZzCyaYjkuu1KYdhG15maT7XwRt27Z2jOZvbyck20JFtDjt0Za1zUfmipk0L0LJSn8jeafA0ssaeGpC4fb/U2/lVXmeOxHE8EOos36cChoKxfz1RLxXTj8lNV6nUtC37c5HrAO2BFUmgpspoGyPH59mPUtbcAIqKq0EtlxJlMBcIpvO8HijZrZAIapnZV8bEAILr7cSc1dU/il/En3mEqHh4Bu3P1mUPbVFLjcMcYO8CXo7A6/4Sk3x0D7FPj8yrROOuME2zbJ1m8+dtdTU5+gCyiEcIh40Sy4B7efTzsXoUPHaqyPrP8kp+kfOimIiFw/GK/aofwohAxsJODQUH2JY48bv4TNSUMFGD2JJcv9NU1/q0e8aH01tOptqTt8dYF14ZMNbEMEGw6F1bvKKOzQbz9xizcGgyC8ikVlXDPeomd6SPyWZDUgSNRyQAVWzQZ0IQl0YZmNsfe0clOjeLWcr1QGqt1he31kctkbnhIvfUElNVIa05f+912w5jlZYJh57ZZ9HCS+pNTOZOLh5TZt/jEJUb6/UVuttdoJLbJbPjV6KhouLwiRJp0DQqp1NxkJzuhmKs9tf0e5fqcVqow9XzqmFuIEkO4DKo5Vo2u3r498j9uomMvJ0MyE4pJYW0cYXn0MUo7XTfwebrSM80tvUx+RCLY361CcUl51ZyF3FzmCDECZWGGgEBw4vn/XF29w48+P1PFZhBd70oTmEzeNpTYLzw2OvB4FlExM5E59knPJcLKD458kqvSV1rD7hLgJzjzIehk4Au8fkC8lQQ7znat8T355ZDIDa3q5rymV2xqusH58JfWijwWEcPqt08J7h3TYrAK3A/P4layMyjQ85ZXgTa6jKDu2F2FtfRq9uJE0ynGaoQVKrENOH5GD76IbvDVKzCbvesgAAAwVIe1oRH+PkchhwavN25nASHcIJdyGVA4Ufho4TiveCayLi5doN/fhHtawH+1+KQ+AK1e9IFLq+fKE6OvZH0jstsyMQzCXcSvLHwdoWwznTPCBG7lyXuzr7nr3PzGNpFbObDq0J8GKCqve9zpkrWWcNnOaG9Km7CLQ5jUKvYxVERq9cP6Myf0BNdLku4Z+7Dy3CEMAPqjfe6RLTZHQUvhBiP7FTCGbybMsc4M+CbZeBKppMtcOSE76OxafOZGyifLN30wxSPgGvI2RMeQQ6jf1JRbfPGVcftgPEe8BErBcSMvXcT+1UqBEUQVdk9r6mXeQY/ADAwxE32m/W4n35HIIycxLQKapkeypFCUTfvhXFg9no0wO3PeGrb1NngvTY+V7Jg/j6igyu9jtfp9clfTdmAzW+IsaeRkKqRCEQSWxV5az8FJDR8Nku9rgCM5zLVRIx5gfU/gup8uRw/pJdTbXE6q2EzY34bG1T8/bxYl219Lhe2Y2IUoQgTfpaj4DkckS2DLcVoX7+CeISgEd6FcUQ4xCNaNWqccFjW7A/NWXTDopl0oeDgI3j6T4fsFWlrxlkwI+2K0QPnT9/itVMCpZCExk+iXep6CEAFyNW8X19J8Rlqy/hvAg10sbFrXSIqtM+wkIezpMBbhSxqAGbEI1A9JRLIb4AJjbX5p6IDNrs+VrHChArZSwkgdlurc0AqmVBnsBHMLBkuW3X9YDUezxzoXoXbsQu5r4hxkLtx1NQcw93cocMw37w4uaCTg+CDPfwzUE2K3UxrilCSfw4PaWEVPrRYgxz2ZT2rG6QGHe6EC9SNkNghZqra7htjuJntTbyn9rWKC0lzIIatLAHI3CXazM5DTQ90eLHB9Q3TusYfM7oSl3Y2imZrckfb0cw2VzBjbQaP37gLsnK0ydbdF8sAWezJYX4AdUVOUarlTcBb0TeQgFyAsvrpkJAzXjbI95Bcuyrlw5GZegOMbxlALqWJmmB3i/eGRtCcl8BJ3+6h4CaaP91Id0C0n/0QIFYeUFhHQx5/Ao6zI7QL9CvDIJifJoOOlRdLukLc9WmdLKWsTQAOKmdZlxzl2BXf7fIHCmMowy+5aqw1Ai3GfklsG6c6rNEvcd6+sGCOXwsYS46WPl8NqvSLbN7uJPFfRIT8UKvkw74u5jbqasp5xUsjyCpD3HlSyp2mWzYCLWUbYLYXQ50sOYjLsG/4rCvGJgyfJrVx7A27uFcu6AJ6RpuKRH9v2nSqBZDEVwc8iBo9Vv954B2Z5jE7ZrZcuuFhTGtSDNBFtAPwZDCyH1lP/0kKL1jKubUEFJJkM9qbcObZU469GoOKPyYymsHNHI+SxIANwyMG6JAeN0jYoAeC5VMsSAf57FQ0ATBoQiS8p1nBosMB5FgOG1dHec8hwcM7sPV03ddF5wi8Jmmrh/MZJPm0YxYLoibpCFC5m1opRPLnv86HbEQ7+UTo9EacpOq8sEHtKV28GHwMOfbb3/WhCyiOqw3eQG2aCVqUyTxhZc+euW4CsJSORFn9cHeS7Ago36oRVd41BkaPFbG/4PcqwfWbvvx8Rp2IDVAoBRr/lrGMX4ifYvHKZK2N3XRmmn7e9qnt2zxnQ6rhC9o3CaLk8Ih7JHk6zwBtVuslFQQxQPxkJzRlSqNyWOZtdP5WxN2u7Qg45Weqe/82f6XzYqBhgIW3Wjox+sHxk1nyz0i2GplxdCvlnn+JqSts2ujAe0FYuOac7nwM2cOqtCk1JuKzQYAMHfW+VejYgJee1AUWJLr0/w0HT07xBILDlg4291cIwvHrOoRNUKKc5GHsW/4J8oqrfAkXCBHfcYB60544/UvpRAbE+UP+HArsSZxDLhbX8qfh0vzSgoxJOCAJXV1YXQE0kTFiPkioqu65TierveE/yVuijZwZNbMZtqp4SqUcaYhY48lH77O+O4xNlyZyDO9uQHL0C5cyLPQmkMNfgk9zUfmzzhViWAuS9Fs8mIII+0l7/fKZWIKbbmChrXMCANqATDG6Vt4NiXzqVC8ifsujGY7/Am/YE9Uq380CHzLySSwzyZ0GpFigLl1a6nC+BU1p6LwmjDuOnI1FWwv/tWbQ3PO1b5YX0i70VWnkfmHnatahG337rE7pql4zGVM2A3c74UwPqumiJfvroHlyX2XXXNZJJYADGNrrlbd7CvG2apY3VvPM9x28fs2LnLLubWnMb0VhJsC4XE43zTEuuuqhnxDAq32G8LmpQIB3Hw6X4S5Ev/wMGGfeu75oCIFR8z95mCbR4kBbdXvUVd4ptl1YlDO8z3LWn2gApGYOAcVx5Oxv4JIBGI9fC/18fduP8pKznQ5DhFARwoBiP6QVxwLA6ZntpYyOvGQ19m9wbZLiwCJ0dH+mKjmMmdMaJM+MGJPSM0kwWsW7c45JBmrrXOT2NzAztsOhz8D2idjS2JYf/Pfj2xuPH/S+l3B4nnSNpj0C+weHWWP5muGlM/r73NZdX7P2nD55t3kkAY86P4/RhO52w08waI0FiB+cgH7+DctO3udDrxW6117vS2zithnHMRmronRzbhgVh0oRu36OEp1HAJxlc6KrulqOfqywD4Ks2Zne6XN20HTXIEw6DeB0aCmoOnTJePwjKBfAFS0V0Gih9OsYiChhOYs6e0o7RimS1BpDtNEuWWdryp93vA08KZ3guBOhP16plooII3Wp4SzXKJCvAUkcMw1BzTL3iSeqgLPkpaJQ9SPdSnlRmoZWOM61NKPLfBRT85l3mtDookAXy8gfrkDy6HRjkJqv7Yf5TUUD7fzlYXD5dgWojONBg1S4p5TFoLLuHqH1Ef9j86l4G6jqHtZCGSdPv6B7pu07/ssivZnfLfoBWZawD4wk+8IupV24pdiFBampj1ZeDCskwYRXOtsGFYAONWluq3KzPeHjeSmhkPFMANhgdejYAJ7VyRjd3Pv2vimUJ/03XmEei/E0c0NGaFTFGVkM4HqDLBXlGuJtdiUzuJStxqrTn6ewOrCVB4ZxKbGPFGoxPYY3lodBbKtLpGy4vqAs8NNySqe3zD4+xwqY2GLjpY8YxGizAVc9K0L/iiscIRNq83733mEUHcyYJBnYM1zaZL4pYszBAyIBgkrByiVeCbx8jbbqFtjKCcOf9zSGaRnxln1zDDYRc5TG2PvahLxGNkk8DLLsS+sUwtoEZ2YsTrBpWTQKDOeLxhObrSWA0r/I5wiuPf+YVyDbPfUkqcmSPvcDxi0/vxuNhHaS4LAvUKeC6pdbo/UAfmTRCM/h/jib8HdaGwXVTom/FOiUIpEzqDA5Kwyu2vj4x58l2sD8AGyYLSh3xLICVaW7w9PipyVaAdS6sZWW5wxrjQ/4+t28ESKWaRURaZNmHik43dGaEw6NNgxbTyb+jTCSaCx0yw4C0F/0XVAj8Odb8M89JhZh5OOk7x9ozNB1TlHe4SzlB54MTDmRgxrNTS9leya0WMqoAUpanzGHbV2OBNbuf9ofcEUfYqlG7HmXg0e8GhM51q3cV/Ak03hklNIICdCCxlAXFwUi2RGolhDGD9EnEWGkpEXZ1NDMm1YMplB+rAKBkSc1dv0Fti9+gD20cZS+IDXtwZWenFksAcCXoWunrTXl06elZzy4xKH19O7LdHZQ4K8oyzirlb8gh1pHDaCBUYb/pweKmjZWgugo9N1f/k1OQPVX1fk00viu/v+i1Evwr2IsQkFHN2ORVq3niy9sPbFFPyJN3X0yjNFO70nv5uDtshtB7lNqinQl041BFKJUXvQzARDZ7RLBAW1CRV4kpKxsGAm+n1PJOchtK/lCFMhSs6nRzJGo0cjGNEGb6mrTnEBnzabEepdWP+IyiF1LSwyB9JYkPxH328mWbQdfqc/Uu03dB4vY0VfcSjqLWwyGih97cE63vpdLHOhkzDHJm1j5NpiDDo54QaukYpoq1rnG8E6X+hdzYCiskONvz4KJRP5d4Eyd5pNRTOMFyh1d1pSX0IJijFObVYQnMzgdPGQL6kFvBlzQlPZSiMdeUE92yTSd3tkGU23B72zMHP9YjRcS4MLxgIpXZvOVsbGbsmEhrslPOEVOZ2ddJfgWaO0r5PgHkRmwnNeBZnR9IIagy9PBHGGe3qz0YArf8t3DxDQx77q49Il/tGbfz4AAAEJgGrmYjvybjn1PL1fb/IBOcD/khmPsz/IIqVV4rEjLAgqiLUdKByzBNVIRYEiIVBzcSr8pa6+m7JpffM2/MhEXcloLlp/mm++DEuRy+j/yx0Xxx+1PewtsdDqGu3tYxbsAEVNM+X2qAxR+Bj/QCeIxsT7ogE0ffLAJfDJL7m09DXtES3KKQCeFuaeFD8vJiaehv9T76JtSn6nQMJ1mTaAf4A/OebNcglDuRXc2aL5J0wkD9SIyP/JNBqIJpwOJ7PtTcEQtLOW+e95LiXw8YCz/r89O6y4cP8Qq5mPX2wPeDkQugBbswzcay15Qg9nh1y5lM0n/whCA6+qPtVVmAMsmKDsHa04ZA6KLACMC8VadFqkm+Le3YNlY1OI5q3RMia5P+UemBV2k778OoadsMkX6w67uf9TSnVcDunZjQNQgs4O+dR9igfdc3++vjEfQE4XV8KkAeayWcKfKKWpqMLsf1LoLDRqhI3ezTJrylPeVQBQASScwVFJ5Ei+1wzFeSra4RU0oc1HZA+zgYKjCfw87tHboOjUpoiOaX5X3sIYk4DnHlX47LDHvQMEvQMfEFFCE/CAARSqvcJA45vxCFTNso++S7zC4JIPzJW1bWVcm4eVbZKiJNtlgBlWOF5Qje/QASAmT71KqdcLhmz2n7HKbJvGIirKIoIhIf8oig8RolGu7F9K9rmXHpsNtIvIv0PgB5Nx0LvXxpab26ZlylEmTG75x/mcgo9w+P8hhJuupBw0kMttxM7JtSazlJJTqdI3SeptoDq3L7nTGMwUa+1+liLVDbSCJMyjQYNEMsR3Ty0UcPvQWDrZOmV8fbcNaZ0toQAqlubVBvkWi4a/udReauDOXU25gVPuB8nImWlhnIg1b9yBCrFxthVkUc+XoM4semMaWTYkaqsxthZB4sfezFzIdchgwwNUY2w17R1lEDqmlfJn/XnqaPRTLVNxR6iDAjouOtEhilnLY7HVGncDAlgLIrwgKDXJ0hH0duV/4oqyDHU67Q1gck2tCZct6vXFGuXdRiLXPPLd8QKanC1dKfLQg684SBzLlazzdWkYeFDqj4AQLrq98XE37CIEPH+enrDaFgg8liXcXeZeG36GTa371NnPsiE6yKr3uqdvDC7w8mn4PtlXMsijW4TYUKe91sDcwhO6gnaEyiiB7Hyc1YxyaE7wywJCWxphGJ2G3TzlXlvbdo8L+c/zxGPUW6LIF9lzvyQKIY7RUQUf2d8gor7ZwJnmnhARoyUJe36QD8+0A6J2uwDs9SGWW0MNNCe2ugFWhpFJfhxlzl2MkIeYaFBKkONjtigLUaVlDkkSykn3mVEHmYq8ztPpYcKUXvuQcvTAOBka/9HpaQbSE5gwTNXeiRXhXr2XeUiwoDrNPTXahWFa2fDiiOPKJxMte8Kbk2Y9nyh6wAAC6Mh7nBEf9Y61nQLNDbmcwOp680NlHARqGj8PWWBZ+eDyW+Bq8F5FSVmYggsNbrC01elmp8HS85EfZYQAO2hZftLXJAP5tB/7Y4XQQT45/SBwJ7XMCW5yR+/3biUUVZpfgn/k2RaehU0VZKXL6rzWA7z9qxMrgUYfIMPXyU2UZ+MIoM+iNmKOqbvz22IgC3+L+gdJRslLbfF1nuki3k/elpmMTLlXxi7IU+I/aT76jlAEP6/f7Ve9pdLOwG50rJdrPeGK/P+NtSezOdoj+oWS5gAzkKsyuiWr+zCgufaagOulVZT3IfcAspdvlS6J33s89MW2chVtH2sxfscVZCQJaanKIlmKxePnxBeqZKZF0xWjqCZldB4WK76UyOvMJ0DjuMT6Wqm6QBBfD92xFUxNF7CiXjoVeDDe9NeglVouHaCtGneH/xBIpxDErlF3UNU8cSBo9PSzAVFfEOZj64PE/oaJHXw+whtlmoZCylabzl3T0VSrx7ELzbNCFoDwuHEMhyyrCE6gQddCc4r1//7/JgP2MscJNNfuOe5FRGbwuZbobD1MWXFe+cduyjMBGRWLrw8h8jnAin5/g16ZCQ7lLPLLfLNXanPS9fUcIPPAzChtKoMt6W7IizXsJAdH8GmuzjlQ2GS2YgcLLFySN23npW48/tRNnhCKxlhyntgfwjTfOMFf9n8UHAz1nipAb3JIft6UnwD8FkB9Q8X5GXZkbU4p00t2IogNd8eq6kUxcmGrgOF+mat5qkdMfsOOghdoF7tsQn7xIGXXUp7JJIaN2fJSmh1UWFAFwGxLNAVY7DPPlMULcOqfa6z7abEWY7jyOqByRem0kXsTEsXZWcM0L13dun/oSQY59XeZduSzfrQYuhbojP8ev7iq2Ky9jVViDyYUZk0DidSfaMCypyrXlPEp/DL+4siyS1mB31GGAX/VlHAmsHi/13apGZCXWQ1fd1sOWhbT3ckn1uHnjAY/oCCbycHs92tWII+0Wz3+lHNAdGDmOh/D0RoDy6mkD/RhgyJD6ZsYksgSjNbK5P8ReP+l6hD7YZzJTW+k0Ap9SgC0tI23qEGb+uj3zNqKwGNJZv3v9ghGZpgIq0R/j8avE3gbxSukzLai0MqSQ++6L4hT2zWpl6Uq0mF4p6hdJBQFappvurHre19J91cyVSaVEsseEFcOBpCTslNGA/dhqUMs84WXdsnylBRzS9MaUDekudxGJBxtRX+y5H3TwM5TToI7HTamBK9KBmv0Hyi6gfZO4HSGcYl1shojI66xjrjXZPBfZeuRGvw0aUTJxeAnZyLze4K4vQ9pMCm4w/a6CySIOSMP5N2+mKJCdGIlfAtszD2p5eDJ4q0d48MNayn/68GpmbQ9oYdzE8Do8X2lLB/OUEcAy05WA5FzfBvF2qLOUXQ4bWfAgnPzUpE14Mxwa65JtqwHN0a2yRNwdwD3sH5vXyRR6Z/0Ew5V73++7I3xjFBhMdF2bA087cwS5LbGPeRSl+MvwBNhnWhiMxAev4aIhd+5YTyW8XH0XinFihOtHcXuZlrYOX09AcoM1CvB/tDqMtgSTEzOwIbhQPrQ2BDa7WhydAKrPIkCknWA0Ti1Te6Z7+X6/dzymK9iwRh8g/J5TG/lbRxzfLO642CrhnbB3CwOkhwumSjjuXuPiPUTNLmWuLlMArYCEPkJAv2QDPf1YzzjnK9fA8RD7F4MkEwULf3lq+Nyh1pdk/GpZ8pA79nu0Xz2XSdg4X5knxQ5m1TuYS/jFy9ja80lp5BypKOvv8DC871EVm0LlFVkLgEaLP5Ekd3ls7auHuBbysJwW9y96HwhaxdYxxlyuqrOTKmjaZH2doA8L4YQ45EGQ5ZAxvrOaRNveiAYkjBELaJ4TeMM2ZilkxUMHG10nlQYGv94Vy+QTA5GPtqi4/osXbbXvIgUmAjj2mByBcH4q8oMzu7sWR0IgfFchm+jjQO0A1wCkLbUpqn21Aeq6nIHQJLh9zldRKGjhl1Xyibh4hkzUWlI+cmdY0f7u7Soe4ZEiyT6ngLpsqeJmVx66WQZkf9Lh81hoE7gLXKyOwSkpqT4FMDPv6Dbs5UNkA4Yxa6+znHrmVZad6mnJzKfYVaVgTzvIuTmT65KAG63IdgMi0f3eqB/1CHVCIrOA/XXnQJDR777RiMPDqaBd8IBI3mB50+1li+V1FtlUWl0OPIxkMIeg19RFco+AjaqroMr+/kZzO/2wBNIX9uiJ6pTb14nUdQ3FsMFTMcXtljlFriLWUoLxC7h7UouXWAlj6gyzHZC63GeM4XhGZ7qRZLf/XztnytQKRFU22jZxdVaYzkLIYtX3K8eivTfXI0Low7tBlLJsWEB1bkhfX1GTXi48/eHJMfMRx9uOeNhKue/uBfG2Wx/YJu2I2INrbCwOSl2d1nlXyVFJPwNPib5zpRu/9qxIzDSBbfy6lKJr/vdVpUVK/T7Ngq+taaIni7SuMYpQdjjosge/WrNQ3L+p9c5MMGkdVL/HD7UOGNdx8kSE07Mc+DOAINPcNjUi7j8tzw7Mg2ZfsVjrqOeEExZ/3kRcJMJIrXUmLnuG6c9xBuWOZh8B9iSZKrDLU644mNl62+PhZEFzQianF0Uwl+ViXA38p9japo+MSW5ilIf/ZhZ4mK+uSsuuBFaeCNDkEmL/LTmVAPgAAzLLLDs0rgaHbpQzruZwdEqHA6nuka9pRzyzXGJYQ5jD9o/i7oVmn/okGjyc6evUTKOgJsi6t1qrI+vT1VoqbunvwLflqsl3ApSjFRaRmhKBHbHA/aUTIVnGKoIDZud7usFAKcXKvz9qYlvkvc9aOYuxYOQ0Bq0fdNkkovEsQc5Jx5bZm1uSoE/dxkwrn9QuWh6FrAlhxh25HkkZAVKtEAZaASGwmLSwGaegmEe91Ssa3PHIdj6PA1ZR4q7HHvjLkCFHauoX1EaE17cZeDlhIKjKINaD77mKJQAGBuR0thk/ryTS0CTyiQezJf4uAonte94thG9M/IQHAm4BbonRx1Q6CJ2+BLLYsuyty2m5ApPhgsOASeF4dG82H005w8FIk0Fe1iZ58sjTxhW7JtVybs3pvHeHJYYsV+JCme6sUBmD+Hg4DvbmonqUf9hJmqm4S4aHyrmHlkzIfGcY3ZCPgEwPklaW12PILbIs9UBIGFmd8ao0aUSTDFFPiOkT2RPyRgZnR6Kx4n1EAhJBTTkYBhrHmBojEjR8goJh4M8cUhW+jEefOf2qTle3S/5bdFo4Y06ZjvbM9kdLcdHFjS5tQSkWFW1A9vxoDnElgfDOXWONQ4HNZ+gniJrVrXe9MAkRqSFfkQIyo6cFBEuj8xLN1NMDPElA+KCirEawfwiqbwWLsFztco7CoSPhFqzfZTHFd8A3AXEJgucJW3J4VsNbcEk6iGlqmM2uWat92RxbdXonZMaqiz0a7yeQOPuVee3h+O0d6geQDa0VUUQDGBdjH3k+IPTBzws6gLgNubyetuDACNWjdg1Hz2MOH+ekNxqlrbGUm/wgMEBphNqd3JHw3W4cmsBDq9rSxAdbFX3W56Sc+DpJqyPv89Lyb4hXhczogw0tfr+vq2nG0x9ScC2j9iHS80TRB87Hm2RpNex0bdMeoX16ODYdkB6mdv1cqyRjy4osxvF5mjPLXb0HMY75rAnKLRYGg6jv3CgAN35yRgFvYeg5vspr9haRNZAdKMepiIBD1jctaKwz0rfaa0P0No30Ss7Xu8AwTbnio18BqHHS3xVLgEcBrfw0zaDEeaKvIoZGH18P/cEsYrhCHATkGaDZLMBEaeqszLdvpxtuWhJc/adEK6FX4rr9Uyvp/drr+VAeWPasF98LS2ImyUzOjZ1zEbv81ZdpEcOox/rxo9EpH5O6i4ZUkb7ppgkp4P/2ewemcstRl7gGSiK9XoIlqMYkNP5pSUKXmyyfnBbWVLCGXzeAt3NoFcJXLiVFNCJ5pmiju0SYKMMJIuL8yxa7oKgT4QW8AAAAUFAavbiO/wNyjYtg9LzsiTEPxpUXM32XfYr3oMdBunS5KqV3216nc4Ny+Gqmpz0yLhdw5l7jf2lrUrpU5bYNfVDUiXltVH8P3U8PbVZt4VxD4KeQpol54eJC33Nb8Ee3xe9TAk3BLdgV8RB/Ld0P2P9tI3Q8IsSo66+yVec4yFS8COGfitaInXgXd3F4c/pZnGJpYLslxEwKhRq2PQ1Y0VuuqevnKjAhXrEimXPf2rUByy6HxR0xl9xO7N8NlIwYYvwmogjc6BrCwLMorPrTo8gCx7aNpKUQHEjK7lrl8YAwIO0SSFFLJZjploqDi97yNPOrlo2WSirite9WCIOpEUm6p6xo/eB8dQqg9B8+M3LCWIjjYwBpOyy8csiMoOTbAPzOAnA+vau5TJn/Lys54Ls/sPkG/1Nuf3x5LMRj1WNRl8Mp8fTfTvp55f0Gbl2AJZb+1XnEJCKYRGiLFMsNstRsiK0Kbx+ncK3KoaiaT0M8Nx9TD86+lUJqwPWEjux5owVRl3EUc4kk0s1NJKubfTyOJs/Evhiw7dX+J3DP0rZu0c1HWk8PeSaJTI0FuSbg0WvQoo+wwBcgcKziyZXAx/csLdDBoZT6+QjYVhvOXR2NBqckYnoYX6u3kNCDHjOw846jIbnfjokOc1f0ooSqIWQBA2wA0/xll81zRntYYtmjaEQvCb75CfX2N9fKAv4IPZP+ZQl9QdFcWhF2IVnJqbQb8IJZiBno4pBwrmtQFXzsIfafWNjx16YMasV5cQcA12RAkHhLEHzAzYek6Aev/itPw8n/WWH0z0juaw/leqd2PpCXweJtXX8yygO4hju+r61DvWzXowzxxzYKlTuTCQDfWFN0mR15purNjuyFDQZeCsEeMca9ccF27sBFdcUBdg1LBgFBeYDd8XP6gChlRDbaL+2iPJDOIIx+rrVIhljbA8cPOMxSfM69n6JGmw4X8e58qJg6VjxPqLCB+i4cweZ9DZFp1ca3lgMJQHW1QnZ26p3zYYjgtOjLEcFCtKJbqwt/7lxVbjL/4EFARyff6x9hAFwfk0umd4bgED7Zl5TSXpWgRkJhVhptHva0eiS1/19sKGJdfXOHYXIM6sPfO3ZJKXnNTf133dp2DJqvXIaKubHoEylqedLlTsdBvy3KnGZdHhOH1/rPKGKqqFj7JflAqXfbY7bu9mWR0YgkTGxnasRK4lp0rvibMlvilQUHwdzSlhtm2z1eCsxVPGDhsIZEfaJ1exv0jT9i5H+APPZLc9ywN0oBvqrCuEc6I4TmvYdDW2JaRbStXssiveZugVK9xRBXpi4mT2q4BDlRlln0hGmE/sYLmr5QV5iv83Q6SjzVMw+HmfaE8+QwAoAu95fwpyoK/r4rTFDuPahFoCey8I3+PfTAnnxQgAyQyKoi9PReP91lcY8vE/7q3WHSk9k+aD/RSlmdzKOUZjuUWGxEeUzuLpCgejsYcdnyW++ls96G1J+RBpDWzkIx+v3ZRiJp9/JXaF9q5IyMD1ydfUMBmBUYRVwYkS2WxkdlHAHi9WSu8/eBPBhAqT/q4hGKyF06p0iDtuEb0ANAwz7UAOHKWU9QU30fNjiXl/MULVMAgjUF4xVjWTiUuPSryZKxZJf4wCHZKYR4mw3DtEyVE46xNKKSGkj9pgiIiiW+BCZ4Tnw4U98ld/I2snHRcHBBo3UTTHP6o1oXQBZLtFnM4CA5wkLnceXCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4mAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4mAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4mAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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";var Il;(t=>(t.defaultVideo={data:PM,thumb:"/_assets/_videos/catThumb.png",type:"video",name:"Cat video"},t.maxSize=3e7))(Il||(Il={}));var lp=["mode","gradientType","noiseType","displacementType","projection","cnormal","crop","axis","side"],DM=["wrapping","image","video"],cn;(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:Il.defaultVideo,wrapping:1001,repeat:[1,1],offset:[0,0]},crop:!0};case"color":return{type:"color",alpha:1,visible:!0,mode:0,color:KA.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:{...KA.fromHex(6710886),a:1},colorB:{...KA.fromHex(6710886),a:1},colorC:{...KA.fromHex(16777215),a:1},colorD:{...KA.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:xn.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:xn.fromHexAndA(0,0),offset:[0,0,0]};case"outline":return{type:"outline",alpha:1,visible:!0,mode:0,outlineColor:xn.fromHexAndA(0,1),contourColor:xn.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}}}})(cn||(cn={}));var NA;(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(p=>l+=`${p}`):typeof h=="object"?Object.values(h).forEach(p=>{typeof p=="number"?l+=`${p.toFixed(4)}`:l+=`${p}`}):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:cn.defaultData("light",c),id:l}),d.push({fi:1,data:cn.defaultData("color"),id:u}),{layers:d}}a.defaultTwoLayerData=i;function s(c,l="phong",u="layer1",d="layer2"){let h=cn.defaultData("texture");Object.assign(h.texture,{image:c});let p=new We;return p.push({fi:0,data:h,id:u}),p.push({fi:1,data:cn.defaultData("light",l),id:d}),{layers:p}}a.defaultTwoLayerTextureData=s;function o(c,l="phong",u="layer1",d="layer2"){let h=cn.defaultData("video");Object.assign(h.texture,{video:c});let p=new We;return p.push({fi:0,data:h,id:u}),p.push({fi:1,data:cn.defaultData("light",l),id:d}),{layers:p}}a.defaultTwoLayerVideoTextureData=o})(NA||(NA={}));var Ol;(e=>{function n(){return{points:new We,roundness:0,shapeHoles:[],isClosed:!1}}e.defaultData=n})(Ol||(Ol={}));var Vu;(e=>{function n(t){return t==="PolygonGeometry"||t==="RectangleGeometry"||t==="StarGeometry"||t==="TriangleGeometry"||t==="EllipseGeometry"}e.is2DParametricMesh=n})(Vu||(Vu={}));var Cs;(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:Ol.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})(Cs||(Cs={}));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 Ll;(r=>{r.identity={...rp.identity,hiddenMatrix:Es.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:Es.isEqual(i.hiddenMatrix,s.hiddenMatrix)?null:s.hiddenMatrix}}r.diff=A})(Ll||(Ll={}));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,...Ll.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 Oo;(e=>e.defaultData={type:"Mesh",...kn.defaultData,...ap.defaultData})(Oo||(Oo={}));var _l;(e=>e.defaultData={...kn.defaultData,...Ll.identity,...Do.defaultData})(_l||(_l={}));var cp;(e=>{function n(t){return{...kn.defaultData,...op.defaultData(t)}}e.defaultData=n})(cp||(cp={}));var Rl;(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})(Rl||(Rl={}));var Ps;(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=Ll.fromObject(s.data);return A(s.id,o)}i.fromComponentData=r})(Ps||(Ps={}));var up;(i=>(i.defaultCamera={position:[0,0,1e3],scale:[1,1,1],rotation:[0,0,0],hiddenMatrix:Es.identity,name:"Play Camera",visible:!0,raycastLock:!1,physics:Vv.defaultData,states:new We,events:new We,cloner:null,...Do.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,...Oo.defaultData,geometry:Cs.defaultData("RectangleGeometry"),material:NA.defaultTwoLayerData("phong","layer1","layer2")},i.defaultBooleanObject={name:"Boolean",...kn.defaultData,...Oo.defaultData,geometry:Cs.defaultData("BooleanGeometry"),material:NA.defaultTwoLayerData("phong","layer1","layer2")},i.defaultTextObject={name:"Text",...kn.defaultData,...Oo.defaultData,geometry:Cs.defaultData("TextGeometry"),material:NA.defaultTwoLayerData("phong","layer1","layer2")}))(up||(up={}));var Ni;(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=Cl(o.material,a=>{if(typeof a!="string")for(let[c,l]of Object.entries(s.material.layers)){let u=a.layers.data(c);u&&cn.patch(u,l)}}).data),o.materials&&s.materials&&(o.materials=Cl(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&&cn.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,p]of Object.entries(d.layers)){let{texture:f,...m}=p;if(f!==void 0&&Object.keys(f).length>0){let g={path:[...u,"layers",h,"texture"],props:f,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(...ip.toOps(d,["cloner"]));else if(u==="material")l(["material"],d);else if(u==="materials")for(let[h,p]of Object.entries(d))l(["materials",h],p);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,Ll.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(sp.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=KA.clone(a.color))}return o}r.patch=A})(Ni||(Ni={}));var Hu;(e=>e.defaultData={enabled:!1,useBackgroundColor:!1,color:KA.white,near:.1,far:2e3})(Hu||(Hu={}));var Bl;(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})(Bl||(Bl={}));var Fi;(e=>e.defaultData={orbitControls:Bl.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})(Fi||(Fi={}));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)||Lo&&"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(),Lo=jV(),Wu=YV(),_M=qV(),sA=XV(),Nl=QV(),Fl=Number(KV());function dp(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 ju(n){return Lo?n.metaKey:n.ctrlKey}var Ze=[],fp={},Yu={},hp={};function BM(n){Ze.includes(n)||Ze.push(n)}function Gl(n){delete fp[n.pointerId];for(let e=0;e<Ze.length;e++)if(Ze[e].pointerId===n.pointerId){Ze.splice(e,1);break}}function pp(n){if(n.pointerType!=="touch")return;let e=fp[n.pointerId];e===void 0&&(e={x:0,y:0},fp[n.pointerId]=e),e.x=n.pageX,e.y=n.pageY}function mp(n){let e=n.pointerId===Ze[0].pointerId?Ze[1]:Ze[0];return fp[e.pointerId]}function NM(n){Yu[n.key]=!0,hp[n.key]=hp[n.key]===void 0?1:hp[n.key]+1}function FM(n){if(Lo&&Yu.Meta)for(let e in Yu)Yu[e]=!1;else Yu[n.key]=!1;hp={}}function GM(n){n.addEventListener("pointerdown",BM,!0),n.addEventListener("pointerdown",pp,!0),n.addEventListener("pointermove",pp,!0),n.addEventListener("pointerup",Gl,!0),n.addEventListener("pointercancel",Gl,!0),n.addEventListener("pointerleave",Gl,!0),window.addEventListener("keydown",NM,!0),window.addEventListener("keyup",FM,!0)}function UM(n){n.removeEventListener("pointerdown",BM,!0),n.removeEventListener("pointerdown",pp,!0),n.removeEventListener("pointermove",pp,!0),n.removeEventListener("pointerup",Gl,!0),n.removeEventListener("pointercancel",Gl,!0),n.removeEventListener("pointerleave",Gl,!0),window.removeEventListener("keydown",NM,!0),window.removeEventListener("keyup",FM,!0)}var un;(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})(un||(un={}));var gp;(s=>{s.TRASH_CAN_ID="830a2708-8ed9-49cf-a68e-085299892222";function e(o={withLight:!0,withSquare:!0}){let a=new zt,c=up.defaultMeshObject;return o.withLight===!0&&a.push({fi:-1,data:{...cp.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:xn.fromHexAndA(1908256,1),postprocessing:Io.defaultData,fog:Hu.defaultData,objects:e(),environment:un.defaultData,publish:Fi.defaultData},s.emptyData=function(o){return{backgroundColor:xn.fromHexAndA(1908256,1),postprocessing:Io.defaultData,fog:Hu.defaultData,objects:o?e(o):new zt,environment:un.defaultData,publish:Fi.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})(gp||(gp={}));var Ul;(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,Lt.prototype)}t.defaultColors=n;function e(){return{materials:new Lt,images:new Lt,videos:new Lt,colors:new Lt,audios:new Lt,fonts:new Lt,penumbraSize:[.5,.5,.5]}}t.emptyData=e})(Ul||(Ul={}));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={...xl(RA(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={...RA(e),near:Math.max(e.near,0),far:Math.max(e.far,0)};Object.assign(e,t)}})}function yp(n,e){Object.values(n.shared.materials).forEach(t=>e(t))}function vp(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:{...Bl.defaultData,...RA(n.scene.publish.orbitControls)}})}function JV(n){Object.assign(n.scene.publish.settings,{video:{...Fi.defaultData.settings.video,...RA(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((lp.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=RA(n.scene.objects.data(A));r&&r.type==="Mesh"&&r.geometry.type==="BooleanGeometry"&&t.type==="Mesh"&&(t.visible=RA(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=RA(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=RA(a).layers;t(c),a.layers=c}})})}function VM(n){n.layers===void 0&&Object.assign(n,NA.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={...RA(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({},Lt.prototype)}function cz(n){n.shared.videos=Qr({},Lt.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(RA(n.shared.images)).filter(A=>A[1].asset===!1).map(A=>A[0]).forEach(A=>{delete n.shared.images[A]}),Object.entries(RA(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({},Lt.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=NA.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,...Oo.defaultData,flatShading:!1,wireframe:!1,geometry:{...Cs.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:RA(r.states),events:RA(r.events),visible:r.visible,raycastLock:r.raycastLock,position:r.position,rotation:r.rotation,scale:r.scale,hiddenMatrix:r.hiddenMatrix},c=RA(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,xl(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={...xl(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={...xl(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=cn.defaultData("light","phong"),A=e;Object.assign(A,t),A.visible=!1}}function jM(n){yp(n,WM),vp(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=NA.defaultTwoLayerData("phong"))})}var YM=30;function qM(n){let e=n.schema??0;e!==YM&&(console.warn("updating from ",e,"to ",YM),e<1&&(vp(n,kM),yp(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&&(vp(n,HM),yp(n,HM),n.schema=17),e<18&&(vp(n,VM),yp(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 xp;(e=>e.emptyImage={data:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVQYV2NgYAAAAAMAAWgmWQ0AAAAASUVORK5CYII="})(xp||(xp={}));function Gi(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 Pe,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 p=0;p<h.count;++p)u.push(h.getX(p)+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 f=0;f<s[l].length;++f)h.push(s[l][f][d]);let p=XM(h);if(!p)return console.error("THREE.BufferGeometryUtils: .mergeBufferGeometries() failed while trying to merge the "+l+" morphAttribute."),null;a.morphAttributes[l].push(p)}}return a}function 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 Ne(i,t,A)}var bp;(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}}))(bp||(bp={}));var QM=Math.pow(2,-24);var _o=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 qu(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 Vl(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 Ne(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,p=-1/0,f=-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>p&&(p=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>f&&(f=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]=p,r[4]=f,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 p=n[l+4];p<s&&(s=p),p>c&&(c=p)}A[0]=r,A[1]=i,A[2]=s,A[3]=o,A[4]=a,A[5]=c}function 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 Ui=32,Pz=(n,e)=>n.candidate-e.candidate,Ds=new Array(Ui).fill().map(()=>({count:0,bounds:new Float32Array(6),rightCacheBounds:new Float32Array(6),leftCacheBounds:new Float32Array(6),candidate:0})),wp=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=Vl(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)/Ui;if(r<Ui/4){let g=[...Ds];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;qu(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?qu(b,t,M.rightCacheBounds):(qu(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=Vl(v)/a);let P=0;M!==0&&(P=Vl(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<Ui;x++){let b=Ds[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>=Ui&&(T=Ui-1);let M=Ds[T];M.count++,qu(x,t,M.bounds)}let g=Ds[Ui-1];Wv(g.bounds,g.rightCacheBounds);for(let x=Ui-2;x>=0;x--){let b=Ds[x],w=Ds[x+1];jv(b.bounds,w.rightCacheBounds,b.rightCacheBounds)}let y=0;for(let x=0;x<Ui-1;x++){let b=Ds[x],w=b.count,T=b.bounds,v=Ds[x+1].rightCacheBounds;w!==0&&(y===0?Wv(T,wp):jv(T,wp,wp)),y+=w;let E=0,C=0;y!==0&&(E=Vl(wp)/a);let P=r-y;P!==0&&(C=Vl(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,p=r[l+2]*a+o;for(let f=0;f<3;f++){let m=A[d+f],g=A[h+f],y=A[p+f],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=f*2;s[u+T+0]=x+w,s[u+T+1]=w+(Math.abs(x)+w)*QM,x<e[f]&&(e[f]=x),b>e[f+3]&&(e[f+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(!p&&w>=a&&(p=!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 _o,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 _o,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,p=!1,f=[],m=Mz(n);if(m.length===1){let g=m[0],y=new _o;y.boundingData=r,Ez(s,g.offset,g.count,i),A(y,g.offset,g.count,i),f.push(y)}else for(let g of m){let y=new _o;y.boundingData=new Float32Array(6),qv(s,g.offset,g.count,y.boundingData,i),A(y,g.offset,g.count,i),f.push(y)}return f}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,p=!!u.count,f=u.boundingData;for(let m=0;m<6;m++)A[d+m]=f[m];if(p){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 bn=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}};bn.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 bn;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),p=t.dot(a),m=a.dot(a)*h-d*d,g,y;m!==0?g=(u*d-p*h)/m:g=0,y=(u+g*d)/h,s.x=g,s.y=y}}(),Xu=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 f=s.getPlane(t);if(Math.abs(f.distanceToPoint(a))<=o){let g=f.projectPoint(a,e);if(s.containsPoint(g))return!0}return!1}}();var Rz=1e-15;function zl(n){return Math.abs(n)<Rz}var wn=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 bn),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],p=s[3];h.subVectors(A,e),p.setFromPoints(h,r),this.sphere.setFromPoints(this.points),this.plane.setFromNormalAndCoplanarPoint(o,e),this.needsUpdate=!1}};wn.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]),Xu(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)}}();wn.prototype.intersectsTriangle=function(){let n=new wn,e=new Array(3),t=new Array(3),A=new bn,r=new bn,i=new S,s=new S,o=new S,a=new S,c=new vA,l=new vA,u=new vA;return function(h,p=null){this.needsUpdate&&this.update(),h.isExtendedTriangle?h.needsUpdate&&h.update():(n.copy(h),n.update(),h=n);let f=this.plane,m=h.plane;if(Math.abs(f.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 p&&(console.warn("ExtendedTriangle.intersectsTriangle: Triangles are coplanar which does not support an output edge. Setting edge to 0, 0, 0."),p.start.set(0,0,0),p.end.set(0,0,0)),!0}else{let 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=zl(m.distanceToPoint(I));if(zl(m.normal.dot(s))&&W){l.copy(c),x=2;break}if((m.intersectLine(c,N)||W)&&!zl(N.distanceTo(B))){if(x++,y)break;y=!0}}if(x===1&&this.containsPoint(l.start))return p&&(p.start.copy(l.start),p.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=zl(f.distanceToPoint(I));if(zl(f.normal.dot(o))&&W){u.copy(c),T=2;break}if((f.intersectLine(c,N)||W)&&!zl(N.distanceTo(B))){if(T++,w)break;w=!0}}if(T===1&&this.containsPoint(u.start))return p&&(p.start.copy(u.start),p.end.copy(u.start)),!0;if(T!==2)return!1;if(l.delta(s),u.delta(o),s.dot(o)<0){let 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:(p&&(a.subVectors(l.start,u.start),a.dot(s)>0?p.start.copy(l.start):p.start.copy(u.start),a.subVectors(l.end,u.end),a.dot(s)<0?p.end.copy(l.end):p.end.copy(u.end)),!0)}}}();wn.prototype.distanceToPoint=function(){let n=new S;return function(t){return this.closestPointToPoint(t,n),t.distanceTo(n)}}();wn.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],p=s[h];this.closestPointToPoint(p,n),d=p.distanceToSquared(n),d<l&&(l=d,o&&o.copy(n),a&&a.copy(p));let f=this[h];s.closestPointToPoint(f,n),d=f.distanceToSquared(n),d<l&&(l=d,o&&o.copy(f),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 p=0;p<3;p++){let f=t[p],m=t[(p+1)%3];r.set(s[f],s[m]),Xu(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 Sn=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 bn),this.alignedSatBounds=new Array(3).fill().map(()=>new bn),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}};Sn.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}}();Sn.prototype.intersectsBox=function(){let n=new bn;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}}();Sn.prototype.intersectsTriangle=function(){let n=new wn,e=new Array(3),t=new bn,A=new bn,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],p=a[d];if(t.setFromPoints(p,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],p=l[d];if(t.setFromPoints(p,u),h.isSeparated(t))return!1}for(let d=0;d<3;d++){let h=a[d];for(let p=0;p<4;p++){let f=l[p];if(r.crossVectors(h,f),t.setFromPoints(r,e),A.setFromPoints(r,u),t.isSeparated(A))return!1}}return!0}}();Sn.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}}();Sn.prototype.distanceToPoint=function(){let n=new S;return function(t){return this.closestPointToPoint(t,n),t.distanceTo(n)}}();Sn.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,p=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<p&&(p=y,a&&a.copy(g),c&&c.copy(r),y<l))return Math.sqrt(y)}let f=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[f].set(M,v);let C=n[m],P=n[x],D=n[b],L=t[f],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],f++}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<p&&(p=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];Xu(g,x,A,r);let b=A.distanceToSquared(r);if(b<p&&(p=b,a&&a.copy(A),c&&c.copy(r),b<l))return Math.sqrt(b)}}return Math.sqrt(p)}}();var Tp=new S,Mp=new S,Ep=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===PA?s=n.intersectTriangle(A,t,e,!0,r):s=n.intersectTriangle(e,t,A,i!==_n,r),s===null?null:{distance:n.origin.distanceTo(r),point:r.clone()}}function Nz(n,e,t,A,r,i,s){Tp.fromBufferAttribute(e,A),Mp.fromBufferAttribute(e,r),Ep.fromBufferAttribute(e,i);let o=Bz(n,Tp,Mp,Ep,nE,s);if(o){t&&(eE.fromBufferAttribute(t,A),tE.fromBufferAttribute(t,r),AE.fromBufferAttribute(t,i),o.uv=Qt.getUV(nE,Tp,Mp,Ep,eE,tE,AE,new G));let a={a:A,b:r,c:i,normal:new S,materialIndex:0};Qt.getNormal(Tp,Mp,Ep,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 Hl=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 ki(n,e){return e[n+15]===65535}function Ro(n,e){return e[n+6]}function Wl(n,e){return e[n+14]}function jl(n){return n+8}function Yl(n,e){return e[n+6]}function sE(n,e){return e[n+7]}var ql=new mt,Pp=new S,Gz=["x","y","z"];function Dp(n,e,t,A,r){let i=n*2,s=Xl,o=Is,a=Os;if(ki(i,o)){let l=Ro(n,a),u=Wl(i,o);rE(e,t,A,l,u,r)}else{let l=jl(n);Op(l,s,A,Pp)&&Dp(l,e,t,A,r);let u=Yl(n,a);Op(u,s,A,Pp)&&Dp(u,e,t,A,r)}}function Ip(n,e,t,A){let r=n*2,i=Xl,s=Is,o=Os;if(ki(r,s)){let c=Ro(n,o),l=Wl(r,s);return iE(e,t,A,c,l)}else{let c=sE(n,o),l=Gz[c],d=A.direction[l]>=0,h,p;d?(h=jl(n),p=Yl(n,o)):(h=Yl(n,o),p=jl(n));let m=Op(h,i,A,Pp)?Ip(h,e,t,A):null;if(m){let x=m.point[l];if(d?x<=i[p+c]:x>=i[p+c+3])return m}let y=Op(p,i,A,Pp)?Ip(p,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 Hl(()=>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=Is,T=Os;for(;!ki(b,w);)x=jl(x),b=x*2;return Ro(x,T)}function h(x){let b=x*2,w=Is,T=Os;for(;!ki(b,w);)x=Yl(x,T),b=x*2;return Ro(x,T)+Wl(b,w)}let p=i*2,f=Xl,m=Is,g=Os;if(ki(p,m)){let x=Ro(i,g),b=Wl(p,m);return Jn(i,f,n),a(x,b,!1,u,l+i,n)}else{let x=jl(i),b=Yl(i,g),w=x,T=b,M,v,E,C;if(c&&(E=n,C=e,Jn(w,f,E),Jn(T,f,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,f,E));let P=ki(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,f,C);let I=ki(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 wn,e=new wn,t=new de,A=new Sn,r=new Sn;return function i(s,o,a,c,l=null){let u=s*2,d=Xl,h=Is,p=Os;if(l===null&&(a.boundingBox||a.computeBoundingBox(),A.set(a.boundingBox.min,a.boundingBox.max,c),l=A),ki(u,h)){let m=o,g=m.index,y=m.attributes.position,x=a.index,b=a.attributes.position,w=Ro(s,p),T=Wl(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=p[s+6];return Jn(m,d,ql),!!(l.intersectsBox(ql)&&i(m,o,a,c,l)||(Jn(g,d,ql),l.intersectsBox(ql)&&i(g,o,a,c,l)))}}}();function Op(n,e,t,A){return Jn(n,e,ql),t.intersectBox(ql,A)}var Jv=[],Cp,Xl,Is,Os;function Ql(n){Cp&&Jv.push(Cp),Cp=n,Xl=new Float32Array(n),Is=new Uint16Array(n),Os=new Uint32Array(n)}function Qu(){Cp=null,Xl=null,Is=null,Os=null,Jv.length&&Ql(Jv.pop())}var $v=Symbol("skip tree generation"),e0=new mt,t0=new mt,Kl=new de,Bo=new Sn,Ku=new Sn,Zu=new S,Lp=new S,Uz=new S,kz=new S,Vz=new S,lE=new mt,Kr=new Hl(()=>new wn),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 Ne(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 f=0,m=h.length;f<m;f++)a=h[f],c=new Uint32Array(a),l=new Uint16Array(a),u=new Float32Array(a),p(0,d),d+=a.byteLength;function p(f,m,g=!1){let y=f*2;if(l[y+15]===65535){let b=c[f+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[f+0]!==T||u[f+1]!==M||u[f+2]!==v||u[f+3]!==E||u[f+4]!==C||u[f+5]!==P?(u[f+0]=T,u[f+1]=M,u[f+2]=v,u[f+3]=E,u[f+4]=C,u[f+5]=P,!0):!1}else{let b=f+8,w=c[f+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=p(b,m,v));let I=!1;D&&(I=p(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],k=u[W+3],Q=u[X],H=u[X+3];u[f+N]=F<Q?F:Q,u[f+N+3]=k>H?k:H}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]),Dp(0,r,d,e,i),Qu(),o){let p=a[l].materialIndex;for(let f=h,m=i.length;f<m;f++)i[f].face.materialIndex=p}}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=Ip(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,p,f,m)=>{let g=p*3;return d(h,g,g+1,g+2,f,m)}}e={boundsTraverseOrder:A,intersectsBounds:e,intersectsTriangle:t,intersectsRange:null},console.warn("MeshBVH: Shapecast function signature has changed and now takes an object of callbacks as a second argument. See docs for new signature.")}let i=Kr.getPrimitive(),{boundsTraverseOrder:s,intersectsBounds:o,intersectsRange:a,intersectsTriangle:c}=e;if(a&&c){let d=a;a=(h,p,f,m,g)=>d(h,p,f,m,g)?!0:Zv(h,p,r,c,f,m,i)}else a||(c?a=(d,h,p,f)=>Zv(d,h,r,c,p,f,i):a=(d,h,p)=>p);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;Kl.copy(t).invert();let l=Kr.getPrimitive(),u=Kr.getPrimitive();if(i){let h=function(p,f,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=p,E=p+f;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 p=r;r=function(f,m,g,y,x,b,w,T){return p(f,m,g,y,x,b,w,T)?!0:h(f,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,p,f,m,g,y)=>(e0.copy(y),e0.applyMatrix4(Kl),e.shapecast({intersectsBounds:x=>e0.intersectsBox(x),intersectsRange:(x,b,w,T,M)=>r(h,p,x,b,m,g,T,M)}))});return Kr.releasePrimitive(l),Kr.releasePrimitive(u),d}intersectsBox(e,t){return Bo.set(e.min,e.max,t),Bo.needsUpdate=!0,this.shapecast({intersectsBounds:A=>Bo.intersectsBox(A),intersectsTriangle:A=>Bo.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(),Bo.set(e.boundingBox.min,e.boundingBox.max,t),Bo.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(),p=Lp,f=Uz,m=null,g=null;r&&(m=kz,g=Vz);let y=1/0,x=null,b=null;return Kl.copy(t).invert(),Ku.matrix.copy(Kl),this.shapecast({boundsTraverseOrder:w=>Bo.distanceToBox(w),intersectsBounds:(w,T,M)=>M<y&&M<s?(T&&(Ku.min.copy(w.min),Ku.max.copy(w.max),Ku.needsUpdate=!0),!0):!1,intersectsRange:(w,T)=>{if(e.boundsTree)return e.boundsTree.shapecast({boundsTraverseOrder:M=>Ku.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,p,m);if(L<y&&(f.copy(p),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,p,m);if(D<y&&(f.copy(p),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(f):A.point=f.clone(),A.distance=y,A.faceIndex=x,r&&(r.point?r.point.copy(g):r.point=g.clone(),r.point.applyMatrix4(Kl),f.applyMatrix4(Kl),r.distance=f.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=>(Zu.copy(e).clamp(l.min,l.max),Zu.distanceToSquared(e)),intersectsBounds:(l,u,d)=>d<o&&d<s,intersectsTriangle:(l,u)=>{l.closestPointToPoint(e,Zu);let d=e.distanceToSquared(Zu);return d<o&&(Lp.copy(Zu),o=d,a=u),d<i}}),o===1/0)return null;let c=Math.sqrt(o);return t.point?t.point.copy(Lp):t.point=Lp.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 Mc=Zi(mE());var zz=.5*(Math.sqrt(3)-1),Ju=(3-Math.sqrt(3))/6,Hz=1/3,Zr=1/6,MAe=(Math.sqrt(5)-1)/4,EAe=(5-Math.sqrt(5))/20,$u=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 _p(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=$u(i+l),d=$u(s+l),h=(u+d)*Ju,p=u-h,f=d-h,m=i-p,g=s-f,y,x;m>g?(y=1,x=0):(y=0,x=1);let b=m-y+Ju,w=g-x+Ju,T=m-1+2*Ju,M=g-1+2*Ju,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,p=$u(s+h),f=$u(o+h),m=$u(a+h),g=(p+f+m)*Zr,y=p-g,x=f-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,k=w-1+3*Zr,Q=T-1+3*Zr,H=M-1+3*Zr,V=p&255,j=f&255,q=m&255,U=.6-w*w-T*T-M*M;if(U<0)c=0;else{let Y=V+e[j+e[q]];U*=U,c=U*U*(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=V+v+e[j+E+e[q+C]];ue*=ue,l=ue*ue*(t[Y]*I+A[Y]*B+r[Y]*N)}let te=.6-W*W-X*X-F*F;if(te<0)u=0;else{let Y=V+P+e[j+D+e[q+L]];te*=te,u=te*te*(t[Y]*W+A[Y]*X+r[Y]*F)}let Z=.6-k*k-Q*Q-H*H;if(Z<0)d=0;else{let Y=V+1+e[j+1+e[q+1]];Z*=Z,d=Z*Z*(t[Y]*k+A[Y]*Q+r[Y]*H)}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,Rp=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=Zi(r0()),Wz=new de,jz=new de,Yz=new de,ed;(e=>{function n(t){return t&&t.__isSPEObject}e.is=n})(ed||(ed={}));var Zl=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)ed.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 Zl(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 No=new S,Fo=new S,Jl=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(No,Fo),Jl.copy(e).multiply(n.matrixWorld),Fo.x===0&&Fo.y===0&&Fo.z===0?t.push(new S(No.x,No.y,No.z).applyMatrix4(Jl)):SE.forEach(A=>{t.push(A.clone().multiply(Fo).add(No).applyMatrix4(Jl))})},td=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(Jl.copy(this.matrix).setPosition(0,0,0)),t}computeVertices(){this.getSize(Fo).multiplyScalar(.5),this.getCenter(No),Jl.copy(this.matrix).setPosition(No),this.vertices=SE.map(t=>t.clone().multiply(Fo).applyMatrix4(Jl))}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 dn=n=>Ut.is(n),Np=n=>class extends Zl(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 td;this._recursiveBBox=new td;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)Ni.toOps(this.data,s.data).forEach(a=>{let c=zf.replaceProps(a,this.data);this.updateByPatchedOp(c,this.data,r)});if(A!==null){let s=this.data.states.data(A);s&&(this.dataPatched=Ni.patch(this.data,s),Ni.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=>{dn(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)dn(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)dn(s)&&s.traverseEntity(A,r+1)}traverseVisibleEntity(A){A(this);for(let r of this.children)dn(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=>dn(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 vl(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??Es.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 vl(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=an.zoom(d,A.path.slice(2));if(h)for(let p in A.props)A.props[p]===void 0&&p in h&&(u[p]=h[p])}}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=an.removeOverridden(A.path,A.props,l);a={...A,props:u}}}if(this.updateByPatchedOpBase(a,Ni.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(Ri.apply(h.component.data,h.overrideData),i))}}else{let d=i.scene.findInstance([this.uuid,...l]);if(d){let h=an.zoom(d.component.data,u);if(A={...A,path:u},A.type===0){let p=A.props;if(h)for(let[f,m]of Object.entries(A.props))m===void 0&&(p===A.props&&(p={...A.props}),p[f]=h[f]);A={...A,props:p}}d.overrideData=Rl.resolve(r.overrides,l),d.updateByOp(A,WA.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 Ps.rootOverrideProps)d in A.props&&(u===void 0&&(u={}),u[d]=A.props[d]);u&&(l={...A,props:u})}else for(let u of Ps.rootOverrideProps)if(zr(A.path,[u])){l=A;break}l!==void 0&&this.instances.forEach(u=>{if(u.isInstanceRoot){let d=Ri.filterOp(u.overrideData,l);d&&u.updateByOp(d,WA.applySimple(u.data,d),i,!0)}}),this.instances.forEach(u=>{if(!u.isInstanceRoot){let d=Ri.filterOp(u.overrideData,A);if(d){let h;o===u.data&&A===d?h=r:h=WA.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=WA.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,p;return u||h?p=new Ad(c,l,A,r,i,s,o,a*Math.PI/180,u,u,d,h):p=new fo(c,l,A,r,i,s,o,a*Math.PI/180),p.scale(1,1,t/e),Object.assign(p,{userData:{...n,type:"CylinderGeometry"}})}};function Ls(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 Ad=class extends Pe{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 p=[],f=[],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),k=Math.tan(W/2),Q=F+k,H=d?Q:k,V=d?Q:F;if(c=Math.min(c,(e-I)/H,D.length()/Q),l=Math.min(l,(t-B)/V,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/k;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=[],ie=Z/r,se=ie*a+o,oe=new G(Math.sin(se),Math.cos(se));P&&E?(U(Y,ie,oe,W,l,P,-1,!0),U(Y,ie,oe,X,l,E,-1,!1)):E?(ue(Y,oe,E.x,0,-1),U(Y,ie,oe,X,l,E,-1,!1)):s||ue(Y,oe,t,B,-1);let Te=TE(D).normalize();if(Ls(Te,oe,b),!j)for(let pe=0;pe<=i;pe++){let ve=pe/i,xe=D.clone().multiplyScalar(ve).add(M);Ls(xe,oe,w),f.push(w.x,w.y,w.z),m.push(b.x,b.y,b.z),g.push(ie,.5+w.y/A),Y.push(y++)}if(C&&v?(U(Y,ie,oe,W,c,v,1,!1),U(Y,ie,oe,X,c,C,1,!0)):v?(U(Y,ie,oe,W,c,v,1,!1),ue(Y,oe,v.x,0,1)):s||ue(Y,oe,e,I,1),d&&!j){let pe=TE(D).multiplyScalar(-1).normalize();Ls(pe,oe,b);for(let ve=0;ve<=i;ve++){let xe=ve/i,he=D.clone().multiplyScalar(-xe).add(N);Ls(he,oe,w),f.push(w.x,w.y,w.z),m.push(b.x,b.y,b.z),g.push(ie,.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 ie=q[Z][Y],se=q[Z+1][Y],oe=q[Z+1][Y+1],Te=q[Z][Y+1],pe=f[oe*3+0],ve=f[oe*3+2];p.push(ie,se,Te),(pe!=0||ve!=0)&&p.push(se,oe,Te)}a<Math.PI*2&&(te(-1,q[0],o),te(1,q[q.length-1],o+a)),this.setIndex(p),this.setAttribute("position",new Se(f,3)),this.setAttribute("normal",new Se(m,3)),this.setAttribute("uv",new Se(g,2));function U(Z,Y,ie,se,oe,Te,pe,ve){for(let xe=0;xe<u+1;xe++){let he=xe/u,De=pe<0?he:1-he;ve&&(De-=1),De*=se;let Be=new G(Math.sin(De),Math.cos(De)*pe),Xe=Be.clone().multiplyScalar(oe).add(Te);Ls(Xe,ie,w),f.push(w.x,w.y,w.z),Ls(Be,ie,b),m.push(b.x,b.y,b.z),g.push(Y,.5+w.y/A),Z.push(y++)}}function ue(Z,Y,ie,se,oe){let Te=new S,pe=new G,ve=[ie,se];oe<0&&ve.reverse();for(let xe of ve)pe.set(xe,x*oe),Ls(pe,Y,Te),f.push(Te.x,Te.y,Te.z),m.push(0,oe,0),g.push(.5,.5),Z.push(y++)}function te(Z,Y,ie){let se=new G(Math.sin(ie),Math.cos(ie)),oe=new G(-Math.cos(ie),Math.sin(ie)),Te=new S,pe=Z<0?(he,De,Be)=>p.push(he,De,Be):(he,De,Be)=>p.push(he,Be,De),ve=new G((e+t+I+B)/4,0);Ls(ve,se,Te),f.push(Te.x,Te.y,Te.z),m.push(oe.x,0,oe.y),g.push(.5,.5);let xe=y++;for(let he of Y){let De=f.slice(he*3,he*3+3);f.push(...De),m.push(oe.x,0,oe.y);let Be=g.slice(he*2,he*2+2);g.push(...Be),y++}for(let he=xe+1;he<y-1;he++)pe(xe,he,he+1);pe(xe,y-1,xe+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 Ad(0,e/2,A,r,i,s,o,a*Math.PI/180,c,l,u,0,!0):d=new Oa(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 DA(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 Pe{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=[],p=0,f=0;m("z","y","x",-1,-1,A,t,e,s,i,0),m("z","y","x",1,-1,A,t,-e,s,i,1),m("x","z","y",1,1,e,A,t,r,s,2),m("x","z","y",1,-1,e,A,-t,r,s,3),m("x","y","z",1,-1,e,t,A,r,i,4),m("x","y","z",-1,-1,e,t,-A,r,i,5),o>0&&(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,k=D+1,Q=0,H=0,V=new S;for(let j=0;j<k;j++){let q=j*B-W;for(let U=0;U<F;U++){let ue=U*I-N;V[x]=ue*T,V[b]=q*M,V[w]=X,u.push(V.x,V.y,V.z),V[x]=0,V[b]=0,V[w]=C>0?1:-1,d.push(V.x,V.y,V.z),h.push(U/P),h.push(1-j/D),Q+=1}}for(let j=0;j<D;j++)for(let q=0;q<P;q++){let U=p+q+F*j,ue=p+q+F*(j+1),te=p+(q+1)+F*(j+1),Z=p+(q+1)+F*j;l.push(U,ue,Z),l.push(ue,te,Z),H+=6}c.addGroup(f,H,L),f+=H,p+=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,k=0,Q=new S,H=new S;for(let V=0;V<a+1;V++){let j=V/a*s0,q=Math.sin(j)*o,U=(1-Math.cos(j))*o,ue=Math.sin(j),te=Math.cos(j);Q[b]=(N+q)*M,Q[w]=(W-U)*v,H[x]=0,H[b]=ue*Math.sign(Q[b]),H[w]=te*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(H.x,H.y,H.z),h.push(Z/D),h.push(0),F+=1}}for(let V=0;V<a;V++)for(let j=0;j<D;j++){let q=p+j+X*V,U=p+j+X*(V+1),ue=p+(j+1)+X*(V+1),te=p+(j+1)+X*V;l.push(q,U,te),l.push(U,ue,te),k+=6}c.addGroup(f,k,L),f+=k,p+=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 k=M.clone().addScaledVector(T,o);u.push(x*k.x,b*k.y,w*k.z),d.push(x*T.x,b*T.y,w*T.z),h.push(0,0),D.push(p++),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 _s=class extends Pe{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],p=new S,f=p.clone(),m=new Qt,g=i*r,y=r-g,x=s+1,b=new S,w=(F,k)=>b.subVectors(F,k).normalize(),T=(F,k)=>Array(F).fill(void 0).map(k),M=T(e.length/3,(F,k)=>new S().fromArray(e,k*3).setLength(r)),v=[],E=1e6;for(let F=0;F<M.length;F++){let k=M[F],Q=[],H,V,j,q=1e10,U=-1;for(;(U=t.indexOf(F,U+1))!=-1;){let Y=U-U%3;H=t[Y+(U+1)%3],V=t[Y+(U+2)%3],j=k.distanceToSquared(M[H]),q=Math.min(q,j),Q.push([H,V,j])}q+=1e-6;let ue=[],te=0,Z=Q.length;for(let Y=0;Y<Z;Y++){[H,V,j]=Q[te];let ie=v[H]?.includes(F)==!0;j<=q&&ue.push(H+ +ie*E),te=Q.findIndex(se=>se[0]==V)}v.push(ue)}let C=[];{let F=0,k=0,Q,H,V=h==3;for(let j=0;j<=s;j++){Q=j*(j+1)/2,H=(j+1)*(j+2)/2;for(let q=0;q<s-j;q++)[F,k]=[Q+q+j+2,H+q+j+3],C.push(Q,H,...V?[k,Q]:[F,H],k,F),[Q,H]=[F,k];C.push(Q,H,Q+s+2)}}let P=p.clone(),D=p.clone(),L=p.clone(),I=p.clone(),B=p.clone(),N=[],W=T(M.length,()=>T(h,()=>p.clone()));for(let F=0;F<M.length;F++){p.copy(M[F]).normalize(),P.copy(p).multiplyScalar(y);let k=v[F];for(let ue=0;ue<k.length;ue++){let te=k[ue],Z=k[(ue+1)%h];m.setFromPointsAndIndices(M,F,te%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=[],H=[],V=[],j=new S;s==0&&[...W[F]].reduce((ue,te)=>ue.add(te),j).multiplyScalar(1/h);for(let ue=0;ue<h;ue++){let te=[],Z=(ue-1+h)%h,Y=W[F][Z],ie=W[F][ue];p.copy(Y).sub(P),f.copy(ie).sub(P);let se=P.angleTo(p),oe=p.angleTo(f),Te=Math.cos(se)*g;s==0?D.copy(j):D.copy(P).setLength(y+Te),H.push(Te);let pe=[D,Y,ie];for(let ve=0;ve<2;ve++){let xe=pe[ve],he=pe[ve+1];I.subVectors(xe,P),B.subVectors(he,P),L.crossVectors(I,B).normalize();for(let De=0;De<x;De++){let Be=[se,oe][ve]*De/x;p.copy(I).applyAxisAngle(L,Be).add(P),Q.push(p.clone()),ve&&(w(p,P),te.push([De==0?xe:p.clone(),b.clone()]))}ve&&(w(he,P),te.push([he,b.clone()]))}V.push(te)}N.push(V);let q=2*x,U=2;for(let ue=0;ue<h;ue++){let te=q*ue,Z=q*((ue+1)%h),Y=[Q[te]];for(let se=1;se<x;se++){I=Q[te+se],B=Q[Z+se],Y.push(I);for(let oe=1,Te=se-U+1;oe<=Te;oe++)p.lerpVectors(I,B,oe/(Te+1)),p.sub(P).setLength(H[ue]).add(P),Y.push(p.clone());Y.push(B)}for(let se=0;se<x;se++)Y.push(Q[se+x+te]);Y.push(Q[Z+x]);let ie=C.map(se=>Y[se]);o.push(...ie.map(se=>[se.x,se.y,se.z]).flat()),c.push(...ie.map(se=>(w(se,P),[b.x,b.y,b.z])).flat())}}let X=[];for(let F=0;F<v.length;F++)for(let k=0;k<h;k++){let Q=v[F][k];if(Q<E){let H=v[Q].findIndex(q=>q%E==F),V=N[F][k],j=N[Q][H];for(let q=0;q<x;q++){let U=V[q],ue=j[x-q],te=V[q+1],Z=j[x-(q+1)];[U,ue,te,te,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(V[0][0],j[x][0],V[x][0],j[0][0])}}for(;X.length;){let F,k,Q,H;[F,k]=X.splice(0,2);let V=[F];for(;F!=k;)V.push(k),Q=X.indexOf(k),H=Q%2,k=X.splice(Q-H,2)[1-H];b.subVectors(V[0],V[1]).cross(p.subVectors(V[0],V[2])).normalize();let j=b.dot(V[0])<0;j&&b.negate();for(let q=1;q<=V.length-2;q++)[V[q+ +j],V[q+1-+j],V[0]].forEach(U=>{o.push(U.x,U.y,U.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,p=new S,f=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]),p.set(o[M+3],o[M+4],o[M+5]),f.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(p).add(f).divideScalar(3);let E=w(m);b(g,v+0,h,E),b(y,v+2,p,E),b(x,v+4,f,E)}for(let M=0;M<a.length;M+=6){let v=a[M+0],E=a[M+2],C=a[M+4],P=Math.max(v,E,C),D=Math.min(v,E,C);P>.9&&D<.1&&(v<.2&&(a[M+0]+=1),E<.2&&(a[M+2]+=1),C<.2&&(a[M+4]+=1))}function w(M){return Math.atan2(M.z,-M.x)}function T(M){return Math.atan2(-M.y,Math.sqrt(M.x*M.x+M.z*M.z))}}}static fromJSON(e){return new _s(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 nd(e*.5,i,s):new _a(e*.5,r);return o.scale(1,t/e,A/e),Object.assign(o,{userData:{...n,type:"DodecahedronGeometry"}})}},nd=class extends _s{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 nd(e.radius,e.corner,e.cornerSides)}};var rd=1e-12,$l=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 $l(this.position).copy(this)}toJSON(){return[this.position.x,this.position.y]}},ec=class extends $l{constructor(t){super(t.position);this.parent=t}copy(t){return super.copy(t),this}clone(){return new ec(this.parent).copy(this)}},br=class extends $l{constructor(t,A){super(A);this.controls=[];this.roundness=0;this.areControlsDirectionsMirrored=!0;this.uuid=t,this.controls.push(new ec(this),new ec(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,tc=new G,Fp=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,tc.subVectors(n.v1,n.v0).multiplyScalar(2/3));let t=new G;return t.addVectors(n.v2,Fp.subVectors(n.v1,n.v2).multiplyScalar(2/3)),new XA(n.v0,e,t,n.v2)}function id(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 tc.copy(e).sub(n).cross(Fp.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),id(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=tc.subVectors(e,n).multiplyScalar(r).add(n),s=Fp.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=tc,u=Rs(c,t);o.push(u);for(let d=0;d<=u;d++)if(c instanceof XA||c instanceof Bn||c instanceof QA){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=tc,d=Rs(l,A);o.push(d);for(let h=0;h<=d;h++)if(l instanceof XA||l instanceof Bn||l instanceof QA){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=Rs(s.roundedCurveCorner,e)*.5;r>0&&(A[r-1]+=a),o+=a}s.curveAfter!==void 0&&(o+=Rs(s.curveAfter,e)),A.push(o)}return n.length>0&&t&&n[0].roundedCurveCorner!==void 0&&(A[n.length-1]+=Rs(n[0].roundedCurveCorner,e)*.5),A}function Rs(n,e=12){return n&&n instanceof uo?e*2:n&&(n instanceof QA||n instanceof pu)?1:n&&n instanceof Da?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=Rs(o,t),c=tc;for(let l=0;l<=a;l++)if(o instanceof XA||o instanceof Bn||o instanceof QA){if(o.getPoint(l/a,c),r!==void 0&&e4(r,c,rd))continue;r===void 0&&(r=Fp),r.copy(c),n.push(c.x,c.y),i++}}return id(n[0],n[n.length-2],rd)&&id(n[1],n[n.length-1],rd)&&(n.pop(),n.pop()),A&&i>1&&!(id(n[i-1],n[1],rd)&&id(n[i-2],n[0],rd))&&(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 Di{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=Rs(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,p=s.roundedCurveAfter,f=u.getLength(),m=d.getLength(),g=Math.min(c,f*.499),y=Math.min(c,m*.499),x=Math.min(g,y),b=1-x/f,w=x/m,T=u.getPointAt(b,h0),M=d.getPointAt(w,A4);this._subSplitCurve(u,h,b,T,void 0),this._subSplitCurve(d,p,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 XA(T.clone(),I.clone(),B.clone(),M.clone())}else v=new Bn(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 QA)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 XA&&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 Bn&&(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 XA?(h=this.createPoint(u.v0),h.controls[1].position.copy(u.v1)):u instanceof QA&&(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 XA?c.v3.equals(s[0].position)&&(s[0].controls[0].position.copy(c.v2),l=!0):c instanceof QA&&c.v2.equals(s[0].position)&&(l=!0),this.isClosed=l,s};return this.points=r(t.curves),t instanceof Di&&(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),p=l*u-l*h-u*d;p<0&&(p=0),p/=l*h+u*d,p=Math.sqrt(p)*(a===c?-1:1);let f=p*r/i*o,m=p*-i/r*s,g=f+(n+t)/2,y=m+(e+A)/2,x=(s-f)/r,b=(o-m)/i,w=(-s-f)/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:p}=d,{centerx:f,centery:m}=d,g=Math.abs(p)/(p0/4);Math.abs(1-g)<1e-7&&(g=1);let y=Math.max(Math.ceil(g),1);p/=y;for(let x=0;x<y;x++)a.push(o4(h,p)),h+=p;return a.map(x=>{let{x:b,y:w}=f0(x[0],r,i,f,m),{x:T,y:M}=f0(x[1],r,i,f,m),{x:v,y:E}=f0(x[2],r,i,f,m);return{x1:b,y1:w,x2:T,y2:M,x:v,y:E}})}var It;(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"})(It||(It={}));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 Ge=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}(),sd=function(){function n(){this.next=null,this.prev=null,this.anEdge=null,this.trail=null,this.n=0,this.marked=!1,this.inside=!1}return n}(),Gp=function(){function n(e){this.side=e,this.next=null,this.Org=null,this.Sym=null,this.Onext=null,this.Lnext=null,this.Lface=null,this.activeRegion=null,this.winding=0}return Object.defineProperty(n.prototype,"Rface",{get:function(){return this.Sym.Lface},set:function(e){this.Sym.Lface=e},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"Dst",{get:function(){return this.Sym.Org},set:function(e){this.Sym.Org=e},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"Oprev",{get:function(){return this.Sym.Lnext},set:function(e){this.Sym.Lnext=e},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"Lprev",{get:function(){return this.Onext.Sym},set:function(e){this.Onext.Sym=e},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"Dprev",{get:function(){return this.Lnext.Sym},set:function(e){this.Lnext.Sym=e},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"Rprev",{get:function(){return this.Sym.Onext},set:function(e){this.Sym.Onext=e},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"Dnext",{get:function(){return this.Sym.Onext.Sym},set:function(e){this.Sym.Onext.Sym=e},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"Rnext",{get:function(){return this.Sym.Lnext.Sym},set:function(e){this.Sym.Lnext.Sym=e},enumerable:!0,configurable:!0}),n}(),Ac=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 Ac,t=new sd,A=new Gp(0),r=new Gp(1);e.next=e.prev=e,e.anEdge=null,t.next=t.prev=t,A.next=A,A.Sym=r,r.next=r,r.Sym=A,this.vHead=e,this.fHead=t,this.eHead=A,this.eHeadSym=r}return n.prototype.makeEdge_=function(e){var t=new Gp(0),A=new Gp(1);e.Sym.side<e.side&&(e=e.Sym);var r=e.Sym.next;return A.next=r,r.Sym.next=t,t.next=e,e.Sym.next=A,t.Sym=A,t.Onext=t,t.Lnext=A,t.Org=null,t.Lface=null,t.winding=0,t.activeRegion=null,A.Sym=t,A.Onext=A,A.Lnext=t,A.Org=null,A.Lface=null,A.winding=0,A.activeRegion=null,t},n.prototype.splice_=function(e,t){var A=e.Onext,r=t.Onext;A.Sym.Lnext=t,r.Sym.Lnext=e,e.Onext=r,t.Onext=A},n.prototype.makeVertex_=function(e,t,A){var r=e;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 Ac,t=new Ac,A=new sd,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 Ac;this.makeVertex_(i,t,e.Org),e.Org.anEdge=e}if(!A){var s=new sd;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 sd;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 Ac;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 sd;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&&Ge.vertCCW(A.Lprev.Org,A.Org,i.Lnext.Lnext.Org)&&Ge.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?Ge.vertLeq(i.Org,s.Org)?Ge.edgeSign(s.Dst,i.Org,s.Org)<=0:Ge.edgeSign(i.Dst,s.Org,i.Org)>=0:Ge.edgeSign(s.Dst,r,s.Org)<=0;if(s.Dst===r)return Ge.edgeSign(i.Dst,r,i.Org)>=0;var o=Ge.edgeEval(i.Dst,r,i.Org),a=Ge.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 It.ODD:return(t&1)!==0;case It.NONZERO:return t!==0;case It.POSITIVE:return t>0;case It.NEGATIVE:return t<0;case It.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(Ge.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=Ge.vertL1dist(t,e),i=Ge.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(Ge.vertLeq(r.Org,i.Org)){if(Ge.edgeSign(i.Dst,r.Org,i.Org)>0)return!1;Ge.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(Ge.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(!Ge.vertEq(r.Dst,i.Dst)),Ge.vertLeq(r.Dst,i.Dst)){if(Ge.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(Ge.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 Ac,h,p;if(je(!Ge.vertEq(c,a)),je(Ge.edgeSign(a,e.event,s)<=0),je(Ge.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(Ge.vertLeq(s,o)){if(Ge.edgeSign(c,s,o)>0)return!1}else if(Ge.edgeSign(a,o,s)<0)return!1;return n.debugEvent(e),Ge.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)),Ge.vertLeq(d,e.event)&&(d.s=e.event.s,d.t=e.event.t),h=Ge.vertLeq(s,o)?s:o,Ge.vertLeq(h,d)&&(d.s=h.s,d.t=h.t),Ge.vertEq(d,s)||Ge.vertEq(d,o)?(n.checkForRightSplice(e,t),!1):!Ge.vertEq(a,e.event)&&Ge.edgeSign(a,e.event,d)>=0||!Ge.vertEq(c,e.event)&&Ge.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),p=n.regionBelow(t).eUp.Rprev,A.eUp=i.Oprev,i=n.finishLeftRegions(e,A,null),n.addRightEdges(e,t,i.Onext,r.Rprev,p,!0),!0):(Ge.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),Ge.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),Ge.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),Ge.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}Ge.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,Ge.vertEq(r.Org,A)){je(!1),n.spliceMergeVertices(e,r,A.anEdge);return}if(!Ge.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),Ge.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,Ge.edgeSign(s.Dst,t,s.Org)===0){n.connectLeftDegenerate(e,A,t);return}if(i=Ge.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,Ge.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,Ge.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||!Ge.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=It.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],p=[null,null,null],f=this.mesh.vHead;t=f.next;for(var m=0;m<3;++m)i=t.coords[m],c[m]=i,p[m]=t,a[m]=i,h[m]=t;for(t=f.next;t!==f;t=t.next)for(var g=0;g<3;++g)i=t.coords[g],i<c[g]&&(c[g]=i,p[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=p[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=f.next;t!==f;t=t.next)u[0]=t.coords[0]-r.coords[0],u[1]=t.coords[1]-r.coords[1],u[2]=t.coords[2]-r.coords[2],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(;Ge.vertLeq(A.Dst,A.Org);A=A.Lprev);for(;Ge.vertLeq(A.Org,A.Dst);A=A.Lnext);r=A.Lprev;for(var i=void 0;A.Lnext!==r;)if(Ge.vertLeq(A.Dst,r.Org)){for(;r.Lnext!==A&&(Ge.edgeGoesLeft(r.Lnext)||Ge.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&&(Ge.edgeGoesRight(A.Lprev)||Ge.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 p=a;p<A;++p)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=It.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 Go(n){var e=n.windingRule,t=e===void 0?It.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,p=h===void 0?!0:h,f=n.debug,m=f===void 0?!1:f;if(!d&&p)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,p),{vertices:g.vertices,vertexIndices:g.vertexIndices,vertexCount:g.vertexCount,elements:g.elements,elementCount:g.elementCount,mesh:m?g.mesh:void 0}}}var Nne=It.ODD,Fne=It.NONZERO,Gne=It.POSITIVE,Une=It.NEGATIVE,kne=It.ABS_GEQ_TWO,Vne=bA.POLYGONS,zne=bA.CONNECTED_POLYGONS,Hne=bA.BOUNDARY_CONTOURS;var nc=class extends Pe{constructor(t,A=12,r={}){super();this.type="ShapeGeometry";this.windingRule=It.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:It.ODD,elementType:bA.POLYGONS,polySize:3,vertexSize:2,strict:!0},r);let i=this._shape.extractShapePointsToFlatArray([],this._curveSegments),s=this._shape.shapeHoles.map(p=>p.extractShapePointsToFlatArray([],this._curveSegments)),o,a=!0,c=!0,l,u;for(let p=0,f=i.length/2;p<f;p++){let m=p*2,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=Go({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 Ne(new Float32Array(d*3),3),this._normalAttribute=new Ne(new Float32Array(d*3),3),this._uvAttribute=new Ne(new Float32Array(d*2),2),this._indexAttribute=new Ne(new Uint32Array(h*3),1),o){let p=1/0,f=-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<p&&(p=M),M>f&&(f=M),v<m&&(m=v),v>g&&(g=v)}let y=f-p,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-p)/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 nc(this._shape,this._curveSegments);return t.userData=So(this.userData),t}};var Up=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*Up.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*Up.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)}},od=Up;od.eSize=(3+3+2)*Float32Array.BYTES_PER_ELEMENT;var g0=(n,e)=>([t,A])=>(A<t&&(A+=e),(n>=t?n:n+e)<=A),rc=class extends Pe{constructor(t,A,r=0,i=12,s=3,o=It.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=Go({windingRule:o,elementType:bA.BOUNDARY_CONTOURS,vertexSize:2,strict:!0,contours:[a]}),u=Go({windingRule:It.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,p=-1/0,f=1/0,m=-1/0;for(let v=0,E=l.vertexCount;v<E;v++){let C=v*2,P=l.vertices[C+0],D=l.vertices[C+1];P<h&&(h=P),P>p&&(p=P),D<f&&(f=D),D>m&&(m=D)}this._minX=h,this._minY=f,this._width=p-h,this._height=m-f;let g=l.vertexCount*2*(2+this._bevelSegments);this._buffer=new od(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 H=B-P,V=l.vertices[N*2+0],j=l.vertices[N*2+1],q=l.vertices[B*2+0],U=l.vertices[B*2+1],ue=l.vertices[W*2+0],te=l.vertices[W*2+1],Z=q-V,Y=U-j,ie=Math.sqrt(Z*Z+Y*Y);Z/=ie,Y/=ie;let se=q-ue,oe=U-te,Te=Math.sqrt(se*se+oe*oe);se/=Te,oe/=Te,I.normals[H*2+0]=-oe,I.normals[H*2+1]=se,I.concave[H]=Z*oe-Y*se>0;let pe=l.vertexIndices[B];if(Array.isArray(pe))I.continuous[H]=!1;else{let[ve,xe]=this._shape.getCurveIndexFromVertexId(pe-1,!0);if(xe>0&&xe<1)I.continuous[H]=!0;else{let he=xe===1?ve+1:ve-1;he=(he+X)%X;let De=xe===1?0:1,Be=this._shape.roundedCurves[ve].getTangent(xe),Xe=this._shape.roundedCurves[he].getTangent(De);I.continuous[H]=Be.dot(Xe)>.95}}E&&(I.normals[H*2+0]*=-1,I.normals[H*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((H,V)=>[V,V]),elements:[0,D],elementCount:1,mesh:null},reverseMap:[],insetPoints:l.vertices.slice(P*2,L*2)});for(let H=1;H<=this._bevelSegments;H++){let V=H/this._bevelSegments*Math.PI/2,j=(1-Math.cos(V))*this._bevelSize,q=[],U=[],ue=[],te=[],Z=0;for(let ie=0;ie<D;ie++){let se=ie*2,oe=(ie-1+D)%D*2,Te=l.vertices[I.start*2+se+0],pe=l.vertices[I.start*2+se+1],ve=-I.normals[oe+0]*j,xe=-I.normals[oe+1]*j,he=-I.normals[se+0]*j,De=-I.normals[se+1]*j;if(I.concave[ie]||!I.concave[ie]&&E){let Be=Math.atan2(xe,ve),Xe=Math.atan2(De,he);Xe>Be&&(Xe-=Math.PI*2);let R=Xe-Be;if(I.continuous[ie]||E){let O=Be+R/2,J=Math.cos(O)*j,le=Math.sin(O)*j;q[2*Z+0]=Te+J*(E?-1:1),q[2*Z+1]=pe+le*(E?-1:1),te[Z]=ie,Z++}else{let O=Math.max(1,Math.floor(i/4*Math.abs(R)/Math.PI));for(let J=0;J<=O;J++){let le=Be+R*(J/O),fe=Math.cos(le)*j,Ee=Math.sin(le)*j;q[2*Z+0]=Te+fe,q[2*Z+1]=pe+Ee,te[Z]=ie,Z++}}}else q[2*Z+0]=Te+ve,q[2*Z+1]=pe+xe,te[Z]=ie,U[ie]=Z,Z++,q[2*Z+0]=Te,q[2*Z+1]=pe,te[Z]=ie,Z++,q[2*Z+0]=Te+he,q[2*Z+1]=pe+De,te[Z]=ie,ue[ie]=Z,Z++}let Y=Go({windingRule:It.POSITIVE,elementType:bA.BOUNDARY_CONTOURS,vertexSize:2,strict:!0,contours:[q],edgeCreateCallback:ie=>{let oe=ie.Org.idx,Te=te[oe],pe=te[(oe+1)%te.length];ie.idx=[Te,pe],ie.Sym.idx=[pe,Te]},vertexIdCallback:ie=>{let se=ie.Lprev.idx;return[se?se[1]:0,ie.idx[0]]}});if(!Y)throw console.log("Error"),new Error(`error generating bevel geometry for ${H}'th loop`);if(!Y.vertexCount)break;for(let ie=0;ie<Y.vertexIndices.length;ie++){let[se,oe]=Y.vertexIndices[ie];if(se===oe)continue;let Te=oe;oe<se&&(Te+=D);for(let pe=se;pe<Te;pe++){let ve=pe%D,xe=(pe+1)%D;if(!I.continuous[ve]||!I.continuous[xe]){Y.vertexIndices[ie]=[se,ve],Y.vertexIndices.splice(ie+1,0,[xe,oe]),Y.vertices.splice((ie+1)*2,0,Y.vertices[ie*2],Y.vertices[ie*2+1]);break}}}F.push({bevelI:H,angle:V,size:j,boundary:Y,reverseMap:te,insetPoints:q})}let k=(H,V,j)=>{let q=0,U=H.boundary.vertexIndices.length;for(;q<U&&j(H.boundary.vertexIndices[V]);)V=(V+1)%U,q++;return q},Q=y.length;for(let H=1;H<F.length;H++){let V=F[H-1],j=F[H],q=V.boundary.vertexIndices.length,U=j.boundary.vertexIndices.length;if(!q||!U)break;let ue=I.concave.length,te=0,Z=g0(te,D);for(;!V.boundary.vertexIndices.filter(Z).length||!j.boundary.vertexIndices.filter(Z).length;)te++,Z=g0(te,D);let Y=V.boundary.vertexIndices.findIndex(Z),ie=j.boundary.vertexIndices.findIndex(Z);do Y=(Y+1)%q;while(Z(V.boundary.vertexIndices[Y]));do ie=(ie+1)%U;while(Z(j.boundary.vertexIndices[ie]));te=(te+1)%D;let se=te,oe=this.buildBevelVert(I,V,(Y-1+q)%q),Te=this.buildBevelVert(I,j,(ie-1+U)%U),pe=oe,ve=Te,xe,he,De=!1;do{Z=g0(te,D);let Be=k(V,Y,Z),Xe=k(j,ie,Z),R=De;if(De=!1,Be&&!Xe){for(let O=0;O<Be;O++)xe=this.buildBevelVert(I,V,(Y+O)%q,O/(Be-1)),y.push(pe.topN,xe.topP,ve.topN),y.push(xe.bottomP,pe.bottomN,ve.bottomN),pe=xe;De=!0}else if(!Be&&Xe)for(let O=0;O<Xe;O++)he=this.buildBevelVert(I,j,(ie+O)%U,O/(Xe-1)),y.push(ve.topN,pe.topP,he.topP),y.push(pe.bottomP,ve.bottomN,he.bottomP),ve=he;else if(Be&&Xe)if(xe=this.buildBevelVert(I,V,Y,0),he=this.buildBevelVert(I,j,ie,0),R?(y.push(pe.topN,he.topP,ve.topN),y.push(pe.topN,xe.topP,he.topP),y.push(he.bottomP,pe.bottomN,ve.bottomN),y.push(he.bottomP,xe.bottomP,pe.bottomN)):(y.push(ve.topN,pe.topN,xe.topP),y.push(ve.topN,xe.topP,he.topP),y.push(xe.bottomP,pe.bottomN,ve.bottomN),y.push(xe.bottomP,ve.bottomN,he.bottomP)),pe=xe,ve=he,Be===Xe)for(let O=1;O<Be;O++)xe=this.buildBevelVert(I,V,(Y+O)%q,O/(Be-1)),he=this.buildBevelVert(I,j,(ie+O)%U,O/(Xe-1)),y.push(pe.topN,xe.topP,ve.topN),y.push(ve.topN,xe.topP,he.topP),y.push(xe.bottomP,pe.bottomN,ve.bottomN),y.push(xe.bottomP,ve.bottomN,he.bottomP),pe=xe,ve=he;else if(Be>Xe){let O=Be/Xe,J=0;for(let le=1;le<Be;le++)xe=this.buildBevelVert(I,V,(Y+le)%q,le/(Be-1)),y.push(pe.topN,xe.topP,ve.topN),y.push(xe.bottomP,pe.bottomN,ve.bottomN),pe=xe,le>(J+1)*O&&(J++,he=this.buildBevelVert(I,j,(ie+J)%U,J/(Xe-1)),y.push(ve.topN,xe.topP,he.topP),y.push(xe.bottomP,ve.bottomN,he.bottomP),ve=he)}else{let O=Xe/Be,J=0;for(let le=1;le<Xe;le++)he=this.buildBevelVert(I,j,(ie+le)%U,le/(Xe-1)),y.push(ve.topN,xe.topP,he.topP),y.push(xe.bottomP,ve.bottomN,he.bottomP),ve=he,le>(J+1)*O&&(J++,xe=this.buildBevelVert(I,V,(Y+J)%q,J/(Be-1)),y.push(pe.topN,xe.topP,ve.topN),y.push(xe.bottomP,pe.bottomN,ve.bottomN),pe=xe)}Y=(Y+Be)%q,ie=(ie+Xe)%U,te=(te+1)%ue}while(te!==se)}{let H=F[0];for(let V=0,j=H.boundary.vertexCount;V<j;V++){let q=this.buildBevelVert(I,H,V),U=this.buildBevelVert(I,H,(V+1)%j);y.push(U.topP,q.topN,q.bottomN),y.push(U.topP,q.bottomN,U.bottomP)}}if(E){let H=[];for(let V=y.length-1;V>=Q+2;V-=3){let j=y[V-2],q=y[V-1],U=y[V-0];H.push(U,q,j)}y.splice(Q,y.length-Q,...H)}if(E){let H=[];for(let V=F[F.length-1].boundary.vertices.length-1;V>=1;V-=2){let j=F[F.length-1].boundary.vertices[V-1],q=F[F.length-1].boundary.vertices[V-0];H.push(j,q)}x.push(H)}if(!E){let H=F[F.length-1],V=Go({windingRule:F.length>1?It.POSITIVE:It.ODD,elementType:bA.POLYGONS,vertexSize:2,strict:!0,contours:[H.insetPoints,...x]});if(!V)throw new Error("Error generating geometry for surface");c.length===0&&Object.assign(this,{capStartIndex:y.length});for(let j=0;j<V.elementCount*3;j+=3){let q=this.buildSurfaceVert(V,V.elements[j+0]),U=this.buildSurfaceVert(V,V.elements[j+1]),ue=this.buildSurfaceVert(V,V.elements[j+2]);y.push(q.top,U.top,ue.top),y.push(ue.bottom,U.bottom,q.bottom)}}this.vertexCache={}}this._buffer.shrink();let b=new Ne(Uint32Array.from(y),1),w=new Ne(this._buffer.positions,3),T=new Ne(this._buffer.normals,3),M=new Ne(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),p=Math.sin(A.angle),f=r*2,m=c*2,g=l*2,y=A.boundary.vertices[f+0],x=A.boundary.vertices[f+1],b=(1-p)*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]=p,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]=-p,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]=p,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]=-p,this._buffer.uvs[L+2]=T,this._buffer.uvs[L+3]=w),this.vertexCache[s]=I,I}clone(){let t=new rc(this._shape,this._depth,this._bevel,this._curveSegments,this._bevelSegmentsInput);return t.userData=So(this.userData),t}};var Tn=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:It.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 nc(n.shape,r,{windingRule:s}):o=new rc(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=Tn.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(ic(e,t));for(let c=0,l=A.length;c<l;c++){let u=A[c],d=n.points[c],h=ic(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(ic(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(ic(c,l))}return e<QE?i>0?ZE(n,A,r,i):n.addPoint(ic(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(kp(r-e,i,r-e,i-a,r-e,i+a)),n.addPoint(kp(r,i+t,r-o,i+t,r+o,i+t)),n.addPoint(kp(r+e,i,r+e,i+a,r+e,i-a)),n.addPoint(kp(r,i-t,r+o,i-t,r-o,i-t)),A>0&&JE(n,e,t,A)}function ic(n,e){return new br(Ve.generateUUID(),new G(n,e))}function kp(n,e,t,A,r,i){let s=ic(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 Uo(!1,e,t,A,r,i,s,o,a,c,l,u);return Object.assign(d,{userData:{...n,type:"HelixGeometry"}})}},Uo=class extends Pe{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,h=!1){super();let p=e&&s===1;p&&(d=0),u>100&&(u=100);let f=()=>new S,m=new S,g=f(),y=f(),x=f(),b,w,T,M,v,E,C,P,D=f(),L=f(),I=f(),B=f(),N=f(),W=f(),X=f(),F=f(),k=A-2*a+.001,Q=k/s,H=Math.ceil(o*s),V=H+1,j=k/H,q=-k/2,U=l+1,ue=2*Math.PI/l,te=Math.PI/2/d,Z=.01,Y=Math.min((1-u/100)*a,a-Z),ie=a-Y,se=0,oe=2,Te=d*oe+oe,pe=U*Te/oe,ve=pe+U*V,xe=U*(V+Te),[he,De,Be]=[3,3,2].map(z=>Array(xe*z).fill(0)),Xe=[],R=i-a;function O(z,ge){let ye=Math.PI/2;E=ge*j,P=2*Math.PI*(E%Q)/Q+ye,E+=q,C=Math.sin(P)*R,v=Math.cos(P)*R,e?z.set(v,C,E):z.set(v,E,C)}O(m,-1e-10),O(g,0),D.copy(m),O(m,1);let J=m.distanceTo(g),le=p?0:ie+Y,fe=J*H+2*le,Ee=Y,ke=fe-le;for(let z=0;z<=H;z++){O(y,z),F.subVectors(y,D).normalize(),D.copy(y),W.copy(y).setComponent(+e+1,0).normalize(),X.crossVectors(F,W).normalize();let ge=z===0,ye=z===H,Ke=ge?3*Math.PI/2:te,Re=ge?Ee:ke,Je=ge?U:ve,be=ge?0:xe-U,$e=F.clone().multiplyScalar(ge?-ie:ie).add(y),wt=F.clone().multiplyScalar(ge?-1:1).normalize();for(let st=0;st<U;st++){let MA=st*ue;if(L.addVectors(m.copy(W).multiplyScalar(a*Math.cos(MA)),g.copy(X).multiplyScalar(a*Math.sin(MA))),I.copy(L).normalize(),ge||ye){p||(se=be+st,[0,1,2].forEach(Bt=>{he[se*3+Bt]=$e.getComponent(Bt),De[se*3+Bt]=wt.getComponent(Bt)}),Be[se*2]=+ye,Be[se*2+1]=st/l),g.copy(I).multiplyScalar(Y),x.addVectors(y,g);for(let Bt=0;Bt<d;Bt++){let ta=Bt*te+Ke;B.addVectors(m.copy(F).multiplyScalar(ie*Math.sin(ta)),g.copy(I).multiplyScalar(ie*Math.cos(ta))),N.copy(B).normalize(),g.addVectors(x,B),B.normalize(),se=Je+Bt*U+st,[0,1,2].forEach(gi=>{he[se*3+gi]=g.getComponent(gi),De[se*3+gi]=N.getComponent(gi)});let mg=+ge+Math.sin(ta);Be[se*2]=(Re+ie*mg)/fe,Be[se*2+1]=st/l}}g.addVectors(y,L),se=pe+z*U+st,[0,1,2].forEach(Bt=>{he[se*3+Bt]=g.getComponent(Bt),De[se*3+Bt]=I.getComponent(Bt)}),Be[se*2]=(le+z*J)/fe,Be[se*2+1]=st/l}}let ne=V+2*d+oe,Fe=1,[_e,Oe]=[+p,ne-1];h&&(Oe-=1);for(let z=_e;z<=Oe-1;z++){let ge=p&&z===Oe-1;for(let ye=0;ye<U-1;ye++)b=z*U+ye,w=b+1,T=(ge?ye:b)+U,M=(ge?ye+1:w)+U,z===0?Xe.push(w,M,T):z===ne-2?Xe.push(b,w,T):Xe.push(b,w,T,w,M,T)}this.setIndex(Xe),this.setAttribute("position",new Se(he,3)),this.setAttribute("normal",new Se(De,3)),this.setAttribute("uv",new Se(Be,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 ad(e*.5,i,s):new Ba(e*.5,r);return o.scale(1,t/e,A/e),Object.assign(o,{userData:{...n,type:"IcosahedronGeometry"}})}},ad=class extends _s{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 ad(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 Di;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 Ia(r.extractPoints(A).shape,t);return i.rotateZ(Math.PI),Object.assign(i,{userData:{...n,type:"LatheGeometry"}})}};var Jr=new de,y0=new dt,Vp=new S,Bs=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,p,f){let m=o===void 0?[]:[t.colors[d].clone(),t.colors[h].clone(),t.colors[p].clone()],g=s===void 0?[]:[new S().fromBufferAttribute(s,d),new S().fromBufferAttribute(s,h),new S().fromBufferAttribute(s,p)],y=new sc(d,h,p,g,m,f);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,p)]),c!==void 0&&t.faceVertexUvs[1].push([new G().fromBufferAttribute(c,d),new G().fromBufferAttribute(c,h),new G().fromBufferAttribute(c,p)])}let u=e.groups;if(u.length>0)for(let d=0;d<u.length;d++){let h=u[d],p=h.start,f=h.count;for(let m=p,g=p+f;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(Vp).negate(),this.translate(Vp.x,Vp.y,Vp.z),this}normalize(){this.computeBoundingSphere();let e=this.boundingSphere.center,t=this.boundingSphere.radius,A=t===0?1:1/t,r=new 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 Bs;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 f=o[d].clone();t!==void 0&&f.applyMatrix4(t),s.push(f)}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 p=c[d],f,m,g=p.vertexNormals,y=p.vertexColors,x=new sc(p.a+i,p.b+i,p.c+i);x.normal.copy(p.normal),r!==void 0&&x.normal.applyMatrix3(r).normalize();for(let b=0,w=g.length;b<w;b++)f=g[b].clone(),r!==void 0&&f.applyMatrix3(r).normalize(),x.vertexNormals.push(f);x.color.copy(p.color);for(let b=0,w=y.length;b<w;b++)m=y[b],x.vertexColors.push(m.clone());x.materialIndex=p.materialIndex+A,a.push(x)}for(let d=0,h=e.faceVertexUvs.length;d<h;d++){let p=e.faceVertexUvs[d];this.faceVertexUvs[d]===void 0&&(this.faceVertexUvs[d]=[]);for(let f=0,m=p.length;f<m;f++){let g=p[f],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 p=this.parameters;for(let f in p)p[f]!==void 0&&(e[f]=p[f]);return e}let t=[];for(let p=0;p<this.vertices.length;p++){let f=this.vertices[p];t.push(f.x,f.y,f.z)}let A=[],r=[],i={},s=[],o={},a=[],c={};for(let p=0;p<this.faces.length;p++){let f=this.faces[p],m=!0,g=!1,y=this.faceVertexUvs[0][p]!==void 0,x=f.normal.length()>0,b=f.vertexNormals.length>0,w=f.color.r!==1||f.color.g!==1||f.color.b!==1,T=f.vertexColors.length>0,M=0;if(M=l(M,0,0),M=l(M,1,m),M=l(M,2,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(f.a,f.b,f.c),A.push(f.materialIndex),y){let v=this.faceVertexUvs[0][p];A.push(h(v[0]),h(v[1]),h(v[2]))}if(x&&A.push(u(f.normal)),b){let v=f.vertexNormals;A.push(u(v[0]),u(v[1]),u(v[2]))}if(w&&A.push(d(f.color)),T){let v=f.vertexColors;A.push(d(v[0]),d(v[1]),d(v[2]))}}function l(p,f,m){return m?p|1<<f:p&~(1<<f)}function u(p){let f=p.x.toString()+p.y.toString()+p.z.toString();return i[f]!==void 0||(i[f]=r.length/3,r.push(p.x,p.y,p.z)),i[f]}function d(p){let f=p.r.toString()+p.g.toString()+p.b.toString();return o[f]!==void 0||(o[f]=s.length,s.push(p.getHex())),o[f]}function h(p){let f=p.x.toString()+p.y.toString();return c[f]!==void 0||(c[f]=a.length/2,a.push(p.x,p.y)),c[f]}return e.data={},e.data.vertices=t,e.data.normals=r,s.length>0&&(e.data.colors=s),a.length>0&&(e.data.uvs=[a]),e.data.faces=A,e}clone(){return new Bs().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 p=e.faceVertexUvs[d];this.faceVertexUvs[d]===void 0&&(this.faceVertexUvs[d]=[]);for(let f=0,m=p.length;f<m;f++){let g=p[f],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 p={};if(p.name=i[d].name,i[d].vertices!==void 0){p.vertices=[];for(let f=0,m=i[d].vertices.length;f<m;f++)p.vertices.push(i[d].vertices[f].clone())}if(i[d].normals!==void 0){p.normals=[];for(let f=0,m=i[d].normals.length;f<m;f++)p.normals.push(i[d].normals[f].clone())}this.morphTargets.push(p)}let s=e.morphNormals;for(let d=0,h=s.length;d<h;d++){let p={};if(s[d].vertexNormals!==void 0){p.vertexNormals=[];for(let f=0,m=s[d].vertexNormals.length;f<m;f++){let g=s[d].vertexNormals[f],y={};y.a=g.a.clone(),y.b=g.b.clone(),y.c=g.c.clone(),p.vertexNormals.push(y)}}if(s[d].faceNormals!==void 0){p.faceNormals=[];for(let f=0,m=s[d].faceNormals.length;f<m;f++)p.faceNormals.push(s[d].faceNormals[f].clone())}this.morphNormals.push(p)}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 Pe,A=new Float32Array(e.vertices.length*3);if(t.setAttribute("position",new Ne(A,3).copyVector3sArray(e.vertices)),e.normals.length>0){let r=new Float32Array(e.normals.length*3);t.setAttribute("normal",new Ne(r,3).copyVector3sArray(e.normals))}if(e.colors.length>0){let r=new Float32Array(e.colors.length*3);t.setAttribute("color",new Ne(r,3).copyColorsArray(e.colors))}if(e.uvs.length>0){let r=new Float32Array(e.uvs.length*2);t.setAttribute("uv",new Ne(r,2).copyVector2sArray(e.uvs))}if(e.uvs2.length>0){let r=new Float32Array(e.uvs2.length*2);t.setAttribute("uv2",new Ne(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 Pe,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}};Bs.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,p=e.skinWeights,f=h.length===A.length,m=p.length===A.length;A.length>0&&t.length===0&&console.error("THREE.DirectGeometry: Faceless geometries are not supported.");for(let 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)}f&&this.skinIndices.push(h[y.a],h[y.b],h[y.c]),m&&this.skinWeights.push(p[y.a],p[y.b],p[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}},sc=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 zp(n,e,t,A,r){n.push(new sc(e,t,A,void 0,void 0,r))}function oc(n,e){return Math.abs(e-n)/2+Math.min(n,e)}function Hp(n,e,t,A){n.push([e.clone(),t.clone(),A.clone()])}var Wp=class{constructor(e=1){this.subdivisions=e}modify(e){e instanceof Pe?e=new Bs().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 p=[],f,m,g,y,x,b,w;for(let te of Array.from(h.keys())){for(m=h.get(te),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&&(f=a[g4(y,m4[o])],!(f!==m.a&&f!==m.b));o++);f&&t.add(f)}t.multiplyScalar(b),g.add(t),m.newEdge=p.length,p.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],f=E.a!==P?E.a:E.b,t.add(f);t.multiplyScalar(Number(v)),D.add(t),L.push(D)}let I=L.concat(p),B=L.length,N,W,X,F=[],k=[],Q,H,V,j,q=new G,U=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,zp(F,N,W,X,y.materialIndex),zp(F,y.a,N,X,y.materialIndex),zp(F,y.b,W,N,y.materialIndex),zp(F,y.c,X,W,y.materialIndex),u&&(Q=l[r],H=Q[0],V=Q[1],j=Q[2],q.set(oc(H.x,V.x),oc(H.y,V.y)),U.set(oc(V.x,j.x),oc(V.y,j.y)),ue.set(oc(H.x,j.x),oc(H.y,j.y)),Hp(k,q,U,ue),Hp(k,H,q,ue),Hp(k,V,U,q),Hp(k,j,ue,U));e.vertices=I,e.faces=F,u&&(e.faceVertexUvs[0]=k)}};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 Pe().copy(new DA(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 Pe().copy(new DA(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 Wp(r).modify(o).toBufferGeometry()):(o!==void 0&&(i=o),o=void 0,i.getAttribute("normal")===void 0&&i.computeVertexNormals()),o!==void 0&&Object.assign(i,{originalGeometry:o}),delete n.geometry,Object.assign(i,{userData:{...n,type:"NonParametricGeometry"}})}static loadFromUrl(n,e,t){new ka(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 f=0;f<A;f++){let m=h*f,g=u+Math.sin(m)*c,y=d+Math.cos(m)*l;a.addPoint(a.createPoint(g,y))}a.isClosed=!0;for(let f=0,m=a.points.length;f<m;f++)a.points[f].roundness=r;a.roundness=r,a.update();let p=Tn.create({shape:a,parameters:{roundness:r,depth:i,extrudeBevelSize:s,extrudeBevelSegments:o}});return Object.assign(p,{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 ld(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 Pe{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,p=Math.PI/A,f=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(f,-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 k=new S(E.x,E.y,0),Q=new S(Math.cos(m)*k.x,k.y,Math.sin(m)*k.x);L=k.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 k=d++,Q=[],H=w.clone(),V=I/Math.cos(Math.PI/A);H.x-=V;for(let j=0;j<A;j++){let q=j/A*Math.PI*2+p,U=new G(Math.sin(q),Math.cos(q));ld(H,U,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],k,Q[(j+1)%Q.length])}let W=[];{let k=new S,Q=new S,H=new S,V=new S,j=new S,q=new S;for(let U=0;U<A;U++){let ue=U/A*Math.PI*2+p,te=(U+.5)/A*Math.PI*2+p,Z=(U+1)/A*Math.PI*2+p,Y=new G(Math.sin(ue),Math.cos(ue)),ie=new G(Math.sin(te),Math.cos(te)),se=new G(Math.sin(Z),Math.cos(Z));ld(w,Y,Q),ld(w,se,H),ld(E,ie,k),w0(b,Q,H,B,B,V),c.push(V.x,V.y,V.z),w0(Q,b,H,B,I,j),c.push(j.x,j.y,j.z),w0(H,Q,b,I,B,q),c.push(q.x,q.y,q.z),l.push(k.x,k.y,k.z),l.push(k.x,k.y,k.z),l.push(k.x,k.y,k.z),u.push(0,0),u.push(0,0),u.push(0,0);let oe=d++,Te=d++,pe=d++;if(a.push(oe,Te,pe),s>0){{let he=Q.clone().add(H).multiplyScalar(.5),De=b.clone().sub(he).normalize(),Xe=x.clone().sub(he).normalize().add(De).normalize().multiplyScalar(-1),R=q.clone().sub(j);X(he,R,Xe,M.angle())}let ve,xe;{let he=new S;ld(C,se,he);let De=q.clone().add(V).multiplyScalar(.5);De=v4(De,H,b);let Be=q.clone().sub(V);[ve,xe]=X(De,Be,he,L,V.y)}{let he=ve,De=he.clone().setY(0).normalize(),Be=new S(0,-1,0),Xe=De.clone().cross(Be);F(he,De,Be,Xe)}W.concat(xe);{let he=M.angle(),De=Math.PI-he,Be=b.clone();Be.y-=s/Math.sin(he-Math.PI/2);let Xe=new S,R=[];for(let J=0;J<o;J++){let le=[],fe=Math.PI/2-De*J/o,Ee=Math.cos(fe),ke=Math.sin(fe),ne=te;for(let Fe=0;Fe<=J;Fe++){let _e=Math.cos(ne),Oe=Math.sin(ne);k.x=Ee*Oe,k.y=ke,k.z=Ee*_e,Xe.copy(Be).addScaledVector(k,s),c.push(Xe.x,Xe.y,Xe.z),l.push(k.x,k.y,k.z),u.push(0,0),le.push(d++),ne+=Math.PI*2/J/A}R.push(le)}xe.reverse(),R.push(xe);let O=R.length-1;for(let J=0;J<O;J++){let le=R[J],fe=R[J+1],Ee=le.length-1;a.push(fe[1],le[0],fe[0]);for(let ke=1;ke<=Ee;ke++)a.push(le[ke],le[ke-1],fe[ke]),a.push(fe[ke+1],le[ke],fe[ke])}}}}}this.setIndex(a),this.setAttribute("position",new Se(c,3)),this.setAttribute("normal",new Se(l,3)),this.setAttribute("uv",new Se(u,2));function X(k,Q,H,V,j){let q=-V/2,U=(Math.PI-V)/2,ue=Q.clone().normalize().cross(H);k.addScaledVector(H,-s/Math.sin(U));let te=new S,Z=new S,Y=1,ie=d,se=[];for(let oe=0;oe<=o;oe++){let Te=q+oe/o*V;Z.set(0,0,0),Z.addScaledVector(ue,Math.sin(Te)),Z.addScaledVector(H,Math.cos(Te));for(let pe=0;pe<=Y;pe++){let ve=pe/Y-.5;if(te.copy(k),te.addScaledVector(Q,ve),te.addScaledVector(Z,s),j!=null){let xe=Math.max(0,te.y-j);te.addScaledVector(Q,-xe/Q.y)}c.push(te.x,te.y,te.z),l.push(Z.x,Z.y,Z.z),u.push(0,0),pe===0&&se.push(d),d++}}for(let oe=0;oe<o;oe++)for(let Te=0;Te<Y;Te++){let pe=ie+Te+(Y+1)*oe,ve=pe+(Y+1),xe=ve+1,he=pe+1;a.push(pe,ve,he),a.push(ve,xe,he)}return[k.clone().addScaledVector(Q,.5),se]}function F(k,Q,H,V){let j=Math.PI/2,q=v.angle()-j,U=[],ue=new S,te=new S;for(let Y=0;Y<=o;Y++){let ie=[],se=Y/o;for(let oe=0;oe<=Y;oe++){let pe=((Y?oe/Y:0)-.5)*y,ve=Math.cos(pe),xe=Math.sin(pe),he=Math.atan(Math.tan(q)*ve),De=(j+he)*se,Be=Math.cos(De),Xe=Math.sin(De);ue.set(0,0,0),ue.addScaledVector(Q,Xe*ve),ue.addScaledVector(H,Be),ue.addScaledVector(V,Xe*xe),te.copy(k).addScaledVector(ue,s),c.push(te.x,te.y,te.z),l.push(ue.x,ue.y,ue.z),u.push(0,0),ie.push(d++)}U.push(ie)}let Z=U.length-1;for(let Y=0;Y<Z;Y++){let ie=U[Y],se=U[Y+1],oe=ie.length-1;a.push(ie[0],se[1],se[0]);for(let Te=1;Te<=oe;Te++)a.push(ie[Te-1],ie[Te],se[Te]),a.push(ie[Te],se[Te+1],se[Te])}}}};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 p=l.x,f=u.x,m=u.y,g=l.y;e.addPoint(e.createPoint(p,m)),e.addPoint(e.createPoint(f,m)),e.addPoint(e.createPoint(f,g)),e.addPoint(e.createPoint(p,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=Tn.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 po(.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 Pi(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 Pe{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=(te=0,Z=0,Y=0)=>new S(te,Z,Y),p=h(),f=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=(te,Z=!1)=>Math.sin(te-Math.PI/(1+ +Z)),E=(te,Z=!1)=>Math.cos(te-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),p.subVectors(w,T),f.subVectors(M,T);let D=Math.min(p.length(),f.length())*i/100,L=D*Math.tan(r/2),I=D/Math.cos(r/2),B=p.clone().normalize().add(f.normalize()).setLength(I).add(T);p.set(0,v(r,!0),E(r,!0)),u.push([M,p.clone()]);let N=(Math.PI-r)/s;for(let te=0;te<=s;te++){let Z=d+r+te*N;p.set(0,Math.sin(Z)*L,Math.cos(Z)*L),p.add(B),f.set(0,v(Z),E(Z)),u.push([p.clone(),f.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]),k=u[X-1][0].distanceTo(u[X][0]),Q=F+W*s+k;u[0].push(1);for(let te=0;te<=s;te++)u[te+1].push(1-(F+te*W)/Q);u[X].push(0);let[H,V,j]=u[0],q,U,ue;for(let te=1;te<u.length;te++)[q,U,ue]=u[te],o.push(x,H.y,H.z,x,q.y,q.z,b,H.y,H.z,b,H.y,H.z,x,q.y,q.z,b,q.y,q.z),a.push(0,V.y,V.z,0,U.y,U.z,0,V.y,V.z,0,V.y,V.z,0,U.y,U.z,0,U.y,U.z),c.push(0,j,0,ue,1,j,1,j,0,ue,1,ue),[H,V,j]=[q,U,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,p=0,f=s*Math.PI/360/r,m=Math.PI/2*3*-1,g=u*A/100,y=d*A/100;if(r===3&&A===50){f=2*Math.PI/r;for(let b=0;b<r;b++){let w=f*b,T=h+Math.sin(w)*u,M=p+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=p+Math.sin(m)*d;l.addPoint(l.createPoint(w,T)),m+=f,w=h+Math.cos(m)*g,T=p+Math.sin(m)*y,b<=r,l.addPoint(l.createPoint(w,T)),m+=f}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=Tn.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 Pi(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 Uo(!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 Na(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=Tn.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 Pe;return n.setAttribute("position",new Ne(new Float32Array([]),3)),n.setIndex(new Ne(new Uint16Array([]),1)),n}var w4=12,S4=1,ac=class extends Pe{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:p,charCoords:f}=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=>Tn.create({shape:w,parameters:{depth:s,extrudeBevelSegments:a,extrudeBevelSize:o,windingRule:s<=0?It.NONZERO:It.ODD,subdivisions:this.isLowResolution&&s>0?S4:w4}})),b=x.length?Gi(x):b4();b.translate(-m,g,0),this.dispose(),this.wrappedText=d,this.charCoords=f,this.charWidths=p,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 Pe,ac.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,lc=new Promise(n=>{mC=n}),pC=!1;async function gC(){if(pC)return;let e=!1?".":"https://unpkg.com/@splinetool/modelling-wasm@0.9.195/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 Vo(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 ka().parse(n);else{if(n.type==="SubdivGeometry")return new oA(n,t);if(n.type==="TextGeometry")return new ac(n,e)}let r;try{r=M0(A)}catch(i){console.error(i)}if(!r){let i=yt.createFromState(Ol.defaultData(),100,100);A.shape=i,r=M0(A)}return r}var M4=new de;function cd(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 jp=new mt,cc=new S,ze;lc.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 Pe{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&&cd(this.subdividedGeometry.attributes,...i),this.originalGeometry&&cd(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(cc.fromArray(i));let o=cc.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 DA(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;jp.setFromBufferAttribute(A),jp.getCenter(r),t.boundingSphere.radius=r.distanceTo(jp.max),isNaN(t.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.',this),jp.getSize(cc);let i={width:cc.x,height:cc.y,depth:cc.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;if(t.type==="TorusGeometry"&&t.arc===Math.PI*2){let{width:u,height:d,depth:h,arc:p,tubularSegments:f,radialSegments:m}=t;i=new Uo(!0,u,h,d,u*.5,p/(2*Math.PI),f,h/2,0,m,0,0,!0)}else i=t.shape!==void 0?A.geometry:Vo(t,r,!1);let s,o,a,c;({positions:s,triIndices:c}=ud(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,p=d*Float32Array.BYTES_PER_ELEMENT+h*Uint32Array.BYTES_PER_ELEMENT,f=d*Float32Array.BYTES_PER_ELEMENT,m=h*Uint32Array.BYTES_PER_ELEMENT,g=ze._malloc(p),y=new Float32Array(ze.HEAPF32.buffer,g,d),x=new Uint32Array(ze.HEAPU32.buffer,g+f,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+f,l,g+f+i.length*Uint32Array.BYTES_PER_ELEMENT,u,b.elements):ze.alloc_subdivision_surface(g,c,g+f,l,g+f+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 p=ze.HEAPU32[c[u]>>2],f=ze.HEAPF32.subarray(p>>2,(p>>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 Pe;if(b.setIndex(new ls(x,1)),b.setAttribute("position",new Se(h,3)),b.setAttribute("normal",new Se(f,3)),A){b.setAttribute("faceMap",new ls(g,1));let w=new Float32Array(f.length/3*4).fill(0);b.setAttribute("color",new Ne(w,4))}return ze.free_mesh_data(o),b.userData.type="SubdivGeometry",b}i.getAttribute("position").copyArray(h),i.getAttribute("normal").copyArray(f),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 p=new Pe;p.setAttribute("position",new Se(u,3));let f=new Float32Array(u.length);for(let m=0,g=u.length;m<g;)f[m++]=r.r,f[m++]=r.g,f[m++]=r.b;return p.setAttribute("color",new Ne(f,3)),p.setIndex(new ls(h,1)),ze.free_wireframe_data_for_base_level(i),p}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],p=new Uint32Array(ze.HEAPU32.subarray(h>>2,(h>>2)+c[l]));l++;let f=ze.HEAPU32[a[l]>>2],m=new Uint8Array(ze.HEAPU32.subarray(f>>2,(f>>2)+c[l]));return ze.free_topological_data(s),{positions:d,indices:p,verticesPerFace:m}}};var bC=["getX","getY","getZ"];function ud(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 Yp=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]){Yp.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(Yp).normalize(),C0.sub(Yp).normalize(),P0.sub(Yp).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.195/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,uc;TC.then(n=>lt=n);function E4(n,e,t){let A,{positions:r,triIndices:i}=ud(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){uc===void 0&&(uc=lt.init_csg());let t=EC(n),A=lt.csg_calc_topological(uc,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){uc===void 0&&(uc=lt.init_csg());let r=EC(n),i=lt.csg_calc(uc,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 p=a[c];t.setAttribute("position",new Se(u,3)),t.setAttribute("normal",new Se(h,3));let f=lt.HEAPF32.subarray((i>>2)+5,(i>>2)+5+6);return t.boundingSphere===null&&(t.boundingSphere=new dA),t.boundingSphere.center.set(f[0],f[1],f[2]),t.boundingSphere.radius=(f[3]**2+f[4]**2+f[5]**2)**.5,t.userData.parameters={width:f[3]*2,height:f[4]*2,depth:f[5]*2},lt.free_mesh_data(i),p}function 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),p=new Float32Array(lt.HEAPF32.buffer,h,a),f=new Uint32Array(lt.HEAPU32.buffer,h+u,c);return p.set(A,0),f.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:Tn},M0=n=>L4[n.type].create(n);function dd(n){return n!==null&&"booleanOp"in n}var dc=class extends Np(CA){constructor(){super(...arguments);this.booleanMeshSetAddress=-1;this.booleanWasTransformed=!1;this.booleanMatrixInvOld=new de}updateVisible(){super.updateVisible(),this.visible=!dd(this.parent)&&this.visible,dd(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(),dd(this.parent)?this.parent.invalidateDownstreamBooleanData():this}invalidateUpstreamBooleanData(){this.freeBooleanPointer();for(let t of this.children)t instanceof dc&&(t.freeBooleanPointer(),dd(t)&&t.invalidateUpstreamBooleanData())}updateTransformState(t){let A=super.updateTransformState(t);return A&&dd(this.parent)&&this.invalidateDownstreamBooleanData(!0),A}};var qp=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),p=n.getZ(u);d<i&&(i=d),h<s&&(s=h),p<o&&(o=p),d>a&&(a=d),h>c&&(c=h),p>l&&(l=p)}qp.min.set(i,s,o),qp.max.set(a,c,l),qp.getCenter(A),qp.getSize(r).multiplyScalar(.5)}var _4=new Pe,R4=new Ci,kt=class extends dc{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 hd=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 FA=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 FA&&(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 Ue=class extends FA{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 Ot=class extends Ue{constructor(t,A){A=A??{},A.shared=A.shared!==void 0?A.shared:!1;super(t,A);this.readonly=!1}setReadonly(t){return this.readonly=t,this.hashProperties=this.readonly?["value"]:void 0,this}getReadonly(){return this.readonly}generate(t,A,r,i,s,o){r=t.getUUID(r??this.getUUID()),i=i??this.getType(t);let a=t.getNodeData(r);return this.getReadonly()&&this.generateReadonly!==void 0?this.generateReadonly(t,A,r,i,s,o):t.isShader("vertex")?(a.vertex||(a.vertex=t.createVertexUniform(i,this,s,o,this.getLabel())),t.format(a.vertex.name,i,A)):(a.fragment||(a.fragment=t.createFragmentUniform(i,this,s,o,this.getLabel())),t.format(a.fragment.name,i,A))}};var GA=class extends Ot{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 jA=class extends Ot{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 Ot{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,Me=class extends Ue{constructor(t,A,r,i,s){super(s);this.src="";this.nodeType="Function";this.useKeywords=!0;this.includes=[];this.extensions={};this.keywords={};this.isMethod=s===void 0,this.isInterface=!1,this.parse(t,A,r,i)}getShared(t,A){return!this.isMethod}getType(t){return t.getTypeByFormat(this.type)}getInputByName(t){if(this.inputs){let A=this.inputs.length;for(;A--;)if(this.inputs[A].name===t)return this.inputs[A]}}getIncludeByName(t){if(this.includes){let A=this.includes.length;for(;A--;)if(this.includes[A].name===t)return this.includes[A]}}generate(t,A,r,i,s){let o,a=0,c=this.src;if(this.includes)for(let u=0;u<this.includes.length;u++)t.include(this.includes[u],this);for(let u in this.extensions)t.extensions[u]=!0;let l=[];for(;o=PC.exec(this.src);)l.push(o);for(let u=0;u<l.length;u++){let d=l[u],h=d[0],p=this.isMethod?!this.getInputByName(h):!0,f=h;if(this.keywords[h]||this.useKeywords&&p&&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)}f=m.build(t)}h!==f&&c[d.index+a-1]!=="."&&(c=c.substring(0,d.index+a)+f+c.substring(d.index+h.length+a),a+=f.length-h.length),this.getIncludeByName(f)===void 0&&SA.contains(f)&&t.include(SA.get(f))}return A==="source"?c:this.isMethod?(this.isInterface||t.include(this,void 0,c),this.name):t.format("( "+c+" )",this.getType(t),A)}parse(t,A,r,i){if(this.src=t||"",this.includes=A??[],this.extensions=r??{},this.keywords=i??{},this.isMethod){let s=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 Ue{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,lc=new Promise(n=>{mC=n}),pC=!1;async function gC(){if(pC)return;let e=!1?".":"https://unpkg.com/@splinetool/modelling-wasm@0.9.196/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 Vo(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 ka().parse(n);else{if(n.type==="SubdivGeometry")return new oA(n,t);if(n.type==="TextGeometry")return new ac(n,e)}let r;try{r=M0(A)}catch(i){console.error(i)}if(!r){let i=yt.createFromState(Ol.defaultData(),100,100);A.shape=i,r=M0(A)}return r}var M4=new de;function cd(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 jp=new mt,cc=new S,ze;lc.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 Pe{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&&cd(this.subdividedGeometry.attributes,...i),this.originalGeometry&&cd(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(cc.fromArray(i));let o=cc.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 DA(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;jp.setFromBufferAttribute(A),jp.getCenter(r),t.boundingSphere.radius=r.distanceTo(jp.max),isNaN(t.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.',this),jp.getSize(cc);let i={width:cc.x,height:cc.y,depth:cc.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;if(t.type==="TorusGeometry"&&t.arc===Math.PI*2){let{width:u,height:d,depth:h,arc:p,tubularSegments:f,radialSegments:m}=t;i=new Uo(!0,u,h,d,u*.5,p/(2*Math.PI),f,h/2,0,m,0,0,!0)}else i=t.shape!==void 0?A.geometry:Vo(t,r,!1);let s,o,a,c;({positions:s,triIndices:c}=ud(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,p=d*Float32Array.BYTES_PER_ELEMENT+h*Uint32Array.BYTES_PER_ELEMENT,f=d*Float32Array.BYTES_PER_ELEMENT,m=h*Uint32Array.BYTES_PER_ELEMENT,g=ze._malloc(p),y=new Float32Array(ze.HEAPF32.buffer,g,d),x=new Uint32Array(ze.HEAPU32.buffer,g+f,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+f,l,g+f+i.length*Uint32Array.BYTES_PER_ELEMENT,u,b.elements):ze.alloc_subdivision_surface(g,c,g+f,l,g+f+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 p=ze.HEAPU32[c[u]>>2],f=ze.HEAPF32.subarray(p>>2,(p>>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 Pe;if(b.setIndex(new ls(x,1)),b.setAttribute("position",new Se(h,3)),b.setAttribute("normal",new Se(f,3)),A){b.setAttribute("faceMap",new ls(g,1));let w=new Float32Array(f.length/3*4).fill(0);b.setAttribute("color",new Ne(w,4))}return ze.free_mesh_data(o),b.userData.type="SubdivGeometry",b}i.getAttribute("position").copyArray(h),i.getAttribute("normal").copyArray(f),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 p=new Pe;p.setAttribute("position",new Se(u,3));let f=new Float32Array(u.length);for(let m=0,g=u.length;m<g;)f[m++]=r.r,f[m++]=r.g,f[m++]=r.b;return p.setAttribute("color",new Ne(f,3)),p.setIndex(new ls(h,1)),ze.free_wireframe_data_for_base_level(i),p}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],p=new Uint32Array(ze.HEAPU32.subarray(h>>2,(h>>2)+c[l]));l++;let f=ze.HEAPU32[a[l]>>2],m=new Uint8Array(ze.HEAPU32.subarray(f>>2,(f>>2)+c[l]));return ze.free_topological_data(s),{positions:d,indices:p,verticesPerFace:m}}};var bC=["getX","getY","getZ"];function ud(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 Yp=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]){Yp.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(Yp).normalize(),C0.sub(Yp).normalize(),P0.sub(Yp).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.196/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,uc;TC.then(n=>lt=n);function E4(n,e,t){let A,{positions:r,triIndices:i}=ud(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){uc===void 0&&(uc=lt.init_csg());let t=EC(n),A=lt.csg_calc_topological(uc,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){uc===void 0&&(uc=lt.init_csg());let r=EC(n),i=lt.csg_calc(uc,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 p=a[c];t.setAttribute("position",new Se(u,3)),t.setAttribute("normal",new Se(h,3));let f=lt.HEAPF32.subarray((i>>2)+5,(i>>2)+5+6);return t.boundingSphere===null&&(t.boundingSphere=new dA),t.boundingSphere.center.set(f[0],f[1],f[2]),t.boundingSphere.radius=(f[3]**2+f[4]**2+f[5]**2)**.5,t.userData.parameters={width:f[3]*2,height:f[4]*2,depth:f[5]*2},lt.free_mesh_data(i),p}function 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),p=new Float32Array(lt.HEAPF32.buffer,h,a),f=new Uint32Array(lt.HEAPU32.buffer,h+u,c);return p.set(A,0),f.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:Tn},M0=n=>L4[n.type].create(n);function dd(n){return n!==null&&"booleanOp"in n}var dc=class extends Np(CA){constructor(){super(...arguments);this.booleanMeshSetAddress=-1;this.booleanWasTransformed=!1;this.booleanMatrixInvOld=new de}updateVisible(){super.updateVisible(),this.visible=!dd(this.parent)&&this.visible,dd(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(),dd(this.parent)?this.parent.invalidateDownstreamBooleanData():this}invalidateUpstreamBooleanData(){this.freeBooleanPointer();for(let t of this.children)t instanceof dc&&(t.freeBooleanPointer(),dd(t)&&t.invalidateUpstreamBooleanData())}updateTransformState(t){let A=super.updateTransformState(t);return A&&dd(this.parent)&&this.invalidateDownstreamBooleanData(!0),A}};var qp=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),p=n.getZ(u);d<i&&(i=d),h<s&&(s=h),p<o&&(o=p),d>a&&(a=d),h>c&&(c=h),p>l&&(l=p)}qp.min.set(i,s,o),qp.max.set(a,c,l),qp.getCenter(A),qp.getSize(r).multiplyScalar(.5)}var _4=new Pe,R4=new Ci,kt=class extends dc{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 hd=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 FA=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 FA&&(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 Ue=class extends FA{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 Ot=class extends Ue{constructor(t,A){A=A??{},A.shared=A.shared!==void 0?A.shared:!1;super(t,A);this.readonly=!1}setReadonly(t){return this.readonly=t,this.hashProperties=this.readonly?["value"]:void 0,this}getReadonly(){return this.readonly}generate(t,A,r,i,s,o){r=t.getUUID(r??this.getUUID()),i=i??this.getType(t);let a=t.getNodeData(r);return this.getReadonly()&&this.generateReadonly!==void 0?this.generateReadonly(t,A,r,i,s,o):t.isShader("vertex")?(a.vertex||(a.vertex=t.createVertexUniform(i,this,s,o,this.getLabel())),t.format(a.vertex.name,i,A)):(a.fragment||(a.fragment=t.createFragmentUniform(i,this,s,o,this.getLabel())),t.format(a.fragment.name,i,A))}};var GA=class extends Ot{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 jA=class extends Ot{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 Ot{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,Me=class extends Ue{constructor(t,A,r,i,s){super(s);this.src="";this.nodeType="Function";this.useKeywords=!0;this.includes=[];this.extensions={};this.keywords={};this.isMethod=s===void 0,this.isInterface=!1,this.parse(t,A,r,i)}getShared(t,A){return!this.isMethod}getType(t){return t.getTypeByFormat(this.type)}getInputByName(t){if(this.inputs){let A=this.inputs.length;for(;A--;)if(this.inputs[A].name===t)return this.inputs[A]}}getIncludeByName(t){if(this.includes){let A=this.includes.length;for(;A--;)if(this.includes[A].name===t)return this.includes[A]}}generate(t,A,r,i,s){let o,a=0,c=this.src;if(this.includes)for(let u=0;u<this.includes.length;u++)t.include(this.includes[u],this);for(let u in this.extensions)t.extensions[u]=!0;let l=[];for(;o=PC.exec(this.src);)l.push(o);for(let u=0;u<l.length;u++){let d=l[u],h=d[0],p=this.isMethod?!this.getInputByName(h):!0,f=h;if(this.keywords[h]||this.useKeywords&&p&&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)}f=m.build(t)}h!==f&&c[d.index+a-1]!=="."&&(c=c.substring(0,d.index+a)+f+c.substring(d.index+h.length+a),a+=f.length-h.length),this.getIncludeByName(f)===void 0&&SA.contains(f)&&t.include(SA.get(f))}return A==="source"?c:this.isMethod?(this.isInterface||t.include(this,void 0,c),this.name):t.format("( "+c+" )",this.getType(t),A)}parse(t,A,r,i){if(this.src=t||"",this.includes=A??[],this.extensions=r??{},this.keywords=i??{},this.isMethod){let s=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 Ue{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"),hc=class extends Ue{constructor(t=""){super();this.inputs=[];this.src="";this.nodeType="Struct";this.parse(t)}getType(t){return t.getTypeByFormat(this.name)}getInputByName(t){let A=this.inputs.length;for(;A--;)if(this.inputs[A].name===t)return this.inputs[A]}generate(t,A,r,i,s){return A==="source"?this.src+";":t.format("( "+this.src+" )",this.getType(t),A)}parse(t=""){this.src=t,this.inputs=[];let A=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 fc=class extends Ue{constructor(t){super("v2",{shared:!1});this.nodeType="UV";this.index=t??0}generate(t,A){t.requires.uv[this.index]=!0;let r=this.index>0?this.index+1:"",i=t.isShader("vertex")?"uv"+r:"vUv"+r;return t.format(i,this.getType(t),A)}};SA.addKeyword("uv",function(){return new fc});SA.addKeyword("uv2",function(){return new fc(1)});var zo=class extends Ue{constructor(t,A){super("v4");this.nodeType="ColorSpace";this.input=t,this.method=A??zo.LINEAR_TO_LINEAR,this.hashProperties=["method"]}static getEncodingComponents(t){switch(t){case Rn:return["Linear"];case qe:return["sRGB"];default:return[]}}generate(t,A){let r=this.input.build(t,"v4"),i=this.getType(t),s=zo.Nodes[this.method],o=t.include(s);if(o===zo.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=zo.getEncodingComponents(t);this.method="LinearTo"+A[0],this.factor=A[1]}fromDecoding(t){let A=zo.getEncodingComponents(t);this.method=A[0]+"ToLinear",this.factor=A[1]}},hn=zo;hn.Nodes={LinearToLinear:new Me(["vec4 LinearToLinear( in vec4 value ) {"," return value;","}"].join(`
3141
3141
  `)),sRGBToLinear:new Me(["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 Me(["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(`